Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,39 @@
|
|||
func thiele(x, y) {
|
||||
var ρ = y.range.map {|i| [y[i]]*(y.len-i) }
|
||||
|
||||
for i in ^(ρ.end) {
|
||||
ρ[i][1] = ((x[i] - x[i+1]) / (ρ[i][0] - ρ[i+1][0]))
|
||||
}
|
||||
for i in range(2, ρ.end) {
|
||||
for j in range(0, ρ.end - i) {
|
||||
ρ[j][i] = (((x[j]-x[j+i]) / (ρ[j][i-1]-ρ[j+1][i-1])) + ρ[j+1][i-2])
|
||||
}
|
||||
}
|
||||
|
||||
var ρ0 = ρ[0]
|
||||
|
||||
func t(xin) {
|
||||
var a = 0
|
||||
for i in range(ρ0.end, 2, -1) {
|
||||
a = ((xin - x[i-1]) / (ρ0[i] - ρ0[i-2] + a))
|
||||
}
|
||||
y[0] + ((xin-x[0]) / (ρ0[1]+a))
|
||||
}
|
||||
return t
|
||||
}
|
||||
|
||||
# task 1: build 32 row trig table
|
||||
var xVal = range(32).map { |k| k * 0.05 }
|
||||
var tSin = xVal.map { .sin }
|
||||
var tCos = xVal.map { .cos }
|
||||
var tTan = xVal.map { .tan }
|
||||
|
||||
# task 2: define inverses
|
||||
var iSin = thiele(tSin, xVal)
|
||||
var iCos = thiele(tCos, xVal)
|
||||
var iTan = thiele(tTan, xVal)
|
||||
|
||||
# task 3: demonstrate identities
|
||||
say 6*iSin(0.5)
|
||||
say 3*iCos(0.5)
|
||||
say 4*iTan(1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue