Git Product home page Git Product logo

Comments (10)

 avatar commented on May 5, 2024

That's most definitely a bug, yes. Are you able to make a pull request?

from mathfu.

TheFakeMontyOnTheRun avatar TheFakeMontyOnTheRun commented on May 5, 2024

Had look at the issue, but could not find where the operator overload is declared. I was expecting something along the lines of:
inline Vector<float, 2>& operator/=(const float &s, const Vector<float, 2>& v)
Am I missing something?

from mathfu.

stewartmiles avatar stewartmiles commented on May 5, 2024

https://github.com/google/mathfu/blob/master/include/mathfu/vector.h#L417
https://github.com/google/mathfu/blob/master/include/mathfu/vector_2.h#L102
https://github.com/google/mathfu/blob/master/include/mathfu/vector_2.h#L118
https://github.com/google/mathfu/blob/master/include/mathfu/vector_2.h#L155

etc.

We have various overloads for each specialized vector e.g vec2, vec3, vec4
etc.

On Tue, Sep 15, 2015 at 10:06 AM, Daniel Monteiro [email protected]
wrote:

Had look at the issue, but could not find where the operator overload is
declared. I was expecting something along the lines of:
inline Vector<float, 2>& operator/=(const float &s, const Vector<float,
2>& v)
Am I missing something?


Reply to this email directly or view it on GitHub
#8 (comment).

from mathfu.

TheFakeMontyOnTheRun avatar TheFakeMontyOnTheRun commented on May 5, 2024

Precisely. By grepping thru the code, all I could find was overloads dealing with Vec2/Vec2 and Vec2/scalar, but not for scalar/Vec2 (which, in effect, would be scalar * Vec2^(-1) ).

Still, by far, the last few days of digging have been quite fascinating.

from mathfu.

stewartmiles avatar stewartmiles commented on May 5, 2024

That will teach me to not read your original message.

Is it possible that you're ending up in
https://github.com/google/mathfu/blob/master/include/mathfu/vector.h#L670
? It looks like that code is wrong since it should only accept a scalar on
the right-hand side of the expression. i.e scalar / vector = undefined
https://en.wikibooks.org/wiki/Fundamentals_of_Physics/Vectors, vector /
scalar = piecewise division of each element in the vector.

What code have you written that is problematic, any chance you could share
a snippet?

On Tue, Sep 15, 2015 at 10:31 AM, Daniel Monteiro [email protected]
wrote:

Precisely. By grepping thru the code, all I could find was overloads
dealing with Vec2/Vec2 and Vec2/scalar, but not for scalar/Vec2 (which, in
effect, would be scalar * Vec2^(-1) ).

Still, by far, the last few days of digging have been quite fascinating.


Reply to this email directly or view it on GitHub
#8 (comment).

from mathfu.

TheFakeMontyOnTheRun avatar TheFakeMontyOnTheRun commented on May 5, 2024

Not really mine. I'm just trying to learn from it.
I was unsure of what 1.0/vec2 would mean until I threw it at Wolfram Alpha ( {2.0, 3.0}^-1 got me {1.0/2.0, 1.0/3.0}). Me and my friends were baffled by his outcome.

By doing this on the generic vector wouldn't it be too expensive to go component-by-component? Maybe this couldn't be more efficiently (at the cost of some repetition) dealt at the more specific vectors? Or maybe it would result in unwanted duplicity of effort?

Or even, does it make sense to have it as a general proposition?

from mathfu.

stewartmiles avatar stewartmiles commented on May 5, 2024

I would really prefer to not have MathFu include operators that aren't well
defined.

We have specialized implementations of scalar divide for each vector type
which use SIMD when it's available. As I mentioned scalar / vector sounds
broken.

On Tue, Sep 15, 2015 at 11:12 AM, Daniel Monteiro [email protected]
wrote:

Not really mine. I'm just trying to learn from it.
I was unsure of what 1.0/vec2 would mean until I threw it at Wolfram Alpha
( {2.0, 3.0}^-1 got me {1.0/2.0, 1.0/3.0}). Me and my friends were baffled
by his outcome.

By doing this on the generic vector wouldn't it be too expensive to go
component-by-component? Maybe this couldn't be more efficiently (at the
cost of some repetition) dealt at the more specific vectors? Or maybe it
would result in unwanted duplicity of effort?

Or even, does it make sense to have it as a general proposition?


Reply to this email directly or view it on GitHub
#8 (comment).

from mathfu.

TheFakeMontyOnTheRun avatar TheFakeMontyOnTheRun commented on May 5, 2024

I agree. Makes a lot more sense

Maybe @batesj can provide us with more details on his use? Maybe we can suggest alternatives? IDK

from mathfu.

batesj avatar batesj commented on May 5, 2024

I would have been happy if my code didn't compile, so feel free to delete the scalar / vector operator.

What I expected was component-wise divide either through implicit construction or directly:
1.0 / vec2 == vec2(1.0) / vec2 == vec2(1.0, 1.0) / vec2

from mathfu.

stewartmiles avatar stewartmiles commented on May 5, 2024

6cb4a10

from mathfu.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.