13 May 2005 17:56:43 -0400

Related articles |
---|

[2 earlier articles] |

Re: Determining the inverse function operation from a function definit mailbox@dmitry-kazakov.de (Dmitry A. Kazakov) (2005-04-28) |

Re: Determining the inverse function operation from a function definit lfinsto1@gwdg.de (Laurence Finston) (2005-04-28) |

Re: Determining the inverse function operation from a function definit wyrmwif@tsoft.org (SM Ryan) (2005-04-28) |

Re: Determining the inverse function operation from a function definit drdiettrich@compuserve.de (Dr. Diettrich) (2005-04-28) |

Re: Determining the inverse function operation from a function definit nmm1@cus.cam.ac.uk (2005-04-30) |

Re: Determining the inverse function operation from a function definit gah@ugcs.caltech.edu (glen herrmannsfeldt) (2005-04-30) |

Re: Determining the inverse function operation from a function definit drdiettrich@compuserve.de (Dr. Diettrich) (2005-05-13) |

From: | "Dr. Diettrich" <drdiettrich@compuserve.de> |

Newsgroups: | comp.compilers |

Date: | 13 May 2005 17:56:43 -0400 |

Organization: | Compilers Central |

References: | 05-04-067 |

Keywords: | theory |

Posted-Date: | 13 May 2005 17:56:43 EDT |

Ron Foster wrote:

*>*

*> Hi.*

*> I am working on a small project to evaluate and execute unit conversion*

*> expressions. I started wondering whether it was possible to determine what*

*> the reverse conversion rules might blook like.*

*>*

*> For example, one might want to define the classic Celsius to Fahrenheit*

*> convesrion expression along the lines of:*

*>*

*> F( c ) = ( 9 / 5 ) * c + 32.*

*>*

*> It seems as though there's enough information there to deduce the inverse*

*> Fahrenheit to Celsius conversion:*

*>*

*> C( f ) = ( f - 32 ) / ( 5 / 9 )*

You did a bit too much, using my school math the result should read:

C( f ) = ( f - 32 ) / ( 9 / 5 )

There should't exist too many linear conversion formulas, so a table

with the constants and the two conversion functions should be feasable.

Perhaps all you need is y=a*x+b and y=a/x+b, with the according inverse

functions. Things will become a bit more complicated with

exponentiation, sine, or other non-linear functions.

In the general case you can build an expression tree and implement a

transformation procedure for the reverse expression. Using an

appropriate language with built-in list manipulation will simplify

things a lot. I remember one of my first LISP exercises, a conversion

from/to RPN...

IMO you better ask your questions in a math group. Even if your problem

is related to "symbol manipulation" or "transformation", it's not a

matter of compilers nor grammars.

DoDi

Post a followup to this message

Return to the
comp.compilers page.

Search the
comp.compilers archives again.