projects
/
vg.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
183961c
)
add outer product
author
hgn
<hgodden00@gmail.com>
Mon, 22 Jan 2024 17:50:05 +0000
(17:50 +0000)
committer
hgn
<hgodden00@gmail.com>
Mon, 22 Jan 2024 17:50:05 +0000
(17:50 +0000)
vg_m.h
patch
|
blob
|
history
diff --git
a/vg_m.h
b/vg_m.h
index bc2e8a0c3aa392574723b71fa498f0082f78e721..f5ed4051e1bc9620db00b362186fe693cebd4587 100644
(file)
--- a/
vg_m.h
+++ b/
vg_m.h
@@
-884,6
+884,20
@@
static void m3x3_skew_symetric( m3x3f a, v3f v )
a[2][2] = 0.0f;
}
a[2][2] = 0.0f;
}
+/* aka kronecker product */
+static void m3x3_outer_product( m3x3f out_m, v3f a, v3f b )
+{
+ out_m[0][0] = a[0]*b[0];
+ out_m[0][1] = a[0]*b[1];
+ out_m[0][2] = a[0]*b[2];
+ out_m[1][0] = a[1]*b[0];
+ out_m[1][1] = a[1]*b[1];
+ out_m[1][2] = a[1]*b[2];
+ out_m[2][0] = a[2]*b[0];
+ out_m[2][1] = a[2]*b[1];
+ out_m[2][2] = a[2]*b[2];
+}
+
static void m3x3_add( m3x3f a, m3x3f b, m3x3f d )
{
v3_add( a[0], b[0], d[0] );
static void m3x3_add( m3x3f a, m3x3f b, m3x3f d )
{
v3_add( a[0], b[0], d[0] );
@@
-891,6
+905,13
@@
static void m3x3_add( m3x3f a, m3x3f b, m3x3f d )
v3_add( a[2], b[2], d[2] );
}
v3_add( a[2], b[2], d[2] );
}
+static void m3x3_sub( m3x3f a, m3x3f b, m3x3f d )
+{
+ v3_sub( a[0], b[0], d[0] );
+ v3_sub( a[1], b[1], d[1] );
+ v3_sub( a[2], b[2], d[2] );
+}
+
static inline void m3x3_copy( m3x3f a, m3x3f b )
{
v3_copy( a[0], b[0] );
static inline void m3x3_copy( m3x3f a, m3x3f b )
{
v3_copy( a[0], b[0] );
@@
-904,12
+925,12
@@
static inline void m3x3_identity( m3x3f a )
m3x3_copy( id, a );
}
m3x3_copy( id, a );
}
-static void m3x3_diagonal( m3x3f a, f32 v )
+static void m3x3_diagonal( m3x3f
out_
a, f32 v )
{
{
- m3x3_identity( a );
- a[0][0] = v;
- a[1][1] = v;
- a[2][2] = v;
+ m3x3_identity(
out_
a );
+
out_
a[0][0] = v;
+
out_
a[1][1] = v;
+
out_
a[2][2] = v;
}
static void m3x3_setdiagonalv3( m3x3f a, v3f v )
}
static void m3x3_setdiagonalv3( m3x3f a, v3f v )