Files
news.gitea.happylizard.me/bin/gems/rouge-4.7.0/lib/rouge/demos/nim
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

28 lines
962 B
Plaintext

import math,strutils
proc fixedWidth(input: string, minFieldSize: int):string {.inline.} =
# Note that field size is a minimum- will expand field if input
# string is larger
if input.startsWith("-"):
return(input & repeatchar(count=(abs(minFieldSize-len(input))),c=' '))
else:
return(" " & input & repeatchar(count=(abs(minFieldSize-len(input))-1),c=' '))
template mathOnInterval(lowbound,highbound:float,counts: int,p:proc) =
block:
var step: float = (highbound - lowbound)/(max(counts,1))
var current: float = lowbound
while current < highbound:
echo($fixedWidth($current,25) & ": " & $fixedWidth($p(current),25))
current += step
echo "Sine of theta from 0 to 2*PI by PI/12"
mathOnInterval(0.0,2.0*PI,12,sin)
echo("\n")
echo "Cosine of theta from 0 to 2*PI by PI/12"
mathOnInterval(0.0,2.0*PI,12,cos)
# The first example above is much the same as:
# for i in 1..100:
# echo($sin( (float(i)/100.0) * 2.0*PI ))