using System; using static System.Console; using static System.Math; public class main{ public static void Main(){ double Q,acc=1e-4,eps=1e-4; Func f; int n=0; f = x=>{n++; return Sqrt(x);}; n=0; Q = matlib.open4(f,0,1,acc,eps); WriteLine($"open4 from 0 to 1 Sqrt(x) = {Q:g6} npoints={n}"); n=0; Q = matlib.open4cc(f,0,1,acc,eps); WriteLine($"open4cc from 0 to 1 Sqrt(x) = {Q:g6} npoints={n}"); n=0; Q = integrate.quad(f,0,1,acc,eps); WriteLine($"quad from 0 to 1 Sqrt(x) = {Q:g6} npoints={n}"); WriteLine($"exact = {2.0/3:g6}"); WriteLine($"tolerance = {2.0/3*eps+acc:g2}\n"); f = x=>{n++; return 4*Sqrt(1-x*x);}; n=0; Q = matlib.open4(f,0,1,acc,eps); WriteLine($"open4 from 0 to 1 4*Sqrt(1-x*x) = {Q:g7} npoints={n}"); n=0; Q = matlib.open4cc(f,0,1,acc,eps); WriteLine($"open4cc from 0 to 1 4*Sqrt(1-x*x) = {Q:g7} npoints={n}"); n=0; Q = integrate.quad(f,0,1,acc,eps); WriteLine($"quad from 0 to 1 4*Sqrt(1-x*x) = {Q:g7} npoints={n}"); WriteLine($"exact = {PI:g7}"); WriteLine($"tolerance = {PI*eps+acc:g2}\n"); f = x=>{n++; return Log(x);}; n=0; Q = matlib.open4(f,0,1,acc,eps); WriteLine($"open4 from 0 to 1 Log(x) = {Q:g7} npoints={n}"); n=0; Q = matlib.open4cc(f,0,1,acc,eps); WriteLine($"open4cc from 0 to 1 Log(x) = {Q:g7} npoints={n}"); n=0; Q = integrate.quad(f,0,1,acc,eps); WriteLine($"quad from 0 to 1 Log(x) = {Q:g7} npoints={n}"); WriteLine($"exact = {-1:g7}"); WriteLine($"tolerance = {eps+acc:g2}\n"); f = x=>{n++; return 1/Sqrt(x);}; n=0; Q = matlib.open4(f,0,1,acc,eps); WriteLine($"open4 from 0 to 1 1/Sqrt(x) = {Q:g7} npoints={n}"); n=0; Q = matlib.open4cc(f,0,1,acc,eps); WriteLine($"open4cc from 0 to 1 1/Sqrt(x) = {Q:g7} npoints={n}"); n=0; Q = integrate.quad(f,0,1,acc,eps); WriteLine($"quad from 0 to 1 1/Sqrt(x) = {Q:g7} npoints={n}"); WriteLine($"exact = {2.0:g7}"); WriteLine($"tolerance = {2.0*eps+acc:g2}\n"); f = x=>{n++; return Log(x)/Sqrt(x);}; n=0; Q = matlib.open4(f,0,1,acc,eps); WriteLine($"open4 from 0 to 1 x=>Log(x)/Sqrt(x) = {Q:g7} npoints={n}"); n=0; Q = matlib.open4cc(f,0,1,acc,eps); WriteLine($"open4cc from 0 to 1 x=>Log(x)/Sqrt(x) = {Q:g7} npoints={n}"); n=0; Q = integrate.quad(f,0,1,acc,eps); WriteLine($"quad from 0 to 1 x=>Log(x)/Sqrt(x) = {Q:g7} npoints={n}"); WriteLine($"exact = {-4.0}"); WriteLine($"tolerance = {4.0*eps+acc:g2}"); } }//main