1 /*
2 	copyright: Steve Dekorte, 2006. All rights reserved.
3 	license: See _BSDLicense.txt.
4 */
5 
6 // set
7 
8 BASEKIT_API void UArray_clear(UArray *self);
9 BASEKIT_API void UArray_setItemsToLong_(UArray *self, long x);
10 BASEKIT_API void UArray_setItemsToDouble_(UArray *self, double x);
11 BASEKIT_API void UArray_rangeFill(UArray *self);
12 BASEKIT_API void UArray_negate(const UArray *self);
13 
14 // basic vector math
15 
16 BASEKIT_API void UArray_add_(UArray *self, const UArray *other);
17 BASEKIT_API void UArray_subtract_(UArray *self, const UArray *other);
18 BASEKIT_API void UArray_multiply_(UArray *self, const UArray *other);
19 BASEKIT_API void UArray_divide_(UArray *self, const UArray *other);
20 BASEKIT_API double UArray_dotProduct_(const UArray *self, const UArray *other);
21 
22 // basic scalar math
23 
24 BASEKIT_API void UArray_addScalarDouble_(UArray *self, double v);
25 BASEKIT_API void UArray_subtractScalarDouble_(UArray *self, double v);
26 BASEKIT_API void UArray_multiplyScalarDouble_(UArray *self, double v);
27 BASEKIT_API void UArray_divideScalarDouble_(UArray *self, double v);
28 BASEKIT_API void UArray_powerScalarDouble_(UArray *self, double v);
29 
30 // bitwise logic
31 
32 BASEKIT_API void UArray_bitwiseOr_(UArray *self, const UArray *other);
33 BASEKIT_API void UArray_bitwiseAnd_(UArray *self, const UArray *other);
34 BASEKIT_API void UArray_bitwiseXor_(UArray *self, const UArray *other);
35 BASEKIT_API void UArray_bitwiseNot(UArray *self);
36 
37 // bitwise ops
38 
39 BASEKIT_API void UArray_setAllBitsTo_(UArray *self, uint8_t aBool);
40 BASEKIT_API uint8_t UArray_byteAt_(UArray *self, size_t i);
41 BASEKIT_API int UArray_bitAt_(UArray *self, size_t i);
42 BASEKIT_API void UArray_setBit_at_(UArray *self, int b, size_t i);
43 BASEKIT_API UArray * UArray_asBits(const UArray *self);
44 BASEKIT_API size_t UArray_bitCount(UArray *self);
45 
46 // boolean logic
47 
48 BASEKIT_API void UArray_logicalOr_(UArray *self, const UArray *other);
49 BASEKIT_API void UArray_logicalAnd_(UArray *self, const UArray *other);
50 
51 // trigonometry
52 
53 BASEKIT_API void UArray_sin(UArray *self);
54 BASEKIT_API void UArray_cos(UArray *self);
55 BASEKIT_API void UArray_tan(UArray *self);
56 
57 BASEKIT_API void UArray_asin(UArray *self);
58 BASEKIT_API void UArray_acos(UArray *self);
59 BASEKIT_API void UArray_atan(UArray *self);
60 
61 //void UArray_atan2(UArray *self, const UArray *other);
62 
63 BASEKIT_API void UArray_sinh(UArray *self);
64 BASEKIT_API void UArray_cosh(UArray *self);
65 BASEKIT_API void UArray_tanh(UArray *self);
66 
67 BASEKIT_API void UArray_exp(UArray *self);
68 BASEKIT_API void UArray_log(UArray *self);
69 BASEKIT_API void UArray_log10(UArray *self);
70 BASEKIT_API void UArray_power_(UArray *self, const UArray *other);
71 
72 BASEKIT_API void UArray_sqrt(UArray *self);
73 BASEKIT_API void UArray_ceil(UArray *self);
74 BASEKIT_API void UArray_floor(UArray *self);
75 BASEKIT_API void UArray_abs(UArray *self);
76 BASEKIT_API void UArray_round(UArray *self);
77 
78 //void UArray_ldexp(UArray *self, const UArray *other);
79 //void UArray_fmod(UArray *self, const UArray *other);
80 
81 BASEKIT_API void UArray_square(UArray *self);
82 BASEKIT_API void UArray_normalize(UArray *self);
83 
84 BASEKIT_API void UArray_crossProduct_(UArray *self, const UArray *other);
85 BASEKIT_API double UArray_distanceTo_(const UArray *self, const UArray *other);
86 
87 // extras
88 
89 BASEKIT_API double UArray_sumAsDouble(const UArray *self);
90 BASEKIT_API double UArray_productAsDouble(const UArray *self);
91 BASEKIT_API double UArray_arithmeticMeanAsDouble(const UArray *self);
92 BASEKIT_API double UArray_arithmeticMeanSquareAsDouble(const UArray *self);
93 BASEKIT_API double UArray_maxAsDouble(const UArray *self);
94 BASEKIT_API double UArray_minAsDouble(const UArray *self);
95 BASEKIT_API void UArray_Max(UArray *self, const UArray *other);
96 BASEKIT_API void UArray_Min(UArray *self, const UArray *other);
97 
98 // hash
99 
100 BASEKIT_API void UArray_changed(UArray *self);
101 BASEKIT_API uintptr_t UArray_calcHash(UArray *self);
102 BASEKIT_API uintptr_t UArray_evenHash(UArray *self);
103 BASEKIT_API uintptr_t UArray_oddHash(UArray *self);
104 #define UArray_hash UArray_evenHash
105 BASEKIT_API int UArray_equalsWithHashCheck_(UArray *self, UArray *other);
106 
107 // indexes
108 
109 BASEKIT_API void UArray_duplicateIndexes(UArray *self);
110 BASEKIT_API void UArray_removeOddIndexes(UArray *self);
111 BASEKIT_API void UArray_removeEvenIndexes(UArray *self);
112 
113 BASEKIT_API void UArray_reverseItemByteOrders(UArray *self);
114 
115 BASEKIT_API void UArray_addEqualsOffsetXScaleYScale(UArray *self, UArray *other, float offset, float xscale, float yscale);
116 
117