vec

module
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2024 License: Apache-2.0

README

Vec - Vectorization toolkit for go

GoReportCard GoDoc

This library is compatible with Go 1.17+

Please refer to CHANGELOG.md if you encounter breaking changes.

Motivation

The goal of this project is to take advantages of the SMID (Single Instruction Multiple Data) CPU extension to perform 128/256/512 bits wide operation per CPU cycle.
This library uses the following extension: AVX2, AVX512, Neon, SVE. The operation are grouped in the following packages:

  • bitewise: bitwise operations
  • lut: lookup operations
  • blas: basic linear algebra operations
  • bits: bitset/masking/packing/unpacking operations

Usage

Bitwise operation:
    out := make([]uint64, 8)
    v1 := []uint64{1, 2, 3, 4, 5, 6, 7, 8}
    v2 := []uint64{1, 7, 3, 4, 3, 6, 7, 2}
    bitwise.Uint64s(out).And(v1, v2)

Contributing to vec

Vec is an open source project and contributors are welcome!

See TODO list

License

The source code is made available under the terms of the Apache License, Version 2, as stated in the file LICENSE.

Individual files may be made available under their own specific license, all compatible with Apache License, Version 2. Please see individual files for details.

Credits and Acknowledgements

Library Authors:

  • Valery Carey
  • Adrian Witas

Directories

Path Synopsis
Package bitwise defines vectorized bitwise operations
Package bitwise defines vectorized bitwise operations
Package lut defines vectorized lookup operations
Package lut defines vectorized lookup operations
Package search defines vectorized search operations
Package search defines vectorized search operations

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL