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 › proj Public Namespace proj Doc Source Public Namespace Namespaces Types Functions pub fn proj (z : anytype ) Complex (@TypeOf (z .re , z .im )) Returns the projection of z onto the riemann sphere.
File math/complex/proj.zig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 const std = @import ("../../std.zig " );
const testing = std .testing ;
const math = std .math ;
const cmath = math .complex ;
const Complex = cmath .Complex ;
/// Returns the projection of z onto the riemann sphere.
pub fn proj (z : anytype ) Complex (@TypeOf (z .re , z .im )) {
const T = @TypeOf (z .re , z .im );
if (math .isInf (z .re ) or math .isInf (z .im )) {
return Complex (T ).init (math .inf (T ), math .copysign (@as (T , 0.0 ), z .re ));
}
return Complex (T ).init (z .re , z .im );
}
test proj {
const a = Complex (f32 ).init (5 , 3 );
const c = proj (a );
try testing .expectEqual (5 , c .re );
try testing .expectEqual (3 , c .im );
}