Skip to main content

No project description provided

Project description

Python math library written in Rust

Work in progress

Examples

Sum of two 32-bit integer array

import rem_math as rm

array = [i for i in range(100_000_000)]
sum_two_i32_result = rm.sum_two_ints32(array, array, simd=True)

print(sum_two_i32_result)

Benchmarks (Python)

--------------------------------------- benchmark 'arr_i32': 1 tests ---------------------------------------
Name (time in ms)        Min     Max    Mean  StdDev  Median     IQR  Outliers       OPS  Rounds  Iterations
------------------------------------------------------------------------------------------------------------
test_sum_arr_i32      4.2611  4.4810  4.3450  0.0814  4.3310  0.0625       2;1  230.1495       5         100
------------------------------------------------------------------------------------------------------------

---------------------------------------- benchmark 'arr_i32_simd': 1 tests -----------------------------------------
Name (time in us)            Min     Max    Mean  StdDev  Median     IQR  Outliers  OPS (Kops/s)  Rounds  Iterations
--------------------------------------------------------------------------------------------------------------------
test_sum_arr_i32_simd     1.1802  1.2003  1.1903  0.0071  1.1903  0.0051       2;0      840.1472       5      100000
--------------------------------------------------------------------------------------------------------------------

---------------------------------------- benchmark 'numpy': 1 tests ----------------------------------------
Name (time in ms)        Min     Max    Mean  StdDev  Median     IQR  Outliers       OPS  Rounds  Iterations
------------------------------------------------------------------------------------------------------------
test_numpy_sum        7.6939  7.8477  7.7710  0.0544  7.7710  0.0387       2;0  128.6840       5          13
------------------------------------------------------------------------------------------------------------

Legend:
  Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
  OPS: Operations Per Second, computed as 1 / Mean

Benchmarks (Rust)

Array accumulation      time:   [15.509 µs 15.532 µs 15.575 µs]
Found 11 outliers among 100 measurements (11.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
  7 (7.00%) high severe

Array accumulation with SIMD instructions
                        time:   [77.083 ns 77.499 ns 78.264 ns]
Found 9 outliers among 100 measurements (9.00%)
  2 (2.00%) high mild
  7 (7.00%) high severe

Roadmap

  • Add GPU-accelerated operations for improved performance.
  • Implement own custom type objects for best performance from ecosystem.
  • Expand mathematical functionality with additional features and algorithms.

Stay tuned for updates as the library evolves!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rem_math-0.1.0.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rem_math-0.1.0-cp311-cp311-win_amd64.whl (126.4 kB view details)

Uploaded CPython 3.11Windows x86-64

File details

Details for the file rem_math-0.1.0.tar.gz.

File metadata

  • Download URL: rem_math-0.1.0.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.0

File hashes

Hashes for rem_math-0.1.0.tar.gz
Algorithm Hash digest
SHA256 00afeefaaf324aa58a41e53745e31704f654a2570a79e17a88fb25345579da45
MD5 b29c5ecccec958d517ed055acc19d54d
BLAKE2b-256 bdf3a9c144dfc3fa2c9269e47101589a2f592d2f8ea712626d5abc2e45c871aa

See more details on using hashes here.

File details

Details for the file rem_math-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rem_math-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ef37f35c03a22fb0932b79d9e07b9df79f297f029ea475f739dc40eb76081714
MD5 5890cff4caa7a32afe82f85a3b8220b6
BLAKE2b-256 307595c66757e138ebbc561aa41dff640d3c4d2502677f96383ea11f06860329

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page