Mercurial > hg > octave-nkf
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 */ |