Git Product home page Git Product logo

Comments (10)

droundy avatar droundy commented on August 22, 2024

Radians should be dimensionless, which is likely to cause trouble with tracking them in terms of units.

from dimensioned.

paholg avatar paholg commented on August 22, 2024

Is there a problem with doing something like this?

make_units! {
    Angles, Unitless, one;
    base {
        Degree, degree, °;
    }
}

Then you have degrees and can use Unitless for radians. Using the SI system with 1 radian = m * m^-1 gives you the same thing for radians.

You can also add on any other units you would like to use.

from dimensioned.

brendanzab avatar brendanzab commented on August 22, 2024

Oh cool. I'll start working on the library now if that's ok.

What does Unitless do?

from dimensioned.

paholg avatar paholg commented on August 22, 2024

It's the type for something with no units. Say you run

make_units! {
    MS, Unitless, one;
    base {
        Meter, m, m;
        Second, s, s;
    }
}

Then you've created the MS type with units Meter and Second. But these are really aliases, where Meter is MS<P1, Z0> and Second is MS<Z0, P1>. Then, Unitless is MS<Z0, Z0> where P1 is the type for the number 1 and ZO is the type for the number 0.

There are some tutorials for using dimensioned here: http://paholg.com/project/dimensioned/

from dimensioned.

brendanzab avatar brendanzab commented on August 22, 2024

@droundy What do you mean by 'Radians should be dimensionless'? Is what I am saying not possible?

from dimensioned.

droundy avatar droundy commented on August 22, 2024

I just mean that radians have no units. It's the name for a dimensionless
quantity. In this sense degrees are analogous to dozens or miles, it's a
kind of a unit for things that are pure numbers, which don't actually have
dimension. This sort of "unit" is tricky, because it is kind of like
units, but doesn't work with the same kind of checking that we can use for
real dimensions.

Of course, if you don't want to actually do math, you can define angle as a
dimension without trouble, and then radians and degrees will both be
dimensions. The problem arises, for instance, when you want to find an
angle from the ratio of an arc length and a radius, or to write use the
first few terms in the Taylor expansion of a trig function. Or if you want
to integrate over the surface of a sphere.

On Wed, Dec 2, 2015, 6:30 PM Brendan Zabarauskas [email protected]
wrote:

@droundy https://github.com/droundy What do you mean by 'Radians should
be dimensionless'? Is what I am saying not possible?


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

from dimensioned.

brendanzab avatar brendanzab commented on August 22, 2024

Hmm. It is really nice for documentation though, and picks up errors nicely if you mess up. Do you think dimensioned is overkill for this then?

from dimensioned.

droundy avatar droundy commented on August 22, 2024

I would find dimensioned to be overkill if all you want is to document that
you are taking degrees as input.

On Wed, Dec 2, 2015 at 7:01 PM Brendan Zabarauskas [email protected]
wrote:

Hmm. It is really nice for documentation though, and picks up errors
nicely if you mess up. Do you think dimensioned is overkill for this then?


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

from dimensioned.

paholg avatar paholg commented on August 22, 2024

I am going to consider this closed. Feel free to re-open it if you have further questions, @bjz.

from dimensioned.

brendanzab avatar brendanzab commented on August 22, 2024

👍

from dimensioned.

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.