Please note this site is going to be replaced with the new design very soon - some logistical/version info on this site is out of date. The new site can be found here.
Please note specifically: new releases page (dir), new mailing list (google group), new subversion hosting (googlecode)
(note last updated: 6/10/08

Kamaelia

Nuts & Bolts | Components | Tools | Cookbook | Systems
wiki actions :( EDIT | printable | Recent Changes | Dev Console | Sitemap/Index )
guest191849


Home, News
Dev Console

How, Why
Project Blog
Summer of Code

Documentation
Download
SVN (web)
Sourceforge page

Project Admin
License

Contact Us

  Page Tags

No tags are defined for this page yet - how would you classify/think of this page? Add your notes below!

Kamaelia docs : Kamaelia.Support.Data.Rationals

Rational fraction conversion/handling

This set of functions assist in creating rational fractions (numbers represented by a fraction with an integer numerator and denominator).

Conversion from floating point to rational fraction

The rational(...) function converts a floating point value to a rational fraction.

It aims to generate as close an approximation as is reasonably possible, and to use as small (simple) a numerator and denominator as possible.

Examples

Conversion of a floating point number to a rational fraction:

>>> rational(0.75)
(3, 4)

Scale a rational's numerator and denominator to fit within limits:

>>> limit( (1500,2000), 80, -80)
(60, 80)

Find the greatest common divisor:

>>> gcd(18,42)
6

How does conversion work?

rational(...) uses the "continuous fractions" recursive approximation technique.

The algorithm effectively generates a continuous fractions up to a specified depth, and then multiplies them out to generate an integer numerator and denominator.

All depths are tried up to the maximum depth specified. The least deep one that yields an exact match is returned. This is also the simplest.

The numerator and denominator are simplified further by dividing them by their greatest common denominator.

For more information on continuous fractions try these: - http://mathworld.wolfram.com/ContinuedFraction.html - http://ourworld.cs.com/christopherereed/confracs.htm - http://www.cut-the-knot.org/do_you_know/fraction.shtml - http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/cfINTRO.html#real


Feedback

Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!

Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.

-- Automatic documentation generator, 11 Oct 2008 at 03:01:27 UTC/GMT


Your tags for this page: If you had set UserPreferences (name & email) and validated them (simple single click in your email), you would be able to define personal tags

Versions: current , 1


(C) 2005 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved,
This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC.


This web site is powered by the same code created for the bicker manor project. For more details, contact Michael Sparks at BBC Research directly (cf contact)