digitalmars.D - Runtime unit lib
- BCS (11/11) Feb 21 2006 I have put together a runtime unit type library. While I was writing the...
- Thomas Kuehne (21/30) Feb 22 2006 -----BEGIN PGP SIGNED MESSAGE-----
- BCS (10/37) Feb 22 2006 5280'
- Thomas Kuehne (14/19) Feb 22 2006 -----BEGIN PGP SIGNED MESSAGE-----
- BCS (39/76) Feb 22 2006 WOW!! Thanks! That is impressive. If I may ask, how did you make that? S...
- Thomas Kuehne (93/98) Feb 23 2006 -----BEGIN PGP SIGNED MESSAGE-----
- BCS (7/35) Feb 23 2006 Sweet!!! That's about what I was expecting. Thanks!!
- Thomas Kuehne (40/44) Feb 23 2006 -----BEGIN PGP SIGNED MESSAGE-----
- Charles (7/18) Feb 22 2006 This looks sweet.
- BCS (2/25) Feb 22 2006
- Chris Lajoie (6/19) Feb 24 2006 While I'm sure your units code will be great as part of phobos, I'm
- BCS (4/16) Feb 27 2006 I found a while ago that one of the contributers to another (internet wi...
I have put together a runtime unit type library. While I was writing the unittest I recognized that the most likely error is an error in the convention table (something that can't be checked by the person who wrote that part). Therefor, Would someone please (without looking at my table of conversion factors) finish writing the unittest for the lib? It shouldn't be hard, just get the file and a units conversion table and add some more lines like those around line 644. here it is: http://www.webpages.uidaho.edu/~shro8822/unit_.d ps: I am submitting this for inclusion in Phobos.
Feb 21 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS schrieb am 2006-02-22:I have put together a runtime unit type library. While I was writing the unittest I recognized that the most likely error is an error in the convention table (something that can't be checked by the person who wrote that part). Therefor, Would someone please (without looking at my table of conversion factors) finish writing the unittest for the lib? It shouldn't be hard, just get the file and a units conversion table and add some more lines like those around line 644. here it is: http://www.webpages.uidaho.edu/~shro8822/unit_.dAcre US or international ? Cal international table calorie, thermochemical calorie or ... ? Hp metric, us or ... horsepower? Leter -> Liter? mile, inch british, natic, imperial or ... ? R Rankine, Reaumur or ... ? Fahrenheit and lot's of metric units seem to be missing. Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFD/Fgg3w+/yD4P9tIRAmcCAJ0cOnVal+PXaZcCag5MjU1b44Cn8wCguKDf qx9/Ra66opwQBsv3kNVs74s= =UwGB -----END PGP SIGNATURE-----
Feb 22 2006
In article <0q1uc3-rb3.ln1 birke.kuehne.cn>, Thomas Kuehne says...-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS schrieb am 2006-02-22:oopsI have put together a runtime unit type library. While I was writing the unittest I recognized that the most likely error is an error in the convention table (something that can't be checked by the person who wrote that part). Therefor, Would someone please (without looking at my table of conversion factors) finish writing the unittest for the lib? It shouldn't be hard, just get the file and a units conversion table and add some more lines like those around line 644. here it is: http://www.webpages.uidaho.edu/~shro8822/unit_.dAcre US or international ? Cal international table calorie, thermochemical calorie or ... ? Hp metric, us or ... horsepower? Leter -> Liter?mile, inch british, natic, imperial or ... ?5280'R Rankine, Reaumur or ... ?RankineFahrenheit and lot's of metric units seem to be missing.Fahrenheit has an offset so... I didn't put in units like PSI that are named by there definition. I put in all of the units that my table had that looked useful (who besides the GB DMV needs stones?) More units can be added later. non metric units are US (I think). ver 2 fothcoming, several things will change a bit.
Feb 22 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS schrieb am 2006-02-22:In article <0q1uc3-rb3.ln1 birke.kuehne.cn>, Thomas Kuehne says...[snip][snip]mile, inch british, natic, imperial or ... ?5280'non metric units are US (I think).Except for inch, all conversions seem to be correct. Could you please send me your email - the basic conversion unittest is rather large for posting (ca. 647K). Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFD/NoA3w+/yD4P9tIRAgr+AKCEHKUcwpu+m2FvmOQlWJowjYMCgwCfZQR8 IFJFE9kXLfgLQSWrHSvOdrI= =kJBv -----END PGP SIGNATURE-----
Feb 22 2006
WOW!! Thanks! That is impressive. If I may ask, how did you make that? Some sort of script I assume? I ask because the Phobos source en-total is 1MB and 647k is kinda large. Can you think of any way to cut down the code size using a data table of some kind? e.g. enum Types {Foot, Inch, Pound, ...) real[Types.max][Types.max] test_values; test_values[Types.Foot][Types.Foot] = 1; // real value is convrtion test_values[Types.Foot][Types.Inch] = 12; test_values[Types.Foot][Types.Pound] = real.nan; //nan on no convertion ... Unit u; real v; foreach(int from, real[] ra; test_values) foreach(int to, real r; test_values) { switch(from) { case Type.Foot: u = Foot(1); break; case Type.Inch: u = Inch(1); break; case Type.Pound: u = Pound(1); break; ... } try switch(from) { case Type.Foot: v = u.Foot(); break; case Type.Inch: v = u.Inch(); break; case Type.Pound: v =u.Pound(); break; ... } catch (ExceptionUnitMisMatch) { assert(isnan(r)); continue; } assert(!isnan(r)); } Thomas Kuehne wrote:-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS schrieb am 2006-02-22:In article <0q1uc3-rb3.ln1 birke.kuehne.cn>, Thomas Kuehne says...[snip][snip]mile, inch british, natic, imperial or ... ?5280'non metric units are US (I think).Except for inch, all conversions seem to be correct. Could you please send me your email - the basic conversion unittest is rather large for posting (ca. 647K). Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFD/NoA3w+/yD4P9tIRAgr+AKCEHKUcwpu+m2FvmOQlWJowjYMCgwCfZQR8 IFJFE9kXLfgLQSWrHSvOdrI= =kJBv -----END PGP SIGNATURE-----
Feb 22 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS schrieb am 2006-02-23:WOW!! Thanks! That is impressive. If I may ask, how did you make that? Some sort of script I assume?No script, just one hundred and one monkeys typing all day ;)I ask because the Phobos source en-total is 1MB and 647k is kinda large. Can you think of any way to cut down the code size using a data table of some kind?How about 40K? Thomas begin 644 unittest_addon.zip M9%54"0`#Q7?]0\5W_4-5>`0`Z`-D`.U=;6_<-A+^;/\*-D!1&7%8ODI4TA1( M,"]F)7 *#A_ MNFSJA4:^GH[JA9;.]/\CO7VGM]/Y:*+V)XM%H_871:W3G$TKG6)[M>I8;7]> MS4>E4<]7C3Z:+%8Z:^/B0NW>J,V_RO>-N>#X8EZ:TT_4[OEB52UF.JE_R$.M M>E&?:E51J5WY5FW?+BJ=FU<?]%4G. N_%&K[4Z$O]ZS1LO\4C0&>J>W!U-KI MI4GL^4J+_SE?-$M]TDB:Z>A)9^FZ+"IIY;DTLCJ$\M!7JF*0!3$NFD)BP*%4 M[GS_/=#EH8X/#QE"!_M`_3W""-*#HWUP*)/9!^WF,P6L?(A)ES)$5/Z/#ZP& MB?Z:%*D?HS&'KJJ7NV(M19"U, 21%&LIYAD3\G*XU3'$(<=8F(MCB FD-&VU ME,(L)RFW6:,99(S3/N,8DI01G-DK$B8X$TPX%T:IS!XF='.FBX*[()`2RZ;V M+KU>K*^WC2:F[7M=FD3>1,%=;RWI$.^S*WQDP*<%&>E-(B!GT29?N]*WO1D M*>S1G V_RT=.,*S"Y$<H/]A T_P2-V2#P(V;N\!9Y82OY23M-.F:)FLU?7/$ M[V`$VNC<S54*;7 NA?'AL*W\,SV(()GIO>6>;AJSM8K-#S8 MH=ZLJ\B:K>5<M&= 2STO!&"6>EV `WSAEC'.Q!BEGE#K./KK.NSY+!N X^S MR>8QK75PSBU3ZO0X2_ :PY11L-?I+"^^WN_L\BM&]=O*KY'DUZB<-QZ_''9M MF%P8K9$K/_BDGW/%5_ ^Y+LY=S0'>O3JFI!V-`>NL<LC5]=N=$RR3JVKF,4C ML[:UDT(R2PWK>,0*.)%-L8NOC9:R=K1T+<12/+S...HZ)<,N;[W!:#P8=(9, MO1%3R3#HC M216<NMR1=5:FWWDM+-4N1_354:]RY-!F2\E[,6QSJUNQ[HVH]EIW+T-\HS+8 MTC_].8(+(]$7PG!]I.?2.$]*L?[UW69*N%)$<FTIN=0L*$LN F%.^N >TYRQ M9X3"-.SL6O;U.6>TYYY,-^/ZUV,TSCG2LECYMI-9:EZA819-9<S?50Y9<;& MT4RZ*LM31XI ?D5P1TBF?CU7Q077XLBG;>T;G%9VUD,J8PB:P7Z$255&2-CF M6C$IU)=(_2!+749>I8NT'!0>0J$UE!-\69`!&#U:4\)."Y6ZUT+G7,(I<SM- MXJ<Y[WN TTP^B?']FU4C;U7>*71N5=XI[&YUB$&I*TR9;1O&NG;'6:%?DP+) MRM-^C%V(3$:E<"L'\GC&&,FD!^B8P+(<0XY,=W3.,PHSD76=;X2ED!..6&QT MW0F&O`')N#RMRW)9%_-WTWFYM[EW 0 AD*B?KIL49L0(8HE$;MPV*IAE1D`R MR`-,B!.F;V!TX 0DU3$X6=2C,OJ'+]CAFV4Y)$+TKZYR*'":"AN30ZE7:G<6 M`.,:`6D,1&Z<&'8=-I",S$'D1HP\MJ7NZX4'0?*'VL5Z?P_BCN!KJSF':A2$ M]\..D*7J[="L??,Z3U-$\_(A<=<[("+CO'R(MZY_N.?(B_H4)&5]&OEQQ_ 1 M7H1D #DYY M6=?3S=2KT,R. F`HE1EQ7]EF:B$"J7?71+ \U 1XR036'H4XKPXEV.>8YD< M0=M+E?)M), =6U"3(9$AKI:#RMP)_8 PK(3B8!V&AF#M0AZ<HC17"UIA9ZFJ MG&%.F?0U.(]AOTL7M0(Z2,[E-CJ6&.=L2ZU_]0$DD[)N/L1*'P7WFP7.;/') M1;-.>DK\5-0 .2[J2( HN/[RN-=>I$S2`7I\T,M'W5(N/&O44M_-;+$\D^%` M'*:+ NM1 E.?$HRF+(/M^X0<4J?R:]TM?]6P9X3ZT!U(WLMM)$,4?,DV%I<\ M04)X"UQ0 0DG7^Q]3*>#Z M::4;2J/5621"%'PM0<Y 2CGIVU!$1=V""W'#Z_ M=5E4AT? O*A6)7 Z '^R*[$GBSI93C^4OS? _/?I4_1$[<`/YC18E?/39J)E M#Q_N_:4HI)(%YS)!C3B4&GU--Z'E8E6/2I66.9+)C8NFZ%(STC;!G=_FTP:L M&$0,:%E*(XV'(=1`S)?DAR',7DI_>WL8P VD_5+Q," U(/,YU6%(9N\[D((P M]-:4>JG5`*0UI5YS,H"Q]E0K\`40UJ3CXB)0PZQ-WP34UJ!FL9H`QII4K=X1 MTEKTU8>`WIKTYTF \E!KSU^* -Y:\Z<B4.C46O-9$[J"M:0:E T K"%?G07T M+Y5_GI6C1K.S*;1O.E0G'AT:AW)DL<>+105&Q>ITTKAGU^52YMQ*FOK"7JQU M< _:^;!A<.J!K2\;AF:^O4(I" \V"L%R_X9",.R7DO9U`:1?2MKG!9!^$6G? M%T#Z):1]8`#I%]`5]0/[Y2-]8 #G%XWQC0'H6M$8'QG`^N6C?64`Z1>1\IF! M2LKG!H!^$4G?&\#Y!:1]<.!!XY>0],4!G%]$RB<' '[Y2-\<P/FEHWQT`.B7 MCO+5`:!?,MIG!Y!^P4C?'<#YY6)\>`#JE\S+8!%2OVB43P\\U_V2,;X]`/4+ MQ_CX`-0O'NWK+R%#SKYU]SL?1X5RG2_^')5GS70Q5['>Z^GRM9)VOM1X8GF9 MIEZ5- %[_O0DL3[]FQ]^?`H01-U94O6-.;-WRO^63]>Y;AD\V/UVF7R[W`./ MI/Q?758VI_O6;'N?SI8Z> Q.%XT\_D26]L%:ZL$L?NR;6VHC_S[N?MS]/U!+ M`0(7`Q0`` `(`(M.5S3SV:_7%PT``&V8```0``T```````$```#M 0````!U ` end -----BEGIN PGP SIGNATURE----- iD8DBQFD/Xmz3w+/yD4P9tIRAognAJ9htrCXzYmDCOjRygLkkMfF3WsJsgCgohwt uSKoGesdYlzAUbGXNBs0qO8= =6E2G -----END PGP SIGNATURE-----
Feb 23 2006
Thomas Kuehne wrote:-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS schrieb am 2006-02-23:Sweet!!! That's about what I was expecting. Thanks!! Two things (more curiosity than anything): -> How long did the first version take to compile for you? On my box (Linux 550MHz P-III) DMD ran for ~ 70 sec. -> What did you use for a convention table? I want to pout that in the doc comments. A fixed version (inch, cal and hp corrected) of the lib will be up in a few minutes.WOW!! Thanks! That is impressive. If I may ask, how did you make that? Some sort of script I assume?No script, just one hundred and one monkeys typing all day ;)I ask because the Phobos source en-total is 1MB and 647k is kinda large. Can you think of any way to cut down the code size using a data table of some kind?How about 40K? Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFD/Xmz3w+/yD4P9tIRAognAJ9htrCXzYmDCOjRygLkkMfF3WsJsgCgohwt uSKoGesdYlzAUbGXNBs0qO8= =6E2G -----END PGP SIGNATURE-----
Feb 23 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS schrieb am 2006-02-23: [snip]Two things (more curiosity than anything): -> How long did the first version take to compile for you? On my box (Linux 550MHz P-III) DMD ran for ~ 70 sec.ca. 29 sec (with some backround activity)-> What did you use for a convention table? I want to put that in the doc comments.units version 1.80 the data file lists following sources: Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFD/haw3w+/yD4P9tIRAg9YAJ4sdDt8Sbdgn+UyR+fAGAMZzy3GxwCgqQSa 6j6MksKajqf4g4aUCf50T3E= =ydtA -----END PGP SIGNATURE-----
Feb 23 2006
In article <geh1d3-v56.ln1 birke.kuehne.cn>, Thomas Kuehne says...-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 BCS schrieb am 2006-02-23: [snip]what kind of system?Two things (more curiosity than anything): -> How long did the first version take to compile for you? On my box (Linux 550MHz P-III) DMD ran for ~ 70 sec.ca. 29 sec (with some backround activity)Crumbs! That's where I got the _new_ valuse for the convertions from. Now I have to find a new scource.-> What did you use for a convention table? I want to put that in the doc comments.units version 1.80the data file lists following sources: Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFD/haw3w+/yD4P9tIRAg9YAJ4sdDt8Sbdgn+UyR+fAGAMZzy3GxwCgqQSa 6j6MksKajqf4g4aUCf50T3E= =ydtA -----END PGP SIGNATURE-----
Feb 23 2006
A new version of the units lib is up at http://www.webpages.uidaho.edu/~shro8822/unit.d Several other libs are also up at: http://www.webpages.uidaho.edu/~shro8822/point_math.d http://www.webpages.uidaho.edu/~shro8822/point_lib.d I would like to submit them all for inclusion in Phobos
Feb 24 2006
Great, I always wanted to write one! Actually I already have one but it is more like an units interpreter. However, my library has an additional feature, it can take fractional powers of dimensions in p/q form where p and q are integers. I am interested in adding this feature to your library, its easy. This feature is very useful for engineers, especially mechanical engineers where fractional power of dimensions appear every where. eg. time period of a simple pendulum. So, do you mind if I take a whack at it ? One question, why you left out angle and candela from fundamental units ? later one is used a lot in optics. my units interpreter is at: http://mechsys4.me.udel.edu/home/banala/units.html its not very userfriendly as of yet, just ported it to D and DWT. Sai In article <dto5k2$10iq$1 digitaldaemon.com>, BCS says...A new version of the units lib is up at http://www.webpages.uidaho.edu/~shro8822/unit.d Several other libs are also up at: http://www.webpages.uidaho.edu/~shro8822/point_math.d http://www.webpages.uidaho.edu/~shro8822/point_lib.d I would like to submit them all for inclusion in Phobos
Feb 25 2006
In article <dtprks$1m30$1 digitaldaemon.com>, Sai says...Great, I always wanted to write one! Actually I already have one but it is more like an units interpreter. However, my library has an additional feature, it can take fractional powers of dimensions in p/q form where p and q are integers. I am interested in adding this feature to your library, its easy. This feature is very useful for engineers, especially mechanical engineers where fractional power of dimensions appear every where. eg. time period of a simple pendulum.Go ahead, fine by me. I was thinking of adding integer powers my self. One request, I have tried to keep the unit control part as separable as possible so that it would be easy to strip out for performance reasons.So, do you mind if I take a whack at it ? One question, why you left out angle and candela from fundamental units ? later one is used a lot in optics.Each fundamental unit used adds a int to the struct and adds more overhead to programs using this library. While not quite as handy, angles can be treated as unit-less (IIRC SI does this) and the candela can be treated as power per area (CGS, US and MKS do this).my units interpreter is at: http://mechsys4.me.udel.edu/home/banala/units.html its not very userfriendly as of yet, just ported it to D and DWT. SaiThis whole lib is rely a bit of a kluge because most of the time units can be determined statically and should be checked statically. I have plans for a template to do this but it will require implicit template specialization, so that's on hold for now.In article <dto5k2$10iq$1 digitaldaemon.com>, BCS says...A new version of the units lib is up at http://www.webpages.uidaho.edu/~shro8822/unit.d Several other libs are also up at: http://www.webpages.uidaho.edu/~shro8822/point_math.d http://www.webpages.uidaho.edu/~shro8822/point_lib.d I would like to submit them all for inclusion in Phobos
Feb 25 2006
This looks sweet. Sorry for my ignorance but what does feqrel() do ? Charlie "BCS" <BCS_member pathlink.com> wrote in message news:dtgd32$407$1 digitaldaemon.com...I have put together a runtime unit type library. While I was writing the unittest I recognized that the most likely error is an error in theconventiontable (something that can't be checked by the person who wrote that part). Therefor, Would someone please (without looking at my table of conversion factors) finish writing the unittest for the lib? It shouldn't be hard, just get the file and a units conversion table andaddsome more lines like those around line 644. here it is: http://www.webpages.uidaho.edu/~shro8822/unit_.d ps: I am submitting this for inclusion in Phobos.
Feb 22 2006
"to how many bit are the args the same?" its in std.math In article <dti61k$2gpd$1 digitaldaemon.com>, Charles says...This looks sweet. Sorry for my ignorance but what does feqrel() do ? Charlie "BCS" <BCS_member pathlink.com> wrote in message news:dtgd32$407$1 digitaldaemon.com...I have put together a runtime unit type library. While I was writing the unittest I recognized that the most likely error is an error in theconventiontable (something that can't be checked by the person who wrote that part). Therefor, Would someone please (without looking at my table of conversion factors) finish writing the unittest for the lib? It shouldn't be hard, just get the file and a units conversion table andaddsome more lines like those around line 644. here it is: http://www.webpages.uidaho.edu/~shro8822/unit_.d ps: I am submitting this for inclusion in Phobos.
Feb 22 2006
http://www.gnu.org/software/units/units.html Above tool seem to have a pretty good collection of units. It would be nice if the 'runtime unit lib' in discussion can generate arbitrary fundamental units and user defined conversions at runtime (like currency, steradian, bit, music_note etc). Sai
Feb 22 2006
Sai wrote:http://www.gnu.org/software/units/units.html Above tool seem to have a pretty good collection of units. It would be nice if the 'runtime unit lib' in discussion can generate arbitrary fundamental units and user defined conversions at runtime (like currency, steradian, bit, music_note etc). SaiI'll check that out
Feb 22 2006
BCS wrote:I have put together a runtime unit type library. While I was writing the unittest I recognized that the most likely error is an error in the convention table (something that can't be checked by the person who wrote that part). Therefor, Would someone please (without looking at my table of conversion factors) finish writing the unittest for the lib? It shouldn't be hard, just get the file and a units conversion table and add some more lines like those around line 644. here it is: http://www.webpages.uidaho.edu/~shro8822/unit_.dWhile I'm sure your units code will be great as part of phobos, I'm actually more interested (surprised rather) in where your file is hosted. I believe we go to school in the same state. :) I'm in the middle of my second year at Boise State University. Chris
Feb 24 2006
Chris Lajoie wrote:BCS wrote:I found a while ago that one of the contributers to another (internet wide) project I'm ocationaly involved in works right here in town. "It's a small world after all ..."http://www.webpages.uidaho.edu/~shro8822/unit_.dWhile I'm sure your units code will be great as part of phobos, I'm actually more interested (surprised rather) in where your file is hosted. I believe we go to school in the same state. :) I'm in the middle of my second year at Boise State University. Chris
Feb 27 2006