{"id":12394937,"name":"pacmapsharp","ecosystem":"nuget","description":"Production-ready PACMAP library with 66% smaller persistence files, 3.1-12.5x performance optimization, HNSW acceleration, and cross-platform 64-bit binaries. Features: PACMAP (Pairwise Controlled Manifold Approximation and Projection) algorithm with OpenMP 8-thread parallelization, AVX2/AVX512 SIMD optimization, HNSW (Hierarchical Navigable Small World) acceleration, optimized model persistence (v2.8.32), advanced quantization (60% storage savings), comprehensive progress reporting, model persistence, and cross-platform deployment. Perfect for production AI pipelines requiring high-performance dimensionality reduction with enterprise-grade stability and efficient storage.","homepage":"https://github.com/78Spinoza/PacMapDotnet","licenses":"GPL-3.0-or-later","normalized_licenses":["GPL-3.0-or-later"],"repository_url":"https://github.com/78Spinoza/PacMapDotnet","keywords_array":["pacmap","hnsw","ai-safety","outlier-detection","dimensionality-reduction","machine-learning","embedding","manifold-learning","production-ml","data-validation","nearest-neighbors","performance-optimization","memory-efficient","multi-dimensional","progress-reporting","model-persistence","file-optimization","storage-optimization"],"namespace":null,"versions_count":7,"first_release_published_at":"2025-10-17T21:54:58.650Z","latest_release_published_at":"2025-12-24T17:05:07.490Z","latest_release_number":"2.8.35","last_synced_at":"2026-05-19T19:32:28.247Z","created_at":"2025-10-17T22:00:58.260Z","updated_at":"2026-05-19T19:33:04.455Z","registry_url":"https://www.nuget.org/packages/pacmapsharp/","install_command":"Install-Package pacmapsharp","documentation_url":null,"metadata":{"copyright":"Copyright © 2025 ID Soft AB","license_info":{"type":"expression","text":"GPL-3.0-or-later","version":null},"license_url":"https://licenses.nuget.org/GPL-3.0-or-later","require_license_acceptance":false,"readme":"README.md","repository":{"type":"git","url":"https://github.com/78Spinoza/PacMapDotnet","branch":null,"commit":"b27cf6fcfcc59d35fafc459dbfd616fbe42ad036"},"development_dependency":false,"serviceable":false,"framework_assemblies":[],"package_types":[],"release_notes":"🎯 v2.8.35 - QUALITY RELEASE - Unbiased Statistics + API Consistency\n\n✨ MAJOR IMPROVEMENTS:\n- Fixed biased embedding statistics (was using first 1000 points only!)\n- Now uses HNSW k-NN distances for unbiased p95/p99/mean/std calculation\n- Fixed neighbor ordering: [0]=nearest, [last]=farthest (consistent across API)\n- Comprehensive documentation updates for embedding vs original space\n\n🔧 TECHNICAL FIXES:\n- Embedding statistics now from n_obs×k distances (e.g., 100K×40 = 4M distances)\n- Reservoir sampling fallback when HNSW disabled (2000 points, randomized)\n- Transform neighbor ordering reversed to match fit (nearest-first)\n- Updated C# XML docs and C++ header comments for clarity\n\n📊 IMPACT:\n- More reliable ConfidenceScore calculations\n- Better outlier detection thresholds\n- Consistent API expectations (breaking change: array ordering)\n- Old models will still load but have biased stats (recommend retrain)\n\n⚠️ BREAKING CHANGE:\n- NearestNeighborDistances/Indices now ordered nearest-first (was farthest-first)\n- Code relying on old ordering needs update\n- Example code fixed to reflect new ordering\n\n🐛 v2.8.34 - CRITICAL BUG FIX - Large Model Loading + Version Check Fix\n\n🔧 FIXES:\n- Increased HNSW size limits from 100MB/80MB to 4GB/3GB\n- Large models (\u003e100K samples) can now save and load correctly\n- Fixed \"HNSW uncompressed size too large\" error for production datasets\n- Removed strict library version check (only format version matters now)\n\n🚀 v2.8.32 - BREAKING CHANGE - MASSIVE File Size Optimization (66% smaller!)\n\n📦 MAJOR OPTIMIZATION - Dead Weight Removal:\n- Eliminated adam_m, adam_v, nn_indices, nn_distances, nn_weights vectors from persistence\n- File size reduced from ~32 MB to ~11 MB for 100K samples (66% reduction!)\n- 3x faster save/load operations with zero functionality loss\n- Format version bumped from v1 → v2 (breaking change)\n\n🔧 TECHNICAL DETAILS:\n- Adam optimizer state vectors were never used after training (always reinitialized)\n- K-NN data arrays were never populated during fit (added by mistake in v2.4.0)\n- Transform uses HNSW index or brute-force on training data, not pre-computed arrays\n- Removed ~21 MB of dead weight from model files\n\n⚠️ BREAKING CHANGE:\n- Old v1 model files CANNOT be loaded with v2.8.32+\n- Error: \"Unsupported format version: 1 (expected v2 - v2.8.32+)\"\n- Action required: Re-fit and save models with v2.8.32+ to use new format\n- Native DLL update required\n\n✅ VALIDATION:\n- All unit tests pass with new format\n- Models work identically to v1 format\n- No impact on transform/inference operations\n\n🚀 v2.8.31 - CRITICAL BUG FIX RELEASE - Early Termination Fixed\n\n🐛 CRITICAL FIX:\n- Fixed early termination bug that prevented PacMAP from completing all 3 phases\n- PacMAP now correctly runs Phase 1 (global), Phase 2 (balance), and Phase 3 (local refinement)\n- Early convergence detection was breaking out after Phase 1, resulting in incomplete embeddings\n- Native DLL update required (Windows pacmap.dll + Linux libpacmap.so)\n\n🚀 v2.8.30 - CRITICAL BUG FIX RELEASE - Model Persistence Fixed\n\n🐛 CRITICAL FIX:\n- Fixed model persistence (Save/Load) failure caused by incorrect string marshaling\n- Changed P/Invoke declarations from LPWStr (UTF-16) to CharSet.Ansi for proper const char* compatibility\n- Model files now correctly save and load across all path formats\n\n🚀 v2.8.29 - PERFORMANCE OPTIMIZED RELEASE - Production-Ready PACMAP\n\n✅ MASSIVE PERFORMANCE OPTIMIZATIONS (3.1-12.5x speedup):\n- OpenMP 8-thread parallelization with atomic operations (1.5-2x speedup)\n- Eigen SIMD vectorization with AVX2/AVX512 support (1.5-3x speedup)\n- Advanced compiler optimizations (fast math, LTO) (15-35% additional speedup)\n- Math function optimizations and efficient memory patterns\n- Thread-safe implementation with enterprise-grade DLL stability\n\n✅ CROSS-PLATFORM 64-BIT BINARIES:\n- Windows x64 DLL (301KB) - Ready for deployment\n- Linux x64 SO - Docker compatible for cloud deployment\n- Zero build dependencies - immediate deployment capability\n- Cross-platform compatibility verified and tested\n\n✅ PRODUCTION VALIDATION ON REAL DATASETS:\n- MNIST 70K validation: 10-second processing with clear digit clustering\n- 1M Hairy Mammoth validation: 2-3 minute processing with anatomical preservation\n- 10K Mammoth validation: 11-second processing with automatic anatomical classification\n- Comprehensive testing across all dataset sizes and platforms\n\n✅ ENHANCED FEATURES:\n- Dataset compression: 60% storage savings with automatic zip loading\n- Advanced quantization: 16-bit compression with parameter preservation\n- Model persistence: Save/load with CRC32 validation\n- Multiple distance metrics: Euclidean, Manhattan, Cosine, Hamming (fully supported)\n- Real-time progress reporting with phase-aware callbacks\n- Memory efficiency: 0.1-0.5MB for datasets up to 10K points\n\n✅ ENTERPRISE-GRADE STABILITY:\n- Thread-safe OpenMP implementation with atomic gradient accumulation\n- Integer overflow protection for 1M+ point datasets\n- Comprehensive null pointer safety in C++ integration\n- Production-ready code without debug artifacts\n- Cross-platform build system with Docker support\n\n🎯 BENCHMARK RESULTS:\n- 1K samples: 836ms fit time, 6ms transform\n- 10K samples: 10.9s fit time, 103ms transform\n- 1M samples: ~2-3 minutes with HNSW optimization\n- Memory usage: Optimized for enterprise workloads\n\n📦 DEPLOYMENT READY:\n- Pre-compiled 64-bit binaries included\n- Zero compilation required for most use cases\n- Compatible with Windows 10/11 and modern Linux distributions\n- Perfect for Docker containers and cloud deployments","dependency_summary":{"total_dependency_groups":1,"target_frameworks":["net8.0"],"total_dependencies":0}},"repo_metadata":{"id":318184242,"uuid":"1070187508","full_name":"78Spinoza/PacMapDotnet","owner":"78Spinoza","description":"Production ready PacMapDotnet and c++ ","archived":false,"fork":false,"pushed_at":"2025-10-14T23:09:14.000Z","size":210696,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-14T23:28:14.388Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/78Spinoza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-05T12:56:35.000Z","updated_at":"2025-10-14T23:09:17.000Z","dependencies_parsed_at":"2025-10-05T18:25:58.338Z","dependency_job_id":null,"html_url":"https://github.com/78Spinoza/PacMapDotnet","commit_stats":null,"previous_names":["78spinoza/pacmapdotnet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/78Spinoza/PacMapDotnet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/78Spinoza%2FPacMapDotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/78Spinoza%2FPacMapDotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/78Spinoza%2FPacMapDotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/78Spinoza%2FPacMapDotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/78Spinoza","download_url":"https://codeload.github.com/78Spinoza/PacMapDotnet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/78Spinoza%2FPacMapDotnet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282453495,"owners_count":26671585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-03T02:00:05.676Z","response_time":108,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"tags":[]},"repo_metadata_updated_at":"2026-05-19T19:33:04.430Z","dependent_packages_count":0,"downloads":1556,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":56.98740038336199,"dependent_repos_count":6.571574461714494,"dependent_packages_count":17.623470157034472,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":27.060815000703652},"purl":"pkg:nuget/pacmapsharp","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nuget/pacmapsharp","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nuget/pacmapsharp","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nuget/pacmapsharp/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/pacmapsharp/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/pacmapsharp/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/pacmapsharp/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/pacmapsharp/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/pacmapsharp/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/pacmapsharp/codemeta","maintainers":[{"uuid":"Amin.Gholiha","login":"Amin.Gholiha","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://www.nuget.org/profiles/Amin.Gholiha","role":null,"created_at":"2025-10-18T22:27:18.333Z","updated_at":"2025-10-18T22:27:18.333Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/maintainers/Amin.Gholiha/packages"}]}