[svn:parrot] r46781 - in trunk: src/dynoplibs src/ops t/dynoplibs t/op
plobsing at svn.parrot.org
plobsing at svn.parrot.org
Wed May 19 07:44:39 UTC 2010
Author: plobsing
Date: Wed May 19 07:44:39 2010
New Revision: 46781
URL: https://trac.parrot.org/parrot/changeset/46781
Log:
move lcm, gcd, and fact opcodes to dynopslibs/obscure
these may not be obscure as algorithms, but as opcodes they certainly are
Modified:
trunk/src/dynoplibs/obscure.ops
trunk/src/ops/math.ops
trunk/src/ops/ops.num
trunk/t/dynoplibs/obscure.t
trunk/t/op/arithmetics.t
trunk/t/op/integer.t
trunk/t/op/number.t
Modified: trunk/src/dynoplibs/obscure.ops
==============================================================================
--- trunk/src/dynoplibs/obscure.ops Wed May 19 05:04:24 2010 (r46780)
+++ trunk/src/dynoplibs/obscure.ops Wed May 19 07:44:39 2010 (r46781)
@@ -94,6 +94,109 @@
$1 = 1.0 - cos($2);
}
+########################################
+
+=item B<gcd>(out INT, in INT, in INT)
+
+Greatest Common divisor of $2 and $3.
+
+=cut
+
+inline op gcd(out INT, in INT, in INT) :advanced_math {
+ INTVAL p = 0;
+ INTVAL a = $2 < 0 ? -$2 : $2;
+ INTVAL b = $3 < 0 ? -$3 : $3;
+
+ if (a==0) { $1=b; goto NEXT(); }
+ if (b==0) { $1=a; goto NEXT(); }
+
+ while (!((a | b) & 1)) {
+ a>>=1;
+ b>>=1;
+ p++;
+ }
+
+ while (a>0) {
+ if (!(a & 1)) a>>=1;
+ else if (!(b & 1)) b>>=1;
+ else if (a<b) b = (b-a)>>1;
+ else a = (a-b)>>1;
+ }
+
+ $1 = b<<p;
+}
+
+
+########################################
+
+=item B<lcm>(out INT, in INT, in INT)
+
+Least Common Multiple of $2 and $3
+
+=cut
+
+inline op lcm(out INT, in INT, in INT) :advanced_math {
+ INTVAL gcd = 0;
+ INTVAL p = 0;
+ INTVAL a = $2 < 0 ? -$2 : $2;
+ INTVAL b = $3 < 0 ? -$3 : $3;
+ INTVAL saved_var1 = a, saved_var2 = b;
+
+ if (a==0 || b==0) { $1=0; goto NEXT(); }
+
+ while (!((a | b) & 1)) {
+ a>>=1;
+ b>>=1;
+ p++;
+ }
+
+ while (a>0) {
+ if (!(a & 1)) a>>=1;
+ else if (!(b & 1)) b>>=1;
+ else if (a<b) b = (b-a)>>1;
+ else a = (a-b)>>1;
+ }
+
+ gcd = b<<p;
+ saved_var1 /= gcd;
+ $1 = saved_var1*saved_var2;
+}
+
+########################################
+
+=item B<fact>(out INT, in INT)
+
+=item B<fact>(out NUM, in INT)
+
+Factorial, n!. Calculates the product of 1 to N.
+
+=cut
+
+inline op fact(out INT, in INT) :advanced_math {
+ /* Coercing a negative to a UINT can get pretty ugly
+ * in this situation. */
+ INTVAL i = $2;
+ UINTVAL q = 1;
+ while (i>0) {
+ q = q*i;
+ i--;
+ }
+ $1 = q;
+}
+
+inline op fact(out NUM, in INT) :advanced_math {
+ /* Coercing a negative to a UINT can get pretty ugly
+ * in this situation. */
+ INTVAL i = $2;
+ FLOATVAL q = 1;
+ while (i>0) {
+ q = q*i;
+ i--;
+ }
+ $1 = q;
+}
+
+
=back
Modified: trunk/src/ops/math.ops
==============================================================================
--- trunk/src/ops/math.ops Wed May 19 05:04:24 2010 (r46780)
+++ trunk/src/ops/math.ops Wed May 19 07:44:39 2010 (r46781)
@@ -1169,122 +1169,6 @@
###############################################################################
-=head2 Other mathematical operations
-
-Implementations of various mathematical operations
-
-=over 4
-
-=cut
-
-########################################
-
-=item B<gcd>(out INT, in INT, in INT)
-
-Greatest Common divisor of $2 and $3.
-
-=cut
-
-inline op gcd(out INT, in INT, in INT) :advanced_math {
- INTVAL p = 0;
- INTVAL a = $2 < 0 ? -$2 : $2;
- INTVAL b = $3 < 0 ? -$3 : $3;
-
- if (a==0) { $1=b; goto NEXT(); }
- if (b==0) { $1=a; goto NEXT(); }
-
- while (!((a | b) & 1)) {
- a>>=1;
- b>>=1;
- p++;
- }
-
- while (a>0) {
- if (!(a & 1)) a>>=1;
- else if (!(b & 1)) b>>=1;
- else if (a<b) b = (b-a)>>1;
- else a = (a-b)>>1;
- }
-
- $1 = b<<p;
-}
-
-
-########################################
-
-=item B<lcm>(out INT, in INT, in INT)
-
-Least Common Multiple of $2 and $3
-
-=cut
-
-inline op lcm(out INT, in INT, in INT) :advanced_math {
- INTVAL gcd = 0;
- INTVAL p = 0;
- INTVAL a = $2 < 0 ? -$2 : $2;
- INTVAL b = $3 < 0 ? -$3 : $3;
- INTVAL saved_var1 = a, saved_var2 = b;
-
- if (a==0 || b==0) { $1=0; goto NEXT(); }
-
- while (!((a | b) & 1)) {
- a>>=1;
- b>>=1;
- p++;
- }
-
- while (a>0) {
- if (!(a & 1)) a>>=1;
- else if (!(b & 1)) b>>=1;
- else if (a<b) b = (b-a)>>1;
- else a = (a-b)>>1;
- }
-
- gcd = b<<p;
- saved_var1 /= gcd;
- $1 = saved_var1*saved_var2;
-}
-
-########################################
-
-=item B<fact>(out INT, in INT)
-
-=item B<fact>(out NUM, in INT)
-
-Factorial, n!. Calculates the product of 1 to N.
-
-=cut
-
-inline op fact(out INT, in INT) :advanced_math {
- /* Coercing a negative to a UINT can get pretty ugly
- * in this situation. */
- INTVAL i = $2;
- UINTVAL q = 1;
- while (i>0) {
- q = q*i;
- i--;
- }
- $1 = q;
-}
-
-inline op fact(out NUM, in INT) :advanced_math {
- /* Coercing a negative to a UINT can get pretty ugly
- * in this situation. */
- INTVAL i = $2;
- FLOATVAL q = 1;
- while (i>0) {
- q = q*i;
- i--;
- }
- $1 = q;
-}
-
-=back
-
-=cut
-
-###############################################################################
-
=head1 COPYRIGHT
Copyright (C) 2001-2009, Parrot Foundation.
Modified: trunk/src/ops/ops.num
==============================================================================
--- trunk/src/ops/ops.num Wed May 19 05:04:24 2010 (r46780)
+++ trunk/src/ops/ops.num Wed May 19 07:44:39 2010 (r46781)
@@ -709,546 +709,538 @@
sinh_n_n 685
tan_n_n 686
tanh_n_n 687
-gcd_i_i_i 688
-gcd_i_ic_i 689
-gcd_i_i_ic 690
-lcm_i_i_i 691
-lcm_i_ic_i 692
-lcm_i_i_ic 693
-fact_i_i 694
-fact_n_i 695
-callmethodcc_p_s 696
-callmethodcc_p_sc 697
-callmethodcc_p_p 698
-callmethod_p_s_p 699
-callmethod_p_sc_p 700
-callmethod_p_p_p 701
-tailcallmethod_p_s 702
-tailcallmethod_p_sc 703
-tailcallmethod_p_p 704
-addmethod_p_s_p 705
-addmethod_p_sc_p 706
-can_i_p_s 707
-can_i_p_sc 708
-does_i_p_s 709
-does_i_p_sc 710
-does_i_p_p 711
-does_i_p_pc 712
-isa_i_p_s 713
-isa_i_p_sc 714
-isa_i_p_p 715
-isa_i_p_pc 716
-newclass_p_s 717
-newclass_p_sc 718
-newclass_p_p 719
-newclass_p_pc 720
-subclass_p_p 721
-subclass_p_pc 722
-subclass_p_p_s 723
-subclass_p_pc_s 724
-subclass_p_p_sc 725
-subclass_p_pc_sc 726
-subclass_p_p_p 727
-subclass_p_pc_p 728
-subclass_p_p_pc 729
-subclass_p_pc_pc 730
-subclass_p_s 731
-subclass_p_sc 732
-subclass_p_s_s 733
-subclass_p_sc_s 734
-subclass_p_s_sc 735
-subclass_p_sc_sc 736
-subclass_p_s_p 737
-subclass_p_sc_p 738
-subclass_p_s_pc 739
-subclass_p_sc_pc 740
-get_class_p_s 741
-get_class_p_sc 742
-get_class_p_p 743
-get_class_p_pc 744
-class_p_p 745
-addparent_p_p 746
-removeparent_p_p 747
-addrole_p_p 748
-addattribute_p_s 749
-addattribute_p_sc 750
-removeattribute_p_s 751
-removeattribute_p_sc 752
-getattribute_p_p_s 753
-getattribute_p_p_sc 754
-getattribute_p_p_p_s 755
-getattribute_p_p_pc_s 756
-getattribute_p_p_p_sc 757
-getattribute_p_p_pc_sc 758
-setattribute_p_s_p 759
-setattribute_p_sc_p 760
-setattribute_p_p_s_p 761
-setattribute_p_pc_s_p 762
-setattribute_p_p_sc_p 763
-setattribute_p_pc_sc_p 764
-inspect_p_p 765
-inspect_p_pc 766
-inspect_p_p_s 767
-inspect_p_pc_s 768
-inspect_p_p_sc 769
-inspect_p_pc_sc 770
-new_p_s 771
-new_p_sc 772
-new_p_s_p 773
-new_p_sc_p 774
-new_p_s_pc 775
-new_p_sc_pc 776
-new_p_p 777
-new_p_pc 778
-new_p_p_p 779
-new_p_pc_p 780
-new_p_p_pc 781
-new_p_pc_pc 782
-root_new_p_p 783
-root_new_p_pc 784
-root_new_p_p_p 785
-root_new_p_pc_p 786
-root_new_p_p_pc 787
-root_new_p_pc_pc 788
-typeof_s_p 789
-typeof_p_p 790
-get_repr_s_p 791
-find_method_p_p_s 792
-find_method_p_p_sc 793
-defined_i_p 794
-defined_i_p_ki 795
-defined_i_p_kic 796
-defined_i_p_k 797
-defined_i_p_kc 798
-exists_i_p_ki 799
-exists_i_p_kic 800
-exists_i_p_k 801
-exists_i_p_kc 802
-delete_p_k 803
-delete_p_kc 804
-delete_p_ki 805
-delete_p_kic 806
-elements_i_p 807
-push_p_i 808
-push_p_ic 809
-push_p_n 810
-push_p_nc 811
-push_p_s 812
-push_p_sc 813
-push_p_p 814
-pop_i_p 815
-pop_n_p 816
-pop_s_p 817
-pop_p_p 818
-unshift_p_i 819
-unshift_p_ic 820
-unshift_p_n 821
-unshift_p_nc 822
-unshift_p_s 823
-unshift_p_sc 824
-unshift_p_p 825
-shift_i_p 826
-shift_n_p 827
-shift_s_p 828
-shift_p_p 829
-splice_p_p_i_i 830
-splice_p_p_ic_i 831
-splice_p_p_i_ic 832
-splice_p_p_ic_ic 833
-setprop_p_s_p 834
-setprop_p_sc_p 835
-getprop_p_s_p 836
-getprop_p_sc_p 837
-delprop_p_s 838
-delprop_p_sc 839
-prophash_p_p 840
-freeze_s_p 841
-thaw_p_s 842
-thaw_p_sc 843
-add_multi_s_s_p 844
-add_multi_sc_s_p 845
-add_multi_s_sc_p 846
-add_multi_sc_sc_p 847
-find_multi_p_s_s 848
-find_multi_p_sc_s 849
-find_multi_p_s_sc 850
-find_multi_p_sc_sc 851
-register_p 852
-unregister_p 853
-box_p_i 854
-box_p_ic 855
-box_p_n 856
-box_p_nc 857
-box_p_s 858
-box_p_sc 859
-iter_p_p 860
-morph_p_p 861
-morph_p_pc 862
-clone_s_s 863
-clone_s_sc 864
-exchange_i_i 865
-exchange_p_p 866
-exchange_n_n 867
-exchange_s_s 868
-set_i_i 869
-set_i_ic 870
-set_i_n 871
-set_i_nc 872
-set_i_s 873
-set_i_sc 874
-set_n_n 875
-set_n_nc 876
-set_n_i 877
-set_n_ic 878
-set_n_s 879
-set_n_sc 880
-set_n_p 881
-set_s_p 882
-set_s_s 883
-set_s_sc 884
-set_s_i 885
-set_s_ic 886
-set_s_n 887
-set_s_nc 888
-set_p_pc 889
-set_p_p 890
-set_p_i 891
-set_p_ic 892
-set_p_n 893
-set_p_nc 894
-set_p_s 895
-set_p_sc 896
-set_i_p 897
-assign_p_p 898
-assign_p_i 899
-assign_p_ic 900
-assign_p_n 901
-assign_p_nc 902
-assign_p_s 903
-assign_p_sc 904
-assign_s_s 905
-assign_s_sc 906
-setref_p_p 907
-deref_p_p 908
-setp_ind_i_p 909
-setp_ind_ic_p 910
-setn_ind_i_n 911
-setn_ind_ic_n 912
-setn_ind_i_nc 913
-setn_ind_ic_nc 914
-sets_ind_i_s 915
-sets_ind_ic_s 916
-sets_ind_i_sc 917
-sets_ind_ic_sc 918
-seti_ind_i_i 919
-seti_ind_ic_i 920
-seti_ind_i_ic 921
-seti_ind_ic_ic 922
-set_p_ki_i 923
-set_p_kic_i 924
-set_p_ki_ic 925
-set_p_kic_ic 926
-set_p_ki_n 927
-set_p_kic_n 928
-set_p_ki_nc 929
-set_p_kic_nc 930
-set_p_ki_s 931
-set_p_kic_s 932
-set_p_ki_sc 933
-set_p_kic_sc 934
-set_p_ki_p 935
-set_p_kic_p 936
-set_i_p_ki 937
-set_i_p_kic 938
-set_n_p_ki 939
-set_n_p_kic 940
-set_s_p_ki 941
-set_s_p_kic 942
-set_p_p_ki 943
-set_p_p_kic 944
-set_p_k_i 945
-set_p_kc_i 946
-set_p_k_ic 947
-set_p_kc_ic 948
-set_p_k_n 949
-set_p_kc_n 950
-set_p_k_nc 951
-set_p_kc_nc 952
-set_p_k_s 953
-set_p_kc_s 954
-set_p_k_sc 955
-set_p_kc_sc 956
-set_p_k_p 957
-set_p_kc_p 958
-set_i_p_k 959
-set_i_p_kc 960
-set_n_p_k 961
-set_n_p_kc 962
-set_s_p_k 963
-set_s_p_kc 964
-set_p_p_k 965
-set_p_p_kc 966
-clone_p_p 967
-clone_p_p_p 968
-clone_p_p_pc 969
-copy_p_p 970
-null_s 971
-null_i 972
-null_p 973
-null_n 974
-cleari 975
-clearn 976
-clears 977
-clearp 978
-ord_i_s 979
-ord_i_sc 980
-ord_i_s_i 981
-ord_i_sc_i 982
-ord_i_s_ic 983
-ord_i_sc_ic 984
-chr_s_i 985
-chr_s_ic 986
-chopn_s_s_i 987
-chopn_s_sc_i 988
-chopn_s_s_ic 989
-chopn_s_sc_ic 990
-concat_s_s 991
-concat_s_sc 992
-concat_p_p 993
-concat_p_s 994
-concat_p_sc 995
-concat_s_s_s 996
-concat_s_sc_s 997
-concat_s_s_sc 998
-concat_p_p_s 999
-concat_p_p_sc 1000
-concat_p_p_p 1001
-repeat_s_s_i 1002
-repeat_s_sc_i 1003
-repeat_s_s_ic 1004
-repeat_s_sc_ic 1005
-repeat_p_p_i 1006
-repeat_p_p_ic 1007
-repeat_p_p_p 1008
-repeat_p_i 1009
-repeat_p_ic 1010
-repeat_p_p 1011
-length_i_s 1012
-length_i_sc 1013
-bytelength_i_s 1014
-bytelength_i_sc 1015
-pin_s 1016
-unpin_s 1017
-substr_s_s_i 1018
-substr_s_sc_i 1019
-substr_s_s_ic 1020
-substr_s_sc_ic 1021
-substr_s_s_i_i 1022
-substr_s_sc_i_i 1023
-substr_s_s_ic_i 1024
-substr_s_sc_ic_i 1025
-substr_s_s_i_ic 1026
-substr_s_sc_i_ic 1027
-substr_s_s_ic_ic 1028
-substr_s_sc_ic_ic 1029
-substr_s_p_i_i 1030
-substr_s_p_ic_i 1031
-substr_s_p_i_ic 1032
-substr_s_p_ic_ic 1033
-replace_s_s_i_i_s 1034
-replace_s_sc_i_i_s 1035
-replace_s_s_ic_i_s 1036
-replace_s_sc_ic_i_s 1037
-replace_s_s_i_ic_s 1038
-replace_s_sc_i_ic_s 1039
-replace_s_s_ic_ic_s 1040
-replace_s_sc_ic_ic_s 1041
-replace_s_s_i_i_sc 1042
-replace_s_sc_i_i_sc 1043
-replace_s_s_ic_i_sc 1044
-replace_s_sc_ic_i_sc 1045
-replace_s_s_i_ic_sc 1046
-replace_s_sc_i_ic_sc 1047
-replace_s_s_ic_ic_sc 1048
-replace_s_sc_ic_ic_sc 1049
-index_i_s_s 1050
-index_i_sc_s 1051
-index_i_s_sc 1052
-index_i_sc_sc 1053
-index_i_s_s_i 1054
-index_i_sc_s_i 1055
-index_i_s_sc_i 1056
-index_i_sc_sc_i 1057
-index_i_s_s_ic 1058
-index_i_sc_s_ic 1059
-index_i_s_sc_ic 1060
-index_i_sc_sc_ic 1061
-sprintf_s_s_p 1062
-sprintf_s_sc_p 1063
-sprintf_p_p_p 1064
-new_s 1065
-new_s_i 1066
-new_s_ic 1067
-stringinfo_i_s_i 1068
-stringinfo_i_sc_i 1069
-stringinfo_i_s_ic 1070
-stringinfo_i_sc_ic 1071
-upcase_s_s 1072
-upcase_s_sc 1073
-downcase_s_s 1074
-downcase_s_sc 1075
-titlecase_s_s 1076
-titlecase_s_sc 1077
-join_s_s_p 1078
-join_s_sc_p 1079
-split_p_s_s 1080
-split_p_sc_s 1081
-split_p_s_sc 1082
-split_p_sc_sc 1083
-charset_i_s 1084
-charset_i_sc 1085
-charsetname_s_i 1086
-charsetname_s_ic 1087
-find_charset_i_s 1088
-find_charset_i_sc 1089
-trans_charset_s_s_i 1090
-trans_charset_s_sc_i 1091
-trans_charset_s_s_ic 1092
-trans_charset_s_sc_ic 1093
-encoding_i_s 1094
-encoding_i_sc 1095
-encodingname_s_i 1096
-encodingname_s_ic 1097
-find_encoding_i_s 1098
-find_encoding_i_sc 1099
-trans_encoding_s_s_i 1100
-trans_encoding_s_sc_i 1101
-trans_encoding_s_s_ic 1102
-trans_encoding_s_sc_ic 1103
-is_cclass_i_i_s_i 1104
-is_cclass_i_ic_s_i 1105
-is_cclass_i_i_sc_i 1106
-is_cclass_i_ic_sc_i 1107
-is_cclass_i_i_s_ic 1108
-is_cclass_i_ic_s_ic 1109
-is_cclass_i_i_sc_ic 1110
-is_cclass_i_ic_sc_ic 1111
-find_cclass_i_i_s_i_i 1112
-find_cclass_i_ic_s_i_i 1113
-find_cclass_i_i_sc_i_i 1114
-find_cclass_i_ic_sc_i_i 1115
-find_cclass_i_i_s_ic_i 1116
-find_cclass_i_ic_s_ic_i 1117
-find_cclass_i_i_sc_ic_i 1118
-find_cclass_i_ic_sc_ic_i 1119
-find_cclass_i_i_s_i_ic 1120
-find_cclass_i_ic_s_i_ic 1121
-find_cclass_i_i_sc_i_ic 1122
-find_cclass_i_ic_sc_i_ic 1123
-find_cclass_i_i_s_ic_ic 1124
-find_cclass_i_ic_s_ic_ic 1125
-find_cclass_i_i_sc_ic_ic 1126
-find_cclass_i_ic_sc_ic_ic 1127
-find_not_cclass_i_i_s_i_i 1128
-find_not_cclass_i_ic_s_i_i 1129
-find_not_cclass_i_i_sc_i_i 1130
-find_not_cclass_i_ic_sc_i_i 1131
-find_not_cclass_i_i_s_ic_i 1132
-find_not_cclass_i_ic_s_ic_i 1133
-find_not_cclass_i_i_sc_ic_i 1134
-find_not_cclass_i_ic_sc_ic_i 1135
-find_not_cclass_i_i_s_i_ic 1136
-find_not_cclass_i_ic_s_i_ic 1137
-find_not_cclass_i_i_sc_i_ic 1138
-find_not_cclass_i_ic_sc_i_ic 1139
-find_not_cclass_i_i_s_ic_ic 1140
-find_not_cclass_i_ic_s_ic_ic 1141
-find_not_cclass_i_i_sc_ic_ic 1142
-find_not_cclass_i_ic_sc_ic_ic 1143
-escape_s_s 1144
-compose_s_s 1145
-compose_s_sc 1146
-spawnw_i_s 1147
-spawnw_i_sc 1148
-spawnw_i_p 1149
-err_i 1150
-err_s 1151
-err_s_i 1152
-err_s_ic 1153
-time_i 1154
-time_n 1155
-gmtime_s_i 1156
-gmtime_s_ic 1157
-localtime_s_i 1158
-localtime_s_ic 1159
-decodetime_p_i 1160
-decodetime_p_ic 1161
-decodelocaltime_p_i 1162
-decodelocaltime_p_ic 1163
-sysinfo_s_i 1164
-sysinfo_s_ic 1165
-sysinfo_i_i 1166
-sysinfo_i_ic 1167
-sleep_i 1168
-sleep_ic 1169
-sleep_n 1170
-sleep_nc 1171
-store_lex_s_p 1172
-store_lex_sc_p 1173
-store_dynamic_lex_s_p 1174
-store_dynamic_lex_sc_p 1175
-find_lex_p_s 1176
-find_lex_p_sc 1177
-find_dynamic_lex_p_s 1178
-find_dynamic_lex_p_sc 1179
-find_caller_lex_p_s 1180
-find_caller_lex_p_sc 1181
-get_namespace_p 1182
-get_namespace_p_p 1183
-get_namespace_p_pc 1184
-get_hll_namespace_p 1185
-get_hll_namespace_p_p 1186
-get_hll_namespace_p_pc 1187
-get_root_namespace_p 1188
-get_root_namespace_p_p 1189
-get_root_namespace_p_pc 1190
-get_global_p_s 1191
-get_global_p_sc 1192
-get_global_p_p_s 1193
-get_global_p_pc_s 1194
-get_global_p_p_sc 1195
-get_global_p_pc_sc 1196
-get_hll_global_p_s 1197
-get_hll_global_p_sc 1198
-get_hll_global_p_p_s 1199
-get_hll_global_p_pc_s 1200
-get_hll_global_p_p_sc 1201
-get_hll_global_p_pc_sc 1202
-get_root_global_p_s 1203
-get_root_global_p_sc 1204
-get_root_global_p_p_s 1205
-get_root_global_p_pc_s 1206
-get_root_global_p_p_sc 1207
-get_root_global_p_pc_sc 1208
-set_global_s_p 1209
-set_global_sc_p 1210
-set_global_p_s_p 1211
-set_global_pc_s_p 1212
-set_global_p_sc_p 1213
-set_global_pc_sc_p 1214
-set_hll_global_s_p 1215
-set_hll_global_sc_p 1216
-set_hll_global_p_s_p 1217
-set_hll_global_pc_s_p 1218
-set_hll_global_p_sc_p 1219
-set_hll_global_pc_sc_p 1220
-set_root_global_s_p 1221
-set_root_global_sc_p 1222
-set_root_global_p_s_p 1223
-set_root_global_pc_s_p 1224
-set_root_global_p_sc_p 1225
-set_root_global_pc_sc_p 1226
-find_name_p_s 1227
-find_name_p_sc 1228
-find_sub_not_null_p_s 1229
-find_sub_not_null_p_sc 1230
+callmethodcc_p_s 688
+callmethodcc_p_sc 689
+callmethodcc_p_p 690
+callmethod_p_s_p 691
+callmethod_p_sc_p 692
+callmethod_p_p_p 693
+tailcallmethod_p_s 694
+tailcallmethod_p_sc 695
+tailcallmethod_p_p 696
+addmethod_p_s_p 697
+addmethod_p_sc_p 698
+can_i_p_s 699
+can_i_p_sc 700
+does_i_p_s 701
+does_i_p_sc 702
+does_i_p_p 703
+does_i_p_pc 704
+isa_i_p_s 705
+isa_i_p_sc 706
+isa_i_p_p 707
+isa_i_p_pc 708
+newclass_p_s 709
+newclass_p_sc 710
+newclass_p_p 711
+newclass_p_pc 712
+subclass_p_p 713
+subclass_p_pc 714
+subclass_p_p_s 715
+subclass_p_pc_s 716
+subclass_p_p_sc 717
+subclass_p_pc_sc 718
+subclass_p_p_p 719
+subclass_p_pc_p 720
+subclass_p_p_pc 721
+subclass_p_pc_pc 722
+subclass_p_s 723
+subclass_p_sc 724
+subclass_p_s_s 725
+subclass_p_sc_s 726
+subclass_p_s_sc 727
+subclass_p_sc_sc 728
+subclass_p_s_p 729
+subclass_p_sc_p 730
+subclass_p_s_pc 731
+subclass_p_sc_pc 732
+get_class_p_s 733
+get_class_p_sc 734
+get_class_p_p 735
+get_class_p_pc 736
+class_p_p 737
+addparent_p_p 738
+removeparent_p_p 739
+addrole_p_p 740
+addattribute_p_s 741
+addattribute_p_sc 742
+removeattribute_p_s 743
+removeattribute_p_sc 744
+getattribute_p_p_s 745
+getattribute_p_p_sc 746
+getattribute_p_p_p_s 747
+getattribute_p_p_pc_s 748
+getattribute_p_p_p_sc 749
+getattribute_p_p_pc_sc 750
+setattribute_p_s_p 751
+setattribute_p_sc_p 752
+setattribute_p_p_s_p 753
+setattribute_p_pc_s_p 754
+setattribute_p_p_sc_p 755
+setattribute_p_pc_sc_p 756
+inspect_p_p 757
+inspect_p_pc 758
+inspect_p_p_s 759
+inspect_p_pc_s 760
+inspect_p_p_sc 761
+inspect_p_pc_sc 762
+new_p_s 763
+new_p_sc 764
+new_p_s_p 765
+new_p_sc_p 766
+new_p_s_pc 767
+new_p_sc_pc 768
+new_p_p 769
+new_p_pc 770
+new_p_p_p 771
+new_p_pc_p 772
+new_p_p_pc 773
+new_p_pc_pc 774
+root_new_p_p 775
+root_new_p_pc 776
+root_new_p_p_p 777
+root_new_p_pc_p 778
+root_new_p_p_pc 779
+root_new_p_pc_pc 780
+typeof_s_p 781
+typeof_p_p 782
+get_repr_s_p 783
+find_method_p_p_s 784
+find_method_p_p_sc 785
+defined_i_p 786
+defined_i_p_ki 787
+defined_i_p_kic 788
+defined_i_p_k 789
+defined_i_p_kc 790
+exists_i_p_ki 791
+exists_i_p_kic 792
+exists_i_p_k 793
+exists_i_p_kc 794
+delete_p_k 795
+delete_p_kc 796
+delete_p_ki 797
+delete_p_kic 798
+elements_i_p 799
+push_p_i 800
+push_p_ic 801
+push_p_n 802
+push_p_nc 803
+push_p_s 804
+push_p_sc 805
+push_p_p 806
+pop_i_p 807
+pop_n_p 808
+pop_s_p 809
+pop_p_p 810
+unshift_p_i 811
+unshift_p_ic 812
+unshift_p_n 813
+unshift_p_nc 814
+unshift_p_s 815
+unshift_p_sc 816
+unshift_p_p 817
+shift_i_p 818
+shift_n_p 819
+shift_s_p 820
+shift_p_p 821
+splice_p_p_i_i 822
+splice_p_p_ic_i 823
+splice_p_p_i_ic 824
+splice_p_p_ic_ic 825
+setprop_p_s_p 826
+setprop_p_sc_p 827
+getprop_p_s_p 828
+getprop_p_sc_p 829
+delprop_p_s 830
+delprop_p_sc 831
+prophash_p_p 832
+freeze_s_p 833
+thaw_p_s 834
+thaw_p_sc 835
+add_multi_s_s_p 836
+add_multi_sc_s_p 837
+add_multi_s_sc_p 838
+add_multi_sc_sc_p 839
+find_multi_p_s_s 840
+find_multi_p_sc_s 841
+find_multi_p_s_sc 842
+find_multi_p_sc_sc 843
+register_p 844
+unregister_p 845
+box_p_i 846
+box_p_ic 847
+box_p_n 848
+box_p_nc 849
+box_p_s 850
+box_p_sc 851
+iter_p_p 852
+morph_p_p 853
+morph_p_pc 854
+clone_s_s 855
+clone_s_sc 856
+exchange_i_i 857
+exchange_p_p 858
+exchange_n_n 859
+exchange_s_s 860
+set_i_i 861
+set_i_ic 862
+set_i_n 863
+set_i_nc 864
+set_i_s 865
+set_i_sc 866
+set_n_n 867
+set_n_nc 868
+set_n_i 869
+set_n_ic 870
+set_n_s 871
+set_n_sc 872
+set_n_p 873
+set_s_p 874
+set_s_s 875
+set_s_sc 876
+set_s_i 877
+set_s_ic 878
+set_s_n 879
+set_s_nc 880
+set_p_pc 881
+set_p_p 882
+set_p_i 883
+set_p_ic 884
+set_p_n 885
+set_p_nc 886
+set_p_s 887
+set_p_sc 888
+set_i_p 889
+assign_p_p 890
+assign_p_i 891
+assign_p_ic 892
+assign_p_n 893
+assign_p_nc 894
+assign_p_s 895
+assign_p_sc 896
+assign_s_s 897
+assign_s_sc 898
+setref_p_p 899
+deref_p_p 900
+setp_ind_i_p 901
+setp_ind_ic_p 902
+setn_ind_i_n 903
+setn_ind_ic_n 904
+setn_ind_i_nc 905
+setn_ind_ic_nc 906
+sets_ind_i_s 907
+sets_ind_ic_s 908
+sets_ind_i_sc 909
+sets_ind_ic_sc 910
+seti_ind_i_i 911
+seti_ind_ic_i 912
+seti_ind_i_ic 913
+seti_ind_ic_ic 914
+set_p_ki_i 915
+set_p_kic_i 916
+set_p_ki_ic 917
+set_p_kic_ic 918
+set_p_ki_n 919
+set_p_kic_n 920
+set_p_ki_nc 921
+set_p_kic_nc 922
+set_p_ki_s 923
+set_p_kic_s 924
+set_p_ki_sc 925
+set_p_kic_sc 926
+set_p_ki_p 927
+set_p_kic_p 928
+set_i_p_ki 929
+set_i_p_kic 930
+set_n_p_ki 931
+set_n_p_kic 932
+set_s_p_ki 933
+set_s_p_kic 934
+set_p_p_ki 935
+set_p_p_kic 936
+set_p_k_i 937
+set_p_kc_i 938
+set_p_k_ic 939
+set_p_kc_ic 940
+set_p_k_n 941
+set_p_kc_n 942
+set_p_k_nc 943
+set_p_kc_nc 944
+set_p_k_s 945
+set_p_kc_s 946
+set_p_k_sc 947
+set_p_kc_sc 948
+set_p_k_p 949
+set_p_kc_p 950
+set_i_p_k 951
+set_i_p_kc 952
+set_n_p_k 953
+set_n_p_kc 954
+set_s_p_k 955
+set_s_p_kc 956
+set_p_p_k 957
+set_p_p_kc 958
+clone_p_p 959
+clone_p_p_p 960
+clone_p_p_pc 961
+copy_p_p 962
+null_s 963
+null_i 964
+null_p 965
+null_n 966
+cleari 967
+clearn 968
+clears 969
+clearp 970
+ord_i_s 971
+ord_i_sc 972
+ord_i_s_i 973
+ord_i_sc_i 974
+ord_i_s_ic 975
+ord_i_sc_ic 976
+chr_s_i 977
+chr_s_ic 978
+chopn_s_s_i 979
+chopn_s_sc_i 980
+chopn_s_s_ic 981
+chopn_s_sc_ic 982
+concat_s_s 983
+concat_s_sc 984
+concat_p_p 985
+concat_p_s 986
+concat_p_sc 987
+concat_s_s_s 988
+concat_s_sc_s 989
+concat_s_s_sc 990
+concat_p_p_s 991
+concat_p_p_sc 992
+concat_p_p_p 993
+repeat_s_s_i 994
+repeat_s_sc_i 995
+repeat_s_s_ic 996
+repeat_s_sc_ic 997
+repeat_p_p_i 998
+repeat_p_p_ic 999
+repeat_p_p_p 1000
+repeat_p_i 1001
+repeat_p_ic 1002
+repeat_p_p 1003
+length_i_s 1004
+length_i_sc 1005
+bytelength_i_s 1006
+bytelength_i_sc 1007
+pin_s 1008
+unpin_s 1009
+substr_s_s_i 1010
+substr_s_sc_i 1011
+substr_s_s_ic 1012
+substr_s_sc_ic 1013
+substr_s_s_i_i 1014
+substr_s_sc_i_i 1015
+substr_s_s_ic_i 1016
+substr_s_sc_ic_i 1017
+substr_s_s_i_ic 1018
+substr_s_sc_i_ic 1019
+substr_s_s_ic_ic 1020
+substr_s_sc_ic_ic 1021
+substr_s_p_i_i 1022
+substr_s_p_ic_i 1023
+substr_s_p_i_ic 1024
+substr_s_p_ic_ic 1025
+replace_s_s_i_i_s 1026
+replace_s_sc_i_i_s 1027
+replace_s_s_ic_i_s 1028
+replace_s_sc_ic_i_s 1029
+replace_s_s_i_ic_s 1030
+replace_s_sc_i_ic_s 1031
+replace_s_s_ic_ic_s 1032
+replace_s_sc_ic_ic_s 1033
+replace_s_s_i_i_sc 1034
+replace_s_sc_i_i_sc 1035
+replace_s_s_ic_i_sc 1036
+replace_s_sc_ic_i_sc 1037
+replace_s_s_i_ic_sc 1038
+replace_s_sc_i_ic_sc 1039
+replace_s_s_ic_ic_sc 1040
+replace_s_sc_ic_ic_sc 1041
+index_i_s_s 1042
+index_i_sc_s 1043
+index_i_s_sc 1044
+index_i_sc_sc 1045
+index_i_s_s_i 1046
+index_i_sc_s_i 1047
+index_i_s_sc_i 1048
+index_i_sc_sc_i 1049
+index_i_s_s_ic 1050
+index_i_sc_s_ic 1051
+index_i_s_sc_ic 1052
+index_i_sc_sc_ic 1053
+sprintf_s_s_p 1054
+sprintf_s_sc_p 1055
+sprintf_p_p_p 1056
+new_s 1057
+new_s_i 1058
+new_s_ic 1059
+stringinfo_i_s_i 1060
+stringinfo_i_sc_i 1061
+stringinfo_i_s_ic 1062
+stringinfo_i_sc_ic 1063
+upcase_s_s 1064
+upcase_s_sc 1065
+downcase_s_s 1066
+downcase_s_sc 1067
+titlecase_s_s 1068
+titlecase_s_sc 1069
+join_s_s_p 1070
+join_s_sc_p 1071
+split_p_s_s 1072
+split_p_sc_s 1073
+split_p_s_sc 1074
+split_p_sc_sc 1075
+charset_i_s 1076
+charset_i_sc 1077
+charsetname_s_i 1078
+charsetname_s_ic 1079
+find_charset_i_s 1080
+find_charset_i_sc 1081
+trans_charset_s_s_i 1082
+trans_charset_s_sc_i 1083
+trans_charset_s_s_ic 1084
+trans_charset_s_sc_ic 1085
+encoding_i_s 1086
+encoding_i_sc 1087
+encodingname_s_i 1088
+encodingname_s_ic 1089
+find_encoding_i_s 1090
+find_encoding_i_sc 1091
+trans_encoding_s_s_i 1092
+trans_encoding_s_sc_i 1093
+trans_encoding_s_s_ic 1094
+trans_encoding_s_sc_ic 1095
+is_cclass_i_i_s_i 1096
+is_cclass_i_ic_s_i 1097
+is_cclass_i_i_sc_i 1098
+is_cclass_i_ic_sc_i 1099
+is_cclass_i_i_s_ic 1100
+is_cclass_i_ic_s_ic 1101
+is_cclass_i_i_sc_ic 1102
+is_cclass_i_ic_sc_ic 1103
+find_cclass_i_i_s_i_i 1104
+find_cclass_i_ic_s_i_i 1105
+find_cclass_i_i_sc_i_i 1106
+find_cclass_i_ic_sc_i_i 1107
+find_cclass_i_i_s_ic_i 1108
+find_cclass_i_ic_s_ic_i 1109
+find_cclass_i_i_sc_ic_i 1110
+find_cclass_i_ic_sc_ic_i 1111
+find_cclass_i_i_s_i_ic 1112
+find_cclass_i_ic_s_i_ic 1113
+find_cclass_i_i_sc_i_ic 1114
+find_cclass_i_ic_sc_i_ic 1115
+find_cclass_i_i_s_ic_ic 1116
+find_cclass_i_ic_s_ic_ic 1117
+find_cclass_i_i_sc_ic_ic 1118
+find_cclass_i_ic_sc_ic_ic 1119
+find_not_cclass_i_i_s_i_i 1120
+find_not_cclass_i_ic_s_i_i 1121
+find_not_cclass_i_i_sc_i_i 1122
+find_not_cclass_i_ic_sc_i_i 1123
+find_not_cclass_i_i_s_ic_i 1124
+find_not_cclass_i_ic_s_ic_i 1125
+find_not_cclass_i_i_sc_ic_i 1126
+find_not_cclass_i_ic_sc_ic_i 1127
+find_not_cclass_i_i_s_i_ic 1128
+find_not_cclass_i_ic_s_i_ic 1129
+find_not_cclass_i_i_sc_i_ic 1130
+find_not_cclass_i_ic_sc_i_ic 1131
+find_not_cclass_i_i_s_ic_ic 1132
+find_not_cclass_i_ic_s_ic_ic 1133
+find_not_cclass_i_i_sc_ic_ic 1134
+find_not_cclass_i_ic_sc_ic_ic 1135
+escape_s_s 1136
+compose_s_s 1137
+compose_s_sc 1138
+spawnw_i_s 1139
+spawnw_i_sc 1140
+spawnw_i_p 1141
+err_i 1142
+err_s 1143
+err_s_i 1144
+err_s_ic 1145
+time_i 1146
+time_n 1147
+gmtime_s_i 1148
+gmtime_s_ic 1149
+localtime_s_i 1150
+localtime_s_ic 1151
+decodetime_p_i 1152
+decodetime_p_ic 1153
+decodelocaltime_p_i 1154
+decodelocaltime_p_ic 1155
+sysinfo_s_i 1156
+sysinfo_s_ic 1157
+sysinfo_i_i 1158
+sysinfo_i_ic 1159
+sleep_i 1160
+sleep_ic 1161
+sleep_n 1162
+sleep_nc 1163
+store_lex_s_p 1164
+store_lex_sc_p 1165
+store_dynamic_lex_s_p 1166
+store_dynamic_lex_sc_p 1167
+find_lex_p_s 1168
+find_lex_p_sc 1169
+find_dynamic_lex_p_s 1170
+find_dynamic_lex_p_sc 1171
+find_caller_lex_p_s 1172
+find_caller_lex_p_sc 1173
+get_namespace_p 1174
+get_namespace_p_p 1175
+get_namespace_p_pc 1176
+get_hll_namespace_p 1177
+get_hll_namespace_p_p 1178
+get_hll_namespace_p_pc 1179
+get_root_namespace_p 1180
+get_root_namespace_p_p 1181
+get_root_namespace_p_pc 1182
+get_global_p_s 1183
+get_global_p_sc 1184
+get_global_p_p_s 1185
+get_global_p_pc_s 1186
+get_global_p_p_sc 1187
+get_global_p_pc_sc 1188
+get_hll_global_p_s 1189
+get_hll_global_p_sc 1190
+get_hll_global_p_p_s 1191
+get_hll_global_p_pc_s 1192
+get_hll_global_p_p_sc 1193
+get_hll_global_p_pc_sc 1194
+get_root_global_p_s 1195
+get_root_global_p_sc 1196
+get_root_global_p_p_s 1197
+get_root_global_p_pc_s 1198
+get_root_global_p_p_sc 1199
+get_root_global_p_pc_sc 1200
+set_global_s_p 1201
+set_global_sc_p 1202
+set_global_p_s_p 1203
+set_global_pc_s_p 1204
+set_global_p_sc_p 1205
+set_global_pc_sc_p 1206
+set_hll_global_s_p 1207
+set_hll_global_sc_p 1208
+set_hll_global_p_s_p 1209
+set_hll_global_pc_s_p 1210
+set_hll_global_p_sc_p 1211
+set_hll_global_pc_sc_p 1212
+set_root_global_s_p 1213
+set_root_global_sc_p 1214
+set_root_global_p_s_p 1215
+set_root_global_pc_s_p 1216
+set_root_global_p_sc_p 1217
+set_root_global_pc_sc_p 1218
+find_name_p_s 1219
+find_name_p_sc 1220
+find_sub_not_null_p_s 1221
+find_sub_not_null_p_sc 1222
Modified: trunk/t/dynoplibs/obscure.t
==============================================================================
--- trunk/t/dynoplibs/obscure.t Wed May 19 05:04:24 2010 (r46780)
+++ trunk/t/dynoplibs/obscure.t Wed May 19 07:44:39 2010 (r46781)
@@ -20,13 +20,19 @@
.sub main :main
.include 'fp_equality.pasm'
.include 'test_more.pir'
- plan(17)
+ plan(42)
ok(1,"load obscure_ops")
test_covers()
test_vers()
test_hav()
test_exsec()
+
+ lcm_test()
+ gcd_test()
+ test_fact()
+ test_fact_n_i()
+ test_fact_n_ic()
.end
.sub test_covers
@@ -97,6 +103,111 @@
.fp_eq_ok(x, 0.414213562373095, 'exsec of pi/4')
.end
+.sub lcm_test
+ set $I0, 10
+ set $I1, 10
+ lcm $I2, $I1, $I0
+ is( $I2, 10, 'lcm_test' )
+
+ set $I1, 17
+ lcm $I2, $I1, $I0
+ is( $I2, 170, 'lcm_test' )
+
+ set $I0, 17
+ set $I1, 10
+ lcm $I2, $I1, $I0
+ is( $I2, 170, 'lcm_test' )
+
+ set $I0, 10
+ set $I1, 0
+ lcm $I2, $I1, $I0
+ is( $I2, 0, 'lcm_test' )
+
+ set $I0, 0
+ set $I1, 10
+ lcm $I2, $I1, $I0
+ is( $I2, 0, 'lcm_test' )
+.end
+
+.sub gcd_test
+ set $I0, 70
+ set $I1, 42
+ gcd $I2, $I1, $I0
+ is( $I2, 14, 'gcd_test' )
+
+ set $I0, 66
+ gcd $I2, $I1, $I0
+ is( $I2, 6, 'gcd_test' )
+
+ set $I0, 70
+ set $I1, 1
+ gcd $I2, $I1, $I0
+ is( $I2, 1, 'gcd_test' )
+
+ set $I0, 70
+ set $I1, 3
+ gcd $I2, $I1, $I0
+ is( $I2, 1, 'gcd_test' )
+.end
+
+.sub 'test_fact'
+ $I0 = 3
+ $I1 = 11
+ $I2 = 0
+ $I3 = -563
+
+ $I5 = fact $I0
+ is($I5, 6, 'fact_i_i - first')
+
+ $I6 = fact $I1
+ is($I6, 39916800, 'fact_i_i - second')
+
+ $I7 = fact $I2
+ is($I7, 1, 'fact_i_i on zero')
+
+ $I8 = fact $I3
+ is($I8, 1, 'fact_i_i on a negative integer')
+
+ # Now run the same tests, with constants instead
+ $I5 = fact 3
+ is($I5, 6, 'fact_i_ic - first')
+
+ $I6 = fact 11
+ is($I6, 39916800, 'fact_i_ic - second')
+
+ $I7 = fact 0
+ is($I7, 1, 'fact_i_ic on zero')
+
+ $I8 = fact -563
+ is($I8, 1, 'fact_i_ic on a negative integer')
+.end
+
+.sub test_fact_n_i
+ set $I0, 3
+ set $I1, 11
+ set $I2, 0
+ set $I3, -563
+ fact $N5, $I0
+ is( $N5, "6", 'fact_n_i' )
+ fact $N6, $I1
+ is( $N6, "39916800", 'fact_n_i' )
+ fact $N7, $I2
+ is( $N7, "1", 'fact_n_i' )
+ fact $N8, $I3
+ is( $N8, "1", 'fact_n_i' )
+.end
+
+.sub test_fact_n_ic
+ fact $N5, 3
+ is( $N5, "6", 'fact_n_ic' )
+ fact $N6, 11
+ is( $N6, "39916800", 'fact_n_ic' )
+ fact $N7, 0
+ is( $N7, "1", 'fact_n_ic' )
+ fact $N8, -563
+ is( $N8, "1", 'fact_n_ic' )
+.end
+
# Local Variables:
# mode: pir
Modified: trunk/t/op/arithmetics.t
==============================================================================
--- trunk/t/op/arithmetics.t Wed May 19 05:04:24 2010 (r46780)
+++ trunk/t/op/arithmetics.t Wed May 19 07:44:39 2010 (r46781)
@@ -21,7 +21,7 @@
.include 'test_more.pir'
.include 'iglobals.pasm'
- plan(130)
+ plan(121)
take_the_negative_of_a_native_integer()
take_the_absolute_of_a_native_integer()
@@ -42,8 +42,6 @@
subtract_native_number_from_native_number()
multiply_native_number_with_native_number()
divide_native_number_by_native_number()
- lcm_test()
- gcd_test()
integer_overflow_with_pow()
bnot_p_p_creates_destination()
# END_OF_TESTS
@@ -472,53 +470,6 @@
.end
-.sub lcm_test
- set $I0, 10
- set $I1, 10
- lcm $I2, $I1, $I0
- is( $I2, 10, 'lcm_test' )
-
- set $I1, 17
- lcm $I2, $I1, $I0
- is( $I2, 170, 'lcm_test' )
-
- set $I0, 17
- set $I1, 10
- lcm $I2, $I1, $I0
- is( $I2, 170, 'lcm_test' )
-
- set $I0, 10
- set $I1, 0
- lcm $I2, $I1, $I0
- is( $I2, 0, 'lcm_test' )
-
- set $I0, 0
- set $I1, 10
- lcm $I2, $I1, $I0
- is( $I2, 0, 'lcm_test' )
-.end
-
-.sub gcd_test
- set $I0, 70
- set $I1, 42
- gcd $I2, $I1, $I0
- is( $I2, 14, 'gcd_test' )
-
- set $I0, 66
- gcd $I2, $I1, $I0
- is( $I2, 6, 'gcd_test' )
-
- set $I0, 70
- set $I1, 1
- gcd $I2, $I1, $I0
- is( $I2, 1, 'gcd_test' )
-
- set $I0, 70
- set $I1, 3
- gcd $I2, $I1, $I0
- is( $I2, 1, 'gcd_test' )
-.end
-
.sub integer_overflow_with_pow
.include "iglobals.pasm"
Modified: trunk/t/op/integer.t
==============================================================================
--- trunk/t/op/integer.t Wed May 19 05:04:24 2010 (r46780)
+++ trunk/t/op/integer.t Wed May 19 07:44:39 2010 (r46781)
@@ -16,7 +16,7 @@
=cut
-.const int TESTS = 202
+.const int TESTS = 194
.sub 'test' :main
.include 'test_more.pir'
@@ -49,7 +49,6 @@
test_set_n()
test_cleari()
test_neg()
- test_fact()
test_mul_i_i()
test_exchange()
test_null()
@@ -837,38 +836,6 @@
is($I0, 12, 'mul_i_i')
.end
-.sub 'test_fact'
- $I0 = 3
- $I1 = 11
- $I2 = 0
- $I3 = -563
-
- $I5 = fact $I0
- is($I5, 6, 'fact_i_i - first')
-
- $I6 = fact $I1
- is($I6, 39916800, 'fact_i_i - second')
-
- $I7 = fact $I2
- is($I7, 1, 'fact_i_i on zero')
-
- $I8 = fact $I3
- is($I8, 1, 'fact_i_i on a negative integer')
-
- # Now run the same tests, with constants instead
- $I5 = fact 3
- is($I5, 6, 'fact_i_ic - first')
-
- $I6 = fact 11
- is($I6, 39916800, 'fact_i_ic - second')
-
- $I7 = fact 0
- is($I7, 1, 'fact_i_ic on zero')
-
- $I8 = fact -563
- is($I8, 1, 'fact_i_ic on a negative integer')
-.end
-
.sub 'test_exchange'
$I10 = 10
$I20 = 20
Modified: trunk/t/op/number.t
==============================================================================
--- trunk/t/op/number.t Wed May 19 05:04:24 2010 (r46780)
+++ trunk/t/op/number.t Wed May 19 07:44:39 2010 (r46781)
@@ -19,7 +19,7 @@
.sub main :main
.include 'test_more.pir'
- plan(173)
+ plan(165)
test_set_n_nc()
test_set_n()
test_add_n_n_n()
@@ -51,8 +51,6 @@
test_neg_n()
test_neg_0_dot_0()
test_mul_n_n()
- test_fact_n_i()
- test_fact_n_ic()
test_exchange()
test_op_n_nc_nc()
test_lt_nc_nc_ic()
@@ -706,32 +704,6 @@
is( $N0, "12", 'mul_n_n' )
.end
-.sub test_fact_n_i
- set $I0, 3
- set $I1, 11
- set $I2, 0
- set $I3, -563
- fact $N5, $I0
- is( $N5, "6", 'fact_n_i' )
- fact $N6, $I1
- is( $N6, "39916800", 'fact_n_i' )
- fact $N7, $I2
- is( $N7, "1", 'fact_n_i' )
- fact $N8, $I3
- is( $N8, "1", 'fact_n_i' )
-.end
-
-.sub test_fact_n_ic
- fact $N5, 3
- is( $N5, "6", 'fact_n_ic' )
- fact $N6, 11
- is( $N6, "39916800", 'fact_n_ic' )
- fact $N7, 0
- is( $N7, "1", 'fact_n_ic' )
- fact $N8, -563
- is( $N8, "1", 'fact_n_ic' )
-.end
-
.sub test_exchange
set $N1, 1.234560
set $N2, 9.876540
More information about the parrot-commits
mailing list