Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

Fibonacci Class Reference

Class for representing integer numbers with Fibonacci codes. More...

#include <fibonacci.h>

List of all members.

Static Public Methods

unsigned long encode (unsigned long number)
 Encode number to Fibonacci code. More...

unsigned long decode (unsigned long code)
 Decode number from Fibonacci code. More...

size_t encodeToBuffer (void *buffer, size_t itemSize, unsigned long number)
 Encode number to given buffer. More...

size_t decodeFromBuffer (void *buffer, size_t itemSize, size_t *nrItems)
 Decode given Fibonacci buffer. More...


Detailed Description

Class for representing integer numbers with Fibonacci codes.

This class provides some basic functionality for manipulating with order 2 Fibonacci numbers. It can encode and decode integers (greater than 0). In addition, it is capable of encoding numbers into data buffer, and also decoding this buffers.

Definition at line 48 of file fibonacci.h.


Member Function Documentation

unsigned long Fibonacci::decode unsigned long    code [static]
 

Decode number from Fibonacci code.

Reconstructs a number from given Fibonacci code. The code must be reversed.

Parameters:
code  Reversed Fibonacci code.
Returns:
Reconstructed number.
See also:
encode(), decodeFromBuffer().

Definition at line 115 of file fibonacci.cpp.

References Order2FibonacciNumbers_.

Referenced by XmlCodec::decode, decodeFromBuffer, XmlSimpleModel::receiveData, and XmlAdaptiveModel::receiveData.

size_t Fibonacci::decodeFromBuffer void *    buffer,
size_t    itemSize,
size_t *    nrItems
[static]
 

Decode given Fibonacci buffer.

Decodes Fibonacci buffer and returns the decoded number.

Warning:
No checks are performed, so memory error can occur in case of too short buffer!
Parameters:
buffer  Pointer to the buffer.
itemSize  Size of one item of the buffer (in bytes).
nrItems  Number of buffer items used during decoding.
Returns:
Decoded number.
See also:
decode(), encodeToBuffer().

Definition at line 229 of file fibonacci.cpp.

References decode.

unsigned long Fibonacci::encode unsigned long    number [static]
 

Encode number to Fibonacci code.

Constructs a Fibonacci code for given number. The code is stored reversely (eg. as 11000 instead of 00011) which allows easier manipulation using shifts.

Parameters:
number  Coded integer number (greater than 0).
Returns:
Fibonacci code.
See also:
decode(), encodeToBuffer().

Definition at line 75 of file fibonacci.cpp.

References NUMBER_OF_ORDER2_FIBS, and Order2FibonacciNumbers_.

Referenced by encodeToBuffer.

size_t Fibonacci::encodeToBuffer void *    buffer,
size_t    itemSize,
unsigned long    number
[static]
 

Encode number to given buffer.

Constructs Fibonacci code for given number and stores it in the buffer. The itemSize parameter indicates the size of one buffer item in bytes (or more precisely, in chars).

Warning:
No checks are performed, so memory error can occur in case of too short buffer!
Parameters:
buffer  Pointer to the buffer.
itemSize  Size of one item of the buffer (in bytes).
number  Encoded number.
Returns:
Number of buffer items which contain the code.
See also:
encode(), decodeFromBuffer().

Definition at line 160 of file fibonacci.cpp.

References encode.

Referenced by XmlSimpleModel::manageEvent, XmlAdaptiveModel::manageEvent, and KYGrammar::setAlphabetBaseSize.


The documentation for this class was generated from the following files:
Generated on Wed Feb 5 10:43:05 2003 for Exalt by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002