comparison libinterp/corefcn/ellipj.cc @ 17308:5a6caf617f56

ellipj.cc: Use Octave coding conventions for %!demos and %!tests. * libinterp/corefcn/ellipj.cc: Use Octave coding conventions for %!demos and %!tests.
author Rik <rik@octave.org>
date Wed, 21 Aug 2013 17:17:16 -0700
parents 12005245b645
children c7c0dad2f9ac
comparison
equal deleted inserted replaced
17307:4448cc742880 17308:5a6caf617f56
423 /* 423 /*
424 ## demos taken from inst/ellipj.m 424 ## demos taken from inst/ellipj.m
425 425
426 %!demo 426 %!demo
427 %! N = 150; 427 %! N = 150;
428 %! % m = [1-logspace(0,log(eps),N-1), 1]; ## m near 1 428 %! # m = [1-logspace(0,log(eps),N-1), 1]; # m near 1
429 %! % m = [0, logspace(log(eps),0,N-1)]; ## m near 0 429 %! # m = [0, logspace(log(eps),0,N-1)]; # m near 0
430 %! m = linspace(0,1,N); ## m equally spaced 430 %! m = linspace (0,1,N); # m equally spaced
431 %! u = linspace(-20,20,N); 431 %! u = linspace (-20, 20, N);
432 %! M = ones(length(u),1) * m; 432 %! M = ones (length (u), 1) * m;
433 %! U = u' * ones(1, length(m)); 433 %! U = u' * ones (1, length (m));
434 %! [sn, cn, dn] = ellipj(U,M); 434 %! [sn, cn, dn] = ellipj (U,M);
435 %! 435 %!
436 %! %% Plotting 436 %! ## Plotting
437 %! c = colormap(hot(64)); 437 %! c = colormap (hot (64));
438 %! data = {sn,cn,dn}; 438 %! data = {sn,cn,dn};
439 %! dname = {"sn","cn","dn"}; 439 %! dname = {"sn","cn","dn"};
440 %! for i=1:3 440 %! for i=1:3
441 %! subplot(1,3,i); 441 %! subplot (1,3,i);
442 %! data{i}(data{i} > 1) = 1; 442 %! data{i}(data{i} > 1) = 1;
443 %! data{i}(data{i} < -1) = -1; 443 %! data{i}(data{i} < -1) = -1;
444 %! image(m,u,32*data{i}+32); 444 %! image (m,u,32*data{i}+32);
445 %! title(dname{i}); 445 %! title (dname{i});
446 %! end 446 %! endfor
447 %! colormap(c); 447 %! colormap (c);
448 448
449 %!demo 449 %!demo
450 %! N = 200; 450 %! N = 200;
451 %! % m = [1-logspace(0,log(eps),N-1), 1]; ## m near 1 451 %! # m = [1-logspace(0,log(eps),N-1), 1]; # m near 1
452 %! % m = [0, logspace(log(eps),0,N-1)]; ## m near 0 452 %! # m = [0, logspace(log(eps),0,N-1)]; # m near 0
453 %! m = linspace(0,1,N); ## m equally spaced 453 %! m = linspace (0,1,N); # m equally spaced
454 %! u = linspace(0,20,5); 454 %! u = linspace (0,20,5);
455 %! M = ones(length(u),1) * m; 455 %! M = ones (length (u), 1) * m;
456 %! U = u' * ones(1, length(m)); 456 %! U = u' * ones (1, length (m));
457 %! [sn, cn, dn] = ellipj(U,M); 457 %! [sn, cn, dn] = ellipj (U,M);
458 %! 458 %!
459 %! %% Plotting 459 %! ## Plotting
460 %! data = {sn,cn,dn}; 460 %! data = {sn,cn,dn};
461 %! dname = {"sn","cn","dn"}; 461 %! dname = {"sn","cn","dn"};
462 %! for i=1:3 462 %! for i=1:3
463 %! subplot(1,3,i); 463 %! subplot (1,3,i);
464 %! plot(m, data{i}); 464 %! plot (m, data{i});
465 %! title(dname{i}); 465 %! title (dname{i});
466 %! grid on; 466 %! grid on;
467 %! end 467 %! endfor
468 */ 468 */
469 469
470 /* 470 /*
471 ## tests taken from inst/test_sncndn.m 471 ## tests taken from inst/test_sncndn.m
472 472
473 %!test 473 %!test
474 %! k = (tan(pi/8.))^2; m = k*k; 474 %! k = (tan(pi/8.))^2; m = k*k;
475 %! SN = [ 475 %! SN = [
476 %! -1. + I * 0. , -0.8392965923 + 0. * I 476 %! -1. + I * 0. , -0.8392965923 + 0. * I
477 %! -1. + I * 0.2 , -0.8559363407 + 0.108250955 * I 477 %! -1. + I * 0.2 , -0.8559363407 + 0.108250955 * I
478 %! -1. + I * 0.4 , -0.906529758 + 0.2204040232 * I 478 %! -1. + I * 0.4 , -0.906529758 + 0.2204040232 * I
479 %! -1. + I * 0.6 , -0.9931306727 + 0.3403783409 * I 479 %! -1. + I * 0.6 , -0.9931306727 + 0.3403783409 * I
846 %! for y = 0:10 846 %! for y = 0:10
847 %! ur = -1 + x * 0.2; 847 %! ur = -1 + x * 0.2;
848 %! ui = y * 0.2; 848 %! ui = y * 0.2;
849 %! ii = 1 + y + x*11; 849 %! ii = 1 + y + x*11;
850 %! [sn, cn, dn] = ellipj (ur + I * ui, m); 850 %! [sn, cn, dn] = ellipj (ur + I * ui, m);
851 %! assert (SN (ii, 2), sn, tol); 851 %! assert (SN(ii, 2), sn, tol);
852 %! assert (CN (ii, 2), cn, tol); 852 %! assert (CN(ii, 2), cn, tol);
853 %! assert (DN (ii, 2), dn, tol); 853 %! assert (DN(ii, 2), dn, tol);
854 %! endfor 854 %! endfor
855 %! endfor 855 %! endfor
856 856
857 ## tests taken from test_ellipj.m 857 ## tests taken from test_ellipj.m
858 %!test 858 %!test
859 %! u1 = pi/3; m1 = 0; 859 %! u1 = pi/3; m1 = 0;
860 %! res1 = [sin(pi/3), cos(pi/3), 1]; 860 %! res1 = [sin(pi/3), cos(pi/3), 1];
861 %! [sn,cn,dn]=ellipj(u1,m1); 861 %! [sn,cn,dn] = ellipj (u1,m1);
862 %! assert([sn,cn,dn], res1, 10*eps); 862 %! assert ([sn,cn,dn], res1, 10*eps);
863 863
864 %!test 864 %!test
865 %! u2 = log(2); m2 = 1; 865 %! u2 = log(2); m2 = 1;
866 %! res2 = [ 3/5, 4/5, 4/5 ]; 866 %! res2 = [ 3/5, 4/5, 4/5 ];
867 %! [sn,cn,dn]=ellipj(u2,m2); 867 %! [sn,cn,dn] = ellipj (u2,m2);
868 %! assert([sn,cn,dn], res2, 10*eps); 868 %! assert ([sn,cn,dn], res2, 10*eps);
869 869
870 %!test 870 %!test
871 %! u3 = log(2)*1i; m3 = 0; 871 %! u3 = log(2)*1i; m3 = 0;
872 %! res3 = [3i/4,5/4,1]; 872 %! res3 = [3i/4,5/4,1];
873 %! [sn,cn,dn]=ellipj(u3,m3); 873 %! [sn,cn,dn] = ellipj (u3,m3);
874 %! assert([sn,cn,dn], res3, 10*eps); 874 %! assert ([sn,cn,dn], res3, 10*eps);
875 875
876 %!test 876 %!test
877 %! u4 = -1; m4 = tan(pi/8)^4; 877 %! u4 = -1; m4 = tan (pi/8)^4;
878 %! res4 = [-0.8392965923,0.5436738271,0.9895776106]; 878 %! res4 = [-0.8392965923,0.5436738271,0.9895776106];
879 %! [sn,cn,dn]=ellipj(u4, m4); 879 %! [sn,cn,dn] = ellipj (u4, m4);
880 %! assert([sn,cn,dn], res4, 1e-10); 880 %! assert ([sn,cn,dn], res4, 1e-10);
881 881
882 %!test 882 %!test
883 %! u5 = -0.2 + 0.4i; m5 = tan(pi/8)^4; 883 %! u5 = -0.2 + 0.4i; m5 = tan(pi/8)^4;
884 %! res5 = [ -0.2152524522 + 0.402598347i, ... 884 %! res5 = [ -0.2152524522 + 0.402598347i, ...
885 %! 1.059453907 + 0.08179712295i, ... 885 %! 1.059453907 + 0.08179712295i, ...
886 %! 1.001705496 + 0.00254669712i ]; 886 %! 1.001705496 + 0.00254669712i ];
887 %! [sn,cn,dn]=ellipj(u5,m5); 887 %! [sn,cn,dn] = ellipj (u5,m5);
888 %! assert([sn,cn,dn], res5, 1e-9); 888 %! assert ([sn,cn,dn], res5, 1e-9);
889 889
890 %!test 890 %!test
891 %! u6 = 0.2 + 0.6i; m6 = tan(pi/8)^4; 891 %! u6 = 0.2 + 0.6i; m6 = tan(pi/8)^4;
892 %! res6 = [ 0.2369100139 + 0.624633635i, ... 892 %! res6 = [ 0.2369100139 + 0.624633635i, ...
893 %! 1.16200643 - 0.1273503824i, ... 893 %! 1.16200643 - 0.1273503824i, ...
894 %! 1.004913944 - 0.004334880912i ]; 894 %! 1.004913944 - 0.004334880912i ];
895 %! [sn,cn,dn]=ellipj(u6,m6); 895 %! [sn,cn,dn] = ellipj (u6,m6);
896 %! assert([sn,cn,dn], res6, 1e-8); 896 %! assert ([sn,cn,dn], res6, 1e-8);
897 897
898 %!test 898 %!test
899 %! u7 = 0.8 + 0.8i; m7 = tan(pi/8)^4; 899 %! u7 = 0.8 + 0.8i; m7 = tan (pi/8)^4;
900 %! res7 = [0.9588386397 + 0.6107824358i, ... 900 %! res7 = [0.9588386397 + 0.6107824358i, ...
901 %! 0.9245978896 - 0.6334016187i, ... 901 %! 0.9245978896 - 0.6334016187i, ...
902 %! 0.9920785856 - 0.01737733806i ]; 902 %! 0.9920785856 - 0.01737733806i ];
903 %! [sn,cn,dn]=ellipj(u7,m7); 903 %! [sn,cn,dn] = ellipj (u7,m7);
904 %! assert([sn,cn,dn], res7, 1e-10); 904 %! assert ([sn,cn,dn], res7, 1e-10);
905 905
906 %!test 906 %!test
907 %! u=[0,pi/6,pi/4,pi/2]; m=0; 907 %! u=[0,pi/6,pi/4,pi/2]; m=0;
908 %! res = [0,1/2,1/sqrt(2),1;1,cos(pi/6),1/sqrt(2),0;1,1,1,1]; 908 %! res = [0,1/2,1/sqrt(2),1;1,cos(pi/6),1/sqrt(2),0;1,1,1,1];
909 %! [sn,cn,dn]=ellipj(u,m); 909 %! [sn,cn,dn] = ellipj (u,m);
910 %! assert([sn;cn;dn],res, 100*eps); 910 %! assert ([sn;cn;dn],res, 100*eps);
911 %! [sn,cn,dn]=ellipj(u',0); 911 %! [sn,cn,dn] = ellipj (u',0);
912 %! assert([sn,cn,dn],res', 100*eps); 912 %! assert ([sn,cn,dn],res', 100*eps);
913 913
914 ## XXX FIXME XXX 914 ## XXX FIXME XXX
915 ## need to check [real,complex]x[scalar,rowvec,colvec,matrix]x[u,m] 915 ## need to check [real,complex]x[scalar,rowvec,colvec,matrix]x[u,m]
916 916
917 %!test 917 %!test
920 %! ## David Billinghurst <David.Billinghurst@riotinto.com> 920 %! ## David Billinghurst <David.Billinghurst@riotinto.com>
921 %! ## 1 February 2001 921 %! ## 1 February 2001
922 %! u = [ 0.25; 0.25; 0.20; 0.20; 0.672; 0.5]; 922 %! u = [ 0.25; 0.25; 0.20; 0.20; 0.672; 0.5];
923 %! m = [ 0.0; 1.0; 0.19; 0.81; 0.36; 0.9999999999]; 923 %! m = [ 0.0; 1.0; 0.19; 0.81; 0.36; 0.9999999999];
924 %! S = [ sin(0.25); tanh(0.25); 924 %! S = [ sin(0.25); tanh(0.25);
925 %! 0.19842311013970879516; 925 %! 0.19842311013970879516;
926 %! 0.19762082367187648571; 926 %! 0.19762082367187648571;
927 %! 0.6095196917919021945; 927 %! 0.6095196917919021945;
928 %! 0.4621171572617320908 ]; 928 %! 0.4621171572617320908 ];
929 %! C = [ cos(0.25); sech(0.25); 929 %! C = [ cos(0.25); sech(0.25);
930 %! 0.9801164570409401062; 930 %! 0.9801164570409401062;
931 %! 0.9802785369736752032; 931 %! 0.9802785369736752032;
932 %! 0.7927709286533560550; 932 %! 0.7927709286533560550;
933 %! 0.8868188839691764094 ]; 933 %! 0.8868188839691764094 ];
934 %! D = [ 1.0; sech(0.25); 934 %! D = [ 1.0; sech(0.25);
935 %! 0.9962526643271134302; 935 %! 0.9962526643271134302;
936 %! 0.9840560289645665155; 936 %! 0.9840560289645665155;
937 %! 0.9307281387786906491; 937 %! 0.9307281387786906491;
938 %! 0.8868188839812167635 ]; 938 %! 0.8868188839812167635 ];
939 %! [sn,cn,dn] = ellipj(u,m); 939 %! [sn,cn,dn] = ellipj (u,m);
940 %! assert(sn,S,8*eps); 940 %! assert (sn,S,8*eps);
941 %! assert(cn,C,8*eps); 941 %! assert (cn,C,8*eps);
942 %! assert(dn,D,8*eps); 942 %! assert (dn,D,8*eps);
943 943
944 %!error ellipj () 944 %!error ellipj ()
945 %!error ellipj (1) 945 %!error ellipj (1)
946 %!error ellipj (1,2,3,4) 946 %!error ellipj (1,2,3,4)
947 */ 947 */