177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//===-- divxc3_test.c - Test __divxc3 -------------------------------------===// 277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// 377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// The LLVM Compiler Infrastructure 477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// 577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// This file is distributed under the University of Illinois Open Source 677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// License. See LICENSE.TXT for details. 777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// 877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//===----------------------------------------------------------------------===// 977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// 1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// This file tests __divxc3 for the compiler_rt library. 1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// 1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//===----------------------------------------------------------------------===// 1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#if !_ARCH_PPC 1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include "int_lib.h" 1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <math.h> 1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <complex.h> 1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <stdio.h> 2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// Returns: the quotient of (a + ib) / (c + id) 2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaolong double _Complex 2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao__divxc3(long double __a, long double __b, long double __c, long double __d); 2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoenum {zero, non_zero, inf, NaN, non_zero_nan}; 2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint 2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoclassify(long double _Complex x) 3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{ 3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (x == 0) 3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return zero; 3377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (isinf(creall(x)) || isinf(cimagl(x))) 3477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return inf; 3577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (isnan(creall(x)) && isnan(cimagl(x))) 3677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return NaN; 3777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (isnan(creall(x))) 3877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 3977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (cimagl(x) == 0) 4077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return NaN; 4177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return non_zero_nan; 4277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 4377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (isnan(cimagl(x))) 4477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 4577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (creall(x) == 0) 4677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return NaN; 4777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return non_zero_nan; 4877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 4977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return non_zero; 5077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao} 5177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 5277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint test__divxc3(long double a, long double b, long double c, long double d) 5377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{ 5477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao long double _Complex r = __divxc3(a, b, c, d); 5577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// printf("test__divxc3(%Lf, %Lf, %Lf, %Lf) = %Lf + I%Lf\n", 5677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// a, b, c, d, creall(r), cimagl(r)); 5777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao long double _Complex dividend; 5877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao long double _Complex divisor; 5977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 6077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao __real__ dividend = a; 6177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao __imag__ dividend = b; 6277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao __real__ divisor = c; 6377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao __imag__ divisor = d; 6477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 6577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao switch (classify(dividend)) 6677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 6777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case zero: 6877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao switch (classify(divisor)) 6977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 7077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case zero: 7177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 7277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 7377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 7477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero: 7577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != zero) 7677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 7777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 7877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case inf: 7977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != zero) 8077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 8177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 8277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case NaN: 8377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 8477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 8577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 8677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero_nan: 8777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 8877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 8977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 9077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 9177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 9277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero: 9377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao switch (classify(divisor)) 9477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 9577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case zero: 9677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != inf) 9777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 9877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 9977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero: 10077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != non_zero) 10177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 10277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 10377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao long double _Complex z = (a * c + b * d) / (c * c + d * d) 10477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao + (b * c - a * d) / (c * c + d * d) * _Complex_I; 10577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (cabs((r - z)/r) > 1.e-6) 10677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 10777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 10877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 10977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case inf: 11077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != zero) 11177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 11277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 11377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case NaN: 11477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 11577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 11677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 11777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero_nan: 11877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 11977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 12077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 12177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 12277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 12377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case inf: 12477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao switch (classify(divisor)) 12577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 12677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case zero: 12777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != inf) 12877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 12977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 13077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero: 13177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != inf) 13277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 13377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 13477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case inf: 13577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 13677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 13777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 13877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case NaN: 13977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 14077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 14177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 14277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero_nan: 14377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 14477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 14577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 14677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 14777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 14877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case NaN: 14977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao switch (classify(divisor)) 15077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 15177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case zero: 15277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 15377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 15477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 15577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero: 15677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 15777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 15877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 15977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case inf: 16077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 16177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 16277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 16377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case NaN: 16477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 16577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 16677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 16777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero_nan: 16877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 16977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 17077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 17177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 17277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 17377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero_nan: 17477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao switch (classify(divisor)) 17577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 17677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case zero: 17777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != inf) 17877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 17977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 18077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero: 18177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 18277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 18377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 18477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case inf: 18577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 18677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 18777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 18877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case NaN: 18977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 19077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 19177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 19277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao case non_zero_nan: 19377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (classify(r) != NaN) 19477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 19577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 19677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 19777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao break; 19877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 19977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 20077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 0; 20177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao} 20277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 20377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaolong double x[][2] = 20477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{ 20577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 1.e-6, 1.e-6}, 20677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1.e-6, 1.e-6}, 20777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1.e-6, -1.e-6}, 20877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 1.e-6, -1.e-6}, 20977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 21077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 1.e+6, 1.e-6}, 21177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1.e+6, 1.e-6}, 21277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1.e+6, -1.e-6}, 21377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 1.e+6, -1.e-6}, 21477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 21577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 1.e-6, 1.e+6}, 21677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1.e-6, 1.e+6}, 21777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1.e-6, -1.e+6}, 21877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 1.e-6, -1.e+6}, 21977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 22077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 1.e+6, 1.e+6}, 22177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1.e+6, 1.e+6}, 22277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1.e+6, -1.e+6}, 22377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 1.e+6, -1.e+6}, 22477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 22577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, NAN}, 22677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, NAN}, 22777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, NAN}, 22877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, NAN}, 22977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, NAN}, 23077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., NAN}, 23177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., NAN}, 23277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, NAN}, 23377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, NAN}, 23477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, NAN}, 23577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, NAN}, 23677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 23777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, -INFINITY}, 23877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, -INFINITY}, 23977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, -INFINITY}, 24077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, -INFINITY}, 24177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, -INFINITY}, 24277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., -INFINITY}, 24377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., -INFINITY}, 24477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, -INFINITY}, 24577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, -INFINITY}, 24677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, -INFINITY}, 24777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, -INFINITY}, 24877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 24977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, -2}, 25077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, -2}, 25177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, -2}, 25277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, -2}, 25377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, -2}, 25477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., -2}, 25577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., -2}, 25677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, -2}, 25777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, -2}, 25877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, -2}, 25977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, -2}, 26077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 26177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, -1}, 26277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, -1}, 26377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, -1}, 26477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, -1}, 26577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, -1}, 26677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., -1}, 26777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., -1}, 26877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, -1}, 26977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, -1}, 27077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, -1}, 27177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, -1}, 27277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 27377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, -0.5}, 27477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, -0.5}, 27577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, -0.5}, 27677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, -0.5}, 27777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, -0.5}, 27877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., -0.5}, 27977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., -0.5}, 28077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, -0.5}, 28177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, -0.5}, 28277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, -0.5}, 28377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, -0.5}, 28477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 28577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, -0.}, 28677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, -0.}, 28777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, -0.}, 28877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, -0.}, 28977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, -0.}, 29077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., -0.}, 29177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., -0.}, 29277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, -0.}, 29377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, -0.}, 29477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, -0.}, 29577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, -0.}, 29677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 29777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, 0.}, 29877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, 0.}, 29977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, 0.}, 30077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, 0.}, 30177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, 0.}, 30277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., 0.}, 30377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., 0.}, 30477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, 0.}, 30577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, 0.}, 30677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, 0.}, 30777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, 0.}, 30877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 30977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, 0.5}, 31077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, 0.5}, 31177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, 0.5}, 31277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, 0.5}, 31377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, 0.5}, 31477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., 0.5}, 31577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., 0.5}, 31677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, 0.5}, 31777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, 0.5}, 31877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, 0.5}, 31977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, 0.5}, 32077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 32177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, 1}, 32277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, 1}, 32377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, 1}, 32477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, 1}, 32577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, 1}, 32677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., 1}, 32777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., 1}, 32877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, 1}, 32977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, 1}, 33077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, 1}, 33177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, 1}, 33277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 33377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, 2}, 33477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, 2}, 33577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, 2}, 33677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, 2}, 33777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, 2}, 33877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., 2}, 33977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., 2}, 34077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, 2}, 34177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, 2}, 34277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, 2}, 34377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, 2}, 34477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 34577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {NAN, INFINITY}, 34677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-INFINITY, INFINITY}, 34777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-2, INFINITY}, 34877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-1, INFINITY}, 34977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0.5, INFINITY}, 35077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {-0., INFINITY}, 35177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {+0., INFINITY}, 35277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {0.5, INFINITY}, 35377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {1, INFINITY}, 35477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {2, INFINITY}, 35577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao {INFINITY, INFINITY} 35677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 35777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}; 35877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 35977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#endif 36077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 36177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint main() 36277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{ 36377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#if !_ARCH_PPC 36477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao const unsigned N = sizeof(x) / sizeof(x[0]); 36577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao unsigned i, j; 36677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao for (i = 0; i < N; ++i) 36777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 36877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao for (j = 0; j < N; ++j) 36977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao { 37077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (test__divxc3(x[i][0], x[i][1], x[j][0], x[j][1])) 37177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 1; 37277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 37377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 37477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 37577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#endif 37677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 0; 37777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao} 378