True time-weighted rate of return: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Guavacado
m Correct spelling of 'Annualization'
 
en>Jonazo
Line 1: Line 1:
{{lowercase}}
{{Infobox software
| name                  = liblzg
| latest release version = 1.0.7
| latest release date    = {{Release date|2013|10|22}}
| programming language  = [[C (programming language)|C]], [[Pascal (programming language)|Pascal]], [[Lua (programming language)|Lua]], [[Assembly language]], [[JavaScript]]
| operating system      = [[Cross-platform]]
| genre                  = [[Data compression]]
| license                = [[zlib license]]
| website                = http://liblzg.bitsnbites.eu/
}}
'''liblzg''' is a compression library for performing [[lossless data compression]]. It implements an algorithm that is a variation of the [[LZ77 and LZ78|LZ77]] algorithm, called the LZG algorithm, with the primary focus of providing a very simple and fast decoding method. One of the key features of the algorithm is that it requires no memory during decompression. The software library is [[free software]], distributed under the [[zlib license]].


== Algorithm ==
{{main|LZ77 and LZ78}}


Nissan parts really are a essential part of Nissan cars. Because the company&quot;s inception in 1933, several smooth, effective and inexpensive automobiles attended off the production line. There have been Nissan parts produced to match them, In the same way there have been quality Nissan cars. <br><br>Every vehicle part that is obtained for Nissan vehicles will ultimately play a large role in the manner that the car looks and performs. Nissan vehicles should always be repaired using traditional Nissan elements. From hoods to hubcaps, mirrors to spoilers and even wheels, Nissan vehicles have a modern design coupled with affordable pricing. <br><br>Without quality Nissan elements, the performance of Nissan vehicles would not function as the same. Quality, workmanship and trustworthiness are part of what Nissan puts within their manufacturing. To discover more, consider looking at: [http://scriptogr.am/phonesystemsafrica phonesystemsafrica on scriptogr.am]. It is recommended that you take it to an auto parts storage that offers Nissan parts, if you own a Nissan car that needs repair. A specialized Nissan dealer will be excellent but, if there is not one in your area, any storage or body shop ought to be in a position to place a unique order for the Nissan parts which are required. For alternative viewpoints, please take a view at: [http://www.purevolume.com/officialsitegdr/posts/7808218/Preventing+Water+Damage+in+your+Kitchen consumers]. <br><br>Before having any work performed, ask the restoration consultant about pricing on Nissan parts. Get an, for both areas and labor, written down before generally making a final decision on your car will be repaired by who. If necessary, stop by more than one garage and inquire about repairing or replacing automobile parts for Nissan cars. It is very important to acquire a qualified repair expert to do any kind of work with your vehicle. Ask any questions that you&quot;re feeling are important when considering the purchase of Nissan pieces and/or repair. <br><br>As may be the case with many quality products and services, Nissan components usually carry a warranty on the function. It is recommended to check out these warranties before purchasing. Once the purchase is created and the Nissan components are fitted, it&quot;s advisable to keep all guarantee paperwork tucked away in a place for later retrieval. Browse here at the link [http://www.cultureinside.com/123/section.aspx/Member/dayspacyd/ like] to explore where to consider this concept. In addition, the garage that installed the Nissan elements may offer a warranty on their work. Be sure to ask about that, as well, and keep any extra paperwork associated with the purchase or installing your brand-new Nissan elements. <br><br>Nissan cars are extremely popular among vehicle enthusiasts. While the others are manufactured with a sports car design some are known because of their traditional family style. No matter the style on Nissan vehicles, a very important factor is for several. A company that has experienced business for this several years is here to stay and, if Nissan cars are any reflection on they that are manufactured by the company, they&quot;re here to stay as well..<br><br>When you loved this information and you would love to receive more details with regards to individual health insurance plans - [http://smellyferry4184.yolasite.com click over here] - please visit our own web page.
If a duplicate series of bytes (a repeated string) is spotted in the uncompressed data stream, then a back-[[Reference (computer science)|reference]] is inserted, linking to the previous location of that identical string instead. An encoded match to an earlier string consists of a length (3–128 bytes) and a distance (1–526,341 bytes).  The level of compression can be controlled by specifying the maximum distance for which duplicated strings will be searched (this is the size of the ''sliding window'').
 
== Data format ==
The data format consists of a header, followed by the compressed data. The header contains an identifier and house keeping information, such as compressed and decompressed data sizes and a 32-bit checksum (a variant of the [[Fletcher's checksum|Fletcher checksum]]).
 
The compressed data starts with four bytes, identifying four unique 8-bit marker symbols (''m1'', ''m2'', ''m3'' and ''m4''). These are used to separate literal data bytes from various forms of ''length-distance'' pair encodings.
 
Any symbol that is not a marker byte is considered a literal byte, and will be copied as is to the decompressed data buffer. However, if the decoder encounters any of the four marker bytes, it will decode a ''length-distance'' pair that is used as a back reference into the previously decompressed data.
 
The marker bytes are interpreted as follows (% denotes a binary number):
 
=== General copy (m1) ===
''m1'' represents the most general form of a copy operation, and it occupies four bytes in the compressed data stream:
{| class="wikitable"
|-
| <tt>m1</tt> || <tt>%ooolllll</tt> || <tt>%mmmmmmmm</tt> || <tt>%nnnnnnnn</tt>
|}
...where length=<tt>DECODELENGTH(%lllll+2)</tt>, and offset=<tt>%ooommmmmmmmnnnnnnnn + 2056</tt>.
 
=== Medium copy (m2) ===
''m2'' is a shorter form of a copy operation, occupying three bytes in the compressed data stream:
{| class="wikitable"
|-
| <tt>m2</tt> || <tt>%ooolllll</tt> || <tt>%mmmmmmmm</tt>
|}
...where length=<tt>DECODELENGTH(%lllll+2)</tt>, and offset=<tt>%ooommmmmmmm + 8</tt>.
 
=== Short copy (m3) ===
''m3'' requires only two bytes, and is used for short lengths, close to the marker:
{| class="wikitable"
|-
| <tt>m3</tt> || <tt>%lloooooo</tt>
|}
...where length=<tt>%ll+3</tt>, and offset=<tt>%oooooo + 8</tt>.
 
=== Near copy (m4) ===
''m4'' requires only two bytes, and is used for nearby copies (including [[Run-length encoding|RLE]], when the offset is 1):
{| class="wikitable"
|-
| <tt>m4</tt> || <tt>%ooolllll</tt>
|}
...where length=<tt>DECODELENGTH(%lllll+2)</tt>, and offset=<tt>%ooo + 1</tt>.
 
=== Literal copy ===
As a special case, if any of the marker symbols are followed by a zero byte (0), the marker symbol itself is written to the decompressed buffer.
 
=== Non-linear length encoding ===
The <tt>DECODELENGTH</tt> function implements a non-linear mapping of a number in the range 3-33 to a number in the range 3-128, according to the following table:
 
{| class="wikitable"
|-
! Length parameter, ''L'' (3-33) !! Decoded length (3-128)
|-
| 33 || 128
|-
| 32 || 72
|-
| 31 || 48
|-
| 30 || 35
|-
| <30 || ''L''
|}
 
== Worst case data growth ==
As the marker symbols are chosen as the four least common symbols in the uncompressed data stream (with a probability of at most <math>\tfrac{1}{256}</math> each), and a single occurrence of a marker symbol requires two bytes to encode, the compressed data may grow by at most <math>\tfrac{4}{256}</math> < 1.6% compared to the decompressed data (worst case).
 
The liblzg library compensates for this by using a plain 1:1 copy mode if the encoder identifies that the compressed data will be larger than the original uncompressed data. Hence, in practice, the maximum data growth is 0% (plus the size of the data header, which is 16 bytes).
 
== Implementations ==
Both the compression and the decompression algorithms are implemented in an open source library, written in the [[C (programming language)|C programming language]]. There are also several alternate implementations of the decompression algorithm available (for instance in [[JavaScript]] and [[8-bit]] [[assembly language]]).
 
== See also ==
{{Portal|Free software}}
* [[LZ77 and LZ78]]
* [[Run-length encoding]]
 
== External links ==
* [http://liblzg.bitsnbites.eu/ liblzg home page]
 
{{Compression Methods}}
 
[[Category:Lossless compression algorithms]]
[[Category:Free data compression software]]
[[Category:Software using the zlib license]]

Revision as of 19:35, 24 December 2013

Template:Lowercase Im addicted to my hobby Weightlifting.
I to learn Portuguese in my free time.

Also visit my homepage ... Hostgator Vouchers liblzg is a compression library for performing lossless data compression. It implements an algorithm that is a variation of the LZ77 algorithm, called the LZG algorithm, with the primary focus of providing a very simple and fast decoding method. One of the key features of the algorithm is that it requires no memory during decompression. The software library is free software, distributed under the zlib license.

Algorithm

Mining Engineer (Excluding Oil ) Truman from Alma, loves to spend time knotting, largest property developers in singapore developers in singapore and stamp collecting. Recently had a family visit to Urnes Stave Church.

If a duplicate series of bytes (a repeated string) is spotted in the uncompressed data stream, then a back-reference is inserted, linking to the previous location of that identical string instead. An encoded match to an earlier string consists of a length (3–128 bytes) and a distance (1–526,341 bytes). The level of compression can be controlled by specifying the maximum distance for which duplicated strings will be searched (this is the size of the sliding window).

Data format

The data format consists of a header, followed by the compressed data. The header contains an identifier and house keeping information, such as compressed and decompressed data sizes and a 32-bit checksum (a variant of the Fletcher checksum).

The compressed data starts with four bytes, identifying four unique 8-bit marker symbols (m1, m2, m3 and m4). These are used to separate literal data bytes from various forms of length-distance pair encodings.

Any symbol that is not a marker byte is considered a literal byte, and will be copied as is to the decompressed data buffer. However, if the decoder encounters any of the four marker bytes, it will decode a length-distance pair that is used as a back reference into the previously decompressed data.

The marker bytes are interpreted as follows (% denotes a binary number):

General copy (m1)

m1 represents the most general form of a copy operation, and it occupies four bytes in the compressed data stream:

m1 %ooolllll %mmmmmmmm %nnnnnnnn

...where length=DECODELENGTH(%lllll+2), and offset=%ooommmmmmmmnnnnnnnn + 2056.

Medium copy (m2)

m2 is a shorter form of a copy operation, occupying three bytes in the compressed data stream:

m2 %ooolllll %mmmmmmmm

...where length=DECODELENGTH(%lllll+2), and offset=%ooommmmmmmm + 8.

Short copy (m3)

m3 requires only two bytes, and is used for short lengths, close to the marker:

m3 %lloooooo

...where length=%ll+3, and offset=%oooooo + 8.

Near copy (m4)

m4 requires only two bytes, and is used for nearby copies (including RLE, when the offset is 1):

m4 %ooolllll

...where length=DECODELENGTH(%lllll+2), and offset=%ooo + 1.

Literal copy

As a special case, if any of the marker symbols are followed by a zero byte (0), the marker symbol itself is written to the decompressed buffer.

Non-linear length encoding

The DECODELENGTH function implements a non-linear mapping of a number in the range 3-33 to a number in the range 3-128, according to the following table:

Length parameter, L (3-33) Decoded length (3-128)
33 128
32 72
31 48
30 35
<30 L

Worst case data growth

As the marker symbols are chosen as the four least common symbols in the uncompressed data stream (with a probability of at most each), and a single occurrence of a marker symbol requires two bytes to encode, the compressed data may grow by at most < 1.6% compared to the decompressed data (worst case).

The liblzg library compensates for this by using a plain 1:1 copy mode if the encoder identifies that the compressed data will be larger than the original uncompressed data. Hence, in practice, the maximum data growth is 0% (plus the size of the data header, which is 16 bytes).

Implementations

Both the compression and the decompression algorithms are implemented in an open source library, written in the C programming language. There are also several alternate implementations of the decompression algorithm available (for instance in JavaScript and 8-bit assembly language).

See also

Sportspersons Hyslop from Nicolet, usually spends time with pastimes for example martial arts, property developers condominium in singapore singapore and hot rods. Maintains a trip site and has lots to write about after touring Gulf of Porto: Calanche of Piana.

External links

Template:Compression Methods