#!/usr/bin/ruby
func chebft (callback, a, b, n) {
var bma = (0.5 * b-a);
var bpa = (0.5 * b+a);
var pi_n = ((@^n »+» 0.5) »*» (Num.pi / n));
var f = (pi_n »cos»() »*» bma »+» bpa «call« callback);
var sums = (@^n «run« {|i| f »*« ((pi_n »*» i) »cos»()) «+» });
sums »*» (2/n);
}
chebft(func(v){v.cos}, 0, 1, 10).each { |v|
say ("%+.10e" % v);
};