Skip to content
oskarlhPublic

About

C's math functions in JavaScript

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

2 watching

Forks

Latest commit

 

History

247 Commits

Folders and files

Repository files navigation

cmath-js

Implementation of parts of C++'s numerics libraries in TypeScript/JavaScript, including functions C++ inherits from C.

Floating-point functions

Integer functions

These functions accept either a bigint or an integer number:

  • abs
  • bit_ceil
  • bit_floor
  • bit_width
  • countl_one as create_countl_one, which is used this way:
    import { create_countl_one } from "cmath-js";
    const countl_one_u16 = create_countl_one({ bits: 16 });
    const integer = 0xf0_00;
    // Prints "1111000000000000 has 4 leading one bits."
    console.log(
    	`${integer.toString(2).padStart(16, "0")} has ${countl_one_u16(integer)} leading one bits.`,
    );
  • countl_zero as create_countl_zero
  • countr_one as create_countr_one
  • countr_zero as create_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)}.`);
  • has_single_bit
  • lcm
  • popcount

Functions for both floats and ints

Mathematical constants

  • Constants in the std::numbers namespace are available from the numbers subpath export. Example:
    import { sqrt3 } from "cmath-js/numbers";
    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 welcome! See CONTRIBUTING.md

About

C's math functions in JavaScript

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

2 watching

Forks

Sponsor this project

Used by

Contributors

Languages