## Quantity System Framework revised

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

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