Import std.math.fixed
std.math.fixed
Fixed32 and Fixed64: fixed-point numbers, 16.16 in an Int32 and 32.32 in an Int64, whose math is all integer math, so the same program gives the same bits on every OS and CPU, in debug builds and release, for lockstep multiplayer and replays. * rounds to the nearest, halves up, and / to the nearest, halves away from 0; Sqrt rounds to the nearest; Sin and Cos reduce their angle by Pi / 2 to 94 bits and sum their series in 62, then round, and where that lands too near halfway to tell which way, work it out again in 124 bits, from Pi / 2 to 160. Overflow traps in debug builds and wraps in release, as an Int's does, and dividing by 0 panics.
std/math/fixed.fb
Types
Fixed32
struct
Public Struct Fixed32 Implements Numeric, Comparable, Hashable, Bounded, Printable, Defaultable
A number with 16 bits for its whole part, its sign among them, and 16 after the point: from -32768 to 32767.99998, in steps of 1 / 65536.
-
The Fixed32 these
bitsare, as Raw gives them. -
The whole number. One outside -32768 to 32767 panics.
-
The Double, rounded to the nearest Fixed32, halves away from 0. One outside a Fixed32's range, or NaN, panics.
-
The Float, rounded to the nearest Fixed32, halves away from 0. One outside a Fixed32's range, or NaN, panics.
-
The number that adding leaves alone: 0.
Doc from
std.core.interfaces.Numeric.Zero. -
The number that multiplying leaves alone: 1.
Doc from
std.core.interfaces.Numeric.One. -
The value to start from, like 0 for a number, "" for a String, or an empty collection.
-
The type's lowest value: a float's lowest finite one.
Doc from
std.math.numbers.Bounded.MinValue. -
The type's highest value: a float's highest finite one.
Doc from
std.math.numbers.Bounded.MaxValue. -
The
valueas a Double, rounded to the nearest one where a Long's is too large to hold.Doc from
std.math.numbers.Bounded.DoubleValue. -
Pi, and a turn, 2 Pi, rounded to a Fixed32's steps.
-
A turn, 2 Pi, rounded to a Fixed32's steps.
-
The value's bits, the value times 65536.
-
The value as a Double, which holds it exactly.
-
The value as a Float, rounded to the nearest.
-
The whole part, toward 0, as As takes a Float's.
-
The value as a Fixed64, which holds it exactly.
-
Its text, as a string interpolation like "{value}" shows it.
Doc from
std.core.interfaces.Printable.ToString. -
aandbadded up.Doc from
std.core.interfaces.Numeric.Operator+. -
btaken away froma.Doc from
std.core.interfaces.Numeric.Operator-. -
anegated. -
Whether
acomes beforeb.Doc from
std.core.interfaces.Comparable.Operator<. -
aandbmultiplied together.Doc from
std.core.interfaces.Numeric.Operator*. -
atimesb. -
atimesb. -
adivided byb.Doc from
std.core.interfaces.Numeric.Operator/. -
adivided byb.
Fixed64
struct
Public Struct Fixed64 Implements Numeric, Comparable, Hashable, Bounded, Printable, Defaultable
A number with 32 bits for its whole part, its sign among them, and 32 after the point: from -2147483648 to 2147483647.9999999998, in steps of 1 / 4294967296.
-
The Fixed64 these
bitsare, as Raw gives them. -
The whole number. One outside an Int's range panics.
-
The Double, rounded to the nearest Fixed64, halves away from 0. One outside a Fixed64's range, or NaN, panics.
-
The Float, rounded to the nearest Fixed64. One outside a Fixed64's range, or NaN, panics.
-
The number that adding leaves alone: 0.
Doc from
std.core.interfaces.Numeric.Zero. -
The number that multiplying leaves alone: 1.
Doc from
std.core.interfaces.Numeric.One. -
The value to start from, like 0 for a number, "" for a String, or an empty collection.
-
The type's lowest value: a float's lowest finite one.
Doc from
std.math.numbers.Bounded.MinValue. -
The type's highest value: a float's highest finite one.
Doc from
std.math.numbers.Bounded.MaxValue. -
The
valueas a Double, rounded to the nearest one where a Long's is too large to hold.Doc from
std.math.numbers.Bounded.DoubleValue. -
Pi, and a turn, 2 Pi, rounded to a Fixed64's steps.
-
A turn, 2 Pi, rounded to a Fixed64's steps.
-
The value's bits, the value times 4294967296.
-
The value as a Double, rounded to the nearest, which holds it exactly up to 2^21.
-
The value as a Float, rounded to the nearest: once, from the bits, since a Double of them can round already.
-
The whole part, toward 0, as As takes a Float's.
-
The value as a Fixed32, rounded to the nearest, halves up. One outside a Fixed32's range overflows, as Narrowed says.
-
The value in decimal, from its bits: its whole part, and the fewest digits after the point that are nearer it than any other Fixed64, so no two print alike and none prints past what it holds.
-
aandbadded up.Doc from
std.core.interfaces.Numeric.Operator+. -
btaken away froma.Doc from
std.core.interfaces.Numeric.Operator-. -
anegated. -
Whether
acomes beforeb.Doc from
std.core.interfaces.Comparable.Operator<. -
aandbmultiplied together.Doc from
std.core.interfaces.Numeric.Operator*. -
atimesb. -
atimesb. -
adivided byb.Doc from
std.core.interfaces.Numeric.Operator/. -
adivided byb.
Functions
Sqrt
function
@PanicsAtCaller Public Function Sqrt(value: Fixed32): Fixed32
The square root, rounded to the nearest. A negative value panics.
Sqrt
function
@PanicsAtCaller Public Function Sqrt(value: Fixed64): Fixed64
The square root, rounded to the nearest. A negative value panics.
Sin
function
Public Function Sin(angle: Fixed32): Fixed32
The sine of an angle in radians, the same bits everywhere.
Cos
function
Public Function Cos(angle: Fixed32): Fixed32
The cosine of an angle in radians, the same bits everywhere.
Sin
function
Public Function Sin(angle: Fixed64): Fixed64
The sine of an angle in radians, the same bits everywhere.
Cos
function
Public Function Cos(angle: Fixed64): Fixed64
The cosine of an angle in radians, the same bits everywhere.
Report an issue with this page or with FutureBlitz on GitHub.