Skip to content

NumericSwift 0.1.2

Choose a tag to compare

@ChrisGVE ChrisGVE released this 17 Jan 11:05
· 262 commits to main since this release

NumericSwift 0.1.2

This release adds comprehensive ArraySwift integration for seamless N-dimensional array support in NumericSwift.

ArraySwift Integration

When compiled with NUMERICSWIFT_INCLUDE_ARRAYSWIFT=1, NumericSwift provides:

Type Conversion

  • LinAlg.Matrix ↔ NDArray bidirectional conversion
  • matrix.toNDArray() and LinAlg.Matrix(ndarray: arr)

Linear Algebra on NDArray

  • Solvers: arr.solve(b)
  • Matrix functions: arr.inv(), arr.det(), arr.rank(), arr.trace(), arr.norm()
  • Decompositions: arr.lu(), arr.qr(), arr.svd(), arr.eig(), arr.cholesky()

Statistics Functions

  • Basic: sum(arr), mean(arr), median(arr)
  • Variance: variance(arr), stddev(arr)
  • Range: amin(arr), amax(arr), ptp(arr), percentile(arr, p)
  • Cumulative: cumsum(arr), cumprod(arr), diff(arr)

Math Functions

  • Utility: clip(arr, min, max), absArray(arr), sqrtArray(arr)
  • Exponential: expArray(arr), logArray(arr)
  • Trigonometric: sinArray(arr), cosArray(arr), tanArray(arr)
  • Rounding: roundArray(arr), floorArray(arr), ceilArray(arr)

Usage

# Build with ArraySwift support
NUMERICSWIFT_INCLUDE_ARRAYSWIFT=1 swift build
# Test with ArraySwift support
NUMERICSWIFT_INCLUDE_ARRAYSWIFT=1 swift test
import NumericSwift
import ArraySwift
let A = NDArray([[3.0, 1.0], [1.0, 2.0]])
let b = NDArray([9.0, 8.0])
let x = A.solve(b)  // Solve Ax = b
let (Q, R) = A.qr()!  // QR decomposition

Test Statistics

  • Total tests: 397 (with ArraySwift) / 365 (without)
  • New ArraySwift integration tests: 32