fast_divide32 man page on NetBSD

Man page or keyword search:  
man Server   9087 pages
apropos Keyword Search (all sections)
Output format
NetBSD logo
[printable version]

FAST_DIVIDE32(3)	 BSD Library Functions Manual	      FAST_DIVIDE32(3)

NAME
     fast_divide32, fast_divide32_prepare, fast_remainder32 — fast 32bit divi‐
     sion and remainder

SYNOPSIS
     #include <sys/bitops.h>

     uint32_t
     fast_divide32(uint32_t v, uint32_t div, uint32_t m, uint8_t s1,
	 uint8_t s2);

     uint32_t
     fast_remainder32(uint32_t v, uint32_t div, uint32_t m, uint8_t s1,
	 uint8_t s2);

     void
     fast_divide32_prepare(uint32_t div, uint32_t *m, uint8_t *s1,
	 uint8_t *s2);

DESCRIPTION
     The fast_divide32 and fast_remainder32 functions compute the equivalent
     of v / div and v % div using optimised CPU instructions.  The constants
     m, s1, and s2 must first be preset for a given value of div with the
     fast_divide32_prepare function.

RATIONALE
     These functions are useful for inner loops and other performance-sensi‐
     tive tasks.  The functions expand to code that is typically slightly
     larger than a plain division instruction, but requires less time to exe‐
     cute.  The code for constant div arguments should be equivalent to the
     assembly created by GCC.

EXAMPLES
     The following example computes q = a / b and r = a % b:

	   uint32_t a, b, q, r, m;
	   uint8_t s1, s2;

	   fast_divide32_prepare(b, &m, &s1, &s2);

	   q = fast_divide32(a, b, m, s1, s2);
	   r = fast_remainder32(a, b, m, s1, s2);

SEE ALSO
     bitops(3), div(3), remainder(3)

     Torbjörn Granlund and Peter L. Montgomery, "Division by Invariant
     Integers Using Multiplication", ACM SIGPLAN Notices, Issue 6, Volume 29,
     http://gmplib.org/~tege/divcnst-pldi94.pdf, 61-72, June 1994.

HISTORY
     The fast_divide32 function appeared in NetBSD 6.0.

BSD				 May 10, 2011				   BSD
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server NetBSD

List of man pages available for NetBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net