84 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C
		
	
	
	
| /*********************************************************************/
 | |
| /* Copyright 2009, 2010 The University of Texas at Austin.           */
 | |
| /* All rights reserved.                                              */
 | |
| /*                                                                   */
 | |
| /* Redistribution and use in source and binary forms, with or        */
 | |
| /* without modification, are permitted provided that the following   */
 | |
| /* conditions are met:                                               */
 | |
| /*                                                                   */
 | |
| /*   1. Redistributions of source code must retain the above         */
 | |
| /*      copyright notice, this list of conditions and the following  */
 | |
| /*      disclaimer.                                                  */
 | |
| /*                                                                   */
 | |
| /*   2. Redistributions in binary form must reproduce the above      */
 | |
| /*      copyright notice, this list of conditions and the following  */
 | |
| /*      disclaimer in the documentation and/or other materials       */
 | |
| /*      provided with the distribution.                              */
 | |
| /*                                                                   */
 | |
| /*    THIS  SOFTWARE IS PROVIDED  BY THE  UNIVERSITY OF  TEXAS AT    */
 | |
| /*    AUSTIN  ``AS IS''  AND ANY  EXPRESS OR  IMPLIED WARRANTIES,    */
 | |
| /*    INCLUDING, BUT  NOT LIMITED  TO, THE IMPLIED  WARRANTIES OF    */
 | |
| /*    MERCHANTABILITY  AND FITNESS FOR  A PARTICULAR  PURPOSE ARE    */
 | |
| /*    DISCLAIMED.  IN  NO EVENT SHALL THE UNIVERSITY  OF TEXAS AT    */
 | |
| /*    AUSTIN OR CONTRIBUTORS BE  LIABLE FOR ANY DIRECT, INDIRECT,    */
 | |
| /*    INCIDENTAL,  SPECIAL, EXEMPLARY,  OR  CONSEQUENTIAL DAMAGES    */
 | |
| /*    (INCLUDING, BUT  NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE    */
 | |
| /*    GOODS  OR  SERVICES; LOSS  OF  USE,  DATA,  OR PROFITS;  OR    */
 | |
| /*    BUSINESS INTERRUPTION) HOWEVER CAUSED  AND ON ANY THEORY OF    */
 | |
| /*    LIABILITY, WHETHER  IN CONTRACT, STRICT  LIABILITY, OR TORT    */
 | |
| /*    (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY WAY OUT    */
 | |
| /*    OF  THE  USE OF  THIS  SOFTWARE,  EVEN  IF ADVISED  OF  THE    */
 | |
| /*    POSSIBILITY OF SUCH DAMAGE.                                    */
 | |
| /*                                                                   */
 | |
| /* The views and conclusions contained in the software and           */
 | |
| /* documentation are those of the authors and should not be          */
 | |
| /* interpreted as representing official policies, either expressed   */
 | |
| /* or implied, of The University of Texas at Austin.                 */
 | |
| /*********************************************************************/
 | |
| 
 | |
| #include "common.h"
 | |
| 
 | |
| #ifdef SMP
 | |
| #if !defined(USE64BITINT) || defined(ARCH_X86)
 | |
| unsigned int blas_quick_divide_table[] = {
 | |
|   0x00000000, 0x00000001, 0x80000001, 0x55555556,
 | |
|   0x40000001, 0x33333334, 0x2aaaaaab, 0x24924925,
 | |
|   0x20000001, 0x1c71c71d, 0x1999999a, 0x1745d175,
 | |
|   0x15555556, 0x13b13b14, 0x12492493, 0x11111112,
 | |
|   0x10000001, 0x0f0f0f10, 0x0e38e38f, 0x0d79435f,
 | |
|   0x0ccccccd, 0x0c30c30d, 0x0ba2e8bb, 0x0b21642d,
 | |
|   0x0aaaaaab, 0x0a3d70a4, 0x09d89d8a, 0x097b425f,
 | |
|   0x0924924a, 0x08d3dcb1, 0x08888889, 0x08421085,
 | |
|   0x08000001, 0x07c1f07d, 0x07878788, 0x07507508,
 | |
|   0x071c71c8, 0x06eb3e46, 0x06bca1b0, 0x06906907,
 | |
|   0x06666667, 0x063e7064, 0x06186187, 0x05f417d1,
 | |
|   0x05d1745e, 0x05b05b06, 0x0590b217, 0x0572620b,
 | |
|   0x05555556, 0x0539782a, 0x051eb852, 0x05050506,
 | |
|   0x04ec4ec5, 0x04d4873f, 0x04bda130, 0x04a7904b,
 | |
|   0x04924925, 0x047dc120, 0x0469ee59, 0x0456c798,
 | |
|   0x04444445, 0x04325c54, 0x04210843, 0x04104105,
 | |
|   0x04000001,
 | |
| };
 | |
| #else
 | |
| BLASULONG blas_quick_divide_table[] = {
 | |
| 0x0000000000000000, 0x0000000000000001, 0x8000000000000001, 0x5555555555555557,
 | |
| 0x4000000000000001, 0x3333333333333335, 0x2aaaaaaaaaaaaaac, 0x2492492492492494,
 | |
| 0x2000000000000001, 0x1c71c71c71c71c73, 0x199999999999999b, 0x1745d1745d1745d3,
 | |
| 0x1555555555555557, 0x13b13b13b13b13b3, 0x124924924924924b, 0x1111111111111113,
 | |
| 0x1000000000000001, 0x0f0f0f0f0f0f0f11, 0x0e38e38e38e38e3a, 0x0d79435e50d79437,
 | |
| 0x0cccccccccccccce, 0x0c30c30c30c30c32, 0x0ba2e8ba2e8ba2ea, 0x0b21642c8590b218,
 | |
| 0x0aaaaaaaaaaaaaac, 0x0a3d70a3d70a3d72, 0x09d89d89d89d89da, 0x097b425ed097b427,
 | |
| 0x0924924924924926, 0x08d3dcb08d3dcb0a, 0x088888888888888a, 0x0842108421084212,
 | |
| 0x0800000000000001, 0x07c1f07c1f07c1f2, 0x0787878787878789, 0x0750750750750752,
 | |
| 0x071c71c71c71c71e, 0x06eb3e45306eb3e6, 0x06bca1af286bca1c, 0x0690690690690692,
 | |
| 0x0666666666666668, 0x063e7063e7063e72, 0x061861861861861a, 0x05f417d05f417d07,
 | |
| 0x05d1745d1745d176, 0x05b05b05b05b05b2, 0x0590b21642c8590d, 0x0572620ae4c415cb,
 | |
| 0x0555555555555557, 0x05397829cbc14e60, 0x051eb851eb851eba, 0x0505050505050507,
 | |
| 0x04ec4ec4ec4ec4ee, 0x04d4873ecade304f, 0x04bda12f684bda14, 0x04a7904a7904a792,
 | |
| 0x0492492492492494, 0x047dc11f7047dc13, 0x0469ee58469ee586, 0x0456c797dd49c343,
 | |
| 0x0444444444444446, 0x04325c53ef368eb2, 0x042108421084210a, 0x0410410410410412,
 | |
| 0x0400000000000001,
 | |
| };
 | |
| #endif
 | |
| #endif
 |