Skip to content

Vector math extension #2658

@ldci

Description

@ldci

Good job for new vector maths.
But
x: make vector! [1 2 3 4]
y: make vector! [2 3 4 5]
x + y
Script error: cannot use add: on #(vector!) value
May be such a function?

opsOnVectors: function [
	v1		[vector!]
	v2		[vector!]
	type 	[word!] ; char integer decimal
	bitSize	[integer!]
	op		[word!]
][
	case  [
		type = 'char 	[v: make vector! compose [integer! (bitSize) (v1/length)]]
		type = 'integer [v: make vector! compose [integer! (bitSize) (v1/length)]]
		type = 'decimal [v: make vector! compose [decimal! (bitSize) (v1/length)]]
	]
	case [
		op = '+ 	[repeat i v1/length [v/:i: v1/:i + v2/:I]]
		op = '- 	[repeat i v1/length [v/:i: v1/:i - v2/:I]]
		op = '* 	[repeat i v1/length [v/:i: v1/:i * v2/:I]]
		op = '/ 	[repeat i v1/length [v/:i: v1/:i / v2/:I]]
		op = '% 	[repeat i v1/length [v/:i: v1/:i % v2/:I]]
		op = 'and [repeat i v1/length [v/:i: v1/:i and v2/:I]]	
		op = 'or	[repeat i v1/length [v/:i: v1/:i or v2/:I]]
		op = 'xor	[repeat i v1/length [v/:i: v1/:i xor v2/:I]]
		op = '>>	[repeat i v1/length [v/:i: v1/:i >> v2/:I]]
		op = '<<	[repeat i v1/length [v/:i: v1/:i << v2/:I]]
	]
	v
]

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions