Project Ne10
An Open Optimized Software Library Project for the ARM Architecture
NE10_init_math.c
1 /*
2  * Copyright 2011-15 ARM Limited and Contributors.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * * Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * * Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * * Neither the name of ARM Limited nor the
13  * names of its contributors may be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY ARM LIMITED AND CONTRIBUTORS "AS IS" AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  * DISCLAIMED. IN NO EVENT SHALL ARM LIMITED AND CONTRIBUTORS BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 #include <stdio.h>
29 
30 #include "NE10_math.h"
31 
32 ne10_result_t ne10_init_math (int is_NEON_available)
33 {
34  if (NE10_OK == is_NEON_available)
35  {
36  ne10_addc_float = ne10_addc_float_neon;
37  ne10_addc_vec2f = ne10_addc_vec2f_neon;
38  ne10_addc_vec3f = ne10_addc_vec3f_neon;
39  ne10_addc_vec4f = ne10_addc_vec4f_neon;
40  ne10_subc_float = ne10_subc_float_neon;
41  ne10_subc_vec2f = ne10_subc_vec2f_neon;
42  ne10_subc_vec3f = ne10_subc_vec3f_neon;
43  ne10_subc_vec4f = ne10_subc_vec4f_neon;
44  ne10_rsbc_float = ne10_rsbc_float_neon;
45  ne10_rsbc_vec2f = ne10_rsbc_vec2f_neon;
46  ne10_rsbc_vec3f = ne10_rsbc_vec3f_neon;
47  ne10_rsbc_vec4f = ne10_rsbc_vec4f_neon;
48  ne10_mulc_float = ne10_mulc_float_neon;
49  ne10_mulc_vec2f = ne10_mulc_vec2f_neon;
50  ne10_mulc_vec3f = ne10_mulc_vec3f_neon;
51  ne10_mulc_vec4f = ne10_mulc_vec4f_neon;
52  ne10_divc_float = ne10_divc_float_neon;
53  ne10_divc_vec2f = ne10_divc_vec2f_neon;
54  ne10_divc_vec3f = ne10_divc_vec3f_neon;
55  ne10_divc_vec4f = ne10_divc_vec4f_neon;
56  ne10_setc_float = ne10_setc_float_neon;
57  ne10_setc_vec2f = ne10_setc_vec2f_neon;
58  ne10_setc_vec3f = ne10_setc_vec3f_neon;
59  ne10_setc_vec4f = ne10_setc_vec4f_neon;
60  ne10_mlac_float = ne10_mlac_float_neon;
61  ne10_mlac_vec2f = ne10_mlac_vec2f_neon;
62  ne10_mlac_vec3f = ne10_mlac_vec3f_neon;
63  ne10_mlac_vec4f = ne10_mlac_vec4f_neon;
64  ne10_add_float = ne10_add_float_neon;
65  ne10_sub_float = ne10_sub_float_neon;
66  ne10_mul_float = ne10_mul_float_neon;
67  ne10_div_float = ne10_div_float_neon;
68  ne10_mla_float = ne10_mla_float_neon;
69  ne10_abs_float = ne10_abs_float_neon;
70  ne10_len_vec2f = ne10_len_vec2f_neon;
71  ne10_len_vec3f = ne10_len_vec3f_neon;
72  ne10_len_vec4f = ne10_len_vec4f_neon;
73  ne10_normalize_vec2f = ne10_normalize_vec2f_neon;
74  ne10_normalize_vec3f = ne10_normalize_vec3f_neon;
75  ne10_normalize_vec4f = ne10_normalize_vec4f_neon;
76 
77  ne10_abs_vec2f = ne10_abs_vec2f_neon;
78  ne10_abs_vec3f = ne10_abs_vec3f_neon;
79  ne10_abs_vec4f = ne10_abs_vec4f_neon;
80  ne10_vmul_vec2f = ne10_vmul_vec2f_neon;
81  ne10_vmul_vec3f = ne10_vmul_vec3f_neon;
82  ne10_vmul_vec4f = ne10_vmul_vec4f_neon;
83  ne10_vdiv_vec2f = ne10_vdiv_vec2f_neon;
84  ne10_vdiv_vec3f = ne10_vdiv_vec3f_neon;
85  ne10_vdiv_vec4f = ne10_vdiv_vec4f_neon;
86  ne10_vmla_vec2f = ne10_vmla_vec2f_neon;
87  ne10_vmla_vec3f = ne10_vmla_vec3f_neon;
88  ne10_vmla_vec4f = ne10_vmla_vec4f_neon;
89  ne10_add_vec2f = ne10_add_vec2f_neon;
90  ne10_add_vec3f = ne10_add_vec3f_neon;
91  ne10_add_vec4f = ne10_add_vec4f_neon;
92  ne10_sub_vec2f = ne10_sub_vec2f_neon;
93  ne10_sub_vec3f = ne10_sub_vec3f_neon;
94  ne10_sub_vec4f = ne10_sub_vec4f_neon;
95  ne10_dot_vec2f = ne10_dot_vec2f_neon;
96  ne10_dot_vec3f = ne10_dot_vec3f_neon;
97  ne10_dot_vec4f = ne10_dot_vec4f_neon;
98  ne10_cross_vec3f = ne10_cross_vec3f_neon;
99 
100  ne10_addmat_2x2f = ne10_addmat_2x2f_neon;
101  ne10_addmat_3x3f = ne10_addmat_3x3f_neon;
102  ne10_addmat_4x4f = ne10_addmat_4x4f_neon;
103  ne10_submat_2x2f = ne10_submat_2x2f_neon;
104  ne10_submat_3x3f = ne10_submat_3x3f_neon;
105  ne10_submat_4x4f = ne10_submat_4x4f_neon;
106  ne10_mulmat_2x2f = ne10_mulmat_2x2f_neon;
107  ne10_mulmat_3x3f = ne10_mulmat_3x3f_neon;
108  ne10_mulmat_4x4f = ne10_mulmat_4x4f_neon;
109  ne10_mulcmatvec_cm2x2f_v2f = ne10_mulcmatvec_cm2x2f_v2f_neon;
110  ne10_mulcmatvec_cm3x3f_v3f = ne10_mulcmatvec_cm3x3f_v3f_neon;
111  ne10_mulcmatvec_cm4x4f_v4f = ne10_mulcmatvec_cm4x4f_v4f_neon;
112  ne10_detmat_2x2f = ne10_detmat_2x2f_neon;
113  ne10_detmat_3x3f = ne10_detmat_3x3f_neon;
114  ne10_detmat_4x4f = ne10_detmat_4x4f_neon;
115  ne10_invmat_2x2f = ne10_invmat_2x2f_neon;
116  ne10_invmat_3x3f = ne10_invmat_3x3f_neon;
117  ne10_invmat_4x4f = ne10_invmat_4x4f_neon;
118  ne10_transmat_4x4f = ne10_transmat_4x4f_neon;
119  ne10_identitymat_4x4f = ne10_identitymat_4x4f_neon;
120  ne10_transmat_3x3f = ne10_transmat_3x3f_neon;
121  ne10_identitymat_3x3f = ne10_identitymat_3x3f_neon;
122  ne10_transmat_2x2f = ne10_transmat_2x2f_neon;
123  ne10_identitymat_2x2f = ne10_identitymat_2x2f_neon;
124  }
125  else
126  {
127  ne10_addc_float = ne10_addc_float_c;
128  ne10_addc_vec2f = ne10_addc_vec2f_c;
129  ne10_addc_vec3f = ne10_addc_vec3f_c;
130  ne10_addc_vec4f = ne10_addc_vec4f_c;
131  ne10_subc_float = ne10_subc_float_c;
132  ne10_subc_vec2f = ne10_subc_vec2f_c;
133  ne10_subc_vec3f = ne10_subc_vec3f_c;
134  ne10_subc_vec4f = ne10_subc_vec4f_c;
135  ne10_rsbc_float = ne10_rsbc_float_c;
136  ne10_rsbc_vec2f = ne10_rsbc_vec2f_c;
137  ne10_rsbc_vec3f = ne10_rsbc_vec3f_c;
138  ne10_rsbc_vec4f = ne10_rsbc_vec4f_c;
139  ne10_mulc_float = ne10_mulc_float_c;
140  ne10_mulc_vec2f = ne10_mulc_vec2f_c;
141  ne10_mulc_vec3f = ne10_mulc_vec3f_c;
142  ne10_mulc_vec4f = ne10_mulc_vec4f_c;
143  ne10_divc_float = ne10_divc_float_c;
144  ne10_divc_vec2f = ne10_divc_vec2f_c;
145  ne10_divc_vec3f = ne10_divc_vec3f_c;
146  ne10_divc_vec4f = ne10_divc_vec4f_c;
147  ne10_setc_float = ne10_setc_float_c;
148  ne10_setc_vec2f = ne10_setc_vec2f_c;
149  ne10_setc_vec3f = ne10_setc_vec3f_c;
150  ne10_setc_vec4f = ne10_setc_vec4f_c;
151  ne10_mlac_float = ne10_mlac_float_c;
152  ne10_mlac_vec2f = ne10_mlac_vec2f_c;
153  ne10_mlac_vec3f = ne10_mlac_vec3f_c;
154  ne10_mlac_vec4f = ne10_mlac_vec4f_c;
155  ne10_add_float = ne10_add_float_c;
156  ne10_sub_float = ne10_sub_float_c;
157  ne10_mul_float = ne10_mul_float_c;
158  ne10_div_float = ne10_div_float_c;
159  ne10_mla_float = ne10_mla_float_c;
160  ne10_abs_float = ne10_abs_float_c;
161  ne10_len_vec2f = ne10_len_vec2f_c;
162  ne10_len_vec3f = ne10_len_vec3f_c;
163  ne10_len_vec4f = ne10_len_vec4f_c;
164  ne10_normalize_vec2f = ne10_normalize_vec2f_c;
165  ne10_normalize_vec3f = ne10_normalize_vec3f_c;
166  ne10_normalize_vec4f = ne10_normalize_vec4f_c;
167 
168  ne10_abs_vec2f = ne10_abs_vec2f_c;
169  ne10_abs_vec3f = ne10_abs_vec3f_c;
170  ne10_abs_vec4f = ne10_abs_vec4f_c;
171  ne10_vmul_vec2f = ne10_vmul_vec2f_c;
172  ne10_vmul_vec3f = ne10_vmul_vec3f_c;
173  ne10_vmul_vec4f = ne10_vmul_vec4f_c;
174  ne10_vdiv_vec2f = ne10_vdiv_vec2f_c;
175  ne10_vdiv_vec3f = ne10_vdiv_vec3f_c;
176  ne10_vdiv_vec4f = ne10_vdiv_vec4f_c;
177  ne10_vmla_vec2f = ne10_vmla_vec2f_c;
178  ne10_vmla_vec3f = ne10_vmla_vec3f_c;
179  ne10_vmla_vec4f = ne10_vmla_vec4f_c;
180  ne10_add_vec2f = ne10_add_vec2f_c;
181  ne10_add_vec3f = ne10_add_vec3f_c;
182  ne10_add_vec4f = ne10_add_vec4f_c;
183  ne10_sub_vec2f = ne10_sub_vec2f_c;
184  ne10_sub_vec3f = ne10_sub_vec3f_c;
185  ne10_sub_vec4f = ne10_sub_vec4f_c;
186  ne10_dot_vec2f = ne10_dot_vec2f_c;
187  ne10_dot_vec3f = ne10_dot_vec3f_c;
188  ne10_dot_vec4f = ne10_dot_vec4f_c;
189  ne10_cross_vec3f = ne10_cross_vec3f_c;
190 
191  ne10_addmat_2x2f = ne10_addmat_2x2f_c;
192  ne10_addmat_3x3f = ne10_addmat_3x3f_c;
193  ne10_addmat_4x4f = ne10_addmat_4x4f_c;
194  ne10_submat_2x2f = ne10_submat_2x2f_c;
195  ne10_submat_3x3f = ne10_submat_3x3f_c;
196  ne10_submat_4x4f = ne10_submat_4x4f_c;
197  ne10_mulmat_2x2f = ne10_mulmat_2x2f_c;
198  ne10_mulmat_3x3f = ne10_mulmat_3x3f_c;
199  ne10_mulmat_4x4f = ne10_mulmat_4x4f_c;
200  ne10_mulcmatvec_cm2x2f_v2f = ne10_mulcmatvec_cm2x2f_v2f_c;
201  ne10_mulcmatvec_cm3x3f_v3f = ne10_mulcmatvec_cm3x3f_v3f_c;
202  ne10_mulcmatvec_cm4x4f_v4f = ne10_mulcmatvec_cm4x4f_v4f_c;
203  ne10_detmat_2x2f = ne10_detmat_2x2f_c;
204  ne10_detmat_3x3f = ne10_detmat_3x3f_c;
205  ne10_detmat_4x4f = ne10_detmat_4x4f_c;
206  ne10_invmat_2x2f = ne10_invmat_2x2f_c;
207  ne10_invmat_3x3f = ne10_invmat_3x3f_c;
208  ne10_invmat_4x4f = ne10_invmat_4x4f_c;
209  ne10_transmat_4x4f = ne10_transmat_4x4f_c;
210  ne10_identitymat_4x4f = ne10_identitymat_4x4f_c;
211  ne10_transmat_3x3f = ne10_transmat_3x3f_c;
212  ne10_identitymat_3x3f = ne10_identitymat_3x3f_c;
213  ne10_transmat_2x2f = ne10_transmat_2x2f_c;
214  ne10_identitymat_2x2f = ne10_identitymat_2x2f_c;
215  }
216  return NE10_OK;
217 }
218 
219 // These are actual definitions of our function pointers that are declared in inc/NE10_types.h
220 ne10_result_t (*ne10_addc_float) (ne10_float32_t * dst, ne10_float32_t * src, const ne10_float32_t cst, ne10_uint32_t count);
221 ne10_result_t (*ne10_addc_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src, const ne10_vec2f_t * cst, ne10_uint32_t count);
222 ne10_result_t (*ne10_addc_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src, const ne10_vec3f_t * cst, ne10_uint32_t count);
223 ne10_result_t (*ne10_addc_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src, const ne10_vec4f_t * cst, ne10_uint32_t count);
224 ne10_result_t (*ne10_subc_float) (ne10_float32_t * dst, ne10_float32_t * src, const ne10_float32_t cst, ne10_uint32_t count);
225 ne10_result_t (*ne10_subc_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src, const ne10_vec2f_t * cst, ne10_uint32_t count);
226 ne10_result_t (*ne10_subc_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src, const ne10_vec3f_t * cst, ne10_uint32_t count);
227 ne10_result_t (*ne10_subc_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src, const ne10_vec4f_t * cst, ne10_uint32_t count);
228 ne10_result_t (*ne10_rsbc_float) (ne10_float32_t * dst, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count);
229 ne10_result_t (*ne10_rsbc_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src, const ne10_vec2f_t * cst, ne10_uint32_t count);
230 ne10_result_t (*ne10_rsbc_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src, const ne10_vec3f_t * cst, ne10_uint32_t count);
231 ne10_result_t (*ne10_rsbc_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src, const ne10_vec4f_t * cst, ne10_uint32_t count);
232 ne10_result_t (*ne10_mulc_float) (ne10_float32_t * dst, ne10_float32_t * src, const ne10_float32_t cst, ne10_uint32_t count);
233 ne10_result_t (*ne10_mulc_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src, const ne10_vec2f_t * cst, ne10_uint32_t count);
234 ne10_result_t (*ne10_mulc_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src, const ne10_vec3f_t * cst, ne10_uint32_t count);
235 ne10_result_t (*ne10_mulc_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src, const ne10_vec4f_t * cst, ne10_uint32_t count);
236 ne10_result_t (*ne10_divc_float) (ne10_float32_t * dst, ne10_float32_t * src, const ne10_float32_t cst, ne10_uint32_t count);
237 ne10_result_t (*ne10_divc_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src, const ne10_vec2f_t * cst, ne10_uint32_t count);
238 ne10_result_t (*ne10_divc_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src, const ne10_vec3f_t * cst, ne10_uint32_t count);
239 ne10_result_t (*ne10_divc_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src, const ne10_vec4f_t * cst, ne10_uint32_t count);
240 ne10_result_t (*ne10_setc_float) (ne10_float32_t * dst, const ne10_float32_t cst, ne10_uint32_t count);
241 ne10_result_t (*ne10_setc_vec2f) (ne10_vec2f_t * dst, const ne10_vec2f_t * cst, ne10_uint32_t count);
242 ne10_result_t (*ne10_setc_vec3f) (ne10_vec3f_t * dst, const ne10_vec3f_t * cst, ne10_uint32_t count);
243 ne10_result_t (*ne10_setc_vec4f) (ne10_vec4f_t * dst, const ne10_vec4f_t * cst, ne10_uint32_t count);
244 ne10_result_t (*ne10_mlac_float) (ne10_float32_t * dst, ne10_float32_t * acc, ne10_float32_t * src, const ne10_float32_t cst, ne10_uint32_t count);
245 ne10_result_t (*ne10_mlac_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * acc, ne10_vec2f_t * src, const ne10_vec2f_t * cst, ne10_uint32_t count);
246 ne10_result_t (*ne10_mlac_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * acc, ne10_vec3f_t * src, const ne10_vec3f_t * cst, ne10_uint32_t count);
247 ne10_result_t (*ne10_mlac_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * acc, ne10_vec4f_t * src, const ne10_vec4f_t * cst, ne10_uint32_t count);
248 ne10_result_t (*ne10_add_float) (ne10_float32_t * dst, ne10_float32_t * src1, ne10_float32_t * src2, ne10_uint32_t count);
249 ne10_result_t (*ne10_sub_float) (ne10_float32_t * dst, ne10_float32_t * src1, ne10_float32_t * src2, ne10_uint32_t count);
250 ne10_result_t (*ne10_mul_float) (ne10_float32_t * dst, ne10_float32_t * src1, ne10_float32_t * src2, ne10_uint32_t count);
251 ne10_result_t (*ne10_div_float) (ne10_float32_t * dst, ne10_float32_t * src1, ne10_float32_t * src2, ne10_uint32_t count);
252 ne10_result_t (*ne10_mla_float) (ne10_float32_t * dst, ne10_float32_t * acc, ne10_float32_t * src1, ne10_float32_t * src2, ne10_uint32_t count);
253 ne10_result_t (*ne10_abs_float) (ne10_float32_t * dst, ne10_float32_t * src, ne10_uint32_t count);
254 ne10_result_t (*ne10_len_vec2f) (ne10_float32_t * dst, ne10_vec2f_t * src, ne10_uint32_t count);
255 ne10_result_t (*ne10_len_vec3f) (ne10_float32_t * dst, ne10_vec3f_t * src, ne10_uint32_t count);
256 ne10_result_t (*ne10_len_vec4f) (ne10_float32_t * dst, ne10_vec4f_t * src, ne10_uint32_t count);
257 ne10_result_t (*ne10_normalize_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src, ne10_uint32_t count);
258 ne10_result_t (*ne10_normalize_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src, ne10_uint32_t count);
259 ne10_result_t (*ne10_normalize_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src, ne10_uint32_t count);
260 
261 ne10_result_t (*ne10_abs_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src, ne10_uint32_t count);
262 ne10_result_t (*ne10_abs_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src, ne10_uint32_t count);
263 ne10_result_t (*ne10_abs_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src, ne10_uint32_t count);
264 ne10_result_t (*ne10_vmul_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src1, ne10_vec2f_t * src2, ne10_uint32_t count);
265 ne10_result_t (*ne10_vmul_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src1, ne10_vec3f_t * src2, ne10_uint32_t count);
266 ne10_result_t (*ne10_vmul_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src1, ne10_vec4f_t * src2, ne10_uint32_t count);
267 ne10_result_t (*ne10_vdiv_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src1, ne10_vec2f_t * src2, ne10_uint32_t count);
268 ne10_result_t (*ne10_vdiv_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src1, ne10_vec3f_t * src2, ne10_uint32_t count);
269 ne10_result_t (*ne10_vdiv_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src1, ne10_vec4f_t * src2, ne10_uint32_t count);
270 ne10_result_t (*ne10_vmla_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * acc, ne10_vec2f_t * src1, ne10_vec2f_t * src2, ne10_uint32_t count);
271 ne10_result_t (*ne10_vmla_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * acc, ne10_vec3f_t * src1, ne10_vec3f_t * src2, ne10_uint32_t count);
272 ne10_result_t (*ne10_vmla_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * acc, ne10_vec4f_t * src1, ne10_vec4f_t * src2, ne10_uint32_t count);
273 ne10_result_t (*ne10_add_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src1, ne10_vec2f_t * src2, ne10_uint32_t count);
274 ne10_result_t (*ne10_add_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src1, ne10_vec3f_t * src2, ne10_uint32_t count);
275 ne10_result_t (*ne10_add_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src1, ne10_vec4f_t * src2, ne10_uint32_t count);
276 ne10_result_t (*ne10_sub_vec2f) (ne10_vec2f_t * dst, ne10_vec2f_t * src1, ne10_vec2f_t * src2, ne10_uint32_t count);
277 ne10_result_t (*ne10_sub_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src1, ne10_vec3f_t * src2, ne10_uint32_t count);
278 ne10_result_t (*ne10_sub_vec4f) (ne10_vec4f_t * dst, ne10_vec4f_t * src1, ne10_vec4f_t * src2, ne10_uint32_t count);
279 ne10_result_t (*ne10_dot_vec2f) (ne10_float32_t * dst, ne10_vec2f_t * src1, ne10_vec2f_t * src2, ne10_uint32_t count);
280 ne10_result_t (*ne10_dot_vec3f) (ne10_float32_t * dst, ne10_vec3f_t * src1, ne10_vec3f_t * src2, ne10_uint32_t count);
281 ne10_result_t (*ne10_dot_vec4f) (ne10_float32_t * dst, ne10_vec4f_t * src1, ne10_vec4f_t * src2, ne10_uint32_t count);
282 ne10_result_t (*ne10_cross_vec3f) (ne10_vec3f_t * dst, ne10_vec3f_t * src1, ne10_vec3f_t * src2, ne10_uint32_t count);
283 
284 ne10_result_t (*ne10_addmat_2x2f) (ne10_mat2x2f_t * dst, ne10_mat2x2f_t * src1, ne10_mat2x2f_t * src2, ne10_uint32_t count);
285 ne10_result_t (*ne10_addmat_3x3f) (ne10_mat3x3f_t * dst, ne10_mat3x3f_t * src1, ne10_mat3x3f_t * src2, ne10_uint32_t count);
286 ne10_result_t (*ne10_addmat_4x4f) (ne10_mat4x4f_t * dst, ne10_mat4x4f_t * src1, ne10_mat4x4f_t * src2, ne10_uint32_t count);
287 ne10_result_t (*ne10_submat_2x2f) (ne10_mat2x2f_t * dst, ne10_mat2x2f_t * src1, ne10_mat2x2f_t * src2, ne10_uint32_t count);
288 ne10_result_t (*ne10_submat_3x3f) (ne10_mat3x3f_t * dst, ne10_mat3x3f_t * src1, ne10_mat3x3f_t * src2, ne10_uint32_t count);
289 ne10_result_t (*ne10_submat_4x4f) (ne10_mat4x4f_t * dst, ne10_mat4x4f_t * src1, ne10_mat4x4f_t * src2, ne10_uint32_t count);
290 ne10_result_t (*ne10_mulmat_2x2f) (ne10_mat2x2f_t * dst, ne10_mat2x2f_t * src1, ne10_mat2x2f_t * src2, ne10_uint32_t count);
291 ne10_result_t (*ne10_mulmat_3x3f) (ne10_mat3x3f_t * dst, ne10_mat3x3f_t * src1, ne10_mat3x3f_t * src2, ne10_uint32_t count);
292 ne10_result_t (*ne10_mulmat_4x4f) (ne10_mat4x4f_t * dst, ne10_mat4x4f_t * src1, ne10_mat4x4f_t * src2, ne10_uint32_t count);
293 ne10_result_t (*ne10_mulcmatvec_cm4x4f_v4f) (ne10_vec4f_t * dst, const ne10_mat4x4f_t * cst, ne10_vec4f_t * src, ne10_uint32_t count);
294 ne10_result_t (*ne10_mulcmatvec_cm3x3f_v3f) (ne10_vec3f_t * dst, const ne10_mat3x3f_t * cst, ne10_vec3f_t * src, ne10_uint32_t count);
295 ne10_result_t (*ne10_mulcmatvec_cm2x2f_v2f) (ne10_vec2f_t * dst, const ne10_mat2x2f_t * cst, ne10_vec2f_t * src, ne10_uint32_t count);
296 ne10_result_t (*ne10_detmat_4x4f) (ne10_float32_t * dst, ne10_mat4x4f_t * src, ne10_uint32_t count);
297 ne10_result_t (*ne10_detmat_3x3f) (ne10_float32_t * dst, ne10_mat3x3f_t * src, ne10_uint32_t count);
298 ne10_result_t (*ne10_detmat_2x2f) (ne10_float32_t * dst, ne10_mat2x2f_t * src, ne10_uint32_t count);
299 ne10_result_t (*ne10_invmat_4x4f) (ne10_mat4x4f_t * dst, ne10_mat4x4f_t * src, ne10_uint32_t count);
300 ne10_result_t (*ne10_invmat_3x3f) (ne10_mat3x3f_t * dst, ne10_mat3x3f_t * src, ne10_uint32_t count);
301 ne10_result_t (*ne10_invmat_2x2f) (ne10_mat2x2f_t * dst, ne10_mat2x2f_t * src, ne10_uint32_t count);
302 ne10_result_t (*ne10_transmat_4x4f) (ne10_mat4x4f_t * dst, ne10_mat4x4f_t * src, ne10_uint32_t count);
303 ne10_result_t (*ne10_identitymat_4x4f) (ne10_mat4x4f_t * dst, ne10_uint32_t count);
304 ne10_result_t (*ne10_transmat_3x3f) (ne10_mat3x3f_t * dst, ne10_mat3x3f_t * src, ne10_uint32_t count);
305 ne10_result_t (*ne10_identitymat_3x3f) (ne10_mat3x3f_t * dst, ne10_uint32_t count);
306 ne10_result_t (*ne10_transmat_2x2f) (ne10_mat2x2f_t * dst, ne10_mat2x2f_t * src, ne10_uint32_t count);
307 ne10_result_t (*ne10_identitymat_2x2f) (ne10_mat2x2f_t * dst, ne10_uint32_t count);
ne10_rsbc_float
ne10_result_t(* ne10_rsbc_float)(ne10_float32_t *dst, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
Subtracts the elements of an input array from a constant scalar and stores the results in an output a...
Definition: NE10_init_math.c:228
ne10_add_vec3f
ne10_result_t(* ne10_add_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
Vector addition of two 3D vectors.
Definition: NE10_init_math.c:274
ne10_len_vec2f
ne10_result_t(* ne10_len_vec2f)(ne10_float32_t *dst, ne10_vec2f_t *src, ne10_uint32_t count)
Returns length of 2D vectors in corresponding elements of the output array.
Definition: NE10_init_math.c:254
ne10_setc_vec3f
ne10_result_t(* ne10_setc_vec3f)(ne10_vec3f_t *dst, const ne10_vec3f_t *cst, ne10_uint32_t count)
Sets the components of 3D vectors in an input array to the components of a constant 3D vector and sto...
Definition: NE10_init_math.c:242
ne10_mul_float
ne10_result_t(* ne10_mul_float)(ne10_float32_t *dst, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count)
Multiplies the elements of src1 by the elements of src2 and stores the results in the dst.
Definition: NE10_init_math.c:250
ne10_transmat_3x3f
ne10_result_t(* ne10_transmat_3x3f)(ne10_mat3x3f_t *dst, ne10_mat3x3f_t *src, ne10_uint32_t count)
Calculate the transpose matrix of a 4x4 matrix.
Definition: NE10_init_math.c:304
ne10_add_vec4f
ne10_result_t(* ne10_add_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)
Vector addition of two 4D vectors.
Definition: NE10_init_math.c:275
ne10_dot_vec4f
ne10_result_t(* ne10_dot_vec4f)(ne10_float32_t *dst, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)
Dot product of two 4D vectors.
Definition: NE10_init_math.c:281
ne10_addmat_2x2f
ne10_result_t(* ne10_addmat_2x2f)(ne10_mat2x2f_t *dst, ne10_mat2x2f_t *src1, ne10_mat2x2f_t *src2, ne10_uint32_t count)
Vector addition of two 2x2 matrixs.
Definition: NE10_init_math.c:284
ne10_sub_vec4f
ne10_result_t(* ne10_sub_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)
Vector subtraction of two 4D vectors.
Definition: NE10_init_math.c:278
ne10_mulc_vec4f
ne10_result_t(* ne10_mulc_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
Multiplies the components of 4D vectors in an input array by the components of a constant 4D vector a...
Definition: NE10_init_math.c:235
ne10_normalize_vec3f
ne10_result_t(* ne10_normalize_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src, ne10_uint32_t count)
Normalizes 3D vectors of the input array and stores them in the corresponding elements of the output ...
Definition: NE10_init_math.c:258
ne10_vmla_vec3f
ne10_result_t(* ne10_vmla_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
Performs a multiply and accumulate operation on the components of a 3D vector with the corresponding ...
Definition: NE10_init_math.c:271
ne10_add_float
ne10_result_t(* ne10_add_float)(ne10_float32_t *dst, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count)
Adds the elements of src1 to the elements of src2 and stores the results in the dst.
Definition: NE10_init_math.c:248
ne10_rsbc_vec2f
ne10_result_t(* ne10_rsbc_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
Subtracts the vectors in an input array from a constant 2D vector and stores the results in an output...
Definition: NE10_init_math.c:229
ne10_len_vec3f
ne10_result_t(* ne10_len_vec3f)(ne10_float32_t *dst, ne10_vec3f_t *src, ne10_uint32_t count)
Returns length of 3D vectors in corresponding elements of the output array.
Definition: NE10_init_math.c:255
ne10_mlac_vec2f
ne10_result_t(* ne10_mlac_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
Multiplies each entry in the source array (src) by the 2D vector cst, then adds the result to the cor...
Definition: NE10_init_math.c:245
ne10_subc_vec4f
ne10_result_t(* ne10_subc_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
Subtracts a constant 4D vector from all of the vectors in an input array and stores the results in an...
Definition: NE10_init_math.c:227
ne10_normalize_vec2f
ne10_result_t(* ne10_normalize_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src, ne10_uint32_t count)
Normalizes 2D vectors of the input array and stores them in the corresponding elements of the output ...
Definition: NE10_init_math.c:257
ne10_invmat_4x4f
ne10_result_t(* ne10_invmat_4x4f)(ne10_mat4x4f_t *dst, ne10_mat4x4f_t *src, ne10_uint32_t count)
Calculate the invertible matrix of a 4x4 matrix.
Definition: NE10_init_math.c:299
ne10_mulmat_2x2f
ne10_result_t(* ne10_mulmat_2x2f)(ne10_mat2x2f_t *dst, ne10_mat2x2f_t *src1, ne10_mat2x2f_t *src2, ne10_uint32_t count)
Matrix multiplication of two 2x2 matrixs.
Definition: NE10_init_math.c:290
ne10_addc_vec4f
ne10_result_t(* ne10_addc_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
Adds a constant 4D vector to all of the vectors in an input array and stores the results in an output...
Definition: NE10_init_math.c:223
ne10_dot_vec3f
ne10_result_t(* ne10_dot_vec3f)(ne10_float32_t *dst, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
Dot product of two 3D vectors.
Definition: NE10_init_math.c:280
ne10_transmat_2x2f
ne10_result_t(* ne10_transmat_2x2f)(ne10_mat2x2f_t *dst, ne10_mat2x2f_t *src, ne10_uint32_t count)
Calculate the transpose matrix of a 3x3 matrix.
Definition: NE10_init_math.c:306
ne10_mlac_vec4f
ne10_result_t(* ne10_mlac_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
Multiplies each entry in the source array (src) by the 4D vector cst, then adds the result to the cor...
Definition: NE10_init_math.c:247
ne10_mulmat_4x4f
ne10_result_t(* ne10_mulmat_4x4f)(ne10_mat4x4f_t *dst, ne10_mat4x4f_t *src1, ne10_mat4x4f_t *src2, ne10_uint32_t count)
Matrix multiplication of two 4x4 matrixs.
Definition: NE10_init_math.c:292
ne10_subc_vec2f
ne10_result_t(* ne10_subc_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
Subtracts a constant 2D vector from all of the vectors in an input array and stores the results in an...
Definition: NE10_init_math.c:225
ne10_cross_vec3f
ne10_result_t(* ne10_cross_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
Performs a cross product operation on the two input vectors.
Definition: NE10_init_math.c:282
ne10_submat_2x2f
ne10_result_t(* ne10_submat_2x2f)(ne10_mat2x2f_t *dst, ne10_mat2x2f_t *src1, ne10_mat2x2f_t *src2, ne10_uint32_t count)
Matrix subtraction of two 2x2 matrixs.
Definition: NE10_init_math.c:287
ne10_sub_float
ne10_result_t(* ne10_sub_float)(ne10_float32_t *dst, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count)
Subtracts the elements of src2 from the elements of src1 and stores the results in the dst.
Definition: NE10_init_math.c:249
ne10_addc_vec3f
ne10_result_t(* ne10_addc_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
Adds a constant 3D vector to all of the vectors in an input array and stores the results in an output...
Definition: NE10_init_math.c:222
ne10_abs_vec4f
ne10_result_t(* ne10_abs_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src, ne10_uint32_t count)
Generates a 4D vector from the absolute values of each of the components of an input vector.
Definition: NE10_init_math.c:263
ne10_sub_vec3f
ne10_result_t(* ne10_sub_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
Vector subtraction of two 3D vectors.
Definition: NE10_init_math.c:277
ne10_detmat_2x2f
ne10_result_t(* ne10_detmat_2x2f)(ne10_float32_t *dst, ne10_mat2x2f_t *src, ne10_uint32_t count)
Calculate the determinant of a 2x2 matrix.
Definition: NE10_init_math.c:298
ne10_submat_3x3f
ne10_result_t(* ne10_submat_3x3f)(ne10_mat3x3f_t *dst, ne10_mat3x3f_t *src1, ne10_mat3x3f_t *src2, ne10_uint32_t count)
Matrix subtraction of two 3x3 matrixs.
Definition: NE10_init_math.c:288
ne10_mulc_vec2f
ne10_result_t(* ne10_mulc_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
Multiplies the components of 2D vectors in an input array by the components of a constant 2D vector a...
Definition: NE10_init_math.c:233
ne10_divc_float
ne10_result_t(* ne10_divc_float)(ne10_float32_t *dst, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
Divides the elements of an input array by a constant scalar and stores the results in an output array...
Definition: NE10_init_math.c:236
ne10_detmat_3x3f
ne10_result_t(* ne10_detmat_3x3f)(ne10_float32_t *dst, ne10_mat3x3f_t *src, ne10_uint32_t count)
Calculate the determinant of a 3x3 matrix.
Definition: NE10_init_math.c:297
ne10_add_vec2f
ne10_result_t(* ne10_add_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)
Vector addition of two 2D vectors.
Definition: NE10_init_math.c:273
ne10_abs_vec3f
ne10_result_t(* ne10_abs_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src, ne10_uint32_t count)
Generates a 3D vector from the absolute values of each of the components of an input vector.
Definition: NE10_init_math.c:262
ne10_vec3f_t
a 3-tuple of ne10_float32_t values.
Definition: NE10_types.h:96
ne10_mulcmatvec_cm3x3f_v3f
ne10_result_t(* ne10_mulcmatvec_cm3x3f_v3f)(ne10_vec3f_t *dst, const ne10_mat3x3f_t *cst, ne10_vec3f_t *src, ne10_uint32_t count)
Matrix multiplication of 3x3 matrix and 3D vector.
Definition: NE10_init_math.c:294
ne10_vmla_vec2f
ne10_result_t(* ne10_vmla_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)
Performs a multiply and accumulate operation on the components of a 2D vector with the corresponding ...
Definition: NE10_init_math.c:270
ne10_subc_vec3f
ne10_result_t(* ne10_subc_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
Subtracts a constant 3D vector from all of the vectors in an input array and stores the results in an...
Definition: NE10_init_math.c:226
ne10_mlac_vec3f
ne10_result_t(* ne10_mlac_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
Multiplies each entry in the source array (src) by the 3D vector cst, then adds the result to the cor...
Definition: NE10_init_math.c:246
ne10_sub_vec2f
ne10_result_t(* ne10_sub_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)
Vector subtraction of two 2D vectors.
Definition: NE10_init_math.c:276
ne10_addmat_3x3f
ne10_result_t(* ne10_addmat_3x3f)(ne10_mat3x3f_t *dst, ne10_mat3x3f_t *src1, ne10_mat3x3f_t *src2, ne10_uint32_t count)
Vector addition of two 3x3 matrixs.
Definition: NE10_init_math.c:285
ne10_div_float
ne10_result_t(* ne10_div_float)(ne10_float32_t *dst, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count)
Divides the elements of src1 by the elements of src2 and stores the results in the dst.
Definition: NE10_init_math.c:251
ne10_setc_vec4f
ne10_result_t(* ne10_setc_vec4f)(ne10_vec4f_t *dst, const ne10_vec4f_t *cst, ne10_uint32_t count)
Sets the components of 4D vectors in an input array to the components of a constant 3D vector and sto...
Definition: NE10_init_math.c:243
ne10_normalize_vec4f
ne10_result_t(* ne10_normalize_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src, ne10_uint32_t count)
Normalizes 4D vectors of the input array and stores them in the corresponding elements of the output ...
Definition: NE10_init_math.c:259
ne10_identitymat_2x2f
ne10_result_t(* ne10_identitymat_2x2f)(ne10_mat2x2f_t *dst, ne10_uint32_t count)
Set the identity matrix of a 2x2 matrix.
Definition: NE10_init_math.c:307
ne10_rsbc_vec4f
ne10_result_t(* ne10_rsbc_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
Subtracts the vectors in an input array from a constant 4D vector and stores the results in an output...
Definition: NE10_init_math.c:231
ne10_dot_vec2f
ne10_result_t(* ne10_dot_vec2f)(ne10_float32_t *dst, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)
Dot product of two 2D vectors.
Definition: NE10_init_math.c:279
ne10_mla_float
ne10_result_t(* ne10_mla_float)(ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count)
Performs a multiply and accumulate operation using the corresponding elements in acc,...
Definition: NE10_init_math.c:252
ne10_invmat_2x2f
ne10_result_t(* ne10_invmat_2x2f)(ne10_mat2x2f_t *dst, ne10_mat2x2f_t *src, ne10_uint32_t count)
Calculate the invertible matrix of a 2x2 matrix.
Definition: NE10_init_math.c:301
ne10_vmul_vec3f
ne10_result_t(* ne10_vmul_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
Multiplies the components of a 3D vector with the corresponding components of another.
Definition: NE10_init_math.c:265
ne10_divc_vec2f
ne10_result_t(* ne10_divc_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
Divides the components of 2D vectors in an input array with the components of a constant 2D vector an...
Definition: NE10_init_math.c:237
ne10_mulc_vec3f
ne10_result_t(* ne10_mulc_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
Multiplies the components of 3D vectors in an input array by the components of a constant 3D vector a...
Definition: NE10_init_math.c:234
ne10_identitymat_4x4f
ne10_result_t(* ne10_identitymat_4x4f)(ne10_mat4x4f_t *dst, ne10_uint32_t count)
Set the identity matrix of a 2x2 matrix.
Definition: NE10_init_math.c:303
ne10_addc_vec2f
ne10_result_t(* ne10_addc_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
Adds a constant 2D vector to all of the vectors in an input array and stores the results in an output...
Definition: NE10_init_math.c:221
ne10_mlac_float
ne10_result_t(* ne10_mlac_float)(ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
Multiplies each entry in the source array (src) by cst, then adds the result to the corresponding ite...
Definition: NE10_init_math.c:244
ne10_addc_float
ne10_result_t(* ne10_addc_float)(ne10_float32_t *dst, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
Adds a constant scalar value to all the elements of an input array and stores the results in an outpu...
Definition: NE10_init_math.c:220
ne10_addmat_4x4f
ne10_result_t(* ne10_addmat_4x4f)(ne10_mat4x4f_t *dst, ne10_mat4x4f_t *src1, ne10_mat4x4f_t *src2, ne10_uint32_t count)
Vector addition of two 4x4 matrixs.
Definition: NE10_init_math.c:286
ne10_abs_vec2f
ne10_result_t(* ne10_abs_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src, ne10_uint32_t count)
Generates a 2D vector from the absolute values of each of the components of an input vector.
Definition: NE10_init_math.c:261
ne10_vmla_vec4f
ne10_result_t(* ne10_vmla_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)
Performs a multiply and accumulate operation on the components of a 4D vector with the corresponding ...
Definition: NE10_init_math.c:272
ne10_len_vec4f
ne10_result_t(* ne10_len_vec4f)(ne10_float32_t *dst, ne10_vec4f_t *src, ne10_uint32_t count)
Returns length of 4D vectors in corresponding elements of the output array.
Definition: NE10_init_math.c:256
ne10_mulcmatvec_cm2x2f_v2f
ne10_result_t(* ne10_mulcmatvec_cm2x2f_v2f)(ne10_vec2f_t *dst, const ne10_mat2x2f_t *cst, ne10_vec2f_t *src, ne10_uint32_t count)
Matrix multiplication of 2x2 matrix and 2D vector.
Definition: NE10_init_math.c:295
ne10_submat_4x4f
ne10_result_t(* ne10_submat_4x4f)(ne10_mat4x4f_t *dst, ne10_mat4x4f_t *src1, ne10_mat4x4f_t *src2, ne10_uint32_t count)
Matrix subtraction of two 4x4 matrixs.
Definition: NE10_init_math.c:289
ne10_vmul_vec2f
ne10_result_t(* ne10_vmul_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)
Multiplies the components of a 2D vector with the corresponding components of another.
Definition: NE10_init_math.c:264
ne10_mulcmatvec_cm4x4f_v4f
ne10_result_t(* ne10_mulcmatvec_cm4x4f_v4f)(ne10_vec4f_t *dst, const ne10_mat4x4f_t *cst, ne10_vec4f_t *src, ne10_uint32_t count)
Matrix multiplication of 4x4 matrix and 4D vector.
Definition: NE10_init_math.c:293
ne10_vec4f_t
a 4-tuple of ne10_float32_t values.
Definition: NE10_types.h:106
ne10_vmul_vec4f
ne10_result_t(* ne10_vmul_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)
Multiplies the components of a 4D vector with the corresponding components of another.
Definition: NE10_init_math.c:266
ne10_divc_vec4f
ne10_result_t(* ne10_divc_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
Divides the components of 4D vectors in an input array with the components of a constant 4D vector an...
Definition: NE10_init_math.c:239
ne10_setc_float
ne10_result_t(* ne10_setc_float)(ne10_float32_t *dst, const ne10_float32_t cst, ne10_uint32_t count)
Sets the elements of an input array to a constant scalar and stores the results in an output array.
Definition: NE10_init_math.c:240
ne10_vdiv_vec3f
ne10_result_t(* ne10_vdiv_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
Divides the components of a 3D vector with the corresponding components of another.
Definition: NE10_init_math.c:268
ne10_mulmat_3x3f
ne10_result_t(* ne10_mulmat_3x3f)(ne10_mat3x3f_t *dst, ne10_mat3x3f_t *src1, ne10_mat3x3f_t *src2, ne10_uint32_t count)
Matrix multiplication of two 3x3 matrixs.
Definition: NE10_init_math.c:291
ne10_identitymat_3x3f
ne10_result_t(* ne10_identitymat_3x3f)(ne10_mat3x3f_t *dst, ne10_uint32_t count)
Set the identity matrix of a 3x3 matrix.
Definition: NE10_init_math.c:305
ne10_transmat_4x4f
ne10_result_t(* ne10_transmat_4x4f)(ne10_mat4x4f_t *dst, ne10_mat4x4f_t *src, ne10_uint32_t count)
Calculate the transpose matrix of a 4x4 matrix.
Definition: NE10_init_math.c:302
ne10_invmat_3x3f
ne10_result_t(* ne10_invmat_3x3f)(ne10_mat3x3f_t *dst, ne10_mat3x3f_t *src, ne10_uint32_t count)
Calculate the invertible matrix of a 3x3 matrix.
Definition: NE10_init_math.c:300
ne10_setc_vec2f
ne10_result_t(* ne10_setc_vec2f)(ne10_vec2f_t *dst, const ne10_vec2f_t *cst, ne10_uint32_t count)
Sets the components of 2D vectors in an input array to the components of a constant 2D vector and sto...
Definition: NE10_init_math.c:241
ne10_mulc_float
ne10_result_t(* ne10_mulc_float)(ne10_float32_t *dst, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
Multiplies the elements of an input array by a constant scalar and stores the results in an output ar...
Definition: NE10_init_math.c:232
ne10_subc_float
ne10_result_t(* ne10_subc_float)(ne10_float32_t *dst, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
Subtracts a constant scalar from all the elements of an input array and stores the results in an outp...
Definition: NE10_init_math.c:224
ne10_detmat_4x4f
ne10_result_t(* ne10_detmat_4x4f)(ne10_float32_t *dst, ne10_mat4x4f_t *src, ne10_uint32_t count)
Calculate the determinant of a 4x4 matrix.
Definition: NE10_init_math.c:296
ne10_vdiv_vec4f
ne10_result_t(* ne10_vdiv_vec4f)(ne10_vec4f_t *dst, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)
Divides the components of a 4D vector with the corresponding components of another.
Definition: NE10_init_math.c:269
ne10_vdiv_vec2f
ne10_result_t(* ne10_vdiv_vec2f)(ne10_vec2f_t *dst, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)
Divides the components of a 2D vector with the corresponding components of another.
Definition: NE10_init_math.c:267
ne10_rsbc_vec3f
ne10_result_t(* ne10_rsbc_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
Subtracts the vectors in an input array from a constant 3D vector and stores the results in an output...
Definition: NE10_init_math.c:230
ne10_vec2f_t
a 2-tuple of ne10_float32_t values.
Definition: NE10_types.h:87
ne10_abs_float
ne10_result_t(* ne10_abs_float)(ne10_float32_t *dst, ne10_float32_t *src, ne10_uint32_t count)
Calculates the absolute value of each element in the source array and stores the result in the corres...
Definition: NE10_init_math.c:253
ne10_divc_vec3f
ne10_result_t(* ne10_divc_vec3f)(ne10_vec3f_t *dst, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
Divides the components of 3D vectors in an input array with the components of a constant 3D vector an...
Definition: NE10_init_math.c:238