carray 3.0.0 → 3.0.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/.yardopts +2 -1
- data/CHANGELOG.md +845 -3
- data/{NEWS.md → CHANGELOG.v1.md} +1 -1
- data/README.md +33 -33
- data/carray.gemspec +12 -8
- data/ext/ca_axis_dispatch.c +33 -4
- data/ext/ca_axis_group.c +256 -114
- data/ext/ca_binop_dispatch.c +5 -6
- data/ext/ca_binop_dispatch.h +0 -7
- data/ext/ca_categorical_iterator.c +121 -67
- data/ext/ca_for_each_element.h +6 -8
- data/ext/ca_group_iter.c +1 -1
- data/ext/ca_kernel_iterator.c +386 -74
- data/ext/ca_kernel_iterator.h +145 -45
- data/ext/ca_obj_array.c +62 -20
- data/ext/ca_obj_bincmp.c +57 -27
- data/ext/ca_obj_binop.c +86 -30
- data/ext/ca_obj_block.c +4 -4
- data/ext/ca_obj_const_string.c +88 -27
- data/ext/ca_obj_face.c +104 -0
- data/ext/ca_obj_face.h +48 -1
- data/ext/ca_obj_fake.c +11 -0
- data/ext/ca_obj_fixlen_string.c +21 -6
- data/ext/ca_obj_grid.c +11 -3
- data/ext/ca_obj_meld.c +125 -22
- data/ext/ca_obj_moncmp.c +33 -14
- data/ext/ca_obj_monop.c +19 -7
- data/ext/ca_obj_object.c +107 -4
- data/ext/ca_obj_record.c +3 -1
- data/ext/ca_obj_refer.c +30 -6
- data/ext/ca_obj_roll.c +13 -5
- data/ext/ca_obj_select.c +49 -34
- data/ext/ca_obj_select_axis.c +16 -6
- data/ext/ca_obj_shift.c +3 -3
- data/ext/ca_obj_stack.c +3 -8
- data/ext/ca_obj_stride.c +178 -24
- data/ext/ca_obj_string.c +11 -5
- data/ext/ca_obj_tile.c +13 -5
- data/ext/ca_obj_time.c +3 -1
- data/ext/ca_obj_timedelta.c +3 -1
- data/ext/ca_obj_transpose.c +1 -1
- data/ext/ca_obj_triop.c +62 -23
- data/ext/ca_obj_window.c +94 -19
- data/ext/ca_op_cmplx64.h +123 -0
- data/ext/ca_op_ipower.c +1 -5
- data/ext/ca_rng_normal.h +42 -0
- data/ext/ca_rng_xoshiro256pp.h +105 -0
- data/ext/ca_sort_kernels.h +5 -5
- data/ext/ca_sweep_engine.c +362 -155
- data/ext/ca_sweep_engine.h +39 -9
- data/ext/ca_transform_common.c +7 -0
- data/ext/carray.h +148 -132
- data/ext/carray_access.c +83 -49
- data/ext/carray_address_basis.c +590 -0
- data/ext/carray_bincount.c +8 -8
- data/ext/carray_broadcast.c +102 -9
- data/ext/carray_build_flags.h +3 -0
- data/ext/carray_call_cfunc.c +2010 -335
- data/ext/carray_call_cfunc.h +153 -0
- data/ext/carray_cast.c +184 -72
- data/ext/carray_conversion.c +22 -22
- data/ext/carray_copy.c +67 -32
- data/ext/carray_core.c +140 -13
- data/ext/carray_count.c +10 -11
- data/ext/carray_element.c +7 -7
- data/ext/carray_factorize.c +72 -51
- data/ext/carray_hold.c +1 -1
- data/ext/carray_index_classifier.c +7 -21
- data/ext/carray_internal.h +36 -3
- data/ext/carray_kernels_bincmp.c +1 -0
- data/ext/carray_kernels_binop.c +320 -298
- data/ext/carray_kernels_init.c +1095 -0
- data/ext/carray_kernels_map.c +1 -0
- data/ext/carray_kernels_moncmp.c +1 -0
- data/ext/carray_kernels_monop.c +412 -411
- data/ext/carray_kernels_reduce_aggregate.c +256 -87
- data/ext/carray_kernels_reduce_boolean.c +1 -0
- data/ext/carray_kernels_reduce_cumulative.c +324 -54
- data/ext/carray_kernels_reduce_extreme.c +605 -58
- data/ext/carray_kernels_reduce_variance.c +1 -0
- data/ext/carray_kernels_scan.c +5 -4
- data/ext/carray_kernels_search.c +187 -106
- data/ext/carray_kernels_sort.c +1 -0
- data/ext/carray_kernels_triop.c +1 -0
- data/ext/carray_lazy.c +175 -5
- data/ext/carray_loop.c +7 -1
- data/ext/carray_mask.c +29 -13
- data/ext/carray_median_percentile.c +56 -1
- data/ext/carray_memory_view.c +46 -21
- data/ext/carray_operator.c +50 -53
- data/ext/carray_order.c +1 -1
- data/ext/carray_partition.c +4 -4
- data/ext/carray_random.c +391 -47
- data/ext/carray_scatter.c +1 -1
- data/ext/carray_slab.c +13 -0
- data/ext/carray_sort.c +22 -24
- data/ext/carray_sort_kernel.c +10 -10
- data/ext/carray_test.c +1 -1
- data/ext/extconf.rb +18 -0
- data/ext/mk_call_cfunc.rb +323 -145
- data/ext/mkkernel.rb +651 -129
- data/ext/ruby_carray.c +28 -17
- data/ext/version.h +4 -4
- data/lib/carray/autoload_carray.rb +24 -3
- data/lib/carray/autoload_method_extension.rb +14 -1
- data/lib/carray/axis_group.rb +84 -7
- data/lib/carray/basics.rb +63 -59
- data/lib/carray/bincount_nd.rb +12 -12
- data/lib/carray/block_iterator.rb +111 -25
- data/lib/carray/categorical.rb +154 -37
- data/lib/carray/categorical_iterator.rb +300 -151
- data/lib/carray/conditional.rb +14 -14
- data/lib/carray/const_string.rb +131 -27
- data/lib/carray/construct.rb +61 -0
- data/lib/carray/core_extensions.rb +62 -5
- data/lib/carray/data_type_extension.rb +21 -1
- data/lib/carray/data_type_limits.rb +91 -0
- data/lib/carray/fixlen_string.rb +1 -1
- data/lib/carray/frame/concat.rb +3 -3
- data/lib/carray/frame/convert.rb +1 -1
- data/lib/carray/frame/csv_parser.rb +11 -4
- data/lib/carray/frame/frame.rb +85 -21
- data/lib/carray/frame/group.rb +36 -3
- data/lib/carray/frame/io.rb +224 -15
- data/lib/carray/frame/records.rb +18 -4
- data/lib/carray/frame/sort.rb +1 -1
- data/lib/carray/frame/verbs.rb +32 -12
- data/lib/carray/fuse_source.rb +123 -0
- data/lib/carray/fusion.rb +218 -0
- data/lib/carray/histogram.rb +16 -16
- data/lib/carray/inspect.rb +43 -16
- data/lib/carray/iterator.rb +147 -3
- data/lib/carray/lazy.rb +88 -73
- data/lib/carray/mask_gap_fill.rb +3 -1
- data/lib/carray/meld_reduce.rb +2 -2
- data/lib/carray/methods/align_addr.rb +1 -1
- data/lib/carray/methods/composition.rb +1 -1
- data/lib/carray/methods/discovery_along.rb +74 -0
- data/lib/carray/methods/factorize.rb +50 -0
- data/lib/carray/methods/is_in.rb +25 -14
- data/lib/carray/methods/locate_addr.rb +81 -3
- data/lib/carray/methods/mask_duplicates.rb +36 -2
- data/lib/carray/methods/meshgrid.rb +4 -5
- data/lib/carray/methods/mode.rb +2 -2
- data/lib/carray/methods/nunique.rb +23 -2
- data/lib/carray/methods/repeat.rb +110 -0
- data/lib/carray/methods/snap.rb +7 -2
- data/lib/carray/methods/unique.rb +44 -4
- data/lib/carray/methods/value_counts.rb +2 -2
- data/lib/carray/rng.rb +86 -0
- data/lib/carray/runtime.rb +0 -19
- data/lib/carray/slab_iterator.rb +77 -19
- data/lib/carray/string_operation_extension.rb +10 -6
- data/lib/carray/time.rb +906 -491
- data/lib/carray/window_iterator.rb +421 -27
- data/lib/carray.rb +7 -5
- data/yard-stubs/ca_obj_array.rb +385 -0
- data/yard-stubs/ca_obj_bitarray.rb +38 -0
- data/yard-stubs/ca_obj_bitfield.rb +43 -0
- data/yard-stubs/ca_obj_block.rb +68 -0
- data/yard-stubs/ca_obj_byte_swap.rb +56 -0
- data/yard-stubs/ca_obj_fake.rb +31 -0
- data/yard-stubs/ca_obj_farray.rb +32 -0
- data/yard-stubs/ca_obj_field.rb +45 -0
- data/yard-stubs/ca_obj_grid.rb +35 -0
- data/yard-stubs/ca_obj_refer.rb +72 -0
- data/yard-stubs/ca_obj_roll.rb +45 -0
- data/yard-stubs/ca_obj_shift.rb +43 -0
- data/yard-stubs/ca_obj_stride.rb +181 -0
- data/yard-stubs/ca_obj_tile.rb +29 -0
- data/yard-stubs/ca_obj_transpose.rb +40 -0
- data/yard-stubs/ca_obj_window.rb +57 -0
- data/yard-stubs/carray_access.rb +131 -0
- data/yard-stubs/carray_attribute.rb +246 -0
- data/yard-stubs/carray_broadcast.rb +37 -0
- data/yard-stubs/carray_cast.rb +489 -0
- data/yard-stubs/carray_class.rb +65 -0
- data/yard-stubs/carray_conversion.rb +76 -0
- data/yard-stubs/carray_copy.rb +79 -0
- data/yard-stubs/carray_core.rb +34 -0
- data/yard-stubs/carray_count.rb +84 -0
- data/yard-stubs/carray_element.rb +108 -0
- data/yard-stubs/carray_generate.rb +66 -0
- data/yard-stubs/carray_lazy.rb +228 -0
- data/yard-stubs/carray_loop.rb +140 -0
- data/yard-stubs/carray_mask.rb +259 -0
- data/yard-stubs/carray_math.rb +1615 -0
- data/yard-stubs/carray_mathfunc.rb +45 -0
- data/yard-stubs/carray_median_percentile.rb +103 -0
- data/yard-stubs/carray_memory_view.rb +163 -0
- data/yard-stubs/carray_order.rb +252 -0
- data/yard-stubs/carray_random.rb +89 -0
- data/yard-stubs/carray_scatter.rb +106 -0
- data/yard-stubs/carray_slab.rb +59 -0
- data/yard-stubs/carray_sort.rb +165 -0
- data/yard-stubs/carray_test.rb +85 -0
- data/yard-stubs/carray_undef.rb +64 -0
- data/yard-stubs/carray_utils.rb +97 -0
- data/yard-stubs/ruby_carray.rb +193 -0
- metadata +67 -10
- data/ext/ca_obj_unbound_repeat.c +0 -496
data/ext/carray_kernels_monop.c
CHANGED
|
@@ -34,6 +34,7 @@ static inline VALUE BOOL2VAL (boolean8_t x) { return x ? Qtrue : Qfalse; }
|
|
|
34
34
|
#endif
|
|
35
35
|
|
|
36
36
|
#include "ca_op_powi.h"
|
|
37
|
+
#include "ca_op_cmplx64.h"
|
|
37
38
|
|
|
38
39
|
/* ===== monop zero ============================================ */
|
|
39
40
|
|
|
@@ -3166,7 +3167,7 @@ ca_monop_abs_i_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
3166
3167
|
if ( ! *pm ) {
|
|
3167
3168
|
p1 = q1 + k*i1;
|
|
3168
3169
|
p2 = q2 + k*i2;
|
|
3169
|
-
{ (*p2) =
|
|
3170
|
+
{ (*p2) = cabsf(*p1); }
|
|
3170
3171
|
}
|
|
3171
3172
|
}
|
|
3172
3173
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -3181,14 +3182,14 @@ ca_monop_abs_i_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
3181
3182
|
#pragma omp simd
|
|
3182
3183
|
for (k=0; k<n; k++) {
|
|
3183
3184
|
p1 = q1 + k; p2 = q2 + k;
|
|
3184
|
-
{ (*p2) =
|
|
3185
|
+
{ (*p2) = cabsf(*p1); }
|
|
3185
3186
|
}
|
|
3186
3187
|
} else {
|
|
3187
3188
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
3188
3189
|
cmplx64_t *p1 = q1;
|
|
3189
3190
|
cmplx64_t *p2 = q2;
|
|
3190
3191
|
for (k=0; k<n; k++) {
|
|
3191
|
-
{ (*p2) =
|
|
3192
|
+
{ (*p2) = cabsf(*p1); }
|
|
3192
3193
|
p1 += i1; p2 += i2;
|
|
3193
3194
|
}
|
|
3194
3195
|
}
|
|
@@ -3211,7 +3212,7 @@ ca_monop_abs_i_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
3211
3212
|
if ( ! *pm ) {
|
|
3212
3213
|
p1 = q1 + k*i1;
|
|
3213
3214
|
p2 = q2 + k*i2;
|
|
3214
|
-
{ (*p2) = cabs(
|
|
3215
|
+
{ (*p2) = cabs(*p1); }
|
|
3215
3216
|
}
|
|
3216
3217
|
}
|
|
3217
3218
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -3226,14 +3227,14 @@ ca_monop_abs_i_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
3226
3227
|
#pragma omp simd
|
|
3227
3228
|
for (k=0; k<n; k++) {
|
|
3228
3229
|
p1 = q1 + k; p2 = q2 + k;
|
|
3229
|
-
{ (*p2) = cabs(
|
|
3230
|
+
{ (*p2) = cabs(*p1); }
|
|
3230
3231
|
}
|
|
3231
3232
|
} else {
|
|
3232
3233
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
3233
3234
|
cmplx128_t *p1 = q1;
|
|
3234
3235
|
cmplx128_t *p2 = q2;
|
|
3235
3236
|
for (k=0; k<n; k++) {
|
|
3236
|
-
{ (*p2) = cabs(
|
|
3237
|
+
{ (*p2) = cabs(*p1); }
|
|
3237
3238
|
p1 += i1; p2 += i2;
|
|
3238
3239
|
}
|
|
3239
3240
|
}
|
|
@@ -3772,18 +3773,18 @@ ca_monop_abs_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
3772
3773
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
3773
3774
|
{
|
|
3774
3775
|
cmplx64_t * __restrict__ q1 = (cmplx64_t *) ptr1;
|
|
3775
|
-
|
|
3776
|
+
float * __restrict__ q2 = (float *) ptr2;
|
|
3776
3777
|
ca_size_t k;
|
|
3777
3778
|
if ( m ) {
|
|
3778
3779
|
cmplx64_t *p1 = q1;
|
|
3779
|
-
|
|
3780
|
+
float *p2 = q2;
|
|
3780
3781
|
boolean8_t *pm;
|
|
3781
3782
|
for (k=0; k<n; k++) {
|
|
3782
3783
|
pm = m + k;
|
|
3783
3784
|
if ( ! *pm ) {
|
|
3784
3785
|
p1 = q1 + k*i1;
|
|
3785
3786
|
p2 = q2 + k*i2;
|
|
3786
|
-
{ (*p2) =
|
|
3787
|
+
{ (*p2) = cabsf(*p1); }
|
|
3787
3788
|
}
|
|
3788
3789
|
}
|
|
3789
3790
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -3793,19 +3794,19 @@ ca_monop_abs_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
3793
3794
|
lane-parallel loads/stores. Element-wise monop has no
|
|
3794
3795
|
reassoc, so ε-close numeric contract is unaffected. */
|
|
3795
3796
|
cmplx64_t *p1;
|
|
3796
|
-
|
|
3797
|
+
float *p2;
|
|
3797
3798
|
(void)p1; (void)p2;
|
|
3798
3799
|
#pragma omp simd
|
|
3799
3800
|
for (k=0; k<n; k++) {
|
|
3800
3801
|
p1 = q1 + k; p2 = q2 + k;
|
|
3801
|
-
{ (*p2) =
|
|
3802
|
+
{ (*p2) = cabsf(*p1); }
|
|
3802
3803
|
}
|
|
3803
3804
|
} else {
|
|
3804
3805
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
3805
3806
|
cmplx64_t *p1 = q1;
|
|
3806
|
-
|
|
3807
|
+
float *p2 = q2;
|
|
3807
3808
|
for (k=0; k<n; k++) {
|
|
3808
|
-
{ (*p2) =
|
|
3809
|
+
{ (*p2) = cabsf(*p1); }
|
|
3809
3810
|
p1 += i1; p2 += i2;
|
|
3810
3811
|
}
|
|
3811
3812
|
}
|
|
@@ -3891,7 +3892,7 @@ int8_t ca_monop_abs_out_data_type[CA_NTYPE] = {
|
|
|
3891
3892
|
CA_FLOAT32,
|
|
3892
3893
|
CA_FLOAT64,
|
|
3893
3894
|
-1,
|
|
3894
|
-
|
|
3895
|
+
CA_FLOAT32,
|
|
3895
3896
|
CA_FLOAT64,
|
|
3896
3897
|
-1,
|
|
3897
3898
|
-1,
|
|
@@ -4380,18 +4381,18 @@ ca_monop_abs2_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
4380
4381
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
4381
4382
|
{
|
|
4382
4383
|
cmplx64_t * __restrict__ q1 = (cmplx64_t *) ptr1;
|
|
4383
|
-
|
|
4384
|
+
float * __restrict__ q2 = (float *) ptr2;
|
|
4384
4385
|
ca_size_t k;
|
|
4385
4386
|
if ( m ) {
|
|
4386
4387
|
cmplx64_t *p1 = q1;
|
|
4387
|
-
|
|
4388
|
+
float *p2 = q2;
|
|
4388
4389
|
boolean8_t *pm;
|
|
4389
4390
|
for (k=0; k<n; k++) {
|
|
4390
4391
|
pm = m + k;
|
|
4391
4392
|
if ( ! *pm ) {
|
|
4392
4393
|
p1 = q1 + k*i1;
|
|
4393
4394
|
p2 = q2 + k*i2;
|
|
4394
|
-
{ {
|
|
4395
|
+
{ { float _r = crealf(*p1); float _i = cimagf(*p1); (*p2) = _r * _r + _i * _i; } }
|
|
4395
4396
|
}
|
|
4396
4397
|
}
|
|
4397
4398
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -4401,19 +4402,19 @@ ca_monop_abs2_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
4401
4402
|
lane-parallel loads/stores. Element-wise monop has no
|
|
4402
4403
|
reassoc, so ε-close numeric contract is unaffected. */
|
|
4403
4404
|
cmplx64_t *p1;
|
|
4404
|
-
|
|
4405
|
+
float *p2;
|
|
4405
4406
|
(void)p1; (void)p2;
|
|
4406
4407
|
#pragma omp simd
|
|
4407
4408
|
for (k=0; k<n; k++) {
|
|
4408
4409
|
p1 = q1 + k; p2 = q2 + k;
|
|
4409
|
-
{ {
|
|
4410
|
+
{ { float _r = crealf(*p1); float _i = cimagf(*p1); (*p2) = _r * _r + _i * _i; } }
|
|
4410
4411
|
}
|
|
4411
4412
|
} else {
|
|
4412
4413
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
4413
4414
|
cmplx64_t *p1 = q1;
|
|
4414
|
-
|
|
4415
|
+
float *p2 = q2;
|
|
4415
4416
|
for (k=0; k<n; k++) {
|
|
4416
|
-
{ {
|
|
4417
|
+
{ { float _r = crealf(*p1); float _i = cimagf(*p1); (*p2) = _r * _r + _i * _i; } }
|
|
4417
4418
|
p1 += i1; p2 += i2;
|
|
4418
4419
|
}
|
|
4419
4420
|
}
|
|
@@ -4499,7 +4500,7 @@ int8_t ca_monop_abs2_out_data_type[CA_NTYPE] = {
|
|
|
4499
4500
|
CA_FLOAT32,
|
|
4500
4501
|
CA_FLOAT64,
|
|
4501
4502
|
-1,
|
|
4502
|
-
|
|
4503
|
+
CA_FLOAT32,
|
|
4503
4504
|
CA_FLOAT64,
|
|
4504
4505
|
-1,
|
|
4505
4506
|
-1,
|
|
@@ -4999,7 +5000,7 @@ ca_monop_conj_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
4999
5000
|
if ( ! *pm ) {
|
|
5000
5001
|
p1 = q1 + k*i1;
|
|
5001
5002
|
p2 = q2 + k*i2;
|
|
5002
|
-
{ (*p2) =
|
|
5003
|
+
{ (*p2) = conjf(*p1); }
|
|
5003
5004
|
}
|
|
5004
5005
|
}
|
|
5005
5006
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -5014,14 +5015,14 @@ ca_monop_conj_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
5014
5015
|
#pragma omp simd
|
|
5015
5016
|
for (k=0; k<n; k++) {
|
|
5016
5017
|
p1 = q1 + k; p2 = q2 + k;
|
|
5017
|
-
{ (*p2) =
|
|
5018
|
+
{ (*p2) = conjf(*p1); }
|
|
5018
5019
|
}
|
|
5019
5020
|
} else {
|
|
5020
5021
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
5021
5022
|
cmplx64_t *p1 = q1;
|
|
5022
5023
|
cmplx64_t *p2 = q2;
|
|
5023
5024
|
for (k=0; k<n; k++) {
|
|
5024
|
-
{ (*p2) =
|
|
5025
|
+
{ (*p2) = conjf(*p1); }
|
|
5025
5026
|
p1 += i1; p2 += i2;
|
|
5026
5027
|
}
|
|
5027
5028
|
}
|
|
@@ -5661,7 +5662,7 @@ ca_monop_sign_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
5661
5662
|
if ( ! *pm ) {
|
|
5662
5663
|
p1 = q1 + k*i1;
|
|
5663
5664
|
p2 = q2 + k*i2;
|
|
5664
|
-
{ {
|
|
5665
|
+
{ { float _m = cabsf(*p1); (*p2) = (_m == 0) ? 0 : ((*p1) / _m); } }
|
|
5665
5666
|
}
|
|
5666
5667
|
}
|
|
5667
5668
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -5676,14 +5677,14 @@ ca_monop_sign_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
5676
5677
|
#pragma omp simd
|
|
5677
5678
|
for (k=0; k<n; k++) {
|
|
5678
5679
|
p1 = q1 + k; p2 = q2 + k;
|
|
5679
|
-
{ {
|
|
5680
|
+
{ { float _m = cabsf(*p1); (*p2) = (_m == 0) ? 0 : ((*p1) / _m); } }
|
|
5680
5681
|
}
|
|
5681
5682
|
} else {
|
|
5682
5683
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
5683
5684
|
cmplx64_t *p1 = q1;
|
|
5684
5685
|
cmplx64_t *p2 = q2;
|
|
5685
5686
|
for (k=0; k<n; k++) {
|
|
5686
|
-
{ {
|
|
5687
|
+
{ { float _m = cabsf(*p1); (*p2) = (_m == 0) ? 0 : ((*p1) / _m); } }
|
|
5687
5688
|
p1 += i1; p2 += i2;
|
|
5688
5689
|
}
|
|
5689
5690
|
}
|
|
@@ -5706,7 +5707,7 @@ ca_monop_sign_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
5706
5707
|
if ( ! *pm ) {
|
|
5707
5708
|
p1 = q1 + k*i1;
|
|
5708
5709
|
p2 = q2 + k*i2;
|
|
5709
|
-
{ { double _m = cabs(*p1); (*p2) = (_m == 0
|
|
5710
|
+
{ { double _m = cabs(*p1); (*p2) = (_m == 0) ? 0 : ((*p1) / _m); } }
|
|
5710
5711
|
}
|
|
5711
5712
|
}
|
|
5712
5713
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -5721,14 +5722,14 @@ ca_monop_sign_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
5721
5722
|
#pragma omp simd
|
|
5722
5723
|
for (k=0; k<n; k++) {
|
|
5723
5724
|
p1 = q1 + k; p2 = q2 + k;
|
|
5724
|
-
{ { double _m = cabs(*p1); (*p2) = (_m == 0
|
|
5725
|
+
{ { double _m = cabs(*p1); (*p2) = (_m == 0) ? 0 : ((*p1) / _m); } }
|
|
5725
5726
|
}
|
|
5726
5727
|
} else {
|
|
5727
5728
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
5728
5729
|
cmplx128_t *p1 = q1;
|
|
5729
5730
|
cmplx128_t *p2 = q2;
|
|
5730
5731
|
for (k=0; k<n; k++) {
|
|
5731
|
-
{ { double _m = cabs(*p1); (*p2) = (_m == 0
|
|
5732
|
+
{ { double _m = cabs(*p1); (*p2) = (_m == 0) ? 0 : ((*p1) / _m); } }
|
|
5732
5733
|
p1 += i1; p2 += i2;
|
|
5733
5734
|
}
|
|
5734
5735
|
}
|
|
@@ -6132,11 +6133,11 @@ ca_monop_arg_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
6132
6133
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
6133
6134
|
{
|
|
6134
6135
|
float * __restrict__ q1 = (float *) ptr1;
|
|
6135
|
-
|
|
6136
|
+
float * __restrict__ q2 = (float *) ptr2;
|
|
6136
6137
|
ca_size_t k;
|
|
6137
6138
|
if ( m ) {
|
|
6138
6139
|
float *p1 = q1;
|
|
6139
|
-
|
|
6140
|
+
float *p2 = q2;
|
|
6140
6141
|
boolean8_t *pm;
|
|
6141
6142
|
for (k=0; k<n; k++) {
|
|
6142
6143
|
pm = m + k;
|
|
@@ -6153,7 +6154,7 @@ ca_monop_arg_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
6153
6154
|
lane-parallel loads/stores. Element-wise monop has no
|
|
6154
6155
|
reassoc, so ε-close numeric contract is unaffected. */
|
|
6155
6156
|
float *p1;
|
|
6156
|
-
|
|
6157
|
+
float *p2;
|
|
6157
6158
|
(void)p1; (void)p2;
|
|
6158
6159
|
#pragma omp simd
|
|
6159
6160
|
for (k=0; k<n; k++) {
|
|
@@ -6163,7 +6164,7 @@ ca_monop_arg_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
6163
6164
|
} else {
|
|
6164
6165
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
6165
6166
|
float *p1 = q1;
|
|
6166
|
-
|
|
6167
|
+
float *p2 = q2;
|
|
6167
6168
|
for (k=0; k<n; k++) {
|
|
6168
6169
|
{ (*p2) = carg((cmplx128_t)(*p1)); }
|
|
6169
6170
|
p1 += i1; p2 += i2;
|
|
@@ -6222,18 +6223,18 @@ ca_monop_arg_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
6222
6223
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
6223
6224
|
{
|
|
6224
6225
|
cmplx64_t * __restrict__ q1 = (cmplx64_t *) ptr1;
|
|
6225
|
-
|
|
6226
|
+
float * __restrict__ q2 = (float *) ptr2;
|
|
6226
6227
|
ca_size_t k;
|
|
6227
6228
|
if ( m ) {
|
|
6228
6229
|
cmplx64_t *p1 = q1;
|
|
6229
|
-
|
|
6230
|
+
float *p2 = q2;
|
|
6230
6231
|
boolean8_t *pm;
|
|
6231
6232
|
for (k=0; k<n; k++) {
|
|
6232
6233
|
pm = m + k;
|
|
6233
6234
|
if ( ! *pm ) {
|
|
6234
6235
|
p1 = q1 + k*i1;
|
|
6235
6236
|
p2 = q2 + k*i2;
|
|
6236
|
-
{ (*p2) =
|
|
6237
|
+
{ (*p2) = cargf(*p1); }
|
|
6237
6238
|
}
|
|
6238
6239
|
}
|
|
6239
6240
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -6243,19 +6244,19 @@ ca_monop_arg_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
6243
6244
|
lane-parallel loads/stores. Element-wise monop has no
|
|
6244
6245
|
reassoc, so ε-close numeric contract is unaffected. */
|
|
6245
6246
|
cmplx64_t *p1;
|
|
6246
|
-
|
|
6247
|
+
float *p2;
|
|
6247
6248
|
(void)p1; (void)p2;
|
|
6248
6249
|
#pragma omp simd
|
|
6249
6250
|
for (k=0; k<n; k++) {
|
|
6250
6251
|
p1 = q1 + k; p2 = q2 + k;
|
|
6251
|
-
{ (*p2) =
|
|
6252
|
+
{ (*p2) = cargf(*p1); }
|
|
6252
6253
|
}
|
|
6253
6254
|
} else {
|
|
6254
6255
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
6255
6256
|
cmplx64_t *p1 = q1;
|
|
6256
|
-
|
|
6257
|
+
float *p2 = q2;
|
|
6257
6258
|
for (k=0; k<n; k++) {
|
|
6258
|
-
{ (*p2) =
|
|
6259
|
+
{ (*p2) = cargf(*p1); }
|
|
6259
6260
|
p1 += i1; p2 += i2;
|
|
6260
6261
|
}
|
|
6261
6262
|
}
|
|
@@ -6338,10 +6339,10 @@ int8_t ca_monop_arg_out_data_type[CA_NTYPE] = {
|
|
|
6338
6339
|
CA_FLOAT64,
|
|
6339
6340
|
CA_FLOAT64,
|
|
6340
6341
|
CA_FLOAT64,
|
|
6341
|
-
|
|
6342
|
+
CA_FLOAT32,
|
|
6342
6343
|
CA_FLOAT64,
|
|
6343
6344
|
-1,
|
|
6344
|
-
|
|
6345
|
+
CA_FLOAT32,
|
|
6345
6346
|
CA_FLOAT64,
|
|
6346
6347
|
-1,
|
|
6347
6348
|
-1,
|
|
@@ -6761,7 +6762,7 @@ ca_monop_imag_i_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
6761
6762
|
if ( ! *pm ) {
|
|
6762
6763
|
p1 = q1 + k*i1;
|
|
6763
6764
|
p2 = q2 + k*i2;
|
|
6764
|
-
{ (*p2) =
|
|
6765
|
+
{ (*p2) = cimagf(*p1); }
|
|
6765
6766
|
}
|
|
6766
6767
|
}
|
|
6767
6768
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -6776,14 +6777,14 @@ ca_monop_imag_i_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
6776
6777
|
#pragma omp simd
|
|
6777
6778
|
for (k=0; k<n; k++) {
|
|
6778
6779
|
p1 = q1 + k; p2 = q2 + k;
|
|
6779
|
-
{ (*p2) =
|
|
6780
|
+
{ (*p2) = cimagf(*p1); }
|
|
6780
6781
|
}
|
|
6781
6782
|
} else {
|
|
6782
6783
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
6783
6784
|
cmplx64_t *p1 = q1;
|
|
6784
6785
|
cmplx64_t *p2 = q2;
|
|
6785
6786
|
for (k=0; k<n; k++) {
|
|
6786
|
-
{ (*p2) =
|
|
6787
|
+
{ (*p2) = cimagf(*p1); }
|
|
6787
6788
|
p1 += i1; p2 += i2;
|
|
6788
6789
|
}
|
|
6789
6790
|
}
|
|
@@ -6928,7 +6929,7 @@ ca_monop_arg_i_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
6928
6929
|
if ( ! *pm ) {
|
|
6929
6930
|
p1 = q1 + k*i1;
|
|
6930
6931
|
p2 = q2 + k*i2;
|
|
6931
|
-
{ (*p2) = (
|
|
6932
|
+
{ (*p2) = cargf((cmplx64_t)(*p1)); }
|
|
6932
6933
|
}
|
|
6933
6934
|
}
|
|
6934
6935
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -6943,14 +6944,14 @@ ca_monop_arg_i_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
6943
6944
|
#pragma omp simd
|
|
6944
6945
|
for (k=0; k<n; k++) {
|
|
6945
6946
|
p1 = q1 + k; p2 = q2 + k;
|
|
6946
|
-
{ (*p2) = (
|
|
6947
|
+
{ (*p2) = cargf((cmplx64_t)(*p1)); }
|
|
6947
6948
|
}
|
|
6948
6949
|
} else {
|
|
6949
6950
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
6950
6951
|
float *p1 = q1;
|
|
6951
6952
|
float *p2 = q2;
|
|
6952
6953
|
for (k=0; k<n; k++) {
|
|
6953
|
-
{ (*p2) = (
|
|
6954
|
+
{ (*p2) = cargf((cmplx64_t)(*p1)); }
|
|
6954
6955
|
p1 += i1; p2 += i2;
|
|
6955
6956
|
}
|
|
6956
6957
|
}
|
|
@@ -7018,7 +7019,7 @@ ca_monop_arg_i_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
7018
7019
|
if ( ! *pm ) {
|
|
7019
7020
|
p1 = q1 + k*i1;
|
|
7020
7021
|
p2 = q2 + k*i2;
|
|
7021
|
-
{ (*p2) = (
|
|
7022
|
+
{ (*p2) = cargf(*p1); }
|
|
7022
7023
|
}
|
|
7023
7024
|
}
|
|
7024
7025
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -7033,14 +7034,14 @@ ca_monop_arg_i_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
7033
7034
|
#pragma omp simd
|
|
7034
7035
|
for (k=0; k<n; k++) {
|
|
7035
7036
|
p1 = q1 + k; p2 = q2 + k;
|
|
7036
|
-
{ (*p2) = (
|
|
7037
|
+
{ (*p2) = cargf(*p1); }
|
|
7037
7038
|
}
|
|
7038
7039
|
} else {
|
|
7039
7040
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
7040
7041
|
cmplx64_t *p1 = q1;
|
|
7041
7042
|
cmplx64_t *p2 = q2;
|
|
7042
7043
|
for (k=0; k<n; k++) {
|
|
7043
|
-
{ (*p2) = (
|
|
7044
|
+
{ (*p2) = cargf(*p1); }
|
|
7044
7045
|
p1 += i1; p2 += i2;
|
|
7045
7046
|
}
|
|
7046
7047
|
}
|
|
@@ -9695,7 +9696,7 @@ ca_monop_rcp_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
9695
9696
|
if ( ! *pm ) {
|
|
9696
9697
|
p1 = q1 + k*i1;
|
|
9697
9698
|
p2 = q2 + k*i2;
|
|
9698
|
-
{ (*p2) =
|
|
9699
|
+
{ (*p2) = op_crcp_cmplx64(*p1); }
|
|
9699
9700
|
}
|
|
9700
9701
|
}
|
|
9701
9702
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -9710,14 +9711,14 @@ ca_monop_rcp_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
9710
9711
|
#pragma omp simd
|
|
9711
9712
|
for (k=0; k<n; k++) {
|
|
9712
9713
|
p1 = q1 + k; p2 = q2 + k;
|
|
9713
|
-
{ (*p2) =
|
|
9714
|
+
{ (*p2) = op_crcp_cmplx64(*p1); }
|
|
9714
9715
|
}
|
|
9715
9716
|
} else {
|
|
9716
9717
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
9717
9718
|
cmplx64_t *p1 = q1;
|
|
9718
9719
|
cmplx64_t *p2 = q2;
|
|
9719
9720
|
for (k=0; k<n; k++) {
|
|
9720
|
-
{ (*p2) =
|
|
9721
|
+
{ (*p2) = op_crcp_cmplx64(*p1); }
|
|
9721
9722
|
p1 += i1; p2 += i2;
|
|
9722
9723
|
}
|
|
9723
9724
|
}
|
|
@@ -9862,7 +9863,7 @@ ca_monop_sqrt_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
9862
9863
|
if ( ! *pm ) {
|
|
9863
9864
|
p1 = q1 + k*i1;
|
|
9864
9865
|
p2 = q2 + k*i2;
|
|
9865
|
-
{ (*p2) =
|
|
9866
|
+
{ (*p2) = sqrtf(*p1); }
|
|
9866
9867
|
}
|
|
9867
9868
|
}
|
|
9868
9869
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -9877,14 +9878,14 @@ ca_monop_sqrt_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
9877
9878
|
#pragma omp simd
|
|
9878
9879
|
for (k=0; k<n; k++) {
|
|
9879
9880
|
p1 = q1 + k; p2 = q2 + k;
|
|
9880
|
-
{ (*p2) =
|
|
9881
|
+
{ (*p2) = sqrtf(*p1); }
|
|
9881
9882
|
}
|
|
9882
9883
|
} else {
|
|
9883
9884
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
9884
9885
|
float *p1 = q1;
|
|
9885
9886
|
float *p2 = q2;
|
|
9886
9887
|
for (k=0; k<n; k++) {
|
|
9887
|
-
{ (*p2) =
|
|
9888
|
+
{ (*p2) = sqrtf(*p1); }
|
|
9888
9889
|
p1 += i1; p2 += i2;
|
|
9889
9890
|
}
|
|
9890
9891
|
}
|
|
@@ -9952,7 +9953,7 @@ ca_monop_sqrt_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
9952
9953
|
if ( ! *pm ) {
|
|
9953
9954
|
p1 = q1 + k*i1;
|
|
9954
9955
|
p2 = q2 + k*i2;
|
|
9955
|
-
{ (*p2) =
|
|
9956
|
+
{ (*p2) = csqrtf(*p1); }
|
|
9956
9957
|
}
|
|
9957
9958
|
}
|
|
9958
9959
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -9967,14 +9968,14 @@ ca_monop_sqrt_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
9967
9968
|
#pragma omp simd
|
|
9968
9969
|
for (k=0; k<n; k++) {
|
|
9969
9970
|
p1 = q1 + k; p2 = q2 + k;
|
|
9970
|
-
{ (*p2) =
|
|
9971
|
+
{ (*p2) = csqrtf(*p1); }
|
|
9971
9972
|
}
|
|
9972
9973
|
} else {
|
|
9973
9974
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
9974
9975
|
cmplx64_t *p1 = q1;
|
|
9975
9976
|
cmplx64_t *p2 = q2;
|
|
9976
9977
|
for (k=0; k<n; k++) {
|
|
9977
|
-
{ (*p2) =
|
|
9978
|
+
{ (*p2) = csqrtf(*p1); }
|
|
9978
9979
|
p1 += i1; p2 += i2;
|
|
9979
9980
|
}
|
|
9980
9981
|
}
|
|
@@ -10148,7 +10149,7 @@ ca_monop_exp_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
10148
10149
|
if ( ! *pm ) {
|
|
10149
10150
|
p1 = q1 + k*i1;
|
|
10150
10151
|
p2 = q2 + k*i2;
|
|
10151
|
-
{ (*p2) =
|
|
10152
|
+
{ (*p2) = expf(*p1); }
|
|
10152
10153
|
}
|
|
10153
10154
|
}
|
|
10154
10155
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10163,14 +10164,14 @@ ca_monop_exp_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
10163
10164
|
#pragma omp simd
|
|
10164
10165
|
for (k=0; k<n; k++) {
|
|
10165
10166
|
p1 = q1 + k; p2 = q2 + k;
|
|
10166
|
-
{ (*p2) =
|
|
10167
|
+
{ (*p2) = expf(*p1); }
|
|
10167
10168
|
}
|
|
10168
10169
|
} else {
|
|
10169
10170
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10170
10171
|
float *p1 = q1;
|
|
10171
10172
|
float *p2 = q2;
|
|
10172
10173
|
for (k=0; k<n; k++) {
|
|
10173
|
-
{ (*p2) =
|
|
10174
|
+
{ (*p2) = expf(*p1); }
|
|
10174
10175
|
p1 += i1; p2 += i2;
|
|
10175
10176
|
}
|
|
10176
10177
|
}
|
|
@@ -10238,7 +10239,7 @@ ca_monop_exp_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
10238
10239
|
if ( ! *pm ) {
|
|
10239
10240
|
p1 = q1 + k*i1;
|
|
10240
10241
|
p2 = q2 + k*i2;
|
|
10241
|
-
{ (*p2) =
|
|
10242
|
+
{ (*p2) = cexpf(*p1); }
|
|
10242
10243
|
}
|
|
10243
10244
|
}
|
|
10244
10245
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10253,14 +10254,14 @@ ca_monop_exp_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
10253
10254
|
#pragma omp simd
|
|
10254
10255
|
for (k=0; k<n; k++) {
|
|
10255
10256
|
p1 = q1 + k; p2 = q2 + k;
|
|
10256
|
-
{ (*p2) =
|
|
10257
|
+
{ (*p2) = cexpf(*p1); }
|
|
10257
10258
|
}
|
|
10258
10259
|
} else {
|
|
10259
10260
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10260
10261
|
cmplx64_t *p1 = q1;
|
|
10261
10262
|
cmplx64_t *p2 = q2;
|
|
10262
10263
|
for (k=0; k<n; k++) {
|
|
10263
|
-
{ (*p2) =
|
|
10264
|
+
{ (*p2) = cexpf(*p1); }
|
|
10264
10265
|
p1 += i1; p2 += i2;
|
|
10265
10266
|
}
|
|
10266
10267
|
}
|
|
@@ -10415,10 +10416,10 @@ VALUE rb_ca_exp_bang (VALUE self)
|
|
|
10415
10416
|
VALUE rb_cmath_exp (VALUE mod, VALUE arg)
|
|
10416
10417
|
{ return ca_math_call(mod, arg, rb_intern("exp")); }
|
|
10417
10418
|
|
|
10418
|
-
/* ===== monop
|
|
10419
|
+
/* ===== monop sin ============================================ */
|
|
10419
10420
|
|
|
10420
10421
|
static void
|
|
10421
|
-
|
|
10422
|
+
ca_monop_sin_float32_t (ca_size_t n, boolean8_t *m,
|
|
10422
10423
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10423
10424
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10424
10425
|
{
|
|
@@ -10434,7 +10435,7 @@ ca_monop_log_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
10434
10435
|
if ( ! *pm ) {
|
|
10435
10436
|
p1 = q1 + k*i1;
|
|
10436
10437
|
p2 = q2 + k*i2;
|
|
10437
|
-
{ (*p2) =
|
|
10438
|
+
{ (*p2) = sinf(*p1); }
|
|
10438
10439
|
}
|
|
10439
10440
|
}
|
|
10440
10441
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10449,21 +10450,21 @@ ca_monop_log_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
10449
10450
|
#pragma omp simd
|
|
10450
10451
|
for (k=0; k<n; k++) {
|
|
10451
10452
|
p1 = q1 + k; p2 = q2 + k;
|
|
10452
|
-
{ (*p2) =
|
|
10453
|
+
{ (*p2) = sinf(*p1); }
|
|
10453
10454
|
}
|
|
10454
10455
|
} else {
|
|
10455
10456
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10456
10457
|
float *p1 = q1;
|
|
10457
10458
|
float *p2 = q2;
|
|
10458
10459
|
for (k=0; k<n; k++) {
|
|
10459
|
-
{ (*p2) =
|
|
10460
|
+
{ (*p2) = sinf(*p1); }
|
|
10460
10461
|
p1 += i1; p2 += i2;
|
|
10461
10462
|
}
|
|
10462
10463
|
}
|
|
10463
10464
|
}
|
|
10464
10465
|
|
|
10465
10466
|
static void
|
|
10466
|
-
|
|
10467
|
+
ca_monop_sin_float64_t (ca_size_t n, boolean8_t *m,
|
|
10467
10468
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10468
10469
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10469
10470
|
{
|
|
@@ -10479,7 +10480,7 @@ ca_monop_log_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
10479
10480
|
if ( ! *pm ) {
|
|
10480
10481
|
p1 = q1 + k*i1;
|
|
10481
10482
|
p2 = q2 + k*i2;
|
|
10482
|
-
{ (*p2) =
|
|
10483
|
+
{ (*p2) = sin(*p1); }
|
|
10483
10484
|
}
|
|
10484
10485
|
}
|
|
10485
10486
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10494,21 +10495,21 @@ ca_monop_log_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
10494
10495
|
#pragma omp simd
|
|
10495
10496
|
for (k=0; k<n; k++) {
|
|
10496
10497
|
p1 = q1 + k; p2 = q2 + k;
|
|
10497
|
-
{ (*p2) =
|
|
10498
|
+
{ (*p2) = sin(*p1); }
|
|
10498
10499
|
}
|
|
10499
10500
|
} else {
|
|
10500
10501
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10501
10502
|
double *p1 = q1;
|
|
10502
10503
|
double *p2 = q2;
|
|
10503
10504
|
for (k=0; k<n; k++) {
|
|
10504
|
-
{ (*p2) =
|
|
10505
|
+
{ (*p2) = sin(*p1); }
|
|
10505
10506
|
p1 += i1; p2 += i2;
|
|
10506
10507
|
}
|
|
10507
10508
|
}
|
|
10508
10509
|
}
|
|
10509
10510
|
|
|
10510
10511
|
static void
|
|
10511
|
-
|
|
10512
|
+
ca_monop_sin_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
10512
10513
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10513
10514
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10514
10515
|
{
|
|
@@ -10524,7 +10525,7 @@ ca_monop_log_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
10524
10525
|
if ( ! *pm ) {
|
|
10525
10526
|
p1 = q1 + k*i1;
|
|
10526
10527
|
p2 = q2 + k*i2;
|
|
10527
|
-
{ (*p2) =
|
|
10528
|
+
{ (*p2) = csinf(*p1); }
|
|
10528
10529
|
}
|
|
10529
10530
|
}
|
|
10530
10531
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10539,21 +10540,21 @@ ca_monop_log_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
10539
10540
|
#pragma omp simd
|
|
10540
10541
|
for (k=0; k<n; k++) {
|
|
10541
10542
|
p1 = q1 + k; p2 = q2 + k;
|
|
10542
|
-
{ (*p2) =
|
|
10543
|
+
{ (*p2) = csinf(*p1); }
|
|
10543
10544
|
}
|
|
10544
10545
|
} else {
|
|
10545
10546
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10546
10547
|
cmplx64_t *p1 = q1;
|
|
10547
10548
|
cmplx64_t *p2 = q2;
|
|
10548
10549
|
for (k=0; k<n; k++) {
|
|
10549
|
-
{ (*p2) =
|
|
10550
|
+
{ (*p2) = csinf(*p1); }
|
|
10550
10551
|
p1 += i1; p2 += i2;
|
|
10551
10552
|
}
|
|
10552
10553
|
}
|
|
10553
10554
|
}
|
|
10554
10555
|
|
|
10555
10556
|
static void
|
|
10556
|
-
|
|
10557
|
+
ca_monop_sin_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
10557
10558
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10558
10559
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10559
10560
|
{
|
|
@@ -10569,7 +10570,7 @@ ca_monop_log_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
10569
10570
|
if ( ! *pm ) {
|
|
10570
10571
|
p1 = q1 + k*i1;
|
|
10571
10572
|
p2 = q2 + k*i2;
|
|
10572
|
-
{ (*p2) =
|
|
10573
|
+
{ (*p2) = csin(*p1); }
|
|
10573
10574
|
}
|
|
10574
10575
|
}
|
|
10575
10576
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10584,21 +10585,21 @@ ca_monop_log_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
10584
10585
|
#pragma omp simd
|
|
10585
10586
|
for (k=0; k<n; k++) {
|
|
10586
10587
|
p1 = q1 + k; p2 = q2 + k;
|
|
10587
|
-
{ (*p2) =
|
|
10588
|
+
{ (*p2) = csin(*p1); }
|
|
10588
10589
|
}
|
|
10589
10590
|
} else {
|
|
10590
10591
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10591
10592
|
cmplx128_t *p1 = q1;
|
|
10592
10593
|
cmplx128_t *p2 = q2;
|
|
10593
10594
|
for (k=0; k<n; k++) {
|
|
10594
|
-
{ (*p2) =
|
|
10595
|
+
{ (*p2) = csin(*p1); }
|
|
10595
10596
|
p1 += i1; p2 += i2;
|
|
10596
10597
|
}
|
|
10597
10598
|
}
|
|
10598
10599
|
}
|
|
10599
10600
|
|
|
10600
10601
|
static void
|
|
10601
|
-
|
|
10602
|
+
ca_monop_sin_VALUE (ca_size_t n, boolean8_t *m,
|
|
10602
10603
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10603
10604
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10604
10605
|
{
|
|
@@ -10617,9 +10618,9 @@ ca_monop_log_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
10617
10618
|
{ {
|
|
10618
10619
|
VALUE _obj_arg = (*p1);
|
|
10619
10620
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
10620
|
-
(*p2) = DBL2NUM(
|
|
10621
|
+
(*p2) = DBL2NUM(sin(NUM2DBL(_obj_arg)));
|
|
10621
10622
|
} else {
|
|
10622
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
10623
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("sin"), 0);
|
|
10623
10624
|
}
|
|
10624
10625
|
}
|
|
10625
10626
|
}
|
|
@@ -10640,9 +10641,9 @@ ca_monop_log_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
10640
10641
|
{ {
|
|
10641
10642
|
VALUE _obj_arg = (*p1);
|
|
10642
10643
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
10643
|
-
(*p2) = DBL2NUM(
|
|
10644
|
+
(*p2) = DBL2NUM(sin(NUM2DBL(_obj_arg)));
|
|
10644
10645
|
} else {
|
|
10645
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
10646
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("sin"), 0);
|
|
10646
10647
|
}
|
|
10647
10648
|
}
|
|
10648
10649
|
}
|
|
@@ -10655,9 +10656,9 @@ ca_monop_log_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
10655
10656
|
{ {
|
|
10656
10657
|
VALUE _obj_arg = (*p1);
|
|
10657
10658
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
10658
|
-
(*p2) = DBL2NUM(
|
|
10659
|
+
(*p2) = DBL2NUM(sin(NUM2DBL(_obj_arg)));
|
|
10659
10660
|
} else {
|
|
10660
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
10661
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("sin"), 0);
|
|
10661
10662
|
}
|
|
10662
10663
|
}
|
|
10663
10664
|
}
|
|
@@ -10667,7 +10668,7 @@ ca_monop_log_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
10667
10668
|
}
|
|
10668
10669
|
|
|
10669
10670
|
ca_monop_func_t
|
|
10670
|
-
|
|
10671
|
+
ca_monop_sin[CA_NTYPE] = {
|
|
10671
10672
|
ca_monop_not_implement,
|
|
10672
10673
|
ca_monop_not_implement,
|
|
10673
10674
|
ca_monop_not_implement,
|
|
@@ -10678,33 +10679,33 @@ ca_monop_log[CA_NTYPE] = {
|
|
|
10678
10679
|
ca_monop_not_implement,
|
|
10679
10680
|
ca_monop_not_implement,
|
|
10680
10681
|
ca_monop_not_implement,
|
|
10681
|
-
|
|
10682
|
-
|
|
10682
|
+
ca_monop_sin_float32_t,
|
|
10683
|
+
ca_monop_sin_float64_t,
|
|
10683
10684
|
ca_monop_not_implement,
|
|
10684
|
-
|
|
10685
|
-
|
|
10685
|
+
ca_monop_sin_cmplx64_t,
|
|
10686
|
+
ca_monop_sin_cmplx128_t,
|
|
10686
10687
|
ca_monop_not_implement,
|
|
10687
|
-
|
|
10688
|
+
ca_monop_sin_VALUE,
|
|
10688
10689
|
};
|
|
10689
10690
|
|
|
10690
|
-
VALUE
|
|
10691
|
+
VALUE rb_ca_sin (VALUE self)
|
|
10691
10692
|
{
|
|
10692
10693
|
if ( rb_ca_is_integer_type(self) ) {
|
|
10693
10694
|
self = rb_ca_wrap_readonly(self, INT2NUM(CA_FLOAT64));
|
|
10694
10695
|
}
|
|
10695
|
-
return rb_ca_call_monop(self,
|
|
10696
|
+
return rb_ca_call_monop(self, ca_monop_sin);
|
|
10696
10697
|
}
|
|
10697
10698
|
|
|
10698
|
-
VALUE
|
|
10699
|
-
{ return rb_ca_call_monop_bang(self,
|
|
10699
|
+
VALUE rb_ca_sin_bang (VALUE self)
|
|
10700
|
+
{ return rb_ca_call_monop_bang(self, ca_monop_sin); }
|
|
10700
10701
|
|
|
10701
|
-
VALUE
|
|
10702
|
-
{ return ca_math_call(mod, arg, rb_intern("
|
|
10702
|
+
VALUE rb_cmath_sin (VALUE mod, VALUE arg)
|
|
10703
|
+
{ return ca_math_call(mod, arg, rb_intern("sin")); }
|
|
10703
10704
|
|
|
10704
|
-
/* ===== monop
|
|
10705
|
+
/* ===== monop cos ============================================ */
|
|
10705
10706
|
|
|
10706
10707
|
static void
|
|
10707
|
-
|
|
10708
|
+
ca_monop_cos_float32_t (ca_size_t n, boolean8_t *m,
|
|
10708
10709
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10709
10710
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10710
10711
|
{
|
|
@@ -10720,7 +10721,7 @@ ca_monop_sin_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
10720
10721
|
if ( ! *pm ) {
|
|
10721
10722
|
p1 = q1 + k*i1;
|
|
10722
10723
|
p2 = q2 + k*i2;
|
|
10723
|
-
{ (*p2) =
|
|
10724
|
+
{ (*p2) = cosf(*p1); }
|
|
10724
10725
|
}
|
|
10725
10726
|
}
|
|
10726
10727
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10735,21 +10736,21 @@ ca_monop_sin_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
10735
10736
|
#pragma omp simd
|
|
10736
10737
|
for (k=0; k<n; k++) {
|
|
10737
10738
|
p1 = q1 + k; p2 = q2 + k;
|
|
10738
|
-
{ (*p2) =
|
|
10739
|
+
{ (*p2) = cosf(*p1); }
|
|
10739
10740
|
}
|
|
10740
10741
|
} else {
|
|
10741
10742
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10742
10743
|
float *p1 = q1;
|
|
10743
10744
|
float *p2 = q2;
|
|
10744
10745
|
for (k=0; k<n; k++) {
|
|
10745
|
-
{ (*p2) =
|
|
10746
|
+
{ (*p2) = cosf(*p1); }
|
|
10746
10747
|
p1 += i1; p2 += i2;
|
|
10747
10748
|
}
|
|
10748
10749
|
}
|
|
10749
10750
|
}
|
|
10750
10751
|
|
|
10751
10752
|
static void
|
|
10752
|
-
|
|
10753
|
+
ca_monop_cos_float64_t (ca_size_t n, boolean8_t *m,
|
|
10753
10754
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10754
10755
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10755
10756
|
{
|
|
@@ -10765,7 +10766,7 @@ ca_monop_sin_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
10765
10766
|
if ( ! *pm ) {
|
|
10766
10767
|
p1 = q1 + k*i1;
|
|
10767
10768
|
p2 = q2 + k*i2;
|
|
10768
|
-
{ (*p2) =
|
|
10769
|
+
{ (*p2) = cos(*p1); }
|
|
10769
10770
|
}
|
|
10770
10771
|
}
|
|
10771
10772
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10780,21 +10781,21 @@ ca_monop_sin_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
10780
10781
|
#pragma omp simd
|
|
10781
10782
|
for (k=0; k<n; k++) {
|
|
10782
10783
|
p1 = q1 + k; p2 = q2 + k;
|
|
10783
|
-
{ (*p2) =
|
|
10784
|
+
{ (*p2) = cos(*p1); }
|
|
10784
10785
|
}
|
|
10785
10786
|
} else {
|
|
10786
10787
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10787
10788
|
double *p1 = q1;
|
|
10788
10789
|
double *p2 = q2;
|
|
10789
10790
|
for (k=0; k<n; k++) {
|
|
10790
|
-
{ (*p2) =
|
|
10791
|
+
{ (*p2) = cos(*p1); }
|
|
10791
10792
|
p1 += i1; p2 += i2;
|
|
10792
10793
|
}
|
|
10793
10794
|
}
|
|
10794
10795
|
}
|
|
10795
10796
|
|
|
10796
10797
|
static void
|
|
10797
|
-
|
|
10798
|
+
ca_monop_cos_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
10798
10799
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10799
10800
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10800
10801
|
{
|
|
@@ -10810,7 +10811,7 @@ ca_monop_sin_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
10810
10811
|
if ( ! *pm ) {
|
|
10811
10812
|
p1 = q1 + k*i1;
|
|
10812
10813
|
p2 = q2 + k*i2;
|
|
10813
|
-
{ (*p2) =
|
|
10814
|
+
{ (*p2) = ccosf(*p1); }
|
|
10814
10815
|
}
|
|
10815
10816
|
}
|
|
10816
10817
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10825,21 +10826,21 @@ ca_monop_sin_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
10825
10826
|
#pragma omp simd
|
|
10826
10827
|
for (k=0; k<n; k++) {
|
|
10827
10828
|
p1 = q1 + k; p2 = q2 + k;
|
|
10828
|
-
{ (*p2) =
|
|
10829
|
+
{ (*p2) = ccosf(*p1); }
|
|
10829
10830
|
}
|
|
10830
10831
|
} else {
|
|
10831
10832
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10832
10833
|
cmplx64_t *p1 = q1;
|
|
10833
10834
|
cmplx64_t *p2 = q2;
|
|
10834
10835
|
for (k=0; k<n; k++) {
|
|
10835
|
-
{ (*p2) =
|
|
10836
|
+
{ (*p2) = ccosf(*p1); }
|
|
10836
10837
|
p1 += i1; p2 += i2;
|
|
10837
10838
|
}
|
|
10838
10839
|
}
|
|
10839
10840
|
}
|
|
10840
10841
|
|
|
10841
10842
|
static void
|
|
10842
|
-
|
|
10843
|
+
ca_monop_cos_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
10843
10844
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10844
10845
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10845
10846
|
{
|
|
@@ -10855,7 +10856,7 @@ ca_monop_sin_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
10855
10856
|
if ( ! *pm ) {
|
|
10856
10857
|
p1 = q1 + k*i1;
|
|
10857
10858
|
p2 = q2 + k*i2;
|
|
10858
|
-
{ (*p2) =
|
|
10859
|
+
{ (*p2) = ccos(*p1); }
|
|
10859
10860
|
}
|
|
10860
10861
|
}
|
|
10861
10862
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -10870,21 +10871,21 @@ ca_monop_sin_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
10870
10871
|
#pragma omp simd
|
|
10871
10872
|
for (k=0; k<n; k++) {
|
|
10872
10873
|
p1 = q1 + k; p2 = q2 + k;
|
|
10873
|
-
{ (*p2) =
|
|
10874
|
+
{ (*p2) = ccos(*p1); }
|
|
10874
10875
|
}
|
|
10875
10876
|
} else {
|
|
10876
10877
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
10877
10878
|
cmplx128_t *p1 = q1;
|
|
10878
10879
|
cmplx128_t *p2 = q2;
|
|
10879
10880
|
for (k=0; k<n; k++) {
|
|
10880
|
-
{ (*p2) =
|
|
10881
|
+
{ (*p2) = ccos(*p1); }
|
|
10881
10882
|
p1 += i1; p2 += i2;
|
|
10882
10883
|
}
|
|
10883
10884
|
}
|
|
10884
10885
|
}
|
|
10885
10886
|
|
|
10886
10887
|
static void
|
|
10887
|
-
|
|
10888
|
+
ca_monop_cos_VALUE (ca_size_t n, boolean8_t *m,
|
|
10888
10889
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10889
10890
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10890
10891
|
{
|
|
@@ -10903,9 +10904,9 @@ ca_monop_sin_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
10903
10904
|
{ {
|
|
10904
10905
|
VALUE _obj_arg = (*p1);
|
|
10905
10906
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
10906
|
-
(*p2) = DBL2NUM(
|
|
10907
|
+
(*p2) = DBL2NUM(cos(NUM2DBL(_obj_arg)));
|
|
10907
10908
|
} else {
|
|
10908
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
10909
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("cos"), 0);
|
|
10909
10910
|
}
|
|
10910
10911
|
}
|
|
10911
10912
|
}
|
|
@@ -10926,9 +10927,9 @@ ca_monop_sin_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
10926
10927
|
{ {
|
|
10927
10928
|
VALUE _obj_arg = (*p1);
|
|
10928
10929
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
10929
|
-
(*p2) = DBL2NUM(
|
|
10930
|
+
(*p2) = DBL2NUM(cos(NUM2DBL(_obj_arg)));
|
|
10930
10931
|
} else {
|
|
10931
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
10932
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("cos"), 0);
|
|
10932
10933
|
}
|
|
10933
10934
|
}
|
|
10934
10935
|
}
|
|
@@ -10941,9 +10942,9 @@ ca_monop_sin_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
10941
10942
|
{ {
|
|
10942
10943
|
VALUE _obj_arg = (*p1);
|
|
10943
10944
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
10944
|
-
(*p2) = DBL2NUM(
|
|
10945
|
+
(*p2) = DBL2NUM(cos(NUM2DBL(_obj_arg)));
|
|
10945
10946
|
} else {
|
|
10946
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
10947
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("cos"), 0);
|
|
10947
10948
|
}
|
|
10948
10949
|
}
|
|
10949
10950
|
}
|
|
@@ -10953,7 +10954,7 @@ ca_monop_sin_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
10953
10954
|
}
|
|
10954
10955
|
|
|
10955
10956
|
ca_monop_func_t
|
|
10956
|
-
|
|
10957
|
+
ca_monop_cos[CA_NTYPE] = {
|
|
10957
10958
|
ca_monop_not_implement,
|
|
10958
10959
|
ca_monop_not_implement,
|
|
10959
10960
|
ca_monop_not_implement,
|
|
@@ -10964,33 +10965,33 @@ ca_monop_sin[CA_NTYPE] = {
|
|
|
10964
10965
|
ca_monop_not_implement,
|
|
10965
10966
|
ca_monop_not_implement,
|
|
10966
10967
|
ca_monop_not_implement,
|
|
10967
|
-
|
|
10968
|
-
|
|
10968
|
+
ca_monop_cos_float32_t,
|
|
10969
|
+
ca_monop_cos_float64_t,
|
|
10969
10970
|
ca_monop_not_implement,
|
|
10970
|
-
|
|
10971
|
-
|
|
10971
|
+
ca_monop_cos_cmplx64_t,
|
|
10972
|
+
ca_monop_cos_cmplx128_t,
|
|
10972
10973
|
ca_monop_not_implement,
|
|
10973
|
-
|
|
10974
|
+
ca_monop_cos_VALUE,
|
|
10974
10975
|
};
|
|
10975
10976
|
|
|
10976
|
-
VALUE
|
|
10977
|
+
VALUE rb_ca_cos (VALUE self)
|
|
10977
10978
|
{
|
|
10978
10979
|
if ( rb_ca_is_integer_type(self) ) {
|
|
10979
10980
|
self = rb_ca_wrap_readonly(self, INT2NUM(CA_FLOAT64));
|
|
10980
10981
|
}
|
|
10981
|
-
return rb_ca_call_monop(self,
|
|
10982
|
+
return rb_ca_call_monop(self, ca_monop_cos);
|
|
10982
10983
|
}
|
|
10983
10984
|
|
|
10984
|
-
VALUE
|
|
10985
|
-
{ return rb_ca_call_monop_bang(self,
|
|
10985
|
+
VALUE rb_ca_cos_bang (VALUE self)
|
|
10986
|
+
{ return rb_ca_call_monop_bang(self, ca_monop_cos); }
|
|
10986
10987
|
|
|
10987
|
-
VALUE
|
|
10988
|
-
{ return ca_math_call(mod, arg, rb_intern("
|
|
10988
|
+
VALUE rb_cmath_cos (VALUE mod, VALUE arg)
|
|
10989
|
+
{ return ca_math_call(mod, arg, rb_intern("cos")); }
|
|
10989
10990
|
|
|
10990
|
-
/* ===== monop
|
|
10991
|
+
/* ===== monop tan ============================================ */
|
|
10991
10992
|
|
|
10992
10993
|
static void
|
|
10993
|
-
|
|
10994
|
+
ca_monop_tan_float32_t (ca_size_t n, boolean8_t *m,
|
|
10994
10995
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
10995
10996
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
10996
10997
|
{
|
|
@@ -11006,7 +11007,7 @@ ca_monop_cos_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
11006
11007
|
if ( ! *pm ) {
|
|
11007
11008
|
p1 = q1 + k*i1;
|
|
11008
11009
|
p2 = q2 + k*i2;
|
|
11009
|
-
{ (*p2) =
|
|
11010
|
+
{ (*p2) = tanf(*p1); }
|
|
11010
11011
|
}
|
|
11011
11012
|
}
|
|
11012
11013
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11021,21 +11022,21 @@ ca_monop_cos_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
11021
11022
|
#pragma omp simd
|
|
11022
11023
|
for (k=0; k<n; k++) {
|
|
11023
11024
|
p1 = q1 + k; p2 = q2 + k;
|
|
11024
|
-
{ (*p2) =
|
|
11025
|
+
{ (*p2) = tanf(*p1); }
|
|
11025
11026
|
}
|
|
11026
11027
|
} else {
|
|
11027
11028
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11028
11029
|
float *p1 = q1;
|
|
11029
11030
|
float *p2 = q2;
|
|
11030
11031
|
for (k=0; k<n; k++) {
|
|
11031
|
-
{ (*p2) =
|
|
11032
|
+
{ (*p2) = tanf(*p1); }
|
|
11032
11033
|
p1 += i1; p2 += i2;
|
|
11033
11034
|
}
|
|
11034
11035
|
}
|
|
11035
11036
|
}
|
|
11036
11037
|
|
|
11037
11038
|
static void
|
|
11038
|
-
|
|
11039
|
+
ca_monop_tan_float64_t (ca_size_t n, boolean8_t *m,
|
|
11039
11040
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11040
11041
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11041
11042
|
{
|
|
@@ -11051,7 +11052,7 @@ ca_monop_cos_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
11051
11052
|
if ( ! *pm ) {
|
|
11052
11053
|
p1 = q1 + k*i1;
|
|
11053
11054
|
p2 = q2 + k*i2;
|
|
11054
|
-
{ (*p2) =
|
|
11055
|
+
{ (*p2) = tan(*p1); }
|
|
11055
11056
|
}
|
|
11056
11057
|
}
|
|
11057
11058
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11066,21 +11067,21 @@ ca_monop_cos_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
11066
11067
|
#pragma omp simd
|
|
11067
11068
|
for (k=0; k<n; k++) {
|
|
11068
11069
|
p1 = q1 + k; p2 = q2 + k;
|
|
11069
|
-
{ (*p2) =
|
|
11070
|
+
{ (*p2) = tan(*p1); }
|
|
11070
11071
|
}
|
|
11071
11072
|
} else {
|
|
11072
11073
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11073
11074
|
double *p1 = q1;
|
|
11074
11075
|
double *p2 = q2;
|
|
11075
11076
|
for (k=0; k<n; k++) {
|
|
11076
|
-
{ (*p2) =
|
|
11077
|
+
{ (*p2) = tan(*p1); }
|
|
11077
11078
|
p1 += i1; p2 += i2;
|
|
11078
11079
|
}
|
|
11079
11080
|
}
|
|
11080
11081
|
}
|
|
11081
11082
|
|
|
11082
11083
|
static void
|
|
11083
|
-
|
|
11084
|
+
ca_monop_tan_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
11084
11085
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11085
11086
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11086
11087
|
{
|
|
@@ -11096,7 +11097,7 @@ ca_monop_cos_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
11096
11097
|
if ( ! *pm ) {
|
|
11097
11098
|
p1 = q1 + k*i1;
|
|
11098
11099
|
p2 = q2 + k*i2;
|
|
11099
|
-
{ (*p2) =
|
|
11100
|
+
{ (*p2) = ctanf(*p1); }
|
|
11100
11101
|
}
|
|
11101
11102
|
}
|
|
11102
11103
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11111,21 +11112,21 @@ ca_monop_cos_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
11111
11112
|
#pragma omp simd
|
|
11112
11113
|
for (k=0; k<n; k++) {
|
|
11113
11114
|
p1 = q1 + k; p2 = q2 + k;
|
|
11114
|
-
{ (*p2) =
|
|
11115
|
+
{ (*p2) = ctanf(*p1); }
|
|
11115
11116
|
}
|
|
11116
11117
|
} else {
|
|
11117
11118
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11118
11119
|
cmplx64_t *p1 = q1;
|
|
11119
11120
|
cmplx64_t *p2 = q2;
|
|
11120
11121
|
for (k=0; k<n; k++) {
|
|
11121
|
-
{ (*p2) =
|
|
11122
|
+
{ (*p2) = ctanf(*p1); }
|
|
11122
11123
|
p1 += i1; p2 += i2;
|
|
11123
11124
|
}
|
|
11124
11125
|
}
|
|
11125
11126
|
}
|
|
11126
11127
|
|
|
11127
11128
|
static void
|
|
11128
|
-
|
|
11129
|
+
ca_monop_tan_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
11129
11130
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11130
11131
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11131
11132
|
{
|
|
@@ -11141,7 +11142,7 @@ ca_monop_cos_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
11141
11142
|
if ( ! *pm ) {
|
|
11142
11143
|
p1 = q1 + k*i1;
|
|
11143
11144
|
p2 = q2 + k*i2;
|
|
11144
|
-
{ (*p2) =
|
|
11145
|
+
{ (*p2) = ctan(*p1); }
|
|
11145
11146
|
}
|
|
11146
11147
|
}
|
|
11147
11148
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11156,21 +11157,21 @@ ca_monop_cos_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
11156
11157
|
#pragma omp simd
|
|
11157
11158
|
for (k=0; k<n; k++) {
|
|
11158
11159
|
p1 = q1 + k; p2 = q2 + k;
|
|
11159
|
-
{ (*p2) =
|
|
11160
|
+
{ (*p2) = ctan(*p1); }
|
|
11160
11161
|
}
|
|
11161
11162
|
} else {
|
|
11162
11163
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11163
11164
|
cmplx128_t *p1 = q1;
|
|
11164
11165
|
cmplx128_t *p2 = q2;
|
|
11165
11166
|
for (k=0; k<n; k++) {
|
|
11166
|
-
{ (*p2) =
|
|
11167
|
+
{ (*p2) = ctan(*p1); }
|
|
11167
11168
|
p1 += i1; p2 += i2;
|
|
11168
11169
|
}
|
|
11169
11170
|
}
|
|
11170
11171
|
}
|
|
11171
11172
|
|
|
11172
11173
|
static void
|
|
11173
|
-
|
|
11174
|
+
ca_monop_tan_VALUE (ca_size_t n, boolean8_t *m,
|
|
11174
11175
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11175
11176
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11176
11177
|
{
|
|
@@ -11189,9 +11190,9 @@ ca_monop_cos_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11189
11190
|
{ {
|
|
11190
11191
|
VALUE _obj_arg = (*p1);
|
|
11191
11192
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
11192
|
-
(*p2) = DBL2NUM(
|
|
11193
|
+
(*p2) = DBL2NUM(tan(NUM2DBL(_obj_arg)));
|
|
11193
11194
|
} else {
|
|
11194
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
11195
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("tan"), 0);
|
|
11195
11196
|
}
|
|
11196
11197
|
}
|
|
11197
11198
|
}
|
|
@@ -11212,9 +11213,9 @@ ca_monop_cos_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11212
11213
|
{ {
|
|
11213
11214
|
VALUE _obj_arg = (*p1);
|
|
11214
11215
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
11215
|
-
(*p2) = DBL2NUM(
|
|
11216
|
+
(*p2) = DBL2NUM(tan(NUM2DBL(_obj_arg)));
|
|
11216
11217
|
} else {
|
|
11217
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
11218
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("tan"), 0);
|
|
11218
11219
|
}
|
|
11219
11220
|
}
|
|
11220
11221
|
}
|
|
@@ -11227,9 +11228,9 @@ ca_monop_cos_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11227
11228
|
{ {
|
|
11228
11229
|
VALUE _obj_arg = (*p1);
|
|
11229
11230
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
11230
|
-
(*p2) = DBL2NUM(
|
|
11231
|
+
(*p2) = DBL2NUM(tan(NUM2DBL(_obj_arg)));
|
|
11231
11232
|
} else {
|
|
11232
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
11233
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("tan"), 0);
|
|
11233
11234
|
}
|
|
11234
11235
|
}
|
|
11235
11236
|
}
|
|
@@ -11239,8 +11240,7 @@ ca_monop_cos_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11239
11240
|
}
|
|
11240
11241
|
|
|
11241
11242
|
ca_monop_func_t
|
|
11242
|
-
|
|
11243
|
-
ca_monop_not_implement,
|
|
11243
|
+
ca_monop_tan[CA_NTYPE] = {
|
|
11244
11244
|
ca_monop_not_implement,
|
|
11245
11245
|
ca_monop_not_implement,
|
|
11246
11246
|
ca_monop_not_implement,
|
|
@@ -11250,33 +11250,34 @@ ca_monop_cos[CA_NTYPE] = {
|
|
|
11250
11250
|
ca_monop_not_implement,
|
|
11251
11251
|
ca_monop_not_implement,
|
|
11252
11252
|
ca_monop_not_implement,
|
|
11253
|
-
ca_monop_cos_float32_t,
|
|
11254
|
-
ca_monop_cos_float64_t,
|
|
11255
11253
|
ca_monop_not_implement,
|
|
11256
|
-
|
|
11257
|
-
|
|
11254
|
+
ca_monop_tan_float32_t,
|
|
11255
|
+
ca_monop_tan_float64_t,
|
|
11258
11256
|
ca_monop_not_implement,
|
|
11259
|
-
|
|
11257
|
+
ca_monop_tan_cmplx64_t,
|
|
11258
|
+
ca_monop_tan_cmplx128_t,
|
|
11259
|
+
ca_monop_not_implement,
|
|
11260
|
+
ca_monop_tan_VALUE,
|
|
11260
11261
|
};
|
|
11261
11262
|
|
|
11262
|
-
VALUE
|
|
11263
|
+
VALUE rb_ca_tan (VALUE self)
|
|
11263
11264
|
{
|
|
11264
11265
|
if ( rb_ca_is_integer_type(self) ) {
|
|
11265
11266
|
self = rb_ca_wrap_readonly(self, INT2NUM(CA_FLOAT64));
|
|
11266
11267
|
}
|
|
11267
|
-
return rb_ca_call_monop(self,
|
|
11268
|
+
return rb_ca_call_monop(self, ca_monop_tan);
|
|
11268
11269
|
}
|
|
11269
11270
|
|
|
11270
|
-
VALUE
|
|
11271
|
-
{ return rb_ca_call_monop_bang(self,
|
|
11271
|
+
VALUE rb_ca_tan_bang (VALUE self)
|
|
11272
|
+
{ return rb_ca_call_monop_bang(self, ca_monop_tan); }
|
|
11272
11273
|
|
|
11273
|
-
VALUE
|
|
11274
|
-
{ return ca_math_call(mod, arg, rb_intern("
|
|
11274
|
+
VALUE rb_cmath_tan (VALUE mod, VALUE arg)
|
|
11275
|
+
{ return ca_math_call(mod, arg, rb_intern("tan")); }
|
|
11275
11276
|
|
|
11276
|
-
/* ===== monop
|
|
11277
|
+
/* ===== monop asin ============================================ */
|
|
11277
11278
|
|
|
11278
11279
|
static void
|
|
11279
|
-
|
|
11280
|
+
ca_monop_asin_float32_t (ca_size_t n, boolean8_t *m,
|
|
11280
11281
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11281
11282
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11282
11283
|
{
|
|
@@ -11292,7 +11293,7 @@ ca_monop_tan_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
11292
11293
|
if ( ! *pm ) {
|
|
11293
11294
|
p1 = q1 + k*i1;
|
|
11294
11295
|
p2 = q2 + k*i2;
|
|
11295
|
-
{ (*p2) =
|
|
11296
|
+
{ (*p2) = asinf(*p1); }
|
|
11296
11297
|
}
|
|
11297
11298
|
}
|
|
11298
11299
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11307,21 +11308,21 @@ ca_monop_tan_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
11307
11308
|
#pragma omp simd
|
|
11308
11309
|
for (k=0; k<n; k++) {
|
|
11309
11310
|
p1 = q1 + k; p2 = q2 + k;
|
|
11310
|
-
{ (*p2) =
|
|
11311
|
+
{ (*p2) = asinf(*p1); }
|
|
11311
11312
|
}
|
|
11312
11313
|
} else {
|
|
11313
11314
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11314
11315
|
float *p1 = q1;
|
|
11315
11316
|
float *p2 = q2;
|
|
11316
11317
|
for (k=0; k<n; k++) {
|
|
11317
|
-
{ (*p2) =
|
|
11318
|
+
{ (*p2) = asinf(*p1); }
|
|
11318
11319
|
p1 += i1; p2 += i2;
|
|
11319
11320
|
}
|
|
11320
11321
|
}
|
|
11321
11322
|
}
|
|
11322
11323
|
|
|
11323
11324
|
static void
|
|
11324
|
-
|
|
11325
|
+
ca_monop_asin_float64_t (ca_size_t n, boolean8_t *m,
|
|
11325
11326
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11326
11327
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11327
11328
|
{
|
|
@@ -11337,7 +11338,7 @@ ca_monop_tan_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
11337
11338
|
if ( ! *pm ) {
|
|
11338
11339
|
p1 = q1 + k*i1;
|
|
11339
11340
|
p2 = q2 + k*i2;
|
|
11340
|
-
{ (*p2) =
|
|
11341
|
+
{ (*p2) = asin(*p1); }
|
|
11341
11342
|
}
|
|
11342
11343
|
}
|
|
11343
11344
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11352,21 +11353,21 @@ ca_monop_tan_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
11352
11353
|
#pragma omp simd
|
|
11353
11354
|
for (k=0; k<n; k++) {
|
|
11354
11355
|
p1 = q1 + k; p2 = q2 + k;
|
|
11355
|
-
{ (*p2) =
|
|
11356
|
+
{ (*p2) = asin(*p1); }
|
|
11356
11357
|
}
|
|
11357
11358
|
} else {
|
|
11358
11359
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11359
11360
|
double *p1 = q1;
|
|
11360
11361
|
double *p2 = q2;
|
|
11361
11362
|
for (k=0; k<n; k++) {
|
|
11362
|
-
{ (*p2) =
|
|
11363
|
+
{ (*p2) = asin(*p1); }
|
|
11363
11364
|
p1 += i1; p2 += i2;
|
|
11364
11365
|
}
|
|
11365
11366
|
}
|
|
11366
11367
|
}
|
|
11367
11368
|
|
|
11368
11369
|
static void
|
|
11369
|
-
|
|
11370
|
+
ca_monop_asin_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
11370
11371
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11371
11372
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11372
11373
|
{
|
|
@@ -11382,7 +11383,7 @@ ca_monop_tan_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
11382
11383
|
if ( ! *pm ) {
|
|
11383
11384
|
p1 = q1 + k*i1;
|
|
11384
11385
|
p2 = q2 + k*i2;
|
|
11385
|
-
{ (*p2) =
|
|
11386
|
+
{ (*p2) = casinf(*p1); }
|
|
11386
11387
|
}
|
|
11387
11388
|
}
|
|
11388
11389
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11397,21 +11398,21 @@ ca_monop_tan_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
11397
11398
|
#pragma omp simd
|
|
11398
11399
|
for (k=0; k<n; k++) {
|
|
11399
11400
|
p1 = q1 + k; p2 = q2 + k;
|
|
11400
|
-
{ (*p2) =
|
|
11401
|
+
{ (*p2) = casinf(*p1); }
|
|
11401
11402
|
}
|
|
11402
11403
|
} else {
|
|
11403
11404
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11404
11405
|
cmplx64_t *p1 = q1;
|
|
11405
11406
|
cmplx64_t *p2 = q2;
|
|
11406
11407
|
for (k=0; k<n; k++) {
|
|
11407
|
-
{ (*p2) =
|
|
11408
|
+
{ (*p2) = casinf(*p1); }
|
|
11408
11409
|
p1 += i1; p2 += i2;
|
|
11409
11410
|
}
|
|
11410
11411
|
}
|
|
11411
11412
|
}
|
|
11412
11413
|
|
|
11413
11414
|
static void
|
|
11414
|
-
|
|
11415
|
+
ca_monop_asin_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
11415
11416
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11416
11417
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11417
11418
|
{
|
|
@@ -11427,7 +11428,7 @@ ca_monop_tan_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
11427
11428
|
if ( ! *pm ) {
|
|
11428
11429
|
p1 = q1 + k*i1;
|
|
11429
11430
|
p2 = q2 + k*i2;
|
|
11430
|
-
{ (*p2) =
|
|
11431
|
+
{ (*p2) = casin(*p1); }
|
|
11431
11432
|
}
|
|
11432
11433
|
}
|
|
11433
11434
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11442,21 +11443,21 @@ ca_monop_tan_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
11442
11443
|
#pragma omp simd
|
|
11443
11444
|
for (k=0; k<n; k++) {
|
|
11444
11445
|
p1 = q1 + k; p2 = q2 + k;
|
|
11445
|
-
{ (*p2) =
|
|
11446
|
+
{ (*p2) = casin(*p1); }
|
|
11446
11447
|
}
|
|
11447
11448
|
} else {
|
|
11448
11449
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11449
11450
|
cmplx128_t *p1 = q1;
|
|
11450
11451
|
cmplx128_t *p2 = q2;
|
|
11451
11452
|
for (k=0; k<n; k++) {
|
|
11452
|
-
{ (*p2) =
|
|
11453
|
+
{ (*p2) = casin(*p1); }
|
|
11453
11454
|
p1 += i1; p2 += i2;
|
|
11454
11455
|
}
|
|
11455
11456
|
}
|
|
11456
11457
|
}
|
|
11457
11458
|
|
|
11458
11459
|
static void
|
|
11459
|
-
|
|
11460
|
+
ca_monop_asin_VALUE (ca_size_t n, boolean8_t *m,
|
|
11460
11461
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11461
11462
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11462
11463
|
{
|
|
@@ -11475,9 +11476,9 @@ ca_monop_tan_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11475
11476
|
{ {
|
|
11476
11477
|
VALUE _obj_arg = (*p1);
|
|
11477
11478
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
11478
|
-
(*p2) = DBL2NUM(
|
|
11479
|
+
(*p2) = DBL2NUM(asin(NUM2DBL(_obj_arg)));
|
|
11479
11480
|
} else {
|
|
11480
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
11481
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("asin"), 0);
|
|
11481
11482
|
}
|
|
11482
11483
|
}
|
|
11483
11484
|
}
|
|
@@ -11498,9 +11499,9 @@ ca_monop_tan_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11498
11499
|
{ {
|
|
11499
11500
|
VALUE _obj_arg = (*p1);
|
|
11500
11501
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
11501
|
-
(*p2) = DBL2NUM(
|
|
11502
|
+
(*p2) = DBL2NUM(asin(NUM2DBL(_obj_arg)));
|
|
11502
11503
|
} else {
|
|
11503
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
11504
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("asin"), 0);
|
|
11504
11505
|
}
|
|
11505
11506
|
}
|
|
11506
11507
|
}
|
|
@@ -11513,9 +11514,9 @@ ca_monop_tan_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11513
11514
|
{ {
|
|
11514
11515
|
VALUE _obj_arg = (*p1);
|
|
11515
11516
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
11516
|
-
(*p2) = DBL2NUM(
|
|
11517
|
+
(*p2) = DBL2NUM(asin(NUM2DBL(_obj_arg)));
|
|
11517
11518
|
} else {
|
|
11518
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
11519
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("asin"), 0);
|
|
11519
11520
|
}
|
|
11520
11521
|
}
|
|
11521
11522
|
}
|
|
@@ -11525,7 +11526,7 @@ ca_monop_tan_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11525
11526
|
}
|
|
11526
11527
|
|
|
11527
11528
|
ca_monop_func_t
|
|
11528
|
-
|
|
11529
|
+
ca_monop_asin[CA_NTYPE] = {
|
|
11529
11530
|
ca_monop_not_implement,
|
|
11530
11531
|
ca_monop_not_implement,
|
|
11531
11532
|
ca_monop_not_implement,
|
|
@@ -11536,33 +11537,33 @@ ca_monop_tan[CA_NTYPE] = {
|
|
|
11536
11537
|
ca_monop_not_implement,
|
|
11537
11538
|
ca_monop_not_implement,
|
|
11538
11539
|
ca_monop_not_implement,
|
|
11539
|
-
|
|
11540
|
-
|
|
11540
|
+
ca_monop_asin_float32_t,
|
|
11541
|
+
ca_monop_asin_float64_t,
|
|
11541
11542
|
ca_monop_not_implement,
|
|
11542
|
-
|
|
11543
|
-
|
|
11543
|
+
ca_monop_asin_cmplx64_t,
|
|
11544
|
+
ca_monop_asin_cmplx128_t,
|
|
11544
11545
|
ca_monop_not_implement,
|
|
11545
|
-
|
|
11546
|
+
ca_monop_asin_VALUE,
|
|
11546
11547
|
};
|
|
11547
11548
|
|
|
11548
|
-
VALUE
|
|
11549
|
+
VALUE rb_ca_asin (VALUE self)
|
|
11549
11550
|
{
|
|
11550
11551
|
if ( rb_ca_is_integer_type(self) ) {
|
|
11551
11552
|
self = rb_ca_wrap_readonly(self, INT2NUM(CA_FLOAT64));
|
|
11552
11553
|
}
|
|
11553
|
-
return rb_ca_call_monop(self,
|
|
11554
|
+
return rb_ca_call_monop(self, ca_monop_asin);
|
|
11554
11555
|
}
|
|
11555
11556
|
|
|
11556
|
-
VALUE
|
|
11557
|
-
{ return rb_ca_call_monop_bang(self,
|
|
11557
|
+
VALUE rb_ca_asin_bang (VALUE self)
|
|
11558
|
+
{ return rb_ca_call_monop_bang(self, ca_monop_asin); }
|
|
11558
11559
|
|
|
11559
|
-
VALUE
|
|
11560
|
-
{ return ca_math_call(mod, arg, rb_intern("
|
|
11560
|
+
VALUE rb_cmath_asin (VALUE mod, VALUE arg)
|
|
11561
|
+
{ return ca_math_call(mod, arg, rb_intern("asin")); }
|
|
11561
11562
|
|
|
11562
|
-
/* ===== monop
|
|
11563
|
+
/* ===== monop acos ============================================ */
|
|
11563
11564
|
|
|
11564
11565
|
static void
|
|
11565
|
-
|
|
11566
|
+
ca_monop_acos_float32_t (ca_size_t n, boolean8_t *m,
|
|
11566
11567
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11567
11568
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11568
11569
|
{
|
|
@@ -11578,7 +11579,7 @@ ca_monop_asin_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
11578
11579
|
if ( ! *pm ) {
|
|
11579
11580
|
p1 = q1 + k*i1;
|
|
11580
11581
|
p2 = q2 + k*i2;
|
|
11581
|
-
{ (*p2) =
|
|
11582
|
+
{ (*p2) = acosf(*p1); }
|
|
11582
11583
|
}
|
|
11583
11584
|
}
|
|
11584
11585
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11593,21 +11594,21 @@ ca_monop_asin_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
11593
11594
|
#pragma omp simd
|
|
11594
11595
|
for (k=0; k<n; k++) {
|
|
11595
11596
|
p1 = q1 + k; p2 = q2 + k;
|
|
11596
|
-
{ (*p2) =
|
|
11597
|
+
{ (*p2) = acosf(*p1); }
|
|
11597
11598
|
}
|
|
11598
11599
|
} else {
|
|
11599
11600
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11600
11601
|
float *p1 = q1;
|
|
11601
11602
|
float *p2 = q2;
|
|
11602
11603
|
for (k=0; k<n; k++) {
|
|
11603
|
-
{ (*p2) =
|
|
11604
|
+
{ (*p2) = acosf(*p1); }
|
|
11604
11605
|
p1 += i1; p2 += i2;
|
|
11605
11606
|
}
|
|
11606
11607
|
}
|
|
11607
11608
|
}
|
|
11608
11609
|
|
|
11609
11610
|
static void
|
|
11610
|
-
|
|
11611
|
+
ca_monop_acos_float64_t (ca_size_t n, boolean8_t *m,
|
|
11611
11612
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11612
11613
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11613
11614
|
{
|
|
@@ -11623,7 +11624,7 @@ ca_monop_asin_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
11623
11624
|
if ( ! *pm ) {
|
|
11624
11625
|
p1 = q1 + k*i1;
|
|
11625
11626
|
p2 = q2 + k*i2;
|
|
11626
|
-
{ (*p2) =
|
|
11627
|
+
{ (*p2) = acos(*p1); }
|
|
11627
11628
|
}
|
|
11628
11629
|
}
|
|
11629
11630
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11638,21 +11639,21 @@ ca_monop_asin_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
11638
11639
|
#pragma omp simd
|
|
11639
11640
|
for (k=0; k<n; k++) {
|
|
11640
11641
|
p1 = q1 + k; p2 = q2 + k;
|
|
11641
|
-
{ (*p2) =
|
|
11642
|
+
{ (*p2) = acos(*p1); }
|
|
11642
11643
|
}
|
|
11643
11644
|
} else {
|
|
11644
11645
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11645
11646
|
double *p1 = q1;
|
|
11646
11647
|
double *p2 = q2;
|
|
11647
11648
|
for (k=0; k<n; k++) {
|
|
11648
|
-
{ (*p2) =
|
|
11649
|
+
{ (*p2) = acos(*p1); }
|
|
11649
11650
|
p1 += i1; p2 += i2;
|
|
11650
11651
|
}
|
|
11651
11652
|
}
|
|
11652
11653
|
}
|
|
11653
11654
|
|
|
11654
11655
|
static void
|
|
11655
|
-
|
|
11656
|
+
ca_monop_acos_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
11656
11657
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11657
11658
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11658
11659
|
{
|
|
@@ -11668,7 +11669,7 @@ ca_monop_asin_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
11668
11669
|
if ( ! *pm ) {
|
|
11669
11670
|
p1 = q1 + k*i1;
|
|
11670
11671
|
p2 = q2 + k*i2;
|
|
11671
|
-
{ (*p2) =
|
|
11672
|
+
{ (*p2) = cacosf(*p1); }
|
|
11672
11673
|
}
|
|
11673
11674
|
}
|
|
11674
11675
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11683,21 +11684,21 @@ ca_monop_asin_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
11683
11684
|
#pragma omp simd
|
|
11684
11685
|
for (k=0; k<n; k++) {
|
|
11685
11686
|
p1 = q1 + k; p2 = q2 + k;
|
|
11686
|
-
{ (*p2) =
|
|
11687
|
+
{ (*p2) = cacosf(*p1); }
|
|
11687
11688
|
}
|
|
11688
11689
|
} else {
|
|
11689
11690
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11690
11691
|
cmplx64_t *p1 = q1;
|
|
11691
11692
|
cmplx64_t *p2 = q2;
|
|
11692
11693
|
for (k=0; k<n; k++) {
|
|
11693
|
-
{ (*p2) =
|
|
11694
|
+
{ (*p2) = cacosf(*p1); }
|
|
11694
11695
|
p1 += i1; p2 += i2;
|
|
11695
11696
|
}
|
|
11696
11697
|
}
|
|
11697
11698
|
}
|
|
11698
11699
|
|
|
11699
11700
|
static void
|
|
11700
|
-
|
|
11701
|
+
ca_monop_acos_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
11701
11702
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11702
11703
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11703
11704
|
{
|
|
@@ -11713,7 +11714,7 @@ ca_monop_asin_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
11713
11714
|
if ( ! *pm ) {
|
|
11714
11715
|
p1 = q1 + k*i1;
|
|
11715
11716
|
p2 = q2 + k*i2;
|
|
11716
|
-
{ (*p2) =
|
|
11717
|
+
{ (*p2) = cacos(*p1); }
|
|
11717
11718
|
}
|
|
11718
11719
|
}
|
|
11719
11720
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11728,21 +11729,21 @@ ca_monop_asin_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
11728
11729
|
#pragma omp simd
|
|
11729
11730
|
for (k=0; k<n; k++) {
|
|
11730
11731
|
p1 = q1 + k; p2 = q2 + k;
|
|
11731
|
-
{ (*p2) =
|
|
11732
|
+
{ (*p2) = cacos(*p1); }
|
|
11732
11733
|
}
|
|
11733
11734
|
} else {
|
|
11734
11735
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11735
11736
|
cmplx128_t *p1 = q1;
|
|
11736
11737
|
cmplx128_t *p2 = q2;
|
|
11737
11738
|
for (k=0; k<n; k++) {
|
|
11738
|
-
{ (*p2) =
|
|
11739
|
+
{ (*p2) = cacos(*p1); }
|
|
11739
11740
|
p1 += i1; p2 += i2;
|
|
11740
11741
|
}
|
|
11741
11742
|
}
|
|
11742
11743
|
}
|
|
11743
11744
|
|
|
11744
11745
|
static void
|
|
11745
|
-
|
|
11746
|
+
ca_monop_acos_VALUE (ca_size_t n, boolean8_t *m,
|
|
11746
11747
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11747
11748
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11748
11749
|
{
|
|
@@ -11761,9 +11762,9 @@ ca_monop_asin_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11761
11762
|
{ {
|
|
11762
11763
|
VALUE _obj_arg = (*p1);
|
|
11763
11764
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
11764
|
-
(*p2) = DBL2NUM(
|
|
11765
|
+
(*p2) = DBL2NUM(acos(NUM2DBL(_obj_arg)));
|
|
11765
11766
|
} else {
|
|
11766
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
11767
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("acos"), 0);
|
|
11767
11768
|
}
|
|
11768
11769
|
}
|
|
11769
11770
|
}
|
|
@@ -11784,9 +11785,9 @@ ca_monop_asin_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11784
11785
|
{ {
|
|
11785
11786
|
VALUE _obj_arg = (*p1);
|
|
11786
11787
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
11787
|
-
(*p2) = DBL2NUM(
|
|
11788
|
+
(*p2) = DBL2NUM(acos(NUM2DBL(_obj_arg)));
|
|
11788
11789
|
} else {
|
|
11789
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
11790
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("acos"), 0);
|
|
11790
11791
|
}
|
|
11791
11792
|
}
|
|
11792
11793
|
}
|
|
@@ -11799,9 +11800,9 @@ ca_monop_asin_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11799
11800
|
{ {
|
|
11800
11801
|
VALUE _obj_arg = (*p1);
|
|
11801
11802
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
11802
|
-
(*p2) = DBL2NUM(
|
|
11803
|
+
(*p2) = DBL2NUM(acos(NUM2DBL(_obj_arg)));
|
|
11803
11804
|
} else {
|
|
11804
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
11805
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("acos"), 0);
|
|
11805
11806
|
}
|
|
11806
11807
|
}
|
|
11807
11808
|
}
|
|
@@ -11811,7 +11812,7 @@ ca_monop_asin_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
11811
11812
|
}
|
|
11812
11813
|
|
|
11813
11814
|
ca_monop_func_t
|
|
11814
|
-
|
|
11815
|
+
ca_monop_acos[CA_NTYPE] = {
|
|
11815
11816
|
ca_monop_not_implement,
|
|
11816
11817
|
ca_monop_not_implement,
|
|
11817
11818
|
ca_monop_not_implement,
|
|
@@ -11822,33 +11823,33 @@ ca_monop_asin[CA_NTYPE] = {
|
|
|
11822
11823
|
ca_monop_not_implement,
|
|
11823
11824
|
ca_monop_not_implement,
|
|
11824
11825
|
ca_monop_not_implement,
|
|
11825
|
-
|
|
11826
|
-
|
|
11826
|
+
ca_monop_acos_float32_t,
|
|
11827
|
+
ca_monop_acos_float64_t,
|
|
11827
11828
|
ca_monop_not_implement,
|
|
11828
|
-
|
|
11829
|
-
|
|
11829
|
+
ca_monop_acos_cmplx64_t,
|
|
11830
|
+
ca_monop_acos_cmplx128_t,
|
|
11830
11831
|
ca_monop_not_implement,
|
|
11831
|
-
|
|
11832
|
+
ca_monop_acos_VALUE,
|
|
11832
11833
|
};
|
|
11833
11834
|
|
|
11834
|
-
VALUE
|
|
11835
|
+
VALUE rb_ca_acos (VALUE self)
|
|
11835
11836
|
{
|
|
11836
11837
|
if ( rb_ca_is_integer_type(self) ) {
|
|
11837
11838
|
self = rb_ca_wrap_readonly(self, INT2NUM(CA_FLOAT64));
|
|
11838
11839
|
}
|
|
11839
|
-
return rb_ca_call_monop(self,
|
|
11840
|
+
return rb_ca_call_monop(self, ca_monop_acos);
|
|
11840
11841
|
}
|
|
11841
11842
|
|
|
11842
|
-
VALUE
|
|
11843
|
-
{ return rb_ca_call_monop_bang(self,
|
|
11843
|
+
VALUE rb_ca_acos_bang (VALUE self)
|
|
11844
|
+
{ return rb_ca_call_monop_bang(self, ca_monop_acos); }
|
|
11844
11845
|
|
|
11845
|
-
VALUE
|
|
11846
|
-
{ return ca_math_call(mod, arg, rb_intern("
|
|
11846
|
+
VALUE rb_cmath_acos (VALUE mod, VALUE arg)
|
|
11847
|
+
{ return ca_math_call(mod, arg, rb_intern("acos")); }
|
|
11847
11848
|
|
|
11848
|
-
/* ===== monop
|
|
11849
|
+
/* ===== monop atan ============================================ */
|
|
11849
11850
|
|
|
11850
11851
|
static void
|
|
11851
|
-
|
|
11852
|
+
ca_monop_atan_float32_t (ca_size_t n, boolean8_t *m,
|
|
11852
11853
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11853
11854
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11854
11855
|
{
|
|
@@ -11864,7 +11865,7 @@ ca_monop_acos_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
11864
11865
|
if ( ! *pm ) {
|
|
11865
11866
|
p1 = q1 + k*i1;
|
|
11866
11867
|
p2 = q2 + k*i2;
|
|
11867
|
-
{ (*p2) =
|
|
11868
|
+
{ (*p2) = atanf(*p1); }
|
|
11868
11869
|
}
|
|
11869
11870
|
}
|
|
11870
11871
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11879,21 +11880,21 @@ ca_monop_acos_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
11879
11880
|
#pragma omp simd
|
|
11880
11881
|
for (k=0; k<n; k++) {
|
|
11881
11882
|
p1 = q1 + k; p2 = q2 + k;
|
|
11882
|
-
{ (*p2) =
|
|
11883
|
+
{ (*p2) = atanf(*p1); }
|
|
11883
11884
|
}
|
|
11884
11885
|
} else {
|
|
11885
11886
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11886
11887
|
float *p1 = q1;
|
|
11887
11888
|
float *p2 = q2;
|
|
11888
11889
|
for (k=0; k<n; k++) {
|
|
11889
|
-
{ (*p2) =
|
|
11890
|
+
{ (*p2) = atanf(*p1); }
|
|
11890
11891
|
p1 += i1; p2 += i2;
|
|
11891
11892
|
}
|
|
11892
11893
|
}
|
|
11893
11894
|
}
|
|
11894
11895
|
|
|
11895
11896
|
static void
|
|
11896
|
-
|
|
11897
|
+
ca_monop_atan_float64_t (ca_size_t n, boolean8_t *m,
|
|
11897
11898
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11898
11899
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11899
11900
|
{
|
|
@@ -11909,7 +11910,7 @@ ca_monop_acos_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
11909
11910
|
if ( ! *pm ) {
|
|
11910
11911
|
p1 = q1 + k*i1;
|
|
11911
11912
|
p2 = q2 + k*i2;
|
|
11912
|
-
{ (*p2) =
|
|
11913
|
+
{ (*p2) = atan(*p1); }
|
|
11913
11914
|
}
|
|
11914
11915
|
}
|
|
11915
11916
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11924,21 +11925,21 @@ ca_monop_acos_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
11924
11925
|
#pragma omp simd
|
|
11925
11926
|
for (k=0; k<n; k++) {
|
|
11926
11927
|
p1 = q1 + k; p2 = q2 + k;
|
|
11927
|
-
{ (*p2) =
|
|
11928
|
+
{ (*p2) = atan(*p1); }
|
|
11928
11929
|
}
|
|
11929
11930
|
} else {
|
|
11930
11931
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11931
11932
|
double *p1 = q1;
|
|
11932
11933
|
double *p2 = q2;
|
|
11933
11934
|
for (k=0; k<n; k++) {
|
|
11934
|
-
{ (*p2) =
|
|
11935
|
+
{ (*p2) = atan(*p1); }
|
|
11935
11936
|
p1 += i1; p2 += i2;
|
|
11936
11937
|
}
|
|
11937
11938
|
}
|
|
11938
11939
|
}
|
|
11939
11940
|
|
|
11940
11941
|
static void
|
|
11941
|
-
|
|
11942
|
+
ca_monop_atan_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
11942
11943
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11943
11944
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11944
11945
|
{
|
|
@@ -11954,7 +11955,7 @@ ca_monop_acos_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
11954
11955
|
if ( ! *pm ) {
|
|
11955
11956
|
p1 = q1 + k*i1;
|
|
11956
11957
|
p2 = q2 + k*i2;
|
|
11957
|
-
{ (*p2) =
|
|
11958
|
+
{ (*p2) = catanf(*p1); }
|
|
11958
11959
|
}
|
|
11959
11960
|
}
|
|
11960
11961
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -11969,21 +11970,21 @@ ca_monop_acos_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
11969
11970
|
#pragma omp simd
|
|
11970
11971
|
for (k=0; k<n; k++) {
|
|
11971
11972
|
p1 = q1 + k; p2 = q2 + k;
|
|
11972
|
-
{ (*p2) =
|
|
11973
|
+
{ (*p2) = catanf(*p1); }
|
|
11973
11974
|
}
|
|
11974
11975
|
} else {
|
|
11975
11976
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
11976
11977
|
cmplx64_t *p1 = q1;
|
|
11977
11978
|
cmplx64_t *p2 = q2;
|
|
11978
11979
|
for (k=0; k<n; k++) {
|
|
11979
|
-
{ (*p2) =
|
|
11980
|
+
{ (*p2) = catanf(*p1); }
|
|
11980
11981
|
p1 += i1; p2 += i2;
|
|
11981
11982
|
}
|
|
11982
11983
|
}
|
|
11983
11984
|
}
|
|
11984
11985
|
|
|
11985
11986
|
static void
|
|
11986
|
-
|
|
11987
|
+
ca_monop_atan_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
11987
11988
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
11988
11989
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
11989
11990
|
{
|
|
@@ -11999,7 +12000,7 @@ ca_monop_acos_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
11999
12000
|
if ( ! *pm ) {
|
|
12000
12001
|
p1 = q1 + k*i1;
|
|
12001
12002
|
p2 = q2 + k*i2;
|
|
12002
|
-
{ (*p2) =
|
|
12003
|
+
{ (*p2) = catan(*p1); }
|
|
12003
12004
|
}
|
|
12004
12005
|
}
|
|
12005
12006
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -12014,21 +12015,21 @@ ca_monop_acos_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
12014
12015
|
#pragma omp simd
|
|
12015
12016
|
for (k=0; k<n; k++) {
|
|
12016
12017
|
p1 = q1 + k; p2 = q2 + k;
|
|
12017
|
-
{ (*p2) =
|
|
12018
|
+
{ (*p2) = catan(*p1); }
|
|
12018
12019
|
}
|
|
12019
12020
|
} else {
|
|
12020
12021
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
12021
12022
|
cmplx128_t *p1 = q1;
|
|
12022
12023
|
cmplx128_t *p2 = q2;
|
|
12023
12024
|
for (k=0; k<n; k++) {
|
|
12024
|
-
{ (*p2) =
|
|
12025
|
+
{ (*p2) = catan(*p1); }
|
|
12025
12026
|
p1 += i1; p2 += i2;
|
|
12026
12027
|
}
|
|
12027
12028
|
}
|
|
12028
12029
|
}
|
|
12029
12030
|
|
|
12030
12031
|
static void
|
|
12031
|
-
|
|
12032
|
+
ca_monop_atan_VALUE (ca_size_t n, boolean8_t *m,
|
|
12032
12033
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
12033
12034
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
12034
12035
|
{
|
|
@@ -12047,9 +12048,9 @@ ca_monop_acos_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
12047
12048
|
{ {
|
|
12048
12049
|
VALUE _obj_arg = (*p1);
|
|
12049
12050
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
12050
|
-
(*p2) = DBL2NUM(
|
|
12051
|
+
(*p2) = DBL2NUM(atan(NUM2DBL(_obj_arg)));
|
|
12051
12052
|
} else {
|
|
12052
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
12053
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("atan"), 0);
|
|
12053
12054
|
}
|
|
12054
12055
|
}
|
|
12055
12056
|
}
|
|
@@ -12070,9 +12071,9 @@ ca_monop_acos_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
12070
12071
|
{ {
|
|
12071
12072
|
VALUE _obj_arg = (*p1);
|
|
12072
12073
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
12073
|
-
(*p2) = DBL2NUM(
|
|
12074
|
+
(*p2) = DBL2NUM(atan(NUM2DBL(_obj_arg)));
|
|
12074
12075
|
} else {
|
|
12075
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
12076
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("atan"), 0);
|
|
12076
12077
|
}
|
|
12077
12078
|
}
|
|
12078
12079
|
}
|
|
@@ -12085,9 +12086,9 @@ ca_monop_acos_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
12085
12086
|
{ {
|
|
12086
12087
|
VALUE _obj_arg = (*p1);
|
|
12087
12088
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
12088
|
-
(*p2) = DBL2NUM(
|
|
12089
|
+
(*p2) = DBL2NUM(atan(NUM2DBL(_obj_arg)));
|
|
12089
12090
|
} else {
|
|
12090
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
12091
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("atan"), 0);
|
|
12091
12092
|
}
|
|
12092
12093
|
}
|
|
12093
12094
|
}
|
|
@@ -12097,7 +12098,7 @@ ca_monop_acos_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
12097
12098
|
}
|
|
12098
12099
|
|
|
12099
12100
|
ca_monop_func_t
|
|
12100
|
-
|
|
12101
|
+
ca_monop_atan[CA_NTYPE] = {
|
|
12101
12102
|
ca_monop_not_implement,
|
|
12102
12103
|
ca_monop_not_implement,
|
|
12103
12104
|
ca_monop_not_implement,
|
|
@@ -12108,33 +12109,33 @@ ca_monop_acos[CA_NTYPE] = {
|
|
|
12108
12109
|
ca_monop_not_implement,
|
|
12109
12110
|
ca_monop_not_implement,
|
|
12110
12111
|
ca_monop_not_implement,
|
|
12111
|
-
|
|
12112
|
-
|
|
12112
|
+
ca_monop_atan_float32_t,
|
|
12113
|
+
ca_monop_atan_float64_t,
|
|
12113
12114
|
ca_monop_not_implement,
|
|
12114
|
-
|
|
12115
|
-
|
|
12115
|
+
ca_monop_atan_cmplx64_t,
|
|
12116
|
+
ca_monop_atan_cmplx128_t,
|
|
12116
12117
|
ca_monop_not_implement,
|
|
12117
|
-
|
|
12118
|
+
ca_monop_atan_VALUE,
|
|
12118
12119
|
};
|
|
12119
12120
|
|
|
12120
|
-
VALUE
|
|
12121
|
+
VALUE rb_ca_atan (VALUE self)
|
|
12121
12122
|
{
|
|
12122
12123
|
if ( rb_ca_is_integer_type(self) ) {
|
|
12123
12124
|
self = rb_ca_wrap_readonly(self, INT2NUM(CA_FLOAT64));
|
|
12124
12125
|
}
|
|
12125
|
-
return rb_ca_call_monop(self,
|
|
12126
|
+
return rb_ca_call_monop(self, ca_monop_atan);
|
|
12126
12127
|
}
|
|
12127
12128
|
|
|
12128
|
-
VALUE
|
|
12129
|
-
{ return rb_ca_call_monop_bang(self,
|
|
12129
|
+
VALUE rb_ca_atan_bang (VALUE self)
|
|
12130
|
+
{ return rb_ca_call_monop_bang(self, ca_monop_atan); }
|
|
12130
12131
|
|
|
12131
|
-
VALUE
|
|
12132
|
-
{ return ca_math_call(mod, arg, rb_intern("
|
|
12132
|
+
VALUE rb_cmath_atan (VALUE mod, VALUE arg)
|
|
12133
|
+
{ return ca_math_call(mod, arg, rb_intern("atan")); }
|
|
12133
12134
|
|
|
12134
|
-
/* ===== monop
|
|
12135
|
+
/* ===== monop log ============================================ */
|
|
12135
12136
|
|
|
12136
12137
|
static void
|
|
12137
|
-
|
|
12138
|
+
ca_monop_log_float32_t (ca_size_t n, boolean8_t *m,
|
|
12138
12139
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
12139
12140
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
12140
12141
|
{
|
|
@@ -12150,7 +12151,7 @@ ca_monop_atan_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
12150
12151
|
if ( ! *pm ) {
|
|
12151
12152
|
p1 = q1 + k*i1;
|
|
12152
12153
|
p2 = q2 + k*i2;
|
|
12153
|
-
{ (*p2) =
|
|
12154
|
+
{ (*p2) = logf(*p1); }
|
|
12154
12155
|
}
|
|
12155
12156
|
}
|
|
12156
12157
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -12165,21 +12166,21 @@ ca_monop_atan_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
12165
12166
|
#pragma omp simd
|
|
12166
12167
|
for (k=0; k<n; k++) {
|
|
12167
12168
|
p1 = q1 + k; p2 = q2 + k;
|
|
12168
|
-
{ (*p2) =
|
|
12169
|
+
{ (*p2) = logf(*p1); }
|
|
12169
12170
|
}
|
|
12170
12171
|
} else {
|
|
12171
12172
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
12172
12173
|
float *p1 = q1;
|
|
12173
12174
|
float *p2 = q2;
|
|
12174
12175
|
for (k=0; k<n; k++) {
|
|
12175
|
-
{ (*p2) =
|
|
12176
|
+
{ (*p2) = logf(*p1); }
|
|
12176
12177
|
p1 += i1; p2 += i2;
|
|
12177
12178
|
}
|
|
12178
12179
|
}
|
|
12179
12180
|
}
|
|
12180
12181
|
|
|
12181
12182
|
static void
|
|
12182
|
-
|
|
12183
|
+
ca_monop_log_float64_t (ca_size_t n, boolean8_t *m,
|
|
12183
12184
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
12184
12185
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
12185
12186
|
{
|
|
@@ -12195,7 +12196,7 @@ ca_monop_atan_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
12195
12196
|
if ( ! *pm ) {
|
|
12196
12197
|
p1 = q1 + k*i1;
|
|
12197
12198
|
p2 = q2 + k*i2;
|
|
12198
|
-
{ (*p2) =
|
|
12199
|
+
{ (*p2) = log(*p1); }
|
|
12199
12200
|
}
|
|
12200
12201
|
}
|
|
12201
12202
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -12210,21 +12211,21 @@ ca_monop_atan_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
12210
12211
|
#pragma omp simd
|
|
12211
12212
|
for (k=0; k<n; k++) {
|
|
12212
12213
|
p1 = q1 + k; p2 = q2 + k;
|
|
12213
|
-
{ (*p2) =
|
|
12214
|
+
{ (*p2) = log(*p1); }
|
|
12214
12215
|
}
|
|
12215
12216
|
} else {
|
|
12216
12217
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
12217
12218
|
double *p1 = q1;
|
|
12218
12219
|
double *p2 = q2;
|
|
12219
12220
|
for (k=0; k<n; k++) {
|
|
12220
|
-
{ (*p2) =
|
|
12221
|
+
{ (*p2) = log(*p1); }
|
|
12221
12222
|
p1 += i1; p2 += i2;
|
|
12222
12223
|
}
|
|
12223
12224
|
}
|
|
12224
12225
|
}
|
|
12225
12226
|
|
|
12226
12227
|
static void
|
|
12227
|
-
|
|
12228
|
+
ca_monop_log_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
12228
12229
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
12229
12230
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
12230
12231
|
{
|
|
@@ -12240,7 +12241,7 @@ ca_monop_atan_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
12240
12241
|
if ( ! *pm ) {
|
|
12241
12242
|
p1 = q1 + k*i1;
|
|
12242
12243
|
p2 = q2 + k*i2;
|
|
12243
|
-
{ (*p2) =
|
|
12244
|
+
{ (*p2) = clog(*p1); }
|
|
12244
12245
|
}
|
|
12245
12246
|
}
|
|
12246
12247
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -12255,21 +12256,21 @@ ca_monop_atan_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
12255
12256
|
#pragma omp simd
|
|
12256
12257
|
for (k=0; k<n; k++) {
|
|
12257
12258
|
p1 = q1 + k; p2 = q2 + k;
|
|
12258
|
-
{ (*p2) =
|
|
12259
|
+
{ (*p2) = clog(*p1); }
|
|
12259
12260
|
}
|
|
12260
12261
|
} else {
|
|
12261
12262
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
12262
12263
|
cmplx64_t *p1 = q1;
|
|
12263
12264
|
cmplx64_t *p2 = q2;
|
|
12264
12265
|
for (k=0; k<n; k++) {
|
|
12265
|
-
{ (*p2) =
|
|
12266
|
+
{ (*p2) = clog(*p1); }
|
|
12266
12267
|
p1 += i1; p2 += i2;
|
|
12267
12268
|
}
|
|
12268
12269
|
}
|
|
12269
12270
|
}
|
|
12270
12271
|
|
|
12271
12272
|
static void
|
|
12272
|
-
|
|
12273
|
+
ca_monop_log_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
12273
12274
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
12274
12275
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
12275
12276
|
{
|
|
@@ -12285,7 +12286,7 @@ ca_monop_atan_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
12285
12286
|
if ( ! *pm ) {
|
|
12286
12287
|
p1 = q1 + k*i1;
|
|
12287
12288
|
p2 = q2 + k*i2;
|
|
12288
|
-
{ (*p2) =
|
|
12289
|
+
{ (*p2) = clog(*p1); }
|
|
12289
12290
|
}
|
|
12290
12291
|
}
|
|
12291
12292
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -12300,21 +12301,21 @@ ca_monop_atan_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
12300
12301
|
#pragma omp simd
|
|
12301
12302
|
for (k=0; k<n; k++) {
|
|
12302
12303
|
p1 = q1 + k; p2 = q2 + k;
|
|
12303
|
-
{ (*p2) =
|
|
12304
|
+
{ (*p2) = clog(*p1); }
|
|
12304
12305
|
}
|
|
12305
12306
|
} else {
|
|
12306
12307
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
12307
12308
|
cmplx128_t *p1 = q1;
|
|
12308
12309
|
cmplx128_t *p2 = q2;
|
|
12309
12310
|
for (k=0; k<n; k++) {
|
|
12310
|
-
{ (*p2) =
|
|
12311
|
+
{ (*p2) = clog(*p1); }
|
|
12311
12312
|
p1 += i1; p2 += i2;
|
|
12312
12313
|
}
|
|
12313
12314
|
}
|
|
12314
12315
|
}
|
|
12315
12316
|
|
|
12316
12317
|
static void
|
|
12317
|
-
|
|
12318
|
+
ca_monop_log_VALUE (ca_size_t n, boolean8_t *m,
|
|
12318
12319
|
char * __restrict__ ptr1, ca_size_t i1,
|
|
12319
12320
|
char * __restrict__ ptr2, ca_size_t i2)
|
|
12320
12321
|
{
|
|
@@ -12333,9 +12334,9 @@ ca_monop_atan_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
12333
12334
|
{ {
|
|
12334
12335
|
VALUE _obj_arg = (*p1);
|
|
12335
12336
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
12336
|
-
(*p2) = DBL2NUM(
|
|
12337
|
+
(*p2) = DBL2NUM(log(NUM2DBL(_obj_arg)));
|
|
12337
12338
|
} else {
|
|
12338
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
12339
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("log"), 0);
|
|
12339
12340
|
}
|
|
12340
12341
|
}
|
|
12341
12342
|
}
|
|
@@ -12356,9 +12357,9 @@ ca_monop_atan_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
12356
12357
|
{ {
|
|
12357
12358
|
VALUE _obj_arg = (*p1);
|
|
12358
12359
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
12359
|
-
(*p2) = DBL2NUM(
|
|
12360
|
+
(*p2) = DBL2NUM(log(NUM2DBL(_obj_arg)));
|
|
12360
12361
|
} else {
|
|
12361
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
12362
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("log"), 0);
|
|
12362
12363
|
}
|
|
12363
12364
|
}
|
|
12364
12365
|
}
|
|
@@ -12371,9 +12372,9 @@ ca_monop_atan_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
12371
12372
|
{ {
|
|
12372
12373
|
VALUE _obj_arg = (*p1);
|
|
12373
12374
|
if (RB_FLOAT_TYPE_P(_obj_arg) || RB_INTEGER_TYPE_P(_obj_arg) || RB_TYPE_P(_obj_arg, T_RATIONAL)) {
|
|
12374
|
-
(*p2) = DBL2NUM(
|
|
12375
|
+
(*p2) = DBL2NUM(log(NUM2DBL(_obj_arg)));
|
|
12375
12376
|
} else {
|
|
12376
|
-
(*p2) = rb_funcall(_obj_arg, rb_intern("
|
|
12377
|
+
(*p2) = rb_funcall(_obj_arg, rb_intern("log"), 0);
|
|
12377
12378
|
}
|
|
12378
12379
|
}
|
|
12379
12380
|
}
|
|
@@ -12383,7 +12384,7 @@ ca_monop_atan_VALUE (ca_size_t n, boolean8_t *m,
|
|
|
12383
12384
|
}
|
|
12384
12385
|
|
|
12385
12386
|
ca_monop_func_t
|
|
12386
|
-
|
|
12387
|
+
ca_monop_log[CA_NTYPE] = {
|
|
12387
12388
|
ca_monop_not_implement,
|
|
12388
12389
|
ca_monop_not_implement,
|
|
12389
12390
|
ca_monop_not_implement,
|
|
@@ -12394,28 +12395,28 @@ ca_monop_atan[CA_NTYPE] = {
|
|
|
12394
12395
|
ca_monop_not_implement,
|
|
12395
12396
|
ca_monop_not_implement,
|
|
12396
12397
|
ca_monop_not_implement,
|
|
12397
|
-
|
|
12398
|
-
|
|
12398
|
+
ca_monop_log_float32_t,
|
|
12399
|
+
ca_monop_log_float64_t,
|
|
12399
12400
|
ca_monop_not_implement,
|
|
12400
|
-
|
|
12401
|
-
|
|
12401
|
+
ca_monop_log_cmplx64_t,
|
|
12402
|
+
ca_monop_log_cmplx128_t,
|
|
12402
12403
|
ca_monop_not_implement,
|
|
12403
|
-
|
|
12404
|
+
ca_monop_log_VALUE,
|
|
12404
12405
|
};
|
|
12405
12406
|
|
|
12406
|
-
VALUE
|
|
12407
|
+
VALUE rb_ca_log (VALUE self)
|
|
12407
12408
|
{
|
|
12408
12409
|
if ( rb_ca_is_integer_type(self) ) {
|
|
12409
12410
|
self = rb_ca_wrap_readonly(self, INT2NUM(CA_FLOAT64));
|
|
12410
12411
|
}
|
|
12411
|
-
return rb_ca_call_monop(self,
|
|
12412
|
+
return rb_ca_call_monop(self, ca_monop_log);
|
|
12412
12413
|
}
|
|
12413
12414
|
|
|
12414
|
-
VALUE
|
|
12415
|
-
{ return rb_ca_call_monop_bang(self,
|
|
12415
|
+
VALUE rb_ca_log_bang (VALUE self)
|
|
12416
|
+
{ return rb_ca_call_monop_bang(self, ca_monop_log); }
|
|
12416
12417
|
|
|
12417
|
-
VALUE
|
|
12418
|
-
{ return ca_math_call(mod, arg, rb_intern("
|
|
12418
|
+
VALUE rb_cmath_log (VALUE mod, VALUE arg)
|
|
12419
|
+
{ return ca_math_call(mod, arg, rb_intern("log")); }
|
|
12419
12420
|
|
|
12420
12421
|
/* ===== monop exp2 ============================================ */
|
|
12421
12422
|
|
|
@@ -12436,7 +12437,7 @@ ca_monop_exp2_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
12436
12437
|
if ( ! *pm ) {
|
|
12437
12438
|
p1 = q1 + k*i1;
|
|
12438
12439
|
p2 = q2 + k*i2;
|
|
12439
|
-
{ (*p2) =
|
|
12440
|
+
{ (*p2) = exp2f(*p1); }
|
|
12440
12441
|
}
|
|
12441
12442
|
}
|
|
12442
12443
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -12451,14 +12452,14 @@ ca_monop_exp2_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
12451
12452
|
#pragma omp simd
|
|
12452
12453
|
for (k=0; k<n; k++) {
|
|
12453
12454
|
p1 = q1 + k; p2 = q2 + k;
|
|
12454
|
-
{ (*p2) =
|
|
12455
|
+
{ (*p2) = exp2f(*p1); }
|
|
12455
12456
|
}
|
|
12456
12457
|
} else {
|
|
12457
12458
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
12458
12459
|
float *p1 = q1;
|
|
12459
12460
|
float *p2 = q2;
|
|
12460
12461
|
for (k=0; k<n; k++) {
|
|
12461
|
-
{ (*p2) =
|
|
12462
|
+
{ (*p2) = exp2f(*p1); }
|
|
12462
12463
|
p1 += i1; p2 += i2;
|
|
12463
12464
|
}
|
|
12464
12465
|
}
|
|
@@ -12722,7 +12723,7 @@ ca_monop_log10_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
12722
12723
|
if ( ! *pm ) {
|
|
12723
12724
|
p1 = q1 + k*i1;
|
|
12724
12725
|
p2 = q2 + k*i2;
|
|
12725
|
-
{ (*p2) =
|
|
12726
|
+
{ (*p2) = log10f(*p1); }
|
|
12726
12727
|
}
|
|
12727
12728
|
}
|
|
12728
12729
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -12737,14 +12738,14 @@ ca_monop_log10_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
12737
12738
|
#pragma omp simd
|
|
12738
12739
|
for (k=0; k<n; k++) {
|
|
12739
12740
|
p1 = q1 + k; p2 = q2 + k;
|
|
12740
|
-
{ (*p2) =
|
|
12741
|
+
{ (*p2) = log10f(*p1); }
|
|
12741
12742
|
}
|
|
12742
12743
|
} else {
|
|
12743
12744
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
12744
12745
|
float *p1 = q1;
|
|
12745
12746
|
float *p2 = q2;
|
|
12746
12747
|
for (k=0; k<n; k++) {
|
|
12747
|
-
{ (*p2) =
|
|
12748
|
+
{ (*p2) = log10f(*p1); }
|
|
12748
12749
|
p1 += i1; p2 += i2;
|
|
12749
12750
|
}
|
|
12750
12751
|
}
|
|
@@ -12918,7 +12919,7 @@ ca_monop_log2_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
12918
12919
|
if ( ! *pm ) {
|
|
12919
12920
|
p1 = q1 + k*i1;
|
|
12920
12921
|
p2 = q2 + k*i2;
|
|
12921
|
-
{ (*p2) =
|
|
12922
|
+
{ (*p2) = log2f(*p1); }
|
|
12922
12923
|
}
|
|
12923
12924
|
}
|
|
12924
12925
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -12933,14 +12934,14 @@ ca_monop_log2_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
12933
12934
|
#pragma omp simd
|
|
12934
12935
|
for (k=0; k<n; k++) {
|
|
12935
12936
|
p1 = q1 + k; p2 = q2 + k;
|
|
12936
|
-
{ (*p2) =
|
|
12937
|
+
{ (*p2) = log2f(*p1); }
|
|
12937
12938
|
}
|
|
12938
12939
|
} else {
|
|
12939
12940
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
12940
12941
|
float *p1 = q1;
|
|
12941
12942
|
float *p2 = q2;
|
|
12942
12943
|
for (k=0; k<n; k++) {
|
|
12943
|
-
{ (*p2) =
|
|
12944
|
+
{ (*p2) = log2f(*p1); }
|
|
12944
12945
|
p1 += i1; p2 += i2;
|
|
12945
12946
|
}
|
|
12946
12947
|
}
|
|
@@ -13114,7 +13115,7 @@ ca_monop_logb_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
13114
13115
|
if ( ! *pm ) {
|
|
13115
13116
|
p1 = q1 + k*i1;
|
|
13116
13117
|
p2 = q2 + k*i2;
|
|
13117
|
-
{ (*p2) =
|
|
13118
|
+
{ (*p2) = logbf(*p1); }
|
|
13118
13119
|
}
|
|
13119
13120
|
}
|
|
13120
13121
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -13129,14 +13130,14 @@ ca_monop_logb_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
13129
13130
|
#pragma omp simd
|
|
13130
13131
|
for (k=0; k<n; k++) {
|
|
13131
13132
|
p1 = q1 + k; p2 = q2 + k;
|
|
13132
|
-
{ (*p2) =
|
|
13133
|
+
{ (*p2) = logbf(*p1); }
|
|
13133
13134
|
}
|
|
13134
13135
|
} else {
|
|
13135
13136
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
13136
13137
|
float *p1 = q1;
|
|
13137
13138
|
float *p2 = q2;
|
|
13138
13139
|
for (k=0; k<n; k++) {
|
|
13139
|
-
{ (*p2) =
|
|
13140
|
+
{ (*p2) = logbf(*p1); }
|
|
13140
13141
|
p1 += i1; p2 += i2;
|
|
13141
13142
|
}
|
|
13142
13143
|
}
|
|
@@ -13310,7 +13311,7 @@ ca_monop_exp10_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
13310
13311
|
if ( ! *pm ) {
|
|
13311
13312
|
p1 = q1 + k*i1;
|
|
13312
13313
|
p2 = q2 + k*i2;
|
|
13313
|
-
{ (*p2) =
|
|
13314
|
+
{ (*p2) = powf(10, (*p1)); }
|
|
13314
13315
|
}
|
|
13315
13316
|
}
|
|
13316
13317
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -13325,14 +13326,14 @@ ca_monop_exp10_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
13325
13326
|
#pragma omp simd
|
|
13326
13327
|
for (k=0; k<n; k++) {
|
|
13327
13328
|
p1 = q1 + k; p2 = q2 + k;
|
|
13328
|
-
{ (*p2) =
|
|
13329
|
+
{ (*p2) = powf(10, (*p1)); }
|
|
13329
13330
|
}
|
|
13330
13331
|
} else {
|
|
13331
13332
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
13332
13333
|
float *p1 = q1;
|
|
13333
13334
|
float *p2 = q2;
|
|
13334
13335
|
for (k=0; k<n; k++) {
|
|
13335
|
-
{ (*p2) =
|
|
13336
|
+
{ (*p2) = powf(10, (*p1)); }
|
|
13336
13337
|
p1 += i1; p2 += i2;
|
|
13337
13338
|
}
|
|
13338
13339
|
}
|
|
@@ -13596,7 +13597,7 @@ ca_monop_sinh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
13596
13597
|
if ( ! *pm ) {
|
|
13597
13598
|
p1 = q1 + k*i1;
|
|
13598
13599
|
p2 = q2 + k*i2;
|
|
13599
|
-
{ (*p2) =
|
|
13600
|
+
{ (*p2) = sinhf(*p1); }
|
|
13600
13601
|
}
|
|
13601
13602
|
}
|
|
13602
13603
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -13611,14 +13612,14 @@ ca_monop_sinh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
13611
13612
|
#pragma omp simd
|
|
13612
13613
|
for (k=0; k<n; k++) {
|
|
13613
13614
|
p1 = q1 + k; p2 = q2 + k;
|
|
13614
|
-
{ (*p2) =
|
|
13615
|
+
{ (*p2) = sinhf(*p1); }
|
|
13615
13616
|
}
|
|
13616
13617
|
} else {
|
|
13617
13618
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
13618
13619
|
float *p1 = q1;
|
|
13619
13620
|
float *p2 = q2;
|
|
13620
13621
|
for (k=0; k<n; k++) {
|
|
13621
|
-
{ (*p2) =
|
|
13622
|
+
{ (*p2) = sinhf(*p1); }
|
|
13622
13623
|
p1 += i1; p2 += i2;
|
|
13623
13624
|
}
|
|
13624
13625
|
}
|
|
@@ -13686,7 +13687,7 @@ ca_monop_sinh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
13686
13687
|
if ( ! *pm ) {
|
|
13687
13688
|
p1 = q1 + k*i1;
|
|
13688
13689
|
p2 = q2 + k*i2;
|
|
13689
|
-
{ (*p2) =
|
|
13690
|
+
{ (*p2) = csinhf(*p1); }
|
|
13690
13691
|
}
|
|
13691
13692
|
}
|
|
13692
13693
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -13701,14 +13702,14 @@ ca_monop_sinh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
13701
13702
|
#pragma omp simd
|
|
13702
13703
|
for (k=0; k<n; k++) {
|
|
13703
13704
|
p1 = q1 + k; p2 = q2 + k;
|
|
13704
|
-
{ (*p2) =
|
|
13705
|
+
{ (*p2) = csinhf(*p1); }
|
|
13705
13706
|
}
|
|
13706
13707
|
} else {
|
|
13707
13708
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
13708
13709
|
cmplx64_t *p1 = q1;
|
|
13709
13710
|
cmplx64_t *p2 = q2;
|
|
13710
13711
|
for (k=0; k<n; k++) {
|
|
13711
|
-
{ (*p2) =
|
|
13712
|
+
{ (*p2) = csinhf(*p1); }
|
|
13712
13713
|
p1 += i1; p2 += i2;
|
|
13713
13714
|
}
|
|
13714
13715
|
}
|
|
@@ -13731,7 +13732,7 @@ ca_monop_sinh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
13731
13732
|
if ( ! *pm ) {
|
|
13732
13733
|
p1 = q1 + k*i1;
|
|
13733
13734
|
p2 = q2 + k*i2;
|
|
13734
|
-
{ (*p2) =
|
|
13735
|
+
{ (*p2) = csinh(*p1); }
|
|
13735
13736
|
}
|
|
13736
13737
|
}
|
|
13737
13738
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -13746,14 +13747,14 @@ ca_monop_sinh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
13746
13747
|
#pragma omp simd
|
|
13747
13748
|
for (k=0; k<n; k++) {
|
|
13748
13749
|
p1 = q1 + k; p2 = q2 + k;
|
|
13749
|
-
{ (*p2) =
|
|
13750
|
+
{ (*p2) = csinh(*p1); }
|
|
13750
13751
|
}
|
|
13751
13752
|
} else {
|
|
13752
13753
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
13753
13754
|
cmplx128_t *p1 = q1;
|
|
13754
13755
|
cmplx128_t *p2 = q2;
|
|
13755
13756
|
for (k=0; k<n; k++) {
|
|
13756
|
-
{ (*p2) =
|
|
13757
|
+
{ (*p2) = csinh(*p1); }
|
|
13757
13758
|
p1 += i1; p2 += i2;
|
|
13758
13759
|
}
|
|
13759
13760
|
}
|
|
@@ -13882,7 +13883,7 @@ ca_monop_cosh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
13882
13883
|
if ( ! *pm ) {
|
|
13883
13884
|
p1 = q1 + k*i1;
|
|
13884
13885
|
p2 = q2 + k*i2;
|
|
13885
|
-
{ (*p2) =
|
|
13886
|
+
{ (*p2) = coshf(*p1); }
|
|
13886
13887
|
}
|
|
13887
13888
|
}
|
|
13888
13889
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -13897,14 +13898,14 @@ ca_monop_cosh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
13897
13898
|
#pragma omp simd
|
|
13898
13899
|
for (k=0; k<n; k++) {
|
|
13899
13900
|
p1 = q1 + k; p2 = q2 + k;
|
|
13900
|
-
{ (*p2) =
|
|
13901
|
+
{ (*p2) = coshf(*p1); }
|
|
13901
13902
|
}
|
|
13902
13903
|
} else {
|
|
13903
13904
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
13904
13905
|
float *p1 = q1;
|
|
13905
13906
|
float *p2 = q2;
|
|
13906
13907
|
for (k=0; k<n; k++) {
|
|
13907
|
-
{ (*p2) =
|
|
13908
|
+
{ (*p2) = coshf(*p1); }
|
|
13908
13909
|
p1 += i1; p2 += i2;
|
|
13909
13910
|
}
|
|
13910
13911
|
}
|
|
@@ -13972,7 +13973,7 @@ ca_monop_cosh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
13972
13973
|
if ( ! *pm ) {
|
|
13973
13974
|
p1 = q1 + k*i1;
|
|
13974
13975
|
p2 = q2 + k*i2;
|
|
13975
|
-
{ (*p2) =
|
|
13976
|
+
{ (*p2) = ccoshf(*p1); }
|
|
13976
13977
|
}
|
|
13977
13978
|
}
|
|
13978
13979
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -13987,14 +13988,14 @@ ca_monop_cosh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
13987
13988
|
#pragma omp simd
|
|
13988
13989
|
for (k=0; k<n; k++) {
|
|
13989
13990
|
p1 = q1 + k; p2 = q2 + k;
|
|
13990
|
-
{ (*p2) =
|
|
13991
|
+
{ (*p2) = ccoshf(*p1); }
|
|
13991
13992
|
}
|
|
13992
13993
|
} else {
|
|
13993
13994
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
13994
13995
|
cmplx64_t *p1 = q1;
|
|
13995
13996
|
cmplx64_t *p2 = q2;
|
|
13996
13997
|
for (k=0; k<n; k++) {
|
|
13997
|
-
{ (*p2) =
|
|
13998
|
+
{ (*p2) = ccoshf(*p1); }
|
|
13998
13999
|
p1 += i1; p2 += i2;
|
|
13999
14000
|
}
|
|
14000
14001
|
}
|
|
@@ -14017,7 +14018,7 @@ ca_monop_cosh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
14017
14018
|
if ( ! *pm ) {
|
|
14018
14019
|
p1 = q1 + k*i1;
|
|
14019
14020
|
p2 = q2 + k*i2;
|
|
14020
|
-
{ (*p2) =
|
|
14021
|
+
{ (*p2) = ccosh(*p1); }
|
|
14021
14022
|
}
|
|
14022
14023
|
}
|
|
14023
14024
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14032,14 +14033,14 @@ ca_monop_cosh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
14032
14033
|
#pragma omp simd
|
|
14033
14034
|
for (k=0; k<n; k++) {
|
|
14034
14035
|
p1 = q1 + k; p2 = q2 + k;
|
|
14035
|
-
{ (*p2) =
|
|
14036
|
+
{ (*p2) = ccosh(*p1); }
|
|
14036
14037
|
}
|
|
14037
14038
|
} else {
|
|
14038
14039
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14039
14040
|
cmplx128_t *p1 = q1;
|
|
14040
14041
|
cmplx128_t *p2 = q2;
|
|
14041
14042
|
for (k=0; k<n; k++) {
|
|
14042
|
-
{ (*p2) =
|
|
14043
|
+
{ (*p2) = ccosh(*p1); }
|
|
14043
14044
|
p1 += i1; p2 += i2;
|
|
14044
14045
|
}
|
|
14045
14046
|
}
|
|
@@ -14168,7 +14169,7 @@ ca_monop_tanh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
14168
14169
|
if ( ! *pm ) {
|
|
14169
14170
|
p1 = q1 + k*i1;
|
|
14170
14171
|
p2 = q2 + k*i2;
|
|
14171
|
-
{ (*p2) =
|
|
14172
|
+
{ (*p2) = tanhf(*p1); }
|
|
14172
14173
|
}
|
|
14173
14174
|
}
|
|
14174
14175
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14183,14 +14184,14 @@ ca_monop_tanh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
14183
14184
|
#pragma omp simd
|
|
14184
14185
|
for (k=0; k<n; k++) {
|
|
14185
14186
|
p1 = q1 + k; p2 = q2 + k;
|
|
14186
|
-
{ (*p2) =
|
|
14187
|
+
{ (*p2) = tanhf(*p1); }
|
|
14187
14188
|
}
|
|
14188
14189
|
} else {
|
|
14189
14190
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14190
14191
|
float *p1 = q1;
|
|
14191
14192
|
float *p2 = q2;
|
|
14192
14193
|
for (k=0; k<n; k++) {
|
|
14193
|
-
{ (*p2) =
|
|
14194
|
+
{ (*p2) = tanhf(*p1); }
|
|
14194
14195
|
p1 += i1; p2 += i2;
|
|
14195
14196
|
}
|
|
14196
14197
|
}
|
|
@@ -14258,7 +14259,7 @@ ca_monop_tanh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
14258
14259
|
if ( ! *pm ) {
|
|
14259
14260
|
p1 = q1 + k*i1;
|
|
14260
14261
|
p2 = q2 + k*i2;
|
|
14261
|
-
{ (*p2) =
|
|
14262
|
+
{ (*p2) = ctanhf(*p1); }
|
|
14262
14263
|
}
|
|
14263
14264
|
}
|
|
14264
14265
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14273,14 +14274,14 @@ ca_monop_tanh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
14273
14274
|
#pragma omp simd
|
|
14274
14275
|
for (k=0; k<n; k++) {
|
|
14275
14276
|
p1 = q1 + k; p2 = q2 + k;
|
|
14276
|
-
{ (*p2) =
|
|
14277
|
+
{ (*p2) = ctanhf(*p1); }
|
|
14277
14278
|
}
|
|
14278
14279
|
} else {
|
|
14279
14280
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14280
14281
|
cmplx64_t *p1 = q1;
|
|
14281
14282
|
cmplx64_t *p2 = q2;
|
|
14282
14283
|
for (k=0; k<n; k++) {
|
|
14283
|
-
{ (*p2) =
|
|
14284
|
+
{ (*p2) = ctanhf(*p1); }
|
|
14284
14285
|
p1 += i1; p2 += i2;
|
|
14285
14286
|
}
|
|
14286
14287
|
}
|
|
@@ -14303,7 +14304,7 @@ ca_monop_tanh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
14303
14304
|
if ( ! *pm ) {
|
|
14304
14305
|
p1 = q1 + k*i1;
|
|
14305
14306
|
p2 = q2 + k*i2;
|
|
14306
|
-
{ (*p2) =
|
|
14307
|
+
{ (*p2) = ctanh(*p1); }
|
|
14307
14308
|
}
|
|
14308
14309
|
}
|
|
14309
14310
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14318,14 +14319,14 @@ ca_monop_tanh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
14318
14319
|
#pragma omp simd
|
|
14319
14320
|
for (k=0; k<n; k++) {
|
|
14320
14321
|
p1 = q1 + k; p2 = q2 + k;
|
|
14321
|
-
{ (*p2) =
|
|
14322
|
+
{ (*p2) = ctanh(*p1); }
|
|
14322
14323
|
}
|
|
14323
14324
|
} else {
|
|
14324
14325
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14325
14326
|
cmplx128_t *p1 = q1;
|
|
14326
14327
|
cmplx128_t *p2 = q2;
|
|
14327
14328
|
for (k=0; k<n; k++) {
|
|
14328
|
-
{ (*p2) =
|
|
14329
|
+
{ (*p2) = ctanh(*p1); }
|
|
14329
14330
|
p1 += i1; p2 += i2;
|
|
14330
14331
|
}
|
|
14331
14332
|
}
|
|
@@ -14454,7 +14455,7 @@ ca_monop_asinh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
14454
14455
|
if ( ! *pm ) {
|
|
14455
14456
|
p1 = q1 + k*i1;
|
|
14456
14457
|
p2 = q2 + k*i2;
|
|
14457
|
-
{ (*p2) =
|
|
14458
|
+
{ (*p2) = asinhf(*p1); }
|
|
14458
14459
|
}
|
|
14459
14460
|
}
|
|
14460
14461
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14469,14 +14470,14 @@ ca_monop_asinh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
14469
14470
|
#pragma omp simd
|
|
14470
14471
|
for (k=0; k<n; k++) {
|
|
14471
14472
|
p1 = q1 + k; p2 = q2 + k;
|
|
14472
|
-
{ (*p2) =
|
|
14473
|
+
{ (*p2) = asinhf(*p1); }
|
|
14473
14474
|
}
|
|
14474
14475
|
} else {
|
|
14475
14476
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14476
14477
|
float *p1 = q1;
|
|
14477
14478
|
float *p2 = q2;
|
|
14478
14479
|
for (k=0; k<n; k++) {
|
|
14479
|
-
{ (*p2) =
|
|
14480
|
+
{ (*p2) = asinhf(*p1); }
|
|
14480
14481
|
p1 += i1; p2 += i2;
|
|
14481
14482
|
}
|
|
14482
14483
|
}
|
|
@@ -14544,7 +14545,7 @@ ca_monop_asinh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
14544
14545
|
if ( ! *pm ) {
|
|
14545
14546
|
p1 = q1 + k*i1;
|
|
14546
14547
|
p2 = q2 + k*i2;
|
|
14547
|
-
{ (*p2) =
|
|
14548
|
+
{ (*p2) = casinhf(*p1); }
|
|
14548
14549
|
}
|
|
14549
14550
|
}
|
|
14550
14551
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14559,14 +14560,14 @@ ca_monop_asinh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
14559
14560
|
#pragma omp simd
|
|
14560
14561
|
for (k=0; k<n; k++) {
|
|
14561
14562
|
p1 = q1 + k; p2 = q2 + k;
|
|
14562
|
-
{ (*p2) =
|
|
14563
|
+
{ (*p2) = casinhf(*p1); }
|
|
14563
14564
|
}
|
|
14564
14565
|
} else {
|
|
14565
14566
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14566
14567
|
cmplx64_t *p1 = q1;
|
|
14567
14568
|
cmplx64_t *p2 = q2;
|
|
14568
14569
|
for (k=0; k<n; k++) {
|
|
14569
|
-
{ (*p2) =
|
|
14570
|
+
{ (*p2) = casinhf(*p1); }
|
|
14570
14571
|
p1 += i1; p2 += i2;
|
|
14571
14572
|
}
|
|
14572
14573
|
}
|
|
@@ -14589,7 +14590,7 @@ ca_monop_asinh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
14589
14590
|
if ( ! *pm ) {
|
|
14590
14591
|
p1 = q1 + k*i1;
|
|
14591
14592
|
p2 = q2 + k*i2;
|
|
14592
|
-
{ (*p2) =
|
|
14593
|
+
{ (*p2) = casinh(*p1); }
|
|
14593
14594
|
}
|
|
14594
14595
|
}
|
|
14595
14596
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14604,14 +14605,14 @@ ca_monop_asinh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
14604
14605
|
#pragma omp simd
|
|
14605
14606
|
for (k=0; k<n; k++) {
|
|
14606
14607
|
p1 = q1 + k; p2 = q2 + k;
|
|
14607
|
-
{ (*p2) =
|
|
14608
|
+
{ (*p2) = casinh(*p1); }
|
|
14608
14609
|
}
|
|
14609
14610
|
} else {
|
|
14610
14611
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14611
14612
|
cmplx128_t *p1 = q1;
|
|
14612
14613
|
cmplx128_t *p2 = q2;
|
|
14613
14614
|
for (k=0; k<n; k++) {
|
|
14614
|
-
{ (*p2) =
|
|
14615
|
+
{ (*p2) = casinh(*p1); }
|
|
14615
14616
|
p1 += i1; p2 += i2;
|
|
14616
14617
|
}
|
|
14617
14618
|
}
|
|
@@ -14740,7 +14741,7 @@ ca_monop_acosh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
14740
14741
|
if ( ! *pm ) {
|
|
14741
14742
|
p1 = q1 + k*i1;
|
|
14742
14743
|
p2 = q2 + k*i2;
|
|
14743
|
-
{ (*p2) =
|
|
14744
|
+
{ (*p2) = acoshf(*p1); }
|
|
14744
14745
|
}
|
|
14745
14746
|
}
|
|
14746
14747
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14755,14 +14756,14 @@ ca_monop_acosh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
14755
14756
|
#pragma omp simd
|
|
14756
14757
|
for (k=0; k<n; k++) {
|
|
14757
14758
|
p1 = q1 + k; p2 = q2 + k;
|
|
14758
|
-
{ (*p2) =
|
|
14759
|
+
{ (*p2) = acoshf(*p1); }
|
|
14759
14760
|
}
|
|
14760
14761
|
} else {
|
|
14761
14762
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14762
14763
|
float *p1 = q1;
|
|
14763
14764
|
float *p2 = q2;
|
|
14764
14765
|
for (k=0; k<n; k++) {
|
|
14765
|
-
{ (*p2) =
|
|
14766
|
+
{ (*p2) = acoshf(*p1); }
|
|
14766
14767
|
p1 += i1; p2 += i2;
|
|
14767
14768
|
}
|
|
14768
14769
|
}
|
|
@@ -14830,7 +14831,7 @@ ca_monop_acosh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
14830
14831
|
if ( ! *pm ) {
|
|
14831
14832
|
p1 = q1 + k*i1;
|
|
14832
14833
|
p2 = q2 + k*i2;
|
|
14833
|
-
{ (*p2) =
|
|
14834
|
+
{ (*p2) = cacoshf(*p1); }
|
|
14834
14835
|
}
|
|
14835
14836
|
}
|
|
14836
14837
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14845,14 +14846,14 @@ ca_monop_acosh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
14845
14846
|
#pragma omp simd
|
|
14846
14847
|
for (k=0; k<n; k++) {
|
|
14847
14848
|
p1 = q1 + k; p2 = q2 + k;
|
|
14848
|
-
{ (*p2) =
|
|
14849
|
+
{ (*p2) = cacoshf(*p1); }
|
|
14849
14850
|
}
|
|
14850
14851
|
} else {
|
|
14851
14852
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14852
14853
|
cmplx64_t *p1 = q1;
|
|
14853
14854
|
cmplx64_t *p2 = q2;
|
|
14854
14855
|
for (k=0; k<n; k++) {
|
|
14855
|
-
{ (*p2) =
|
|
14856
|
+
{ (*p2) = cacoshf(*p1); }
|
|
14856
14857
|
p1 += i1; p2 += i2;
|
|
14857
14858
|
}
|
|
14858
14859
|
}
|
|
@@ -14875,7 +14876,7 @@ ca_monop_acosh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
14875
14876
|
if ( ! *pm ) {
|
|
14876
14877
|
p1 = q1 + k*i1;
|
|
14877
14878
|
p2 = q2 + k*i2;
|
|
14878
|
-
{ (*p2) =
|
|
14879
|
+
{ (*p2) = cacosh(*p1); }
|
|
14879
14880
|
}
|
|
14880
14881
|
}
|
|
14881
14882
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -14890,14 +14891,14 @@ ca_monop_acosh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
14890
14891
|
#pragma omp simd
|
|
14891
14892
|
for (k=0; k<n; k++) {
|
|
14892
14893
|
p1 = q1 + k; p2 = q2 + k;
|
|
14893
|
-
{ (*p2) =
|
|
14894
|
+
{ (*p2) = cacosh(*p1); }
|
|
14894
14895
|
}
|
|
14895
14896
|
} else {
|
|
14896
14897
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
14897
14898
|
cmplx128_t *p1 = q1;
|
|
14898
14899
|
cmplx128_t *p2 = q2;
|
|
14899
14900
|
for (k=0; k<n; k++) {
|
|
14900
|
-
{ (*p2) =
|
|
14901
|
+
{ (*p2) = cacosh(*p1); }
|
|
14901
14902
|
p1 += i1; p2 += i2;
|
|
14902
14903
|
}
|
|
14903
14904
|
}
|
|
@@ -15026,7 +15027,7 @@ ca_monop_atanh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
15026
15027
|
if ( ! *pm ) {
|
|
15027
15028
|
p1 = q1 + k*i1;
|
|
15028
15029
|
p2 = q2 + k*i2;
|
|
15029
|
-
{ (*p2) =
|
|
15030
|
+
{ (*p2) = atanhf(*p1); }
|
|
15030
15031
|
}
|
|
15031
15032
|
}
|
|
15032
15033
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -15041,14 +15042,14 @@ ca_monop_atanh_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
15041
15042
|
#pragma omp simd
|
|
15042
15043
|
for (k=0; k<n; k++) {
|
|
15043
15044
|
p1 = q1 + k; p2 = q2 + k;
|
|
15044
|
-
{ (*p2) =
|
|
15045
|
+
{ (*p2) = atanhf(*p1); }
|
|
15045
15046
|
}
|
|
15046
15047
|
} else {
|
|
15047
15048
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
15048
15049
|
float *p1 = q1;
|
|
15049
15050
|
float *p2 = q2;
|
|
15050
15051
|
for (k=0; k<n; k++) {
|
|
15051
|
-
{ (*p2) =
|
|
15052
|
+
{ (*p2) = atanhf(*p1); }
|
|
15052
15053
|
p1 += i1; p2 += i2;
|
|
15053
15054
|
}
|
|
15054
15055
|
}
|
|
@@ -15116,7 +15117,7 @@ ca_monop_atanh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
15116
15117
|
if ( ! *pm ) {
|
|
15117
15118
|
p1 = q1 + k*i1;
|
|
15118
15119
|
p2 = q2 + k*i2;
|
|
15119
|
-
{ (*p2) =
|
|
15120
|
+
{ (*p2) = catanhf(*p1); }
|
|
15120
15121
|
}
|
|
15121
15122
|
}
|
|
15122
15123
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -15131,14 +15132,14 @@ ca_monop_atanh_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
15131
15132
|
#pragma omp simd
|
|
15132
15133
|
for (k=0; k<n; k++) {
|
|
15133
15134
|
p1 = q1 + k; p2 = q2 + k;
|
|
15134
|
-
{ (*p2) =
|
|
15135
|
+
{ (*p2) = catanhf(*p1); }
|
|
15135
15136
|
}
|
|
15136
15137
|
} else {
|
|
15137
15138
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
15138
15139
|
cmplx64_t *p1 = q1;
|
|
15139
15140
|
cmplx64_t *p2 = q2;
|
|
15140
15141
|
for (k=0; k<n; k++) {
|
|
15141
|
-
{ (*p2) =
|
|
15142
|
+
{ (*p2) = catanhf(*p1); }
|
|
15142
15143
|
p1 += i1; p2 += i2;
|
|
15143
15144
|
}
|
|
15144
15145
|
}
|
|
@@ -15161,7 +15162,7 @@ ca_monop_atanh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
15161
15162
|
if ( ! *pm ) {
|
|
15162
15163
|
p1 = q1 + k*i1;
|
|
15163
15164
|
p2 = q2 + k*i2;
|
|
15164
|
-
{ (*p2) =
|
|
15165
|
+
{ (*p2) = catanh(*p1); }
|
|
15165
15166
|
}
|
|
15166
15167
|
}
|
|
15167
15168
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -15176,14 +15177,14 @@ ca_monop_atanh_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
15176
15177
|
#pragma omp simd
|
|
15177
15178
|
for (k=0; k<n; k++) {
|
|
15178
15179
|
p1 = q1 + k; p2 = q2 + k;
|
|
15179
|
-
{ (*p2) =
|
|
15180
|
+
{ (*p2) = catanh(*p1); }
|
|
15180
15181
|
}
|
|
15181
15182
|
} else {
|
|
15182
15183
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
15183
15184
|
cmplx128_t *p1 = q1;
|
|
15184
15185
|
cmplx128_t *p2 = q2;
|
|
15185
15186
|
for (k=0; k<n; k++) {
|
|
15186
|
-
{ (*p2) =
|
|
15187
|
+
{ (*p2) = catanh(*p1); }
|
|
15187
15188
|
p1 += i1; p2 += i2;
|
|
15188
15189
|
}
|
|
15189
15190
|
}
|
|
@@ -15312,7 +15313,7 @@ ca_monop_expm1_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
15312
15313
|
if ( ! *pm ) {
|
|
15313
15314
|
p1 = q1 + k*i1;
|
|
15314
15315
|
p2 = q2 + k*i2;
|
|
15315
|
-
{ (*p2) =
|
|
15316
|
+
{ (*p2) = expm1f(*p1); }
|
|
15316
15317
|
}
|
|
15317
15318
|
}
|
|
15318
15319
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -15327,14 +15328,14 @@ ca_monop_expm1_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
15327
15328
|
#pragma omp simd
|
|
15328
15329
|
for (k=0; k<n; k++) {
|
|
15329
15330
|
p1 = q1 + k; p2 = q2 + k;
|
|
15330
|
-
{ (*p2) =
|
|
15331
|
+
{ (*p2) = expm1f(*p1); }
|
|
15331
15332
|
}
|
|
15332
15333
|
} else {
|
|
15333
15334
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
15334
15335
|
float *p1 = q1;
|
|
15335
15336
|
float *p2 = q2;
|
|
15336
15337
|
for (k=0; k<n; k++) {
|
|
15337
|
-
{ (*p2) =
|
|
15338
|
+
{ (*p2) = expm1f(*p1); }
|
|
15338
15339
|
p1 += i1; p2 += i2;
|
|
15339
15340
|
}
|
|
15340
15341
|
}
|
|
@@ -15508,7 +15509,7 @@ ca_monop_log1p_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
15508
15509
|
if ( ! *pm ) {
|
|
15509
15510
|
p1 = q1 + k*i1;
|
|
15510
15511
|
p2 = q2 + k*i2;
|
|
15511
|
-
{ (*p2) =
|
|
15512
|
+
{ (*p2) = log1pf(*p1); }
|
|
15512
15513
|
}
|
|
15513
15514
|
}
|
|
15514
15515
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -15523,14 +15524,14 @@ ca_monop_log1p_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
15523
15524
|
#pragma omp simd
|
|
15524
15525
|
for (k=0; k<n; k++) {
|
|
15525
15526
|
p1 = q1 + k; p2 = q2 + k;
|
|
15526
|
-
{ (*p2) =
|
|
15527
|
+
{ (*p2) = log1pf(*p1); }
|
|
15527
15528
|
}
|
|
15528
15529
|
} else {
|
|
15529
15530
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
15530
15531
|
float *p1 = q1;
|
|
15531
15532
|
float *p2 = q2;
|
|
15532
15533
|
for (k=0; k<n; k++) {
|
|
15533
|
-
{ (*p2) =
|
|
15534
|
+
{ (*p2) = log1pf(*p1); }
|
|
15534
15535
|
p1 += i1; p2 += i2;
|
|
15535
15536
|
}
|
|
15536
15537
|
}
|
|
@@ -15704,7 +15705,7 @@ ca_monop_rsqrt_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
15704
15705
|
if ( ! *pm ) {
|
|
15705
15706
|
p1 = q1 + k*i1;
|
|
15706
15707
|
p2 = q2 + k*i2;
|
|
15707
|
-
{ (*p2) = 1.0 /
|
|
15708
|
+
{ (*p2) = ((float)1.0) / sqrtf(*p1); }
|
|
15708
15709
|
}
|
|
15709
15710
|
}
|
|
15710
15711
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -15719,14 +15720,14 @@ ca_monop_rsqrt_float32_t (ca_size_t n, boolean8_t *m,
|
|
|
15719
15720
|
#pragma omp simd
|
|
15720
15721
|
for (k=0; k<n; k++) {
|
|
15721
15722
|
p1 = q1 + k; p2 = q2 + k;
|
|
15722
|
-
{ (*p2) = 1.0 /
|
|
15723
|
+
{ (*p2) = ((float)1.0) / sqrtf(*p1); }
|
|
15723
15724
|
}
|
|
15724
15725
|
} else {
|
|
15725
15726
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
15726
15727
|
float *p1 = q1;
|
|
15727
15728
|
float *p2 = q2;
|
|
15728
15729
|
for (k=0; k<n; k++) {
|
|
15729
|
-
{ (*p2) = 1.0 /
|
|
15730
|
+
{ (*p2) = ((float)1.0) / sqrtf(*p1); }
|
|
15730
15731
|
p1 += i1; p2 += i2;
|
|
15731
15732
|
}
|
|
15732
15733
|
}
|
|
@@ -15749,7 +15750,7 @@ ca_monop_rsqrt_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
15749
15750
|
if ( ! *pm ) {
|
|
15750
15751
|
p1 = q1 + k*i1;
|
|
15751
15752
|
p2 = q2 + k*i2;
|
|
15752
|
-
{ (*p2) = 1.0 / sqrt(*p1); }
|
|
15753
|
+
{ (*p2) = ((double)1.0) / sqrt(*p1); }
|
|
15753
15754
|
}
|
|
15754
15755
|
}
|
|
15755
15756
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -15764,14 +15765,14 @@ ca_monop_rsqrt_float64_t (ca_size_t n, boolean8_t *m,
|
|
|
15764
15765
|
#pragma omp simd
|
|
15765
15766
|
for (k=0; k<n; k++) {
|
|
15766
15767
|
p1 = q1 + k; p2 = q2 + k;
|
|
15767
|
-
{ (*p2) = 1.0 / sqrt(*p1); }
|
|
15768
|
+
{ (*p2) = ((double)1.0) / sqrt(*p1); }
|
|
15768
15769
|
}
|
|
15769
15770
|
} else {
|
|
15770
15771
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
15771
15772
|
double *p1 = q1;
|
|
15772
15773
|
double *p2 = q2;
|
|
15773
15774
|
for (k=0; k<n; k++) {
|
|
15774
|
-
{ (*p2) = 1.0 / sqrt(*p1); }
|
|
15775
|
+
{ (*p2) = ((double)1.0) / sqrt(*p1); }
|
|
15775
15776
|
p1 += i1; p2 += i2;
|
|
15776
15777
|
}
|
|
15777
15778
|
}
|
|
@@ -15794,7 +15795,7 @@ ca_monop_rsqrt_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
15794
15795
|
if ( ! *pm ) {
|
|
15795
15796
|
p1 = q1 + k*i1;
|
|
15796
15797
|
p2 = q2 + k*i2;
|
|
15797
|
-
{ (*p2) = 1.0 /
|
|
15798
|
+
{ (*p2) = ((float)1.0) / csqrtf(*p1); }
|
|
15798
15799
|
}
|
|
15799
15800
|
}
|
|
15800
15801
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -15809,14 +15810,14 @@ ca_monop_rsqrt_cmplx64_t (ca_size_t n, boolean8_t *m,
|
|
|
15809
15810
|
#pragma omp simd
|
|
15810
15811
|
for (k=0; k<n; k++) {
|
|
15811
15812
|
p1 = q1 + k; p2 = q2 + k;
|
|
15812
|
-
{ (*p2) = 1.0 /
|
|
15813
|
+
{ (*p2) = ((float)1.0) / csqrtf(*p1); }
|
|
15813
15814
|
}
|
|
15814
15815
|
} else {
|
|
15815
15816
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
15816
15817
|
cmplx64_t *p1 = q1;
|
|
15817
15818
|
cmplx64_t *p2 = q2;
|
|
15818
15819
|
for (k=0; k<n; k++) {
|
|
15819
|
-
{ (*p2) = 1.0 /
|
|
15820
|
+
{ (*p2) = ((float)1.0) / csqrtf(*p1); }
|
|
15820
15821
|
p1 += i1; p2 += i2;
|
|
15821
15822
|
}
|
|
15822
15823
|
}
|
|
@@ -15839,7 +15840,7 @@ ca_monop_rsqrt_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
15839
15840
|
if ( ! *pm ) {
|
|
15840
15841
|
p1 = q1 + k*i1;
|
|
15841
15842
|
p2 = q2 + k*i2;
|
|
15842
|
-
{ (*p2) = 1.0 / csqrt(*p1); }
|
|
15843
|
+
{ (*p2) = ((double)1.0) / csqrt(*p1); }
|
|
15843
15844
|
}
|
|
15844
15845
|
}
|
|
15845
15846
|
} else if ( i1 == 1 && i2 == 1 ) {
|
|
@@ -15854,14 +15855,14 @@ ca_monop_rsqrt_cmplx128_t (ca_size_t n, boolean8_t *m,
|
|
|
15854
15855
|
#pragma omp simd
|
|
15855
15856
|
for (k=0; k<n; k++) {
|
|
15856
15857
|
p1 = q1 + k; p2 = q2 + k;
|
|
15857
|
-
{ (*p2) = 1.0 / csqrt(*p1); }
|
|
15858
|
+
{ (*p2) = ((double)1.0) / csqrt(*p1); }
|
|
15858
15859
|
}
|
|
15859
15860
|
} else {
|
|
15860
15861
|
/* strided branch: numo-shape `p += s` increment form. */
|
|
15861
15862
|
cmplx128_t *p1 = q1;
|
|
15862
15863
|
cmplx128_t *p2 = q2;
|
|
15863
15864
|
for (k=0; k<n; k++) {
|
|
15864
|
-
{ (*p2) = 1.0 / csqrt(*p1); }
|
|
15865
|
+
{ (*p2) = ((double)1.0) / csqrt(*p1); }
|
|
15865
15866
|
p1 += i1; p2 += i2;
|
|
15866
15867
|
}
|
|
15867
15868
|
}
|
|
@@ -18228,9 +18229,6 @@ Init_carray_kernels_monop (void)
|
|
|
18228
18229
|
rb_define_method(rb_cCArray, "exp", rb_ca_exp, 0);
|
|
18229
18230
|
rb_define_method(rb_cCArray, "exp!", rb_ca_exp_bang, 0);
|
|
18230
18231
|
rb_define_module_function(rb_mCAMath, "exp", rb_cmath_exp, 1);
|
|
18231
|
-
rb_define_method(rb_cCArray, "log", rb_ca_log, 0);
|
|
18232
|
-
rb_define_method(rb_cCArray, "log!", rb_ca_log_bang, 0);
|
|
18233
|
-
rb_define_module_function(rb_mCAMath, "log", rb_cmath_log, 1);
|
|
18234
18232
|
rb_define_method(rb_cCArray, "sin", rb_ca_sin, 0);
|
|
18235
18233
|
rb_define_method(rb_cCArray, "sin!", rb_ca_sin_bang, 0);
|
|
18236
18234
|
rb_define_module_function(rb_mCAMath, "sin", rb_cmath_sin, 1);
|
|
@@ -18249,6 +18247,9 @@ Init_carray_kernels_monop (void)
|
|
|
18249
18247
|
rb_define_method(rb_cCArray, "atan", rb_ca_atan, 0);
|
|
18250
18248
|
rb_define_method(rb_cCArray, "atan!", rb_ca_atan_bang, 0);
|
|
18251
18249
|
rb_define_module_function(rb_mCAMath, "atan", rb_cmath_atan, 1);
|
|
18250
|
+
rb_define_method(rb_cCArray, "log", rb_ca_log, 0);
|
|
18251
|
+
rb_define_method(rb_cCArray, "log!", rb_ca_log_bang, 0);
|
|
18252
|
+
rb_define_module_function(rb_mCAMath, "log", rb_cmath_log, 1);
|
|
18252
18253
|
rb_define_method(rb_cCArray, "exp2", rb_ca_exp2, 0);
|
|
18253
18254
|
rb_define_method(rb_cCArray, "exp2!", rb_ca_exp2_bang, 0);
|
|
18254
18255
|
rb_define_module_function(rb_mCAMath, "exp2", rb_cmath_exp2, 1);
|