42 lines
748 B
C
42 lines
748 B
C
/*
|
|
Vectorial
|
|
Copyright (c) 2010 Mikko Lehtonen
|
|
Licensed under the terms of the two-clause BSD License (see LICENSE)
|
|
*/
|
|
#ifndef VECTORIAL_SIMD4X4F_SCALAR_H
|
|
#define VECTORIAL_SIMD4X4F_SCALAR_H
|
|
|
|
|
|
vectorial_inline void simd4x4f_transpose_inplace(simd4x4f *s) {
|
|
simd4x4f d=*s;
|
|
s->x.x = d.x.x;
|
|
s->x.y = d.y.x;
|
|
s->x.z = d.z.x;
|
|
s->x.w = d.w.x;
|
|
|
|
s->y.x = d.x.y;
|
|
s->y.y = d.y.y;
|
|
s->y.z = d.z.y;
|
|
s->y.w = d.w.y;
|
|
|
|
s->z.x = d.x.z;
|
|
s->z.y = d.y.z;
|
|
s->z.z = d.z.z;
|
|
s->z.w = d.w.z;
|
|
|
|
s->w.x = d.x.w;
|
|
s->w.y = d.y.w;
|
|
s->w.z = d.z.w;
|
|
s->w.w = d.w.w;
|
|
|
|
}
|
|
|
|
vectorial_inline void simd4x4f_transpose(const simd4x4f *s, simd4x4f *out) {
|
|
*out=*s;
|
|
simd4x4f_transpose_inplace(out);
|
|
}
|
|
|
|
|
|
|
|
#endif
|