Add tasks for all the new languages

This commit is contained in:
Tina Müller 2016-12-05 23:44:36 +01:00
parent 9dc3c2bb62
commit bba7bfd280
13208 changed files with 134745 additions and 0 deletions

View file

@ -0,0 +1,14 @@
' FB 1.05.0 Win64
#Include "crt/math.bi"
Dim inf As Double = INFINITY
Dim negInf As Double = -INFINITY
Dim notNum As Double = NAN_
Dim negZero As Double = 1.0 / negInf
Print inf, inf / inf
Print negInf, negInf * negInf
Print notNum, notNum + inf + negInf
Print negZero, negZero - 1
Sleep

View file

@ -0,0 +1,12 @@
echo 1e234 * 1e234 # inf
echo 1e234 * -1e234 # -inf
echo 1 / inf # 0
echo inf + -inf # -nan
echo nan # nan
echo nan == nan # false
echo 0.0 == -0.0 # true
echo 0.0 * nan # nan
echo nan * 0.0 # nan
echo 0.0 * inf # -nan
echo inf * 0.0 # -nan

View file

@ -0,0 +1,20 @@
constant inf = 1e300*1e300, -- (works on both 32 and 64 bit)
ninf = -inf,
nan = -(inf/inf),
nzero = -1/inf -- (not supported)
printf(1," inf: %f\n",{inf})
printf(1," ninf: %f\n",{ninf})
printf(1," nan: %f\n",{nan})
printf(1,"*nzero: %f\n",{nzero})
printf(1," inf+2: %f\n",{inf+2})
printf(1," inf+ninf: %f\n",{inf+ninf})
printf(1," 0*inf: %f\n",{0*inf})
printf(1," nan+1: %f\n",{nan+1})
printf(1," nan+nan: %f\n",{nan+nan})
printf(1," inf>1e300: %d\n",{inf>1e300})
printf(1," ninf<1e300: %d\n",{ninf<-1e300})
printf(1,"*nan=nan: %d\n",{nan=nan})
printf(1," nan=42: %d\n",{nan=42})
printf(1,"*nan<0: %d\n",{nan<0})
printf(1," nan>0: %d\n",{nan>0})

View file

@ -0,0 +1,30 @@
var inf = (1 / 0) #=> Inf
var nan = (0 / 0) #=> NaN
var exprs = [
"1.0 / 0.0", "-1.0 / 0.0", "0.0 / 0.0", "- 0.0",
"inf + 1", "5 - inf", "inf * 5", "inf / 5", "inf * 0",
"1.0 / inf", "-1.0 / inf", "inf + inf", "inf - inf",
"inf * inf", "inf / inf", "inf * 0.0", " 0 < inf", "inf == inf",
"nan + 1", "nan * 5", "nan - nan", "nan * inf", "- nan",
"nan == nan", "nan > 0", "nan < 0", "nan == 0", "0.0 == -0.0",
]
exprs.each { |expr|
"%15s => %s\n".printf(expr, eval(expr))
}
say "-"*40
say("NaN equality: ", NaN == nan) #=> true
say("Infinity equality: ", Inf == inf) #=> true
say("-Infinity equality: ", -Inf == -inf) #=> true
say "-"*40
say("sqrt(-1) = ", sqrt(-1)); #=> i
say("tanh(-Inf) = ", tanh(-inf)); #=> -1
say("(-Inf)**2 = ", (-inf)**2); #=> Inf
say("(-Inf)**3 = ", (-inf)**3); #=> -Inf
say("acos(Inf) = ", acos(inf)); #=> Inf*i
say("atan(Inf) = ", atan(inf)); #=> pi/2
say("log(-1) = ", log(-1)); #=> pi*i
say("atanh(Inf) = ", atanh(inf)); #=> -pi/2*i

View file

@ -0,0 +1,12 @@
let negInf = -1.0 / 0.0
let inf = 1.0 / 0.0 //also Double.infinity
let nan = 0.0 / 0.0 //also Double.NaN
let negZero = -2.0 / inf
println("Negative inf: \(negInf)")
println("Positive inf: \(inf)")
println("NaN: \(nan)")
println("Negative 0: \(negZero)")
println("inf + -inf: \(inf + negInf)")
println("0 * NaN: \(0 * nan)")
println("NaN == NaN: \(nan == nan)")

View file

@ -0,0 +1,2 @@
0/0 #=> null
1e1000 #=> 1.7976931348623157e+308

View file

@ -0,0 +1,2 @@
def infinite: 1e1000;
def nan: 0/0;

View file

@ -0,0 +1,8 @@
-0 #=> -0
0 == -0 # => true
infinite == infinite #=> true
infinite == -(-infinite) #=> true
(infinite + infinite) == infinite #=> true
1/infinite #=> 0
nan == nan #=> false # N.B.

View file

@ -0,0 +1,2 @@
nan | isnan #=> true
infinite | isnan #=> false

View file

@ -0,0 +1,2 @@
infinite as $inf | 1 / $inf #=> 0
-0 as $z | $z #=> -0