Oh yup I thought that was the case but wanted to check.

I've started experimenting with ways to achieve this but I am getting
massive amounts of code generated compared to Unitful. I just uploaded
uploaded my work so far at https://GitHub.com/jkroso/units.jl. If anyone
could help explain the difference in code gen that would be great and I'll
try contribute back to Unitful
On Thu, 18 Feb 2016 at 7:02 AM Andrew Keller <[email protected]>
wrote:

> Hi Jake,
>
> I agree with Jeffrey's response mostly, but want to clarify that Unitful
> is not strictly focused on the SI system. You'll see that you can use units
> of acre-feet, very much not an SI unit, which could be useful if you happen
> to manage a water reservoir in the United States, I guess.
>
> If you were instead asking whether or not you could write methods that
> dispatch on the dimensions of a unit, the current answer is no, although
> maybe that could change eventually.
>
> Best,
> Andrew
>
> On Wednesday, February 17, 2016 at 3:25:37 AM UTC-8, Jeffrey Sarnoff wrote:
>>
>> Jake,
>>
>> Julia's type system is well suited to do just that.  Unitful is focused
>> on units in SI system, things like Meters, Kilograms and Joules.
>>
>> One approach to abstract units like size, where size may be relative to
>> the number of pixels on a screen or the width of a page,
>> is define your own type, a kind of size relative to something.  In your
>> example, s is not a unit of measure (strictly speaking);
>> s is a quantity interpreted in terms of some absolute or relative unit of
>> measure -- 5 pixels, 1/4 page.  Because pixels and pages
>> are not always the same number of, say, millimeters, using SI units for
>> that abstraction likely is not what you want.
>>
>> If you want more guidance, please give some more context.
>>
>> On Wednesday, February 17, 2016 at 4:43:13 AM UTC-5, Jake Rosoman wrote:
>>>
>>> Is it possible to talk about abstract types of units like size. e.g
>>> `drawline(s::Size) = ...`?
>>>
>>> On Saturday, February 13, 2016 at 9:23:22 AM UTC+13, Andrew Keller wrote:
>>>>
>>>> I'm happy to share a package I wrote for using physical units in Julia,
>>>> Unitful.jl <https://www.github.com/ajkeller34/Unitful.jl>. Much credit
>>>> and gratitude is due to Keno Fischer for the SIUnits.jl
>>>> <https://www.github.com/keno/SIUnits.jl> package which served as my
>>>> inspiration. This is a work in progress, but I think perhaps a serviceable
>>>> one depending on what you're doing.
>>>>
>>>> Like SIUnits.jl, this package encodes units in the type signature to
>>>> avoid run-time performance penalties. From there, the implementations
>>>> diverge. The package is targeted to Julia 0.5 / master, as there are some
>>>> limitations with how promote_op is used in Julia 0.4 (#13803)
>>>> <https://github.com/JuliaLang/julia/pull/13803>. I decided it wasn't
>>>> worth targeting 0.4 if the behavior would be inconsistent.
>>>>
>>>> Some highlights include:
>>>>
>>>>    - Non-SI units are treated on the same footing as SI units, with
>>>>    only a few exceptions (unit conversion method). Use whatever weird
>>>>    units you want.
>>>>    - Support for units like micron / (meter Kelvin), where some of the
>>>>    units could cancel out but you don't necessarily want them to.
>>>>    - Support for LinSpace and other Range types. Probably there are
>>>>    still some glitches to be found, though.
>>>>    - Support for rational exponents of units.
>>>>    - Some tests (see these for usage examples).
>>>>
>>>> Please see the documentation for a comprehensive discussion, including
>>>> issues / to do list, as well as how to add your own units, etc.
>>>> Comments and feedback are welcome.
>>>>
>>>> Best,
>>>> Andrew Keller
>>>>
>>>

Reply via email to