Godsend is a command line program written in PHP which allows one to perform calculations on physical quantities. These may be vectors or scalars and carry units. It includes numerous physical constants and performs unit conversions automatically.


http://godsend.sourceforge.net





Separate each tag with a space.

Release Date:

2004-01-27

Topics:

License:

Ratings and Reviews

Be the first to post a text review of GodSend. Rate and review a project by clicking thumbs up or thumbs down in the right column.

Project Feed

  • File released: /godsend/godsend-0.6/godsend-0.6.tar.bz2

    posted 2113 days ago

  • godsend godsend-0.6 file released: godsend-0.6.tar.bz2

    posted 2113 days ago

  • File released: /godsend/godsend-0.5/godsend-0.5.tar.bz2

    posted 2123 days ago

  • godsend godsend-0.5 file released: godsend-0.5.tar.bz2

    posted 2124 days ago

  • File released: /godsend/godsend-0.4/godsend-0.4.tar.bz2

    posted 2152 days ago

  • godsend godsend-0.4 file released: godsend-0.4.tar.bz2

    Changes since 0.2: * operation.inc.php (operation_exec): Now protects against division by 0. To do this a constant, INF has been defined in godsend.inc.php. Perhaps a constant _inf could be introduced now... * quantity.inc.php (quantity_from_string), et. al.: Added preliminary vector structure. Incremental declaration of vector elements does not work. Also, the elements inside the brackets must be bare numerical values. So you can't put anything like [1e9 34 521.3 1/2] in because 1/2 is not in decimal format. Note that any operations like +-*/^ must be taken care of using operation_exec since we can't just multiply or add arrays! Next up: Error propagation! NOTE that scalar+vector addition is well-defined. (Obviously multiplication is as well) * database (keywords): Added keyword lsconsts. This takes no arguments and lists all physical constants * parse.inc.php (parse_keyword_cmd): Fixed stupid bug where if the command requests an assignment, even if it fails HAVEOUTPUT will be reported. Works better now. * database (units): Added units year (yr) and day (days) Changes since 0.2: * database (units): Fixed stupid error where the dimensions string for mA unit was set to 10^1 (10 is the unit id for A). That's what was causing a strange error. Goes to show how important it is for the database to be pristine. * parse.inc.php (parse_cmd): Changed the order in which the command string is traversed when looking for operators. Going backwards allows commands like 12/4/3 to equal 1 instead of 9, as it should be. * database (constants) / constant.inc.php (constant_find): Made a big change in the way constants are stored. Now we use the serialize and unserialize functions. This eliminates those tedious loops and might make it slightly faster for lookups. The main advantage is that its easier and this is the way I should have done it the first time. * parse.inc.php/postcmd.inc.php (postcommands): Implemented post_commands. They work just like keywords but have no minimum argument limit. I'm not willing to develop this very much because I think it is only useful for converting units and maybe dumping some information about them. Maybe I am wrong here... Currently the only post command in the database is the convert command. * parse.inc.php/quantity.inc.php (Quantity::setName): Moved the variable name check from the parse_cmd function into the class's setName method. That's the way it should have been all along. Also removed the restriction that variable names couldn't end in e/E. That was in there because of the retarded parsing routine, which is now fixed. So everything works as expected as far as variable names now. * database (units): Added angstroms (Ang), giga-electron-volts (GeV), and femtometers (fm). Also cleaned up the temperature conversions. They should work fine now. * database (units): Added astronomical unit. This unit can be expressed as either ua or AU. This brings up an idea. maybe units should have aliases, which could also be used. Right now there are only two ways to access each unit, by name or by abbrev. A regexp on an alias field would slow things down a little, but maybe its a possibility, speed is not that critical. Changes since 0.1: * database (units): Added lots of units, had 33 units, now have 57 * database (constants): Added constant hc, equal to _h * _c * error.inc.php godsend.php (error_handle): Added error handling, now we don't have to worry about corrupting the screen if something goes wrong * parse.inc.php (parse_cmd): Changed the order of sections. Now checks for variable or constant name first. Then checks for stuff like 1.5e-7 in the operator check loop. At this point it looks like all the parsing code is working. * quantity.inc.php (Quantity->setUnitsString): Fixed stupid bug which would overwrite dimensions when given a combination of units. For instance, <m kg m^2> would set dimensions <L^2 M^1> instead of <L^3 M^1>

    posted 2153 days ago

  • File released: /godsend/godsend-0.3/godsend-0.3.tar.bz2

    posted 2159 days ago

  • godsend godsend-0.3 file released: godsend-0.3.tar.bz2

    Changes since 0.2: * database (units): Fixed stupid error where the dimensions string for mA unit was set to 10^1 (10 is the unit id for A). That's what was causing a strange error. Goes to show how important it is for the database to be pristine. * parse.inc.php (parse_cmd): Changed the order in which the command string is traversed when looking for operators. Going backwards allows commands like 12/4/3 to equal 1 instead of 9, as it should be. * database (constants) / constant.inc.php (constant_find): Made a big change in the way constants are stored. Now we use the serialize and unserialize functions. This eliminates those tedious loops and might make it slightly faster for lookups. The main advantage is that its easier and this is the way I should have done it the first time. * parse.inc.php/postcmd.inc.php (postcommands): Implemented post_commands. They work just like keywords but have no minimum argument limit. I'm not willing to develop this very much because I think it is only useful for converting units and maybe dumping some information about them. Maybe I am wrong here... Currently the only post command in the database is the convert command. * parse.inc.php/quantity.inc.php (Quantity::setName): Moved the variable name check from the parse_cmd function into the class's setName method. That's the way it should have been all along. Also removed the restriction that variable names couldn't end in e/E. That was in there because of the retarded parsing routine, which is now fixed. So everything works as expected as far as variable names now. * database (units): Added angstroms (Ang), giga-electron-volts (GeV), and femtometers (fm). Also cleaned up the temperature conversions. They should work fine now. * database (units): Added astronomical unit. This unit can be expressed as either ua or AU. This brings up an idea. maybe units should have aliases, which could also be used. Right now there are only two ways to access each unit, by name or by abbrev. A regexp on an alias field would slow things down a little, but maybe its a possibility, speed is not that critical. Changes since 0.1: * database (units): Added lots of units, had 33 units, now have 57 * database (constants): Added constant hc, equal to _h * _c * error.inc.php godsend.php (error_handle): Added error handling, now we don't have to worry about corrupting the screen if something goes wrong * parse.inc.php (parse_cmd): Changed the order of sections. Now checks for variable or constant name first. Then checks for stuff like 1.5e-7 in the operator check loop. At this point it looks like all the parsing code is working. * quantity.inc.php (Quantity->setUnitsString): Fixed stupid bug which would overwrite dimensions when given a combination of units. For instance, <m kg m^2> would set dimensions <L^2 M^1> instead of <L^3 M^1>

    posted 2160 days ago

  • File released: /godsend/godsend-0.2/godsend-0.2.tar.bz2

    posted 2181 days ago

  • godsend godsend-0.2 file released: godsend-0.2.tar.bz2

    Changes since v0.1: 2003-11-19 Jacob Hinkle <hinklejd@muohio.edu> * database (units): Added lots of units, had 33 units, now have 57 * database (constants): Added constant hc, equal to _h * _c * error.inc.php godsend.php (error_handle): Added error handling, now we don't have to worry about corrupting the screen if something goes wrong * parse.inc.php (parse_cmd): Changed the order of sections. Now checks for variable or constant name first. Then checks for stuff like 1.5e-7 in the operator check loop. At this point it looks like all the parsing code is working. * quantity.inc.php (Quantity->setUnitsString): Fixed stupid bug which would overwrite dimensions when given a combination of units. For instance, <m kg m^2> would set dimensions <L^2 M^1> instead of <L^3 M^1>

    posted 2182 days ago

Rate and Review

Be the first person to add a text review.

Would you recommend this project?






<

Related Projects

Thanks for your rating!

Would you also like to write a review?





Skip Review