https://libre-riscv.org/simple_v_extension/vector_ops/ A Vector ops subextension to SimpleV is needed which is characterised by either dependence on nonstandard SUBVL and/or inter-element data interactions. (Swizzle also falls into this category)
http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2019-September/002736.html http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2019-September/002733.html Keeping track of former discussions.
Wondering how (whether) to add vec2 cross product and if vec4 cross product exists. Found this: vec2D a, b; ... double z = a.x * b.y - b.x * a.y; return z;
https://stackoverflow.com/questions/10759206/how-to-calculate-vec4-cross-product-with-glm Answer seems to be no on vec4 cross product because it is called wedge product and is 2 planes.
http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2019-October/002956.html Should VLEN and normalise be macro ops or microcode?
(In reply to Luke Kenneth Casson Leighton from comment #2) > Wondering how (whether) to add vec2 cross product and if vec4 cross product > exists. > > Found this: > > vec2D a, b; > ... > double z = a.x * b.y - b.x * a.y; > return z; it *should* be possible to do this by way of the sparse matrix, making it potentially possible to do in more dimensions than just 2/3.
https://libre-soc.org/irclog/%23libre-soc.2023-04-29.log.html#t2023-04-29T22:16:42 should be possible by a Determinant Matrix Schedule to do crossproduct
https://en.m.wikipedia.org/wiki/Cross_product#Conversion_to_matrix_multiplication https://en.m.wikipedia.org/wiki/Determinant