cmath-js

3.0.0 • Public • Published

cmath-js

Implementation of parts of C's & C++'s numerics libraries in TypeScript/JavaScript.

Floating-point functions

Integer functions

These functions accept either a bigint or an integer number:

  • abs
  • countl_one
  • countl_zero in the form of
     import { create_countl_zero } from "cmath-js";
     const countl_zero_u16 = create_countl_zero({ bits: 16 });
     const integer = 0x0FFF;
     // Prints "0000111111111111 has 4 leading zero bits."
     console.log(`${integer.toString(2).padStart(16, "0")} has ${countl_zero_u16(integer)} leading zero bits.`);
  • countr_one
  • countr_zero
  • div
  • gcd. Example:
     import { gcd } from "cmath-js";
     // Prints "The greatest common divisor of 24 and 32 is 8."
     console.log(`The greatest common divisor of 24 and 32 is ${gcd(24, 32)}.`);
  • lcm
  • popcount

Functions for both floats and ints

Mathematical constants

  • Constants in the std::numbers namespace are available from the numbers.js subpath export. Example:
     import { sqrt3 } from "cmath-js/numbers.js";
     console.log(`The square root of 3 is ${sqrt3}.`);

Test coverage

The test coverage is a perfect 100% and enforced by the publishing and pull request verification workflows.

Contributing

Contributions are welcomed! Feel free to make a pull request. Please add your name to contributors in package.json and run npm run build-and-verify before submitting your PR. By making a pull request you agree to license your contribution under the CC0 license unless otherwise specified.

ESLint is used to enforce code quality and consistent formatting (with the help of Prettier). If ESLint complains when you run npm run build-and-verify, you can run npm run lint-fix to apply automatic fixes and then fix the rest of the errors manually. I recommend configuring your IDE for ESLint and Prettier. If you are using Visual Studio Code, simply installing Microsoft's ESLint extension and the official Prettier extension takes care of that.

/cmath-js/

    Package Sidebar

    Install

    npm i cmath-js

    Weekly Downloads

    230

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    43.1 kB

    Total Files

    120

    Last publish

    Collaborators

    • olh