partylikeits1983
num-complex-solidity
Solidity

Complex numbers for Solidity

Last updated Dec 23, 2025
56
Stars
5
Forks
0
Issues
0
Stars/day
Attention Score
25
Language breakdown
Solidity 88.6%
TypeScript 11.4%
Files click to expand
README

numcomplexsolidity

Complex numbers for Solidity.

Usage

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

import "./Num_Complex.sol";

contract model { NumComplex numcomplex;

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

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

NumComplex.Complex memory result = numcomplex.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

numcomplex_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'

© 2026 GitRepoTrend · partylikeits1983/num-complex-solidity · Updated daily from GitHub