Skip to content

Commit

Permalink
refactor(vectors): use codegen for unary vec2/3/4 ops
Browse files Browse the repository at this point in the history
  • Loading branch information
postspectacular committed Sep 28, 2018
1 parent b5ed254 commit 9bee7f8
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 67 deletions.
32 changes: 10 additions & 22 deletions packages/vectors/src/vec2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ import {
vbinop,
vbinopN,
vbinopO,
vbinopON
vbinopON,
vuniop
} from "./codegen";
import { $iter, declareIndices } from "./common";
import {
Expand Down Expand Up @@ -117,33 +118,20 @@ export const subN2o = vbinopON(2, "-");
export const mulN2o = vbinopON(2, "*");
export const divN2o = vbinopON(2, "/");

export const abs2 = vuniop(2, "Math.abs");
export const sign2 = vuniop(2, "Math.sign");
export const floor2 = vuniop(2, "Math.floor");
export const ceil2 = vuniop(2, "Math.ceil");
export const sin2 = vuniop(2, "Math.sin");
export const cos2 = vuniop(2, "Math.cos");
export const sqrt2 = vuniop(2, "Math.sqrt");

export const neg2 = (a: Vec, ia = 0, sa = 1) =>
mulN2(a, -1, ia, sa);

export const abs2 = (a: Vec, ia = 0, sa = 1) =>
op2(Math.abs, a, ia, sa);

export const sign2 = (a: Vec, ia = 0, sa = 1) =>
op2(Math.sign, a, ia, sa);

export const floor2 = (a: Vec, ia = 0, sa = 1) =>
op2(Math.floor, a, ia, sa);

export const ceil2 = (a: Vec, ia = 0, sa = 1) =>
op2(Math.ceil, a, ia, sa);

export const fract2 = (a: Vec, ia = 0, sa = 1) =>
op2(fract1, a, ia, sa);

export const sin2 = (a: Vec, ia = 0, sa = 1) =>
op2(Math.sin, a, ia, sa);

export const cos2 = (a: Vec, ia = 0, sa = 1) =>
op2(Math.cos, a, ia, sa);

export const sqrt2 = (a: Vec, ia = 0, sa = 1) =>
op2(Math.sqrt, a, ia, sa);

export const pow2 = (a: Vec, b: ReadonlyVec, ia = 0, ib = 0, sa = 1, sb = 1) =>
op22(Math.pow, a, b, ia, ib, sa, sb);

Expand Down
33 changes: 10 additions & 23 deletions packages/vectors/src/vec3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ import {
vbinop,
vbinopN,
vbinopO,
vbinopON
vbinopON,
vuniop
} from "./codegen";
import { $iter, declareIndices } from "./common";
import {
Expand All @@ -29,7 +30,6 @@ import {
max3id,
min3id,
mixBilinear1,
sign1,
smoothStep1,
step1
} from "./math";
Expand Down Expand Up @@ -141,33 +141,20 @@ export const subN3o = vbinopON(3, "-");
export const mulN3o = vbinopON(3, "*");
export const divN3o = vbinopON(3, "/");

export const abs3 = vuniop(3, "Math.abs");
export const sign3 = vuniop(3, "Math.sign");
export const floor3 = vuniop(3, "Math.floor");
export const ceil3 = vuniop(3, "Math.ceil");
export const sin3 = vuniop(3, "Math.sin");
export const cos3 = vuniop(3, "Math.cos");
export const sqrt3 = vuniop(3, "Math.sqrt");

export const neg3 = (a: Vec, ia = 0, sa = 1) =>
mulN3(a, -1, ia, sa);

export const abs3 = (a: Vec, ia = 0, sa = 1) =>
op3(Math.abs, a, ia, sa);

export const sign3 = (a: Vec, eps = EPS, ia = 0, sa = 1) =>
op3((x) => sign1(x, eps), a, ia, sa);

export const floor3 = (a: Vec, ia = 0, sa = 1) =>
op3(Math.floor, a, ia, sa);

export const ceil3 = (a: Vec, ia = 0, sa = 1) =>
op3(Math.ceil, a, ia, sa);

export const fract3 = (a: Vec, ia = 0, sa = 1) =>
op3(fract1, a, ia, sa);

export const sin3 = (a: Vec, ia = 0, sa = 1) =>
op3(Math.sin, a, ia, sa);

export const cos3 = (a: Vec, ia = 0, sa = 1) =>
op3(Math.cos, a, ia, sa);

export const sqrt3 = (a: Vec, ia = 0, sa = 1) =>
op3(Math.sqrt, a, ia, sa);

export const pow3 = (a: Vec, b: ReadonlyVec, ia = 0, ib = 0, sa = 1, sb = 1) =>
op32(Math.pow, a, b, ia, ib, sa, sb);

Expand Down
32 changes: 10 additions & 22 deletions packages/vectors/src/vec4.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ import {
vbinop,
vbinopN,
vbinopO,
vbinopON
vbinopON,
vuniop
} from "./codegen";
import { $iter, declareIndices } from "./common";
import {
Expand Down Expand Up @@ -148,33 +149,20 @@ export const subN4o = vbinopON(4, "-");
export const mulN4o = vbinopON(4, "*");
export const divN4o = vbinopON(4, "/");

export const abs4 = vuniop(4, "Math.abs");
export const sign4 = vuniop(4, "Math.sign");
export const floor4 = vuniop(4, "Math.floor");
export const ceil4 = vuniop(4, "Math.ceil");
export const sin4 = vuniop(4, "Math.sin");
export const cos4 = vuniop(4, "Math.cos");
export const sqrt4 = vuniop(4, "Math.sqrt");

export const neg4 = (a: Vec, ia = 0, sa = 1) =>
mulN4(a, -1, ia, sa);

export const abs4 = (a: Vec, ia = 0, sa = 1) =>
op4(Math.abs, a, ia, sa);

export const sign4 = (a: Vec, ia = 0, sa = 1) =>
op4(Math.sign, a, ia, sa);

export const floor4 = (a: Vec, ia = 0, sa = 1) =>
op4(Math.floor, a, ia, sa);

export const ceil4 = (a: Vec, ia = 0, sa = 1) =>
op4(Math.ceil, a, ia, sa);

export const fract4 = (a: Vec, ia = 0, sa = 1) =>
op4(fract1, a, ia, sa);

export const sin4 = (a: Vec, ia = 0, sa = 1) =>
op4(Math.sin, a, ia, sa);

export const cos4 = (a: Vec, ia = 0, sa = 1) =>
op4(Math.cos, a, ia, sa);

export const sqrt4 = (a: Vec, ia = 0, sa = 1) =>
op4(Math.sqrt, a, ia, sa);

export const pow4 = (a: Vec, b: ReadonlyVec, ia = 0, ib = 0, sa = 1, sb = 1) =>
op42(Math.pow, a, b, ia, ib, sa, sb);

Expand Down

0 comments on commit 9bee7f8

Please sign in to comment.