Num Complex Solidity Save

Complex numbers for Solidity

Project README

num_complex_solidity

Complex numbers for Solidity.

Usage

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "./Num_Complex.sol";

contract model {
    Num_Complex num_complex;

    Num_Complex.Complex a = Num_Complex.Complex({re:sd(1e18), im: sd(1e18)});

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

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

        return result;
    }
}

Version 1.0

Functions Description Gas 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
r2 a^2 + b^2 = c^2 2188
fromPolar z=r(cosθ+isinθ) 2518
toPolar z=r(cosθ+isinθ) 5506
atan2 tan^-1 2632
p_atan2 precise tan^-1 3442
atan1to1 tan^-1 from -1 to 1 2496
sqrt (a+bi)^(1/2) 8812
pow (a+bi)^n 18182
exp e^(a+bi) 4986

Documentation

num_complex_solidity documentation

Testing

pnpm i
npx hardhat test tests/math.test.ts

Acknowledgements

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

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.

Formatting

npx prettier --write 'contracts/*.sol'
npx prettier --write '**/*.ts'
Open Source Agenda is not affiliated with "Num Complex Solidity" Project. README Source: partylikeits1983/num-complex-solidity
Stars
52
Open Issues
0
Last Commit
3 months ago

Open Source Agenda Badge

Open Source Agenda Rating