1.1.0 • Published 1 year ago

num_complex_solidity v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

num_complex_solidity

Complex numbers for Solidity.

Usage

Install via npm:

$ npm i @partylikeits1983/complex_sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "@partylikeits1983/complex_sol/contracts/Num_Complex.sol";

contract model {
    Num_Complex Complex;

    Num_Complex.Complex a = Complex.wrap(0, 1e18);

    function test() public returns (Num_Complex.Complex memory) {

        Num_Complex.Complex memory result = Complex.ln(a);

        return result;
    }
}

Version 1.0

FunctionsDescriptionGas Estimation
add(a+bi) + (a+bi)698
sub(a+bi) - (a+bi)687
mul(a+bi) * (a+bi)2212
div(a+bi) / (a+bi)4099
r2a^2 + b^2 = c^22188
fromPolarz=r(cosθ+isinθ)2518
toPolarz=r(cosθ+isinθ)5506
atan2tan^-12632
p_atan2precise tan^-13442
atan1to1tan^-1 from -1 to 12496
sqrt(a+bi)^(1/2)8812
poqwhen n<1 (a+bi)^n18182
expe^(a+bi)4986

Documentation

num_complex_solidity documentation

Testing

npx hardhat test tests/math.test.ts

Acknowledgements

Big thanks to the authors of the the - mds1/solidity-trigonometry and the prb-math repositories

Sponsor this Repository

If you would like to support this repository please feel free to make a contribution to this address: 0x74d6E0f5bff59A2a6b3CDe43c26EcAaC31101722

All proceeds will go to the development of this repository. Any contribution is greatly appreciated.

Sponsors

Paul Berg

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.