carray 1.5.1 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{LICENSES → LICENSE} +0 -0
- data/NEWS.md +42 -0
- data/README.md +5 -5
- data/TODO.md +16 -0
- data/carray.gemspec +9 -5
- data/ext/ca_iter_block.c +3 -5
- data/ext/ca_iter_dimension.c +4 -5
- data/ext/ca_iter_window.c +2 -4
- data/ext/ca_obj_array.c +394 -124
- data/ext/ca_obj_bitarray.c +3 -5
- data/ext/ca_obj_bitfield.c +3 -5
- data/ext/ca_obj_block.c +6 -8
- data/ext/ca_obj_fake.c +3 -5
- data/ext/ca_obj_farray.c +3 -5
- data/ext/ca_obj_field.c +15 -17
- data/ext/ca_obj_grid.c +5 -6
- data/ext/ca_obj_mapping.c +2 -4
- data/ext/ca_obj_object.c +3 -5
- data/ext/ca_obj_reduce.c +2 -4
- data/ext/ca_obj_refer.c +5 -7
- data/ext/ca_obj_repeat.c +2 -4
- data/ext/ca_obj_select.c +2 -4
- data/ext/ca_obj_shift.c +3 -5
- data/ext/ca_obj_transpose.c +3 -5
- data/ext/ca_obj_unbound_repeat.c +58 -81
- data/ext/ca_obj_window.c +7 -9
- data/ext/carray.h +13 -8
- data/ext/carray_access.c +111 -18
- data/ext/carray_attribute.c +136 -197
- data/ext/carray_call_cfunc.c +1 -3
- data/ext/carray_cast.c +344 -143
- data/ext/carray_cast_func.rb +1 -2
- data/ext/carray_class.c +28 -36
- data/ext/carray_conversion.c +49 -59
- data/ext/carray_copy.c +16 -32
- data/ext/carray_core.c +51 -44
- data/ext/carray_element.c +25 -44
- data/ext/carray_generate.c +71 -50
- data/ext/carray_iterator.c +13 -15
- data/ext/carray_loop.c +53 -82
- data/ext/carray_mask.c +87 -117
- data/ext/carray_math.rb +8 -10
- data/ext/carray_mathfunc.c +1 -3
- data/ext/carray_numeric.c +19 -3
- data/ext/carray_operator.c +45 -32
- data/ext/carray_order.c +72 -65
- data/ext/carray_sort_addr.c +14 -21
- data/ext/carray_stat.c +1 -3
- data/ext/carray_stat_proc.rb +2 -4
- data/ext/carray_test.c +28 -30
- data/ext/carray_undef.c +1 -3
- data/ext/carray_utils.c +12 -4
- data/ext/extconf.rb +1 -1
- data/ext/mkmath.rb +1 -1
- data/ext/ruby_carray.c +11 -6
- data/ext/ruby_ccomplex.c +1 -3
- data/ext/ruby_float_func.c +1 -3
- data/ext/version.h +5 -7
- data/lib/carray.rb +2 -0
- data/lib/carray/autoload/autoload_gem_numo_narray.rb +6 -6
- data/lib/carray/broadcast.rb +45 -0
- data/lib/carray/construct.rb +21 -4
- data/lib/carray/iterator.rb +1 -0
- data/lib/carray/ordering.rb +28 -2
- data/spec/Classes/CABitfield_spec.rb +58 -0
- data/spec/Classes/CABlockIterator_spec.rb +114 -0
- data/spec/Classes/CABlock_spec.rb +205 -0
- data/spec/Classes/CAField_spec.rb +39 -0
- data/spec/Classes/CAGrid_spec.rb +75 -0
- data/spec/Classes/CAMap_spec.rb +0 -0
- data/{test/test_CAMapping.rb → spec/Classes/CAMapping_spec.rb} +35 -36
- data/spec/Classes/CAObject_attribute_spec.rb +33 -0
- data/spec/Classes/CAObject_spec.rb +33 -0
- data/spec/Classes/CARefer_spec.rb +93 -0
- data/spec/Classes/CARepeat_spec.rb +65 -0
- data/spec/Classes/CASelect_spec.rb +22 -0
- data/spec/Classes/CAShift_spec.rb +16 -0
- data/spec/Classes/CAStruct_spec.rb +71 -0
- data/{test/test_CATranspose.rb → spec/Classes/CATranspose_spec.rb} +20 -21
- data/spec/Classes/CAUnboudRepeat_spec.rb +78 -0
- data/spec/Classes/CAWindow_spec.rb +54 -0
- data/spec/Classes/CAWrap_spec.rb +8 -0
- data/{test/test_CArray.rb → spec/Classes/CArray_spec.rb} +48 -92
- data/spec/Classes/CScalar_spec.rb +55 -0
- data/spec/Features/feature_130_spec.rb +19 -0
- data/spec/Features/feature_attributes_spec.rb +280 -0
- data/spec/Features/feature_boolean_spec.rb +97 -0
- data/spec/Features/feature_broadcast.rb +100 -0
- data/spec/Features/feature_cast_function.rb +19 -0
- data/spec/Features/feature_cast_spec.rb +33 -0
- data/spec/Features/feature_class_spec.rb +84 -0
- data/spec/Features/feature_complex_spec.rb +42 -0
- data/{test/test_composite.rb → spec/Features/feature_composite_spec.rb} +17 -18
- data/spec/Features/feature_convert_spec.rb +46 -0
- data/spec/Features/feature_copy_spec.rb +123 -0
- data/spec/Features/feature_creation_spec.rb +84 -0
- data/spec/Features/feature_element_spec.rb +144 -0
- data/spec/Features/feature_extream_spec.rb +54 -0
- data/spec/Features/feature_generate_spec.rb +74 -0
- data/spec/Features/feature_index_spec.rb +69 -0
- data/spec/Features/feature_mask_spec.rb +574 -0
- data/spec/Features/feature_math_spec.rb +97 -0
- data/spec/Features/feature_order_spec.rb +146 -0
- data/spec/Features/feature_ref_store_spec.rb +209 -0
- data/spec/Features/feature_serialization_spec.rb +125 -0
- data/spec/Features/feature_stat_spec.rb +397 -0
- data/spec/Features/feature_virtual_spec.rb +48 -0
- data/spec/Features/method_eq_spec.rb +81 -0
- data/spec/Features/method_is_nan_spec.rb +12 -0
- data/spec/Features/method_map_spec.rb +54 -0
- data/spec/Features/method_max_with.rb +20 -0
- data/spec/Features/method_min_with.rb +19 -0
- data/spec/Features/method_ne_spec.rb +18 -0
- data/spec/Features/method_project_spec.rb +188 -0
- data/spec/Features/method_ref_spec.rb +27 -0
- data/spec/Features/method_round_spec.rb +11 -0
- data/spec/Features/method_s_linspace_spec.rb +48 -0
- data/spec/Features/method_s_span_spec.rb +14 -0
- data/spec/Features/method_seq_spec.rb +47 -0
- data/spec/Features/method_sort_with.rb +43 -0
- data/spec/Features/method_sorted_with.rb +29 -0
- data/spec/Features/method_span_spec.rb +42 -0
- data/spec/Features/method_wrap_readonly_spec.rb +43 -0
- data/{test → spec/UnitTest}/test_CAVirtual.rb +0 -0
- data/spec/spec_all.rb +0 -1
- data/utils/convert_test.rb +73 -0
- data/utils/{extract_rdoc.rb → extract_yard.rb} +7 -12
- metadata +77 -60
- data/spec/CABlockIterator/CABlockIterator_spec.rb +0 -113
- data/spec/CArray/bug/store_spec.rb +0 -27
- data/spec/CArray/index/repeat_spec.rb +0 -10
- data/spec/CArray/method/eq_spec.rb +0 -80
- data/spec/CArray/method/is_nan_spec.rb +0 -12
- data/spec/CArray/method/ne_spec.rb +0 -18
- data/spec/CArray/method/round_spec.rb +0 -11
- data/spec/CArray/object/_attribute_spec.rb +0 -32
- data/spec/CArray/object/s_new_spec.rb +0 -31
- data/spec/CArray/serialize/Serialization_spec.rb +0 -89
- data/test/test_130.rb +0 -23
- data/test/test_ALL.rb +0 -49
- data/test/test_CABitfield.rb +0 -59
- data/test/test_CABlock.rb +0 -208
- data/test/test_CAField.rb +0 -40
- data/test/test_CAGrid.rb +0 -76
- data/test/test_CAMmap.rb +0 -11
- data/test/test_CARefer.rb +0 -94
- data/test/test_CARepeat.rb +0 -66
- data/test/test_CASelect.rb +0 -23
- data/test/test_CAShift.rb +0 -17
- data/test/test_CAWindow.rb +0 -55
- data/test/test_CAWrap.rb +0 -9
- data/test/test_CComplex.rb +0 -83
- data/test/test_CScalar.rb +0 -91
- data/test/test_attribute.rb +0 -281
- data/test/test_block_iterator.rb +0 -17
- data/test/test_boolean.rb +0 -99
- data/test/test_cast.rb +0 -33
- data/test/test_class.rb +0 -85
- data/test/test_complex.rb +0 -43
- data/test/test_convert.rb +0 -79
- data/test/test_copy.rb +0 -141
- data/test/test_creation.rb +0 -85
- data/test/test_element.rb +0 -146
- data/test/test_extream.rb +0 -55
- data/test/test_generate.rb +0 -75
- data/test/test_index.rb +0 -71
- data/test/test_mask.rb +0 -578
- data/test/test_math.rb +0 -98
- data/test/test_order.rb +0 -147
- data/test/test_ref_store.rb +0 -211
- data/test/test_stat.rb +0 -406
- data/test/test_struct.rb +0 -72
- data/test/test_virtual.rb +0 -49
data/ext/carray_mask.c
CHANGED
@@ -3,10 +3,8 @@
|
|
3
3
|
carray_mask.c
|
4
4
|
|
5
5
|
This file is part of Ruby/CArray extension library.
|
6
|
-
You can redistribute it and/or modify it under the terms of
|
7
|
-
the Ruby Licence.
|
8
6
|
|
9
|
-
Copyright (C) 2005 Hiroki Motoyoshi
|
7
|
+
Copyright (C) 2005-2020 Hiroki Motoyoshi
|
10
8
|
|
11
9
|
---------------------------------------------------------------------------- */
|
12
10
|
|
@@ -565,12 +563,10 @@ ca_allocate_mask_iterator (int n, ...)
|
|
565
563
|
|
566
564
|
/* ------------------------------------------------------------------- */
|
567
565
|
|
568
|
-
/*
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
end
|
573
|
-
end
|
566
|
+
/* @overload has_mask?
|
567
|
+
|
568
|
+
(Masking, Inquiry)
|
569
|
+
Returns true if self has the mask array.
|
574
570
|
*/
|
575
571
|
|
576
572
|
VALUE
|
@@ -581,12 +577,10 @@ rb_ca_has_mask (VALUE self)
|
|
581
577
|
return ( ca_has_mask(ca) ) ? Qtrue : Qfalse;
|
582
578
|
}
|
583
579
|
|
584
|
-
/*
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
end
|
589
|
-
end
|
580
|
+
/* @overload any_masked?
|
581
|
+
|
582
|
+
(Masking, Inquiry)
|
583
|
+
Returns true if self has at least one masked element.
|
590
584
|
*/
|
591
585
|
|
592
586
|
VALUE
|
@@ -597,12 +591,10 @@ rb_ca_is_any_masked (VALUE self)
|
|
597
591
|
return ( ca_is_any_masked(ca) ) ? Qtrue : Qfalse;
|
598
592
|
}
|
599
593
|
|
600
|
-
/*
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
end
|
605
|
-
end
|
594
|
+
/* @overload all_masked?
|
595
|
+
|
596
|
+
(Masking, Inquiry)
|
597
|
+
Returns true if all elements of self are masked.
|
606
598
|
*/
|
607
599
|
|
608
600
|
VALUE
|
@@ -613,12 +605,10 @@ rb_ca_is_all_masked (VALUE self)
|
|
613
605
|
return ( ca_is_all_masked(ca) ) ? Qtrue : Qfalse;
|
614
606
|
}
|
615
607
|
|
616
|
-
/*
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
end
|
621
|
-
end
|
608
|
+
/* @overload create_mask
|
609
|
+
|
610
|
+
(Masking)
|
611
|
+
Creates mask array internally (private method)
|
622
612
|
*/
|
623
613
|
|
624
614
|
static VALUE
|
@@ -631,12 +621,10 @@ rb_ca_create_mask (VALUE self)
|
|
631
621
|
return Qnil;
|
632
622
|
}
|
633
623
|
|
634
|
-
/*
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
end
|
639
|
-
end
|
624
|
+
/* @overload update_mask
|
625
|
+
|
626
|
+
(Masking)
|
627
|
+
Update mask array internally (private method)
|
640
628
|
*/
|
641
629
|
|
642
630
|
/*
|
@@ -650,14 +638,12 @@ rb_ca_update_mask (VALUE self)
|
|
650
638
|
}
|
651
639
|
*/
|
652
640
|
|
653
|
-
/*
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
end
|
660
|
-
end
|
641
|
+
/* @overload value
|
642
|
+
|
643
|
+
(Masking, Inquiry)
|
644
|
+
Returns new array which refers the data of <code>self</code>.
|
645
|
+
The data of masked elements of <code>self</code> can be accessed
|
646
|
+
via the returned array. The value array can't be set mask.
|
661
647
|
*/
|
662
648
|
|
663
649
|
VALUE
|
@@ -676,13 +662,11 @@ rb_ca_value_array (VALUE self)
|
|
676
662
|
return obj;
|
677
663
|
}
|
678
664
|
|
679
|
-
/*
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
end
|
685
|
-
end
|
665
|
+
/* @overload mask
|
666
|
+
|
667
|
+
(Masking, Inquiry)
|
668
|
+
Returns new array which refers the mask state of <code>self</code>.
|
669
|
+
The mask array can't be set mask.
|
686
670
|
*/
|
687
671
|
|
688
672
|
VALUE
|
@@ -707,14 +691,12 @@ rb_ca_mask_array (VALUE self)
|
|
707
691
|
}
|
708
692
|
}
|
709
693
|
|
710
|
-
/*
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
end
|
717
|
-
end
|
694
|
+
/* @overload mask= (new_mask)
|
695
|
+
|
696
|
+
(Mask, Modification)
|
697
|
+
Asigns <code>new_mask</code> to the mask array of <code>self</code>.
|
698
|
+
If <code>self</code> doesn't have a mask array, it will be created
|
699
|
+
before asignment.
|
718
700
|
*/
|
719
701
|
|
720
702
|
VALUE
|
@@ -756,14 +738,12 @@ rb_ca_set_mask (VALUE self, VALUE rval)
|
|
756
738
|
}
|
757
739
|
}
|
758
740
|
|
759
|
-
/*
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
end
|
766
|
-
end
|
741
|
+
/* @overload is_masked
|
742
|
+
|
743
|
+
(Masking, Element-Wise Inquiry)
|
744
|
+
Returns new boolean type array of same shape
|
745
|
+
with <code>self</code>. The returned array has 1 for the masked elements and
|
746
|
+
0 for not-masked elements.
|
767
747
|
*/
|
768
748
|
|
769
749
|
VALUE
|
@@ -799,14 +779,12 @@ rb_ca_is_masked (VALUE self)
|
|
799
779
|
return ca_wrap_struct(co);
|
800
780
|
}
|
801
781
|
|
802
|
-
/*
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
end
|
809
|
-
end
|
782
|
+
/* @overload is_not_masked
|
783
|
+
|
784
|
+
(Masking, Element-Wise Inquiry)
|
785
|
+
Returns new boolean type array of same shape with <code>self</code>.
|
786
|
+
The returned array has 0 for the masked elements and
|
787
|
+
1 for not-masked elements.
|
810
788
|
*/
|
811
789
|
|
812
790
|
VALUE
|
@@ -842,12 +820,10 @@ rb_ca_is_not_masked (VALUE self)
|
|
842
820
|
return ca_wrap_struct(co);
|
843
821
|
}
|
844
822
|
|
845
|
-
/*
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
end
|
850
|
-
end
|
823
|
+
/* @overload count_masked
|
824
|
+
|
825
|
+
(Masking, Statistics)
|
826
|
+
Returns the number of masked elements.
|
851
827
|
*/
|
852
828
|
|
853
829
|
VALUE
|
@@ -858,12 +834,10 @@ rb_ca_count_masked (VALUE self)
|
|
858
834
|
return SIZE2NUM(ca_count_masked(ca));
|
859
835
|
}
|
860
836
|
|
861
|
-
/*
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
end
|
866
|
-
end
|
837
|
+
/* @overload count_not_masked
|
838
|
+
|
839
|
+
(Masking, Statistics)
|
840
|
+
Returns the number of not-masked elements.
|
867
841
|
*/
|
868
842
|
|
869
843
|
VALUE
|
@@ -874,15 +848,13 @@ rb_ca_count_not_masked (VALUE self)
|
|
874
848
|
return SIZE2NUM(ca_count_not_masked(ca));
|
875
849
|
}
|
876
850
|
|
877
|
-
/*
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
end
|
885
|
-
end
|
851
|
+
/* @overload unmask (fill_value = nil)
|
852
|
+
|
853
|
+
(Masking, Destructive)
|
854
|
+
Unmask all elements of the object.
|
855
|
+
If the optional argument <code>fill_value</code> is given,
|
856
|
+
the masked elements are filled by <code>fill_value</code>.
|
857
|
+
The returned array doesn't have the mask array.
|
886
858
|
*/
|
887
859
|
|
888
860
|
static VALUE
|
@@ -928,15 +900,13 @@ rb_ca_mask_fill (VALUE self, VALUE fval)
|
|
928
900
|
return rb_ca_unmask_method(1, &fval, self);
|
929
901
|
}
|
930
902
|
|
931
|
-
/*
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
end
|
939
|
-
end
|
903
|
+
/* @overload unmask_copy (fill_value = nil)
|
904
|
+
|
905
|
+
(Masking, Conversion)
|
906
|
+
Returns new unmasked array.
|
907
|
+
If the optional argument <code>fill_value</code> is given,
|
908
|
+
the masked elements are filled by <code>fill_value</code>.
|
909
|
+
The returned array doesn't have the mask array.
|
940
910
|
*/
|
941
911
|
|
942
912
|
static VALUE
|
@@ -981,7 +951,11 @@ rb_ca_mask_fill_copy (VALUE self, VALUE fval)
|
|
981
951
|
return rb_ca_unmask_copy_method(1, &fval, self);
|
982
952
|
}
|
983
953
|
|
984
|
-
/*
|
954
|
+
/* @overload invert_mask
|
955
|
+
|
956
|
+
(Masking, Destructive)
|
957
|
+
Inverts mask state.
|
958
|
+
*/
|
985
959
|
|
986
960
|
VALUE
|
987
961
|
rb_ca_invert_mask (VALUE self)
|
@@ -992,13 +966,11 @@ rb_ca_invert_mask (VALUE self)
|
|
992
966
|
return self;
|
993
967
|
}
|
994
968
|
|
995
|
-
/*
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
end
|
1001
|
-
end
|
969
|
+
/* @overload inherit_mask (*others):
|
970
|
+
|
971
|
+
(Masking, Destructive)
|
972
|
+
Sets the mask array of <code>self</code> by the logical sum of
|
973
|
+
the mask states of <code>self</code> and arrays given in arguments.
|
1002
974
|
*/
|
1003
975
|
|
1004
976
|
static VALUE
|
@@ -1073,13 +1045,11 @@ rb_ca_inherit_mask (VALUE self, int n, ...)
|
|
1073
1045
|
return self;
|
1074
1046
|
}
|
1075
1047
|
|
1076
|
-
/*
|
1077
|
-
|
1078
|
-
|
1079
|
-
|
1080
|
-
|
1081
|
-
end
|
1082
|
-
end
|
1048
|
+
/* @overload inherit_mask_replace (*others)
|
1049
|
+
Sets the mask array of <code>self</code> by the logical sum of
|
1050
|
+
the mask states of arrays given in arguments.
|
1051
|
+
This method does not inherit the mask states of itself (different point
|
1052
|
+
from `CArray#inherit_mask`)
|
1083
1053
|
*/
|
1084
1054
|
|
1085
1055
|
static VALUE
|
data/ext/carray_math.rb
CHANGED
@@ -18,12 +18,10 @@ HEADERS << < |
|
18
18
|
carray_math.c
|
19
19
|
|
20
20
|
This file is part of Ruby/CArray extension library.
|
21
|
-
You can redistribute it and/or modify it under the terms of
|
22
|
-
the Ruby Licence.
|
23
21
|
|
24
|
-
This file is automatically generated from carray_math.rb.
|
25
22
|
|
26
|
-
|
23
|
+
This file is automatically generated from carray_math.rb.
|
24
|
+
Copyright (C) 2005-2020 Hiroki Motoyoshi
|
27
25
|
|
28
26
|
---------------------------------------------------------------------------- */
|
29
27
|
|
@@ -249,7 +247,7 @@ binop("/", "div",
|
|
249
247
|
CMPLX_TYPES => HAVE_COMPLEX ? "(#3) = (#1) / (#2);" : nil,
|
250
248
|
OBJ_TYPES => '(#3) = rb_funcall((#1), id_slash, 1, (#2));')
|
251
249
|
|
252
|
-
binop("quo_i",
|
250
|
+
binop("quo_i", "quo_i",
|
253
251
|
OBJ_TYPES => '(#3) = rb_funcall((#1), rb_intern("quo"), 1, (#2));')
|
254
252
|
|
255
253
|
binop("rcp_mul", "rcp_mul",
|
@@ -697,7 +695,7 @@ rb_ca_ipower (VALUE self, VALUE other)
|
|
697
695
|
/* unresolved unbound repeat array generates unbound repeat array again */
|
698
696
|
if ( ca->obj_type == CA_OBJ_UNBOUND_REPEAT ) {
|
699
697
|
CAUnboundRepeat *cx = (CAUnboundRepeat *) ca;
|
700
|
-
obj = rb_ca_ubrep_new(obj, cx->rep_ndim, cx->rep_dim);
|
698
|
+
obj = rb_ca_ubrep_new(rb_ca_ubrep_shave(self, obj), cx->rep_ndim, cx->rep_dim);
|
701
699
|
}
|
702
700
|
|
703
701
|
return obj;
|
@@ -752,7 +750,7 @@ rb_ca_ipower_bang (VALUE self, VALUE other)
|
|
752
750
|
|
753
751
|
}
|
754
752
|
|
755
|
-
binop("
|
753
|
+
binop("power", "power",
|
756
754
|
INT_TYPES => "(#3) = op_powi_<type>((#1), (#2));",
|
757
755
|
FLOAT_TYPES => "(#3) = pow((#1), (#2));",
|
758
756
|
CMPLX_TYPES => HAVE_COMPLEX ? "(#3) = cpow((#1), (#2));" : nil,
|
@@ -775,8 +773,8 @@ static VALUE rb_ca_pow (VALUE self, VALUE other)
|
|
775
773
|
|
776
774
|
/* unresolved unbound repeat array generates unbound repeat array again */
|
777
775
|
if ( ca->obj_type == CA_OBJ_UNBOUND_REPEAT ) {
|
778
|
-
CAUnboundRepeat *cx = (CAUnboundRepeat *) ca;
|
779
|
-
obj = rb_ca_ubrep_new(obj, cx->rep_ndim, cx->rep_dim);
|
776
|
+
CAUnboundRepeat *cx = (CAUnboundRepeat *) ca;
|
777
|
+
obj = rb_ca_ubrep_new(rb_ca_ubrep_shave(self, obj), cx->rep_ndim, cx->rep_dim);
|
780
778
|
}
|
781
779
|
|
782
780
|
return obj;
|
@@ -803,7 +801,7 @@ METHODS << %{
|
|
803
801
|
rb_define_method(rb_cCArray, "pow!", rb_ca_pow_bang, 1);
|
804
802
|
}
|
805
803
|
|
806
|
-
alias_op("
|
804
|
+
alias_op("**", "pow")
|
807
805
|
|
808
806
|
METHODS << %{
|
809
807
|
id_equal = rb_intern("==");
|
data/ext/carray_mathfunc.c
CHANGED
@@ -3,10 +3,8 @@
|
|
3
3
|
carray/mathfunc/carray_mathfunc.c
|
4
4
|
|
5
5
|
This file is part of Ruby/CArray extension library.
|
6
|
-
You can redistribute it and/or modify it under the terms of
|
7
|
-
the Ruby Licence.
|
8
6
|
|
9
|
-
Copyright (C) 2005 Hiroki Motoyoshi
|
7
|
+
Copyright (C) 2005-2020 Hiroki Motoyoshi
|
10
8
|
|
11
9
|
---------------------------------------------------------------------------- */
|
12
10
|
|
data/ext/carray_numeric.c
CHANGED
@@ -3,10 +3,8 @@
|
|
3
3
|
carray_numeric.c
|
4
4
|
|
5
5
|
This file is part of Ruby/CArray extension library.
|
6
|
-
You can redistribute it and/or modify it under the terms of
|
7
|
-
the Ruby Licence.
|
8
6
|
|
9
|
-
Copyright (C) 2005 Hiroki Motoyoshi
|
7
|
+
Copyright (C) 2005-2020 Hiroki Motoyoshi
|
10
8
|
|
11
9
|
---------------------------------------------------------------------------- */
|
12
10
|
|
@@ -220,6 +218,15 @@ Init_carray_numeric ()
|
|
220
218
|
rb_define_alias(rb_cFalseClass, "__and__", "&");
|
221
219
|
rb_define_alias(rb_cFalseClass, "__xor__", "^");
|
222
220
|
|
221
|
+
#if RUBY_VERSION_CODE >= 240
|
222
|
+
|
223
|
+
rb_define_alias(rb_cInteger, "__or__", "|");
|
224
|
+
rb_define_alias(rb_cInteger, "__and__", "&");
|
225
|
+
rb_define_alias(rb_cInteger, "__xor__", "^");
|
226
|
+
rb_define_alias(rb_cInteger, "__lshift__", "<<");
|
227
|
+
rb_define_alias(rb_cInteger, "__rshift__", ">>");
|
228
|
+
|
229
|
+
#else
|
223
230
|
rb_define_alias(rb_cFixnum, "__or__", "|");
|
224
231
|
rb_define_alias(rb_cFixnum, "__and__", "&");
|
225
232
|
rb_define_alias(rb_cFixnum, "__xor__", "^");
|
@@ -231,6 +238,7 @@ Init_carray_numeric ()
|
|
231
238
|
rb_define_alias(rb_cBignum, "__xor__", "^");
|
232
239
|
rb_define_alias(rb_cBignum, "__lshift__", "<<");
|
233
240
|
rb_define_alias(rb_cBignum, "__rshift__", ">>");
|
241
|
+
#endif
|
234
242
|
|
235
243
|
rb_define_method(rb_cTrueClass, "|", rb_hack_or, 1);
|
236
244
|
rb_define_method(rb_cTrueClass, "&", rb_hack_and, 1);
|
@@ -242,6 +250,13 @@ Init_carray_numeric ()
|
|
242
250
|
rb_define_method(rb_cFalseClass, "^", rb_hack_xor, 1);
|
243
251
|
rb_define_method(rb_cFalseClass, "*", rb_hack_star, 1);
|
244
252
|
|
253
|
+
#if RUBY_VERSION_CODE >= 240
|
254
|
+
rb_define_method(rb_cInteger, "|", rb_hack_or, 1);
|
255
|
+
rb_define_method(rb_cInteger, "&", rb_hack_and, 1);
|
256
|
+
rb_define_method(rb_cInteger, "^", rb_hack_xor, 1);
|
257
|
+
rb_define_method(rb_cInteger, "<<", rb_hack_lshift, 1);
|
258
|
+
rb_define_method(rb_cInteger, ">>", rb_hack_rshift, 1);
|
259
|
+
#else
|
245
260
|
rb_define_method(rb_cFixnum, "|", rb_hack_or, 1);
|
246
261
|
rb_define_method(rb_cFixnum, "&", rb_hack_and, 1);
|
247
262
|
rb_define_method(rb_cFixnum, "^", rb_hack_xor, 1);
|
@@ -253,6 +268,7 @@ Init_carray_numeric ()
|
|
253
268
|
rb_define_method(rb_cBignum, "^", rb_hack_xor, 1);
|
254
269
|
rb_define_method(rb_cBignum, "<<", rb_hack_lshift, 1);
|
255
270
|
rb_define_method(rb_cBignum, ">>", rb_hack_rshift, 1);
|
271
|
+
#endif
|
256
272
|
|
257
273
|
#ifdef HAVE_COMPLEX_H
|
258
274
|
rb_define_method(rb_cCArray, "arg", rb_ca_arg, 0);
|