SynthMaker

can you help me translate this equation to simd (bitmasking)

Archive · 2006 7 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

spoonboiler ·

hi; i am having a terrible time translating this:

p += dp; if(p < 0.0) { p = -p; dp = -dp; } else if(p > pmax) { p = pmax + pmax - p; dp = -dp; }

i can do a simple if/else, but an if/elseIf is killing me 😆 maybe i'm just tired? but i could sure do with some help. i am also wondering if i would need to do all this twice, because of the two dos inside the curly braces... help? 😀 thanx all.

Shifrin ·

spoonboiler wrote: hi; i am having a terrible time translating this:

You could try :-

float pLT0; float pGTpmax; float pUC;

p = p + dp;

pLT0 = p < 0.0; pGTpmax = p > pmax; pUC = (P >= 0.0)&(p <= pmax);

p = pLT0&(-1*p) + pGTpmax&(pmax + pmax - p) + pUC&p; dp = (pLT0|pGTpmax)&(-1*dp) + pUC&dp;

I couldn't remember if S|M supported syntax like -p so I wrote -1*p 😉

Shif.

[edit]There's probably errors in this LOL, but you get the idea![/edit]

Shifrin ·

Glaring mistake in what I wrote above, I neglected to leave 'p' and 'dp' as they are if neither p < 0.0 or p > pmax are true...

Will attempt to modify it 😉

Shif.

Shifrin ·

Updated, pUC = pUnChanged, the mask to use when neither of the conditions are true.

Shif.

spoonboiler ·

@shif:

thanx, i surely appreciate your assistance. I am still a rank beginner at this stuff, so it is alternatingly making sense, and making no sense at all 😆 i am completely at the mercy of my own curiousity with stuff like this. it drives me crazy, and yet i can't stop trying.

You have helped me. Thanx 🙂

-gabriel

rl ·

BTW: if you need to squeeze out the very last bit of performance, 0-p is faster than -1*p (subps vs. mulps)

Shifrin ·

rl wrote: BTW: if you need to squeeze out the very last bit of performance, 0-p is faster than -1*p (subps vs. mulps)

Nice spot 😉

Shif.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.