Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › math › complex › pow Public Namespace pow Doc Source Public Namespace Namespaces Types Functions pub fn pow (z : anytype , s : anytype ) Complex (@TypeOf (z .re , z .im , s .re , s .im )) Returns z raised to the complex power of c.
File math/complex/pow.zig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 const std = @import ("../../std.zig " );
const testing = std .testing ;
const math = std .math ;
const cmath = math .complex ;
const Complex = cmath .Complex ;
/// Returns z raised to the complex power of c.
pub fn pow (z : anytype , s : anytype ) Complex (@TypeOf (z .re , z .im , s .re , s .im )) {
return cmath .exp (cmath .log (z ).mul (s ));
}
test pow {
const epsilon = math .floatEps (f32 );
const a = Complex (f32 ).init (5 , 3 );
const b = Complex (f32 ).init (2.3 , -1.3 );
const c = pow (a , b );
try testing .expectApproxEqAbs (58.049110 , c .re , epsilon );
try testing .expectApproxEqAbs (-101.003433 , c .im , epsilon );
}