http://www.codeplex.com/QuantitySystem

although I am not considering a brilliant person

but this is my blog

so I am a smart brilliant guy who can make impossible things done.

and to my next victory about Quantities

Remember when I told you about the Quantity Frame work

the quantity frame work main idea is to help programmer to define the quantity in its context

so

no more double f = 60;

it is

var f = SIUnitSystem.Default<Newton>(60);

and to predict the quantity from the various arithmatic operations

so if

var l = SIUnitSystem.Default<Metre>(10);

var work = f * l; will return an object of work quantity

so far

the situation was good

but the real problem appeared when I was considering the Quantity of Torque

Torque which have the same Dimensions of Work prevented me to include it in the library

and you know that Torque is a very important Quantity

by returning to Wikipedia in the definition of Angle

I discovered that I can define length in terms of two dimensions

Normal Length NL

Radius Length RL

and in MLT System

L will be NL + RL

so Angle is dimensionless value L = NL1 RL-1 =0 and thats correct

but this way I could save it in the library and also can obtain a unique key for it

Torque is F * RL

and when multiply Torque * Angle = F1 RL1 RL-1 NL1 = F1 NL1 which is the dimension of Work correctly

I am very amused to solve this problem

if you had a look before on jscience measure library of treating this problem

you will find that they ignored the Quantity and began with the units approach { that’s what I understand about it }

units approach is not what I want

I wanted to be able to do arithmetic operations and to be able to know the result quantity.

however

please follow the link to my library in .NET framework 3.5

may be I am mad or it may turn to a real something