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