{"id":13805521,"url":"https://github.com/vlang/vsl","last_synced_at":"2025-12-28T10:17:26.716Z","repository":{"id":37504872,"uuid":"225673579","full_name":"vlang/vsl","owner":"vlang","description":"V library to develop Artificial Intelligence and High-Performance Scientific Computations","archived":false,"fork":false,"pushed_at":"2025-02-09T19:07:56.000Z","size":11919,"stargazers_count":365,"open_issues_count":36,"forks_count":46,"subscribers_count":29,"default_branch":"main","last_synced_at":"2025-02-09T19:38:25.023Z","etag":null,"topics":["computational-geometry","differential-equations","eigenvalues","eigenvectors","hacktoberfest","linear-algebra","openblas","opencl","optimization","parallel-computations","scientific-computing","sparse-systems","v"],"latest_commit_sha":null,"homepage":"https://vlang.github.io/vsl","language":"V","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/vlang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"ulises-jeremias","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2019-12-03T17:04:37.000Z","updated_at":"2025-02-09T19:07:26.000Z","dependencies_parsed_at":"2023-12-10T01:38:39.830Z","dependency_job_id":"57a23eba-c813-42c3-8d3b-bd94b2d99687","html_url":"https://github.com/vlang/vsl","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlang%2Fvsl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlang%2Fvsl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlang%2Fvsl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlang%2Fvsl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vlang","download_url":"https://codeload.github.com/vlang/vsl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242099601,"owners_count":20071569,"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","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"}},"keywords":["computational-geometry","differential-equations","eigenvalues","eigenvectors","hacktoberfest","linear-algebra","openblas","opencl","optimization","parallel-computations","scientific-computing","sparse-systems","v"],"created_at":"2024-08-04T01:01:01.964Z","updated_at":"2025-12-28T10:17:26.710Z","avatar_url":"https://github.com/vlang.png","language":"V","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\n    \u003cimg\n        style=\"width: 200px\"\n        width=\"200\"\n        src=\"https://raw.githubusercontent.com/vlang/vsl/main/static/vsl-logo.png?sanitize=true\"\n    \u003e\n  \u003c/p\u003e\n  \u003ch1\u003eThe V Scientific Library\u003c/h1\u003e\n\n[vlang.io](https://vlang.io) |\n[Docs](https://vlang.github.io/vsl) |\n[Examples](./examples/) |\n[Changelog](#) |\n[Contributing](https://github.com/vlang/vsl/blob/main/CONTRIBUTING.md)\n\n[![Mentioned in Awesome V][awesomevbadge]][awesomevurl]\n[![VSL Continuous Integration][workflowbadge]][workflowurl]\n[![Deploy Documentation][deploydocsbadge]][deploydocsurl]\n[![License: MIT][licensebadge]][licenseurl]\n[![Modules][ModulesBadge]][ModulesUrl]\n\n\u003c/div\u003e\n\nVSL is a V library to develop Artificial Intelligence and High-Performance Scientific Computations.\n\n\u003e [!IMPORTANT]\n\u003e The pure-V QR path (`geqrf/orgqr`) is still being aligned; the related test is temporarily skipped. Other BLAS/LAPACK routines pass, and C backends (`-d vsl_blas_cblas -d vsl_lapack_lapacke`) are recommended when you need QR correctness today.\n\n## 🎉 Pure V BLAS/LAPACK: High Performance, Zero Dependencies\n\nVSL now features **100% pure V implementations** of BLAS and LAPACK that deliver **excellent performance** while requiring **zero external dependencies**. These implementations are production-ready and provide a compelling alternative to C backends.\n\n### Key Benefits\n\n- ✅ **Zero Dependencies**: No need to install OpenBLAS or LAPACK system libraries\n- ✅ **High Performance**: Competitive performance with optimized C backends\n- ✅ **Cross-Platform**: Works consistently across all platforms supported by V\n- ✅ **Production Ready**: Stable implementations with comprehensive test coverage\n\n### Performance Benchmarks\n\nRun comprehensive benchmarks to see performance characteristics:\n\n```sh\n# BLAS benchmarks\nv run benchmarks/blas_bench.v\n\n# LAPACK benchmarks  \nv run benchmarks/lapack_bench.v\n\n# Compare backends\nv run benchmarks/compare_backends.v\n```\n\n### Backend Options\n\n| Backend | Description | Compilation Flag | Best For |\n|---------|-------------|------------------|----------|\n| **Pure V** | 100% V implementation | `NONE` (default) | Zero-dependency deployment, cross-platform |\n| **OpenBLAS** | Optimized C library | `-d vsl_blas_cblas` | Maximum performance when C libraries available |\n| **LAPACKE** | Standard LAPACK C interface | `-d vsl_lapack_lapacke` | Maximum performance for LAPACK operations |\n\n**Recommendation**: Start with the pure V backend for simplicity and zero dependencies. Use C backends when maximum performance is critical and system libraries are available.\n\nSee [Pure V BLAS/LAPACK Release Notes](./RELEASE_NOTES_PURE_V.md) for detailed information.\n\n|                                      |                                |                |                       |\n| :----------------------------------: | :----------------------------: | :------------: | :-------------------: |\n|       ![][sierpinski_triangle]       | ![][mandelbrot_blue_red_black] |   ![][julia]   | ![][mandelbrot_basic] |\n| ![][mandelbrot_pseudo_random_colors] |   ![][sierpinski_triangle2]    | ![][julia_set] |   ![][julia_basic]    |\n\n## 📖 Documentation\n\nVisit [VSL Documentation](https://vlang.github.io/vsl) to explore all supported features and APIs.\n\nVSL is a comprehensive Scientific Computing Library offering a rich ecosystem of\nmathematical and computational modules. The library provides both pure-V\nimplementations and optional high-performance backends through established C and\nFortran libraries.\n\n### 🔬 Core Capabilities\n\n- **Linear Algebra**: Complete matrix and vector operations, eigenvalue\n  decomposition, linear solvers\n- **Machine Learning**: Clustering algorithms (K-means), classification (KNN),\n  regression, and NLP tools\n- **Numerical Methods**: Differentiation, integration, root finding, polynomial operations\n- **Data Visualization**: Advanced plotting with Plotly-style API supporting 2D/3D charts\n- **Scientific Computing**: FFT, statistical analysis, probability distributions\n- **Parallel Computing**: MPI support and OpenCL acceleration\n- **Data I/O**: HDF5 integration for scientific data formats\n\n### ⚡ Performance Architecture\n\nVSL provides flexible performance options:\n\n- **Pure V Implementation**: High-performance, dependency-free BLAS/LAPACK implementations\n- **Optimized Backends**: Optional integration with OpenBLAS, LAPACK, and MPI for maximum performance\n- **GPU Acceleration**: OpenCL support for computationally intensive operations\n\n**Pure V BLAS/LAPACK** implementations deliver competitive performance while eliminating external dependencies. Benchmark results demonstrate excellent performance characteristics across a wide range of problem sizes.\n\nEach module clearly documents compilation flags and backend requirements, allowing\nusers to choose the optimal configuration for their specific use case.\n\n## 🚀 Installation \u0026 Quick Start\n\nVSL supports multiple installation methods and deployment options to fit\ndifferent development workflows.\n\n### 📦 Package Manager Installation\n\n**Via V's built-in package manager:**\n\n```sh\nv install vsl\n```\n\n**Via vpkg:**\n\n```sh\nvpkg get https://github.com/vlang/vsl\n```\n\n### 🐳 Docker Development Environment (Recommended)\n\nFor the best development experience with all optional dependencies pre-configured:\n\n1. **Install Docker** on your system\n2. **Clone the starter template:**\n\n   ```sh\n   git clone https://github.com/ulises-jeremias/hello-vsl\n   cd hello-vsl\n   ```\n\n3. **Follow the setup instructions** in the template's README\n\nThis approach provides:\n\n- Pre-configured environment with V, VSL, and all optional dependencies\n- Cross-platform compatibility (Windows, Linux, macOS)\n- Isolated development environment\n- Access to optimized BLAS/LAPACK libraries\n\n### 🔧 System Dependencies (Optional)\n\nFor enhanced performance, you can install optional system libraries:\n\n- **OpenBLAS/LAPACK**: Linear algebra acceleration\n- **OpenMPI**: Parallel computing support\n- **OpenCL**: GPU acceleration\n- **HDF5**: Scientific data format support\n\nRefer to individual module documentation for specific compilation flags.\n\n## 🧪 Testing\n\nTo test the module, just type the following command:\n\n```sh\nv test .\n```\n\n## 📊 Performance Benchmarks\n\nVSL includes comprehensive performance benchmarks using V's built-in `benchmark` module:\n\n```sh\n# Run all BLAS benchmarks\nv run benchmarks/blas_bench.v\n\n# Run all LAPACK benchmarks\nv run benchmarks/lapack_bench.v\n\n# Compare pure V vs C backends\nv -d vsl_blas_cblas run benchmarks/compare_backends.v\n```\n\nBenchmark results show performance characteristics for:\n- **BLAS Level 1**: Vector operations (dot product, norms, scaling)\n- **BLAS Level 2**: Matrix-vector operations (GEMV, GER)\n- **BLAS Level 3**: Matrix-matrix operations (GEMM, SYRK)\n- **LAPACK**: Linear system solvers, factorizations, eigenvalue problems\n\nSee [benchmarks/README.md](./benchmarks/README.md) for detailed benchmark documentation.\n\n## 👥 Contributors\n\n\u003ca href=\"https://github.com/vlang/vsl/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=vlang/vsl\"/\u003e\n\u003c/a\u003e\n\nMade with [contributors-img](https://contrib.rocks).\n\n[awesomevbadge]: https://awesome.re/mentioned-badge.svg\n[workflowbadge]: https://github.com/vlang/vsl/actions/workflows/ci.yml/badge.svg\n[deploydocsbadge]: https://github.com/vlang/vsl/actions/workflows/deploy-docs.yml/badge.svg\n[licensebadge]: https://img.shields.io/badge/License-MIT-blue.svg\n[ModulesBadge]: https://img.shields.io/badge/modules-reference-027d9c?logo=v\u0026logoColor=white\u0026logoWidth=10\n[awesomevurl]: https://github.com/vlang/awesome-v/blob/master/README.md#scientific-computing\n[workflowurl]: https://github.com/vlang/vsl/actions/workflows/ci.yml\n[deploydocsurl]: https://github.com/vlang/vsl/actions/workflows/deploy-docs.yml\n[licenseurl]: https://github.com/vlang/vsl/blob/main/LICENSE\n[ModulesUrl]: https://vlang.github.io/vsl/\n\n\u003c!-- Images --\u003e\n\n[sierpinski_triangle]: https://raw.githubusercontent.com/vlang/vsl/main/vcl/static/sierpinski_triangle.png\n[mandelbrot_blue_red_black]: https://raw.githubusercontent.com/vlang/vsl/main/vcl/static/mandelbrot_blue_red_black.png\n[julia]: https://raw.githubusercontent.com/vlang/vsl/main/vcl/static/julia.png\n[mandelbrot_basic]: https://raw.githubusercontent.com/vlang/vsl/main/vcl/static/mandelbrot_basic.png\n[mandelbrot_pseudo_random_colors]: https://raw.githubusercontent.com/vlang/vsl/main/vcl/static/mandelbrot_pseudo_random_colors.png\n[sierpinski_triangle2]: https://raw.githubusercontent.com/vlang/vsl/main/vcl/static/sierpinski_triangle2.png\n[julia_set]: https://raw.githubusercontent.com/vlang/vsl/main/vcl/static/julia_set.png\n[julia_basic]: https://raw.githubusercontent.com/vlang/vsl/main/vcl/static/julia_basic.png\n","funding_links":["https://github.com/sponsors/ulises-jeremias"],"categories":["Libraries"],"sub_categories":["Scientific computing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlang%2Fvsl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvlang%2Fvsl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlang%2Fvsl/lists"}