% Main Code % Test 0: Import Data global data test0(); test1(); test2(); test3(); test4(); test5(); test6(); test7(); test8(); test9(); test10(); test11(); test12(); test13(); test14(); test15(); % Test 0: Importing Data function test0() global data function f() filename = 'C:\Users\mfgus\OneDrive\Documents\Varsity Work\BME\Kinetics\Benchmarking Article\RandomRealsExport.csv'; delimiter = {''}; formatSpec = '%f%[^\n\r]'; fileID = fopen(filename,'r'); dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'TextType', 'string', 'EmptyValue', NaN, 'ReturnOnError', false); fclose(fileID); data = [dataArray{1:end-1}]; end testfunc = @()f(); timeit(testfunc) end % Test 1: Data Fitting function test1() X=(0.2:0.22:10)'; Y=(0.2:0.22:10)'; Z=(0.2:0.22:10)'; [XX, YY, ZZ]=meshgrid(X,Y,Z); [XYZ]=[XX(:)'; YY(:)'; ZZ(:)']; g = @(p,x) log(p(1).*x(1,:)) - abs(cos(x(3,:)./p(3))./(p(2).*x(2,:))); options.FunctionTolerance=1e-6; options.OptimalityTolerance=1e-6; options.StepTolerance=1e-6; function f() lsqcurvefit(g,[1 1 100], XYZ, g([120 140 300],XYZ),[],[],options); end testfunc = @()f(); timeit(testfunc) end % Test 2: Digits of Pi function test2() digits(1e6); function f() vpa(pi); end testfunc = @()f(); timeit(testfunc) end % Test 3: Discrete Fourier Transform function test3() global data function f() for i = 1:11 fft(data); end end testfunc = @()f(); timeit(testfunc) end % Test 4: Eigenvalues of a Matrix function test4() global data a = reshape(data(1:176400),[420, 420]); b = diag(data(176401:176820)); m = a*b/a; function f() for i = 1:6 eig(m); end end testfunc = @()f(); timeit(testfunc) end % Test 5: Elementary Functions function test5() global data function f() for i = 1:30 exp(data); sin(data); tan(data); end end testfunc = @()f(); timeit(testfunc) end % Test 6: Gamma Function function test6() global data a = 10.*data(1:1000)+160; function f() for i = 1:1000 gamma(a); end end testfunc = @()f(); timeit(testfunc) end % Test 7: Large Integer Multiplication function test7() global data a = (convergent(1000.*data)).^3; a = [a(1:524288) a(524289:end)]; function f() for i = 1:524288 a(i,1).*a(i,2); end end testfunc = @()f(); timeit(testfunc) end % Test 8: Matrix Arithmetic function test8() global data m = reshape(data(1:705600),[840,840])'; function f() for i = 1:50 (1.0 + 0.5*m).^127; end end testfunc = @()f(); timeit(testfunc) end % Test 9: Matrix Multiplication function test9() global data m = reshape(data,[1024,1024])'; function f() for i = 1:12 m*m; end end testfunc = @()f(); timeit(testfunc) end % Test 10: Matrix Transpose function test10() global data m = reshape(data,[1024,1024])'; function f() for i = 1:80 m'; end end testfunc = @()f(); timeit(testfunc) end % Test 11: Numerical Integration function test11() fun = @(x,y) sin(x.^2+y.^2); function f() integral2(fun, -2.6*pi, 2.6*pi, -2.6*pi, 2.6*pi); end testfunc = @()f(); timeit(testfunc) end % Test 12: Polynomial Expansion function test12() global x function f() syms x sol = 1; for i = 1:350 sol = sol.*(i+x).^3; end expand(sol); end testfunc = @()f(); timeit(testfunc) end % Test 13: Random Number Sort function test13() global data a = 50000.*data; function f() for i = 1:15 sort(a); end end testfunc = @()f(); timeit(testfunc) end % Test 14: Singular Value Decomposition function test14() global data m = reshape(data,[1024,1024])'; function f() svd(m); end testfunc = @()f(); timeit(testfunc) end % Test 15: Solving a Linear System function test15() global data m = reshape(data,[1024,1024])'; v = data(51814:52837); function f() for i = 1:16 linsolve(m,v); end end testfunc = @()f(); timeit(testfunc) end