Specific float32/float64 procs
I still used generics, but made them choose from `float32` or `float64`. I can rewrite in separate, explicit procs if is wanted
This commit is contained in:
parent
edbd191f74
commit
bfcbe64778
1 changed files with 4 additions and 8 deletions
|
|
@ -16,10 +16,6 @@
|
||||||
## Note that the trigonometric functions naturally operate on radians.
|
## Note that the trigonometric functions naturally operate on radians.
|
||||||
## The helper functions `degToRad` and `radToDeg` provide conversion
|
## The helper functions `degToRad` and `radToDeg` provide conversion
|
||||||
## between radians and degrees.
|
## between radians and degrees.
|
||||||
##
|
|
||||||
## Note that the trigonometric functions naturally operate on radians.
|
|
||||||
## The helper functions `degToRad` and `radToDeg` provide conversion
|
|
||||||
## between radians and degrees.
|
|
||||||
|
|
||||||
include "system/inclrtl"
|
include "system/inclrtl"
|
||||||
{.push debugger:off .} # the user does not want to trace a part
|
{.push debugger:off .} # the user does not want to trace a part
|
||||||
|
|
@ -326,13 +322,13 @@ else:
|
||||||
|
|
||||||
{.pop.}
|
{.pop.}
|
||||||
|
|
||||||
proc degToRad*[T](d: T): float {.inline.} =
|
proc degToRad*[T: float32|float64](d: T): T {.inline.} =
|
||||||
## Convert from degrees to radians
|
## Convert from degrees to radians
|
||||||
result = float(d) * RadPerDeg
|
result = T(d) * RadPerDeg
|
||||||
|
|
||||||
proc radToDeg*[T](d: T): float {.inline.} =
|
proc radToDeg*[T: float32|float64](d: T): T {.inline.} =
|
||||||
## Convert from radians to degrees
|
## Convert from radians to degrees
|
||||||
result = float(d) / RadPerDeg
|
result = T(d) / RadPerDeg
|
||||||
|
|
||||||
proc `mod`*(x, y: float): float =
|
proc `mod`*(x, y: float): float =
|
||||||
result = if y == 0.0: x else: x - y * (x/y).floor
|
result = if y == 0.0: x else: x - y * (x/y).floor
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue