Project Ne10
An open, optimized software library for the ARM architecture.
Main Page
Related Pages
Modules
Classes
Files
Examples
File List
File Members
modules
math
NE10_cross.c
Go to the documentation of this file.
1
/*
2
* Copyright 2011-16 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
/*
29
* NE10 Library : math/NE10_cross.c
30
*/
31
32
#include "
NE10_types.h
"
33
#include "
macros.h
"
34
35
#include <assert.h>
36
37
ne10_result_t
ne10_cross_vec3f_c
(
ne10_vec3f_t
* dst,
ne10_vec3f_t
* src1,
ne10_vec3f_t
* src2,
ne10_uint32_t
count)
38
{
39
NE10_CHECKPOINTER_DstSrc1Src2
;
40
for
(
unsigned
int
itr = 0; itr < count; itr++ )
41
{
42
dst[ itr ].
x
= (src1[ itr ].
y
* src2[ itr ].
z
) - (src1[ itr ].z * src2[ itr ].y);
43
dst[ itr ].
y
= (src1[ itr ].
z
* src2[ itr ].
x
) - (src1[ itr ].x * src2[ itr ].z);
44
dst[ itr ].
z
= (src1[ itr ].
x
* src2[ itr ].
y
) - (src1[ itr ].y * src2[ itr ].x);
45
}
46
return
NE10_OK
;
47
}
ne10_cross_vec3f_c
ne10_result_t ne10_cross_vec3f_c(ne10_vec3f_t *dst, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
Specific implementation of ne10_cross_vec3f using plain C code.
Definition:
NE10_cross.c:37
ne10_uint32_t
uint32_t ne10_uint32_t
Definition:
NE10_types.h:77
macros.h
ne10_vec3f_t::x
ne10_float32_t x
Definition:
NE10_types.h:98
ne10_vec3f_t
A 3-tuple of ne10_float32_t values.
Definition:
NE10_types.h:96
ne10_vec3f_t::z
ne10_float32_t z
Definition:
NE10_types.h:100
ne10_vec3f_t::y
ne10_float32_t y
Definition:
NE10_types.h:99
NE10_OK
#define NE10_OK
Definition:
NE10_types.h:65
NE10_CHECKPOINTER_DstSrc1Src2
#define NE10_CHECKPOINTER_DstSrc1Src2
Definition:
factor.h:94
NE10_types.h
ne10_result_t
int ne10_result_t
Definition:
NE10_types.h:82
Generated on Fri Jun 30 2017 10:50:54 for Project Ne10 by
1.8.11