diff --git a/benchmarks/Android.mk b/benchmarks/Android.mk index c3eb6d3fb..e1580feb4 100644 --- a/benchmarks/Android.mk +++ b/benchmarks/Android.mk @@ -20,12 +20,29 @@ LOCAL_PATH := $(call my-dir) # Benchmarks library, usable by projects outside this directory. # ----------------------------------------------------------------------------- +benchmark_cflags := \ + -O2 \ + -fno-builtin \ + -Wall \ + -Wextra \ + -Werror \ + -Wunused \ + +benchmark_cppflags := \ + -std=gnu++11 \ + +benchmarklib_src_files := \ + Benchmark.cpp \ + utils.cpp \ + main.cpp \ + include $(CLEAR_VARS) LOCAL_MODULE := libbenchmark -LOCAL_CFLAGS += -O2 -Wall -Wextra -Werror -LOCAL_SRC_FILES := benchmark_main.cpp -LOCAL_C_INCLUDES := $(LOCAL_PATH)/include -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include +LOCAL_CFLAGS := $(benchmark_cflags) +LOCAL_CPPFLAGS := $(benchmark_cppflags) +LOCAL_SRC_FILES := $(benchmarklib_src_files) +LOCAL_C_INCLUDES := $(benchmark_c_includes) +LOCAL_STATIC_LIBRARIES := libbase include $(BUILD_STATIC_LIBRARY) # Only supported on linux systems. @@ -33,11 +50,12 @@ ifeq ($(HOST_OS),linux) include $(CLEAR_VARS) LOCAL_MODULE := libbenchmark -LOCAL_CFLAGS += -O2 -Wall -Wextra -Werror -LOCAL_SRC_FILES := benchmark_main.cpp -LOCAL_C_INCLUDES := $(LOCAL_PATH)/include -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include +LOCAL_CFLAGS := $(benchmark_cflags) +LOCAL_CPPFLAGS := $(benchmark_cppflags) +LOCAL_SRC_FILES := $(benchmarklib_src_files) +LOCAL_C_INCLUDES := $(benchmark_c_includes) LOCAL_MULTILIB := both +LOCAL_STATIC_LIBRARIES := libbase include $(BUILD_HOST_STATIC_LIBRARY) endif @@ -45,16 +63,9 @@ endif # ----------------------------------------------------------------------------- # Benchmarks. # ----------------------------------------------------------------------------- - -benchmark_c_flags = \ - -O2 \ - -Wall -Wextra -Wunused \ - -Werror \ - -fno-builtin \ - -std=gnu++11 \ - -benchmark_src_files = \ +benchmark_src_files := \ math_benchmark.cpp \ + property_benchmark.cpp \ pthread_benchmark.cpp \ semaphore_benchmark.cpp \ stdio_benchmark.cpp \ @@ -70,9 +81,10 @@ LOCAL_MODULE := bionic-benchmarks LOCAL_MODULE_STEM_32 := bionic-benchmarks32 LOCAL_MODULE_STEM_64 := bionic-benchmarks64 LOCAL_MULTILIB := both -LOCAL_CFLAGS += $(benchmark_c_flags) -LOCAL_SRC_FILES := $(benchmark_src_files) property_benchmark.cpp -LOCAL_STATIC_LIBRARIES += libbenchmark +LOCAL_CFLAGS := $(benchmark_cflags) +LOCAL_CPPFLAGS := $(benchmark_cppflags) +LOCAL_SRC_FILES := $(benchmark_src_files) +LOCAL_STATIC_LIBRARIES := libbenchmark libbase include $(BUILD_EXECUTABLE) # We don't build a static benchmark executable because it's not usually @@ -90,10 +102,11 @@ LOCAL_MODULE := bionic-benchmarks-glibc LOCAL_MODULE_STEM_32 := bionic-benchmarks-glibc32 LOCAL_MODULE_STEM_64 := bionic-benchmarks-glibc64 LOCAL_MULTILIB := both -LOCAL_CFLAGS += $(benchmark_c_flags) -LOCAL_LDFLAGS += -lrt +LOCAL_CFLAGS := $(benchmark_cflags) +LOCAL_CPPFLAGS := $(benchmark_cppflags) +LOCAL_LDFLAGS := -lrt LOCAL_SRC_FILES := $(benchmark_src_files) -LOCAL_STATIC_LIBRARIES += libbenchmark +LOCAL_STATIC_LIBRARIES := libbenchmark libbase include $(BUILD_HOST_EXECUTABLE) endif diff --git a/benchmarks/Benchmark.cpp b/benchmarks/Benchmark.cpp new file mode 100644 index 000000000..ea6000fe5 --- /dev/null +++ b/benchmarks/Benchmark.cpp @@ -0,0 +1,159 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include + +#include "utils.h" + +namespace testing { + +static uint64_t NanoTime() { + struct timespec t; + t.tv_sec = t.tv_nsec = 0; + clock_gettime(CLOCK_MONOTONIC, &t); + return static_cast(t.tv_sec) * 1000000000LL + t.tv_nsec; +} + +bool Benchmark::header_printed_; + +std::vector& Benchmark::List() { + static std::vector list; + return list; +} + +int Benchmark::MaxNameColumnWidth() { + size_t max = 20; + for (auto& benchmark : List()) { + max = std::max(max, benchmark->NameColumnWidth()); + } + return static_cast(max); +} + +size_t Benchmark::RunAll(std::vector& regs) { + size_t benchmarks_run = 0; + header_printed_ = false; + for (auto& benchmark : List()) { + benchmarks_run += benchmark->RunAllArgs(regs); + } + return benchmarks_run; +} + +void Benchmark::PrintHeader() { + if (!header_printed_) { + printf("%-*s %10s %10s\n", MaxNameColumnWidth(), "", "iterations", "ns/op"); + header_printed_ = true; + } +} + +template +bool BenchmarkT::ShouldRun(std::vector& regs, T arg) { + if (regs.empty()) { + return true; + } + + for (const auto& re : regs) { + if (regexec(re, GetNameStr(arg).c_str(), 0, NULL, 0) != REG_NOMATCH) { + return true; + } + } + return false; +} + +void Benchmark::StopBenchmarkTiming() { + if (start_time_ns_ != 0) { + total_time_ns_ += NanoTime() - start_time_ns_; + } + start_time_ns_ = 0; +} + +void Benchmark::StartBenchmarkTiming() { + if (start_time_ns_ == 0) { + start_time_ns_ = NanoTime(); + } +} + +std::string BenchmarkWithoutArg::GetNameStr(void*) { + return Name(); +} + +template <> +std::string BenchmarkWithArg::GetNameStr(int arg) { + return Name() + "/" + PrettyInt(arg, 2); +} + +template <> +std::string BenchmarkWithArg::GetNameStr(double arg) { + return Name() + "/" + android::base::StringPrintf("%0.6f", arg); +} + +template +void BenchmarkT::RunWithArg(T arg) { + int new_iterations = 1; + int iterations; + while (new_iterations < 1e8) { + bytes_processed_ = 0; + total_time_ns_ = 0; + start_time_ns_ = 0; + + iterations = new_iterations; + RunIterations(iterations, arg); + if (total_time_ns_ >= 1e9) { + break; + } + + if (total_time_ns_/iterations == 0) { + new_iterations = 1e9; + } else { + new_iterations = 1e9/ (total_time_ns_/iterations); + } + new_iterations = std::max(iterations + 1, + std::min(new_iterations + new_iterations/2, 100*iterations)); + + new_iterations = Round(new_iterations); + } + + printf("%-*s %10s %10" PRId64, MaxNameColumnWidth(), GetNameStr(arg).c_str(), + PrettyInt(iterations, 10).c_str(), total_time_ns_/iterations); + + if (total_time_ns_ > 0 && bytes_processed_ > 0) { + double gib_processed = static_cast(bytes_processed_)/1e9; + double seconds = static_cast(total_time_ns_)/1e9; + printf(" %8.3f GiB/s", gib_processed/seconds); + } + printf("\n"); + fflush(stdout); +} + +template class BenchmarkT; +template class BenchmarkT; +template class BenchmarkT; + +template class BenchmarkWithArg; +template class BenchmarkWithArg; + +} // namespace testing diff --git a/benchmarks/benchmark/Benchmark.h b/benchmarks/benchmark/Benchmark.h new file mode 100644 index 000000000..ae5c1a228 --- /dev/null +++ b/benchmarks/benchmark/Benchmark.h @@ -0,0 +1,169 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef BENCHMARKS_BENCHMARK_H_ +#define BENCHMARKS_BENCHMARK_H_ + +#include +#include + +#include +#include + +namespace testing { + +class Benchmark { +public: + Benchmark() { + List().push_back(this); + } + virtual ~Benchmark() {} + + virtual std::string Name() = 0; + + virtual size_t RunAllArgs(std::vector&) = 0; + + void SetBenchmarkBytesProcessed(uint64_t bytes) { bytes_processed_ += bytes; } + void StopBenchmarkTiming(); + void StartBenchmarkTiming(); + + // Run all of the benchmarks that have registered. + static size_t RunAll(std::vector&); + + static std::vector& List(); + + static int MaxNameColumnWidth(); + +protected: + virtual size_t NameColumnWidth() = 0; + + uint64_t bytes_processed_; + uint64_t total_time_ns_; + uint64_t start_time_ns_; + + static bool header_printed_; + + static void PrintHeader(); +}; + +template +class BenchmarkT : public Benchmark { +public: + BenchmarkT() {} + virtual ~BenchmarkT() {} + +protected: + bool ShouldRun(std::vector&, T arg); + void RunWithArg(T arg); + virtual void RunIterations(int, T) = 0; + virtual std::string GetNameStr(T) = 0; +}; + +class BenchmarkWithoutArg : public BenchmarkT { +public: + BenchmarkWithoutArg() {} + virtual ~BenchmarkWithoutArg() {} + +protected: + virtual size_t RunAllArgs(std::vector& regs) override { + size_t benchmarks_run = 0; + if (BenchmarkT::ShouldRun(regs, nullptr)) { + PrintHeader(); + RunWithArg(nullptr); + benchmarks_run++; + } + return benchmarks_run; + } + + virtual void RunIterations(int iters, void*) override { + Run(iters); + } + + virtual void Run(int) = 0; + + virtual size_t NameColumnWidth() override { + return Name().size(); + } + + virtual std::string GetNameStr(void *) override; +}; + +template +class BenchmarkWithArg : public BenchmarkT { +public: + BenchmarkWithArg() {} + virtual ~BenchmarkWithArg() {} + + BenchmarkWithArg* Arg(T arg) { + args_.push_back(arg); + return this; + } + +protected: + virtual size_t NameColumnWidth() override { + size_t max = 0; + for (const auto& arg : args_) { + max = std::max(max, GetNameStr(arg).size()); + } + return max; + } + + std::string GetNameStr(T arg) override; + + virtual size_t RunAllArgs(std::vector& regs) override { + size_t benchmarks_run = 0; + for (T& arg : args_) { + if (BenchmarkT::ShouldRun(regs, arg)) { + Benchmark::PrintHeader(); + BenchmarkT::RunWithArg(arg); + benchmarks_run++; + } + } + return benchmarks_run; + } + + virtual void RunIterations(int iters, T arg) override { + Run(iters, arg); + } + + virtual void Run(int iters, T arg) = 0; + +private: + std::vector args_; +}; + +} // namespace testing + +#define BENCHMARK_START(f, super_class) \ + class f : public super_class { \ + public: \ + f() {} \ + virtual ~f() {} \ + virtual std::string Name() override { return #f; } \ + +#define BENCHMARK_NO_ARG(f) \ + BENCHMARK_START(f, ::testing::BenchmarkWithoutArg) \ + virtual void Run(int) override; \ + }; \ + static ::testing::Benchmark* __benchmark_##f = new f() + +#define BENCHMARK_WITH_ARG(f, arg_type) \ + BENCHMARK_START(f, ::testing::BenchmarkWithArg) \ + virtual void Run(int, arg_type) override; \ + }; \ + static ::testing::BenchmarkWithArg* __benchmark_##f = (new f()) + +#endif // BENCHMARKS_BENCHMARK_H_ diff --git a/benchmarks/benchmark_main.cpp b/benchmarks/benchmark_main.cpp deleted file mode 100644 index fae09bec4..000000000 --- a/benchmarks/benchmark_main.cpp +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -#include -#include -#include -#include - -#include -#include - -#include - -static int64_t g_bytes_processed; -static int64_t g_benchmark_total_time_ns; -static int64_t g_benchmark_start_time_ns; -static int g_name_column_width = 20; - -typedef std::vector<::testing::Benchmark*> BenchmarkList; - -static BenchmarkList& Benchmarks() { - static BenchmarkList benchmarks; - return benchmarks; -} - -// Similar to the code in art, but supporting both binary and decimal prefixes. -static std::string PrettyInt(uint64_t count, size_t base) { - if (base != 2 && base != 10) abort(); - - // The byte thresholds at which we display amounts. A count is displayed - // in unit U when kUnitThresholds[U] <= bytes < kUnitThresholds[U+1]. - static const uint64_t kUnitThresholds2[] = { - 1024*1024*1024 /* Gi */, 2*1024*1024 /* Mi */, 3*1024 /* Ki */, 0, - }; - static const uint64_t kUnitThresholds10[] = { - 1000*1000*1000 /* G */, 2*1000*1000 /* M */, 3*1000 /* k */, 0, - }; - static const uint64_t kAmountPerUnit2[] = { 1024*1024*1024, 1024*1024, 1024, 1 }; - static const uint64_t kAmountPerUnit10[] = { 1000*1000*1000, 1000*1000, 1000, 1 }; - static const char* const kUnitStrings2[] = { "Gi", "Mi", "Ki", "" }; - static const char* const kUnitStrings10[] = { "G", "M", "k", "" }; - - // Which set are we using? - const uint64_t* kUnitThresholds = ((base == 2) ? kUnitThresholds2 : kUnitThresholds10); - const uint64_t* kAmountPerUnit = ((base == 2) ? kAmountPerUnit2 : kAmountPerUnit10); - const char* const* kUnitStrings = ((base == 2) ? kUnitStrings2 : kUnitStrings10); - - size_t i = 0; - for (; kUnitThresholds[i] != 0; ++i) { - if (count >= kUnitThresholds[i]) { - break; - } - } - char* s = NULL; - asprintf(&s, "%" PRId64 "%s", count / kAmountPerUnit[i], kUnitStrings[i]); - std::string result(s); - free(s); - return result; -} - -static int Round(int n) { - int base = 1; - while (base*10 < n) { - base *= 10; - } - if (n < 2*base) { - return 2*base; - } - if (n < 5*base) { - return 5*base; - } - return 10*base; -} - -static int64_t NanoTime() { - struct timespec t; - t.tv_sec = t.tv_nsec = 0; - clock_gettime(CLOCK_MONOTONIC, &t); - return static_cast(t.tv_sec) * 1000000000LL + t.tv_nsec; -} - -namespace testing { - -Benchmark* Benchmark::Arg(int arg) { - args_.push_back(arg); - return this; -} - -const char* Benchmark::Name() { - return name_; -} - -bool Benchmark::ShouldRun(int argc, char* argv[]) { - if (argc == 1) { - return true; // With no arguments, we run all benchmarks. - } - // Otherwise, we interpret each argument as a regular expression and - // see if any of our benchmarks match. - for (int i = 1; i < argc; i++) { - regex_t re; - if (regcomp(&re, argv[i], 0) != 0) { - fprintf(stderr, "couldn't compile \"%s\" as a regular expression!\n", argv[i]); - exit(EXIT_FAILURE); - } - int match = regexec(&re, name_, 0, NULL, 0); - regfree(&re); - if (match != REG_NOMATCH) { - return true; - } - } - return false; -} - -void Benchmark::Register(const char* name, void (*fn)(int), void (*fn_range)(int, int)) { - name_ = name; - fn_ = fn; - fn_range_ = fn_range; - - if (fn_ == NULL && fn_range_ == NULL) { - fprintf(stderr, "%s: missing function\n", name_); - exit(EXIT_FAILURE); - } - - Benchmarks().push_back(this); -} - -void Benchmark::Run() { - if (fn_ != NULL) { - RunWithArg(0); - } else { - if (args_.empty()) { - fprintf(stderr, "%s: no args!\n", name_); - exit(EXIT_FAILURE); - } - for (size_t i = 0; i < args_.size(); ++i) { - RunWithArg(args_[i]); - } - } -} - -void Benchmark::RunRepeatedlyWithArg(int iterations, int arg) { - g_bytes_processed = 0; - g_benchmark_total_time_ns = 0; - g_benchmark_start_time_ns = NanoTime(); - if (fn_ != NULL) { - fn_(iterations); - } else { - fn_range_(iterations, arg); - } - if (g_benchmark_start_time_ns != 0) { - g_benchmark_total_time_ns += NanoTime() - g_benchmark_start_time_ns; - } -} - -void Benchmark::RunWithArg(int arg) { - // Run once in case it's expensive. - int iterations = 1; - int64_t realStartTime = NanoTime(); - RunRepeatedlyWithArg(iterations, arg); - int64_t realTotalTime = NanoTime() - realStartTime; - while (realTotalTime < 1e9 && iterations < 1e8) { - int last = iterations; - if (realTotalTime/iterations == 0) { - iterations = 1e9; - } else { - iterations = 1e9 / (realTotalTime/iterations); - } - iterations = std::max(last + 1, std::min(iterations + iterations/2, 100*last)); - iterations = Round(iterations); - realStartTime = NanoTime(); - RunRepeatedlyWithArg(iterations, arg); - realTotalTime = NanoTime() - realStartTime; - } - - char throughput[100]; - throughput[0] = '\0'; - - if (g_benchmark_total_time_ns > 0 && g_bytes_processed > 0) { - double gib_processed = static_cast(g_bytes_processed)/1e9; - double seconds = static_cast(g_benchmark_total_time_ns)/1e9; - snprintf(throughput, sizeof(throughput), " %8.3f GiB/s", gib_processed/seconds); - } - - char full_name[100]; - if (fn_range_ != NULL) { - snprintf(full_name, sizeof(full_name), "%s/%s", name_, PrettyInt(arg, 2).c_str()); - } else { - snprintf(full_name, sizeof(full_name), "%s", name_); - } - - printf("%-*s %10s %10" PRId64 "%s\n", - g_name_column_width, full_name, - PrettyInt(iterations, 10).c_str(), - g_benchmark_total_time_ns/iterations, - throughput); - fflush(stdout); -} - -} // namespace testing - -void SetBenchmarkBytesProcessed(int64_t x) { - g_bytes_processed = x; -} - -void StopBenchmarkTiming() { - if (g_benchmark_start_time_ns != 0) { - g_benchmark_total_time_ns += NanoTime() - g_benchmark_start_time_ns; - } - g_benchmark_start_time_ns = 0; -} - -void StartBenchmarkTiming() { - if (g_benchmark_start_time_ns == 0) { - g_benchmark_start_time_ns = NanoTime(); - } -} - -int main(int argc, char* argv[]) { - if (Benchmarks().empty()) { - fprintf(stderr, "No benchmarks registered!\n"); - exit(EXIT_FAILURE); - } - - for (auto& b : Benchmarks()) { - int name_width = static_cast(strlen(b->Name())); - g_name_column_width = std::max(g_name_column_width, name_width); - } - - bool need_header = true; - for (auto& b : Benchmarks()) { - if (b->ShouldRun(argc, argv)) { - if (need_header) { - printf("%-*s %10s %10s\n", g_name_column_width, "", "iterations", "ns/op"); - fflush(stdout); - need_header = false; - } - b->Run(); - } - } - - if (need_header) { - fprintf(stderr, "No matching benchmarks!\n"); - fprintf(stderr, "Available benchmarks:\n"); - for (auto& b : Benchmarks()) { - fprintf(stderr, " %s\n", b->Name()); - } - exit(EXIT_FAILURE); - } - - return 0; -} diff --git a/benchmarks/include/benchmark.h b/benchmarks/include/benchmark.h deleted file mode 100644 index 7e134a06b..000000000 --- a/benchmarks/include/benchmark.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef BENCHMARKS_BENCHMARK_H_ -#define BENCHMARKS_BENCHMARK_H_ - -#include -#include - -namespace testing { - -class Benchmark { - public: - Benchmark(const char* name, void (*fn)(int)) { - Register(name, fn, NULL); - } - - Benchmark(const char* name, void (*fn_range)(int, int)) { - Register(name, NULL, fn_range); - } - - Benchmark* Arg(int x); - - const char* Name(); - - bool ShouldRun(int argc, char* argv[]); - void Run(); - - private: - const char* name_; - - void (*fn_)(int); - void (*fn_range_)(int, int); - - std::vector args_; - - void Register(const char* name, void (*fn)(int), void (*fn_range)(int, int)); - void RunRepeatedlyWithArg(int iterations, int arg); - void RunWithArg(int arg); -}; - -} // namespace testing - -void SetBenchmarkBytesProcessed(int64_t); -void StopBenchmarkTiming(); -void StartBenchmarkTiming(); - -#define BENCHMARK(f) \ - static ::testing::Benchmark* _benchmark_##f __attribute__((unused)) = \ - (new ::testing::Benchmark(#f, f)) - -#endif diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp new file mode 100644 index 000000000..5bce47904 --- /dev/null +++ b/benchmarks/main.cpp @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include +#include +#include + +#include + +#include + +int main(int argc, char* argv[]) { + if (::testing::Benchmark::List().empty()) { + fprintf(stderr, "No benchmarks registered!\n"); + exit(EXIT_FAILURE); + } + + std::vector regs; + for (int i = 1; i < argc; i++) { + regex_t* re = new regex_t; + int errcode = regcomp(re, argv[i], 0); + if (errcode != 0) { + size_t errbuf_size = regerror(errcode, re, NULL, 0); + if (errbuf_size > 0) { + char* errbuf = new char[errbuf_size]; + regerror(errcode, re, errbuf, errbuf_size); + fprintf(stderr, "Couldn't compile \"%s\" as a regular expression: %s\n", + argv[i], errbuf); + } else { + fprintf(stderr, "Unknown compile error for \"%s\" as a regular expression!\n", argv[i]); + } + exit(EXIT_FAILURE); + } + regs.push_back(re); + } + + if (::testing::Benchmark::RunAll(regs) == 0) { + fprintf(stderr, "No matching benchmarks!\n"); + fprintf(stderr, "Available benchmarks:\n"); + for (const auto& benchmark : ::testing::Benchmark::List()) { + fprintf(stderr, " %s\n", benchmark->Name().c_str()); + } + exit(EXIT_FAILURE); + } + + return 0; +} diff --git a/benchmarks/math_benchmark.cpp b/benchmarks/math_benchmark.cpp index 8d6dd1002..4de28d1b3 100644 --- a/benchmarks/math_benchmark.cpp +++ b/benchmarks/math_benchmark.cpp @@ -14,16 +14,20 @@ * limitations under the License. */ -#include "benchmark.h" - #include #include +#include + +#define AT_COMMON_VALS \ + Arg(1234.0)->Arg(nan(""))->Arg(HUGE_VAL)->Arg(0.0) + // Avoid optimization. volatile double d; volatile double v; -static void BM_math_sqrt(int iters) { +BENCHMARK_NO_ARG(BM_math_sqrt); +void BM_math_sqrt::Run(int iters) { StartBenchmarkTiming(); d = 0.0; @@ -34,9 +38,9 @@ static void BM_math_sqrt(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_math_sqrt); -static void BM_math_log10(int iters) { +BENCHMARK_NO_ARG(BM_math_log10); +void BM_math_log10::Run(int iters) { StartBenchmarkTiming(); d = 0.0; @@ -47,9 +51,9 @@ static void BM_math_log10(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_math_log10); -static void BM_math_logb(int iters) { +BENCHMARK_NO_ARG(BM_math_logb); +void BM_math_logb::Run(int iters) { StartBenchmarkTiming(); d = 0.0; @@ -60,61 +64,22 @@ static void BM_math_logb(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_math_logb); -static void BM_math_isinf_NORMAL(int iters) { +BENCHMARK_WITH_ARG(BM_math_isinf, double)->AT_COMMON_VALS; +void BM_math_isinf::Run(int iters, double value) { StartBenchmarkTiming(); d = 0.0; - v = 1234.0; // FP_NORMAL + v = value; for (int i = 0; i < iters; ++i) { d += (isinf)(v); } StopBenchmarkTiming(); } -BENCHMARK(BM_math_isinf_NORMAL); -static void BM_math_isinf_NAN(int iters) { - StartBenchmarkTiming(); - - d = 0.0; - v = nan(""); // FP_NAN - for (int i = 0; i < iters; ++i) { - d += (isinf)(v); - } - - StopBenchmarkTiming(); -} -BENCHMARK(BM_math_isinf_NAN); - -static void BM_math_isinf_INFINITE(int iters) { - StartBenchmarkTiming(); - - d = 0.0; - v = HUGE_VAL; // FP_INFINITE - for (int i = 0; i < iters; ++i) { - d += (isinf)(v); - } - - StopBenchmarkTiming(); -} -BENCHMARK(BM_math_isinf_INFINITE); - -static void BM_math_isinf_ZERO(int iters) { - StartBenchmarkTiming(); - - d = 0.0; - v = 0.0; // FP_ZERO - for (int i = 0; i < iters; ++i) { - d += (isinf)(v); - } - - StopBenchmarkTiming(); -} -BENCHMARK(BM_math_isinf_ZERO); - -static void BM_math_sin_fast(int iters) { +BENCHMARK_NO_ARG(BM_math_sin_fast); +void BM_math_sin_fast::Run(int iters) { StartBenchmarkTiming(); d = 1.0; @@ -124,9 +89,9 @@ static void BM_math_sin_fast(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_math_sin_fast); -static void BM_math_sin_feupdateenv(int iters) { +BENCHMARK_NO_ARG(BM_math_sin_feupdateenv); +void BM_math_sin_feupdateenv::Run(int iters) { StartBenchmarkTiming(); d = 1.0; @@ -140,9 +105,9 @@ static void BM_math_sin_feupdateenv(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_math_sin_feupdateenv); -static void BM_math_sin_fesetenv(int iters) { +BENCHMARK_NO_ARG(BM_math_sin_fesetenv); +void BM_math_sin_fesetenv::Run(int iters) { StartBenchmarkTiming(); d = 1.0; @@ -156,56 +121,16 @@ static void BM_math_sin_fesetenv(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_math_sin_fesetenv); -static void BM_math_fpclassify_NORMAL(int iters) { +BENCHMARK_WITH_ARG(BM_math_fpclassify, double)->AT_COMMON_VALS; +void BM_math_fpclassify::Run(int iters, double value) { StartBenchmarkTiming(); d = 0.0; - v = 1234.0; // FP_NORMAL + v = value; for (int i = 0; i < iters; ++i) { d += fpclassify(v); } StopBenchmarkTiming(); } -BENCHMARK(BM_math_fpclassify_NORMAL); - -static void BM_math_fpclassify_NAN(int iters) { - StartBenchmarkTiming(); - - d = 0.0; - v = nan(""); // FP_NAN - for (int i = 0; i < iters; ++i) { - d += fpclassify(v); - } - - StopBenchmarkTiming(); -} -BENCHMARK(BM_math_fpclassify_NAN); - -static void BM_math_fpclassify_INFINITE(int iters) { - StartBenchmarkTiming(); - - d = 0.0; - v = HUGE_VAL; // FP_INFINITE - for (int i = 0; i < iters; ++i) { - d += fpclassify(v); - } - - StopBenchmarkTiming(); -} -BENCHMARK(BM_math_fpclassify_INFINITE); - -static void BM_math_fpclassify_ZERO(int iters) { - StartBenchmarkTiming(); - - d = 0.0; - v = 0.0; // FP_ZERO - for (int i = 0; i < iters; ++i) { - d += fpclassify(v); - } - - StopBenchmarkTiming(); -} -BENCHMARK(BM_math_fpclassify_ZERO); diff --git a/benchmarks/property_benchmark.cpp b/benchmarks/property_benchmark.cpp index 0802b4c30..944cd6849 100644 --- a/benchmarks/property_benchmark.cpp +++ b/benchmarks/property_benchmark.cpp @@ -14,19 +14,21 @@ * limitations under the License. */ -#include "benchmark.h" #include #include #include #include +#include + +#if defined(__BIONIC__) + #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ #include -#include -#include +#include -extern void *__system_property_area__; +extern void* __system_property_area__; // Do not exceed 512, that is about the largest number of properties // that can be created with the current property area size. @@ -34,200 +36,198 @@ extern void *__system_property_area__; Arg(1)->Arg(4)->Arg(16)->Arg(64)->Arg(128)->Arg(256)->Arg(512) struct LocalPropertyTestState { - LocalPropertyTestState(int nprops) : nprops(nprops), valid(false) { - static const char prop_name_chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_."; + LocalPropertyTestState(int nprops) : nprops(nprops), valid(false) { + static const char prop_name_chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_."; - const char* android_data = getenv("ANDROID_DATA"); - if (android_data == NULL) { - printf("ANDROID_DATA environment variable not set\n"); - return; - } - char dir_template[PATH_MAX]; - snprintf(dir_template, sizeof(dir_template), "%s/local/tmp/prop-XXXXXX", android_data); - char *dirname = mkdtemp(dir_template); - if (!dirname) { - printf("making temp file for test state failed (is %s/local/tmp writable?): %s\n", - android_data, strerror(errno)); - return; - } - - old_pa = __system_property_area__; - __system_property_area__ = NULL; - - pa_dirname = dirname; - pa_filename = pa_dirname + "/__properties__"; - - __system_property_set_filename(pa_filename.c_str()); - __system_property_area_init(); - - names = new char* [nprops]; - name_lens = new int[nprops]; - values = new char* [nprops]; - value_lens = new int[nprops]; - - srandom(nprops); - - for (int i = 0; i < nprops; i++) { - // Make sure the name has at least 10 characters to make - // it very unlikely to generate the same random name. - name_lens[i] = (random() % (PROP_NAME_MAX - 10)) + 10; - names[i] = new char[PROP_NAME_MAX + 1]; - size_t prop_name_len = sizeof(prop_name_chars) - 1; - for (int j = 0; j < name_lens[i]; j++) { - if (j == 0 || names[i][j-1] == '.' || j == name_lens[i] - 1) { - // Certain values are not allowed: - // - Don't start name with '.' - // - Don't allow '.' to appear twice in a row - // - Don't allow the name to end with '.' - // This assumes that '.' is the last character in the - // array so that decrementing the length by one removes - // the value from the possible values. - prop_name_len--; - } - names[i][j] = prop_name_chars[random() % prop_name_len]; - } - names[i][name_lens[i]] = 0; - - // Make sure the value contains at least 1 character. - value_lens[i] = (random() % (PROP_VALUE_MAX - 1)) + 1; - values[i] = new char[PROP_VALUE_MAX]; - for (int j = 0; j < value_lens[i]; j++) { - values[i][j] = prop_name_chars[random() % (sizeof(prop_name_chars) - 1)]; - } - - if (__system_property_add(names[i], name_lens[i], values[i], value_lens[i]) < 0) { - printf("Failed to add a property, terminating...\n"); - printf("%s = %.*s\n", names[i], value_lens[i], values[i]); - exit(1); - } - } - - valid = true; + const char* android_data = getenv("ANDROID_DATA"); + if (android_data == NULL) { + printf("ANDROID_DATA environment variable not set\n"); + return; + } + char dir_template[PATH_MAX]; + snprintf(dir_template, sizeof(dir_template), "%s/local/tmp/prop-XXXXXX", android_data); + char* dirname = mkdtemp(dir_template); + if (!dirname) { + printf("making temp file for test state failed (is %s/local/tmp writable?): %s\n", + android_data, strerror(errno)); + return; } - ~LocalPropertyTestState() { - if (!valid) - return; + old_pa = __system_property_area__; + __system_property_area__ = NULL; - __system_property_area__ = old_pa; + pa_dirname = dirname; + pa_filename = pa_dirname + "/__properties__"; - __system_property_set_filename(PROP_FILENAME); - unlink(pa_filename.c_str()); - rmdir(pa_dirname.c_str()); + __system_property_set_filename(pa_filename.c_str()); + __system_property_area_init(); - for (int i = 0; i < nprops; i++) { - delete names[i]; - delete values[i]; + names = new char* [nprops]; + name_lens = new int[nprops]; + values = new char* [nprops]; + value_lens = new int[nprops]; + + srandom(nprops); + + for (int i = 0; i < nprops; i++) { + // Make sure the name has at least 10 characters to make + // it very unlikely to generate the same random name. + name_lens[i] = (random() % (PROP_NAME_MAX - 10)) + 10; + names[i] = new char[PROP_NAME_MAX + 1]; + size_t prop_name_len = sizeof(prop_name_chars) - 1; + for (int j = 0; j < name_lens[i]; j++) { + if (j == 0 || names[i][j-1] == '.' || j == name_lens[i] - 1) { + // Certain values are not allowed: + // - Don't start name with '.' + // - Don't allow '.' to appear twice in a row + // - Don't allow the name to end with '.' + // This assumes that '.' is the last character in the + // array so that decrementing the length by one removes + // the value from the possible values. + prop_name_len--; } - delete[] names; - delete[] name_lens; - delete[] values; - delete[] value_lens; + names[i][j] = prop_name_chars[random() % prop_name_len]; + } + names[i][name_lens[i]] = 0; + + // Make sure the value contains at least 1 character. + value_lens[i] = (random() % (PROP_VALUE_MAX - 1)) + 1; + values[i] = new char[PROP_VALUE_MAX]; + for (int j = 0; j < value_lens[i]; j++) { + values[i][j] = prop_name_chars[random() % (sizeof(prop_name_chars) - 1)]; + } + + if (__system_property_add(names[i], name_lens[i], values[i], value_lens[i]) < 0) { + printf("Failed to add a property, terminating...\n"); + printf("%s = %.*s\n", names[i], value_lens[i], values[i]); + exit(1); + } } + + valid = true; + } + + ~LocalPropertyTestState() { + if (!valid) + return; + + __system_property_area__ = old_pa; + + __system_property_set_filename(PROP_FILENAME); + unlink(pa_filename.c_str()); + rmdir(pa_dirname.c_str()); + + for (int i = 0; i < nprops; i++) { + delete names[i]; + delete values[i]; + } + delete[] names; + delete[] name_lens; + delete[] values; + delete[] value_lens; + } public: - const int nprops; - char **names; - int *name_lens; - char **values; - int *value_lens; - bool valid; + const int nprops; + char** names; + int* name_lens; + char** values; + int* value_lens; + bool valid; private: - std::string pa_dirname; - std::string pa_filename; - void *old_pa; + std::string pa_dirname; + std::string pa_filename; + void* old_pa; }; -static void BM_property_get(int iters, int nprops) -{ - StopBenchmarkTiming(); +BENCHMARK_WITH_ARG(BM_property_get, int)->TEST_NUM_PROPS; +void BM_property_get::Run(int iters, int nprops) { + StopBenchmarkTiming(); - LocalPropertyTestState pa(nprops); - char value[PROP_VALUE_MAX]; + LocalPropertyTestState pa(nprops); + char value[PROP_VALUE_MAX]; - if (!pa.valid) - return; + if (!pa.valid) + return; - srandom(iters * nprops); + srandom(iters * nprops); - StartBenchmarkTiming(); + StartBenchmarkTiming(); - for (int i = 0; i < iters; i++) { - __system_property_get(pa.names[random() % nprops], value); - } - StopBenchmarkTiming(); + for (int i = 0; i < iters; i++) { + __system_property_get(pa.names[random() % nprops], value); + } + StopBenchmarkTiming(); } -BENCHMARK(BM_property_get)->TEST_NUM_PROPS; -static void BM_property_find(int iters, int nprops) -{ - StopBenchmarkTiming(); +BENCHMARK_WITH_ARG(BM_property_find, int)->TEST_NUM_PROPS; +void BM_property_find::Run(int iters, int nprops) { + StopBenchmarkTiming(); - LocalPropertyTestState pa(nprops); + LocalPropertyTestState pa(nprops); - if (!pa.valid) - return; + if (!pa.valid) + return; - srandom(iters * nprops); + srandom(iters * nprops); - StartBenchmarkTiming(); + StartBenchmarkTiming(); - for (int i = 0; i < iters; i++) { - __system_property_find(pa.names[random() % nprops]); - } - StopBenchmarkTiming(); + for (int i = 0; i < iters; i++) { + __system_property_find(pa.names[random() % nprops]); + } + StopBenchmarkTiming(); } -BENCHMARK(BM_property_find)->TEST_NUM_PROPS; -static void BM_property_read(int iters, int nprops) -{ - StopBenchmarkTiming(); +BENCHMARK_WITH_ARG(BM_property_read, int)->TEST_NUM_PROPS; +void BM_property_read::Run(int iters, int nprops) { + StopBenchmarkTiming(); - LocalPropertyTestState pa(nprops); + LocalPropertyTestState pa(nprops); - if (!pa.valid) - return; + if (!pa.valid) + return; - srandom(iters * nprops); - const prop_info** pinfo = new const prop_info*[iters]; - char propvalue[PROP_VALUE_MAX]; + srandom(iters * nprops); + const prop_info** pinfo = new const prop_info*[iters]; + char propvalue[PROP_VALUE_MAX]; - for (int i = 0; i < iters; i++) { - pinfo[i] = __system_property_find(pa.names[random() % nprops]); - } + for (int i = 0; i < iters; i++) { + pinfo[i] = __system_property_find(pa.names[random() % nprops]); + } - StartBenchmarkTiming(); - for (int i = 0; i < iters; i++) { - __system_property_read(pinfo[i], 0, propvalue); - } - StopBenchmarkTiming(); + StartBenchmarkTiming(); + for (int i = 0; i < iters; i++) { + __system_property_read(pinfo[i], 0, propvalue); + } + StopBenchmarkTiming(); - delete[] pinfo; + delete[] pinfo; } -BENCHMARK(BM_property_read)->TEST_NUM_PROPS; -static void BM_property_serial(int iters, int nprops) -{ - StopBenchmarkTiming(); +BENCHMARK_WITH_ARG(BM_property_serial, int)->TEST_NUM_PROPS; +void BM_property_serial::Run(int iters, int nprops) { + StopBenchmarkTiming(); - LocalPropertyTestState pa(nprops); + LocalPropertyTestState pa(nprops); - if (!pa.valid) - return; + if (!pa.valid) + return; - srandom(iters * nprops); - const prop_info** pinfo = new const prop_info*[iters]; + srandom(iters * nprops); + const prop_info** pinfo = new const prop_info*[iters]; - for (int i = 0; i < iters; i++) { - pinfo[i] = __system_property_find(pa.names[random() % nprops]); - } + for (int i = 0; i < iters; i++) { + pinfo[i] = __system_property_find(pa.names[random() % nprops]); + } - StartBenchmarkTiming(); - for (int i = 0; i < iters; i++) { - __system_property_serial(pinfo[i]); - } - StopBenchmarkTiming(); + StartBenchmarkTiming(); + for (int i = 0; i < iters; i++) { + __system_property_serial(pinfo[i]); + } + StopBenchmarkTiming(); - delete[] pinfo; + delete[] pinfo; } -BENCHMARK(BM_property_serial)->TEST_NUM_PROPS; + +#endif // __BIONIC__ diff --git a/benchmarks/pthread_benchmark.cpp b/benchmarks/pthread_benchmark.cpp index 42023e04a..2f6572dd8 100644 --- a/benchmarks/pthread_benchmark.cpp +++ b/benchmarks/pthread_benchmark.cpp @@ -14,14 +14,15 @@ * limitations under the License. */ -#include "benchmark.h" - #include +#include + // Stop GCC optimizing out our pure function. /* Must not be static! */ pthread_t (*pthread_self_fp)() = pthread_self; -static void BM_pthread_self(int iters) { +BENCHMARK_NO_ARG(BM_pthread_self); +void BM_pthread_self::Run(int iters) { StartBenchmarkTiming(); for (int i = 0; i < iters; ++i) { @@ -30,9 +31,9 @@ static void BM_pthread_self(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_self); -static void BM_pthread_getspecific(int iters) { +BENCHMARK_NO_ARG(BM_pthread_getspecific); +void BM_pthread_getspecific::Run(int iters) { StopBenchmarkTiming(); pthread_key_t key; pthread_key_create(&key, NULL); @@ -45,9 +46,9 @@ static void BM_pthread_getspecific(int iters) { StopBenchmarkTiming(); pthread_key_delete(key); } -BENCHMARK(BM_pthread_getspecific); -static void BM_pthread_setspecific(int iters) { +BENCHMARK_NO_ARG(BM_pthread_setspecific); +void BM_pthread_setspecific::Run(int iters) { StopBenchmarkTiming(); pthread_key_t key; pthread_key_create(&key, NULL); @@ -60,12 +61,12 @@ static void BM_pthread_setspecific(int iters) { StopBenchmarkTiming(); pthread_key_delete(key); } -BENCHMARK(BM_pthread_setspecific); static void DummyPthreadOnceInitFunction() { } -static void BM_pthread_once(int iters) { +BENCHMARK_NO_ARG(BM_pthread_once); +void BM_pthread_once::Run(int iters) { StopBenchmarkTiming(); pthread_once_t once = PTHREAD_ONCE_INIT; pthread_once(&once, DummyPthreadOnceInitFunction); @@ -77,9 +78,9 @@ static void BM_pthread_once(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_once); -static void BM_pthread_mutex_lock(int iters) { +BENCHMARK_NO_ARG(BM_pthread_mutex_lock); +void BM_pthread_mutex_lock::Run(int iters) { StopBenchmarkTiming(); pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; StartBenchmarkTiming(); @@ -91,9 +92,9 @@ static void BM_pthread_mutex_lock(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_mutex_lock); -static void BM_pthread_mutex_lock_ERRORCHECK(int iters) { +BENCHMARK_NO_ARG(BM_pthread_mutex_lock_ERRORCHECK); +void BM_pthread_mutex_lock_ERRORCHECK::Run(int iters) { StopBenchmarkTiming(); pthread_mutex_t mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; StartBenchmarkTiming(); @@ -105,9 +106,9 @@ static void BM_pthread_mutex_lock_ERRORCHECK(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_mutex_lock_ERRORCHECK); -static void BM_pthread_mutex_lock_RECURSIVE(int iters) { +BENCHMARK_NO_ARG(BM_pthread_mutex_lock_RECURSIVE); +void BM_pthread_mutex_lock_RECURSIVE::Run(int iters) { StopBenchmarkTiming(); pthread_mutex_t mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; StartBenchmarkTiming(); @@ -119,9 +120,9 @@ static void BM_pthread_mutex_lock_RECURSIVE(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_pthread_mutex_lock_RECURSIVE); -static void BM_pthread_rw_lock_read(int iters) { +BENCHMARK_NO_ARG(BM_pthread_rw_lock_read); +void BM_pthread_rw_lock_read::Run(int iters) { StopBenchmarkTiming(); pthread_rwlock_t lock; pthread_rwlock_init(&lock, NULL); @@ -135,9 +136,9 @@ static void BM_pthread_rw_lock_read(int iters) { StopBenchmarkTiming(); pthread_rwlock_destroy(&lock); } -BENCHMARK(BM_pthread_rw_lock_read); -static void BM_pthread_rw_lock_write(int iters) { +BENCHMARK_NO_ARG(BM_pthread_rw_lock_write); +void BM_pthread_rw_lock_write::Run(int iters) { StopBenchmarkTiming(); pthread_rwlock_t lock; pthread_rwlock_init(&lock, NULL); @@ -151,13 +152,13 @@ static void BM_pthread_rw_lock_write(int iters) { StopBenchmarkTiming(); pthread_rwlock_destroy(&lock); } -BENCHMARK(BM_pthread_rw_lock_write); static void* IdleThread(void*) { return NULL; } -static void BM_pthread_create(int iters) { +BENCHMARK_NO_ARG(BM_pthread_create); +void BM_pthread_create::Run(int iters) { StopBenchmarkTiming(); pthread_t thread; @@ -168,43 +169,45 @@ static void BM_pthread_create(int iters) { pthread_join(thread, NULL); } } -BENCHMARK(BM_pthread_create); -static void* RunThread(void*) { - StopBenchmarkTiming(); +static void* RunThread(void* arg) { + ::testing::Benchmark* benchmark = reinterpret_cast<::testing::Benchmark*>(arg); + benchmark->StopBenchmarkTiming(); return NULL; } -static void BM_pthread_create_and_run(int iters) { +BENCHMARK_NO_ARG(BM_pthread_create_and_run); +void BM_pthread_create_and_run::Run(int iters) { StopBenchmarkTiming(); pthread_t thread; for (int i = 0; i < iters; ++i) { StartBenchmarkTiming(); - pthread_create(&thread, NULL, RunThread, NULL); + pthread_create(&thread, NULL, RunThread, this); pthread_join(thread, NULL); } } -BENCHMARK(BM_pthread_create_and_run); -static void* ExitThread(void*) { - StartBenchmarkTiming(); +static void* ExitThread(void* arg) { + ::testing::Benchmark* benchmark = reinterpret_cast<::testing::Benchmark*>(arg); + benchmark->StartBenchmarkTiming(); pthread_exit(NULL); } -static void BM_pthread_exit_and_join(int iters) { +BENCHMARK_NO_ARG(BM_pthread_exit_and_join); +void BM_pthread_exit_and_join::Run(int iters) { StopBenchmarkTiming(); pthread_t thread; for (int i = 0; i < iters; ++i) { - pthread_create(&thread, NULL, ExitThread, NULL); + pthread_create(&thread, NULL, ExitThread, this); pthread_join(thread, NULL); StopBenchmarkTiming(); } } -BENCHMARK(BM_pthread_exit_and_join); -static void BM_pthread_key_create(int iters) { +BENCHMARK_NO_ARG(BM_pthread_key_create); +void BM_pthread_key_create::Run(int iters) { StopBenchmarkTiming(); pthread_key_t key; @@ -215,9 +218,9 @@ static void BM_pthread_key_create(int iters) { pthread_key_delete(key); } } -BENCHMARK(BM_pthread_key_create); -static void BM_pthread_key_delete(int iters) { +BENCHMARK_NO_ARG(BM_pthread_key_delete); +void BM_pthread_key_delete::Run(int iters) { StopBenchmarkTiming(); pthread_key_t key; @@ -228,4 +231,3 @@ static void BM_pthread_key_delete(int iters) { StopBenchmarkTiming(); } } -BENCHMARK(BM_pthread_key_delete); diff --git a/benchmarks/semaphore_benchmark.cpp b/benchmarks/semaphore_benchmark.cpp index 974b0460e..8dd56849d 100644 --- a/benchmarks/semaphore_benchmark.cpp +++ b/benchmarks/semaphore_benchmark.cpp @@ -14,14 +14,15 @@ * limitations under the License. */ -#include "benchmark.h" - #include #include #include #include -static void BM_semaphore_sem_getvalue(int iters) { +#include + +BENCHMARK_NO_ARG(BM_semaphore_sem_getvalue); +void BM_semaphore_sem_getvalue::Run(int iters) { StopBenchmarkTiming(); sem_t semaphore; sem_init(&semaphore, 1, 1); @@ -34,9 +35,9 @@ static void BM_semaphore_sem_getvalue(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_semaphore_sem_getvalue); -static void BM_semaphore_sem_wait_sem_post(int iters) { +BENCHMARK_NO_ARG(BM_semaphore_sem_wait_sem_post); +void BM_semaphore_sem_wait_sem_post::Run(int iters) { StopBenchmarkTiming(); sem_t semaphore; sem_init(&semaphore, 1, 1); @@ -49,7 +50,6 @@ static void BM_semaphore_sem_wait_sem_post(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_semaphore_sem_wait_sem_post); /* * This test reports the overhead of the underlying futex wake syscall on @@ -87,7 +87,8 @@ static void *BM_semaphore_sem_post_start_thread(void *obj) { return NULL; } -static void BM_semaphore_sem_post(int iters) { +BENCHMARK_NO_ARG(BM_semaphore_sem_post); +void BM_semaphore_sem_post::Run(int iters) { StopBenchmarkTiming(); sem_t semaphore; @@ -100,9 +101,6 @@ static void BM_semaphore_sem_post(int iters) { pthread_attr_setschedparam(&attr, ¶m); pthread_attr_setschedpolicy(&attr, SCHED_OTHER); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); -#ifdef PTHREAD_SET_INHERIT_SCHED - pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED); -#endif pthread_t pthread; pthread_create(&pthread, &attr, BM_semaphore_sem_post_start_thread, &semaphore); pthread_attr_destroy(&attr); @@ -143,99 +141,3 @@ static void BM_semaphore_sem_post(int iters) { sched_yield(); } while (!BM_semaphore_sem_post_running); } -BENCHMARK(BM_semaphore_sem_post); - -/* - * This test reports the overhead of sem_post to sem_wake. A circle of - * num_semaphore - 1 threads are run on a set of semaphores to measure the - * activity. One can calculate the sem_wake overhead alone by: - * - * BM_semaphore_sem_post_sem_wait - BM_semaphore_sem_post - BM_time_clock_gettime - * - * Differences will result if there are more threads than active processors, - * there will be delay induced when scheduling the processes. This cost is - * measured by trying different values of num_semaphore. The governor selected - * will have a major impact on the results for a large number of threads. - * - * To reduce the chances for threads racing ahead and not triggering the - * futex, for example the background threads finish their job before the - * sem_wait is hit in the main thread, the background threads will run at - * batch priority and the main thread at fifo priority. This should generally - * guarantee the main thread completes its task of priming itself with the - * sem_wait before the other threads can start. In practice without the - * sched mechanics here, this works on Android configured kernels, this is - * insurance for wacky(tm) sched configurations. - */ -static void *BM_semaphore_sem_post_sem_wait_start_thread(void *obj) { - sem_t *semaphore = reinterpret_cast(obj); - - while ((BM_semaphore_sem_post_running > 0) && !sem_wait(semaphore)) { - sem_post(semaphore + 1); - } - --BM_semaphore_sem_post_running; - return NULL; -} - -static void BM_semaphore_sem_post_sem_wait_num(int iters, int num_semaphore) { - StopBenchmarkTiming(); - - sem_t semaphore[num_semaphore]; - - for (int i = 0; i < num_semaphore; ++i) { - sem_init(semaphore + i, 0, 0); - } - - pthread_attr_t attr; - pthread_attr_init(&attr); - BM_semaphore_sem_post_running = 1; - struct sched_param param = { 0, }; - pthread_attr_setschedparam(&attr, ¶m); - pthread_attr_setschedpolicy(&attr, SCHED_BATCH); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); -#ifdef PTHREAD_SET_INHERIT_SCHED - pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED); -#endif - for (int i = 0; i < (num_semaphore - 1); ++i) { - pthread_t pthread; - pthread_create(&pthread, &attr, BM_semaphore_sem_post_sem_wait_start_thread, semaphore + i); - } - pthread_attr_destroy(&attr); - sched_yield(); - - param.sched_priority = 1; - sched_setscheduler((pid_t)0, SCHED_FIFO, ¶m); - - StartBenchmarkTiming(); - - for (int i = 0; i < iters; i += num_semaphore) { - sem_post(semaphore); - sem_wait(semaphore + num_semaphore - 1); - } - - StopBenchmarkTiming(); - - param.sched_priority = 0; - sched_setscheduler((pid_t)0, SCHED_OTHER, ¶m); - - if (BM_semaphore_sem_post_running > 0) { - BM_semaphore_sem_post_running = 0; - } - for (int i = 0; - (i < (10 * num_semaphore)) && (BM_semaphore_sem_post_running > (1 - num_semaphore)); - ++i) { - for (int j = 0; j < (num_semaphore - 1); ++j) { - sem_post(semaphore + j); - } - sched_yield(); - } -} - -static void BM_semaphore_sem_post_sem_wait_low(int iters) { - BM_semaphore_sem_post_sem_wait_num(iters, 2); -} -BENCHMARK(BM_semaphore_sem_post_sem_wait_low); - -static void BM_semaphore_sem_post_sem_wait_high(int iters) { - BM_semaphore_sem_post_sem_wait_num(iters, 100); -} -BENCHMARK(BM_semaphore_sem_post_sem_wait_high); diff --git a/benchmarks/stdio_benchmark.cpp b/benchmarks/stdio_benchmark.cpp index 5658a506e..342e56154 100644 --- a/benchmarks/stdio_benchmark.cpp +++ b/benchmarks/stdio_benchmark.cpp @@ -14,11 +14,11 @@ * limitations under the License. */ -#include "benchmark.h" - #include #include +#include + #define KB 1024 #define MB 1024*KB @@ -27,12 +27,12 @@ Arg(1*KB)->Arg(4*KB)->Arg(8*KB)->Arg(16*KB)->Arg(64*KB) template -static void ReadWriteTest(int iters, int chunk_size, Fn f, bool buffered) { - StopBenchmarkTiming(); +void ReadWriteTest(::testing::Benchmark* benchmark, int iters, int chunk_size, Fn f, bool buffered) { + benchmark->StopBenchmarkTiming(); FILE* fp = fopen("/dev/zero", "rw"); __fsetlocking(fp, FSETLOCKING_BYCALLER); char* buf = new char[chunk_size]; - StartBenchmarkTiming(); + benchmark->StartBenchmarkTiming(); if (!buffered) { setvbuf(fp, 0, _IONBF, 0); @@ -42,31 +42,31 @@ static void ReadWriteTest(int iters, int chunk_size, Fn f, bool buffered) { f(buf, chunk_size, 1, fp); } - StopBenchmarkTiming(); - SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(chunk_size)); + benchmark->StopBenchmarkTiming(); + benchmark->SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(chunk_size)); delete[] buf; fclose(fp); } -static void BM_stdio_fread(int iters, int chunk_size) { - ReadWriteTest(iters, chunk_size, fread, true); +BENCHMARK_WITH_ARG(BM_stdio_fread, int)->AT_COMMON_SIZES; +void BM_stdio_fread::Run(int iters, int chunk_size) { + ReadWriteTest(this, iters, chunk_size, fread, true); } -BENCHMARK(BM_stdio_fread)->AT_COMMON_SIZES; -static void BM_stdio_fwrite(int iters, int chunk_size) { - ReadWriteTest(iters, chunk_size, fwrite, true); +BENCHMARK_WITH_ARG(BM_stdio_fwrite, int)->AT_COMMON_SIZES; +void BM_stdio_fwrite::Run(int iters, int chunk_size) { + ReadWriteTest(this, iters, chunk_size, fwrite, true); } -BENCHMARK(BM_stdio_fwrite)->AT_COMMON_SIZES; -static void BM_stdio_fread_unbuffered(int iters, int chunk_size) { - ReadWriteTest(iters, chunk_size, fread, false); +BENCHMARK_WITH_ARG(BM_stdio_fread_unbuffered, int)->AT_COMMON_SIZES; +void BM_stdio_fread_unbuffered::Run(int iters, int chunk_size) { + ReadWriteTest(this, iters, chunk_size, fread, false); } -BENCHMARK(BM_stdio_fread_unbuffered)->AT_COMMON_SIZES; -static void BM_stdio_fwrite_unbuffered(int iters, int chunk_size) { - ReadWriteTest(iters, chunk_size, fwrite, false); +BENCHMARK_WITH_ARG(BM_stdio_fwrite_unbuffered, int)->AT_COMMON_SIZES; +void BM_stdio_fwrite_unbuffered::Run(int iters, int chunk_size) { + ReadWriteTest(this, iters, chunk_size, fwrite, false); } -BENCHMARK(BM_stdio_fwrite_unbuffered)->AT_COMMON_SIZES; static void FopenFgetsFclose(int iters, bool no_locking) { char buf[1024]; @@ -78,12 +78,16 @@ static void FopenFgetsFclose(int iters, bool no_locking) { } } -static void BM_stdio_fopen_fgets_fclose_locking(int iters) { +BENCHMARK_NO_ARG(BM_stdio_fopen_fgets_fclose_locking); +void BM_stdio_fopen_fgets_fclose_locking::Run(int iters) { + StartBenchmarkTiming(); FopenFgetsFclose(iters, false); + StopBenchmarkTiming(); } -BENCHMARK(BM_stdio_fopen_fgets_fclose_locking); -static void BM_stdio_fopen_fgets_fclose_no_locking(int iters) { +BENCHMARK_NO_ARG(BM_stdio_fopen_fgets_fclose_no_locking); +void BM_stdio_fopen_fgets_fclose_no_locking::Run(int iters) { + StartBenchmarkTiming(); FopenFgetsFclose(iters, true); + StopBenchmarkTiming(); } -BENCHMARK(BM_stdio_fopen_fgets_fclose_no_locking); diff --git a/benchmarks/string_benchmark.cpp b/benchmarks/string_benchmark.cpp index 536e253fd..866aa0047 100644 --- a/benchmarks/string_benchmark.cpp +++ b/benchmarks/string_benchmark.cpp @@ -14,10 +14,11 @@ * limitations under the License. */ -#include "benchmark.h" - +#include #include +#include + #define KB 1024 #define MB 1024*KB @@ -26,7 +27,8 @@ // TODO: test unaligned operation too? (currently everything will be 8-byte aligned by malloc.) -static void BM_string_memcmp(int iters, int nbytes) { +BENCHMARK_WITH_ARG(BM_string_memcmp, int)->AT_COMMON_SIZES; +void BM_string_memcmp::Run(int iters, int nbytes) { StopBenchmarkTiming(); char* src = new char[nbytes]; char* dst = new char[nbytes]; memset(src, 'x', nbytes); @@ -39,13 +41,13 @@ static void BM_string_memcmp(int iters, int nbytes) { } StopBenchmarkTiming(); - SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes)); + SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes)); delete[] src; delete[] dst; } -BENCHMARK(BM_string_memcmp)->AT_COMMON_SIZES; -static void BM_string_memcpy(int iters, int nbytes) { +BENCHMARK_WITH_ARG(BM_string_memcpy, int)->AT_COMMON_SIZES; +void BM_string_memcpy::Run(int iters, int nbytes) { StopBenchmarkTiming(); char* src = new char[nbytes]; char* dst = new char[nbytes]; memset(src, 'x', nbytes); @@ -56,13 +58,13 @@ static void BM_string_memcpy(int iters, int nbytes) { } StopBenchmarkTiming(); - SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes)); + SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes)); delete[] src; delete[] dst; } -BENCHMARK(BM_string_memcpy)->AT_COMMON_SIZES; -static void BM_string_memmove(int iters, int nbytes) { +BENCHMARK_WITH_ARG(BM_string_memmove, int)->AT_COMMON_SIZES; +void BM_string_memmove::Run(int iters, int nbytes) { StopBenchmarkTiming(); char* buf = new char[nbytes + 64]; memset(buf, 'x', nbytes + 64); @@ -73,12 +75,12 @@ static void BM_string_memmove(int iters, int nbytes) { } StopBenchmarkTiming(); - SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes)); + SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes)); delete[] buf; } -BENCHMARK(BM_string_memmove)->AT_COMMON_SIZES; -static void BM_string_memset(int iters, int nbytes) { +BENCHMARK_WITH_ARG(BM_string_memset, int)->AT_COMMON_SIZES; +void BM_string_memset::Run(int iters, int nbytes) { StopBenchmarkTiming(); char* dst = new char[nbytes]; StartBenchmarkTiming(); @@ -88,12 +90,12 @@ static void BM_string_memset(int iters, int nbytes) { } StopBenchmarkTiming(); - SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes)); + SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes)); delete[] dst; } -BENCHMARK(BM_string_memset)->AT_COMMON_SIZES; -static void BM_string_strlen(int iters, int nbytes) { +BENCHMARK_WITH_ARG(BM_string_strlen, int)->AT_COMMON_SIZES; +void BM_string_strlen::Run(int iters, int nbytes) { StopBenchmarkTiming(); char* s = new char[nbytes]; memset(s, 'x', nbytes); @@ -106,7 +108,6 @@ static void BM_string_strlen(int iters, int nbytes) { } StopBenchmarkTiming(); - SetBenchmarkBytesProcessed(int64_t(iters) * int64_t(nbytes)); + SetBenchmarkBytesProcessed(uint64_t(iters) * uint64_t(nbytes)); delete[] s; } -BENCHMARK(BM_string_strlen)->AT_COMMON_SIZES; diff --git a/benchmarks/time_benchmark.cpp b/benchmarks/time_benchmark.cpp index f093ec19f..6688bbc57 100644 --- a/benchmarks/time_benchmark.cpp +++ b/benchmarks/time_benchmark.cpp @@ -14,14 +14,14 @@ * limitations under the License. */ -#include "benchmark.h" - -#include #include #include #include -static void BM_time_clock_gettime(int iters) { +#include + +BENCHMARK_NO_ARG(BM_time_clock_gettime); +void BM_time_clock_gettime::Run(int iters) { StartBenchmarkTiming(); timespec t; @@ -31,9 +31,9 @@ static void BM_time_clock_gettime(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_time_clock_gettime); -static void BM_time_clock_gettime_syscall(int iters) { +BENCHMARK_NO_ARG(BM_time_clock_gettime_syscall); +void BM_time_clock_gettime_syscall::Run(int iters) { StartBenchmarkTiming(); timespec t; @@ -43,9 +43,9 @@ static void BM_time_clock_gettime_syscall(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_time_clock_gettime_syscall); -static void BM_time_gettimeofday(int iters) { +BENCHMARK_NO_ARG(BM_time_gettimeofday); +void BM_time_gettimeofday::Run(int iters) { StartBenchmarkTiming(); timeval tv; @@ -55,9 +55,9 @@ static void BM_time_gettimeofday(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_time_gettimeofday); -static void BM_time_gettimeofday_syscall(int iters) { +BENCHMARK_NO_ARG(BM_time_gettimeofday_syscall); +void BM_time_gettimeofday_syscall::Run(int iters) { StartBenchmarkTiming(); timeval tv; @@ -67,9 +67,9 @@ static void BM_time_gettimeofday_syscall(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_time_gettimeofday_syscall); -static void BM_time_time(int iters) { +BENCHMARK_NO_ARG(BM_time_time); +void BM_time_time::Run(int iters) { StartBenchmarkTiming(); for (int i = 0; i < iters; ++i) { @@ -78,4 +78,3 @@ static void BM_time_time(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_time_time); diff --git a/benchmarks/unistd_benchmark.cpp b/benchmarks/unistd_benchmark.cpp index 94be1dd5e..09ca0e6bf 100644 --- a/benchmarks/unistd_benchmark.cpp +++ b/benchmarks/unistd_benchmark.cpp @@ -14,12 +14,13 @@ * limitations under the License. */ -#include "benchmark.h" - #include #include -static void BM_unistd_getpid(int iters) { +#include + +BENCHMARK_NO_ARG(BM_unistd_getpid); +void BM_unistd_getpid::Run(int iters) { StartBenchmarkTiming(); for (int i = 0; i < iters; ++i) { @@ -28,9 +29,9 @@ static void BM_unistd_getpid(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_unistd_getpid); -static void BM_unistd_getpid_syscall(int iters) { +BENCHMARK_NO_ARG(BM_unistd_getpid_syscall); +void BM_unistd_getpid_syscall::Run(int iters) { StartBenchmarkTiming(); for (int i = 0; i < iters; ++i) { @@ -39,14 +40,14 @@ static void BM_unistd_getpid_syscall(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_unistd_getpid_syscall); #if defined(__BIONIC__) // Stop GCC optimizing out our pure function. /* Must not be static! */ pid_t (*gettid_fp)() = gettid; -static void BM_unistd_gettid(int iters) { +BENCHMARK_NO_ARG(BM_unistd_gettid); +void BM_unistd_gettid::Run(int iters) { StartBenchmarkTiming(); for (int i = 0; i < iters; ++i) { @@ -55,11 +56,11 @@ static void BM_unistd_gettid(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_unistd_gettid); #endif -static void BM_unistd_gettid_syscall(int iters) { +BENCHMARK_NO_ARG(BM_unistd_gettid_syscall); +void BM_unistd_gettid_syscall::Run(int iters) { StartBenchmarkTiming(); for (int i = 0; i < iters; ++i) { @@ -68,4 +69,3 @@ static void BM_unistd_gettid_syscall(int iters) { StopBenchmarkTiming(); } -BENCHMARK(BM_unistd_gettid_syscall); diff --git a/benchmarks/utils.cpp b/benchmarks/utils.cpp new file mode 100644 index 000000000..863b9db13 --- /dev/null +++ b/benchmarks/utils.cpp @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include + +#include "utils.h" + +int Round(int n) { + int base = 1; + while (base*10 < n) { + base *= 10; + } + if (n < 2*base) { + return 2*base; + } + if (n < 5*base) { + return 5*base; + } + return 10*base; +} + +// Similar to the code in art, but supporting both binary and decimal prefixes. +std::string PrettyInt(long value, size_t base) { + if (base != 2 && base != 10) abort(); + + uint64_t count = static_cast(value); + bool negative_number = false; + if (value < 0) { + negative_number = true; + count = static_cast(-value); + } + + // The byte thresholds at which we display amounts. A count is displayed + // in unit U when kUnitThresholds[U] <= bytes < kUnitThresholds[U+1]. + static const uint64_t kUnitThresholds2[] = { + 1024*1024*1024 /* Gi */, 2*1024*1024 /* Mi */, 3*1024 /* Ki */, 0, + }; + static const uint64_t kUnitThresholds10[] = { + 1000*1000*1000 /* G */, 2*1000*1000 /* M */, 3*1000 /* k */, 0, + }; + static const uint64_t kAmountPerUnit2[] = { 1024*1024*1024, 1024*1024, 1024, 1 }; + static const uint64_t kAmountPerUnit10[] = { 1000*1000*1000, 1000*1000, 1000, 1 }; + static const char* const kUnitStrings2[] = { "Gi", "Mi", "Ki", "" }; + static const char* const kUnitStrings10[] = { "G", "M", "k", "" }; + + // Which set are we using? + const uint64_t* kUnitThresholds = ((base == 2) ? kUnitThresholds2 : kUnitThresholds10); + const uint64_t* kAmountPerUnit = ((base == 2) ? kAmountPerUnit2 : kAmountPerUnit10); + const char* const* kUnitStrings = ((base == 2) ? kUnitStrings2 : kUnitStrings10); + + size_t i = 0; + for (; kUnitThresholds[i] != 0; ++i) { + if (count >= kUnitThresholds[i]) { + break; + } + } + char* s = NULL; + asprintf(&s, "%s%" PRId64 "%s", (negative_number ? "-" : ""), + count / kAmountPerUnit[i], kUnitStrings[i]); + std::string result(s); + free(s); + return result; +} diff --git a/benchmarks/utils.h b/benchmarks/utils.h new file mode 100644 index 000000000..c3c64bab2 --- /dev/null +++ b/benchmarks/utils.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef BENCHMARKS_UTILS_H +#define BENCHMARKS_UTILS_H + +#include +#include + +int Round(int n); +std::string PrettyInt(long value, size_t base); + +#endif // BENCHMARKS_UTILS_H diff --git a/libc/Android.mk b/libc/Android.mk index fdaa8eea5..7bbdd9901 100644 --- a/libc/Android.mk +++ b/libc/Android.mk @@ -85,7 +85,7 @@ libc_common_src_files += \ bionic/__vsnprintf_chk.cpp \ bionic/__vsprintf_chk.cpp \ -libc_bionic_src_files := \ +libc_bionic_ndk_src_files := \ bionic/abort.cpp \ bionic/accept.cpp \ bionic/accept4.cpp \ @@ -116,16 +116,14 @@ libc_bionic_src_files := \ bionic/error.cpp \ bionic/eventfd_read.cpp \ bionic/eventfd_write.cpp \ + bionic/faccessat.cpp \ bionic/fchmod.cpp \ bionic/fchmodat.cpp \ bionic/ffs.cpp \ bionic/flockfile.cpp \ - bionic/fork.cpp \ bionic/fpclassify.cpp \ bionic/futimens.cpp \ - bionic/getauxval.cpp \ bionic/getcwd.cpp \ - bionic/getentropy_linux.c \ bionic/gethostname.cpp \ bionic/getpgrp.cpp \ bionic/getpid.cpp \ @@ -146,6 +144,7 @@ libc_bionic_src_files := \ bionic/mbrtoc16.cpp \ bionic/mbrtoc32.cpp \ bionic/mbstate.cpp \ + bionic/mempcpy.cpp \ bionic/mkdir.cpp \ bionic/mkfifo.cpp \ bionic/mknod.cpp \ @@ -160,27 +159,6 @@ libc_bionic_src_files := \ bionic/posix_fallocate.cpp \ bionic/posix_madvise.cpp \ bionic/posix_timers.cpp \ - bionic/pthread_atfork.cpp \ - bionic/pthread_attr.cpp \ - bionic/pthread_cond.cpp \ - bionic/pthread_create.cpp \ - bionic/pthread_detach.cpp \ - bionic/pthread_equal.cpp \ - bionic/pthread_exit.cpp \ - bionic/pthread_getcpuclockid.cpp \ - bionic/pthread_getschedparam.cpp \ - bionic/pthread_gettid_np.cpp \ - bionic/pthread_internals.cpp \ - bionic/pthread_join.cpp \ - bionic/pthread_key.cpp \ - bionic/pthread_kill.cpp \ - bionic/pthread_mutex.cpp \ - bionic/pthread_once.cpp \ - bionic/pthread_rwlock.cpp \ - bionic/pthread_self.cpp \ - bionic/pthread_setname_np.cpp \ - bionic/pthread_setschedparam.cpp \ - bionic/pthread_sigmask.cpp \ bionic/ptrace.cpp \ bionic/pty.cpp \ bionic/raise.cpp \ @@ -223,7 +201,6 @@ libc_bionic_src_files := \ bionic/strtold.cpp \ bionic/stubs.cpp \ bionic/symlink.cpp \ - bionic/sysconf.cpp \ bionic/sysinfo.cpp \ bionic/syslog.cpp \ bionic/sys_siglist.c \ @@ -236,10 +213,27 @@ libc_bionic_src_files := \ bionic/umount.cpp \ bionic/unlink.cpp \ bionic/utimes.cpp \ - bionic/vdso.cpp \ bionic/wait.cpp \ bionic/wchar.cpp \ bionic/wctype.cpp \ + bionic/wmempcpy.cpp \ + +libc_bionic_src_files := + +# The fork implementation depends on pthread data, so we can't include it in +# libc_ndk.a. +libc_bionic_src_files += bionic/fork.cpp + +# The data that backs getauxval is initialized in the libc init functions which +# are invoked by the linker. If this file is included in libc_ndk.a, only one of +# the copies of the global data will be initialized, resulting in nullptr +# dereferences. +libc_bionic_src_files += bionic/getauxval.cpp + +# These three require getauxval, which isn't available on older platforms. +libc_bionic_src_files += bionic/getentropy_linux.c +libc_bionic_src_files += bionic/sysconf.cpp +libc_bionic_src_files += bionic/vdso.cpp libc_cxa_src_files := \ bionic/__cxa_guard.cpp \ @@ -337,10 +331,13 @@ libc_upstream_openbsd_gdtoa_src_files_64 := \ $(libc_upstream_openbsd_gdtoa_src_files) \ upstream-openbsd/lib/libc/gdtoa/strtorQ.c \ +# These two depend on getentropy_linux.cpp, which isn't in libc_ndk.a. libc_upstream_openbsd_src_files := \ - upstream-openbsd/lib/libc/compat-43/killpg.c \ upstream-openbsd/lib/libc/crypt/arc4random.c \ upstream-openbsd/lib/libc/crypt/arc4random_uniform.c \ + +libc_upstream_openbsd_ndk_src_files := \ + upstream-openbsd/lib/libc/compat-43/killpg.c \ upstream-openbsd/lib/libc/gen/alarm.c \ upstream-openbsd/lib/libc/gen/ctype_.c \ upstream-openbsd/lib/libc/gen/daemon.c \ @@ -513,6 +510,29 @@ libc_upstream_openbsd_src_files := \ upstream-openbsd/lib/libc/string/wcsstr.c \ upstream-openbsd/lib/libc/string/wcswidth.c \ +libc_pthread_src_files := \ + bionic/pthread_atfork.cpp \ + bionic/pthread_attr.cpp \ + bionic/pthread_cond.cpp \ + bionic/pthread_create.cpp \ + bionic/pthread_detach.cpp \ + bionic/pthread_equal.cpp \ + bionic/pthread_exit.cpp \ + bionic/pthread_getcpuclockid.cpp \ + bionic/pthread_getschedparam.cpp \ + bionic/pthread_gettid_np.cpp \ + bionic/pthread_internals.cpp \ + bionic/pthread_join.cpp \ + bionic/pthread_key.cpp \ + bionic/pthread_kill.cpp \ + bionic/pthread_mutex.cpp \ + bionic/pthread_once.cpp \ + bionic/pthread_rwlock.cpp \ + bionic/pthread_self.cpp \ + bionic/pthread_setname_np.cpp \ + bionic/pthread_setschedparam.cpp \ + bionic/pthread_sigmask.cpp \ + libc_arch_static_src_files := \ bionic/dl_iterate_phdr_static.cpp \ @@ -785,6 +805,51 @@ $(eval $(call patch-up-arch-specific-flags,LOCAL_SRC_FILES,libc_netbsd_src_files include $(BUILD_STATIC_LIBRARY) +# ======================================================== +# libc_openbsd_ndk.a - upstream OpenBSD C library code +# that can be safely included in the libc_ndk.a (doesn't +# contain any troublesome global data or constructors). +# ======================================================== +# +# These files are built with the openbsd-compat.h header file +# automatically included. + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(libc_upstream_openbsd_ndk_src_files) +ifneq (,$(filter $(TARGET_ARCH),x86 x86_64)) + # Clang has wrong long double size or LDBL_MANT_DIG, http://b/17163651. + LOCAL_CLANG := false +else + LOCAL_CLANG := $(use_clang) +endif + +LOCAL_CFLAGS := \ + $(libc_common_cflags) \ + -Wno-sign-compare \ + -Wno-uninitialized \ + -Wno-unused-parameter \ + -include openbsd-compat.h \ + +LOCAL_CONLYFLAGS := $(libc_common_conlyflags) +LOCAL_CPPFLAGS := $(libc_common_cppflags) +LOCAL_C_INCLUDES := $(libc_common_c_includes) \ + $(LOCAL_PATH)/private \ + $(LOCAL_PATH)/upstream-openbsd/android/include \ + $(LOCAL_PATH)/upstream-openbsd/lib/libc/include \ + $(LOCAL_PATH)/upstream-openbsd/lib/libc/gdtoa/ \ + +LOCAL_MODULE := libc_openbsd_ndk +LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) +LOCAL_CXX_STL := none +LOCAL_SYSTEM_SHARED_LIBRARIES := +LOCAL_ADDRESS_SANITIZER := false +LOCAL_NATIVE_COVERAGE := $(bionic_coverage) + +$(eval $(call patch-up-arch-specific-flags,LOCAL_CFLAGS,libc_common_cflags)) +include $(BUILD_STATIC_LIBRARY) + + # ======================================================== # libc_openbsd.a - upstream OpenBSD C library code # ======================================================== @@ -899,11 +964,80 @@ LOCAL_SYSTEM_SHARED_LIBRARIES := LOCAL_ADDRESS_SANITIZER := false LOCAL_NATIVE_COVERAGE := $(bionic_coverage) +$(eval $(call patch-up-arch-specific-flags,LOCAL_CFLAGS,libc_common_cflags)) +include $(BUILD_STATIC_LIBRARY) + + +# ======================================================== +# libc_bionic_ndk.a - The portions of libc_bionic that can +# be safely used in libc_ndk.a (no troublesome global data +# or constructors). +# ======================================================== + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(libc_bionic_ndk_src_files) +LOCAL_CFLAGS := $(libc_common_cflags) \ + -Wframe-larger-than=2048 \ + +# ssse3-strcmp-slm.S does not compile with Clang. +LOCAL_CLANG_ASFLAGS_x86_64 += -no-integrated-as + +# memcpy.S, memchr.S, etc. do not compile with Clang. +LOCAL_CLANG_ASFLAGS_arm += -no-integrated-as +LOCAL_CLANG_ASFLAGS_arm64 += -no-integrated-as + +LOCAL_CONLYFLAGS := $(libc_common_conlyflags) +LOCAL_CPPFLAGS := $(libc_common_cppflags) -Wold-style-cast +LOCAL_C_INCLUDES := $(libc_common_c_includes) bionic/libstdc++/include +LOCAL_MODULE := libc_bionic_ndk +LOCAL_CLANG := $(use_clang) +LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) +LOCAL_CXX_STL := none +LOCAL_SYSTEM_SHARED_LIBRARIES := +LOCAL_ADDRESS_SANITIZER := false +LOCAL_NATIVE_COVERAGE := $(bionic_coverage) + $(eval $(call patch-up-arch-specific-flags,LOCAL_CFLAGS,libc_common_cflags)) $(eval $(call patch-up-arch-specific-flags,LOCAL_SRC_FILES,libc_bionic_src_files)) include $(BUILD_STATIC_LIBRARY) +# ======================================================== +# libc_pthread.a - pthreads parts that previously lived in +# libc_bionic.a. Relocated to their own library because +# they can't be included in libc_ndk.a (as they layout of +# pthread_t has changed over the years and has ABI +# compatibility issues). +# ======================================================== + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(libc_pthread_src_files) +LOCAL_CFLAGS := $(libc_common_cflags) \ + -Wframe-larger-than=2048 \ + +# ssse3-strcmp-slm.S does not compile with Clang. +LOCAL_CLANG_ASFLAGS_x86_64 += -no-integrated-as + +# memcpy.S, memchr.S, etc. do not compile with Clang. +LOCAL_CLANG_ASFLAGS_arm += -no-integrated-as +LOCAL_CLANG_ASFLAGS_arm64 += -no-integrated-as + +LOCAL_CONLYFLAGS := $(libc_common_conlyflags) +LOCAL_CPPFLAGS := $(libc_common_cppflags) -Wold-style-cast +LOCAL_C_INCLUDES := $(libc_common_c_includes) +LOCAL_MODULE := libc_pthread +LOCAL_CLANG := $(use_clang) +LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) +LOCAL_CXX_STL := none +LOCAL_SYSTEM_SHARED_LIBRARIES := +LOCAL_ADDRESS_SANITIZER := false +LOCAL_NATIVE_COVERAGE := $(bionic_coverage) + +include $(BUILD_STATIC_LIBRARY) + + # ======================================================== # libc_cxa.a - Things traditionally in libstdc++ # ======================================================== @@ -992,9 +1126,56 @@ include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libc_ndk -LOCAL_WHOLE_STATIC_LIBRARIES := libc_syscalls libm -LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) +LOCAL_CLANG := $(use_clang) +LOCAL_ASFLAGS := $(LOCAL_CFLAGS) +LOCAL_CONLYFLAGS := $(libc_common_conlyflags) +LOCAL_CFLAGS := $(libc_common_cflags) -fvisibility=hidden -O0 +LOCAL_CPPFLAGS := $(libc_common_cppflags) +LOCAL_C_INCLUDES := $(libc_common_c_includes) +LOCAL_ADDRESS_SANITIZER := false +LOCAL_NATIVE_COVERAGE := $(bionic_coverage) +LOCAL_SYSTEM_SHARED_LIBRARIES := +LOCAL_SRC_FILES := \ + $(libc_common_src_files) \ + $(libc_arch_dynamic_src_files) \ + $(libc_ndk_stub_src_files) \ + bionic/malloc_debug_common.cpp \ + +LOCAL_SRC_FILES_arm += \ + arch-common/bionic/crtbegin_so.c \ + arch-arm/bionic/atexit_legacy.c \ + arch-common/bionic/crtend_so.S \ + +LOCAL_CFLAGS := $(libc_common_cflags) \ + -DLIBC_STATIC \ + +LOCAL_WHOLE_STATIC_LIBRARIES := \ + libc_bionic_ndk \ + libc_cxa \ + libc_freebsd \ + libc_gdtoa \ + libc_malloc \ + libc_netbsd \ + libc_openbsd_ndk \ + libc_stack_protector \ + libc_syscalls \ + libc_tzcode \ + libm \ + +LOCAL_WHOLE_STATIC_LIBRARIES_arm := libc_aeabi +LOCAL_CXX_STL := none + +ifneq ($(MALLOC_IMPL),dlmalloc) +LOCAL_WHOLE_STATIC_LIBRARIES += libjemalloc +endif + +$(eval $(call patch-up-arch-specific-flags,LOCAL_CFLAGS,libc_common_cflags)) +$(eval $(call patch-up-arch-specific-flags,LOCAL_SRC_FILES,libc_common_src_files)) +$(eval $(call patch-up-arch-specific-flags,LOCAL_SRC_FILES,libc_arch_dynamic_src_files)) +$(eval $(call patch-up-arch-specific-flags,LOCAL_ASFLAGS,LOCAL_CFLAGS)) + +LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) include $(BUILD_STATIC_LIBRARY) # ======================================================== @@ -1013,6 +1194,7 @@ LOCAL_CLANG := $(use_clang) LOCAL_ADDITIONAL_DEPENDENCIES := $(libc_common_additional_dependencies) LOCAL_WHOLE_STATIC_LIBRARIES := \ libc_bionic \ + libc_bionic_ndk \ libc_cxa \ libc_dns \ libc_freebsd \ @@ -1020,6 +1202,8 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \ libc_malloc \ libc_netbsd \ libc_openbsd \ + libc_openbsd_ndk \ + libc_pthread \ libc_stack_protector \ libc_syscalls \ libc_tzcode \ @@ -1140,6 +1324,10 @@ include $(CLEAR_VARS) LOCAL_CFLAGS := $(libc_common_cflags) LOCAL_CONLYFLAGS := $(libc_common_conlyflags) LOCAL_CPPFLAGS := $(libc_common_cppflags) + +# TODO: This is to work around b/19059885. Remove after root cause is fixed +LOCAL_LDFLAGS_arm := -Wl,--hash-style=sysv + LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_SRC_FILES := \ $(libc_arch_dynamic_src_files) \ @@ -1290,6 +1478,10 @@ include $(CLEAR_VARS) LOCAL_C_INCLUDES := $(libc_common_c_includes) bionic/libstdc++/include LOCAL_CFLAGS := $(libc_common_cflags) LOCAL_CPPFLAGS := $(libc_common_cppflags) + +# TODO: This is to work around b/19059885. Remove after root cause is fixed +LOCAL_LDFLAGS_arm := -Wl,--hash-style=both + LOCAL_SRC_FILES := $(libstdcxx_common_src_files) LOCAL_MODULE:= libstdc++ LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT index aae7de779..150dd14f9 100644 --- a/libc/SYSCALLS.TXT +++ b/libc/SYSCALLS.TXT @@ -130,7 +130,7 @@ int fremovexattr(int, const char*) all int __getdents64:getdents64(unsigned int, struct dirent*, unsigned int) arm,arm64,mips,mips64,x86,x86_64 int __openat:openat(int, const char*, int, mode_t) all -int faccessat(int, const char*, int, int) all +int ___faccessat:faccessat(int, const char*, int) all int ___fchmodat:fchmodat(int, const char*, mode_t) all int fchownat(int, const char*, uid_t, gid_t, int) all int fstatat64|fstatat:fstatat64(int, const char*, struct stat*, int) arm,mips,x86 diff --git a/libc/arch-arm/arm.mk b/libc/arch-arm/arm.mk index 60600e5fd..d72a160d0 100644 --- a/libc/arch-arm/arm.mk +++ b/libc/arch-arm/arm.mk @@ -5,8 +5,6 @@ # libc_bionic_src_files_arm += \ - bionic/memchr.c \ - bionic/memrchr.c \ bionic/strchr.cpp \ bionic/strnlen.c \ bionic/strrchr.cpp \ @@ -22,6 +20,8 @@ libc_freebsd_src_files_arm += \ upstream-freebsd/lib/libc/string/wmemmove.c \ libc_openbsd_src_files_arm += \ + upstream-openbsd/lib/libc/string/memchr.c \ + upstream-openbsd/lib/libc/string/memrchr.c \ upstream-openbsd/lib/libc/string/stpncpy.c \ upstream-openbsd/lib/libc/string/strlcat.c \ upstream-openbsd/lib/libc/string/strlcpy.c \ diff --git a/libc/arch-arm/syscalls/faccessat.S b/libc/arch-arm/syscalls/___faccessat.S similarity index 81% rename from libc/arch-arm/syscalls/faccessat.S rename to libc/arch-arm/syscalls/___faccessat.S index a1df5c09f..1d09cf7c5 100644 --- a/libc/arch-arm/syscalls/faccessat.S +++ b/libc/arch-arm/syscalls/___faccessat.S @@ -2,7 +2,7 @@ #include -ENTRY(faccessat) +ENTRY(___faccessat) mov ip, r7 ldr r7, =__NR_faccessat swi #0 @@ -11,4 +11,5 @@ ENTRY(faccessat) bxls lr neg r0, r0 b __set_errno_internal -END(faccessat) +END(___faccessat) +.hidden ___faccessat diff --git a/libc/arch-arm64/arm64.mk b/libc/arch-arm64/arm64.mk index 841899329..470a03838 100644 --- a/libc/arch-arm64/arm64.mk +++ b/libc/arch-arm64/arm64.mk @@ -8,7 +8,6 @@ libc_bionic_src_files_arm64 += \ bionic/__memset_chk.cpp \ bionic/__strcpy_chk.cpp \ bionic/__strcat_chk.cpp \ - bionic/memrchr.c \ bionic/strrchr.cpp \ libc_freebsd_src_files_arm64 += \ @@ -21,6 +20,7 @@ libc_freebsd_src_files_arm64 += \ upstream-freebsd/lib/libc/string/wmemcmp.c \ libc_openbsd_src_files_arm64 += \ + upstream-openbsd/lib/libc/string/memrchr.c \ upstream-openbsd/lib/libc/string/stpncpy.c \ upstream-openbsd/lib/libc/string/strcat.c \ upstream-openbsd/lib/libc/string/strlcat.c \ diff --git a/libc/arch-arm64/syscalls/faccessat.S b/libc/arch-arm64/syscalls/___faccessat.S similarity index 79% rename from libc/arch-arm64/syscalls/faccessat.S rename to libc/arch-arm64/syscalls/___faccessat.S index 4c96cfa7b..6a41b697c 100644 --- a/libc/arch-arm64/syscalls/faccessat.S +++ b/libc/arch-arm64/syscalls/___faccessat.S @@ -2,7 +2,7 @@ #include -ENTRY(faccessat) +ENTRY(___faccessat) mov x8, __NR_faccessat svc #0 @@ -11,4 +11,5 @@ ENTRY(faccessat) b.hi __set_errno_internal ret -END(faccessat) +END(___faccessat) +.hidden ___faccessat diff --git a/libc/arch-mips/bionic/setjmp.S b/libc/arch-mips/bionic/setjmp.S index 05d0e2567..1c2655385 100644 --- a/libc/arch-mips/bionic/setjmp.S +++ b/libc/arch-mips/bionic/setjmp.S @@ -1,3 +1,30 @@ +/* + * Copyright (C) 2014-2015 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 + * COPYRIGHT OWNER 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. + */ /* * Copyright (c) 2001-2002 Opsycon AB (www.opsycon.se / www.opsycon.com) * @@ -94,23 +121,31 @@ #include #include -/* On Mips32, jmpbuf begins with optional 4-byte filler so that - * all saved FP regs are aligned on 8-byte boundary, despite this whole - * struct being mis-declared to users as an array of (4-byte) longs. - * All the following offsets are then from the rounded-up base addr +/* jmpbuf is declared to users as an array of longs, which is only + * 4-byte aligned in 32-bit builds. The Mips jmpbuf begins with a + * dynamically-sized 0- or 4-byte unused filler so that double-prec FP regs + * are saved to 8-byte-aligned mem cells. + * All the following jmpbuf offsets are from the rounded-DOWN base addr. */ /* Fields of same size on all MIPS abis: */ -#define SC_MAGIC (0*4) /* 4 bytes, identify jmpbuf */ -#define SC_MASK (1*4) /* 4 bytes, saved signal mask */ -#define SC_FPSR (2*4) /* 4 bytes, floating point control/status reg */ -/* filler2 (3*4) 4 bytes, pad to 8-byte boundary */ +/* field: byte offset: size: */ +/* dynam filler (0*4) 0-4 bytes of rounddown filler, DON'T TOUCH!! + often overlays user storage!! */ +#define SC_MAGIC_OFFSET (1*4) /* 4 bytes, identify jmpbuf, first actual field */ +#define SC_FLAG_OFFSET (2*4) /* 4 bytes, savesigs flag */ +#define SC_FPSR_OFFSET (3*4) /* 4 bytes, floating point control/status reg */ +/* following fields are 8-byte aligned */ +#define SC_MASK_OFFSET (4*4) /* 16 bytes, mips32/mips64 version of sigset_t */ +#define SC_SPARE_OFFSET (8*4) /* 8 bytes, reserved for future uses */ /* Registers that are 4-byte on mips32 o32, and 8-byte on mips64 n64 abi */ -#define SC_REGS_SAVED 12 /* ra,gp,sp,s0-s8 */ -#define SC_REGS (4*4) /* SC_REGS_SAVED*REGSZ bytes */ +#define SC_REGS_OFFSET (10*4) /* SC_REGS_BYTES */ +#define SC_REGS_SAVED 12 /*regs*/ /* ra,s0-s8,gp,sp */ +#define SC_REGS_BYTES (SC_REGS_SAVED*REGSZ) +#define SC_REGS SC_REGS_OFFSET -/* Floating pt registers are 8-bytes on all abis, +/* Double floating pt registers are 8-bytes on all abis, * but the number of saved fp regs varies for o32/n32 versus n64 abis: */ @@ -120,22 +155,20 @@ #define SC_FPREGS_SAVED 6 /* even fp regs f20,f22,f24,f26,f28,f30 */ #endif -#define SC_FPREGS (SC_REGS + SC_REGS_SAVED*REGSZ) /* SC_FPREGS_SAVED*REGSZ_FP bytes */ +#define SC_FPREGS_OFFSET (SC_REGS_OFFSET + SC_REGS_BYTES) /* SC_FPREGS_BYTES */ +#define SC_FPREGS_BYTES (SC_FPREGS_SAVED*REGSZ_FP) +#define SC_FPREGS SC_FPREGS_OFFSET -#define SC_BYTES (SC_FPREGS + SC_FPREGS_SAVED*REGSZ_FP) -#define SC_LONGS (SC_BYTES/REGSZ) +#define SC_TOTAL_BYTES (SC_FPREGS_OFFSET + SC_FPREGS_BYTES) +#define SC_TOTAL_LONGS (SC_TOTAL_BYTES/REGSZ) -#ifdef __LP64__ -/* SC_LONGS is 22, so _JBLEN should be 22 or larger */ -#else -/* SC_LONGS is 28, but must also allocate dynamic-roundup filler. - so _JBLEN should be 29 or larger */ +#if SC_TOTAL_LONGS > _JBLEN +#error _JBLEN is too small #endif /* - * _setjmp, _longjmp (restoring signal state) * - * GPOFF and FRAMESIZE must be the same for both _setjmp and _longjmp! + * GPOFF and FRAMESIZE must be the same for all setjmp/longjmp routines * */ @@ -145,30 +178,33 @@ A0OFF= FRAMESZ-3*REGSZ GPOFF= FRAMESZ-2*REGSZ RAOFF= FRAMESZ-1*REGSZ -NON_LEAF(setjmp, FRAMESZ, ra) +NON_LEAF(sigsetjmp, FRAMESZ, ra) .mask 0x80000000, RAOFF PTR_SUBU sp, FRAMESZ # allocate stack frame - SETUP_GP64(GPOFF, setjmp) + SETUP_GP64(GPOFF, sigsetjmp) SAVE_GP(GPOFF) .set reorder +setjmp_common: #ifndef __LP64__ - addiu a0, 7 # roundup jmpbuf addr to 8-byte boundary - li t0, ~7 - and a0, t0 + li t0, ~7 + and a0, t0 # round jmpbuf addr DOWN to 8-byte boundary #endif + sw a1, SC_FLAG_OFFSET(a0) # save savesigs flag + beqz a1, 1f # do saving of signal mask? - REG_S ra, RAOFF(sp) # save state + REG_S ra, RAOFF(sp) # spill state REG_S a0, A0OFF(sp) - move a0, zero # get current signal mask - jal sigblock + # call sigprocmask(int how ignored, sigset_t* null, sigset_t* SC_MASK(a0)): + LA a2, SC_MASK_OFFSET(a0) # gets current signal mask + li a0, 0 # how; ignored when new mask is null + li a1, 0 # null new mask + jal sigprocmask # get current signal mask REG_L a0, A0OFF(sp) REG_L ra, RAOFF(sp) - - REG_S v0, SC_MASK(a0) # save sc_mask = sigblock(0) - +1: li v0, 0xACEDBADE # sigcontext magic number - sw v0, SC_MAGIC(a0) + sw v0, SC_MAGIC_OFFSET(a0) # callee-saved long-sized regs: REG_S ra, SC_REGS+0*REGSZ(a0) REG_S s0, SC_REGS+1*REGSZ(a0) @@ -181,9 +217,9 @@ NON_LEAF(setjmp, FRAMESZ, ra) REG_S s7, SC_REGS+8*REGSZ(a0) REG_S s8, SC_REGS+9*REGSZ(a0) REG_L v0, GPOFF(sp) - REG_S v0, SC_REGS+10*REGSZ(a0) + REG_S v0, SC_REGS+10*REGSZ(a0) # save gp PTR_ADDU v0, sp, FRAMESZ - REG_S v0, SC_REGS+11*REGSZ(a0) + REG_S v0, SC_REGS+11*REGSZ(a0) # save orig sp cfc1 v0, $31 @@ -199,7 +235,7 @@ NON_LEAF(setjmp, FRAMESZ, ra) s.d $f31, SC_FPREGS+7*REGSZ_FP(a0) #else # callee-saved fp regs on mips o32 ABI are - # the even-numbered fp regs $f20,$f22,...$f30 + # the even-numbered double fp regs $f20,$f22,...$f30 s.d $f20, SC_FPREGS+0*REGSZ_FP(a0) s.d $f22, SC_FPREGS+1*REGSZ_FP(a0) s.d $f24, SC_FPREGS+2*REGSZ_FP(a0) @@ -207,37 +243,68 @@ NON_LEAF(setjmp, FRAMESZ, ra) s.d $f28, SC_FPREGS+4*REGSZ_FP(a0) s.d $f30, SC_FPREGS+5*REGSZ_FP(a0) #endif - sw v0, SC_FPSR(a0) + sw v0, SC_FPSR_OFFSET(a0) move v0, zero RESTORE_GP64 PTR_ADDU sp, FRAMESZ j ra -END(setjmp) +END(sigsetjmp) -NON_LEAF(longjmp, FRAMESZ, ra) + +# Alternate entry points: + +NON_LEAF(setjmp, FRAMESZ, ra) .mask 0x80000000, RAOFF PTR_SUBU sp, FRAMESZ - SETUP_GP64(GPOFF, longjmp) + SETUP_GP64(GPOFF, setjmp) # can't share sigsetjmp's gp code + SAVE_GP(GPOFF) + .set reorder + + li a1, 1 # save/restore signals state + b setjmp_common # tail call +END(setjmp) + + +NON_LEAF(_setjmp, FRAMESZ, ra) + .mask 0x80000000, RAOFF + PTR_SUBU sp, FRAMESZ + SETUP_GP64(GPOFF, _setjmp) # can't share sigsetjmp's gp code + SAVE_GP(GPOFF) + .set reorder + + li a1, 0 # don't save/restore signals + b setjmp_common # tail call +END(_setjmp) + + +NON_LEAF(siglongjmp, FRAMESZ, ra) + .mask 0x80000000, RAOFF + PTR_SUBU sp, FRAMESZ + SETUP_GP64(GPOFF, siglongjmp) SAVE_GP(GPOFF) .set reorder #ifndef __LP64__ - addiu a0, 7 # roundup jmpbuf addr to 8-byte boundary - li t0, ~7 - and a0, t0 + li t0, ~7 + and a0, t0 # round jmpbuf addr DOWN to 8-byte boundary #endif + lw v0, SC_MAGIC_OFFSET(a0) + li t0, 0xACEDBADE + bne v0, t0, longjmp_botch # jump if error - REG_S a1, A1OFF(sp) + lw t0, SC_FLAG_OFFSET(a0) # get savesigs flag + beqz t0, 1f # restore signal mask? + + REG_S a1, A1OFF(sp) # temp spill REG_S a0, A0OFF(sp) - lw a0, SC_MASK(a0) - jal sigsetmask + # call sigprocmask(int how SIG_SETMASK, sigset_t* SC_MASK(a0), sigset_t* null): + LA a1, SC_MASK_OFFSET(a0) # signals being restored + li a0, 3 # mips SIG_SETMASK + li a2, 0 # null + jal sigprocmask # restore signal mask REG_L a0, A0OFF(sp) REG_L a1, A1OFF(sp) - - lw v0, SC_MAGIC(a0) - li t0, 0xACEDBADE - bne v0, t0, longjmp_botch # jump if error - +1: # callee-saved long-sized regs: REG_L ra, SC_REGS+0*REGSZ(a0) REG_L s0, SC_REGS+1*REGSZ(a0) @@ -252,8 +319,8 @@ NON_LEAF(longjmp, FRAMESZ, ra) REG_L gp, SC_REGS+10*REGSZ(a0) REG_L sp, SC_REGS+11*REGSZ(a0) - lw v0, SC_FPSR(a0) - ctc1 v0, $31 + lw v0, SC_FPSR_OFFSET(a0) + ctc1 v0, $31 # restore old fr mode before fp values #ifdef __LP64__ # callee-saved fp regs on mips n64 ABI are $f24..$f31 l.d $f24, SC_FPREGS+0*REGSZ_FP(a0) @@ -266,7 +333,7 @@ NON_LEAF(longjmp, FRAMESZ, ra) l.d $f31, SC_FPREGS+7*REGSZ_FP(a0) #else # callee-saved fp regs on mips o32 ABI are - # the even-numbered fp regs $f20,$f22,...$f30 + # the even-numbered double fp regs $f20,$f22,...$f30 l.d $f20, SC_FPREGS+0*REGSZ_FP(a0) l.d $f22, SC_FPREGS+1*REGSZ_FP(a0) l.d $f24, SC_FPREGS+2*REGSZ_FP(a0) @@ -278,192 +345,19 @@ NON_LEAF(longjmp, FRAMESZ, ra) li a1, 1 # never return 0! 1: move v0, a1 - j ra + j ra # return to setjmp call site longjmp_botch: jal longjmperror jal abort - RESTORE_GP64 - PTR_ADDU sp, FRAMESZ -END(longjmp) - - -/* - * _setjmp, _longjmp (not restoring signal state) - * - * GPOFF and FRAMESIZE must be the same for both _setjmp and _longjmp! - * - */ - -FRAMESZ= MKFSIZ(0,4) -GPOFF= FRAMESZ-2*REGSZ - -LEAF(_setjmp, FRAMESZ) - PTR_SUBU sp, FRAMESZ - SETUP_GP64(GPOFF, _setjmp) - SAVE_GP(GPOFF) - .set reorder - -#ifndef __LP64__ - addiu a0, 7 # roundup jmpbuf addr to 8-byte boundary - li t0, ~7 - and a0, t0 -#endif - - # SC_MASK is unused here - - li v0, 0xACEDBADE # sigcontext magic number - sw v0, SC_MAGIC(a0) - # callee-saved long-sized regs: - REG_S ra, SC_REGS+0*REGSZ(a0) - REG_S s0, SC_REGS+1*REGSZ(a0) - REG_S s1, SC_REGS+2*REGSZ(a0) - REG_S s2, SC_REGS+3*REGSZ(a0) - REG_S s3, SC_REGS+4*REGSZ(a0) - REG_S s4, SC_REGS+5*REGSZ(a0) - REG_S s5, SC_REGS+6*REGSZ(a0) - REG_S s6, SC_REGS+7*REGSZ(a0) - REG_S s7, SC_REGS+8*REGSZ(a0) - REG_S s8, SC_REGS+9*REGSZ(a0) - REG_L v0, GPOFF(sp) - REG_S v0, SC_REGS+10*REGSZ(a0) - PTR_ADDU v0, sp, FRAMESZ - REG_S v0, SC_REGS+11*REGSZ(a0) - - cfc1 v0, $31 - -#ifdef __LP64__ - # callee-saved fp regs on mips n64 ABI are $f24..$f31 - s.d $f24, SC_FPREGS+0*REGSZ_FP(a0) - s.d $f25, SC_FPREGS+1*REGSZ_FP(a0) - s.d $f26, SC_FPREGS+2*REGSZ_FP(a0) - s.d $f27, SC_FPREGS+3*REGSZ_FP(a0) - s.d $f28, SC_FPREGS+4*REGSZ_FP(a0) - s.d $f29, SC_FPREGS+5*REGSZ_FP(a0) - s.d $f30, SC_FPREGS+6*REGSZ_FP(a0) - s.d $f31, SC_FPREGS+7*REGSZ_FP(a0) -#else - # callee-saved fp regs on mips o32 ABI are - # the even-numbered fp regs $f20,$f22,...$f30 - s.d $f20, SC_FPREGS+0*REGSZ_FP(a0) - s.d $f22, SC_FPREGS+1*REGSZ_FP(a0) - s.d $f24, SC_FPREGS+2*REGSZ_FP(a0) - s.d $f26, SC_FPREGS+3*REGSZ_FP(a0) - s.d $f28, SC_FPREGS+4*REGSZ_FP(a0) - s.d $f30, SC_FPREGS+5*REGSZ_FP(a0) -#endif - sw v0, SC_FPSR(a0) - move v0, zero - RESTORE_GP64 - PTR_ADDU sp, FRAMESZ - j ra -END(_setjmp) - - -LEAF(_longjmp, FRAMESZ) - PTR_SUBU sp, FRAMESZ - SETUP_GP64(GPOFF, _longjmp) - SAVE_GP(GPOFF) - .set reorder - -#ifndef __LP64__ - addiu a0, 7 # roundup jmpbuf addr to 8-byte boundary - li t0, ~7 - and a0, t0 -#endif - - # SC_MASK is unused here - - lw v0, SC_MAGIC(a0) - li t0, 0xACEDBADE - bne v0, t0, _longjmp_botch # jump if error - - # callee-saved long-sized regs: - REG_L ra, SC_REGS+0*REGSZ(a0) - REG_L s0, SC_REGS+1*REGSZ(a0) - REG_L s1, SC_REGS+2*REGSZ(a0) - REG_L s2, SC_REGS+3*REGSZ(a0) - REG_L s3, SC_REGS+4*REGSZ(a0) - REG_L s4, SC_REGS+5*REGSZ(a0) - REG_L s5, SC_REGS+6*REGSZ(a0) - REG_L s6, SC_REGS+7*REGSZ(a0) - REG_L s7, SC_REGS+8*REGSZ(a0) - REG_L s8, SC_REGS+9*REGSZ(a0) - REG_L gp, SC_REGS+10*REGSZ(a0) - REG_L sp, SC_REGS+11*REGSZ(a0) - - lw v0, SC_FPSR(a0) - ctc1 v0, $31 -#ifdef __LP64__ - # callee-saved fp regs on mips n64 ABI are $f24..$f31 - l.d $f24, SC_FPREGS+0*REGSZ_FP(a0) - l.d $f25, SC_FPREGS+1*REGSZ_FP(a0) - l.d $f26, SC_FPREGS+2*REGSZ_FP(a0) - l.d $f27, SC_FPREGS+3*REGSZ_FP(a0) - l.d $f28, SC_FPREGS+4*REGSZ_FP(a0) - l.d $f29, SC_FPREGS+5*REGSZ_FP(a0) - l.d $f30, SC_FPREGS+6*REGSZ_FP(a0) - l.d $f31, SC_FPREGS+7*REGSZ_FP(a0) -#else - # callee-saved fp regs on mips o32 ABI are - # the even-numbered fp regs $f20,$f22,...$f30 - l.d $f20, SC_FPREGS+0*REGSZ_FP(a0) - l.d $f22, SC_FPREGS+1*REGSZ_FP(a0) - l.d $f24, SC_FPREGS+2*REGSZ_FP(a0) - l.d $f26, SC_FPREGS+3*REGSZ_FP(a0) - l.d $f28, SC_FPREGS+4*REGSZ_FP(a0) - l.d $f30, SC_FPREGS+5*REGSZ_FP(a0) -#endif - bne a1, zero, 1f - li a1, 1 # never return 0! -1: - move v0, a1 - j ra - -_longjmp_botch: - jal longjmperror - jal abort - RESTORE_GP64 - PTR_ADDU sp, FRAMESZ -END(_longjmp) - -/* - * trampolines for sigsetjmp and siglongjmp save and restore mask. - * - */ -FRAMESZ= MKFSIZ(1,1) -GPOFF= FRAMESZ-2*REGSZ - -LEAF(sigsetjmp, FRAMESZ) - PTR_SUBU sp, FRAMESZ - SETUP_GP64(GPOFF, sigsetjmp) - .set reorder - sw a1, _JBLEN*REGSZ(a0) # save "savemask" - bne a1, 0x0, 1f # do saving of signal mask? - LA t9, _setjmp - RESTORE_GP64 - PTR_ADDU sp, FRAMESZ - jr t9 - -1: LA t9, setjmp - RESTORE_GP64 - PTR_ADDU sp, FRAMESZ - jr t9 -END(sigsetjmp) - -LEAF(siglongjmp, FRAMESZ) - PTR_SUBU sp, FRAMESZ - SETUP_GP64(GPOFF, siglongjmp) - .set reorder - lw t0, _JBLEN*REGSZ(a0) # get "savemask" - bne t0, 0x0, 1f # restore signal mask? - LA t9, _longjmp - RESTORE_GP64 - PTR_ADDU sp, FRAMESZ - jr t9 -1: - LA t9, longjmp - RESTORE_GP64 - PTR_ADDU sp, FRAMESZ - jr t9 END(siglongjmp) + + + .globl longjmp + .type longjmp, @function + .equ longjmp, siglongjmp # alias for siglongjmp + + + .globl _longjmp + .type _longjmp, @function + .equ _longjmp, siglongjmp # alias for siglongjmp diff --git a/libc/arch-mips/include/machine/setjmp.h b/libc/arch-mips/include/machine/setjmp.h index a9707dc2e..4067d510a 100644 --- a/libc/arch-mips/include/machine/setjmp.h +++ b/libc/arch-mips/include/machine/setjmp.h @@ -6,9 +6,10 @@ #define _MIPS_SETJMP_H_ #ifdef __LP64__ -#define _JBLEN 22 /* size, in 8-byte longs, of a mips64 jmp_buf */ +#define _JBLEN 25 /* size, in 8-byte longs, of a mips64 jmp_buf/sigjmp_buf */ #else -#define _JBLEN 29 /* size, in 4-byte longs, of a mips32 jmp_buf */ +#define _JBLEN 157 /* historical size, in 4-byte longs, of a mips32 jmp_buf */ + /* actual used size is 34 */ #endif #endif /* !_MIPS_SETJMP_H_ */ diff --git a/libc/arch-mips/mips.mk b/libc/arch-mips/mips.mk index 7e3fe25ae..33eceab72 100644 --- a/libc/arch-mips/mips.mk +++ b/libc/arch-mips/mips.mk @@ -10,8 +10,6 @@ libc_bionic_src_files_mips += \ bionic/__memset_chk.cpp \ bionic/__strcpy_chk.cpp \ bionic/__strcat_chk.cpp \ - bionic/memchr.c \ - bionic/memrchr.c \ bionic/strchr.cpp \ bionic/strnlen.c \ bionic/strrchr.cpp \ @@ -27,7 +25,9 @@ libc_freebsd_src_files_mips += \ upstream-freebsd/lib/libc/string/wmemmove.c \ libc_openbsd_src_files_mips += \ + upstream-openbsd/lib/libc/string/memchr.c \ upstream-openbsd/lib/libc/string/memmove.c \ + upstream-openbsd/lib/libc/string/memrchr.c \ upstream-openbsd/lib/libc/string/stpcpy.c \ upstream-openbsd/lib/libc/string/stpncpy.c \ upstream-openbsd/lib/libc/string/strcat.c \ diff --git a/libc/arch-mips/syscalls/faccessat.S b/libc/arch-mips/syscalls/___faccessat.S similarity index 82% rename from libc/arch-mips/syscalls/faccessat.S rename to libc/arch-mips/syscalls/___faccessat.S index e61610620..4e11bae27 100644 --- a/libc/arch-mips/syscalls/faccessat.S +++ b/libc/arch-mips/syscalls/___faccessat.S @@ -2,7 +2,7 @@ #include -ENTRY(faccessat) +ENTRY(___faccessat) .set noreorder .cpload t9 li v0, __NR_faccessat @@ -16,4 +16,5 @@ ENTRY(faccessat) j t9 nop .set reorder -END(faccessat) +END(___faccessat) +.hidden ___faccessat diff --git a/libc/arch-mips64/bionic/stat.cpp b/libc/arch-mips64/bionic/stat.cpp index df63906cb..2767fbd1c 100644 --- a/libc/arch-mips64/bionic/stat.cpp +++ b/libc/arch-mips64/bionic/stat.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include struct kernel_stat { unsigned int st_dev; diff --git a/libc/arch-mips64/mips64.mk b/libc/arch-mips64/mips64.mk index 137639550..2b81e635c 100644 --- a/libc/arch-mips64/mips64.mk +++ b/libc/arch-mips64/mips64.mk @@ -9,8 +9,6 @@ libc_bionic_src_files_mips64 += \ bionic/__memset_chk.cpp \ bionic/__strcpy_chk.cpp \ bionic/__strcat_chk.cpp \ - bionic/memchr.c \ - bionic/memrchr.c \ bionic/strchr.cpp \ bionic/strnlen.c \ bionic/strrchr.cpp \ @@ -30,7 +28,9 @@ libc_freebsd_src_files_mips64 += \ upstream-freebsd/lib/libc/string/wmemmove.c \ libc_openbsd_src_files_mips64 += \ + upstream-openbsd/lib/libc/string/memchr.c \ upstream-openbsd/lib/libc/string/memmove.c \ + upstream-openbsd/lib/libc/string/memrchr.c \ upstream-openbsd/lib/libc/string/stpcpy.c \ upstream-openbsd/lib/libc/string/stpncpy.c \ upstream-openbsd/lib/libc/string/strcat.c \ diff --git a/libc/arch-mips64/syscalls/faccessat.S b/libc/arch-mips64/syscalls/___faccessat.S similarity index 85% rename from libc/arch-mips64/syscalls/faccessat.S rename to libc/arch-mips64/syscalls/___faccessat.S index 18bb80062..240625f46 100644 --- a/libc/arch-mips64/syscalls/faccessat.S +++ b/libc/arch-mips64/syscalls/___faccessat.S @@ -2,7 +2,7 @@ #include -ENTRY(faccessat) +ENTRY(___faccessat) .set push .set noreorder li v0, __NR_faccessat @@ -22,4 +22,5 @@ ENTRY(faccessat) j t9 move ra, t0 .set pop -END(faccessat) +END(___faccessat) +.hidden ___faccessat diff --git a/libc/arch-x86/syscalls/faccessat.S b/libc/arch-x86/syscalls/___faccessat.S similarity index 70% rename from libc/arch-x86/syscalls/faccessat.S rename to libc/arch-x86/syscalls/___faccessat.S index 9d522311b..361a6ea6e 100644 --- a/libc/arch-x86/syscalls/faccessat.S +++ b/libc/arch-x86/syscalls/___faccessat.S @@ -2,7 +2,7 @@ #include -ENTRY(faccessat) +ENTRY(___faccessat) pushl %ebx .cfi_def_cfa_offset 8 .cfi_rel_offset ebx, 0 @@ -12,13 +12,9 @@ ENTRY(faccessat) pushl %edx .cfi_adjust_cfa_offset 4 .cfi_rel_offset edx, 0 - pushl %esi - .cfi_adjust_cfa_offset 4 - .cfi_rel_offset esi, 0 - mov 20(%esp), %ebx - mov 24(%esp), %ecx - mov 28(%esp), %edx - mov 32(%esp), %esi + mov 16(%esp), %ebx + mov 20(%esp), %ecx + mov 24(%esp), %edx movl $__NR_faccessat, %eax int $0x80 cmpl $-MAX_ERRNO, %eax @@ -28,9 +24,9 @@ ENTRY(faccessat) call __set_errno_internal addl $4, %esp 1: - popl %esi popl %edx popl %ecx popl %ebx ret -END(faccessat) +END(___faccessat) +.hidden ___faccessat diff --git a/libc/arch-x86_64/syscalls/faccessat.S b/libc/arch-x86_64/syscalls/___faccessat.S similarity index 81% rename from libc/arch-x86_64/syscalls/faccessat.S rename to libc/arch-x86_64/syscalls/___faccessat.S index 05a6e7863..e8fd3f585 100644 --- a/libc/arch-x86_64/syscalls/faccessat.S +++ b/libc/arch-x86_64/syscalls/___faccessat.S @@ -2,8 +2,7 @@ #include -ENTRY(faccessat) - movq %rcx, %r10 +ENTRY(___faccessat) movl $__NR_faccessat, %eax syscall cmpq $-MAX_ERRNO, %rax @@ -13,4 +12,5 @@ ENTRY(faccessat) call __set_errno_internal 1: ret -END(faccessat) +END(___faccessat) +.hidden ___faccessat diff --git a/libc/arch-x86_64/x86_64.mk b/libc/arch-x86_64/x86_64.mk index ae01d2a0a..06d318574 100644 --- a/libc/arch-x86_64/x86_64.mk +++ b/libc/arch-x86_64/x86_64.mk @@ -9,8 +9,6 @@ libc_bionic_src_files_x86_64 += \ bionic/__memset_chk.cpp \ bionic/__strcpy_chk.cpp \ bionic/__strcat_chk.cpp \ - bionic/memchr.c \ - bionic/memrchr.c \ bionic/strchr.cpp \ bionic/strnlen.c \ bionic/strrchr.cpp \ @@ -25,6 +23,10 @@ libc_freebsd_src_files_x86_64 += \ upstream-freebsd/lib/libc/string/wmemcmp.c \ upstream-freebsd/lib/libc/string/wmemmove.c \ +libc_openbsd_src_files_x86_64 += \ + upstream-openbsd/lib/libc/string/memchr.c \ + upstream-openbsd/lib/libc/string/memrchr.c \ + # # Inherently architecture-specific code. # diff --git a/libc/bionic/dup2.cpp b/libc/bionic/dup2.cpp index 0b8632bee..98c56469d 100644 --- a/libc/bionic/dup2.cpp +++ b/libc/bionic/dup2.cpp @@ -26,8 +26,19 @@ * SUCH DAMAGE. */ +#include #include int dup2(int old_fd, int new_fd) { + // If old_fd is equal to new_fd and a valid file descriptor, dup2 returns + // old_fd without closing it. This is not true of dup3, so we have to + // handle this case ourselves. + if (old_fd == new_fd) { + if (fcntl(old_fd, F_GETFD) == -1) { + return -1; + } + return old_fd; + } + return dup3(old_fd, new_fd, 0); } diff --git a/libc/bionic/faccessat.cpp b/libc/bionic/faccessat.cpp new file mode 100644 index 000000000..5f375e0f7 --- /dev/null +++ b/libc/bionic/faccessat.cpp @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS + * "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 + * COPYRIGHT OWNER 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. + */ + +#include +#include +#include + +extern "C" int ___faccessat(int, const char*, int); + +int faccessat(int dirfd, const char* pathname, int mode, int flags) { + // "The mode specifies the accessibility check(s) to be performed, + // and is either the value F_OK, or a mask consisting of the + // bitwise OR of one or more of R_OK, W_OK, and X_OK." + if ((mode != F_OK) && ((mode & ~(R_OK | W_OK | X_OK)) != 0) && + ((mode & (R_OK | W_OK | X_OK)) == 0)) { + errno = EINVAL; + return -1; + } + + if (flags != 0) { + // We deliberately don't support AT_SYMLINK_NOFOLLOW, a glibc + // only feature which is error prone and dangerous. + // + // AT_EACCESS isn't supported either. Android doesn't have setuid + // programs, and never runs code with euid!=uid. It could be + // implemented in an expensive way, following the model at + // https://gitlab.com/bminor/musl/commit/0a05eace163cee9b08571d2ff9d90f5e82d9c228 + // but not worth it. + errno = EINVAL; + return -1; + } + + return ___faccessat(dirfd, pathname, mode); +} diff --git a/libc/bionic/libc_init_common.cpp b/libc/bionic/libc_init_common.cpp index f82ec739a..52ca0f228 100644 --- a/libc/bionic/libc_init_common.cpp +++ b/libc/bionic/libc_init_common.cpp @@ -88,7 +88,6 @@ void __libc_init_tls(KernelArgumentBlock& args) { // The main thread has no mmap allocated space for stack or pthread_internal_t. main_thread.mmap_size = 0; pthread_attr_init(&main_thread.attr); - main_thread.attr.flags = PTHREAD_ATTR_FLAG_MAIN_THREAD; main_thread.attr.guard_size = 0; // The main thread has no guard page. main_thread.attr.stack_size = 0; // User code should never see this; we'll compute it when asked. // TODO: the main thread's sched_policy and sched_priority need to be queried. diff --git a/libc/bionic/locale.cpp b/libc/bionic/locale.cpp index 90aa7b8aa..b42b440c6 100644 --- a/libc/bionic/locale.cpp +++ b/libc/bionic/locale.cpp @@ -58,15 +58,18 @@ struct __locale_t { DISALLOW_COPY_AND_ASSIGN(__locale_t); }; +size_t __ctype_get_mb_cur_max() { + locale_t l = uselocale(NULL); + if (l == LC_GLOBAL_LOCALE) { + return __bionic_current_locale_is_utf8 ? 4 : 1; + } else { + return l->mb_cur_max; + } +} + static pthread_once_t g_locale_once = PTHREAD_ONCE_INIT; static lconv g_locale; -// We don't use pthread_once for this so that we know when the resource (a TLS slot) will be taken. -static pthread_key_t g_uselocale_key; -__attribute__((constructor)) static void __bionic_tls_uselocale_key_init() { - pthread_key_create(&g_uselocale_key, NULL); -} - static void __locale_init() { g_locale.decimal_point = const_cast("."); @@ -97,15 +100,6 @@ static void __locale_init() { g_locale.int_n_sign_posn = CHAR_MAX; } -size_t __ctype_get_mb_cur_max() { - locale_t l = reinterpret_cast(pthread_getspecific(g_uselocale_key)); - if (l == nullptr || l == LC_GLOBAL_LOCALE) { - return __bionic_current_locale_is_utf8 ? 4 : 1; - } else { - return l->mb_cur_max; - } -} - static bool __is_supported_locale(const char* locale) { return (strcmp(locale, "") == 0 || strcmp(locale, "C") == 0 || @@ -162,7 +156,16 @@ char* setlocale(int category, const char* locale_name) { return const_cast(__bionic_current_locale_is_utf8 ? "C.UTF-8" : "C"); } +// We can't use a constructor to create g_uselocal_key, because it may be used in constructors. +static pthread_once_t g_uselocale_once = PTHREAD_ONCE_INIT; +static pthread_key_t g_uselocale_key; + +static void g_uselocale_key_init() { + pthread_key_create(&g_uselocale_key, NULL); +} + locale_t uselocale(locale_t new_locale) { + pthread_once(&g_uselocale_once, g_uselocale_key_init); locale_t old_locale = static_cast(pthread_getspecific(g_uselocale_key)); // If this is the first call to uselocale(3) on this thread, we return LC_GLOBAL_LOCALE. diff --git a/libc/bionic/memchr.c b/libc/bionic/mempcpy.cpp similarity index 74% rename from libc/bionic/memchr.c rename to libc/bionic/mempcpy.cpp index b14167abd..b7b72f737 100644 --- a/libc/bionic/memchr.c +++ b/libc/bionic/mempcpy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008 The Android Open Source Project + * Copyright (C) 2015 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,22 +25,9 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ -#include + #include -void *memchr(const void *s, int c, size_t n) -{ - const unsigned char* p = s; - const unsigned char* end = p + n; - - for (;;) { - if (p >= end || p[0] == c) break; p++; - if (p >= end || p[0] == c) break; p++; - if (p >= end || p[0] == c) break; p++; - if (p >= end || p[0] == c) break; p++; - } - if (p >= end) - return NULL; - else - return (void*) p; +void* mempcpy(void* dst, const void* src, size_t n) { + return reinterpret_cast(memcpy(dst, src, n)) + n; } diff --git a/libc/bionic/ndk_cruft.cpp b/libc/bionic/ndk_cruft.cpp index 28d635518..109c5239b 100644 --- a/libc/bionic/ndk_cruft.cpp +++ b/libc/bionic/ndk_cruft.cpp @@ -26,11 +26,11 @@ * SUCH DAMAGE. */ -// This file perpetuates the mistakes of the past, but only for 32-bit targets. -#if !defined(__LP64__) +// This file perpetuates the mistakes of the past. #include #include +#include #include #include #include @@ -45,6 +45,11 @@ #include #include +#include "private/libc_logging.h" + +// The part is only for 32-bit targets. +#if !defined(__LP64__) + // These were accidentally declared in because we stupidly used to inline // getpagesize() and __getpageshift(). Needed for backwards compatibility with old NDK apps. extern "C" { @@ -341,4 +346,18 @@ extern "C" void* dlmalloc(size_t size) { return malloc(size); } -#endif +#endif // !defined(__LP64__) + +// This is never implemented in bionic, only needed for ABI compatibility with the NDK. +extern "C" char* getusershell() { + return NULL; +} + +// This is never implemented in bionic, only needed for ABI compatibility with the NDK. +extern "C" void setusershell() { } + +// This is never implemented in bionic, only needed for ABI compatibility with the NDK. +extern "C" void endusershell() { } + +// This is never implemented in bionic, only needed for ABI compatibility with the NDK. +extern "C" void endpwent() { } diff --git a/libc/bionic/pthread_attr.cpp b/libc/bionic/pthread_attr.cpp index c65ccc132..be1c25228 100644 --- a/libc/bionic/pthread_attr.cpp +++ b/libc/bionic/pthread_attr.cpp @@ -152,9 +152,6 @@ static int __pthread_attr_getstack_main_thread(void** stack_base, size_t* stack_ } int pthread_attr_getstack(const pthread_attr_t* attr, void** stack_base, size_t* stack_size) { - if ((attr->flags & PTHREAD_ATTR_FLAG_MAIN_THREAD) != 0) { - return __pthread_attr_getstack_main_thread(stack_base, stack_size); - } *stack_base = attr->stack_base; *stack_size = attr->stack_size; return 0; @@ -171,7 +168,13 @@ int pthread_attr_getguardsize(const pthread_attr_t* attr, size_t* guard_size) { } int pthread_getattr_np(pthread_t t, pthread_attr_t* attr) { - *attr = reinterpret_cast(t)->attr; + pthread_internal_t* thread = reinterpret_cast(t); + *attr = thread->attr; + // The main thread's stack information is not stored in thread->attr, and we need to + // collect that at runtime. + if (thread->tid == getpid()) { + return __pthread_attr_getstack_main_thread(&attr->stack_base, &attr->stack_size); + } return 0; } diff --git a/libc/bionic/pthread_cond.cpp b/libc/bionic/pthread_cond.cpp index 5542c5965..95a433c11 100644 --- a/libc/bionic/pthread_cond.cpp +++ b/libc/bionic/pthread_cond.cpp @@ -41,6 +41,13 @@ #include "private/bionic_time_conversions.h" #include "private/bionic_tls.h" +// XXX *technically* there is a race condition that could allow +// XXX a signal to be missed. If thread A is preempted in _wait() +// XXX after unlocking the mutex and before waiting, and if other +// XXX threads call signal or broadcast UINT_MAX/2 times (exactly), +// XXX before thread A is scheduled again and calls futex_wait(), +// XXX then the signal will be lost. + // We use one bit in pthread_condattr_t (long) values as the 'shared' flag // and one bit for the clock type (CLOCK_REALTIME is ((clockid_t) 1), and // CLOCK_MONOTONIC is ((clockid_t) 0).). The rest of the bits are a counter. @@ -57,7 +64,6 @@ #define COND_GET_CLOCK(c) (((c) & COND_CLOCK_MASK) >> 1) #define COND_SET_CLOCK(attr, c) ((attr) | (c << 1)) - int pthread_condattr_init(pthread_condattr_t* attr) { *attr = 0; *attr |= PTHREAD_PROCESS_PRIVATE; @@ -98,47 +104,50 @@ int pthread_condattr_destroy(pthread_condattr_t* attr) { return 0; } -static inline atomic_uint* COND_TO_ATOMIC_POINTER(pthread_cond_t* cond) { - static_assert(sizeof(atomic_uint) == sizeof(cond->value), - "cond->value should actually be atomic_uint in implementation."); +struct pthread_cond_internal_t { + atomic_uint state; - // We prefer casting to atomic_uint instead of declaring cond->value to be atomic_uint directly. - // Because using the second method pollutes pthread.h, and causes an error when compiling libcxx. - return reinterpret_cast(&cond->value); + bool process_shared() { + return COND_IS_SHARED(atomic_load_explicit(&state, memory_order_relaxed)); + } + + int get_clock() { + return COND_GET_CLOCK(atomic_load_explicit(&state, memory_order_relaxed)); + } + +#if defined(__LP64__) + char __reserved[44]; +#endif +}; + +static pthread_cond_internal_t* __get_internal_cond(pthread_cond_t* cond_interface) { + static_assert(sizeof(pthread_cond_t) == sizeof(pthread_cond_internal_t), + "pthread_cond_t should actually be pthread_cond_internal_t in implementation."); + return reinterpret_cast(cond_interface); } -// XXX *technically* there is a race condition that could allow -// XXX a signal to be missed. If thread A is preempted in _wait() -// XXX after unlocking the mutex and before waiting, and if other -// XXX threads call signal or broadcast UINT_MAX/2 times (exactly), -// XXX before thread A is scheduled again and calls futex_wait(), -// XXX then the signal will be lost. - -int pthread_cond_init(pthread_cond_t* cond, const pthread_condattr_t* attr) { - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - unsigned int init_value = 0; +int pthread_cond_init(pthread_cond_t* cond_interface, const pthread_condattr_t* attr) { + pthread_cond_internal_t* cond = __get_internal_cond(cond_interface); + unsigned int init_state = 0; if (attr != NULL) { - init_value = (*attr & COND_FLAGS_MASK); + init_state = (*attr & COND_FLAGS_MASK); } - atomic_init(cond_value_ptr, init_value); + atomic_init(&cond->state, init_state); return 0; } -int pthread_cond_destroy(pthread_cond_t* cond) { - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - atomic_store_explicit(cond_value_ptr, 0xdeadc04d, memory_order_relaxed); +int pthread_cond_destroy(pthread_cond_t* cond_interface) { + pthread_cond_internal_t* cond = __get_internal_cond(cond_interface); + atomic_store_explicit(&cond->state, 0xdeadc04d, memory_order_relaxed); return 0; } // This function is used by pthread_cond_broadcast and // pthread_cond_signal to atomically decrement the counter // then wake up thread_count threads. -static int __pthread_cond_pulse(atomic_uint* cond_value_ptr, int thread_count) { - unsigned int old_value = atomic_load_explicit(cond_value_ptr, memory_order_relaxed); - bool shared = COND_IS_SHARED(old_value); - +static int __pthread_cond_pulse(pthread_cond_internal_t* cond, int thread_count) { // We don't use a release/seq_cst fence here. Because pthread_cond_wait/signal can't be // used as a method for memory synchronization by itself. It should always be used with // pthread mutexes. Note that Spurious wakeups from pthread_cond_wait/timedwait may occur, @@ -149,20 +158,18 @@ static int __pthread_cond_pulse(atomic_uint* cond_value_ptr, int thread_count) { // synchronization. And it doesn't help even if we use any fence here. // The increase of value should leave flags alone, even if the value can overflows. - atomic_fetch_add_explicit(cond_value_ptr, COND_COUNTER_STEP, memory_order_relaxed); + atomic_fetch_add_explicit(&cond->state, COND_COUNTER_STEP, memory_order_relaxed); - __futex_wake_ex(cond_value_ptr, shared, thread_count); + __futex_wake_ex(&cond->state, cond->process_shared(), thread_count); return 0; } -__LIBC_HIDDEN__ -int __pthread_cond_timedwait_relative(atomic_uint* cond_value_ptr, pthread_mutex_t* mutex, - const timespec* reltime) { - unsigned int old_value = atomic_load_explicit(cond_value_ptr, memory_order_relaxed); - bool shared = COND_IS_SHARED(old_value); +static int __pthread_cond_timedwait_relative(pthread_cond_internal_t* cond, pthread_mutex_t* mutex, + const timespec* rel_timeout_or_null) { + unsigned int old_state = atomic_load_explicit(&cond->state, memory_order_relaxed); pthread_mutex_unlock(mutex); - int status = __futex_wait_ex(cond_value_ptr, shared, old_value, reltime); + int status = __futex_wait_ex(&cond->state, cond->process_shared(), old_state, rel_timeout_or_null); pthread_mutex_lock(mutex); if (status == -ETIMEDOUT) { @@ -171,67 +178,68 @@ int __pthread_cond_timedwait_relative(atomic_uint* cond_value_ptr, pthread_mutex return 0; } -__LIBC_HIDDEN__ -int __pthread_cond_timedwait(atomic_uint* cond_value_ptr, pthread_mutex_t* mutex, - const timespec* abs_ts, clockid_t clock) { +static int __pthread_cond_timedwait(pthread_cond_internal_t* cond, pthread_mutex_t* mutex, + const timespec* abs_timeout_or_null, clockid_t clock) { timespec ts; - timespec* tsp; + timespec* rel_timeout = NULL; - if (abs_ts != NULL) { - if (!timespec_from_absolute_timespec(ts, *abs_ts, clock)) { + if (abs_timeout_or_null != NULL) { + rel_timeout = &ts; + if (!timespec_from_absolute_timespec(*rel_timeout, *abs_timeout_or_null, clock)) { return ETIMEDOUT; } - tsp = &ts; - } else { - tsp = NULL; } - return __pthread_cond_timedwait_relative(cond_value_ptr, mutex, tsp); + return __pthread_cond_timedwait_relative(cond, mutex, rel_timeout); } -int pthread_cond_broadcast(pthread_cond_t* cond) { - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - return __pthread_cond_pulse(cond_value_ptr, INT_MAX); +int pthread_cond_broadcast(pthread_cond_t* cond_interface) { + return __pthread_cond_pulse(__get_internal_cond(cond_interface), INT_MAX); } -int pthread_cond_signal(pthread_cond_t* cond) { - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - return __pthread_cond_pulse(cond_value_ptr, 1); +int pthread_cond_signal(pthread_cond_t* cond_interface) { + return __pthread_cond_pulse(__get_internal_cond(cond_interface), 1); } -int pthread_cond_wait(pthread_cond_t* cond, pthread_mutex_t* mutex) { - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - return __pthread_cond_timedwait(cond_value_ptr, mutex, NULL, - COND_GET_CLOCK(atomic_load_explicit(cond_value_ptr, memory_order_relaxed))); +int pthread_cond_wait(pthread_cond_t* cond_interface, pthread_mutex_t* mutex) { + pthread_cond_internal_t* cond = __get_internal_cond(cond_interface); + return __pthread_cond_timedwait(cond, mutex, NULL, cond->get_clock()); } -int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t * mutex, const timespec *abstime) { - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - return __pthread_cond_timedwait(cond_value_ptr, mutex, abstime, - COND_GET_CLOCK(atomic_load_explicit(cond_value_ptr, memory_order_relaxed))); +int pthread_cond_timedwait(pthread_cond_t *cond_interface, pthread_mutex_t * mutex, + const timespec *abstime) { + + pthread_cond_internal_t* cond = __get_internal_cond(cond_interface); + return __pthread_cond_timedwait(cond, mutex, abstime, cond->get_clock()); } #if !defined(__LP64__) // TODO: this exists only for backward binary compatibility on 32 bit platforms. -extern "C" int pthread_cond_timedwait_monotonic(pthread_cond_t* cond, pthread_mutex_t* mutex, const timespec* abstime) { - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - return __pthread_cond_timedwait(cond_value_ptr, mutex, abstime, CLOCK_MONOTONIC); +extern "C" int pthread_cond_timedwait_monotonic(pthread_cond_t* cond_interface, + pthread_mutex_t* mutex, + const timespec* abs_timeout) { + + return __pthread_cond_timedwait(__get_internal_cond(cond_interface), mutex, abs_timeout, + CLOCK_MONOTONIC); } -extern "C" int pthread_cond_timedwait_monotonic_np(pthread_cond_t* cond, pthread_mutex_t* mutex, const timespec* abstime) { - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - return __pthread_cond_timedwait(cond_value_ptr, mutex, abstime, CLOCK_MONOTONIC); +extern "C" int pthread_cond_timedwait_monotonic_np(pthread_cond_t* cond_interface, + pthread_mutex_t* mutex, + const timespec* abs_timeout) { + return pthread_cond_timedwait_monotonic(cond_interface, mutex, abs_timeout); } -extern "C" int pthread_cond_timedwait_relative_np(pthread_cond_t* cond, pthread_mutex_t* mutex, const timespec* reltime) { - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - return __pthread_cond_timedwait_relative(cond_value_ptr, mutex, reltime); +extern "C" int pthread_cond_timedwait_relative_np(pthread_cond_t* cond_interface, + pthread_mutex_t* mutex, + const timespec* rel_timeout) { + + return __pthread_cond_timedwait_relative(__get_internal_cond(cond_interface), mutex, rel_timeout); } -extern "C" int pthread_cond_timeout_np(pthread_cond_t* cond, pthread_mutex_t* mutex, unsigned ms) { +extern "C" int pthread_cond_timeout_np(pthread_cond_t* cond_interface, + pthread_mutex_t* mutex, unsigned ms) { timespec ts; timespec_from_ms(ts, ms); - atomic_uint* cond_value_ptr = COND_TO_ATOMIC_POINTER(cond); - return __pthread_cond_timedwait_relative(cond_value_ptr, mutex, &ts); + return pthread_cond_timedwait_relative_np(cond_interface, mutex, &ts); } #endif // !defined(__LP64__) diff --git a/libc/bionic/pthread_create.cpp b/libc/bionic/pthread_create.cpp index c6d8494aa..2bca43f83 100644 --- a/libc/bionic/pthread_create.cpp +++ b/libc/bionic/pthread_create.cpp @@ -56,7 +56,8 @@ void __init_tls(pthread_internal_t* thread) { if (thread->mmap_size == 0) { // If the TLS area was not allocated by mmap(), it may not have been cleared to zero. // So assume the worst and zero the TLS area. - memset(&thread->tls[0], 0, BIONIC_TLS_SLOTS * sizeof(void*)); + memset(thread->tls, 0, sizeof(thread->tls)); + memset(thread->key_data, 0, sizeof(thread->key_data)); } // Slot 0 must point to itself. The x86 Linux kernel reads the TLS from %fs:0. @@ -155,7 +156,7 @@ static int __allocate_thread(pthread_attr_t* attr, pthread_internal_t** threadp, } // Mapped space(or user allocated stack) is used for: - // thread_internal_t (including tls array) + // thread_internal_t // thread stack (including guard page) stack_top -= sizeof(pthread_internal_t); pthread_internal_t* thread = reinterpret_cast(stack_top); diff --git a/libc/bionic/pthread_internal.h b/libc/bionic/pthread_internal.h index 8fbaf2213..6ace30180 100644 --- a/libc/bionic/pthread_internal.h +++ b/libc/bionic/pthread_internal.h @@ -41,8 +41,10 @@ /* Did the thread exit without freeing pthread_internal_t? */ #define PTHREAD_ATTR_FLAG_ZOMBIE 0x00000004 -/* Is this the main thread? */ -#define PTHREAD_ATTR_FLAG_MAIN_THREAD 0x80000000 +struct pthread_key_data_t { + uintptr_t seq; // Use uintptr_t just for alignment, as we use pointer below. + void* data; +}; struct pthread_internal_t { struct pthread_internal_t* next; @@ -86,6 +88,8 @@ struct pthread_internal_t { void* tls[BIONIC_TLS_SLOTS]; + pthread_key_data_t key_data[BIONIC_PTHREAD_KEY_COUNT]; + /* * The dynamic linker implements dlerror(3), which makes it hard for us to implement this * per-thread buffer by simply using malloc(3) and free(3). diff --git a/libc/bionic/pthread_key.cpp b/libc/bionic/pthread_key.cpp index 49b72e9de..65e087902 100644 --- a/libc/bionic/pthread_key.cpp +++ b/libc/bionic/pthread_key.cpp @@ -28,175 +28,98 @@ #include #include +#include #include "private/bionic_tls.h" #include "pthread_internal.h" -/* A technical note regarding our thread-local-storage (TLS) implementation: - * - * There can be up to BIONIC_TLS_SLOTS independent TLS keys in a given process, - * The keys below TLS_SLOT_FIRST_USER_SLOT are reserved for Bionic to hold - * special thread-specific variables like errno or a pointer to - * the current thread's descriptor. These entries cannot be accessed through - * pthread_getspecific() / pthread_setspecific() or pthread_key_delete() - * - * The 'tls_map_t' type defined below implements a shared global map of - * currently created/allocated TLS keys and the destructors associated - * with them. - * - * The global TLS map simply contains a bitmap of allocated keys, and - * an array of destructors. - * - * Each thread has a TLS area that is a simple array of BIONIC_TLS_SLOTS void* - * pointers. the TLS area of the main thread is stack-allocated in - * __libc_init_common, while the TLS area of other threads is placed at - * the top of their stack in pthread_create. - * - * When pthread_key_delete() is called it will erase the key's bitmap bit - * and its destructor, and will also clear the key data in the TLS area of - * all created threads. As mandated by Posix, it is the responsibility of - * the caller of pthread_key_delete() to properly reclaim the objects that - * were pointed to by these data fields (either before or after the call). - */ - -#define TLSMAP_BITS 32 -#define TLSMAP_WORDS ((BIONIC_TLS_SLOTS+TLSMAP_BITS-1)/TLSMAP_BITS) -#define TLSMAP_WORD(m,k) (m).map[(k)/TLSMAP_BITS] -#define TLSMAP_MASK(k) (1U << ((k)&(TLSMAP_BITS-1))) - -static inline bool IsValidUserKey(pthread_key_t key) { - return (key >= TLS_SLOT_FIRST_USER_SLOT && key < BIONIC_TLS_SLOTS); -} - typedef void (*key_destructor_t)(void*); -struct tls_map_t { - bool is_initialized; +#define SEQ_KEY_IN_USE_BIT 0 - /* bitmap of allocated keys */ - uint32_t map[TLSMAP_WORDS]; +#define SEQ_INCREMENT_STEP (1 << SEQ_KEY_IN_USE_BIT) - key_destructor_t key_destructors[BIONIC_TLS_SLOTS]; +// pthread_key_internal_t records the use of each pthread key slot: +// seq records the state of the slot. +// bit 0 is 1 when the key is in use, 0 when it is unused. Each time we create or delete the +// pthread key in the slot, we increse the seq by 1 (which inverts bit 0). The reason to use +// a sequence number instead of a boolean value here is that when the key slot is deleted and +// reused for a new key, pthread_getspecific will not return stale data. +// key_destructor records the destructor called at thread exit. +struct pthread_key_internal_t { + atomic_uintptr_t seq; + atomic_uintptr_t key_destructor; }; -class ScopedTlsMapAccess { - public: - ScopedTlsMapAccess() { - Lock(); +static pthread_key_internal_t key_map[BIONIC_PTHREAD_KEY_COUNT]; - // If this is the first time the TLS map has been accessed, - // mark the slots belonging to well-known keys as being in use. - // This isn't currently necessary because the well-known keys - // can only be accessed directly by bionic itself, do not have - // destructors, and all the functions that touch the TLS map - // start after the maximum well-known slot. - if (!s_tls_map_.is_initialized) { - for (pthread_key_t key = 0; key < TLS_SLOT_FIRST_USER_SLOT; ++key) { - SetInUse(key, NULL); - } - s_tls_map_.is_initialized = true; - } - } +static inline bool SeqOfKeyInUse(uintptr_t seq) { + return seq & (1 << SEQ_KEY_IN_USE_BIT); +} - ~ScopedTlsMapAccess() { - Unlock(); - } - - int CreateKey(pthread_key_t* result, void (*key_destructor)(void*)) { - // Take the first unallocated key. - for (int key = 0; key < BIONIC_TLS_SLOTS; ++key) { - if (!IsInUse(key)) { - SetInUse(key, key_destructor); - *result = key; - return 0; - } - } - - // We hit PTHREAD_KEYS_MAX. POSIX says EAGAIN for this case. - return EAGAIN; - } - - void DeleteKey(pthread_key_t key) { - TLSMAP_WORD(s_tls_map_, key) &= ~TLSMAP_MASK(key); - s_tls_map_.key_destructors[key] = NULL; - } - - bool IsInUse(pthread_key_t key) { - return (TLSMAP_WORD(s_tls_map_, key) & TLSMAP_MASK(key)) != 0; - } - - void SetInUse(pthread_key_t key, void (*key_destructor)(void*)) { - TLSMAP_WORD(s_tls_map_, key) |= TLSMAP_MASK(key); - s_tls_map_.key_destructors[key] = key_destructor; - } - - // Called from pthread_exit() to remove all TLS key data - // from this thread's TLS area. This must call the destructor of all keys - // that have a non-NULL data value and a non-NULL destructor. - void CleanAll() { - void** tls = __get_tls(); - - // Because destructors can do funky things like deleting/creating other - // keys, we need to implement this in a loop. - for (int rounds = PTHREAD_DESTRUCTOR_ITERATIONS; rounds > 0; --rounds) { - size_t called_destructor_count = 0; - for (int key = 0; key < BIONIC_TLS_SLOTS; ++key) { - if (IsInUse(key)) { - void* data = tls[key]; - void (*key_destructor)(void*) = s_tls_map_.key_destructors[key]; - - if (data != NULL && key_destructor != NULL) { - // we need to clear the key data now, this will prevent the - // destructor (or a later one) from seeing the old value if - // it calls pthread_getspecific() for some odd reason - - // we do not do this if 'key_destructor == NULL' just in case another - // destructor function might be responsible for manually - // releasing the corresponding data. - tls[key] = NULL; - - // because the destructor is free to call pthread_key_create - // and/or pthread_key_delete, we need to temporarily unlock - // the TLS map - Unlock(); - (*key_destructor)(data); - Lock(); - ++called_destructor_count; - } - } - } - - // If we didn't call any destructors, there is no need to check the TLS data again. - if (called_destructor_count == 0) { - break; - } - } - } - - private: - static tls_map_t s_tls_map_; - static pthread_mutex_t s_tls_map_lock_; - - void Lock() { - pthread_mutex_lock(&s_tls_map_lock_); - } - - void Unlock() { - pthread_mutex_unlock(&s_tls_map_lock_); - } -}; - -__LIBC_HIDDEN__ tls_map_t ScopedTlsMapAccess::s_tls_map_; -__LIBC_HIDDEN__ pthread_mutex_t ScopedTlsMapAccess::s_tls_map_lock_; +static inline bool KeyInValidRange(pthread_key_t key) { + return key >= 0 && key < BIONIC_PTHREAD_KEY_COUNT; +} +// Called from pthread_exit() to remove all pthread keys. This must call the destructor of +// all keys that have a non-NULL data value and a non-NULL destructor. __LIBC_HIDDEN__ void pthread_key_clean_all() { - ScopedTlsMapAccess tls_map; - tls_map.CleanAll(); + // Because destructors can do funky things like deleting/creating other keys, + // we need to implement this in a loop. + pthread_key_data_t* key_data = __get_thread()->key_data; + for (size_t rounds = PTHREAD_DESTRUCTOR_ITERATIONS; rounds > 0; --rounds) { + size_t called_destructor_count = 0; + for (size_t i = 0; i < BIONIC_PTHREAD_KEY_COUNT; ++i) { + uintptr_t seq = atomic_load_explicit(&key_map[i].seq, memory_order_relaxed); + if (SeqOfKeyInUse(seq) && seq == key_data[i].seq && key_data[i].data != NULL) { + // Other threads may be calling pthread_key_delete/pthread_key_create while current thread + // is exiting. So we need to ensure we read the right key_destructor. + // We can rely on a user-established happens-before relationship between the creation and + // use of pthread key to ensure that we're not getting an earlier key_destructor. + // To avoid using the key_destructor of the newly created key in the same slot, we need to + // recheck the sequence number after reading key_destructor. As a result, we either see the + // right key_destructor, or the sequence number must have changed when we reread it below. + key_destructor_t key_destructor = reinterpret_cast( + atomic_load_explicit(&key_map[i].key_destructor, memory_order_relaxed)); + if (key_destructor == NULL) { + continue; + } + atomic_thread_fence(memory_order_acquire); + if (atomic_load_explicit(&key_map[i].seq, memory_order_relaxed) != seq) { + continue; + } + + // We need to clear the key data now, this will prevent the destructor (or a later one) + // from seeing the old value if it calls pthread_getspecific(). + // We don't do this if 'key_destructor == NULL' just in case another destructor + // function is responsible for manually releasing the corresponding data. + void* data = key_data[i].data; + key_data[i].data = NULL; + + (*key_destructor)(data); + ++called_destructor_count; + } + } + + // If we didn't call any destructors, there is no need to check the pthread keys again. + if (called_destructor_count == 0) { + break; + } + } } int pthread_key_create(pthread_key_t* key, void (*key_destructor)(void*)) { - ScopedTlsMapAccess tls_map; - return tls_map.CreateKey(key, key_destructor); + for (size_t i = 0; i < BIONIC_PTHREAD_KEY_COUNT; ++i) { + uintptr_t seq = atomic_load_explicit(&key_map[i].seq, memory_order_relaxed); + while (!SeqOfKeyInUse(seq)) { + if (atomic_compare_exchange_weak(&key_map[i].seq, &seq, seq + SEQ_INCREMENT_STEP)) { + atomic_store(&key_map[i].key_destructor, reinterpret_cast(key_destructor)); + *key = i; + return 0; + } + } + } + return EAGAIN; } // Deletes a pthread_key_t. note that the standard mandates that this does @@ -204,42 +127,44 @@ int pthread_key_create(pthread_key_t* key, void (*key_destructor)(void*)) { // responsibility of the caller to properly dispose of the corresponding data // and resources, using any means it finds suitable. int pthread_key_delete(pthread_key_t key) { - ScopedTlsMapAccess tls_map; - - if (!IsValidUserKey(key) || !tls_map.IsInUse(key)) { + if (!KeyInValidRange(key)) { return EINVAL; } - - // Clear value in all threads. - pthread_mutex_lock(&g_thread_list_lock); - for (pthread_internal_t* t = g_thread_list; t != NULL; t = t->next) { - t->tls[key] = NULL; + // Increase seq to invalidate values in all threads. + uintptr_t seq = atomic_load_explicit(&key_map[key].seq, memory_order_relaxed); + if (SeqOfKeyInUse(seq)) { + if (atomic_compare_exchange_strong(&key_map[key].seq, &seq, seq + SEQ_INCREMENT_STEP)) { + return 0; + } } - tls_map.DeleteKey(key); - - pthread_mutex_unlock(&g_thread_list_lock); - return 0; + return EINVAL; } void* pthread_getspecific(pthread_key_t key) { - if (!IsValidUserKey(key)) { + if (!KeyInValidRange(key)) { return NULL; } - - // For performance reasons, we do not lock/unlock the global TLS map - // to check that the key is properly allocated. If the key was not - // allocated, the value read from the TLS should always be NULL - // due to pthread_key_delete() clearing the values for all threads. - return __get_tls()[key]; + uintptr_t seq = atomic_load_explicit(&key_map[key].seq, memory_order_relaxed); + pthread_key_data_t* data = &(__get_thread()->key_data[key]); + // It is user's responsibility to synchornize between the creation and use of pthread keys, + // so we use memory_order_relaxed when checking the sequence number. + if (__predict_true(SeqOfKeyInUse(seq) && data->seq == seq)) { + return data->data; + } + data->data = NULL; + return NULL; } int pthread_setspecific(pthread_key_t key, const void* ptr) { - ScopedTlsMapAccess tls_map; - - if (!IsValidUserKey(key) || !tls_map.IsInUse(key)) { + if (!KeyInValidRange(key)) { return EINVAL; } - - __get_tls()[key] = const_cast(ptr); - return 0; + uintptr_t seq = atomic_load_explicit(&key_map[key].seq, memory_order_relaxed); + if (SeqOfKeyInUse(seq)) { + pthread_key_data_t* data = &(__get_thread()->key_data[key]); + data->seq = seq; + data->data = const_cast(ptr); + return 0; + } + return EINVAL; } diff --git a/libc/bionic/pthread_rwlock.cpp b/libc/bionic/pthread_rwlock.cpp index 0d63457d2..f089940a8 100644 --- a/libc/bionic/pthread_rwlock.cpp +++ b/libc/bionic/pthread_rwlock.cpp @@ -27,6 +27,7 @@ */ #include +#include #include "pthread_internal.h" #include "private/bionic_futex.h" @@ -52,11 +53,6 @@ * - This implementation will return EDEADLK in "write after write" and "read after * write" cases and will deadlock in write after read case. * - * TODO: VERY CAREFULLY convert this to use C++11 atomics when possible. All volatile - * members of pthread_rwlock_t should be converted to atomics<> and __sync_bool_compare_and_swap - * should be changed to compare_exchange_strong accompanied by the proper ordering - * constraints (comments have been added with the intending ordering across the code). - * * TODO: As it stands now, pending_readers and pending_writers could be merged into a * a single waiters variable. Keeping them separate adds a bit of clarity and keeps * the door open for a writer-biased implementation. @@ -66,18 +62,6 @@ #define RWLOCKATTR_DEFAULT 0 #define RWLOCKATTR_SHARED_MASK 0x0010 -static inline bool rwlock_is_shared(const pthread_rwlock_t* rwlock) { - return rwlock->attr == PTHREAD_PROCESS_SHARED; -} - -static bool timespec_from_absolute(timespec* rel_timeout, const timespec* abs_timeout) { - if (abs_timeout != NULL) { - if (!timespec_from_absolute_timespec(*rel_timeout, *abs_timeout, CLOCK_REALTIME)) { - return false; - } - } - return true; -} int pthread_rwlockattr_init(pthread_rwlockattr_t* attr) { *attr = PTHREAD_PROCESS_PRIVATE; @@ -105,8 +89,36 @@ int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t* attr, int* pshared return 0; } -int pthread_rwlock_init(pthread_rwlock_t* rwlock, const pthread_rwlockattr_t* attr) { - if (attr != NULL) { +struct pthread_rwlock_internal_t { + atomic_int state; // 0=unlock, -1=writer lock, +n=reader lock + atomic_int writer_thread_id; + atomic_uint pending_readers; + atomic_uint pending_writers; + int32_t attr; + + bool process_shared() const { + return attr == PTHREAD_PROCESS_SHARED; + } + +#if defined(__LP64__) + char __reserved[36]; +#else + char __reserved[20]; +#endif +}; + +static inline pthread_rwlock_internal_t* __get_internal_rwlock(pthread_rwlock_t* rwlock_interface) { + static_assert(sizeof(pthread_rwlock_t) == sizeof(pthread_rwlock_internal_t), + "pthread_rwlock_t should actually be pthread_rwlock_internal_t in implementation."); + return reinterpret_cast(rwlock_interface); +} + +int pthread_rwlock_init(pthread_rwlock_t* rwlock_interface, const pthread_rwlockattr_t* attr) { + pthread_rwlock_internal_t* rwlock = __get_internal_rwlock(rwlock_interface); + + if (__predict_true(attr == NULL)) { + rwlock->attr = 0; + } else { switch (*attr) { case PTHREAD_PROCESS_SHARED: case PTHREAD_PROCESS_PRIVATE: @@ -117,165 +129,214 @@ int pthread_rwlock_init(pthread_rwlock_t* rwlock, const pthread_rwlockattr_t* at } } - rwlock->state = 0; - rwlock->pending_readers = 0; - rwlock->pending_writers = 0; - rwlock->writer_thread_id = 0; + atomic_init(&rwlock->state, 0); + atomic_init(&rwlock->writer_thread_id, 0); + atomic_init(&rwlock->pending_readers, 0); + atomic_init(&rwlock->pending_writers, 0); return 0; } -int pthread_rwlock_destroy(pthread_rwlock_t* rwlock) { - if (rwlock->state != 0) { +int pthread_rwlock_destroy(pthread_rwlock_t* rwlock_interface) { + pthread_rwlock_internal_t* rwlock = __get_internal_rwlock(rwlock_interface); + + if (atomic_load_explicit(&rwlock->state, memory_order_relaxed) != 0) { return EBUSY; } return 0; } -static int __pthread_rwlock_timedrdlock(pthread_rwlock_t* rwlock, const timespec* abs_timeout) { - if (__predict_false(__get_thread()->tid == rwlock->writer_thread_id)) { +static int __pthread_rwlock_timedrdlock(pthread_rwlock_internal_t* rwlock, + const timespec* abs_timeout_or_null) { + + if (__predict_false(__get_thread()->tid == atomic_load_explicit(&rwlock->writer_thread_id, + memory_order_relaxed))) { return EDEADLK; } - timespec ts; - timespec* rel_timeout = (abs_timeout == NULL) ? NULL : &ts; - bool done = false; - do { - // This is actually a race read as there's nothing that guarantees the atomicity of integer - // reads / writes. However, in practice this "never" happens so until we switch to C++11 this - // should work fine. The same applies in the other places this idiom is used. - int32_t cur_state = rwlock->state; // C++11 relaxed atomic read - if (__predict_true(cur_state >= 0)) { - // Add as an extra reader. - done = __sync_bool_compare_and_swap(&rwlock->state, cur_state, cur_state + 1); // C++11 memory_order_aquire - } else { - if (!timespec_from_absolute(rel_timeout, abs_timeout)) { - return ETIMEDOUT; + while (true) { + int old_state = atomic_load_explicit(&rwlock->state, memory_order_relaxed); + if (__predict_true(old_state >= 0)) { + if (atomic_compare_exchange_weak_explicit(&rwlock->state, &old_state, old_state + 1, + memory_order_acquire, memory_order_relaxed)) { + return 0; } - // Owner holds it in write mode, hang up. - // To avoid losing wake ups the pending_readers update and the state read should be - // sequentially consistent. (currently enforced by __sync_fetch_and_add which creates a full barrier) - __sync_fetch_and_add(&rwlock->pending_readers, 1); // C++11 memory_order_relaxed (if the futex_wait ensures the ordering) - int ret = __futex_wait_ex(&rwlock->state, rwlock_is_shared(rwlock), cur_state, rel_timeout); - __sync_fetch_and_sub(&rwlock->pending_readers, 1); // C++11 memory_order_relaxed + } else { + timespec ts; + timespec* rel_timeout = NULL; + + if (abs_timeout_or_null != NULL) { + rel_timeout = &ts; + if (!timespec_from_absolute_timespec(*rel_timeout, *abs_timeout_or_null, CLOCK_REALTIME)) { + return ETIMEDOUT; + } + } + + // To avoid losing wake ups, the pending_readers increment should be observed before + // futex_wait by all threads. A seq_cst fence instead of a seq_cst operation is used + // here. Because only a seq_cst fence can ensure sequential consistency for non-atomic + // operations in futex_wait. + atomic_fetch_add_explicit(&rwlock->pending_readers, 1, memory_order_relaxed); + + atomic_thread_fence(memory_order_seq_cst); + + int ret = __futex_wait_ex(&rwlock->state, rwlock->process_shared(), old_state, + rel_timeout); + + atomic_fetch_sub_explicit(&rwlock->pending_readers, 1, memory_order_relaxed); + if (ret == -ETIMEDOUT) { return ETIMEDOUT; } } - } while (!done); - - return 0; + } } -static int __pthread_rwlock_timedwrlock(pthread_rwlock_t* rwlock, const timespec* abs_timeout) { - int tid = __get_thread()->tid; - if (__predict_false(tid == rwlock->writer_thread_id)) { +static int __pthread_rwlock_timedwrlock(pthread_rwlock_internal_t* rwlock, + const timespec* abs_timeout_or_null) { + + if (__predict_false(__get_thread()->tid == atomic_load_explicit(&rwlock->writer_thread_id, + memory_order_relaxed))) { return EDEADLK; } - timespec ts; - timespec* rel_timeout = (abs_timeout == NULL) ? NULL : &ts; - bool done = false; - do { - int32_t cur_state = rwlock->state; - if (__predict_true(cur_state == 0)) { - // Change state from 0 to -1. - done = __sync_bool_compare_and_swap(&rwlock->state, 0 /* cur state */, -1 /* new state */); // C++11 memory_order_aquire - } else { - if (!timespec_from_absolute(rel_timeout, abs_timeout)) { - return ETIMEDOUT; + while (true) { + int old_state = atomic_load_explicit(&rwlock->state, memory_order_relaxed); + if (__predict_true(old_state == 0)) { + if (atomic_compare_exchange_weak_explicit(&rwlock->state, &old_state, -1, + memory_order_acquire, memory_order_relaxed)) { + // writer_thread_id is protected by rwlock and can only be modified in rwlock write + // owner thread. Other threads may read it for EDEADLK error checking, atomic operation + // is safe enough for it. + atomic_store_explicit(&rwlock->writer_thread_id, __get_thread()->tid, memory_order_relaxed); + return 0; } - // Failed to acquire, hang up. - // To avoid losing wake ups the pending_writers update and the state read should be - // sequentially consistent. (currently enforced by __sync_fetch_and_add which creates a full barrier) - __sync_fetch_and_add(&rwlock->pending_writers, 1); // C++11 memory_order_relaxed (if the futex_wait ensures the ordering) - int ret = __futex_wait_ex(&rwlock->state, rwlock_is_shared(rwlock), cur_state, rel_timeout); - __sync_fetch_and_sub(&rwlock->pending_writers, 1); // C++11 memory_order_relaxed + } else { + timespec ts; + timespec* rel_timeout = NULL; + + if (abs_timeout_or_null != NULL) { + rel_timeout = &ts; + if (!timespec_from_absolute_timespec(*rel_timeout, *abs_timeout_or_null, CLOCK_REALTIME)) { + return ETIMEDOUT; + } + } + + // To avoid losing wake ups, the pending_writers increment should be observed before + // futex_wait by all threads. A seq_cst fence instead of a seq_cst operation is used + // here. Because only a seq_cst fence can ensure sequential consistency for non-atomic + // operations in futex_wait. + atomic_fetch_add_explicit(&rwlock->pending_writers, 1, memory_order_relaxed); + + atomic_thread_fence(memory_order_seq_cst); + + int ret = __futex_wait_ex(&rwlock->state, rwlock->process_shared(), old_state, + rel_timeout); + + atomic_fetch_sub_explicit(&rwlock->pending_writers, 1, memory_order_relaxed); + if (ret == -ETIMEDOUT) { return ETIMEDOUT; } } - } while (!done); - - rwlock->writer_thread_id = tid; - return 0; + } } -int pthread_rwlock_rdlock(pthread_rwlock_t* rwlock) { +int pthread_rwlock_rdlock(pthread_rwlock_t* rwlock_interface) { + pthread_rwlock_internal_t* rwlock = __get_internal_rwlock(rwlock_interface); + return __pthread_rwlock_timedrdlock(rwlock, NULL); } -int pthread_rwlock_timedrdlock(pthread_rwlock_t* rwlock, const timespec* abs_timeout) { +int pthread_rwlock_timedrdlock(pthread_rwlock_t* rwlock_interface, const timespec* abs_timeout) { + pthread_rwlock_internal_t* rwlock = __get_internal_rwlock(rwlock_interface); + return __pthread_rwlock_timedrdlock(rwlock, abs_timeout); } -int pthread_rwlock_tryrdlock(pthread_rwlock_t* rwlock) { - int32_t cur_state = rwlock->state; - if ((cur_state >= 0) && - __sync_bool_compare_and_swap(&rwlock->state, cur_state, cur_state + 1)) { // C++11 memory_order_acquire - return 0; +int pthread_rwlock_tryrdlock(pthread_rwlock_t* rwlock_interface) { + pthread_rwlock_internal_t* rwlock = __get_internal_rwlock(rwlock_interface); + + int old_state = atomic_load_explicit(&rwlock->state, memory_order_relaxed); + + while (old_state >= 0 && !atomic_compare_exchange_weak_explicit(&rwlock->state, &old_state, + old_state + 1, memory_order_acquire, memory_order_relaxed)) { } - return EBUSY; + return (old_state >= 0) ? 0 : EBUSY; } -int pthread_rwlock_wrlock(pthread_rwlock_t* rwlock) { +int pthread_rwlock_wrlock(pthread_rwlock_t* rwlock_interface) { + pthread_rwlock_internal_t* rwlock = __get_internal_rwlock(rwlock_interface); + return __pthread_rwlock_timedwrlock(rwlock, NULL); } -int pthread_rwlock_timedwrlock(pthread_rwlock_t* rwlock, const timespec* abs_timeout) { +int pthread_rwlock_timedwrlock(pthread_rwlock_t* rwlock_interface, const timespec* abs_timeout) { + pthread_rwlock_internal_t* rwlock = __get_internal_rwlock(rwlock_interface); + return __pthread_rwlock_timedwrlock(rwlock, abs_timeout); } -int pthread_rwlock_trywrlock(pthread_rwlock_t* rwlock) { - int tid = __get_thread()->tid; - int32_t cur_state = rwlock->state; - if ((cur_state == 0) && - __sync_bool_compare_and_swap(&rwlock->state, 0 /* cur state */, -1 /* new state */)) { // C++11 memory_order_acquire - rwlock->writer_thread_id = tid; +int pthread_rwlock_trywrlock(pthread_rwlock_t* rwlock_interface) { + pthread_rwlock_internal_t* rwlock = __get_internal_rwlock(rwlock_interface); + + int old_state = atomic_load_explicit(&rwlock->state, memory_order_relaxed); + + while (old_state == 0 && !atomic_compare_exchange_weak_explicit(&rwlock->state, &old_state, -1, + memory_order_acquire, memory_order_relaxed)) { + } + if (old_state == 0) { + atomic_store_explicit(&rwlock->writer_thread_id, __get_thread()->tid, memory_order_relaxed); return 0; } return EBUSY; } -int pthread_rwlock_unlock(pthread_rwlock_t* rwlock) { - int tid = __get_thread()->tid; - bool done = false; - do { - int32_t cur_state = rwlock->state; - if (cur_state == 0) { +int pthread_rwlock_unlock(pthread_rwlock_t* rwlock_interface) { + pthread_rwlock_internal_t* rwlock = __get_internal_rwlock(rwlock_interface); + + int old_state = atomic_load_explicit(&rwlock->state, memory_order_relaxed); + if (__predict_false(old_state == 0)) { + return EPERM; + } else if (old_state == -1) { + if (atomic_load_explicit(&rwlock->writer_thread_id, memory_order_relaxed) != __get_thread()->tid) { return EPERM; } - if (cur_state == -1) { - if (rwlock->writer_thread_id != tid) { - return EPERM; - } - // We're no longer the owner. - rwlock->writer_thread_id = 0; - // Change state from -1 to 0. - // We use __sync_bool_compare_and_swap to achieve sequential consistency of the state store and - // the following pendingX loads. A simple store with memory_order_release semantics - // is not enough to guarantee that the pendingX loads are not reordered before the - // store (which may lead to a lost wakeup). - __sync_bool_compare_and_swap( &rwlock->state, -1 /* cur state*/, 0 /* new state */); // C++11 maybe memory_order_seq_cst? + // We're no longer the owner. + atomic_store_explicit(&rwlock->writer_thread_id, 0, memory_order_relaxed); + // Change state from -1 to 0. + atomic_store_explicit(&rwlock->state, 0, memory_order_release); - // Wake any waiters. - if (__predict_false(rwlock->pending_readers > 0 || rwlock->pending_writers > 0)) { - __futex_wake_ex(&rwlock->state, rwlock_is_shared(rwlock), INT_MAX); - } - done = true; - } else { // cur_state > 0 - // Reduce state by 1. - // See the comment above on why we need __sync_bool_compare_and_swap. - done = __sync_bool_compare_and_swap(&rwlock->state, cur_state, cur_state - 1); // C++11 maybe memory_order_seq_cst? - if (done && (cur_state - 1) == 0) { - // There are no more readers, wake any waiters. - if (__predict_false(rwlock->pending_readers > 0 || rwlock->pending_writers > 0)) { - __futex_wake_ex(&rwlock->state, rwlock_is_shared(rwlock), INT_MAX); - } - } + } else { // old_state > 0 + // Reduce state by 1. + while (old_state > 0 && !atomic_compare_exchange_weak_explicit(&rwlock->state, &old_state, + old_state - 1, memory_order_release, memory_order_relaxed)) { } - } while (!done); + if (old_state <= 0) { + return EPERM; + } else if (old_state > 1) { + return 0; + } + // old_state = 1, which means the last reader calling unlock. It has to wake up waiters. + } + + // If having waiters, wake up them. + // To avoid losing wake ups, the update of state should be observed before reading + // pending_readers/pending_writers by all threads. Use read locking as an example: + // read locking thread unlocking thread + // pending_readers++; state = 0; + // seq_cst fence seq_cst fence + // read state for futex_wait read pending_readers for futex_wake + // + // So when locking and unlocking threads are running in parallel, we will not get + // in a situation that the locking thread reads state as negative and needs to wait, + // while the unlocking thread reads pending_readers as zero and doesn't need to wake up waiters. + atomic_thread_fence(memory_order_seq_cst); + if (__predict_false(atomic_load_explicit(&rwlock->pending_readers, memory_order_relaxed) > 0 || + atomic_load_explicit(&rwlock->pending_writers, memory_order_relaxed) > 0)) { + __futex_wake_ex(&rwlock->state, rwlock->process_shared(), INT_MAX); + } return 0; } diff --git a/libc/bionic/stubs.cpp b/libc/bionic/stubs.cpp index 1264fd7c1..f9a31b9af 100644 --- a/libc/bionic/stubs.cpp +++ b/libc/bionic/stubs.cpp @@ -446,31 +446,6 @@ protoent* getprotobynumber(int /*proto*/) { return NULL; } -static void unimplemented_stub(const char* function) { - const char* fmt = "%s(3) is not implemented on Android\n"; - __libc_format_log(ANDROID_LOG_WARN, "libc", fmt, function); - fprintf(stderr, fmt, function); -} - -#define UNIMPLEMENTED unimplemented_stub(__PRETTY_FUNCTION__) - -void endpwent() { - UNIMPLEMENTED; -} - -char* getusershell() { - UNIMPLEMENTED; - return NULL; -} - -void setusershell() { - UNIMPLEMENTED; -} - -void endusershell() { - UNIMPLEMENTED; -} - // Portable code should use sysconf(_SC_PAGE_SIZE) directly instead. int getpagesize() { // We dont use sysconf(3) here because that drags in stdio, which makes static binaries fat. diff --git a/libc/bionic/sysconf.cpp b/libc/bionic/sysconf.cpp index 411c23ab0..c301b27b3 100644 --- a/libc/bionic/sysconf.cpp +++ b/libc/bionic/sysconf.cpp @@ -33,6 +33,7 @@ #include #include // For FOPEN_MAX. #include +#include #include #include #include @@ -50,6 +51,12 @@ static bool __sysconf_has_clock(clockid_t clock_id) { return clock_getres(clock_id, NULL) == 0; } +static long __sysconf_rlimit(int resource) { + rlimit rl; + getrlimit(resource, &rl); + return rl.rlim_cur; +} + long sysconf(int name) { switch (name) { case _SC_ARG_MAX: return ARG_MAX; @@ -57,13 +64,13 @@ long sysconf(int name) { case _SC_BC_DIM_MAX: return _POSIX2_BC_DIM_MAX; // Minimum requirement. case _SC_BC_SCALE_MAX: return _POSIX2_BC_SCALE_MAX; // Minimum requirement. case _SC_BC_STRING_MAX: return _POSIX2_BC_STRING_MAX; // Minimum requirement. - case _SC_CHILD_MAX: return CHILD_MAX; + case _SC_CHILD_MAX: return __sysconf_rlimit(RLIMIT_NPROC); case _SC_CLK_TCK: return static_cast(getauxval(AT_CLKTCK)); case _SC_COLL_WEIGHTS_MAX: return _POSIX2_COLL_WEIGHTS_MAX; // Minimum requirement. case _SC_EXPR_NEST_MAX: return _POSIX2_EXPR_NEST_MAX; // Minimum requirement. case _SC_LINE_MAX: return _POSIX2_LINE_MAX; // Minimum requirement. case _SC_NGROUPS_MAX: return NGROUPS_MAX; - case _SC_OPEN_MAX: return OPEN_MAX; + case _SC_OPEN_MAX: return __sysconf_rlimit(RLIMIT_NOFILE); case _SC_PASS_MAX: return PASS_MAX; case _SC_2_C_BIND: return _POSIX2_C_BIND; case _SC_2_C_DEV: return _POSIX2_C_DEV; diff --git a/libc/bionic/system_properties.cpp b/libc/bionic/system_properties.cpp index 170e7ac97..aae99b12c 100644 --- a/libc/bionic/system_properties.cpp +++ b/libc/bionic/system_properties.cpp @@ -51,7 +51,6 @@ #include #include -#include "private/bionic_atomic_inline.h" #include "private/bionic_futex.h" #include "private/bionic_macros.h" @@ -80,22 +79,26 @@ struct prop_bt { uint8_t namelen; uint8_t reserved[3]; - // TODO: The following fields should be declared as atomic_uint32_t. - // They should be assigned to with release semantics, instead of using - // explicit fences. Unfortunately, the read accesses are generally - // followed by more dependent read accesses, and the dependence - // is assumed to enforce memory ordering. Which it does on supported - // hardware. This technically should use memory_order_consume, if - // that worked as intended. + // The property trie is updated only by the init process (single threaded) which provides + // property service. And it can be read by multiple threads at the same time. + // As the property trie is not protected by locks, we use atomic_uint_least32_t types for the + // left, right, children "pointers" in the trie node. To make sure readers who see the + // change of "pointers" can also notice the change of prop_bt structure contents pointed by + // the "pointers", we always use release-consume ordering pair when accessing these "pointers". + + // prop "points" to prop_info structure if there is a propery associated with the trie node. + // Its situation is similar to the left, right, children "pointers". So we use + // atomic_uint_least32_t and release-consume ordering to protect it as well. + // We should also avoid rereading these fields redundantly, since not // all processor implementations ensure that multiple loads from the // same field are carried out in the right order. - volatile uint32_t prop; + atomic_uint_least32_t prop; - volatile uint32_t left; - volatile uint32_t right; + atomic_uint_least32_t left; + atomic_uint_least32_t right; - volatile uint32_t children; + atomic_uint_least32_t children; char name[0]; @@ -103,8 +106,6 @@ struct prop_bt { this->namelen = name_length; memcpy(this->name, name, name_length); this->name[name_length] = '\0'; - ANDROID_MEMBAR_FULL(); // TODO: Instead use a release store - // for subsequent pointer assignment. } private: @@ -143,8 +144,6 @@ struct prop_info { atomic_init(&this->serial, valuelen << 24); memcpy(this->value, value, valuelen); this->value[valuelen] = '\0'; - ANDROID_MEMBAR_FULL(); // TODO: Instead use a release store - // for subsequent point assignment. } private: DISALLOW_COPY_AND_ASSIGN(prop_info); @@ -291,10 +290,10 @@ static int map_prop_area() return map_result; } -static void *allocate_obj(const size_t size, uint32_t *const off) +static void *allocate_obj(const size_t size, uint_least32_t *const off) { prop_area *pa = __system_property_area__; - const size_t aligned = BIONIC_ALIGN(size, sizeof(uint32_t)); + const size_t aligned = BIONIC_ALIGN(size, sizeof(uint_least32_t)); if (pa->bytes_used + aligned > pa_data_size) { return NULL; } @@ -304,12 +303,12 @@ static void *allocate_obj(const size_t size, uint32_t *const off) return pa->data + *off; } -static prop_bt *new_prop_bt(const char *name, uint8_t namelen, uint32_t *const off) +static prop_bt *new_prop_bt(const char *name, uint8_t namelen, uint_least32_t *const off) { - uint32_t new_offset; - void *const offset = allocate_obj(sizeof(prop_bt) + namelen + 1, &new_offset); - if (offset) { - prop_bt* bt = new(offset) prop_bt(name, namelen); + uint_least32_t new_offset; + void *const p = allocate_obj(sizeof(prop_bt) + namelen + 1, &new_offset); + if (p != NULL) { + prop_bt* bt = new(p) prop_bt(name, namelen); *off = new_offset; return bt; } @@ -318,20 +317,20 @@ static prop_bt *new_prop_bt(const char *name, uint8_t namelen, uint32_t *const o } static prop_info *new_prop_info(const char *name, uint8_t namelen, - const char *value, uint8_t valuelen, uint32_t *const off) + const char *value, uint8_t valuelen, uint_least32_t *const off) { - uint32_t off_tmp; - void* const offset = allocate_obj(sizeof(prop_info) + namelen + 1, &off_tmp); - if (offset) { - prop_info* info = new(offset) prop_info(name, namelen, value, valuelen); - *off = off_tmp; + uint_least32_t new_offset; + void* const p = allocate_obj(sizeof(prop_info) + namelen + 1, &new_offset); + if (p != NULL) { + prop_info* info = new(p) prop_info(name, namelen, value, valuelen); + *off = new_offset; return info; } return NULL; } -static void *to_prop_obj(const uint32_t off) +static void *to_prop_obj(uint_least32_t off) { if (off > pa_data_size) return NULL; @@ -341,7 +340,17 @@ static void *to_prop_obj(const uint32_t off) return (__system_property_area__->data + off); } -static prop_bt *root_node() +static inline prop_bt *to_prop_bt(atomic_uint_least32_t* off_p) { + uint_least32_t off = atomic_load_explicit(off_p, memory_order_consume); + return reinterpret_cast(to_prop_obj(off)); +} + +static inline prop_info *to_prop_info(atomic_uint_least32_t* off_p) { + uint_least32_t off = atomic_load_explicit(off_p, memory_order_consume); + return reinterpret_cast(to_prop_obj(off)); +} + +static inline prop_bt *root_node() { return reinterpret_cast(to_prop_obj(0)); } @@ -373,36 +382,34 @@ static prop_bt *find_prop_bt(prop_bt *const bt, const char *name, } if (ret < 0) { - if (current->left) { - current = reinterpret_cast(to_prop_obj(current->left)); + uint_least32_t left_offset = atomic_load_explicit(¤t->left, memory_order_relaxed); + if (left_offset != 0) { + current = to_prop_bt(¤t->left); } else { if (!alloc_if_needed) { return NULL; } - // Note that there isn't a race condition here. "clients" never - // reach this code-path since It's only the (single threaded) server - // that allocates new nodes. Though "bt->left" is volatile, it can't - // have changed since the last value was last read. - uint32_t new_offset = 0; + uint_least32_t new_offset; prop_bt* new_bt = new_prop_bt(name, namelen, &new_offset); if (new_bt) { - current->left = new_offset; + atomic_store_explicit(¤t->left, new_offset, memory_order_release); } return new_bt; } } else { - if (current->right) { - current = reinterpret_cast(to_prop_obj(current->right)); + uint_least32_t right_offset = atomic_load_explicit(¤t->right, memory_order_relaxed); + if (right_offset != 0) { + current = to_prop_bt(¤t->right); } else { if (!alloc_if_needed) { return NULL; } - uint32_t new_offset; + uint_least32_t new_offset; prop_bt* new_bt = new_prop_bt(name, namelen, &new_offset); if (new_bt) { - current->right = new_offset; + atomic_store_explicit(¤t->right, new_offset, memory_order_release); } return new_bt; } @@ -429,13 +436,14 @@ static const prop_info *find_property(prop_bt *const trie, const char *name, } prop_bt* root = NULL; - if (current->children) { - root = reinterpret_cast(to_prop_obj(current->children)); + uint_least32_t children_offset = atomic_load_explicit(¤t->children, memory_order_relaxed); + if (children_offset != 0) { + root = to_prop_bt(¤t->children); } else if (alloc_if_needed) { - uint32_t new_bt_offset; - root = new_prop_bt(remaining_name, substr_size, &new_bt_offset); + uint_least32_t new_offset; + root = new_prop_bt(remaining_name, substr_size, &new_offset); if (root) { - current->children = new_bt_offset; + atomic_store_explicit(¤t->children, new_offset, memory_order_release); } } @@ -454,13 +462,14 @@ static const prop_info *find_property(prop_bt *const trie, const char *name, remaining_name = sep + 1; } - if (current->prop) { - return reinterpret_cast(to_prop_obj(current->prop)); + uint_least32_t prop_offset = atomic_load_explicit(¤t->prop, memory_order_relaxed); + if (prop_offset != 0) { + return to_prop_info(¤t->prop); } else if (alloc_if_needed) { - uint32_t new_info_offset; - prop_info* new_info = new_prop_info(name, namelen, value, valuelen, &new_info_offset); + uint_least32_t new_offset; + prop_info* new_info = new_prop_info(name, namelen, value, valuelen, &new_offset); if (new_info) { - current->prop = new_info_offset; + atomic_store_explicit(¤t->prop, new_offset, memory_order_release); } return new_info; @@ -534,31 +543,34 @@ static void find_nth_fn(const prop_info *pi, void *ptr) cookie->count++; } -static int foreach_property(const uint32_t off, +static int foreach_property(prop_bt *const trie, void (*propfn)(const prop_info *pi, void *cookie), void *cookie) { - prop_bt *trie = reinterpret_cast(to_prop_obj(off)); if (!trie) return -1; - if (trie->left) { - const int err = foreach_property(trie->left, propfn, cookie); + uint_least32_t left_offset = atomic_load_explicit(&trie->left, memory_order_relaxed); + if (left_offset != 0) { + const int err = foreach_property(to_prop_bt(&trie->left), propfn, cookie); if (err < 0) return -1; } - if (trie->prop) { - prop_info *info = reinterpret_cast(to_prop_obj(trie->prop)); + uint_least32_t prop_offset = atomic_load_explicit(&trie->prop, memory_order_relaxed); + if (prop_offset != 0) { + prop_info *info = to_prop_info(&trie->prop); if (!info) return -1; propfn(info, cookie); } - if (trie->children) { - const int err = foreach_property(trie->children, propfn, cookie); + uint_least32_t children_offset = atomic_load_explicit(&trie->children, memory_order_relaxed); + if (children_offset != 0) { + const int err = foreach_property(to_prop_bt(&trie->children), propfn, cookie); if (err < 0) return -1; } - if (trie->right) { - const int err = foreach_property(trie->right, propfn, cookie); + uint_least32_t right_offset = atomic_load_explicit(&trie->right, memory_order_relaxed); + if (right_offset != 0) { + const int err = foreach_property(to_prop_bt(&trie->right), propfn, cookie); if (err < 0) return -1; } @@ -766,5 +778,5 @@ int __system_property_foreach(void (*propfn)(const prop_info *pi, void *cookie), return __system_property_foreach_compat(propfn, cookie); } - return foreach_property(0, propfn, cookie); + return foreach_property(root_node(), propfn, cookie); } diff --git a/libc/bionic/memrchr.c b/libc/bionic/wmempcpy.cpp similarity index 70% rename from libc/bionic/memrchr.c rename to libc/bionic/wmempcpy.cpp index aeb5643b0..54ebf8662 100644 --- a/libc/bionic/memrchr.c +++ b/libc/bionic/wmempcpy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008 The Android Open Source Project + * Copyright (C) 2015 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,23 +25,9 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ -#include -#include -void *memrchr(const void *s, int c, size_t n) -{ - if (n > 0) { - const char* p = (const char*) s; - const char* q = p + n; +#include - while (1) { - q--; if (q < p || q[0] == (char) c) break; - q--; if (q < p || q[0] == (char) c) break; - q--; if (q < p || q[0] == (char) c) break; - q--; if (q < p || q[0] == (char) c) break; - } - if (q >= p) - return (void*)q; - } - return NULL; +wchar_t* wmempcpy(wchar_t* dst, const wchar_t* src, size_t n) { + return wmemcpy(dst, src, n) + n; } diff --git a/libc/dns/resolv/res_send.c b/libc/dns/resolv/res_send.c index 6439e31ce..a8da3ac75 100644 --- a/libc/dns/resolv/res_send.c +++ b/libc/dns/resolv/res_send.c @@ -402,6 +402,10 @@ res_nsend(res_state statp, } if (statp->nscount == 0) { + // We have no nameservers configured, so there's no point trying. + // Tell the cache the query failed, or any retries and anyone else asking the same + // question will block for PENDING_REQUEST_TIMEOUT seconds instead of failing fast. + _resolv_cache_query_failed(statp->netid, buf, buflen); errno = ESRCH; return (-1); } diff --git a/libc/dns/resolv/res_state.c b/libc/dns/resolv/res_state.c index 7533d1957..459f07394 100644 --- a/libc/dns/resolv/res_state.c +++ b/libc/dns/resolv/res_state.c @@ -39,6 +39,8 @@ #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ #include +#include "private/ThreadLocalBuffer.h" + /* Set to 1 to enable debug traces */ #define DEBUG 0 @@ -50,8 +52,6 @@ # define D(...) do{}while(0) #endif -static pthread_key_t _res_key; - typedef struct { int _h_errno; // TODO: Have one __res_state per network so we don't have to repopulate frequently. @@ -105,12 +105,7 @@ _res_thread_free( void* _rt ) free(rt); } -__attribute__((constructor)) -static void -_res_init_key( void ) -{ - pthread_key_create( &_res_key, _res_thread_free ); -} +BIONIC_PTHREAD_KEY_WITH_CONSTRUCTOR(_res_key, _res_thread_free); static _res_thread* _res_thread_get(void) diff --git a/libc/include/elf.h b/libc/include/elf.h index 2039cc056..ee53ad14b 100644 --- a/libc/include/elf.h +++ b/libc/include/elf.h @@ -94,6 +94,13 @@ typedef struct { #define DT_PREINIT_ARRAY 32 #define DT_PREINIT_ARRAYSZ 33 +/* Android compressed rel/rela sections */ +#define DT_ANDROID_REL (DT_LOOS + 2) +#define DT_ANDROID_RELSZ (DT_LOOS + 3) + +#define DT_ANDROID_RELA (DT_LOOS + 4) +#define DT_ANDROID_RELASZ (DT_LOOS + 5) + /* gnu hash entry */ #define DT_GNU_HASH 0x6ffffef5 @@ -106,6 +113,9 @@ typedef struct { #define STB_LOPROC 13 #define STB_HIPROC 15 +#define SHT_LOOS 0x60000000 +#define SHT_HIOS 0x6fffffff + #define STT_GNU_IFUNC 10 #define STT_LOOS 10 #define STT_HIOS 12 @@ -115,4 +125,8 @@ typedef struct { /* The kernel uses NT_PRFPREG but glibc also offers NT_FPREGSET */ #define NT_FPREGSET NT_PRFPREG +#define ELF_NOTE_GNU "GNU" + +#define NT_GNU_BUILD_ID 3 + #endif /* _ELF_H */ diff --git a/libc/include/fcntl.h b/libc/include/fcntl.h index 4c4cfbd73..0f016d718 100644 --- a/libc/include/fcntl.h +++ b/libc/include/fcntl.h @@ -59,22 +59,29 @@ __BEGIN_DECLS extern int creat(const char*, mode_t); extern int creat64(const char*, mode_t); -extern int fallocate64(int, int, off64_t, off64_t); -extern int fallocate(int, int, off_t, off_t); extern int fcntl(int, int, ...); extern int openat(int, const char*, int, ...); extern int openat64(int, const char*, int, ...); extern int open(const char*, int, ...); extern int open64(const char*, int, ...); -extern int posix_fadvise64(int, off64_t, off64_t, int); -extern int posix_fadvise(int, off_t, off_t, int); -extern int posix_fallocate64(int, off64_t, off64_t); -extern int posix_fallocate(int, off_t, off_t); extern ssize_t splice(int, off64_t*, int, off64_t*, size_t, unsigned int); extern ssize_t tee(int, int, size_t, unsigned int); extern int unlinkat(int, const char*, int); extern ssize_t vmsplice(int, const struct iovec*, size_t, unsigned int); +#if defined(__USE_FILE_OFFSET64) +extern int fallocate(int, int, off_t, off_t) __RENAME(fallocate64); +extern int posix_fadvise(int, off_t, off_t, int) __RENAME(posix_fadvise64); +extern int posix_fallocate(int, off_t, off_t) __RENAME(posix_fallocate); +#else +extern int fallocate(int, int, off_t, off_t); +extern int posix_fadvise(int, off_t, off_t, int); +extern int posix_fallocate(int, off_t, off_t); +#endif +extern int fallocate64(int, int, off64_t, off64_t); +extern int posix_fadvise64(int, off64_t, off64_t, int); +extern int posix_fallocate64(int, off64_t, off64_t); + extern int __open_2(const char*, int); extern int __open_real(const char*, int, ...) __RENAME(open); extern int __openat_2(int, const char*, int); diff --git a/libc/include/grp.h b/libc/include/grp.h index fc4d52031..df7a6137d 100644 --- a/libc/include/grp.h +++ b/libc/include/grp.h @@ -54,9 +54,9 @@ __BEGIN_DECLS struct group *getgrgid(gid_t); struct group *getgrnam(const char *); #if __POSIX_VISIBLE >= 200112 || __XPG_VISIBLE -struct group *getgrent(void); -void setgrent(void); -void endgrent(void); +struct group *getgrent(void) __attribute__((deprecated("getgrent is meaningless on Android"))); +void setgrent(void) __attribute__((deprecated("setgrent is meaningless on Android"))); +void endgrent(void) __attribute__((deprecated("endgrent is meaningless on Android"))); int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **); int getgrnam_r(const char *, struct group *, char *, diff --git a/libc/include/paths.h b/libc/include/paths.h index 1eba53636..33c2eee1b 100644 --- a/libc/include/paths.h +++ b/libc/include/paths.h @@ -39,7 +39,6 @@ #define _PATH_CONSOLE "/dev/console" #define _PATH_DEVNULL "/dev/null" #define _PATH_KLOG "/proc/kmsg" -#define _PATH_MEM "/dev/mem" #define _PATH_MOUNTED "/proc/mounts" #define _PATH_TTY "/dev/tty" diff --git a/libc/include/pthread.h b/libc/include/pthread.h index 212551b81..38282adb1 100644 --- a/libc/include/pthread.h +++ b/libc/include/pthread.h @@ -73,13 +73,14 @@ enum { }; typedef struct { - unsigned int value; -#ifdef __LP64__ - char __reserved[44]; +#if defined(__LP64__) + char __private[48]; +#else + char __private[4]; #endif -} pthread_cond_t; +} pthread_cond_t __attribute__((aligned(8))); -#define PTHREAD_COND_INITIALIZER {0 __RESERVED_INITIALIZER} +#define PTHREAD_COND_INITIALIZER { { 0 } } typedef long pthread_mutexattr_t; typedef long pthread_condattr_t; @@ -87,28 +88,14 @@ typedef long pthread_condattr_t; typedef long pthread_rwlockattr_t; typedef struct { -#if !defined(__LP64__) - pthread_mutex_t __unused_lock; - pthread_cond_t __unused_cond; -#endif - volatile int32_t state; // 0=unlock, -1=writer lock, +n=reader lock - volatile int32_t writer_thread_id; - volatile int32_t pending_readers; - volatile int32_t pending_writers; - int32_t attr; -#ifdef __LP64__ - char __reserved[36]; +#if defined(__LP64__) + char __private[56]; #else - char __reserved[12]; + char __private[40]; #endif +} pthread_rwlock_t __attribute__((aligned(8))); -} pthread_rwlock_t; - -#ifdef __LP64__ - #define PTHREAD_RWLOCK_INITIALIZER { 0, 0, 0, 0, 0, { 0 } } -#else - #define PTHREAD_RWLOCK_INITIALIZER { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, 0, { 0 } } -#endif +#define PTHREAD_RWLOCK_INITIALIZER { { 0 } } typedef int pthread_key_t; diff --git a/libc/include/pwd.h b/libc/include/pwd.h index 6d483c03f..6012b9658 100644 --- a/libc/include/pwd.h +++ b/libc/include/pwd.h @@ -119,10 +119,6 @@ struct passwd* getpwuid(uid_t); int getpwnam_r(const char*, struct passwd*, char*, size_t, struct passwd**); int getpwuid_r(uid_t, struct passwd*, char*, size_t, struct passwd**); -void endpwent(void); -struct passwd* getpwent(void); -int setpwent(void); - __END_DECLS #endif diff --git a/libc/include/stdio.h b/libc/include/stdio.h index b04aa24c2..f5ed65278 100644 --- a/libc/include/stdio.h +++ b/libc/include/stdio.h @@ -57,8 +57,6 @@ __BEGIN_DECLS -#define _FSTDIO /* Define for new stdio with functions. */ - typedef off_t fpos_t; /* stdio file position type */ /* @@ -266,27 +264,38 @@ int vdprintf(int, const char * __restrict, __va_list) __printflike(2, 0); #ifndef __AUDIT__ #if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L -char* gets(char*) __warnattr("gets is very unsafe; consider using fgets"); +char* gets(char*) __attribute__((deprecated("gets is unsafe, use fgets instead"))); #endif int sprintf(char* __restrict, const char* __restrict, ...) __printflike(2, 3) __warnattr("sprintf is often misused; please use snprintf"); -char* tmpnam(char*) __warnattr("tmpnam possibly used unsafely; consider using mkstemp"); int vsprintf(char* __restrict, const char* __restrict, __va_list) __printflike(2, 0) __warnattr("vsprintf is often misused; please use vsnprintf"); +char* tmpnam(char*) __attribute__((deprecated("tmpnam is unsafe, use mkstemp or tmpfile instead"))); #if __XPG_VISIBLE char* tempnam(const char*, const char*) - __warnattr("tempnam possibly used unsafely; consider using mkstemp"); + __attribute__((deprecated("tempnam is unsafe, use mkstemp or tmpfile instead"))); #endif #endif extern int rename(const char*, const char*); extern int renameat(int, const char*, int, const char*); +#if defined(__USE_FILE_OFFSET64) +/* Not possible. */ +int fgetpos(FILE * __restrict, fpos_t * __restrict) + __attribute__((__error__("not available with _FILE_OFFSET_BITS=64"))); +int fsetpos(FILE *, const fpos_t *) + __attribute__((__error__("not available with _FILE_OFFSET_BITS=64"))); +int fseeko(FILE *, off_t, int) + __attribute__((__error__("not available with _FILE_OFFSET_BITS=64"))); +off_t ftello(FILE *) + __attribute__((__error__("not available with _FILE_OFFSET_BITS=64"))); +#else int fgetpos(FILE * __restrict, fpos_t * __restrict); int fsetpos(FILE *, const fpos_t *); - int fseeko(FILE *, off_t, int); off_t ftello(FILE *); +#endif #if __ISO_C_VISIBLE >= 1999 || __BSD_VISIBLE int snprintf(char * __restrict, size_t, const char * __restrict, ...) diff --git a/libc/include/stdlib.h b/libc/include/stdlib.h index cbd7aeb98..84bf56dee 100644 --- a/libc/include/stdlib.h +++ b/libc/include/stdlib.h @@ -58,7 +58,7 @@ extern int unsetenv(const char*); extern int clearenv(void); extern char* mkdtemp(char*); -extern char* mktemp(char*) __warnattr("mktemp possibly used unsafely; consider using mkstemp"); +extern char* mktemp(char*) __attribute__((deprecated("mktemp is unsafe, use mkstemp or tmpfile instead"))); extern int mkostemp64(char*, int); extern int mkostemp(char*, int); diff --git a/libc/include/string.h b/libc/include/string.h index d67928c0f..fffe1362c 100644 --- a/libc/include/string.h +++ b/libc/include/string.h @@ -44,6 +44,9 @@ extern void* memchr(const void *, int, size_t) __purefunc; extern void* memrchr(const void *, int, size_t) __purefunc; extern int memcmp(const void *, const void *, size_t) __purefunc; extern void* memcpy(void* __restrict, const void* __restrict, size_t); +#if defined(__USE_GNU) +extern void* mempcpy(void* __restrict, const void* __restrict, size_t); +#endif extern void* memmove(void *, const void *, size_t); extern void* memset(void *, int, size_t); extern void* memmem(const void *, size_t, const void *, size_t) __purefunc; diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h index 48763d730..04613f42f 100644 --- a/libc/include/sys/cdefs.h +++ b/libc/include/sys/cdefs.h @@ -335,13 +335,15 @@ #endif #if __GNUC_PREREQ(4, 3) -#define __errordecl(name, msg) extern void name(void) __attribute__((__error__(msg))) +#define __errorattr(msg) __attribute__((__error__(msg))) #define __warnattr(msg) __attribute__((__warning__(msg))) #else -#define __errordecl(name, msg) extern void name(void) +#define __errorattr(msg) #define __warnattr(msg) #endif +#define __errordecl(name, msg) extern void name(void) __errorattr(msg) + /* * Some BSD source needs these macros. * Originally they embedded the rcs versions of each source file @@ -378,6 +380,15 @@ # define __USE_BSD 1 #endif +/* + * _FILE_OFFSET_BITS 64 support. + */ +#if !defined(__LP64__) && defined(_FILE_OFFSET_BITS) +#if _FILE_OFFSET_BITS == 64 +#define __USE_FILE_OFFSET64 1 +#endif +#endif + /*- * POSIX.1 requires that the macros we test be defined before any standard * header file is included. diff --git a/libc/include/sys/file.h b/libc/include/sys/file.h index cf2f4b142..f414d34aa 100644 --- a/libc/include/sys/file.h +++ b/libc/include/sys/file.h @@ -25,14 +25,19 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ + #ifndef _SYS_FILE_H_ #define _SYS_FILE_H_ #include #include -/* ANDROID: needed for flock() */ -#include #include +__BEGIN_DECLS + +int flock(int, int); + +__END_DECLS + #endif /* _SYS_FILE_H_ */ diff --git a/libc/include/sys/mman.h b/libc/include/sys/mman.h index 166322269..6857f60fa 100644 --- a/libc/include/sys/mman.h +++ b/libc/include/sys/mman.h @@ -49,8 +49,13 @@ __BEGIN_DECLS #define POSIX_MADV_WILLNEED MADV_WILLNEED #define POSIX_MADV_DONTNEED MADV_DONTNEED +#if defined(__USE_FILE_OFFSET64) +extern void* mmap(void*, size_t, int, int, int, off_t) __RENAME(mmap64); +#else extern void* mmap(void*, size_t, int, int, int, off_t); +#endif extern void* mmap64(void*, size_t, int, int, int, off64_t); + extern int munmap(void*, size_t); extern int msync(const void*, size_t, int); extern int mprotect(const void*, size_t, int); diff --git a/libc/include/sys/mount.h b/libc/include/sys/mount.h index 3c35d31b9..fd7cf17fb 100644 --- a/libc/include/sys/mount.h +++ b/libc/include/sys/mount.h @@ -25,6 +25,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ + #ifndef _SYS_MOUNT_H #define _SYS_MOUNT_H @@ -35,9 +36,10 @@ __BEGIN_DECLS /* umount2 flags. */ -#define MNT_FORCE 1 /* Forcibly unmount */ -#define MNT_DETACH 2 /* Detach from tree only */ -#define MNT_EXPIRE 4 /* Mark for expiry */ +#define MNT_FORCE 1 +#define MNT_DETACH 2 +#define MNT_EXPIRE 4 +#define UMOUNT_NOFOLLOW 8 extern int mount(const char*, const char*, const char*, unsigned long, const void*); extern int umount(const char*); diff --git a/libc/include/sys/resource.h b/libc/include/sys/resource.h index a91fa5394..3f8dd4571 100644 --- a/libc/include/sys/resource.h +++ b/libc/include/sys/resource.h @@ -36,6 +36,10 @@ __BEGIN_DECLS +/* The kernel header doesn't have these, but POSIX does. */ +#define RLIM_SAVED_CUR RLIM_INFINITY +#define RLIM_SAVED_MAX RLIM_INFINITY + typedef unsigned long rlim_t; extern int getrlimit(int, struct rlimit*); diff --git a/libc/include/sys/sendfile.h b/libc/include/sys/sendfile.h index 81a3c44d5..c588e6839 100644 --- a/libc/include/sys/sendfile.h +++ b/libc/include/sys/sendfile.h @@ -34,7 +34,11 @@ __BEGIN_DECLS +#if defined(__USE_FILE_OFFSET64) +extern ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count) __RENAME(sendfile64); +#else extern ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count); +#endif extern ssize_t sendfile64(int out_fd, int in_fd, off64_t* offset, size_t count); __END_DECLS diff --git a/libc/include/sys/syscall.h b/libc/include/sys/syscall.h index 34a29df3f..21eaf336b 100644 --- a/libc/include/sys/syscall.h +++ b/libc/include/sys/syscall.h @@ -25,20 +25,13 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ + #ifndef _SYS_SYSCALL_H_ #define _SYS_SYSCALL_H_ -#include -#include -#include -#include +#include /* Linux kernel __NR_* names. */ +#include /* glibc-compatible SYS_* aliases. */ -#include /* glibc-compatible SYS_* aliases for our __NR_* names. */ - -__BEGIN_DECLS - -long syscall(long number, ...); - -__END_DECLS +/* The syscall function itself is declared in , not here. */ #endif /* _SYS_SYSCALL_H_ */ diff --git a/libc/include/sys/types.h b/libc/include/sys/types.h index a5fa69290..a6b0fd87f 100644 --- a/libc/include/sys/types.h +++ b/libc/include/sys/types.h @@ -90,16 +90,14 @@ typedef uint64_t dev_t; typedef __kernel_time_t __time_t; typedef __time_t time_t; -/* This historical accident means that we had a 32-bit off_t on 32-bit architectures. */ -#if !defined(__LP64__) -typedef __kernel_off_t off_t; -typedef __kernel_loff_t loff_t; +#if defined(__USE_FILE_OFFSET64) || defined(__LP64__) +typedef int64_t off_t; +typedef off_t loff_t; typedef loff_t off64_t; #else -/* We could re-use the LP32 definitions, but that would mean that although off_t and loff_t/off64_t - * would be the same size, they wouldn't actually be the same type, which can lead to warnings. */ +/* This historical accident means that we had a 32-bit off_t on 32-bit architectures. */ typedef __kernel_off_t off_t; -typedef off_t loff_t; +typedef __kernel_loff_t loff_t; typedef loff_t off64_t; #endif diff --git a/libc/include/syslog.h b/libc/include/syslog.h index cbceab287..8000f03d9 100644 --- a/libc/include/syslog.h +++ b/libc/include/syslog.h @@ -47,6 +47,7 @@ __BEGIN_DECLS #define LOG_PRIMASK 7 #define LOG_PRI(x) ((x) & LOG_PRIMASK) +#define LOG_MAKEPRI(fac, pri) ((fac) | (pri)) /* Facilities are currently ignored on Android. */ #define LOG_KERN 0000 diff --git a/libc/include/unistd.h b/libc/include/unistd.h index 6403d4ae6..92d3abe3c 100644 --- a/libc/include/unistd.h +++ b/libc/include/unistd.h @@ -116,10 +116,6 @@ extern int setresgid(gid_t, gid_t, gid_t); extern int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); extern int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); extern char* getlogin(void); -extern char* getusershell(void); -extern void setusershell(void); -extern void endusershell(void); - extern long fpathconf(int, int); extern long pathconf(const char*, int); @@ -146,32 +142,40 @@ extern int chown(const char *, uid_t, gid_t); extern int fchown(int, uid_t, gid_t); extern int fchownat(int, const char*, uid_t, gid_t, int); extern int lchown(const char *, uid_t, gid_t); -extern int truncate(const char *, off_t); -extern int truncate64(const char *, off64_t); extern char *getcwd(char *, size_t); extern int sync(void); extern int close(int); -extern off_t lseek(int, off_t, int); -extern off64_t lseek64(int, off64_t, int); extern ssize_t read(int, void *, size_t); extern ssize_t write(int, const void *, size_t); -extern ssize_t pread(int, void *, size_t, off_t); -extern ssize_t pread64(int, void *, size_t, off64_t); -extern ssize_t pwrite(int, const void *, size_t, off_t); -extern ssize_t pwrite64(int, const void *, size_t, off64_t); extern int dup(int); extern int dup2(int, int); extern int dup3(int, int, int); extern int fcntl(int, int, ...); extern int ioctl(int, int, ...); -extern int flock(int, int); extern int fsync(int); extern int fdatasync(int); + +#if defined(__USE_FILE_OFFSET64) +extern int truncate(const char *, off_t) __RENAME(truncate64); +extern off_t lseek(int, off_t, int) __RENAME(lseek64); +extern ssize_t pread(int, void *, size_t, off_t) __RENAME(pread64); +extern ssize_t pwrite(int, const void *, size_t, off_t) __RENAME(pwrite64); +extern int ftruncate(int, off_t) __RENAME(ftruncate64); +#else +extern int truncate(const char *, off_t); +extern off_t lseek(int, off_t, int); +extern ssize_t pread(int, void *, size_t, off_t); +extern ssize_t pwrite(int, const void *, size_t, off_t); extern int ftruncate(int, off_t); +#endif +extern int truncate64(const char *, off64_t); +extern off64_t lseek64(int, off64_t, int); +extern ssize_t pread64(int, void *, size_t, off64_t); +extern ssize_t pwrite64(int, const void *, size_t, off64_t); extern int ftruncate64(int, off64_t); extern int pause(void); @@ -200,6 +204,8 @@ int getpagesize(void); long sysconf(int); +long syscall(long number, ...); + extern int daemon(int, int); #if defined(__arm__) || (defined(__mips__) && !defined(__LP64__)) diff --git a/libc/include/wchar.h b/libc/include/wchar.h index cfd22992b..ea6aca03c 100644 --- a/libc/include/wchar.h +++ b/libc/include/wchar.h @@ -151,6 +151,9 @@ extern int wcwidth(wchar_t); extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); extern int wmemcmp(const wchar_t *, const wchar_t *, size_t); extern wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t); +#if defined(__USE_GNU) +extern wchar_t *wmempcpy(wchar_t *, const wchar_t *, size_t); +#endif extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); extern wchar_t *wmemset(wchar_t *, wchar_t, size_t); extern int wprintf(const wchar_t *, ...); diff --git a/libc/private/ThreadLocalBuffer.h b/libc/private/ThreadLocalBuffer.h index e5bd28c37..cc4731703 100644 --- a/libc/private/ThreadLocalBuffer.h +++ b/libc/private/ThreadLocalBuffer.h @@ -38,15 +38,17 @@ // We used to use pthread_once to initialize the keys, but life is more predictable // if we allocate them all up front when the C library starts up, via __constructor__. +#define BIONIC_PTHREAD_KEY_WITH_CONSTRUCTOR(key_name, key_destructor) \ + static pthread_key_t key_name; \ + __attribute__((constructor)) static void __bionic_tls_ ## key_name ## _key_init() { \ + pthread_key_create(&key_name, key_destructor); \ + } #define GLOBAL_INIT_THREAD_LOCAL_BUFFER(name) \ - static pthread_key_t __bionic_tls_ ## name ## _key; \ static void __bionic_tls_ ## name ## _key_destroy(void* buffer) { \ free(buffer); \ } \ - __attribute__((constructor)) static void __bionic_tls_ ## name ## _key_init() { \ - pthread_key_create(&__bionic_tls_ ## name ## _key, __bionic_tls_ ## name ## _key_destroy); \ - } + BIONIC_PTHREAD_KEY_WITH_CONSTRUCTOR(__bionic_tls_ ## name ## _key, __bionic_tls_ ## name ## _key_destroy) // Leaves "name_tls_buffer" and "name_tls_buffer_size" defined and initialized. #define LOCAL_INIT_THREAD_LOCAL_BUFFER(type, name, byte_count) \ diff --git a/libc/private/bionic_asm.h b/libc/private/bionic_asm.h index d53ebbae1..5fca222c4 100644 --- a/libc/private/bionic_asm.h +++ b/libc/private/bionic_asm.h @@ -57,4 +57,8 @@ ENTRY(f); \ .hidden f \ +#define ALIAS_SYMBOL(alias, original) \ + .globl alias; \ + .equ alias, original + #endif /* _PRIVATE_BIONIC_ASM_H_ */ diff --git a/libc/private/bionic_atomic_arm.h b/libc/private/bionic_atomic_arm.h deleted file mode 100644 index 0cb832f97..000000000 --- a/libc/private/bionic_atomic_arm.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef BIONIC_ATOMIC_ARM_H -#define BIONIC_ATOMIC_ARM_H - -__ATOMIC_INLINE__ void __bionic_memory_barrier() { - __asm__ __volatile__ ( "dmb ish" : : : "memory" ); -} - -/* Compare-and-swap, without any explicit barriers. Note that this function - * returns 0 on success, and 1 on failure. The opposite convention is typically - * used on other platforms. - */ -__ATOMIC_INLINE__ int __bionic_cmpxchg(int32_t old_value, int32_t new_value, volatile int32_t* ptr) { - int32_t prev, status; - do { - __asm__ __volatile__ ( - "ldrex %0, [%3]\n" - "mov %1, #0\n" - "teq %0, %4\n" -#ifdef __thumb2__ - "it eq\n" -#endif - "strexeq %1, %5, [%3]" - : "=&r" (prev), "=&r" (status), "+m"(*ptr) - : "r" (ptr), "Ir" (old_value), "r" (new_value) - : "cc"); - } while (__builtin_expect(status != 0, 0)); - return prev != old_value; -} - -/* Swap, without any explicit barriers. */ -__ATOMIC_INLINE__ int32_t __bionic_swap(int32_t new_value, volatile int32_t* ptr) { - int32_t prev, status; - do { - __asm__ __volatile__ ( - "ldrex %0, [%3]\n" - "strex %1, %4, [%3]" - : "=&r" (prev), "=&r" (status), "+m" (*ptr) - : "r" (ptr), "r" (new_value) - : "cc"); - } while (__builtin_expect(status != 0, 0)); - return prev; -} - -/* Atomic decrement, without explicit barriers. */ -__ATOMIC_INLINE__ int32_t __bionic_atomic_dec(volatile int32_t* ptr) { - int32_t prev, tmp, status; - do { - __asm__ __volatile__ ( - "ldrex %0, [%4]\n" - "sub %1, %0, #1\n" - "strex %2, %1, [%4]" - : "=&r" (prev), "=&r" (tmp), "=&r" (status), "+m"(*ptr) - : "r" (ptr) - : "cc"); - } while (__builtin_expect(status != 0, 0)); - return prev; -} - -#endif /* SYS_ATOMICS_ARM_H */ diff --git a/libc/private/bionic_atomic_arm64.h b/libc/private/bionic_atomic_arm64.h deleted file mode 100644 index c3a34e18c..000000000 --- a/libc/private/bionic_atomic_arm64.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef BIONIC_ATOMIC_AARCH64_H -#define BIONIC_ATOMIC_AARCH64_H - -/* For ARMv8, we can use the 'dmb' instruction directly */ -__ATOMIC_INLINE__ void __bionic_memory_barrier() { - __asm__ __volatile__ ( "dmb ish" : : : "memory" ); -} - -/* Compare-and-swap, without any explicit barriers. Note that this function - * returns 0 on success, and 1 on failure. The opposite convention is typically - * used on other platforms. - */ -__ATOMIC_INLINE__ int __bionic_cmpxchg(int32_t old_value, int32_t new_value, volatile int32_t* ptr) { - int32_t tmp, oldval; - __asm__ __volatile__ ( - "// atomic_cmpxchg\n" - "1: ldxr %w1, [%3]\n" - " cmp %w1, %w4\n" - " b.ne 2f\n" - " stxr %w0, %w5, [%3]\n" - " cbnz %w0, 1b\n" - "2:" - : "=&r" (tmp), "=&r" (oldval), "+o"(*ptr) - : "r" (ptr), "Ir" (old_value), "r" (new_value) - : "cc", "memory"); - return oldval != old_value; -} - -/* Swap, without any explicit barriers. */ -__ATOMIC_INLINE__ int32_t __bionic_swap(int32_t new_value, volatile int32_t* ptr) { - int32_t prev, status; - __asm__ __volatile__ ( - "// atomic_swap\n" - "1: ldxr %w0, [%3]\n" - " stxr %w1, %w4, [%3]\n" - " cbnz %w1, 1b\n" - : "=&r" (prev), "=&r" (status), "+o" (*ptr) - : "r" (ptr), "r" (new_value) - : "cc", "memory"); - return prev; -} - -/* Atomic decrement, without explicit barriers. */ -__ATOMIC_INLINE__ int32_t __bionic_atomic_dec(volatile int32_t* ptr) { - int32_t prev, tmp, status; - __asm__ __volatile__ ( - "1: ldxr %w0, [%4]\n" - " sub %w1, %w0, #1\n" - " stxr %w2, %w1, [%4]\n" - " cbnz %w2, 1b" - : "=&r" (prev), "=&r" (tmp), "=&r" (status), "+m"(*ptr) - : "r" (ptr) - : "cc", "memory"); - return prev; -} - -#endif /* BIONIC_ATOMICS_AARCH64_H */ diff --git a/libc/private/bionic_atomic_gcc_builtin.h b/libc/private/bionic_atomic_gcc_builtin.h deleted file mode 100644 index 70eb861fe..000000000 --- a/libc/private/bionic_atomic_gcc_builtin.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef BIONIC_ATOMIC_GCC_BUILTIN_H -#define BIONIC_ATOMIC_GCC_BUILTIN_H - -/* - * This header file is used by default if we don't have optimized atomic - * routines for a given platform. See bionic_atomic_arm.h and - * bionic_atomic_x86.h for examples. - * - * Note that the GCC builtins include barriers that aren't present in - * the architecture-specific assembler versions. - */ - -__ATOMIC_INLINE__ void __bionic_memory_barrier() { - __sync_synchronize(); -} - -__ATOMIC_INLINE__ int __bionic_cmpxchg(int32_t old_value, int32_t new_value, volatile int32_t* ptr) { - /* We must return 0 on success. */ - return __sync_val_compare_and_swap(ptr, old_value, new_value) != old_value; -} - -__ATOMIC_INLINE__ int32_t __bionic_swap(int32_t new_value, volatile int32_t* ptr) { - int32_t old_value; - do { - old_value = *ptr; - } while (__sync_val_compare_and_swap(ptr, old_value, new_value) != old_value); - return old_value; -} - -__ATOMIC_INLINE__ int32_t __bionic_atomic_dec(volatile int32_t* ptr) { - /* We must return the old value. */ - return __sync_fetch_and_add(ptr, -1); -} - -#endif /* BIONIC_ATOMIC_GCC_BUILTIN_H */ diff --git a/libc/private/bionic_atomic_inline.h b/libc/private/bionic_atomic_inline.h deleted file mode 100644 index f8032c34a..000000000 --- a/libc/private/bionic_atomic_inline.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef BIONIC_ATOMIC_INLINE_H -#define BIONIC_ATOMIC_INLINE_H - -/* - * Inline declarations and macros for some special-purpose atomic - * operations. These are intended for rare circumstances where a - * memory barrier needs to be issued inline rather than as a function - * call. - * - * Macros defined in this header: - * - * void ANDROID_MEMBAR_FULL() - * Full memory barrier. Provides a compiler reordering barrier, and - * on SMP systems emits an appropriate instruction. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Define __ATOMIC_INLINE__ to control the inlining of all atomics - * functions declared here. For a slight performance boost, we want - * all of them to be always_inline - */ -#define __ATOMIC_INLINE__ static __inline__ __attribute__((always_inline)) - -#if defined(__arm__) -# include "bionic_atomic_arm.h" -#elif defined(__aarch64__) -# include "bionic_atomic_arm64.h" -#elif defined(__i386__) -# include "bionic_atomic_x86.h" -#elif defined(__mips__) -# include "bionic_atomic_mips.h" -#else -# include "bionic_atomic_gcc_builtin.h" -#endif - -#define ANDROID_MEMBAR_FULL __bionic_memory_barrier - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // BIONIC_ATOMIC_INLINE_H diff --git a/libc/private/bionic_atomic_mips.h b/libc/private/bionic_atomic_mips.h deleted file mode 100644 index 83f75fe86..000000000 --- a/libc/private/bionic_atomic_mips.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef BIONIC_ATOMIC_MIPS_H -#define BIONIC_ATOMIC_MIPS_H - -/* Define a full memory barrier, this is only needed if we build the - * platform for a multi-core device. - */ - -__ATOMIC_INLINE__ void __bionic_memory_barrier() { - __asm__ __volatile__ ( "sync" : : : "memory" ); -} - -/* Compare-and-swap, without any explicit barriers. Note that this function - * returns 0 on success, and 1 on failure. The opposite convention is typically - * used on other platforms. - */ -__ATOMIC_INLINE__ int __bionic_cmpxchg(int32_t old_value, int32_t new_value, volatile int32_t* ptr) { - int32_t prev, status; - __asm__ __volatile__ ("1: move %[status], %[new_value] \n" - " ll %[prev], 0(%[ptr]) \n" - " bne %[old_value], %[prev], 2f \n" - " sc %[status], 0(%[ptr]) \n" - " beqz %[status], 1b \n" - "2: \n" - : [prev]"=&r"(prev), [status]"=&r"(status), "+m"(*ptr) - : [new_value]"r"(new_value), [old_value]"r"(old_value), [ptr]"r"(ptr) - : "memory"); - return prev != old_value; -} - -/* Swap, without any explicit barriers. */ -__ATOMIC_INLINE__ int32_t __bionic_swap(int32_t new_value, volatile int32_t* ptr) { - int32_t prev, status; - __asm__ __volatile__ ("1: move %[status], %[new_value] \n" - " ll %[prev], 0(%[ptr]) \n" - " sc %[status], 0(%[ptr]) \n" - " beqz %[status], 1b \n" - : [prev]"=&r"(prev), [status]"=&r"(status), "+m"(*ptr) - : [ptr]"r"(ptr), [new_value]"r"(new_value) - : "memory"); - return prev; -} - -/* Atomic decrement, without explicit barriers. */ -__ATOMIC_INLINE__ int32_t __bionic_atomic_dec(volatile int32_t* ptr) { - int32_t prev, status; - __asm__ __volatile__ ("1: ll %[prev], 0(%[ptr]) \n" - " addiu %[status], %[prev], -1 \n" - " sc %[status], 0(%[ptr]) \n" - " beqz %[status], 1b \n" - : [prev]"=&r" (prev), [status]"=&r"(status), "+m" (*ptr) - : [ptr]"r"(ptr) - : "memory"); - return prev; -} - -#endif /* BIONIC_ATOMIC_MIPS_H */ diff --git a/libc/private/bionic_atomic_x86.h b/libc/private/bionic_atomic_x86.h deleted file mode 100644 index e63df9384..000000000 --- a/libc/private/bionic_atomic_x86.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef BIONIC_ATOMIC_X86_H -#define BIONIC_ATOMIC_X86_H - -/* Define a full memory barrier, this is only needed if we build the - * platform for a multi-core device. - */ -__ATOMIC_INLINE__ void __bionic_memory_barrier() { - __asm__ __volatile__ ( "mfence" : : : "memory" ); -} - -/* Compare-and-swap, without any explicit barriers. Note that this function - * returns 0 on success, and 1 on failure. The opposite convention is typically - * used on other platforms. - */ -__ATOMIC_INLINE__ int __bionic_cmpxchg(int32_t old_value, int32_t new_value, volatile int32_t* ptr) { - int32_t prev; - __asm__ __volatile__ ("lock; cmpxchgl %1, %2" - : "=a" (prev) - : "q" (new_value), "m" (*ptr), "0" (old_value) - : "memory"); - return prev != old_value; -} - -/* Swap, without any explicit barriers. */ -__ATOMIC_INLINE__ int32_t __bionic_swap(int32_t new_value, volatile int32_t *ptr) { - __asm__ __volatile__ ("xchgl %1, %0" - : "=r" (new_value) - : "m" (*ptr), "0" (new_value) - : "memory"); - return new_value; -} - -/* Atomic decrement, without explicit barriers. */ -__ATOMIC_INLINE__ int32_t __bionic_atomic_dec(volatile int32_t* ptr) { - int increment = -1; - __asm__ __volatile__ ("lock; xaddl %0, %1" - : "+r" (increment), "+m" (*ptr) - : : "memory"); - /* increment now holds the old value of *ptr */ - return increment; -} - -#endif /* BIONIC_ATOMIC_X86_H */ diff --git a/libc/private/bionic_futex.h b/libc/private/bionic_futex.h index bd2bd369c..401577ab8 100644 --- a/libc/private/bionic_futex.h +++ b/libc/private/bionic_futex.h @@ -34,6 +34,7 @@ #include #include #include +#include __BEGIN_DECLS diff --git a/libc/private/bionic_tls.h b/libc/private/bionic_tls.h index 944f95790..1ab8d4a26 100644 --- a/libc/private/bionic_tls.h +++ b/libc/private/bionic_tls.h @@ -67,18 +67,18 @@ enum { TLS_SLOT_STACK_GUARD = 5, // GCC requires this specific slot for x86. TLS_SLOT_DLERROR, - TLS_SLOT_FIRST_USER_SLOT // Must come last! + BIONIC_TLS_SLOTS // Must come last! }; /* - * There are two kinds of slot used internally by bionic --- there are the well-known slots - * enumerated above, and then there are those that are allocated during startup by calls to - * pthread_key_create; grep for GLOBAL_INIT_THREAD_LOCAL_BUFFER to find those. We need to manually - * maintain that second number, but pthread_test will fail if we forget. - * Following are current pthread keys used internally: + * Bionic uses some pthread keys internally. All pthread keys used internally + * should be created in constructors, except for keys that may be used in or before constructors. + * We need to manually maintain the count of pthread keys used internally, but + * pthread_test should fail if we forget. + * Following are current pthread keys used internally by libc: * basename libc (GLOBAL_INIT_THREAD_LOCAL_BUFFER) * dirname libc (GLOBAL_INIT_THREAD_LOCAL_BUFFER) - * uselocale libc + * uselocale libc (can be used in constructors) * getmntent_mntent libc (GLOBAL_INIT_THREAD_LOCAL_BUFFER) * getmntent_strings libc (GLOBAL_INIT_THREAD_LOCAL_BUFFER) * ptsname libc (GLOBAL_INIT_THREAD_LOCAL_BUFFER) @@ -87,29 +87,30 @@ enum { * strsignal libc (GLOBAL_INIT_THREAD_LOCAL_BUFFER) * passwd libc (GLOBAL_INIT_THREAD_LOCAL_BUFFER) * group libc (GLOBAL_INIT_THREAD_LOCAL_BUFFER) - * _res_key libc + * _res_key libc (BIONIC_PTHREAD_KEY_WITH_CONSTRUCTOR) + */ + +#define LIBC_PTHREAD_KEY_RESERVED_COUNT 12 + +#if defined(USE_JEMALLOC) +/* Following are current pthread keys used internally by jemalloc: * je_thread_allocated_tsd jemalloc * je_arenas_tsd jemalloc * je_tcache_tsd jemalloc * je_tcache_enabled_tsd jemalloc * je_quarantine_tsd jemalloc - * */ - -#define LIBC_TLS_RESERVED_SLOTS 12 - -#if defined(USE_JEMALLOC) -/* jemalloc uses 5 keys for itself. */ -#define BIONIC_TLS_RESERVED_SLOTS (LIBC_TLS_RESERVED_SLOTS + 5) +#define JEMALLOC_PTHREAD_KEY_RESERVED_COUNT 5 +#define BIONIC_PTHREAD_KEY_RESERVED_COUNT (LIBC_PTHREAD_KEY_RESERVED_COUNT + JEMALLOC_PTHREAD_KEY_RESERVED_COUNT) #else -#define BIONIC_TLS_RESERVED_SLOTS LIBC_TLS_RESERVED_SLOTS +#define BIONIC_PTHREAD_KEY_RESERVED_COUNT LIBC_PTHREAD_KEY_RESERVED_COUNT #endif /* - * Maximum number of elements in the TLS array. - * This includes space for pthread keys and our own internal slots. + * Maximum number of pthread keys allocated. + * This includes pthread keys used internally and externally. */ -#define BIONIC_TLS_SLOTS (PTHREAD_KEYS_MAX + TLS_SLOT_FIRST_USER_SLOT + BIONIC_TLS_RESERVED_SLOTS) +#define BIONIC_PTHREAD_KEY_COUNT (BIONIC_PTHREAD_KEY_RESERVED_COUNT + PTHREAD_KEYS_MAX) __END_DECLS diff --git a/libc/stdio/fread.c b/libc/stdio/fread.c index bac8dad66..f3f012737 100644 --- a/libc/stdio/fread.c +++ b/libc/stdio/fread.c @@ -102,6 +102,12 @@ fread(void *buf, size_t size, size_t count, FILE *fp) * avoid copying it through the buffer? */ if (total > (size_t) fp->_bf._size) { + /* + * Make sure that fseek doesn't think it can + * reuse the buffer since we are going to read + * directly from the file descriptor. + */ + fp->_flags |= __SMOD; break; } diff --git a/libc/upstream-openbsd/lib/libc/string/memchr.c b/libc/upstream-openbsd/lib/libc/string/memchr.c new file mode 100644 index 000000000..4573e3ceb --- /dev/null +++ b/libc/upstream-openbsd/lib/libc/string/memchr.c @@ -0,0 +1,48 @@ +/* $OpenBSD: memchr.c,v 1.7 2005/08/08 08:05:37 espie Exp $ */ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Chris Torek. + * + * 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. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS 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. + */ + +#include + +void * +memchr(const void *s, int c, size_t n) +{ + if (n != 0) { + const unsigned char *p = s; + + do { + if (*p++ == (unsigned char)c) + return ((void *)(p - 1)); + } while (--n != 0); + } + return (NULL); +} diff --git a/libc/upstream-openbsd/lib/libc/string/memrchr.c b/libc/upstream-openbsd/lib/libc/string/memrchr.c new file mode 100644 index 000000000..bd27ebc62 --- /dev/null +++ b/libc/upstream-openbsd/lib/libc/string/memrchr.c @@ -0,0 +1,38 @@ +/* $OpenBSD: memrchr.c,v 1.2 2007/11/27 16:22:12 martynas Exp $ */ + +/* + * Copyright (c) 2007 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +/* + * Reverse memchr() + * Find the last occurrence of 'c' in the buffer 's' of size 'n'. + */ +void * +memrchr(const void *s, int c, size_t n) +{ + const unsigned char *cp; + + if (n != 0) { + cp = (unsigned char *)s + n; + do { + if (*(--cp) == (unsigned char)c) + return((void *)cp); + } while (--n != 0); + } + return(NULL); +} diff --git a/libc/zoneinfo/tzdata b/libc/zoneinfo/tzdata index fc6c5babb..b9a66210e 100644 Binary files a/libc/zoneinfo/tzdata and b/libc/zoneinfo/tzdata differ diff --git a/libm/Android.mk b/libm/Android.mk index dc6c70499..6472a1542 100644 --- a/libm/Android.mk +++ b/libm/Android.mk @@ -21,19 +21,14 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/bsdsrc/b_tgamma.c \ upstream-freebsd/lib/msun/src/catrig.c \ upstream-freebsd/lib/msun/src/catrigf.c \ - upstream-freebsd/lib/msun/src/e_acos.c \ upstream-freebsd/lib/msun/src/e_acosf.c \ upstream-freebsd/lib/msun/src/e_acosh.c \ upstream-freebsd/lib/msun/src/e_acoshf.c \ - upstream-freebsd/lib/msun/src/e_asin.c \ upstream-freebsd/lib/msun/src/e_asinf.c \ - upstream-freebsd/lib/msun/src/e_atan2.c \ upstream-freebsd/lib/msun/src/e_atan2f.c \ upstream-freebsd/lib/msun/src/e_atanh.c \ upstream-freebsd/lib/msun/src/e_atanhf.c \ - upstream-freebsd/lib/msun/src/e_cosh.c \ upstream-freebsd/lib/msun/src/e_coshf.c \ - upstream-freebsd/lib/msun/src/e_exp.c \ upstream-freebsd/lib/msun/src/e_expf.c \ upstream-freebsd/lib/msun/src/e_fmod.c \ upstream-freebsd/lib/msun/src/e_fmodf.c \ @@ -41,7 +36,6 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/src/e_gammaf.c \ upstream-freebsd/lib/msun/src/e_gammaf_r.c \ upstream-freebsd/lib/msun/src/e_gamma_r.c \ - upstream-freebsd/lib/msun/src/e_hypot.c \ upstream-freebsd/lib/msun/src/e_hypotf.c \ upstream-freebsd/lib/msun/src/e_j0.c \ upstream-freebsd/lib/msun/src/e_j0f.c \ @@ -53,13 +47,10 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/src/e_lgammaf.c \ upstream-freebsd/lib/msun/src/e_lgammaf_r.c \ upstream-freebsd/lib/msun/src/e_lgamma_r.c \ - upstream-freebsd/lib/msun/src/e_log10.c \ upstream-freebsd/lib/msun/src/e_log10f.c \ upstream-freebsd/lib/msun/src/e_log2.c \ upstream-freebsd/lib/msun/src/e_log2f.c \ - upstream-freebsd/lib/msun/src/e_log.c \ upstream-freebsd/lib/msun/src/e_logf.c \ - upstream-freebsd/lib/msun/src/e_pow.c \ upstream-freebsd/lib/msun/src/e_powf.c \ upstream-freebsd/lib/msun/src/e_remainder.c \ upstream-freebsd/lib/msun/src/e_remainderf.c \ @@ -67,10 +58,7 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/src/e_rem_pio2f.c \ upstream-freebsd/lib/msun/src/e_scalb.c \ upstream-freebsd/lib/msun/src/e_scalbf.c \ - upstream-freebsd/lib/msun/src/e_sinh.c \ upstream-freebsd/lib/msun/src/e_sinhf.c \ - upstream-freebsd/lib/msun/src/e_sqrt.c \ - upstream-freebsd/lib/msun/src/e_sqrtf.c \ upstream-freebsd/lib/msun/src/imprecise.c \ upstream-freebsd/lib/msun/src/k_cos.c \ upstream-freebsd/lib/msun/src/k_cosf.c \ @@ -83,17 +71,13 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/src/k_tanf.c \ upstream-freebsd/lib/msun/src/s_asinh.c \ upstream-freebsd/lib/msun/src/s_asinhf.c \ - upstream-freebsd/lib/msun/src/s_atan.c \ upstream-freebsd/lib/msun/src/s_atanf.c \ upstream-freebsd/lib/msun/src/s_carg.c \ upstream-freebsd/lib/msun/src/s_cargf.c \ upstream-freebsd/lib/msun/src/s_cargl.c \ - upstream-freebsd/lib/msun/src/s_cbrt.c \ upstream-freebsd/lib/msun/src/s_cbrtf.c \ upstream-freebsd/lib/msun/src/s_ccosh.c \ upstream-freebsd/lib/msun/src/s_ccoshf.c \ - upstream-freebsd/lib/msun/src/s_ceil.c \ - upstream-freebsd/lib/msun/src/s_ceilf.c \ upstream-freebsd/lib/msun/src/s_cexp.c \ upstream-freebsd/lib/msun/src/s_cexpf.c \ upstream-freebsd/lib/msun/src/s_cimag.c \ @@ -104,7 +88,6 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/src/s_conjl.c \ upstream-freebsd/lib/msun/src/s_copysign.c \ upstream-freebsd/lib/msun/src/s_copysignf.c \ - upstream-freebsd/lib/msun/src/s_cos.c \ upstream-freebsd/lib/msun/src/s_cosf.c \ upstream-freebsd/lib/msun/src/s_cproj.c \ upstream-freebsd/lib/msun/src/s_cprojf.c \ @@ -123,17 +106,12 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/src/s_erff.c \ upstream-freebsd/lib/msun/src/s_exp2.c \ upstream-freebsd/lib/msun/src/s_exp2f.c \ - upstream-freebsd/lib/msun/src/s_expm1.c \ upstream-freebsd/lib/msun/src/s_expm1f.c \ upstream-freebsd/lib/msun/src/s_fabs.c \ upstream-freebsd/lib/msun/src/s_fabsf.c \ upstream-freebsd/lib/msun/src/s_fdim.c \ upstream-freebsd/lib/msun/src/s_finite.c \ upstream-freebsd/lib/msun/src/s_finitef.c \ - upstream-freebsd/lib/msun/src/s_floor.c \ - upstream-freebsd/lib/msun/src/s_floorf.c \ - upstream-freebsd/lib/msun/src/s_fma.c \ - upstream-freebsd/lib/msun/src/s_fmaf.c \ upstream-freebsd/lib/msun/src/s_fmax.c \ upstream-freebsd/lib/msun/src/s_fmaxf.c \ upstream-freebsd/lib/msun/src/s_fmin.c \ @@ -142,16 +120,11 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/src/s_frexpf.c \ upstream-freebsd/lib/msun/src/s_ilogb.c \ upstream-freebsd/lib/msun/src/s_ilogbf.c \ - upstream-freebsd/lib/msun/src/s_llrint.c \ - upstream-freebsd/lib/msun/src/s_llrintf.c \ upstream-freebsd/lib/msun/src/s_llround.c \ upstream-freebsd/lib/msun/src/s_llroundf.c \ - upstream-freebsd/lib/msun/src/s_log1p.c \ upstream-freebsd/lib/msun/src/s_log1pf.c \ upstream-freebsd/lib/msun/src/s_logb.c \ upstream-freebsd/lib/msun/src/s_logbf.c \ - upstream-freebsd/lib/msun/src/s_lrint.c \ - upstream-freebsd/lib/msun/src/s_lrintf.c \ upstream-freebsd/lib/msun/src/s_lround.c \ upstream-freebsd/lib/msun/src/s_lroundf.c \ upstream-freebsd/lib/msun/src/s_modf.c \ @@ -162,8 +135,6 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/src/s_nextafterf.c \ upstream-freebsd/lib/msun/src/s_remquo.c \ upstream-freebsd/lib/msun/src/s_remquof.c \ - upstream-freebsd/lib/msun/src/s_rint.c \ - upstream-freebsd/lib/msun/src/s_rintf.c \ upstream-freebsd/lib/msun/src/s_round.c \ upstream-freebsd/lib/msun/src/s_roundf.c \ upstream-freebsd/lib/msun/src/s_scalbln.c \ @@ -172,15 +143,10 @@ LOCAL_SRC_FILES := \ upstream-freebsd/lib/msun/src/s_signgam.c \ upstream-freebsd/lib/msun/src/s_significand.c \ upstream-freebsd/lib/msun/src/s_significandf.c \ - upstream-freebsd/lib/msun/src/s_sin.c \ upstream-freebsd/lib/msun/src/s_sinf.c \ - upstream-freebsd/lib/msun/src/s_tan.c \ upstream-freebsd/lib/msun/src/s_tanf.c \ - upstream-freebsd/lib/msun/src/s_tanh.c \ upstream-freebsd/lib/msun/src/s_tanhf.c \ upstream-freebsd/lib/msun/src/s_tgammaf.c \ - upstream-freebsd/lib/msun/src/s_trunc.c \ - upstream-freebsd/lib/msun/src/s_truncf.c \ upstream-freebsd/lib/msun/src/w_cabs.c \ upstream-freebsd/lib/msun/src/w_cabsf.c \ upstream-freebsd/lib/msun/src/w_cabsl.c \ @@ -261,23 +227,251 @@ LOCAL_SRC_FILES += \ LOCAL_SRC_FILES += \ signbit.c \ +# Arch specific optimizations. + +# ----------------------------------------------------------------------------- +# arm +# ----------------------------------------------------------------------------- LOCAL_SRC_FILES_arm += \ arm/fenv.c \ + upstream-freebsd/lib/msun/src/e_acos.c \ + upstream-freebsd/lib/msun/src/e_asin.c \ + upstream-freebsd/lib/msun/src/e_atan2.c \ + upstream-freebsd/lib/msun/src/e_cosh.c \ + upstream-freebsd/lib/msun/src/e_exp.c \ + upstream-freebsd/lib/msun/src/e_hypot.c \ + upstream-freebsd/lib/msun/src/e_log.c \ + upstream-freebsd/lib/msun/src/e_log10.c \ + upstream-freebsd/lib/msun/src/e_pow.c \ + upstream-freebsd/lib/msun/src/e_sinh.c \ + upstream-freebsd/lib/msun/src/s_atan.c \ + upstream-freebsd/lib/msun/src/s_cbrt.c \ + upstream-freebsd/lib/msun/src/s_ceil.c \ + upstream-freebsd/lib/msun/src/s_ceilf.c \ + upstream-freebsd/lib/msun/src/s_cos.c \ + upstream-freebsd/lib/msun/src/s_fma.c \ + upstream-freebsd/lib/msun/src/s_fmaf.c \ + upstream-freebsd/lib/msun/src/s_floorf.c \ + upstream-freebsd/lib/msun/src/s_expm1.c \ + upstream-freebsd/lib/msun/src/s_llrint.c \ + upstream-freebsd/lib/msun/src/s_llrintf.c \ + upstream-freebsd/lib/msun/src/s_log1p.c \ + upstream-freebsd/lib/msun/src/s_lrint.c \ + upstream-freebsd/lib/msun/src/s_lrintf.c \ + upstream-freebsd/lib/msun/src/s_rint.c \ + upstream-freebsd/lib/msun/src/s_rintf.c \ + upstream-freebsd/lib/msun/src/s_sin.c \ + upstream-freebsd/lib/msun/src/s_tan.c \ + upstream-freebsd/lib/msun/src/s_tanh.c \ + upstream-freebsd/lib/msun/src/s_trunc.c \ + upstream-freebsd/lib/msun/src/s_truncf.c \ +# s_floor.S requires neon instructions. +ifdef TARGET_2ND_ARCH +arch_variant := $(TARGET_2ND_ARCH_VARIANT) +else +arch_variant := $(TARGET_ARCH_VARIANT) +endif + +# Use the C version on armv7-a since it doesn't support neon instructions. +ifeq ($(arch_variant),armv7-a) +LOCAL_SRC_FILES_arm += \ + upstream-freebsd/lib/msun/src/e_sqrt.c \ + upstream-freebsd/lib/msun/src/e_sqrtf.c \ + upstream-freebsd/lib/msun/src/s_floor.c \ + +else +LOCAL_SRC_FILES_arm += \ + arm/e_sqrt.S \ + arm/e_sqrtf.S \ + arm/s_floor.S \ + +endif + +# ----------------------------------------------------------------------------- +# arm64 +# ----------------------------------------------------------------------------- LOCAL_SRC_FILES_arm64 += \ + arm64/ceil.S \ arm64/fenv.c \ + arm64/fma.S \ + arm64/floor.S \ + arm64/lrint.S \ + arm64/rint.S \ + arm64/sqrt.S \ + arm64/trunc.S \ + upstream-freebsd/lib/msun/src/e_acos.c \ + upstream-freebsd/lib/msun/src/e_asin.c \ + upstream-freebsd/lib/msun/src/e_atan2.c \ + upstream-freebsd/lib/msun/src/e_cosh.c \ + upstream-freebsd/lib/msun/src/e_exp.c \ + upstream-freebsd/lib/msun/src/e_hypot.c \ + upstream-freebsd/lib/msun/src/e_log.c \ + upstream-freebsd/lib/msun/src/e_log10.c \ + upstream-freebsd/lib/msun/src/e_pow.c \ + upstream-freebsd/lib/msun/src/e_sinh.c \ + upstream-freebsd/lib/msun/src/s_atan.c \ + upstream-freebsd/lib/msun/src/s_cbrt.c \ + upstream-freebsd/lib/msun/src/s_cos.c \ + upstream-freebsd/lib/msun/src/s_expm1.c \ + upstream-freebsd/lib/msun/src/s_log1p.c \ + upstream-freebsd/lib/msun/src/s_sin.c \ + upstream-freebsd/lib/msun/src/s_tan.c \ + upstream-freebsd/lib/msun/src/s_tanh.c \ -LOCAL_SRC_FILES_mips += \ +# ----------------------------------------------------------------------------- +# mips +# ----------------------------------------------------------------------------- +libm_mips_arch_files := \ mips/fenv.c \ + upstream-freebsd/lib/msun/src/e_acos.c \ + upstream-freebsd/lib/msun/src/e_asin.c \ + upstream-freebsd/lib/msun/src/e_atan2.c \ + upstream-freebsd/lib/msun/src/e_cosh.c \ + upstream-freebsd/lib/msun/src/e_exp.c \ + upstream-freebsd/lib/msun/src/e_hypot.c \ + upstream-freebsd/lib/msun/src/e_log.c \ + upstream-freebsd/lib/msun/src/e_log10.c \ + upstream-freebsd/lib/msun/src/e_pow.c \ + upstream-freebsd/lib/msun/src/e_sinh.c \ + upstream-freebsd/lib/msun/src/e_sqrt.c \ + upstream-freebsd/lib/msun/src/e_sqrtf.c \ + upstream-freebsd/lib/msun/src/s_atan.c \ + upstream-freebsd/lib/msun/src/s_cbrt.c \ + upstream-freebsd/lib/msun/src/s_ceil.c \ + upstream-freebsd/lib/msun/src/s_ceilf.c \ + upstream-freebsd/lib/msun/src/s_cos.c \ + upstream-freebsd/lib/msun/src/s_fma.c \ + upstream-freebsd/lib/msun/src/s_fmaf.c \ + upstream-freebsd/lib/msun/src/s_floor.c \ + upstream-freebsd/lib/msun/src/s_floorf.c \ + upstream-freebsd/lib/msun/src/s_expm1.c \ + upstream-freebsd/lib/msun/src/s_llrint.c \ + upstream-freebsd/lib/msun/src/s_llrintf.c \ + upstream-freebsd/lib/msun/src/s_log1p.c \ + upstream-freebsd/lib/msun/src/s_lrint.c \ + upstream-freebsd/lib/msun/src/s_lrintf.c \ + upstream-freebsd/lib/msun/src/s_rint.c \ + upstream-freebsd/lib/msun/src/s_rintf.c \ + upstream-freebsd/lib/msun/src/s_sin.c \ + upstream-freebsd/lib/msun/src/s_tan.c \ + upstream-freebsd/lib/msun/src/s_tanh.c \ + upstream-freebsd/lib/msun/src/s_trunc.c \ + upstream-freebsd/lib/msun/src/s_truncf.c \ -LOCAL_SRC_FILES_mips64 += \ - mips/fenv.c \ +LOCAL_SRC_FILES_mips += $(libm_mips_arch_files) +LOCAL_SRC_FILES_mips64 += $(libm_mips_arch_files) +# ----------------------------------------------------------------------------- +# x86 +# ----------------------------------------------------------------------------- LOCAL_SRC_FILES_x86 += \ i387/fenv.c \ + upstream-freebsd/lib/msun/src/s_fma.c \ + upstream-freebsd/lib/msun/src/s_fmaf.c \ + upstream-freebsd/lib/msun/src/s_llrint.c \ + upstream-freebsd/lib/msun/src/s_llrintf.c \ + upstream-freebsd/lib/msun/src/s_lrint.c \ + upstream-freebsd/lib/msun/src/s_lrintf.c \ + upstream-freebsd/lib/msun/src/s_rint.c \ + upstream-freebsd/lib/msun/src/s_rintf.c \ + x86/sqrt.S \ + x86/sqrtf.S \ + x86/e_acos.S \ + x86/e_asin.S \ + x86/e_atan2.S \ + x86/e_cosh.S \ + x86/e_exp.S \ + x86/e_hypot.S \ + x86/e_log10.S \ + x86/e_log.S \ + x86/e_pow.S \ + x86/e_sinh.S \ + x86/libm_reduce_pi04l.S \ + x86/libm_sincos_huge.S \ + x86/libm_tancot_huge.S \ + x86/s_atan.S \ + x86/s_cbrt.S \ + x86/s_cos.S \ + x86/s_expm1.S \ + x86/s_log1p.S \ + x86/s_sin.S \ + x86/s_tanh.S \ + x86/s_tan.S \ +ifeq ($(ARCH_X86_HAVE_SSE4_1),true) +LOCAL_SRC_FILES_x86 += \ + x86/ceil.S \ + x86/ceilf.S \ + x86/floor.S \ + x86/floorf.S \ + x86/trunc.S \ + x86/truncf.S \ + +else +LOCAL_SRC_FILES_x86 += \ + upstream-freebsd/lib/msun/src/s_ceil.c \ + upstream-freebsd/lib/msun/src/s_ceilf.c \ + upstream-freebsd/lib/msun/src/s_floor.c \ + upstream-freebsd/lib/msun/src/s_floorf.c \ + upstream-freebsd/lib/msun/src/s_trunc.c \ + upstream-freebsd/lib/msun/src/s_truncf.c \ + +endif + +# ----------------------------------------------------------------------------- +# x86_64 +# ----------------------------------------------------------------------------- LOCAL_SRC_FILES_x86_64 += \ amd64/fenv.c \ + upstream-freebsd/lib/msun/src/s_fma.c \ + upstream-freebsd/lib/msun/src/s_fmaf.c \ + upstream-freebsd/lib/msun/src/s_llrint.c \ + upstream-freebsd/lib/msun/src/s_llrintf.c \ + upstream-freebsd/lib/msun/src/s_lrint.c \ + upstream-freebsd/lib/msun/src/s_lrintf.c \ + upstream-freebsd/lib/msun/src/s_rint.c \ + upstream-freebsd/lib/msun/src/s_rintf.c \ + x86_64/sqrt.S \ + x86_64/sqrtf.S \ + x86_64/e_acos.S \ + x86_64/e_asin.S \ + x86_64/e_atan2.S \ + x86_64/e_cosh.S \ + x86_64/e_exp.S \ + x86_64/e_hypot.S \ + x86_64/e_log10.S \ + x86_64/e_log.S \ + x86_64/e_pow.S \ + x86_64/e_sinh.S \ + x86_64/s_atan.S \ + x86_64/s_cbrt.S \ + x86_64/s_cos.S \ + x86_64/s_expm1.S \ + x86_64/s_log1p.S \ + x86_64/s_sin.S \ + x86_64/s_tanh.S \ + x86_64/s_tan.S \ + +ifeq ($(ARCH_X86_HAVE_SSE4_1),true) +LOCAL_SRC_FILES_x86_64 += \ + x86_64/ceil.S \ + x86_64/ceilf.S \ + x86_64/floor.S \ + x86_64/floorf.S \ + x86_64/trunc.S \ + x86_64/truncf.S \ + +else +LOCAL_SRC_FILES_x86_64 += \ + upstream-freebsd/lib/msun/src/s_ceil.c \ + upstream-freebsd/lib/msun/src/s_ceilf.c \ + upstream-freebsd/lib/msun/src/s_floor.c \ + upstream-freebsd/lib/msun/src/s_floorf.c \ + upstream-freebsd/lib/msun/src/s_trunc.c \ + upstream-freebsd/lib/msun/src/s_truncf.c \ + +endif LOCAL_C_INCLUDES_x86 += $(LOCAL_PATH)/i387 @@ -285,7 +479,6 @@ LOCAL_C_INCLUDES += $(LOCAL_PATH)/upstream-freebsd/lib/msun/src/ LOCAL_C_INCLUDES_64 += $(LOCAL_PATH)/upstream-freebsd/lib/msun/ld128/ LOCAL_CLANG := $(libm_clang) -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_ARM_MODE := arm LOCAL_CFLAGS := \ -DFLT_EVAL_METHOD=0 \ @@ -297,6 +490,9 @@ LOCAL_CFLAGS := \ -Wno-unknown-pragmas \ -fvisibility=hidden \ +LOCAL_ASFLAGS := \ + -Ibionic/libc \ + # Workaround the GCC "(long)fn -> lfn" optimization bug which will result in # self recursions for lrint, lrintf, and lrintl. # BUG: 14225968 @@ -317,9 +513,11 @@ include $(BUILD_STATIC_LIBRARY) # ----------------------------------------------------------------------------- include $(CLEAR_VARS) +# TODO: This is to work around b/19059885. Remove after root cause is fixed +LOCAL_LDFLAGS_arm := -Wl,--hash-style=sysv + LOCAL_MODULE := libm LOCAL_CLANG := $(libm_clang) -LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_SYSTEM_SHARED_LIBRARIES := libc LOCAL_WHOLE_STATIC_LIBRARIES := libm diff --git a/libm/arm/e_sqrt.S b/libm/arm/e_sqrt.S new file mode 100644 index 000000000..17312f50f --- /dev/null +++ b/libm/arm/e_sqrt.S @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2013-2014, NVIDIA Corporation. All rights reserved. + * Johnny Qiu + * Shu Zhang + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * 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. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 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. + */ + +#include +#include + +ENTRY(sqrt) + vmov.f64 d0, r0, r1 + vsqrt.f64 d0, d0 + vmov.f64 r0, r1, d0 + bx lr +END(sqrt) + +ALIAS_SYMBOL(sqrtl, sqrt); diff --git a/libm/arm/e_sqrtf.S b/libm/arm/e_sqrtf.S new file mode 100644 index 000000000..ddefb226a --- /dev/null +++ b/libm/arm/e_sqrtf.S @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2013-2014, NVIDIA Corporation. All rights reserved. + * Johhnny Qiu + * Shu Zhang + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * 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. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 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. + */ + +#include + +ENTRY(sqrtf) + vmov.f32 s0, r0 + vsqrt.f32 s0, s0 + vmov.f32 r0, s0 + bx lr +END(sqrtf) diff --git a/libm/arm/s_floor.S b/libm/arm/s_floor.S new file mode 100644 index 000000000..3af8f7624 --- /dev/null +++ b/libm/arm/s_floor.S @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2013-2014, NVIDIA Corporation. All rights reserved. + * Johnny Qiu + * Shu Zhang + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * 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. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 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. + */ + +#include +#include + +ENTRY(floor) /* x in r0, r1 */ + + and r3, r1, #0x80000000 /* sign(x) */ + bic r1, r1, #0x80000000 /* x = abs(x) */ + + /* extract exp of x */ + lsr r2, r1, #20 + sub r2, r2, #0x3fc + subs r2, r2, #0x3 /* r2 <- exp */ + + /* |x| < 1.0? */ + blt .Lx_lt_one + + /* x < 0? */ + cmp r3, #0 + bne .Lclr_frac_neg + + /* |x| <= 2^20? */ + cmp r2, #20 + ble .Lclr_frac_r1 + + /* |x| < 2^52? */ + cmp r2, #52 + blt .Lclr_frac_r0 + + /* return x */ + bx lr + +.Lclr_frac_r1: + rsb r2, r2, #20 + lsr r1, r1, r2 + lsl r1, r1, r2 + mov r0, #0 + bx lr + +.Lclr_frac_r0: + rsb r2, r2, #52 + lsr r0, r0, r2 + lsl r0, r0, r2 + bx lr + +.Lclr_frac_neg: + /* |x| <= 2^20? */ + cmp r2, #20 + ble .Lclr_frac_r1_neg + + /* |x| < 2^52? */ + cmp r2, #52 + blt .Lclr_frac_r0_neg + + /* return x */ + orr r1, r1, #0x80000000 + bx lr + +.Lclr_frac_r1_neg: + rsb r2, r2, #20 + mov r3, #1 + lsl r3, r3, r2 + sub r3, r3, #1 + and r3, r1, r3 + orr r3, r3, r0 + lsr r1, r1, r2 + lsl r1, r1, r2 + mov r0, #0 + b .Lreturn_x_neg + +.Lclr_frac_r0_neg: + rsb r2, r2, #52 + mov r3, #1 + lsl r3, r3, r2 + sub r3, r3, #1 + and r3, r0, r3 + lsr r0, r0, r2 + lsl r0, r0, r2 + b .Lreturn_x_neg + +.Lx_lt_one: + /* x == +-0? */ + cmp r0, #0 + cmpeq r1, #0 + orreq r1, r1, r3 + bxeq lr + + /* (x > 0) ? 0 : -1 */ + mov r1, #0x00100000 + mov r0, #0 + cmp r3, #0 + movne r1, #0xc0000000 + sub r1, r1, #0x00100000 + bx lr + +.Lreturn_x_neg: + cmp r3, #0 + orr r1, r1, #0x80000000 + bxeq lr + + vmov d16, r0, r1 + vmov.f64 d18, #1.0 + vsub.f64 d16, d16, d18 + vmov r0, r1, d16 + bx lr + +END(floor) + +ALIAS_SYMBOL(floorl, floor); diff --git a/libm/arm64/ceil.S b/libm/arm64/ceil.S new file mode 100644 index 000000000..006c9887a --- /dev/null +++ b/libm/arm64/ceil.S @@ -0,0 +1,27 @@ +/* + * Copyright 2015, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +ENTRY(ceil) + frintP d0, d0 + ret +END(ceil) + +ENTRY(ceilf) + frintP s0, s0 + ret +END(ceilf) diff --git a/libm/arm64/floor.S b/libm/arm64/floor.S new file mode 100644 index 000000000..2d792e555 --- /dev/null +++ b/libm/arm64/floor.S @@ -0,0 +1,27 @@ +/* + * Copyright 2015, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +ENTRY(floor) + frintM d0, d0 + ret +END(floor) + +ENTRY(floorf) + frintM s0, s0 + ret +END(floorf) diff --git a/libm/arm64/fma.S b/libm/arm64/fma.S new file mode 100644 index 000000000..e64e8077e --- /dev/null +++ b/libm/arm64/fma.S @@ -0,0 +1,27 @@ +/* + * Copyright 2015, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +ENTRY(fma) + fmadd d0, d0, d1, d2 + ret +END(fma) + +ENTRY(fmaf) + fmadd s0, s0, s1, s2 + ret +END(fmaf) diff --git a/libm/arm64/lrint.S b/libm/arm64/lrint.S new file mode 100644 index 000000000..d6427598c --- /dev/null +++ b/libm/arm64/lrint.S @@ -0,0 +1,34 @@ +/* + * Copyright 2015, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +ENTRY(lrint) + frintX d0, d0 + fcvtzs x0, d0 + ret +END(lrint) + +ENTRY(lrintf) + frintX s0, s0 + fcvtzs x0, s0 + ret +END(lrintf) + +// sizeof(long) and sizeof(long long) are the same for aarch64 +ALIAS_SYMBOL(llrint, lrint); + +ALIAS_SYMBOL(llrintf, lrintf); diff --git a/libm/arm64/rint.S b/libm/arm64/rint.S new file mode 100644 index 000000000..0820c2211 --- /dev/null +++ b/libm/arm64/rint.S @@ -0,0 +1,27 @@ +/* + * Copyright 2015, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +ENTRY(rint) + frintX d0, d0 + ret +END(rint) + +ENTRY(rintf) + frintX s0, s0 + ret +END(rintf) diff --git a/libm/arm64/sqrt.S b/libm/arm64/sqrt.S new file mode 100644 index 000000000..fe0020bd6 --- /dev/null +++ b/libm/arm64/sqrt.S @@ -0,0 +1,27 @@ +/* + * Copyright 2015, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +ENTRY(sqrt) + fsqrt d0, d0 + ret +END(sqrt) + +ENTRY(sqrtf) + fsqrt s0, s0 + ret +END(sqrtf) diff --git a/libm/arm64/trunc.S b/libm/arm64/trunc.S new file mode 100644 index 000000000..329c08d12 --- /dev/null +++ b/libm/arm64/trunc.S @@ -0,0 +1,27 @@ +/* + * Copyright 2015, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +ENTRY(trunc) + frintZ d0, d0 + ret +END(trunc) + +ENTRY(truncf) + frintZ s0, s0 + ret +END(truncf) diff --git a/libm/x86/ceil.S b/libm/x86/ceil.S new file mode 100644 index 000000000..63020378d --- /dev/null +++ b/libm/x86/ceil.S @@ -0,0 +1,43 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(ceil) + mov %esp,%eax + and $0xfffffff8,%eax + movsd 0x4(%esp),%xmm0 + roundsd $0x2,%xmm0,%xmm0 + movlpd %xmm0,-0x8(%eax) + fldl -0x8(%eax) + ret +END(ceil) + +ALIAS_SYMBOL(ceill, ceil); diff --git a/libm/x86/ceilf.S b/libm/x86/ceilf.S new file mode 100644 index 000000000..51eb44056 --- /dev/null +++ b/libm/x86/ceilf.S @@ -0,0 +1,39 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(ceilf) + movss 0x4(%esp),%xmm0 + roundss $0x2,%xmm0,%xmm0 + movss %xmm0,-0x4(%esp) + flds -0x4(%esp) + ret +END(ceilf) diff --git a/libm/x86/e_acos.S b/libm/x86/e_acos.S new file mode 100644 index 000000000..fa6185314 --- /dev/null +++ b/libm/x86/e_acos.S @@ -0,0 +1,1929 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// To compute acos(s), separate schemes are used when s is in different +// intervals. +// +// |s| in [2^{-4}, sqrt(3)/2): +// Let t=2^k*1.b1 b2..b6 1, where s=2^k*1.b1 b2 .. b52 +// acos(s)=pi/2-asin(t)-asin(r), where r=s*sqrt(1-t^2)-t*sqrt(1-s^2) +// asin(r)-r evaluated as 7-degree polynomial (c3*r^3+c5*r^5+c7*r^7) +// For the first degree term, r is evaluated as +// R=(s^2-t^2)/(sqrt(1-t^2)*s+sqrt(1-s^2)*t) +// (sqrt(1-t^2) read from table) +// The main source of error is still R (may still be affected by up to 3 ulps +// of rounding error). The table size must be sufficiently large, to minimize +// this effect. +// +// |s| in [sqrt(3)/2, 255/256): +// Let t=2^k*1.b1 b2..b6 1, where sqrt(1-s^2)=2^k*1.b1 b2 .. b52 (rounded) +// acos(|s|)=asin(t)-asin(r), r=s*t-sqrt(1-s^2)*sqrt(1-t^2) +// acos(-|s|)=pi-acos(|s|) +// (The -PI constant, or 0, is added to the result. The sign is set at +// the end) +// asin(r) evaluated as a polynomial (same as above) +// The first degree term is evaluated as +// r=(s^2+t^2-1)/(s*t+sqrt(1-s^2)*sqrt(1-t^2)) +// +// |s|<2^{-4}: acos(s)=pi/2-asin(s) +// evaluate asin(s) as 13-degree polynomial +// +// |s| in [255/256,1): acos(|s|)=2*asin(q), where q=sqrt((1-|s|)/2) +// asin(q) is evaluated as 13-degree polynomial +// q^2=(1-|s|)/2 is obtained in advance +// 2*q*eps ~ ((1-|s|)/2-q^2)/q used for first term +// acos(-|s|)=pi-acos(|s|) +// (The -PI constant, or 0, is added to the result. The sign is set at +// the end) +// +// Special cases: +// acos(NaN) = quiet NaN, and raise invalid exception +// acos(INF) = QNaN and raise invalid exception +// acos(x) = QNaN and raise invalid exception, for |x|>1.0 +// acos(1) = +0 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin acos +ENTRY(acos) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $104, %esp + movl %ebx, 48(%esp) + call static_func + movl %eax, %ebx + movsd 112(%esp), %xmm0 + movsd 6048(%ebx), %xmm4 + movsd 6080(%ebx), %xmm3 + xorpd %xmm5, %xmm5 + movsd 6064(%ebx), %xmm2 + movapd %xmm0, %xmm1 + movsd %xmm0, 8(%esp) + psrlq $44, %xmm0 + movd %xmm0, %edx + movapd %xmm1, %xmm7 + movl $8192, %ecx + pinsrw $2, %ecx, %xmm5 + movapd %xmm1, %xmm0 + movl $524287, %eax + andl %edx, %eax + subl $260864, %eax + cmpl $955, %eax + jae .L_2TAG_PACKET_0.0.2 + mulsd %xmm1, %xmm1 + andl $65535, %edx + subsd %xmm1, %xmm3 + sqrtsd %xmm3, %xmm3 + andpd %xmm7, %xmm2 + andl $-4, %edx + subl $64256, %edx + movsd 3840(%ebx,%edx,2), %xmm1 + orpd %xmm5, %xmm2 + movapd (%ebx,%edx,4), %xmm4 + movapd %xmm7, %xmm6 + addsd %xmm2, %xmm7 + subsd %xmm2, %xmm0 + mulsd %xmm0, %xmm7 + mulsd %xmm1, %xmm6 + mulsd %xmm2, %xmm3 + movapd %xmm6, %xmm1 + addsd %xmm3, %xmm6 + divsd %xmm6, %xmm7 + movsd 5976(%ebx), %xmm0 + movsd 5960(%ebx), %xmm5 + subsd %xmm3, %xmm1 + psrlq $63, %xmm2 + movapd %xmm1, %xmm3 + psllq $63, %xmm2 + mulsd %xmm1, %xmm1 + pshufd $68, %xmm2, %xmm2 + movsd 5968(%ebx), %xmm6 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm0 + xorpd %xmm2, %xmm4 + mulsd %xmm3, %xmm5 + subpd 5888(%ebx), %xmm4 + mulsd %xmm1, %xmm3 + addsd %xmm6, %xmm0 + mulsd %xmm3, %xmm0 + subsd %xmm4, %xmm5 + pshufd $238, %xmm4, %xmm4 + addsd %xmm5, %xmm0 + subsd %xmm7, %xmm0 + subsd %xmm4, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_0.0.2: + subl $955, %eax + cmpl $65, %eax + jae .L_2TAG_PACKET_2.0.2 + psrlq $38, %xmm7 + psllq $38, %xmm7 + pmovmskb %xmm0, %eax + andnpd %xmm0, %xmm4 + subsd %xmm7, %xmm1 + movapd %xmm7, %xmm6 + mulsd %xmm7, %xmm7 + addsd %xmm6, %xmm0 + orpd %xmm4, %xmm5 + subsd %xmm7, %xmm3 + mulsd %xmm1, %xmm0 + movapd %xmm3, %xmm4 + subsd %xmm0, %xmm3 + sqrtsd %xmm3, %xmm3 + andl $128, %eax + shrl $7, %eax + negl %eax + movapd %xmm3, %xmm7 + andpd %xmm3, %xmm2 + psllq $2, %xmm3 + pextrw $3, %xmm3, %edx + orpd %xmm5, %xmm2 + movd %eax, %xmm3 + pshufd $0, %xmm3, %xmm3 + subl $65216, %edx + addl %edx, %edx + mulsd 3840(%ebx,%edx,4), %xmm7 + mulsd %xmm2, %xmm6 + mulsd %xmm2, %xmm1 + mulsd %xmm2, %xmm2 + subsd %xmm7, %xmm6 + andpd 5904(%ebx), %xmm3 + addsd %xmm1, %xmm6 + subsd %xmm2, %xmm4 + addsd %xmm7, %xmm7 + movsd 5960(%ebx), %xmm5 + subsd %xmm0, %xmm4 + addsd %xmm6, %xmm7 + movsd 5976(%ebx), %xmm0 + divsd %xmm7, %xmm4 + movsd 5968(%ebx), %xmm2 + addpd (%ebx,%edx,8), %xmm3 + movapd %xmm6, %xmm1 + mulsd %xmm6, %xmm6 + mulsd %xmm6, %xmm0 + mulsd %xmm6, %xmm1 + mulsd %xmm1, %xmm5 + mulsd %xmm6, %xmm1 + addsd %xmm2, %xmm0 + pxor %xmm6, %xmm6 + mulsd %xmm1, %xmm0 + addsd %xmm3, %xmm5 + addsd %xmm5, %xmm0 + andl $32768, %eax + pinsrw $3, %eax, %xmm6 + movapd %xmm4, %xmm5 + pshufd $238, %xmm3, %xmm3 + addsd %xmm3, %xmm4 + subsd %xmm4, %xmm3 + addsd %xmm3, %xmm5 + addsd %xmm5, %xmm0 + addsd %xmm4, %xmm0 + xorpd %xmm6, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + addl $15291, %eax + cmpl $14336, %eax + jae .L_2TAG_PACKET_3.0.2 + unpcklpd %xmm0, %xmm0 + movapd 5984(%ebx), %xmm6 + unpcklpd %xmm0, %xmm1 + movapd 6000(%ebx), %xmm2 + movapd 6016(%ebx), %xmm4 + mulpd %xmm0, %xmm0 + movapd 5888(%ebx), %xmm5 + mulpd %xmm0, %xmm1 + mulpd %xmm0, %xmm6 + mulpd %xmm0, %xmm0 + movapd %xmm1, %xmm3 + mulsd %xmm1, %xmm1 + addpd %xmm2, %xmm6 + mulpd %xmm0, %xmm4 + mulsd %xmm3, %xmm1 + addpd %xmm4, %xmm6 + pshufd $238, %xmm5, %xmm0 + mulpd %xmm6, %xmm1 + pshufd $238, %xmm5, %xmm6 + subsd %xmm7, %xmm0 + pshufd $238, %xmm1, %xmm2 + subsd %xmm1, %xmm5 + subsd %xmm0, %xmm6 + subsd %xmm2, %xmm5 + subsd %xmm6, %xmm7 + subsd %xmm7, %xmm5 + addsd %xmm5, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_3.0.2: + subl $15356, %eax + cmpl $4, %eax + jae .L_2TAG_PACKET_4.0.2 + xorpd %xmm6, %xmm6 + andpd 6048(%ebx), %xmm7 + movsd 6096(%ebx), %xmm4 + movapd 5984(%ebx), %xmm1 + mulsd %xmm4, %xmm7 + movapd 6000(%ebx), %xmm2 + subsd %xmm7, %xmm4 + movapd 6016(%ebx), %xmm3 + pshufd $68, %xmm4, %xmm7 + sqrtsd %xmm4, %xmm4 + mulpd %xmm7, %xmm1 + pshufd $68, %xmm7, %xmm5 + pextrw $3, %xmm0, %eax + mulpd %xmm7, %xmm7 + addpd %xmm1, %xmm2 + movsd 5936(%ebx), %xmm1 + mulpd %xmm7, %xmm3 + cmpsd $1, %xmm6, %xmm0 + mulsd %xmm5, %xmm7 + addpd %xmm3, %xmm2 + pshufd $68, %xmm0, %xmm0 + mulsd %xmm7, %xmm2 + andpd 5904(%ebx), %xmm0 + mulpd %xmm5, %xmm2 + andpd %xmm4, %xmm1 + pshufd $68, %xmm4, %xmm3 + subsd %xmm1, %xmm4 + addsd %xmm3, %xmm3 + mulsd %xmm1, %xmm1 + subsd %xmm4, %xmm3 + subsd %xmm1, %xmm5 + mulsd %xmm3, %xmm4 + pshufd $238, %xmm3, %xmm3 + subsd %xmm4, %xmm5 + divsd %xmm3, %xmm5 + addpd %xmm3, %xmm3 + mulpd %xmm3, %xmm2 + pshufd $238, %xmm2, %xmm4 + addsd %xmm0, %xmm2 + andl $32768, %eax + pinsrw $3, %eax, %xmm6 + pshufd $238, %xmm0, %xmm0 + addsd %xmm4, %xmm2 + addsd %xmm5, %xmm2 + addsd %xmm3, %xmm2 + addsd %xmm2, %xmm0 + xorpd %xmm6, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_4.0.2: + addl $261884, %eax + cmpl $261888, %eax + jb .L_2TAG_PACKET_5.0.2 + movd %xmm7, %ecx + psrlq $32, %xmm7 + movd %xmm7, %edx + andl $2147483647, %edx + movl $1072693248, %eax + subl %edx, %eax + orl %ecx, %eax + cmpl $0, %eax + je .L_2TAG_PACKET_6.0.2 + movq 8(%esp), %xmm2 + movd %xmm2, %edx + psrlq $32, %xmm2 + movd %xmm2, %ecx + andl $2147483647, %ecx + subl $1, %edx + sbbl $2146435072, %ecx + cmpl $0, %ecx + jge .L_2TAG_PACKET_7.0.2 + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %edx + pinsrw $3, %edx, %xmm1 + mulsd %xmm1, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_6.0.2: + pextrw $1, %xmm7, %edx + shrl $15, %edx + negl %edx + movd %edx, %xmm7 + pshufd $0, %xmm7, %xmm7 + movsd 5920(%ebx), %xmm2 + movsd 5928(%ebx), %xmm0 + andpd %xmm7, %xmm2 + andpd %xmm7, %xmm0 + addsd %xmm2, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_5.0.2: + movsd 5888(%ebx), %xmm2 + movsd 5896(%ebx), %xmm0 + addsd %xmm2, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_7.0.2: + xorpd %xmm6, %xmm6 + addsd %xmm6, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) +.L_2TAG_PACKET_1.0.2: + movl 48(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(acos) +# -- End acos + +# Start file scope ASM +ALIAS_SYMBOL(acosl, acos); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 3822952792 + .long 1021639372 + .long 182792448 + .long 1068507836 + .long 2264213271 + .long 1019558908 + .long 649052928 + .long 1068524253 + .long 1797139609 + .long 1022295143 + .long 1243095296 + .long 1068540671 + .long 1415938756 + .long 1021439537 + .long 2033294592 + .long 1068557090 + .long 2356809978 + .long 1021777916 + .long 3088063744 + .long 1068573510 + .long 2669055318 + .long 1022124482 + .long 180888576 + .long 1068589932 + .long 3566445325 + .long 1021358712 + .long 1970196992 + .long 1068606354 + .long 896980323 + .long 1021319659 + .long 4229555456 + .long 1068622777 + .long 436049712 + .long 1021319758 + .long 2732572160 + .long 1068639202 + .long 583123209 + .long 1020797960 + .long 1842831872 + .long 1068655628 + .long 1370449804 + .long 1021429270 + .long 1628994560 + .long 1068672055 + .long 2411391464 + .long 1021057980 + .long 2159763712 + .long 1068688483 + .long 1208692749 + .long 1021943903 + .long 3503886336 + .long 1068704912 + .long 538793309 + .long 1019744063 + .long 1435187200 + .long 1068721343 + .long 4085087612 + .long 1020608419 + .long 317469952 + .long 1068737775 + .long 144386942 + .long 1021440732 + .long 219617280 + .long 1068754208 + .long 2940088361 + .long 1019981122 + .long 1210558208 + .long 1068770642 + .long 2176850347 + .long 1018373705 + .long 3359268352 + .long 1068787077 + .long 2395611454 + .long 1021889042 + .long 2439803648 + .long 1068803514 + .long 1650705253 + .long 1020227966 + .long 2816203520 + .long 1068819952 + .long 3702166386 + .long 1019379914 + .long 262620672 + .long 1068836392 + .long 1855649370 + .long 1020453124 + .long 3438159616 + .long 1068852832 + .long 923063860 + .long 1019273834 + .long 3822105856 + .long 1068869274 + .long 4289947947 + .long 1019434249 + .long 1483729920 + .long 1068885718 + .long 787455814 + .long 1020738379 + .long 787321088 + .long 1068902163 + .long 3321653337 + .long 1021842569 + .long 1802253312 + .long 1068918609 + .long 2653633526 + .long 1021821525 + .long 302985984 + .long 1068935057 + .long 161272028 + .long 1021655149 + .long 653966080 + .long 1068951506 + .long 2566098667 + .long 1020066219 + .long 2924727296 + .long 1068967956 + .long 3646493722 + .long 1014292285 + .long 2889890304 + .long 1068984408 + .long 1081009196 + .long 1022189620 + .long 619098112 + .long 1069000862 + .long 4011643355 + .long 1021773297 + .long 477017600 + .long 1069017317 + .long 4030305534 + .long 1021292252 + .long 2533403904 + .long 1069033773 + .long 2645187591 + .long 1019527099 + .long 2563102208 + .long 1069050231 + .long 3857293792 + .long 1022311697 + .long 635982336 + .long 1069066691 + .long 3625936637 + .long 1017511744 + .long 1116940800 + .long 1069083152 + .long 3653872993 + .long 1022016631 + .long 4075964160 + .long 1069099614 + .long 2468900271 + .long 1021769532 + .long 993165568 + .long 1069116079 + .long 1358104224 + .long 1021199776 + .long 528586752 + .long 1069132545 + .long 2200950332 + .long 1022024872 + .long 2752395776 + .long 1069149012 + .long 3197072454 + .long 1017751319 + .long 3439855616 + .long 1069165481 + .long 1651081806 + .long 1020809338 + .long 2661257728 + .long 1069181952 + .long 539032752 + .long 1021728805 + .long 486957312 + .long 1069198425 + .long 3136045149 + .long 1016888671 + .long 1282340352 + .long 1069214899 + .long 2593963259 + .long 1018956103 + .long 822921728 + .long 1069231375 + .long 2146032737 + .long 1022306465 + .long 3474216192 + .long 1069247852 + .long 3976811625 + .long 1021350207 + .long 716902656 + .long 1069264332 + .long 718267222 + .long 1018624727 + .long 1211594496 + .long 1069280813 + .long 1485641389 + .long 1018447451 + .long 734070272 + .long 1069297296 + .long 354455128 + .long 1021341291 + .long 3650110720 + .long 1069313780 + .long 682185947 + .long 1021651853 + .long 1440663040 + .long 1069330267 + .long 3558574550 + .long 1021615110 + .long 2766612224 + .long 1069346755 + .long 874607978 + .long 1017746872 + .long 3404011008 + .long 1069363245 + .long 4154988502 + .long 1021439906 + .long 3423949056 + .long 1069379737 + .long 2263202309 + .long 1021479615 + .long 2897587712 + .long 1069396231 + .long 2562065031 + .long 1022090363 + .long 1896159232 + .long 1069412727 + .long 3836237663 + .long 1019867288 + .long 490968576 + .long 1069429225 + .long 3322056743 + .long 1006752762 + .long 3048360192 + .long 1069445724 + .long 1152314833 + .long 1013122252 + .long 1049850624 + .long 1069462226 + .long 3601590727 + .long 1022214610 + .long 3156899584 + .long 1069478729 + .long 1855169970 + .long 1019487271 + .long 851173376 + .long 1069495235 + .long 312649594 + .long 1020868604 + .long 2794281728 + .long 1069511742 + .long 1093490181 + .long 1020777577 + .long 468042496 + .long 1069528252 + .long 1152540679 + .long 1021403732 + .long 2534219264 + .long 1069544763 + .long 2292126035 + .long 1021872430 + .long 1376146432 + .long 1069558527 + .long 3293753641 + .long 1020500454 + .long 4175442432 + .long 1069575044 + .long 3626347564 + .long 1021610969 + .long 3523113472 + .long 1069591566 + .long 339956500 + .long 1021119039 + .long 4003350528 + .long 1069608092 + .long 3429333082 + .long 1022813542 + .long 1611067392 + .long 1069624623 + .long 2298017544 + .long 1021977587 + .long 931782144 + .long 1069641158 + .long 2164684743 + .long 1021250988 + .long 2256725504 + .long 1069657697 + .long 1138762335 + .long 1021443776 + .long 1582853120 + .long 1069674241 + .long 1084010382 + .long 1022994693 + .long 3497758720 + .long 1069690789 + .long 406366244 + .long 1022713586 + .long 3999816960 + .long 1069707342 + .long 1488723042 + .long 1023381290 + .long 3383096064 + .long 1069723900 + .long 2541558953 + .long 1019137887 + .long 1942403584 + .long 1069740463 + .long 1879620343 + .long 1022653642 + .long 4268263680 + .long 1069757030 + .long 3039077047 + .long 1022252545 + .long 2067062272 + .long 1069773603 + .long 4190670677 + .long 1020725863 + .long 4225828096 + .long 1069790180 + .long 1998567321 + .long 1022014385 + .long 2452507136 + .long 1069806763 + .long 1511628873 + .long 1021900300 + .long 1340746240 + .long 1069823351 + .long 788367341 + .long 1022726208 + .long 1190035456 + .long 1069839944 + .long 3856337230 + .long 1021834118 + .long 2300688384 + .long 1069856542 + .long 3211396579 + .long 1022621365 + .long 678886400 + .long 1069873146 + .long 4001011887 + .long 1022042646 + .long 921594112 + .long 1069889755 + .long 557811968 + .long 1023065533 + .long 3331668992 + .long 1069906369 + .long 1877060679 + .long 1022419742 + .long 3917875200 + .long 1069922989 + .long 1181055171 + .long 1022752712 + .long 2984829696 + .long 1069939615 + .long 4294526932 + .long 1021499988 + .long 838049024 + .long 1069956247 + .long 3658081878 + .long 1022957952 + .long 2078928384 + .long 1069972884 + .long 820353701 + .long 1019391107 + .long 2719854336 + .long 1069989527 + .long 1644022489 + .long 1023378240 + .long 3069117696 + .long 1070006176 + .long 2771393702 + .long 1019319954 + .long 3435962368 + .long 1070022831 + .long 3876394145 + .long 1023024433 + .long 4130595328 + .long 1070039492 + .long 1630447748 + .long 1021465882 + .long 1169236224 + .long 1070056160 + .long 2828355997 + .long 1020458120 + .long 3453997312 + .long 1070072833 + .long 164091641 + .long 1020388279 + .long 2708127744 + .long 1070089513 + .long 3036550223 + .long 1023328684 + .long 3540797696 + .long 1070106199 + .long 3710949463 + .long 1022568805 + .long 1972276736 + .long 1070122892 + .long 3885277950 + .long 1019761674 + .long 2613815552 + .long 1070139591 + .long 2764165077 + .long 1022921023 + .long 1487791616 + .long 1070156297 + .long 1330644769 + .long 1023162679 + .long 3207593472 + .long 1070173009 + .long 3911007221 + .long 1022993496 + .long 3797764608 + .long 1070189728 + .long 979712598 + .long 1022554580 + .long 3578920448 + .long 1070206454 + .long 2825738223 + .long 1020223708 + .long 2872795648 + .long 1070223187 + .long 392451124 + .long 1022666279 + .long 2002258432 + .long 1070239927 + .long 3730407632 + .long 1023148291 + .long 1291326464 + .long 1070256674 + .long 3723802980 + .long 1022514089 + .long 1065180928 + .long 1070273428 + .long 2635617463 + .long 1022654470 + .long 1650181632 + .long 1070290189 + .long 2061982883 + .long 1022853411 + .long 3373882880 + .long 1070306957 + .long 319732785 + .long 1022017175 + .long 2270081280 + .long 1070323733 + .long 2237757411 + .long 1023064087 + .long 2963732736 + .long 1070340516 + .long 468839165 + .long 1023293774 + .long 1491099904 + .long 1070357307 + .long 1502657946 + .long 1021533479 + .long 2479636480 + .long 1070374105 + .long 482913562 + .long 1021986286 + .long 1968133632 + .long 1070390911 + .long 3281474337 + .long 1022646400 + .long 291639040 + .long 1070407725 + .long 2453320259 + .long 1022812423 + .long 2081472512 + .long 1070424546 + .long 2939989570 + .long 1023091888 + .long 3380340480 + .long 1070441375 + .long 2850707499 + .long 1021921109 + .long 232287488 + .long 1070458213 + .long 3674625342 + .long 1020725130 + .long 1567614208 + .long 1070475058 + .long 9347334 + .long 1022024009 + .long 3433091072 + .long 1070491911 + .long 282524999 + .long 1021433523 + .long 1876877312 + .long 1070508773 + .long 3470449440 + .long 1019309721 + .long 1538472192 + .long 1070525643 + .long 2089486825 + .long 1019698916 + .long 2763830784 + .long 1070542521 + .long 443498115 + .long 1020505194 + .long 1605381632 + .long 1070559408 + .long 3018871601 + .long 1022869913 + .long 2706946048 + .long 1070576303 + .long 3936260892 + .long 1023175875 + .long 2123887360 + .long 1070593207 + .long 2994220655 + .long 1022825948 + .long 104015104 + .long 1070603108 + .long 335054493 + .long 1023441853 + .long 2904568832 + .long 1070615800 + .long 1451215633 + .long 1023853857 + .long 3456197120 + .long 1070632739 + .long 436334733 + .long 1024026432 + .long 252452352 + .long 1070649697 + .long 34596167 + .long 1024031396 + .long 3328018432 + .long 1070666672 + .long 2644547073 + .long 1024296758 + .long 1255829248 + .long 1070683667 + .long 552832586 + .long 1023763122 + .long 4097058560 + .long 1070700680 + .long 1955640623 + .long 1021394654 + .long 451770112 + .long 1070717714 + .long 3428903777 + .long 1022941142 + .long 408920832 + .long 1070734767 + .long 165503263 + .long 1023894958 + .long 1186960640 + .long 1070751840 + .long 435826450 + .long 1024026134 + .long 19078656 + .long 1070768934 + .long 1834169749 + .long 1022899284 + .long 2743490304 + .long 1070786048 + .long 494581074 + .long 1018818479 + .long 2328961024 + .long 1070803184 + .long 2987908834 + .long 1022581110 + .long 350011392 + .long 1070820342 + .long 240771184 + .long 1024143083 + .long 2692326912 + .long 1070837521 + .long 666056837 + .long 1022394776 + .long 2373274368 + .long 1070854723 + .long 2484337770 + .long 1024228156 + .long 1017131520 + .long 1070871948 + .long 3285648279 + .long 1024025789 + .long 265558272 + .long 1070889196 + .long 392241896 + .long 1024252809 + .long 1778008064 + .long 1070906467 + .long 1536107943 + .long 1023949300 + .long 2937184768 + .long 1070923762 + .long 3541062251 + .long 1019448646 + .long 1144442880 + .long 1070941082 + .long 3691683781 + .long 1022123948 + .long 2410165504 + .long 1070958426 + .long 1804181960 + .long 1023945221 + .long 4174350848 + .long 1070975795 + .long 2016094861 + .long 1021716585 + .long 3897012480 + .long 1070993190 + .long 175294410 + .long 1023703404 + .long 3353623040 + .long 1071010611 + .long 167973242 + .long 1023240839 + .long 45671168 + .long 1071028059 + .long 2166856113 + .long 1021565413 + .long 86063872 + .long 1071045533 + .long 2676254727 + .long 1023985299 + .long 1019772672 + .long 1071063034 + .long 989043593 + .long 1021549587 + .long 414297344 + .long 1071080563 + .long 3960972046 + .long 1024307251 + .long 155173120 + .long 1071098120 + .long 1830919291 + .long 1021592251 + .long 2151562240 + .long 1071115705 + .long 405408666 + .long 1023423128 + .long 4041854720 + .long 1071133319 + .long 2043497827 + .long 1024411503 + .long 3489224192 + .long 1071150963 + .long 3072215864 + .long 1022698635 + .long 2477196288 + .long 1071168637 + .long 1812195139 + .long 1022689192 + .long 3015298816 + .long 1071186341 + .long 764841969 + .long 1021027331 + .long 2844731136 + .long 1071204076 + .long 2878117321 + .long 1019116513 + .long 4028950528 + .long 1071221842 + .long 698911452 + .long 1023265602 + .long 69441536 + .long 1071239641 + .long 3253467847 + .long 1020795075 + .long 1676209920 + .long 1071257471 + .long 4272431167 + .long 1022873982 + .long 2408752384 + .long 1071275334 + .long 648519100 + .long 1024385717 + .long 151623680 + .long 1071293231 + .long 345257017 + .long 1019561408 + .long 1410154240 + .long 1071311161 + .long 197863993 + .long 1023224207 + .long 4131351552 + .long 1071329125 + .long 2620801789 + .long 1024411169 + .long 1999664384 + .long 1071347125 + .long 3952692616 + .long 1024168086 + .long 1617668864 + .long 1071365160 + .long 3019889809 + .long 1021907692 + .long 1032074240 + .long 1071383231 + .long 59469899 + .long 1023656194 + .long 2619492096 + .long 1071401338 + .long 1417526820 + .long 1021457783 + .long 202429440 + .long 1071419483 + .long 2927667935 + .long 1019175447 + .long 525044224 + .long 1071437665 + .long 38166811 + .long 1023981879 + .long 1779258880 + .long 1071455885 + .long 481252500 + .long 1023310234 + .long 2195673600 + .long 1071474144 + .long 3962395981 + .long 1021339088 + .long 44573696 + .long 1071492443 + .long 3936281395 + .long 1023014829 + .long 2226905344 + .long 1071510781 + .long 1515320476 + .long 1024320623 + .long 2800512512 + .long 1071529160 + .long 1225403697 + .long 1021081846 + .long 161113600 + .long 1071547581 + .long 3064809733 + .long 1024173917 + .long 1338410240 + .long 1071566043 + .long 2027604973 + .long 1024362526 + .long 522433280 + .long 1071584548 + .long 2055171723 + .long 1023858825 + .long 539595776 + .long 1071603096 + .long 3868820135 + .long 1022936424 + .long 4264017664 + .long 1071621687 + .long 3228065145 + .long 1023479578 + .long 1733924096 + .long 1071640324 + .long 3511934475 + .long 1022496355 + .long 108880384 + .long 1071651839 + .long 615880967 + .long 1023519706 + .long 3517856512 + .long 1071661202 + .long 3113108559 + .long 1025190289 + .long 4043153152 + .long 1071670589 + .long 1571836218 + .long 1023106116 + .long 3251299072 + .long 1071680000 + .long 3444076102 + .long 1022187841 + .long 2736921600 + .long 1071689435 + .long 272771483 + .long 1025095280 + .long 3897698560 + .long 1071703633 + .long 2075390188 + .long 1022489022 + .long 3209485056 + .long 1071722652 + .long 1438094065 + .long 1021844944 + .long 3781432064 + .long 1071741774 + .long 1675017145 + .long 1024143828 + .long 2684184064 + .long 1071761003 + .long 2259963753 + .long 1024731393 + .long 1840489728 + .long 1071780342 + .long 3372883597 + .long 1023431408 + .long 3764087808 + .long 1071799794 + .long 3307523102 + .long 1024485788 + .long 3006232320 + .long 1071819364 + .long 3088971966 + .long 1025213251 + .long 3374881280 + .long 1071839055 + .long 834437749 + .long 1025236452 + .long 797284864 + .long 1071858872 + .long 3122663941 + .long 1025320473 + .long 545765120 + .long 1071878818 + .long 826539625 + .long 1022450955 + .long 107562240 + .long 1071898898 + .long 339584600 + .long 1022481255 + .long 2123649024 + .long 1071919116 + .long 3912959833 + .long 1024321009 + .long 1562385664 + .long 1071939478 + .long 2846067230 + .long 1023343981 + .long 2963085824 + .long 1071959988 + .long 954548627 + .long 1021475211 + .long 3325550592 + .long 1071980652 + .long 3459651155 + .long 1025305573 + .long 775752448 + .long 1072001476 + .long 3582746667 + .long 1023859460 + .long 3238590720 + .long 1072022464 + .long 634636162 + .long 1024472353 + .long 2758801920 + .long 1072043624 + .long 3078216319 + .long 1025304516 + .long 1370319104 + .long 1072064962 + .long 2570569078 + .long 1025099442 + .long 2615805184 + .long 1072086484 + .long 3729933412 + .long 1024605112 + .long 3077336576 + .long 1072108198 + .long 1948916066 + .long 1024781603 + .long 1099528192 + .long 1072130112 + .long 3139143157 + .long 1023729360 + .long 1231903232 + .long 1072152233 + .long 1349513477 + .long 1024737515 + .long 1507504128 + .long 1072174570 + .long 3484516322 + .long 1024000959 + .long 2214659840 + .long 1072197132 + .long 2563820917 + .long 1025225535 + .long 1804739840 + .long 1072219929 + .long 760038746 + .long 1024482855 + .long 1413746688 + .long 1072242971 + .long 3401734714 + .long 1025129838 + .long 821409536 + .long 1072266269 + .long 3729772551 + .long 1025484796 + .long 3031825664 + .long 1072289834 + .long 122256749 + .long 1024752594 + .long 1710784256 + .long 1072313680 + .long 1518205483 + .long 1024724809 + .long 3025265152 + .long 1072337819 + .long 409951989 + .long 1022835555 + .long 287769088 + .long 1072362267 + .long 800355594 + .long 1022484850 + .long 198179840 + .long 1072387038 + .long 3502926213 + .long 1024209373 + .long 1909130496 + .long 1072412149 + .long 3064694319 + .long 1025380823 + .long 1941732096 + .long 1072437619 + .long 4112930390 + .long 1024294679 + .long 3492010496 + .long 1072463467 + .long 2684918107 + .long 1023220233 + .long 81959680 + .long 1072489716 + .long 220021366 + .long 1020635131 + .long 2297837056 + .long 1072516387 + .long 4027683826 + .long 1021041185 + .long 270404096 + .long 1072543508 + .long 2012766065 + .long 1021780753 + .long 3667376896 + .long 1072571105 + .long 2727981522 + .long 1023009874 + .long 330400256 + .long 1072599212 + .long 2940017003 + .long 1025393439 + .long 1119293952 + .long 1072627861 + .long 1608550416 + .long 1022675612 + .long 3536155904 + .long 1072657091 + .long 349665778 + .long 1025156751 + .long 3078046720 + .long 1072686946 + .long 2016159996 + .long 1022193169 + .long 455228416 + .long 1072705361 + .long 1908539328 + .long 1026126332 + .long 1871505664 + .long 1072720988 + .long 2784700894 + .long 1025922277 + .long 1630994432 + .long 1072737010 + .long 361107678 + .long 1022887244 + .long 2084558336 + .long 1072753462 + .long 2642784509 + .long 1072689083 + .long 1514442531 + .long 1072688953 + .long 333108933 + .long 1072688821 + .long 3392112024 + .long 1072688686 + .long 2099852862 + .long 1072688550 + .long 749609004 + .long 1072688412 + .long 3634632596 + .long 1072688271 + .long 2163248461 + .long 1072688129 + .long 628657846 + .long 1072687985 + .long 3324036511 + .long 1072687838 + .long 1657632815 + .long 1072687690 + .long 4217538760 + .long 1072687539 + .long 2411951597 + .long 1072687387 + .long 533944872 + .long 1072687233 + .long 2876566508 + .long 1072687076 + .long 847936891 + .long 1072686918 + .long 3036019913 + .long 1072686757 + .long 848884575 + .long 1072686595 + .long 2874443326 + .long 1072686430 + .long 520713666 + .long 1072686264 + .long 2375556481 + .long 1072686095 + .long 4141904948 + .long 1072685924 + .long 1522666382 + .long 1072685752 + .long 3105624104 + .long 1072685577 + .long 298666327 + .long 1072685401 + .long 1689524500 + .long 1072685222 + .long 2981002200 + .long 1072685041 + .long 4170844284 + .long 1072684858 + .long 961802263 + .long 1072684674 + .long 1941503454 + .long 1072684487 + .long 2812647170 + .long 1072684298 + .long 3572873869 + .long 1072684107 + .long 4219797823 + .long 1072683914 + .long 456039788 + .long 1072683720 + .long 869096151 + .long 1072683523 + .long 1161535119 + .long 1072683324 + .long 1330865866 + .long 1072683123 + .long 1374571204 + .long 1072682920 + .long 1290107538 + .long 1072682715 + .long 1074904836 + .long 1072682508 + .long 726366587 + .long 1072682299 + .long 241869763 + .long 1072682088 + .long 3913732079 + .long 1072681874 + .long 3149342765 + .long 1072681659 + .long 2240966306 + .long 1072681442 + .long 1185873216 + .long 1072681223 + .long 4276274591 + .long 1072681001 + .long 2919452883 + .long 1072680778 + .long 1407565635 + .long 1072680553 + .long 4032743551 + .long 1072680325 + .long 2202188565 + .long 1072680096 + .long 207977577 + .long 1072679865 + .long 2342160518 + .long 1072679631 + .long 11858423 + .long 1072679396 + .long 1804034453 + .long 1072679158 + .long 3420722787 + .long 1072678918 + .long 563930456 + .long 1072678677 + .long 1820539192 + .long 1072678433 + .long 2892501606 + .long 1072678187 + .long 3776710320 + .long 1072677939 + .long 175063337 + .long 1072677690 + .long 674333171 + .long 1072677438 + .long 976363026 + .long 1072677184 + .long 1077935934 + .long 1072676928 + .long 1921075490 + .long 1072676540 + .long 881493302 + .long 1072676016 + .long 3275752439 + .long 1072675483 + .long 486855588 + .long 1072674943 + .long 1077229111 + .long 1072674394 + .long 723950308 + .long 1072673837 + .long 3693582199 + .long 1072673271 + .long 1367335316 + .long 1072672698 + .long 2305837020 + .long 1072672116 + .long 2184358641 + .long 1072671526 + .long 972682840 + .long 1072670928 + .long 2935101762 + .long 1072670321 + .long 3745513263 + .long 1072669706 + .long 3372320886 + .long 1072669083 + .long 1783464620 + .long 1072668452 + .long 3241386215 + .long 1072667812 + .long 3418125284 + .long 1072667164 + .long 2280219148 + .long 1072666508 + .long 4088700758 + .long 1072665843 + .long 219227400 + .long 1072665171 + .long 3521816918 + .long 1072664489 + .long 1076205279 + .long 1072663800 + .long 1436484616 + .long 1072663102 + .long 271362610 + .long 1072662396 + .long 1838996688 + .long 1072661681 + .long 1807122518 + .long 1072660958 + .long 137953542 + .long 1072660227 + .long 1088178584 + .long 1072659487 + .long 324057537 + .long 1072658739 + .long 2101288076 + .long 1072657982 + .long 2085133974 + .long 1072657217 + .long 235324451 + .long 1072656444 + .long 806051592 + .long 1072655662 + .long 3756033140 + .long 1072654871 + .long 453542543 + .long 1072654073 + .long 3741177327 + .long 1072653265 + .long 691216109 + .long 1072652450 + .long 4145223372 + .long 1072651625 + .long 1174439091 + .long 1072650793 + .long 324416139 + .long 1072649952 + .long 1550246310 + .long 1072649102 + .long 511524674 + .long 1072648244 + .long 1457248482 + .long 1072647377 + .long 45944955 + .long 1072646502 + .long 525537397 + .long 1072645618 + .long 2848440188 + .long 1072644725 + .long 2671555633 + .long 1072643824 + .long 4241172637 + .long 1072642914 + .long 3213094278 + .long 1072641996 + .long 3832503688 + .long 1072641069 + .long 1754091534 + .long 1072640134 + .long 1221921804 + .long 1072639190 + .long 2184526489 + .long 1072638237 + .long 294902089 + .long 1072637276 + .long 4090375270 + .long 1072636305 + .long 632860906 + .long 1072635327 + .long 2753498702 + .long 1072634339 + .long 1808009252 + .long 1072633343 + .long 2036428672 + .long 1072632338 + .long 3383235626 + .long 1072631324 + .long 1497347484 + .long 1072630302 + .long 617018317 + .long 1072629271 + .long 684933058 + .long 1072628231 + .long 1643170798 + .long 1072627182 + .long 3011066360 + .long 1072625592 + .long 957158713 + .long 1072623442 + .long 1390907941 + .long 1072621256 + .long 3819155270 + .long 1072619034 + .long 3443571196 + .long 1072616777 + .long 4045412458 + .long 1072614484 + .long 805503923 + .long 1072612156 + .long 1778922015 + .long 1072609791 + .long 2125033665 + .long 1072607390 + .long 1287203863 + .long 1072604953 + .long 2992629568 + .long 1072602479 + .long 2367267127 + .long 1072599969 + .long 3115526047 + .long 1072597422 + .long 340219539 + .long 1072594839 + .long 2017215719 + .long 1072592218 + .long 3225443424 + .long 1072589560 + .long 3326565673 + .long 1072586865 + .long 1669811211 + .long 1072584133 + .long 1886735022 + .long 1072581363 + .long 3301071171 + .long 1072578555 + .long 928514283 + .long 1072575710 + .long 2656364059 + .long 1072572826 + .long 3473490507 + .long 1072569904 + .long 2649965606 + .long 1072566944 + .long 3736819052 + .long 1072563945 + .long 1680885175 + .long 1072560908 + .long 4413771 + .long 1072557832 + .long 2214869753 + .long 1072554716 + .long 3214725184 + .long 1072551561 + .long 2186079903 + .long 1072548367 + .long 2590372131 + .long 1072545133 + .long 3578146079 + .long 1072541859 + .long 4283712755 + .long 1072538545 + .long 3824834510 + .long 1072535191 + .long 1302400298 + .long 1072531797 + .long 95058636 + .long 1072528362 + .long 3563906063 + .long 1072524885 + .long 2167230730 + .long 1072521368 + .long 3524918334 + .long 1072517809 + .long 2353304918 + .long 1072514209 + .long 1939625839 + .long 1072510567 + .long 1256714581 + .long 1072506883 + .long 3552525848 + .long 1072503156 + .long 3464809522 + .long 1072499387 + .long 4200542593 + .long 1072495575 + .long 355609124 + .long 1072491721 + .long 3684139099 + .long 1072487822 + .long 148355918 + .long 1072483881 + .long 1457689242 + .long 1072479895 + .long 2118591596 + .long 1072475865 + .long 908848089 + .long 1072471791 + .long 877032689 + .long 1072467672 + .long 752012304 + .long 1072463508 + .long 3532301749 + .long 1072459298 + .long 3600563221 + .long 1072455043 + .long 3902857084 + .long 1072450742 + .long 3063101036 + .long 1072446395 + .long 3972344374 + .long 1072442001 + .long 903183549 + .long 1072437561 + .long 983892938 + .long 1072433073 + .long 2722858568 + .long 1072428537 + .long 302790515 + .long 1072423954 + .long 759811057 + .long 1072419322 + .long 2507809922 + .long 1072414641 + .long 2388408813 + .long 1072407528 + .long 2084492942 + .long 1072397870 + .long 2435703301 + .long 1072388010 + .long 1935433360 + .long 1072377945 + .long 2742047290 + .long 1072367671 + .long 2053284205 + .long 1072357185 + .long 657783367 + .long 1072346483 + .long 2893664841 + .long 1072335560 + .long 3718906405 + .long 1072324413 + .long 1547896303 + .long 1072313038 + .long 2494058440 + .long 1072301429 + .long 3133238742 + .long 1072289582 + .long 3327000086 + .long 1072277492 + .long 1860667274 + .long 1072265154 + .long 665340747 + .long 1072252562 + .long 443347841 + .long 1072239710 + .long 581282618 + .long 1072226592 + .long 3349780465 + .long 1072213201 + .long 914217606 + .long 1072199532 + .long 989797661 + .long 1072185576 + .long 945436416 + .long 1072171326 + .long 549291300 + .long 1072156774 + .long 1814636389 + .long 1072141911 + .long 239092858 + .long 1072126729 + .long 1794680724 + .long 1072111217 + .long 1241534678 + .long 1072095366 + .long 3366566214 + .long 1072079164 + .long 1244090828 + .long 1072062601 + .long 1708448120 + .long 1072045663 + .long 3544260650 + .long 1072028337 + .long 1402741403 + .long 1072010610 + .long 2551936888 + .long 1071992465 + .long 617669739 + .long 1071973887 + .long 794002186 + .long 1071954857 + .long 2021237693 + .long 1071935356 + .long 540450384 + .long 1071915364 + .long 1920555537 + .long 1071894857 + .long 2879585206 + .long 1071873811 + .long 3000237455 + .long 1071852199 + .long 3352974346 + .long 1071829991 + .long 569629937 + .long 1071807155 + .long 2077237208 + .long 1071783653 + .long 2284891805 + .long 1071759446 + .long 1226651784 + .long 1071734489 + .long 1102047405 + .long 1071708731 + .long 2009896384 + .long 1071682115 + .long 927419082 + .long 1071654577 + .long 85010366 + .long 1071607413 + .long 696431025 + .long 1071548180 + .long 2611410541 + .long 1071486585 + .long 2612593658 + .long 1071422396 + .long 3548155306 + .long 1071355336 + .long 3887997484 + .long 1071285073 + .long 244854763 + .long 1071211202 + .long 4214445648 + .long 1071133216 + .long 2303966727 + .long 1071050478 + .long 3991040013 + .long 1070962152 + .long 3126952278 + .long 1070867118 + .long 1817448378 + .long 1070763804 + .long 1793814864 + .long 1070649884 + .long 3507224072 + .long 1070447193 + .long 4027609105 + .long 1070148772 + .long 577507993 + .long 1069779414 + .long 2310232419 + .long 1068931829 + .long 856972295 + .long 1016178214 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 3164710438 + .long 1413754136 + .long 3221823995 + .long 856972295 + .long 1017226790 + .long 1413754136 + .long 1074340347 + .long 4160749568 + .long 4294967295 + .long 4160749568 + .long 4294967295 + .long 0 + .long 0 + .long 1431655765 + .long 3217380693 + .long 858993459 + .long 3216192307 + .long 3067833783 + .long 3215383405 + .long 780903145 + .long 1066854586 + .long 858993459 + .long 1068708659 + .long 3340530119 + .long 1067392113 + .long 1431655765 + .long 1069897045 + .long 1321528399 + .long 1066517740 + .long 3067833783 + .long 1067899757 + .long 2021159460 + .long 1065855096 + .long 2576980378 + .long 1066178969 + .long 4294967295 + .long 2147483647 + .long 0 + .long 0 + .long 0 + .long 4294950912 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 1071644672 + .long 0 + .long 0 + .type static_const_table,@object + .size static_const_table,6112 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/e_asin.S b/libm/x86/e_asin.S new file mode 100644 index 000000000..5d7f33179 --- /dev/null +++ b/libm/x86/e_asin.S @@ -0,0 +1,2003 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// To compute asin(s), separate schemes are used when s is in different +// intervals. +// +// |s| in [2^{-4}, sqrt(3)/2): +// Let t=2^k*1.b1 b2..b6 1, where s=2^k*1.b1 b2 .. b52 +// asin(s)=asin(t)+asin(r), where r=s*sqrt(1-t^2)-t*sqrt(1-s^2) +// asin(r)-r evaluated as 7-degree polynomial (c3*r^3+c5*r^5+c7*r^7) +// For the first degree term, r is evaluated as +// R=(s^2-t^2)/(sqrt(1-t^2)*s+sqrt(1-s^2)*t) +// (sqrt(1-t^2) read from table) +// The main source of error is still R (may still be affected by up to 3 ulps +// of rounding error). The table size must be sufficiently large, to minimize +// this effect. +// +// |s| in [sqrt(3)/2, 255/256): +// Let t=2^k*1.b1 b2..b6 1, where sqrt(1-s^2)=2^k*1.b1 b2 .. b52 (rounded) +// asin(|s|)=pi/2-asin(t)+asin(r), r=s*t-sqrt(1-s^2)*sqrt(1-t^2) +// asin(r) evaluated as polynomial (same as above) +// The first degree term is evaluated as +// r=(s^2+t^2-1)/(s*t+sqrt(1-s^2)*sqrt(1-t^2)) +// +// |s|<2^{-4}: evaluate as 13-degree polynomial +// +// |s| in [255/256,1): asin(|s|)=pi/2-asin(sqrt(1-s^2)) +// use 17-degree polynomial, get error term +// Q*eps ~ (1-s^2-Q^2)/(2*Q) for first term +// ( Q(1+eps)=sqrt(1-s^2) ) +// +// Special cases: +// asin(NaN) = quiet NaN, and raise invalid exception +// asin(INF) = QNaN and raise invalid exception +// asin(x) = QNaN and raise invalid exception, for |x|>1.0 +// asin(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin asin +ENTRY(asin) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $120, %esp + movl %ebx, 64(%esp) + call static_func + movl %eax, %ebx + movsd 128(%esp), %xmm0 + stmxcsr 16(%esp) + movl 16(%esp), %edx + andl $-24577, %edx + cmpl %edx, 16(%esp) + jne .L_2TAG_PACKET_0.0.2 +.L_2TAG_PACKET_1.0.2: + movsd 5984(%ebx), %xmm4 + movsd 6016(%ebx), %xmm3 + xorpd %xmm5, %xmm5 + movsd 6000(%ebx), %xmm2 + movl $8192, %ecx + pinsrw $2, %ecx, %xmm5 + movapd %xmm0, %xmm1 + movsd %xmm0, 8(%esp) + psrlq $44, %xmm0 + movd %xmm0, %edx + movapd %xmm1, %xmm7 + movl $8192, %ecx + pinsrw $2, %ecx, %xmm5 + movapd %xmm1, %xmm0 + movl $524287, %eax + andl %edx, %eax + subl $260864, %eax + cmpl $955, %eax + jae .L_2TAG_PACKET_2.0.2 + mulsd %xmm1, %xmm1 + andl $65535, %edx + subsd %xmm1, %xmm3 + sqrtsd %xmm3, %xmm3 + andpd %xmm7, %xmm2 + andl $-4, %edx + subl $64256, %edx + movsd 3936(%ebx,%edx,2), %xmm1 + orpd %xmm5, %xmm2 + movapd 96(%ebx,%edx,4), %xmm4 + movapd %xmm7, %xmm6 + addsd %xmm2, %xmm7 + subsd %xmm2, %xmm0 + mulsd %xmm7, %xmm0 + mulsd %xmm1, %xmm6 + mulsd %xmm2, %xmm3 + movapd %xmm6, %xmm1 + addsd %xmm3, %xmm6 + divsd %xmm6, %xmm0 + movsd 80(%ebx), %xmm7 + movsd 64(%ebx), %xmm5 + subsd %xmm3, %xmm1 + andpd 6064(%ebx), %xmm2 + movapd %xmm1, %xmm3 + mulsd %xmm1, %xmm1 + movsd 72(%ebx), %xmm6 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm7 + mulsd %xmm3, %xmm5 + xorpd %xmm2, %xmm4 + mulsd %xmm1, %xmm3 + addsd %xmm7, %xmm6 + mulsd %xmm3, %xmm6 + addsd %xmm4, %xmm5 + pshufd $238, %xmm4, %xmm4 + addsd %xmm5, %xmm6 + orpd %xmm2, %xmm4 + addsd %xmm6, %xmm0 + movl 16(%esp), %eax + andl $-24577, %eax + cmpl 16(%esp), %eax + je .L_2TAG_PACKET_3.0.2 + stmxcsr 24(%esp) + movl 16(%esp), %eax + andl $24576, %eax + orl %eax, 24(%esp) + ldmxcsr 24(%esp) +.L_2TAG_PACKET_3.0.2: + addsd %xmm4, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_2.0.2: + subl $955, %eax + cmpl $67, %eax + jae .L_2TAG_PACKET_5.0.2 + mulsd %xmm1, %xmm1 + subsd %xmm1, %xmm3 + sqrtsd %xmm3, %xmm3 + movl %edx, %eax + andpd 5984(%ebx), %xmm0 + andpd 6048(%ebx), %xmm7 + movapd %xmm0, %xmm1 + movsd 6016(%ebx), %xmm4 + movapd %xmm7, %xmm6 + subsd %xmm7, %xmm1 + mulsd %xmm7, %xmm7 + addsd %xmm6, %xmm0 + subsd %xmm7, %xmm4 + mulsd %xmm1, %xmm0 + movapd %xmm3, %xmm7 + andpd %xmm3, %xmm2 + psllq $2, %xmm3 + pextrw $3, %xmm3, %edx + orpd %xmm5, %xmm2 + subl $65216, %edx + addl %edx, %edx + mulsd 3936(%ebx,%edx,4), %xmm7 + mulsd %xmm2, %xmm6 + movapd 6080(%ebx), %xmm3 + mulsd %xmm2, %xmm1 + mulsd %xmm2, %xmm2 + subsd %xmm7, %xmm6 + addsd %xmm1, %xmm6 + subsd %xmm2, %xmm4 + addsd %xmm7, %xmm7 + movsd 64(%ebx), %xmm5 + subsd %xmm0, %xmm4 + addsd %xmm6, %xmm7 + movsd 80(%ebx), %xmm0 + divsd %xmm7, %xmm4 + movsd 72(%ebx), %xmm2 + subpd 96(%ebx,%edx,8), %xmm3 + movapd %xmm6, %xmm1 + mulsd %xmm6, %xmm6 + andl $524288, %eax + shrl $4, %eax + mulsd %xmm6, %xmm0 + mulsd %xmm6, %xmm1 + mulsd %xmm1, %xmm5 + mulsd %xmm6, %xmm1 + addsd %xmm2, %xmm0 + pxor %xmm6, %xmm6 + mulsd %xmm1, %xmm0 + addsd %xmm3, %xmm5 + pinsrw $3, %eax, %xmm6 + addsd %xmm5, %xmm0 + movapd %xmm4, %xmm5 + pshufd $238, %xmm3, %xmm3 + subsd %xmm3, %xmm4 + addsd %xmm4, %xmm3 + subsd %xmm3, %xmm5 + subsd %xmm5, %xmm0 + movl 16(%esp), %eax + andl $-24577, %eax + cmpl 16(%esp), %eax + je .L_2TAG_PACKET_6.0.2 + stmxcsr 24(%esp) + movl 16(%esp), %eax + andl $24576, %eax + orl %eax, 24(%esp) + ldmxcsr 24(%esp) +.L_2TAG_PACKET_6.0.2: + xorpd %xmm6, %xmm0 + xorpd %xmm6, %xmm4 + subsd %xmm4, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_5.0.2: + addl $15291, %eax + cmpl $14336, %eax + jae .L_2TAG_PACKET_7.0.2 + unpcklpd %xmm7, %xmm7 + movapd (%ebx), %xmm1 + movapd %xmm7, %xmm6 + movapd 16(%ebx), %xmm2 + movapd 32(%ebx), %xmm4 + mulpd %xmm7, %xmm7 + mulpd %xmm7, %xmm6 + mulpd %xmm7, %xmm1 + mulpd %xmm7, %xmm7 + movapd %xmm6, %xmm3 + mulsd %xmm6, %xmm6 + addpd %xmm2, %xmm1 + mulpd %xmm7, %xmm4 + mulsd %xmm3, %xmm6 + addpd %xmm4, %xmm1 + mulpd %xmm6, %xmm1 + pshufd $238, %xmm1, %xmm2 + addsd %xmm2, %xmm1 + movl 16(%esp), %eax + andl $-24577, %eax + cmpl 16(%esp), %eax + je .L_2TAG_PACKET_8.0.2 + stmxcsr 24(%esp) + movl 16(%esp), %eax + andl $24576, %eax + orl %eax, 24(%esp) + ldmxcsr 24(%esp) +.L_2TAG_PACKET_8.0.2: + addsd %xmm1, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_7.0.2: + subl $15358, %eax + cmpl $2, %eax + jae .L_2TAG_PACKET_9.0.2 + mulsd %xmm1, %xmm1 + subsd %xmm1, %xmm3 + sqrtsd %xmm3, %xmm3 + movl %edx, %eax + andpd 6032(%ebx), %xmm7 + pshufd $68, %xmm3, %xmm5 + andpd 6032(%ebx), %xmm3 + movapd %xmm7, %xmm1 + movsd 6016(%ebx), %xmm4 + movapd %xmm7, %xmm6 + subsd %xmm7, %xmm0 + mulsd %xmm7, %xmm7 + addsd %xmm1, %xmm1 + mulsd %xmm0, %xmm1 + subsd %xmm7, %xmm4 + movapd %xmm3, %xmm6 + mulsd %xmm3, %xmm3 + mulsd %xmm0, %xmm0 + subsd %xmm1, %xmm4 + subsd %xmm5, %xmm6 + addsd %xmm5, %xmm5 + subsd %xmm3, %xmm4 + movapd (%ebx), %xmm2 + pshufd $238, %xmm5, %xmm3 + subsd %xmm0, %xmm4 + addsd %xmm6, %xmm5 + pshufd $238, %xmm3, %xmm7 + addsd %xmm3, %xmm3 + mulsd %xmm6, %xmm5 + addsd %xmm5, %xmm4 + pshufd $238, %xmm7, %xmm6 + divsd %xmm3, %xmm4 + movapd 48(%ebx), %xmm1 + movapd 16(%ebx), %xmm5 + movapd 32(%ebx), %xmm0 + mulpd %xmm7, %xmm7 + movapd %xmm6, %xmm3 + mulpd %xmm7, %xmm2 + mulpd %xmm7, %xmm6 + shrl $4, %eax + andl $32768, %eax + mulsd %xmm7, %xmm1 + mulpd %xmm7, %xmm7 + addpd %xmm2, %xmm5 + movapd %xmm6, %xmm2 + mulsd %xmm6, %xmm6 + mulpd %xmm0, %xmm7 + movapd 6080(%ebx), %xmm0 + mulsd %xmm6, %xmm2 + addpd %xmm5, %xmm7 + pshufd $238, %xmm1, %xmm5 + mulsd %xmm2, %xmm6 + mulpd %xmm2, %xmm7 + addsd %xmm5, %xmm1 + xorpd %xmm5, %xmm5 + pshufd $238, %xmm7, %xmm2 + mulsd %xmm6, %xmm1 + pshufd $238, %xmm0, %xmm6 + addsd %xmm2, %xmm7 + movapd %xmm3, %xmm2 + pinsrw $3, %eax, %xmm5 + subsd %xmm6, %xmm3 + addsd %xmm1, %xmm0 + addsd %xmm3, %xmm6 + addsd %xmm4, %xmm7 + subsd %xmm6, %xmm2 + subsd %xmm7, %xmm0 + subsd %xmm2, %xmm0 + movl 16(%esp), %eax + andl $-24577, %eax + cmpl 16(%esp), %eax + je .L_2TAG_PACKET_10.0.2 + stmxcsr 24(%esp) + movl 16(%esp), %eax + andl $24576, %eax + orl %eax, 24(%esp) + ldmxcsr 24(%esp) +.L_2TAG_PACKET_10.0.2: + xorpd %xmm5, %xmm0 + xorpd %xmm5, %xmm3 + subsd %xmm3, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_9.0.2: + addl $261886, %eax + cmpl $261888, %eax + jb .L_2TAG_PACKET_11.0.2 + movd %xmm0, %ecx + psrlq $32, %xmm0 + movd %xmm0, %edx + andl $2147483647, %edx + movl $1072693248, %eax + subl %edx, %eax + orl %ecx, %eax + cmpl $0, %eax + je .L_2TAG_PACKET_12.0.2 + movq 8(%esp), %xmm2 + movd %xmm2, %edx + psrlq $32, %xmm2 + movd %xmm2, %ecx + andl $2147483647, %ecx + subl $1, %edx + sbbl $2146435072, %ecx + cmpl $0, %ecx + jge .L_2TAG_PACKET_11.0.2 + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %edx + pinsrw $3, %edx, %xmm1 + mulsd %xmm1, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_13.0.2 +.L_2TAG_PACKET_12.0.2: + movsd 5984(%ebx), %xmm1 + movsd 6080(%ebx), %xmm2 + movsd 6088(%ebx), %xmm0 + movl 16(%esp), %eax + andl $-24577, %eax + cmpl 16(%esp), %eax + je .L_2TAG_PACKET_14.0.2 + stmxcsr 24(%esp) + movl 16(%esp), %eax + andl $24576, %eax + orl %eax, 24(%esp) + ldmxcsr 24(%esp) +.L_2TAG_PACKET_14.0.2: + andnpd %xmm7, %xmm1 + orpd %xmm1, %xmm0 + orpd %xmm1, %xmm2 + addsd %xmm2, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_0.0.2: + movl 16(%esp), %edx + andl $-24577, %edx + movl %edx, 24(%esp) + ldmxcsr 24(%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_11.0.2: + movsd 8(%esp), %xmm0 + xorpd %xmm6, %xmm6 + movapd %xmm0, %xmm7 + pextrw $3, %xmm0, %edx + andl $32752, %edx + subl $16, %edx + cmpl $32736, %edx + jb .L_2TAG_PACKET_15.0.2 + addsd %xmm0, %xmm6 + orpd %xmm6, %xmm0 + mulsd %xmm0, %xmm7 +.L_2TAG_PACKET_15.0.2: + movsd %xmm0, (%esp) + fldl (%esp) +.L_2TAG_PACKET_13.0.2: + movl 16(%esp), %edx + andl $-24577, %edx + cmpl 16(%esp), %edx + je .L_2TAG_PACKET_4.0.2 + stmxcsr 24(%esp) + movl 16(%esp), %edx + andl $24576, %edx + orl %edx, 24(%esp) + ldmxcsr 24(%esp) +.L_2TAG_PACKET_4.0.2: + movl 64(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(asin) +# -- End asin + +# Start file scope ASM +ALIAS_SYMBOL(asinl, asin); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 780903145 + .long 1066854586 + .long 858993459 + .long 1068708659 + .long 3340530119 + .long 1067392113 + .long 1431655765 + .long 1069897045 + .long 1321528399 + .long 1066517740 + .long 3067833783 + .long 1067899757 + .long 2021159460 + .long 1065855096 + .long 2576980378 + .long 1066178969 + .long 1431655765 + .long 1069897045 + .long 858993459 + .long 1068708659 + .long 3067833783 + .long 1067899757 + .long 0 + .long 0 + .long 3822952792 + .long 1021639372 + .long 182792448 + .long 1068507836 + .long 2264213271 + .long 1019558908 + .long 649052928 + .long 1068524253 + .long 1797139609 + .long 1022295143 + .long 1243095296 + .long 1068540671 + .long 1415938756 + .long 1021439537 + .long 2033294592 + .long 1068557090 + .long 2356809978 + .long 1021777916 + .long 3088063744 + .long 1068573510 + .long 2669055318 + .long 1022124482 + .long 180888576 + .long 1068589932 + .long 3566445325 + .long 1021358712 + .long 1970196992 + .long 1068606354 + .long 896980323 + .long 1021319659 + .long 4229555456 + .long 1068622777 + .long 436049712 + .long 1021319758 + .long 2732572160 + .long 1068639202 + .long 583123209 + .long 1020797960 + .long 1842831872 + .long 1068655628 + .long 1370449804 + .long 1021429270 + .long 1628994560 + .long 1068672055 + .long 2411391464 + .long 1021057980 + .long 2159763712 + .long 1068688483 + .long 1208692749 + .long 1021943903 + .long 3503886336 + .long 1068704912 + .long 538793309 + .long 1019744063 + .long 1435187200 + .long 1068721343 + .long 4085087612 + .long 1020608419 + .long 317469952 + .long 1068737775 + .long 144386942 + .long 1021440732 + .long 219617280 + .long 1068754208 + .long 2940088361 + .long 1019981122 + .long 1210558208 + .long 1068770642 + .long 2176850347 + .long 1018373705 + .long 3359268352 + .long 1068787077 + .long 2395611454 + .long 1021889042 + .long 2439803648 + .long 1068803514 + .long 1650705253 + .long 1020227966 + .long 2816203520 + .long 1068819952 + .long 3702166386 + .long 1019379914 + .long 262620672 + .long 1068836392 + .long 1855649370 + .long 1020453124 + .long 3438159616 + .long 1068852832 + .long 923063860 + .long 1019273834 + .long 3822105856 + .long 1068869274 + .long 4289947947 + .long 1019434249 + .long 1483729920 + .long 1068885718 + .long 787455814 + .long 1020738379 + .long 787321088 + .long 1068902163 + .long 3321653337 + .long 1021842569 + .long 1802253312 + .long 1068918609 + .long 2653633526 + .long 1021821525 + .long 302985984 + .long 1068935057 + .long 161272028 + .long 1021655149 + .long 653966080 + .long 1068951506 + .long 2566098667 + .long 1020066219 + .long 2924727296 + .long 1068967956 + .long 3646493722 + .long 1014292285 + .long 2889890304 + .long 1068984408 + .long 1081009196 + .long 1022189620 + .long 619098112 + .long 1069000862 + .long 4011643355 + .long 1021773297 + .long 477017600 + .long 1069017317 + .long 4030305534 + .long 1021292252 + .long 2533403904 + .long 1069033773 + .long 2645187591 + .long 1019527099 + .long 2563102208 + .long 1069050231 + .long 3857293792 + .long 1022311697 + .long 635982336 + .long 1069066691 + .long 3625936637 + .long 1017511744 + .long 1116940800 + .long 1069083152 + .long 3653872993 + .long 1022016631 + .long 4075964160 + .long 1069099614 + .long 2468900271 + .long 1021769532 + .long 993165568 + .long 1069116079 + .long 1358104224 + .long 1021199776 + .long 528586752 + .long 1069132545 + .long 2200950332 + .long 1022024872 + .long 2752395776 + .long 1069149012 + .long 3197072454 + .long 1017751319 + .long 3439855616 + .long 1069165481 + .long 1651081806 + .long 1020809338 + .long 2661257728 + .long 1069181952 + .long 539032752 + .long 1021728805 + .long 486957312 + .long 1069198425 + .long 3136045149 + .long 1016888671 + .long 1282340352 + .long 1069214899 + .long 2593963259 + .long 1018956103 + .long 822921728 + .long 1069231375 + .long 2146032737 + .long 1022306465 + .long 3474216192 + .long 1069247852 + .long 3976811625 + .long 1021350207 + .long 716902656 + .long 1069264332 + .long 718267222 + .long 1018624727 + .long 1211594496 + .long 1069280813 + .long 1485641389 + .long 1018447451 + .long 734070272 + .long 1069297296 + .long 354455128 + .long 1021341291 + .long 3650110720 + .long 1069313780 + .long 682185947 + .long 1021651853 + .long 1440663040 + .long 1069330267 + .long 3558574550 + .long 1021615110 + .long 2766612224 + .long 1069346755 + .long 874607978 + .long 1017746872 + .long 3404011008 + .long 1069363245 + .long 4154988502 + .long 1021439906 + .long 3423949056 + .long 1069379737 + .long 2263202309 + .long 1021479615 + .long 2897587712 + .long 1069396231 + .long 2562065031 + .long 1022090363 + .long 1896159232 + .long 1069412727 + .long 3836237663 + .long 1019867288 + .long 490968576 + .long 1069429225 + .long 3322056743 + .long 1006752762 + .long 3048360192 + .long 1069445724 + .long 1152314833 + .long 1013122252 + .long 1049850624 + .long 1069462226 + .long 3601590727 + .long 1022214610 + .long 3156899584 + .long 1069478729 + .long 1855169970 + .long 1019487271 + .long 851173376 + .long 1069495235 + .long 312649594 + .long 1020868604 + .long 2794281728 + .long 1069511742 + .long 1093490181 + .long 1020777577 + .long 468042496 + .long 1069528252 + .long 1152540679 + .long 1021403732 + .long 2534219264 + .long 1069544763 + .long 2292126035 + .long 1021872430 + .long 1376146432 + .long 1069558527 + .long 3293753641 + .long 1020500454 + .long 4175442432 + .long 1069575044 + .long 3626347564 + .long 1021610969 + .long 3523113472 + .long 1069591566 + .long 339956500 + .long 1021119039 + .long 4003350528 + .long 1069608092 + .long 3429333082 + .long 1022813542 + .long 1611067392 + .long 1069624623 + .long 2298017544 + .long 1021977587 + .long 931782144 + .long 1069641158 + .long 2164684743 + .long 1021250988 + .long 2256725504 + .long 1069657697 + .long 1138762335 + .long 1021443776 + .long 1582853120 + .long 1069674241 + .long 1084010382 + .long 1022994693 + .long 3497758720 + .long 1069690789 + .long 406366244 + .long 1022713586 + .long 3999816960 + .long 1069707342 + .long 1488723042 + .long 1023381290 + .long 3383096064 + .long 1069723900 + .long 2541558953 + .long 1019137887 + .long 1942403584 + .long 1069740463 + .long 1879620343 + .long 1022653642 + .long 4268263680 + .long 1069757030 + .long 3039077047 + .long 1022252545 + .long 2067062272 + .long 1069773603 + .long 4190670677 + .long 1020725863 + .long 4225828096 + .long 1069790180 + .long 1998567321 + .long 1022014385 + .long 2452507136 + .long 1069806763 + .long 1511628873 + .long 1021900300 + .long 1340746240 + .long 1069823351 + .long 788367341 + .long 1022726208 + .long 1190035456 + .long 1069839944 + .long 3856337230 + .long 1021834118 + .long 2300688384 + .long 1069856542 + .long 3211396579 + .long 1022621365 + .long 678886400 + .long 1069873146 + .long 4001011887 + .long 1022042646 + .long 921594112 + .long 1069889755 + .long 557811968 + .long 1023065533 + .long 3331668992 + .long 1069906369 + .long 1877060679 + .long 1022419742 + .long 3917875200 + .long 1069922989 + .long 1181055171 + .long 1022752712 + .long 2984829696 + .long 1069939615 + .long 4294526932 + .long 1021499988 + .long 838049024 + .long 1069956247 + .long 3658081878 + .long 1022957952 + .long 2078928384 + .long 1069972884 + .long 820353701 + .long 1019391107 + .long 2719854336 + .long 1069989527 + .long 1644022489 + .long 1023378240 + .long 3069117696 + .long 1070006176 + .long 2771393702 + .long 1019319954 + .long 3435962368 + .long 1070022831 + .long 3876394145 + .long 1023024433 + .long 4130595328 + .long 1070039492 + .long 1630447748 + .long 1021465882 + .long 1169236224 + .long 1070056160 + .long 2828355997 + .long 1020458120 + .long 3453997312 + .long 1070072833 + .long 164091641 + .long 1020388279 + .long 2708127744 + .long 1070089513 + .long 3036550223 + .long 1023328684 + .long 3540797696 + .long 1070106199 + .long 3710949463 + .long 1022568805 + .long 1972276736 + .long 1070122892 + .long 3885277950 + .long 1019761674 + .long 2613815552 + .long 1070139591 + .long 2764165077 + .long 1022921023 + .long 1487791616 + .long 1070156297 + .long 1330644769 + .long 1023162679 + .long 3207593472 + .long 1070173009 + .long 3911007221 + .long 1022993496 + .long 3797764608 + .long 1070189728 + .long 979712598 + .long 1022554580 + .long 3578920448 + .long 1070206454 + .long 2825738223 + .long 1020223708 + .long 2872795648 + .long 1070223187 + .long 392451124 + .long 1022666279 + .long 2002258432 + .long 1070239927 + .long 3730407632 + .long 1023148291 + .long 1291326464 + .long 1070256674 + .long 3723802980 + .long 1022514089 + .long 1065180928 + .long 1070273428 + .long 2635617463 + .long 1022654470 + .long 1650181632 + .long 1070290189 + .long 2061982883 + .long 1022853411 + .long 3373882880 + .long 1070306957 + .long 319732785 + .long 1022017175 + .long 2270081280 + .long 1070323733 + .long 2237757411 + .long 1023064087 + .long 2963732736 + .long 1070340516 + .long 468839165 + .long 1023293774 + .long 1491099904 + .long 1070357307 + .long 1502657946 + .long 1021533479 + .long 2479636480 + .long 1070374105 + .long 482913562 + .long 1021986286 + .long 1968133632 + .long 1070390911 + .long 3281474337 + .long 1022646400 + .long 291639040 + .long 1070407725 + .long 2453320259 + .long 1022812423 + .long 2081472512 + .long 1070424546 + .long 2939989570 + .long 1023091888 + .long 3380340480 + .long 1070441375 + .long 2850707499 + .long 1021921109 + .long 232287488 + .long 1070458213 + .long 3674625342 + .long 1020725130 + .long 1567614208 + .long 1070475058 + .long 9347334 + .long 1022024009 + .long 3433091072 + .long 1070491911 + .long 282524999 + .long 1021433523 + .long 1876877312 + .long 1070508773 + .long 3470449440 + .long 1019309721 + .long 1538472192 + .long 1070525643 + .long 2089486825 + .long 1019698916 + .long 2763830784 + .long 1070542521 + .long 443498115 + .long 1020505194 + .long 1605381632 + .long 1070559408 + .long 3018871601 + .long 1022869913 + .long 2706946048 + .long 1070576303 + .long 3936260892 + .long 1023175875 + .long 2123887360 + .long 1070593207 + .long 2994220655 + .long 1022825948 + .long 104015104 + .long 1070603108 + .long 335054493 + .long 1023441853 + .long 2904568832 + .long 1070615800 + .long 1451215633 + .long 1023853857 + .long 3456197120 + .long 1070632739 + .long 436334733 + .long 1024026432 + .long 252452352 + .long 1070649697 + .long 34596167 + .long 1024031396 + .long 3328018432 + .long 1070666672 + .long 2644547073 + .long 1024296758 + .long 1255829248 + .long 1070683667 + .long 552832586 + .long 1023763122 + .long 4097058560 + .long 1070700680 + .long 1955640623 + .long 1021394654 + .long 451770112 + .long 1070717714 + .long 3428903777 + .long 1022941142 + .long 408920832 + .long 1070734767 + .long 165503263 + .long 1023894958 + .long 1186960640 + .long 1070751840 + .long 435826450 + .long 1024026134 + .long 19078656 + .long 1070768934 + .long 1834169749 + .long 1022899284 + .long 2743490304 + .long 1070786048 + .long 494581074 + .long 1018818479 + .long 2328961024 + .long 1070803184 + .long 2987908834 + .long 1022581110 + .long 350011392 + .long 1070820342 + .long 240771184 + .long 1024143083 + .long 2692326912 + .long 1070837521 + .long 666056837 + .long 1022394776 + .long 2373274368 + .long 1070854723 + .long 2484337770 + .long 1024228156 + .long 1017131520 + .long 1070871948 + .long 3285648279 + .long 1024025789 + .long 265558272 + .long 1070889196 + .long 392241896 + .long 1024252809 + .long 1778008064 + .long 1070906467 + .long 1536107943 + .long 1023949300 + .long 2937184768 + .long 1070923762 + .long 3541062251 + .long 1019448646 + .long 1144442880 + .long 1070941082 + .long 3691683781 + .long 1022123948 + .long 2410165504 + .long 1070958426 + .long 1804181960 + .long 1023945221 + .long 4174350848 + .long 1070975795 + .long 2016094861 + .long 1021716585 + .long 3897012480 + .long 1070993190 + .long 175294410 + .long 1023703404 + .long 3353623040 + .long 1071010611 + .long 167973242 + .long 1023240839 + .long 45671168 + .long 1071028059 + .long 2166856113 + .long 1021565413 + .long 86063872 + .long 1071045533 + .long 2676254727 + .long 1023985299 + .long 1019772672 + .long 1071063034 + .long 989043593 + .long 1021549587 + .long 414297344 + .long 1071080563 + .long 3960972046 + .long 1024307251 + .long 155173120 + .long 1071098120 + .long 1830919291 + .long 1021592251 + .long 2151562240 + .long 1071115705 + .long 405408666 + .long 1023423128 + .long 4041854720 + .long 1071133319 + .long 2043497827 + .long 1024411503 + .long 3489224192 + .long 1071150963 + .long 3072215864 + .long 1022698635 + .long 2477196288 + .long 1071168637 + .long 1812195139 + .long 1022689192 + .long 3015298816 + .long 1071186341 + .long 764841969 + .long 1021027331 + .long 2844731136 + .long 1071204076 + .long 2878117321 + .long 1019116513 + .long 4028950528 + .long 1071221842 + .long 698911452 + .long 1023265602 + .long 69441536 + .long 1071239641 + .long 3253467847 + .long 1020795075 + .long 1676209920 + .long 1071257471 + .long 4272431167 + .long 1022873982 + .long 2408752384 + .long 1071275334 + .long 648519100 + .long 1024385717 + .long 151623680 + .long 1071293231 + .long 345257017 + .long 1019561408 + .long 1410154240 + .long 1071311161 + .long 197863993 + .long 1023224207 + .long 4131351552 + .long 1071329125 + .long 2620801789 + .long 1024411169 + .long 1999664384 + .long 1071347125 + .long 3952692616 + .long 1024168086 + .long 1617668864 + .long 1071365160 + .long 3019889809 + .long 1021907692 + .long 1032074240 + .long 1071383231 + .long 59469899 + .long 1023656194 + .long 2619492096 + .long 1071401338 + .long 1417526820 + .long 1021457783 + .long 202429440 + .long 1071419483 + .long 2927667935 + .long 1019175447 + .long 525044224 + .long 1071437665 + .long 38166811 + .long 1023981879 + .long 1779258880 + .long 1071455885 + .long 481252500 + .long 1023310234 + .long 2195673600 + .long 1071474144 + .long 3962395981 + .long 1021339088 + .long 44573696 + .long 1071492443 + .long 3936281395 + .long 1023014829 + .long 2226905344 + .long 1071510781 + .long 1515320476 + .long 1024320623 + .long 2800512512 + .long 1071529160 + .long 1225403697 + .long 1021081846 + .long 161113600 + .long 1071547581 + .long 3064809733 + .long 1024173917 + .long 1338410240 + .long 1071566043 + .long 2027604973 + .long 1024362526 + .long 522433280 + .long 1071584548 + .long 2055171723 + .long 1023858825 + .long 539595776 + .long 1071603096 + .long 3868820135 + .long 1022936424 + .long 4264017664 + .long 1071621687 + .long 3228065145 + .long 1023479578 + .long 1733924096 + .long 1071640324 + .long 3511934475 + .long 1022496355 + .long 108880384 + .long 1071651839 + .long 615880967 + .long 1023519706 + .long 3517856512 + .long 1071661202 + .long 3113108559 + .long 1025190289 + .long 4043153152 + .long 1071670589 + .long 1571836218 + .long 1023106116 + .long 3251299072 + .long 1071680000 + .long 3444076102 + .long 1022187841 + .long 2736921600 + .long 1071689435 + .long 272771483 + .long 1025095280 + .long 3897698560 + .long 1071703633 + .long 2075390188 + .long 1022489022 + .long 3209485056 + .long 1071722652 + .long 1438094065 + .long 1021844944 + .long 3781432064 + .long 1071741774 + .long 1675017145 + .long 1024143828 + .long 2684184064 + .long 1071761003 + .long 2259963753 + .long 1024731393 + .long 1840489728 + .long 1071780342 + .long 3372883597 + .long 1023431408 + .long 3764087808 + .long 1071799794 + .long 3307523102 + .long 1024485788 + .long 3006232320 + .long 1071819364 + .long 3088971966 + .long 1025213251 + .long 3374881280 + .long 1071839055 + .long 834437749 + .long 1025236452 + .long 797284864 + .long 1071858872 + .long 3122663941 + .long 1025320473 + .long 545765120 + .long 1071878818 + .long 826539625 + .long 1022450955 + .long 107562240 + .long 1071898898 + .long 339584600 + .long 1022481255 + .long 2123649024 + .long 1071919116 + .long 3912959833 + .long 1024321009 + .long 1562385664 + .long 1071939478 + .long 2846067230 + .long 1023343981 + .long 2963085824 + .long 1071959988 + .long 954548627 + .long 1021475211 + .long 3325550592 + .long 1071980652 + .long 3459651155 + .long 1025305573 + .long 775752448 + .long 1072001476 + .long 3582746667 + .long 1023859460 + .long 3238590720 + .long 1072022464 + .long 634636162 + .long 1024472353 + .long 2758801920 + .long 1072043624 + .long 3078216319 + .long 1025304516 + .long 1370319104 + .long 1072064962 + .long 2570569078 + .long 1025099442 + .long 2615805184 + .long 1072086484 + .long 3729933412 + .long 1024605112 + .long 3077336576 + .long 1072108198 + .long 1948916066 + .long 1024781603 + .long 1099528192 + .long 1072130112 + .long 3139143157 + .long 1023729360 + .long 1231903232 + .long 1072152233 + .long 1349513477 + .long 1024737515 + .long 1507504128 + .long 1072174570 + .long 3484516322 + .long 1024000959 + .long 2214659840 + .long 1072197132 + .long 2563820917 + .long 1025225535 + .long 1804739840 + .long 1072219929 + .long 760038746 + .long 1024482855 + .long 1413746688 + .long 1072242971 + .long 3401734714 + .long 1025129838 + .long 821409536 + .long 1072266269 + .long 3729772551 + .long 1025484796 + .long 3031825664 + .long 1072289834 + .long 122256749 + .long 1024752594 + .long 1710784256 + .long 1072313680 + .long 1518205483 + .long 1024724809 + .long 3025265152 + .long 1072337819 + .long 409951989 + .long 1022835555 + .long 287769088 + .long 1072362267 + .long 800355594 + .long 1022484850 + .long 198179840 + .long 1072387038 + .long 3502926213 + .long 1024209373 + .long 1909130496 + .long 1072412149 + .long 3064694319 + .long 1025380823 + .long 1941732096 + .long 1072437619 + .long 4112930390 + .long 1024294679 + .long 3492010496 + .long 1072463467 + .long 2684918107 + .long 1023220233 + .long 81959680 + .long 1072489716 + .long 220021366 + .long 1020635131 + .long 2297837056 + .long 1072516387 + .long 4027683826 + .long 1021041185 + .long 270404096 + .long 1072543508 + .long 2012766065 + .long 1021780753 + .long 3667376896 + .long 1072571105 + .long 2727981522 + .long 1023009874 + .long 330400256 + .long 1072599212 + .long 2940017003 + .long 1025393439 + .long 1119293952 + .long 1072627861 + .long 1608550416 + .long 1022675612 + .long 3536155904 + .long 1072657091 + .long 349665778 + .long 1025156751 + .long 3078046720 + .long 1072686946 + .long 2016159996 + .long 1022193169 + .long 455228416 + .long 1072705361 + .long 1908539328 + .long 1026126332 + .long 1871505664 + .long 1072720988 + .long 2784700894 + .long 1025922277 + .long 1630994432 + .long 1072737010 + .long 361107678 + .long 1022887244 + .long 2084558336 + .long 1072753462 + .long 2642784509 + .long 1072689083 + .long 1514442531 + .long 1072688953 + .long 333108933 + .long 1072688821 + .long 3392112024 + .long 1072688686 + .long 2099852862 + .long 1072688550 + .long 749609004 + .long 1072688412 + .long 3634632596 + .long 1072688271 + .long 2163248461 + .long 1072688129 + .long 628657846 + .long 1072687985 + .long 3324036511 + .long 1072687838 + .long 1657632815 + .long 1072687690 + .long 4217538760 + .long 1072687539 + .long 2411951597 + .long 1072687387 + .long 533944872 + .long 1072687233 + .long 2876566508 + .long 1072687076 + .long 847936891 + .long 1072686918 + .long 3036019913 + .long 1072686757 + .long 848884575 + .long 1072686595 + .long 2874443326 + .long 1072686430 + .long 520713666 + .long 1072686264 + .long 2375556481 + .long 1072686095 + .long 4141904948 + .long 1072685924 + .long 1522666382 + .long 1072685752 + .long 3105624104 + .long 1072685577 + .long 298666327 + .long 1072685401 + .long 1689524500 + .long 1072685222 + .long 2981002200 + .long 1072685041 + .long 4170844284 + .long 1072684858 + .long 961802263 + .long 1072684674 + .long 1941503454 + .long 1072684487 + .long 2812647170 + .long 1072684298 + .long 3572873869 + .long 1072684107 + .long 4219797823 + .long 1072683914 + .long 456039788 + .long 1072683720 + .long 869096151 + .long 1072683523 + .long 1161535119 + .long 1072683324 + .long 1330865866 + .long 1072683123 + .long 1374571204 + .long 1072682920 + .long 1290107538 + .long 1072682715 + .long 1074904836 + .long 1072682508 + .long 726366587 + .long 1072682299 + .long 241869763 + .long 1072682088 + .long 3913732079 + .long 1072681874 + .long 3149342765 + .long 1072681659 + .long 2240966306 + .long 1072681442 + .long 1185873216 + .long 1072681223 + .long 4276274591 + .long 1072681001 + .long 2919452883 + .long 1072680778 + .long 1407565635 + .long 1072680553 + .long 4032743551 + .long 1072680325 + .long 2202188565 + .long 1072680096 + .long 207977577 + .long 1072679865 + .long 2342160518 + .long 1072679631 + .long 11858423 + .long 1072679396 + .long 1804034453 + .long 1072679158 + .long 3420722787 + .long 1072678918 + .long 563930456 + .long 1072678677 + .long 1820539192 + .long 1072678433 + .long 2892501606 + .long 1072678187 + .long 3776710320 + .long 1072677939 + .long 175063337 + .long 1072677690 + .long 674333171 + .long 1072677438 + .long 976363026 + .long 1072677184 + .long 1077935934 + .long 1072676928 + .long 1921075490 + .long 1072676540 + .long 881493302 + .long 1072676016 + .long 3275752439 + .long 1072675483 + .long 486855588 + .long 1072674943 + .long 1077229111 + .long 1072674394 + .long 723950308 + .long 1072673837 + .long 3693582199 + .long 1072673271 + .long 1367335316 + .long 1072672698 + .long 2305837020 + .long 1072672116 + .long 2184358641 + .long 1072671526 + .long 972682840 + .long 1072670928 + .long 2935101762 + .long 1072670321 + .long 3745513263 + .long 1072669706 + .long 3372320886 + .long 1072669083 + .long 1783464620 + .long 1072668452 + .long 3241386215 + .long 1072667812 + .long 3418125284 + .long 1072667164 + .long 2280219148 + .long 1072666508 + .long 4088700758 + .long 1072665843 + .long 219227400 + .long 1072665171 + .long 3521816918 + .long 1072664489 + .long 1076205279 + .long 1072663800 + .long 1436484616 + .long 1072663102 + .long 271362610 + .long 1072662396 + .long 1838996688 + .long 1072661681 + .long 1807122518 + .long 1072660958 + .long 137953542 + .long 1072660227 + .long 1088178584 + .long 1072659487 + .long 324057537 + .long 1072658739 + .long 2101288076 + .long 1072657982 + .long 2085133974 + .long 1072657217 + .long 235324451 + .long 1072656444 + .long 806051592 + .long 1072655662 + .long 3756033140 + .long 1072654871 + .long 453542543 + .long 1072654073 + .long 3741177327 + .long 1072653265 + .long 691216109 + .long 1072652450 + .long 4145223372 + .long 1072651625 + .long 1174439091 + .long 1072650793 + .long 324416139 + .long 1072649952 + .long 1550246310 + .long 1072649102 + .long 511524674 + .long 1072648244 + .long 1457248482 + .long 1072647377 + .long 45944955 + .long 1072646502 + .long 525537397 + .long 1072645618 + .long 2848440188 + .long 1072644725 + .long 2671555633 + .long 1072643824 + .long 4241172637 + .long 1072642914 + .long 3213094278 + .long 1072641996 + .long 3832503688 + .long 1072641069 + .long 1754091534 + .long 1072640134 + .long 1221921804 + .long 1072639190 + .long 2184526489 + .long 1072638237 + .long 294902089 + .long 1072637276 + .long 4090375270 + .long 1072636305 + .long 632860906 + .long 1072635327 + .long 2753498702 + .long 1072634339 + .long 1808009252 + .long 1072633343 + .long 2036428672 + .long 1072632338 + .long 3383235626 + .long 1072631324 + .long 1497347484 + .long 1072630302 + .long 617018317 + .long 1072629271 + .long 684933058 + .long 1072628231 + .long 1643170798 + .long 1072627182 + .long 3011066360 + .long 1072625592 + .long 957158713 + .long 1072623442 + .long 1390907941 + .long 1072621256 + .long 3819155270 + .long 1072619034 + .long 3443571196 + .long 1072616777 + .long 4045412458 + .long 1072614484 + .long 805503923 + .long 1072612156 + .long 1778922015 + .long 1072609791 + .long 2125033665 + .long 1072607390 + .long 1287203863 + .long 1072604953 + .long 2992629568 + .long 1072602479 + .long 2367267127 + .long 1072599969 + .long 3115526047 + .long 1072597422 + .long 340219539 + .long 1072594839 + .long 2017215719 + .long 1072592218 + .long 3225443424 + .long 1072589560 + .long 3326565673 + .long 1072586865 + .long 1669811211 + .long 1072584133 + .long 1886735022 + .long 1072581363 + .long 3301071171 + .long 1072578555 + .long 928514283 + .long 1072575710 + .long 2656364059 + .long 1072572826 + .long 3473490507 + .long 1072569904 + .long 2649965606 + .long 1072566944 + .long 3736819052 + .long 1072563945 + .long 1680885175 + .long 1072560908 + .long 4413771 + .long 1072557832 + .long 2214869753 + .long 1072554716 + .long 3214725184 + .long 1072551561 + .long 2186079903 + .long 1072548367 + .long 2590372131 + .long 1072545133 + .long 3578146079 + .long 1072541859 + .long 4283712755 + .long 1072538545 + .long 3824834510 + .long 1072535191 + .long 1302400298 + .long 1072531797 + .long 95058636 + .long 1072528362 + .long 3563906063 + .long 1072524885 + .long 2167230730 + .long 1072521368 + .long 3524918334 + .long 1072517809 + .long 2353304918 + .long 1072514209 + .long 1939625839 + .long 1072510567 + .long 1256714581 + .long 1072506883 + .long 3552525848 + .long 1072503156 + .long 3464809522 + .long 1072499387 + .long 4200542593 + .long 1072495575 + .long 355609124 + .long 1072491721 + .long 3684139099 + .long 1072487822 + .long 148355918 + .long 1072483881 + .long 1457689242 + .long 1072479895 + .long 2118591596 + .long 1072475865 + .long 908848089 + .long 1072471791 + .long 877032689 + .long 1072467672 + .long 752012304 + .long 1072463508 + .long 3532301749 + .long 1072459298 + .long 3600563221 + .long 1072455043 + .long 3902857084 + .long 1072450742 + .long 3063101036 + .long 1072446395 + .long 3972344374 + .long 1072442001 + .long 903183549 + .long 1072437561 + .long 983892938 + .long 1072433073 + .long 2722858568 + .long 1072428537 + .long 302790515 + .long 1072423954 + .long 759811057 + .long 1072419322 + .long 2507809922 + .long 1072414641 + .long 2388408813 + .long 1072407528 + .long 2084492942 + .long 1072397870 + .long 2435703301 + .long 1072388010 + .long 1935433360 + .long 1072377945 + .long 2742047290 + .long 1072367671 + .long 2053284205 + .long 1072357185 + .long 657783367 + .long 1072346483 + .long 2893664841 + .long 1072335560 + .long 3718906405 + .long 1072324413 + .long 1547896303 + .long 1072313038 + .long 2494058440 + .long 1072301429 + .long 3133238742 + .long 1072289582 + .long 3327000086 + .long 1072277492 + .long 1860667274 + .long 1072265154 + .long 665340747 + .long 1072252562 + .long 443347841 + .long 1072239710 + .long 581282618 + .long 1072226592 + .long 3349780465 + .long 1072213201 + .long 914217606 + .long 1072199532 + .long 989797661 + .long 1072185576 + .long 945436416 + .long 1072171326 + .long 549291300 + .long 1072156774 + .long 1814636389 + .long 1072141911 + .long 239092858 + .long 1072126729 + .long 1794680724 + .long 1072111217 + .long 1241534678 + .long 1072095366 + .long 3366566214 + .long 1072079164 + .long 1244090828 + .long 1072062601 + .long 1708448120 + .long 1072045663 + .long 3544260650 + .long 1072028337 + .long 1402741403 + .long 1072010610 + .long 2551936888 + .long 1071992465 + .long 617669739 + .long 1071973887 + .long 794002186 + .long 1071954857 + .long 2021237693 + .long 1071935356 + .long 540450384 + .long 1071915364 + .long 1920555537 + .long 1071894857 + .long 2879585206 + .long 1071873811 + .long 3000237455 + .long 1071852199 + .long 3352974346 + .long 1071829991 + .long 569629937 + .long 1071807155 + .long 2077237208 + .long 1071783653 + .long 2284891805 + .long 1071759446 + .long 1226651784 + .long 1071734489 + .long 1102047405 + .long 1071708731 + .long 2009896384 + .long 1071682115 + .long 927419082 + .long 1071654577 + .long 85010366 + .long 1071607413 + .long 696431025 + .long 1071548180 + .long 2611410541 + .long 1071486585 + .long 2612593658 + .long 1071422396 + .long 3548155306 + .long 1071355336 + .long 3887997484 + .long 1071285073 + .long 244854763 + .long 1071211202 + .long 4214445648 + .long 1071133216 + .long 2303966727 + .long 1071050478 + .long 3991040013 + .long 1070962152 + .long 3126952278 + .long 1070867118 + .long 1817448378 + .long 1070763804 + .long 1793814864 + .long 1070649884 + .long 3507224072 + .long 1070447193 + .long 4027609105 + .long 1070148772 + .long 577507993 + .long 1069779414 + .long 2310232419 + .long 1068931829 + .long 4294967295 + .long 2147483647 + .long 0 + .long 0 + .long 0 + .long 4294950912 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 4160749568 + .long 4294967295 + .long 4160749568 + .long 4294967295 + .long 0 + .long 2147483584 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 0 + .long 856972295 + .long 1016178214 + .long 1413754136 + .long 1073291771 + .type static_const_table,@object + .size static_const_table,6096 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/e_atan2.S b/libm/x86/e_atan2.S new file mode 100644 index 000000000..1efdf6582 --- /dev/null +++ b/libm/x86/e_atan2.S @@ -0,0 +1,1221 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// +//1. The method is based on the relationship of atan2(Y,X) to atan(|Y/X|) +// as follows. +// / sign(Y) atan(|Y/X|) if X > 0 +// atan2(Y,X) = +// \ sign(Y)*pi - sign(Y)*atan(|Y/X|) if X < 0 +// +// Thus, atan2(Y,X) is of the form atan2(Y,X) = PI + sgn*atan(|Y/X|) +// where PI and sgn can be determined by the four possible combinations of +// of the pair (sign(X),sign(Y)). We concentrate on the numerical method +// for atan(|Y/X|). +// +//2. For |Y/X| < 2^(-64), atan(|Y/X|) ~=~ |Y/X|. Hence, atan2(Y,X) is Y/X +// if X > 0, and sign(Y)*pi otherwise. +//3. For |Y/X| >= 2^(65), atan(|Y/X|) ~=~ pi/2. Hence atan2(Y,X) is sign(Y)pi/2. +//4. For 2^(-64) <= |Y/X| < 2^(-5), atan(|Y/X|) is approximated by a polynomial +// of the form Z + Z*E*polynomial(E), where Z = |Y/X| and E = Z*Z. +//5. For |Y/X| > 2^(5), atan(|Y/X|) = pi/2 + atan(-|X/Y|), and atan(-|X/Y|) is +// calculated using the polynomial in 4 above. +//6. For 2^(-5) <= |Y/X| <= 2^(5), we employ a table lookup method. First, +// we obtain B = 2^k * 1.b1 b2 b3 b4 = 2^k * (1+k/16) that approximate +// |Y/X| to approximately 5 significant bits. Hence, atan(|Y/X|) is +// +// atan(|Y/X|) = atan(B) + atan(Z), where Z = (|Y|-B|X|)/(|X|+B|Y|). +// ~=~ tau + Z + Z*E*polynomial(E), where E = Z*Z. +// +// B has the range from 2^(-6)*(1+14/16) to 2^5 = 2^(5)*(1+0/16), totally +// 163 possible values. These values are calculated beforehand and stored +// in a table. The polynomial is the one used in 4. +// +// Special cases: +// atan2(+-0, +0) = +-0 +// atan2(+-0, -0) = +-pi +// atan2(+-0, x) = +-0, for x > 0, and +-pi, for x < 0 +// atan2(y, +-0) = +pi/2 for y > 0, and -pi/2 for y < 0 +// atan2(+-y, +INF) = +-0, for finite y > 0 +// atan2(+-y, -INF) = +-pi, for finite y > 0 +// atan2(+-INF, x) = +-pi/2, for finite x +// atan2(+-INF, +INF) = +-pi/4 +// atan2(+-INF, -INF) = +-3*pi/4 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin atan2 +ENTRY(atan2) +# parameter 1: 8 + %ebp +# parameter 2: 16 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $120, %esp + movl %ebx, 64(%esp) + call static_func + movl %eax, %ebx + movsd 136(%esp), %xmm1 + movsd 128(%esp), %xmm0 + pextrw $3, %xmm0, %eax + movq %xmm0, 8(%esp) + andl $32752, %eax + movq %xmm1, 16(%esp) + subl $14448, %eax + cmpl $3840, %eax + ja .L_2TAG_PACKET_0.0.2 + pextrw $3, %xmm1, %eax + andl $32752, %eax + subl $14448, %eax + cmpl $3840, %eax + ja .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + unpcklpd %xmm1, %xmm0 + xorpd %xmm5, %xmm5 + xorpd %xmm3, %xmm3 + movl $2048, %eax + pinsrw $3, %eax, %xmm5 + paddw %xmm1, %xmm5 + psrlq $29, %xmm5 + rcpss %xmm5, %xmm3 + xorpd %xmm4, %xmm4 + movl $14336, %ecx + pinsrw $3, %ecx, %xmm4 + psllq $29, %xmm3 + paddw %xmm4, %xmm3 + mulsd %xmm0, %xmm3 + xorpd %xmm2, %xmm2 + xorpd %xmm6, %xmm6 + xorpd %xmm7, %xmm7 + movl $32768, %eax + pinsrw $2, %eax, %xmm6 + movl $32767, %ecx + pinsrw $3, %ecx, %xmm7 + paddd %xmm6, %xmm3 + andpd %xmm7, %xmm3 + movapd %xmm3, %xmm5 + pextrw $3, %xmm3, %eax + movl $16448, %ecx + pinsrw $3, %ecx, %xmm2 + minsd %xmm2, %xmm3 + movmskpd %xmm0, %edx + psllq $1, %xmm0 + psrlq $1, %xmm0 + cmpsd $2, %xmm2, %xmm5 + psllq $1, %xmm1 + psrlq $1, %xmm1 + movapd %xmm1, %xmm6 + movapd %xmm1, %xmm7 + movapd %xmm0, %xmm2 + movl $0, %ecx + pinsrw $0, %ecx, %xmm6 + subsd %xmm6, %xmm7 + movapd %xmm0, %xmm4 + mulsd %xmm3, %xmm6 + mulsd %xmm3, %xmm4 + mulsd %xmm3, %xmm7 + andpd %xmm5, %xmm0 + subsd %xmm6, %xmm0 + andpd %xmm5, %xmm1 + addsd %xmm1, %xmm4 + subsd %xmm7, %xmm0 + andl $32752, %eax + subl $16286, %eax + cmpl $1121, %eax + ja .L_2TAG_PACKET_3.0.2 + divsd %xmm4, %xmm0 + pextrw $3, %xmm3, %ecx + movsd 2944(%ebx), %xmm2 + movsd 2960(%ebx), %xmm3 + pextrw $0, %xmm5, %eax + addl %edx, %edx + movapd 2688(%ebx,%edx,8), %xmm6 + movapd 2752(%ebx,%edx,8), %xmm1 + subl $16286, %ecx + notl %eax + andl $1, %eax + addl %eax, %ecx + addl %ecx, %ecx + movapd (%ebx,%ecx,8), %xmm5 + xorpd %xmm1, %xmm5 + addpd %xmm6, %xmm5 + movapd %xmm5, %xmm6 + unpckhpd %xmm5, %xmm5 + xorpd %xmm0, %xmm1 + movapd %xmm1, %xmm4 + mulsd %xmm0, %xmm0 + mulsd %xmm0, %xmm2 + addsd %xmm0, %xmm3 + addsd %xmm6, %xmm1 + subsd %xmm1, %xmm6 + addsd %xmm4, %xmm6 + addsd 2952(%ebx), %xmm2 + mulsd %xmm0, %xmm3 + mulsd %xmm0, %xmm4 + addsd %xmm5, %xmm6 + mulsd %xmm4, %xmm2 + addsd 2968(%ebx), %xmm3 + mulsd %xmm3, %xmm2 + addsd %xmm6, %xmm2 + addsd %xmm2, %xmm1 + movsd %xmm1, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_3.0.2: + addl $942, %eax + cmpl $942, %eax + ja .L_2TAG_PACKET_5.0.2 + xorpd %xmm4, %xmm4 + movl $16368, %ecx + pinsrw $3, %ecx, %xmm4 + divsd %xmm1, %xmm4 + addl %edx, %edx + movapd 2752(%ebx,%edx,8), %xmm6 + unpcklpd %xmm3, %xmm3 + xorpd %xmm6, %xmm0 + xorpd %xmm6, %xmm2 + xorpd %xmm6, %xmm3 + movapd 2816(%ebx,%edx,8), %xmm7 + movsd 2944(%ebx), %xmm1 + movsd 2960(%ebx), %xmm5 + andpd 2880(%ebx,%edx,8), %xmm3 + mulsd %xmm4, %xmm2 + mulsd %xmm4, %xmm0 + movapd %xmm2, %xmm6 + mulsd %xmm2, %xmm2 + mulsd %xmm2, %xmm1 + addsd %xmm2, %xmm5 + mulsd %xmm2, %xmm6 + addsd 2952(%ebx), %xmm1 + mulsd %xmm2, %xmm5 + addsd %xmm0, %xmm7 + addpd %xmm3, %xmm7 + mulsd %xmm6, %xmm1 + addsd 2968(%ebx), %xmm5 + mulsd %xmm1, %xmm5 + addsd %xmm7, %xmm5 + unpckhpd %xmm7, %xmm7 + addsd %xmm7, %xmm5 + movsd %xmm5, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_5.0.2: + movsd 16(%esp), %xmm1 + movsd 8(%esp), %xmm0 + pextrw $3, %xmm1, %eax + andl $32752, %eax + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + cmpl %eax, %ecx + jg .L_2TAG_PACKET_6.0.2 + pextrw $3, %xmm1, %ecx + cmpl $32767, %ecx + jg .L_2TAG_PACKET_7.0.2 + divsd %xmm1, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_7.0.2: + andpd 2672(%ebx), %xmm0 + movsd 2640(%ebx), %xmm2 + xorpd %xmm2, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_6.0.2: + andpd 2672(%ebx), %xmm0 + movsd 2624(%ebx), %xmm2 + xorpd %xmm2, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_0.0.2: +.L_2TAG_PACKET_1.0.2: + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + pextrw $3, %xmm1, %eax + andl $32752, %eax + cmpl $32752, %ecx + je .L_2TAG_PACKET_8.0.2 + cmpl $32752, %eax + je .L_2TAG_PACKET_9.0.2 + movsd 2992(%ebx), %xmm3 + movl $1024, %edx + movsd 2976(%ebx), %xmm4 + xorpd %xmm6, %xmm6 + movsd 3008(%ebx), %xmm7 + cmpl $0, %ecx + je .L_2TAG_PACKET_10.0.2 +.L_2TAG_PACKET_11.0.2: + cmpl $0, %eax + je .L_2TAG_PACKET_12.0.2 +.L_2TAG_PACKET_13.0.2: + addl %ecx, %edx + subl %eax, %edx + cmpl $2048, %edx + ja .L_2TAG_PACKET_5.0.2 + addl $15344, %edx + pinsrw $3, %edx, %xmm6 + andpd %xmm4, %xmm0 + andpd %xmm4, %xmm1 + orpd %xmm6, %xmm0 + orpd %xmm7, %xmm1 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_10.0.2: + subl $880, %edx + mulsd %xmm3, %xmm0 + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + cmpl $0, %ecx + je .L_2TAG_PACKET_14.0.2 + jmp .L_2TAG_PACKET_11.0.2 +.L_2TAG_PACKET_12.0.2: + addl $880, %edx + mulsd %xmm3, %xmm1 + pextrw $3, %xmm1, %eax + andl $32752, %eax + cmpl $0, %eax + je .L_2TAG_PACKET_15.0.2 + jmp .L_2TAG_PACKET_13.0.2 +.L_2TAG_PACKET_8.0.2: + movd %xmm0, %edx + movapd %xmm0, %xmm2 + psrlq $32, %xmm2 + movd %xmm2, %ecx + andl $1048575, %ecx + orl %edx, %ecx + cmpl $0, %ecx + jne .L_2TAG_PACKET_16.0.2 + psrlq $63, %xmm0 + psllq $63, %xmm0 + cmpl $32752, %eax + jae .L_2TAG_PACKET_17.0.2 + movapd 2624(%ebx), %xmm5 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + orpd %xmm5, %xmm0 +.L_2TAG_PACKET_18.0.2: + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_16.0.2: + addsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_17.0.2: + movd %xmm1, %eax + movapd %xmm1, %xmm2 + psrlq $32, %xmm2 + movd %xmm2, %ecx + movl $-2147483648, %edx + andl %ecx, %edx + andl $1048575, %ecx + orl %eax, %ecx + cmpl $0, %ecx + jne .L_2TAG_PACKET_19.0.2 + cmpl $0, %edx + jne .L_2TAG_PACKET_20.0.2 + movapd 2656(%ebx), %xmm5 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + orpd %xmm5, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_19.0.2: + movapd %xmm1, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_20.0.2: + movapd 2656(%ebx), %xmm5 + movapd 2624(%ebx), %xmm6 + addpd %xmm6, %xmm5 + pshufd $238, %xmm5, %xmm6 + addpd %xmm6, %xmm5 + orpd %xmm5, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_9.0.2: + movd %xmm1, %eax + movapd %xmm1, %xmm2 + psrlq $32, %xmm2 + movd %xmm2, %ecx + movl $-2147483648, %edx + andl %ecx, %edx + andl $1048575, %ecx + orl %eax, %ecx + cmpl $0, %ecx + jne .L_2TAG_PACKET_19.0.2 + psrlq $63, %xmm0 + psllq $63, %xmm0 + cmpl $0, %edx + jne .L_2TAG_PACKET_21.0.2 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_21.0.2: + movapd 2640(%ebx), %xmm5 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + orpd %xmm5, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_14.0.2: + pextrw $3, %xmm1, %edx + andl $32768, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_22.0.2 + movapd 2640(%ebx), %xmm5 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + comisd %xmm0, %xmm1 + orpd %xmm5, %xmm0 + jne .L_2TAG_PACKET_23.0.2 +.L_2TAG_PACKET_24.0.2: + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_23.0.2: + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_22.0.2: + comisd %xmm0, %xmm1 + jne .L_2TAG_PACKET_23.0.2 + je .L_2TAG_PACKET_24.0.2 +.L_2TAG_PACKET_15.0.2: + movapd 2624(%ebx), %xmm5 + psrlq $63, %xmm0 + psllq $63, %xmm0 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + orpd %xmm5, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) +.L_2TAG_PACKET_4.0.2: + movl 64(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(atan2) +# -- End atan2 + +# Start file scope ASM +ALIAS_SYMBOL(atan2l, atan2); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 3390881280 + .long 1067318733 + .long 1411116779 + .long 1018950063 + .long 2985987840 + .long 1067384211 + .long 2088903695 + .long 1018086027 + .long 3148445184 + .long 1067449685 + .long 2044163806 + .long 1017271335 + .long 3667629184 + .long 1067515494 + .long 2353092775 + .long 1019967309 + .long 1546568832 + .long 1067580954 + .long 611991315 + .long 1017602584 + .long 3815996800 + .long 1067646404 + .long 466038598 + .long 1019686426 + .long 4050241920 + .long 1067711845 + .long 3265026328 + .long 1019626952 + .long 120454912 + .long 1067777277 + .long 1542207696 + .long 1020155608 + .long 2784639744 + .long 1067842697 + .long 3883834623 + .long 1018602870 + .long 1328010624 + .long 1067908107 + .long 1791097456 + .long 1019053126 + .long 2217794048 + .long 1067973505 + .long 551619938 + .long 1018494194 + .long 3333520000 + .long 1068038891 + .long 2390331823 + .long 1019033022 + .long 2557052032 + .long 1068104265 + .long 2423976108 + .long 1019728674 + .long 2067649536 + .long 1068169626 + .long 3757397745 + .long 1018672362 + .long 4047094784 + .long 1068234973 + .long 481613184 + .long 1019275104 + .long 2089853184 + .long 1068300307 + .long 1733914374 + .long 1020124677 + .long 2678003840 + .long 1068365626 + .long 1373600282 + .long 1013935474 + .long 3706496128 + .long 1068430930 + .long 1000610902 + .long 1019673285 + .long 3073179008 + .long 1068496219 + .long 1497143008 + .long 1019900342 + .long 2803716736 + .long 1068562846 + .long 1476677416 + .long 1019444094 + .long 3204984128 + .long 1068628077 + .long 1192335905 + .long 1018748628 + .long 831146624 + .long 1068693273 + .long 2733586224 + .long 1018823295 + .long 243029376 + .long 1068758431 + .long 950106081 + .long 1019046675 + .long 1735561920 + .long 1068823549 + .long 3546440856 + .long 1020104712 + .long 1339217792 + .long 1068888626 + .long 3028812387 + .long 1019818321 + .long 3706342144 + .long 1068953659 + .long 3814564029 + .long 1017763871 + .long 637726976 + .long 1069018648 + .long 3584007699 + .long 1017976868 + .long 1148779264 + .long 1069083589 + .long 2282532133 + .long 1019483954 + .long 1406131392 + .long 1069148481 + .long 1547359113 + .long 1019786342 + .long 1908875904 + .long 1069213322 + .long 1315508410 + .long 1020009473 + .long 3194947520 + .long 1069278110 + .long 3845393201 + .long 1015803761 + .long 1547487744 + .long 1069342844 + .long 3863107865 + .long 1019810104 + .long 1881061952 + .long 1069407521 + .long 4288343548 + .long 1019687581 + .long 563086336 + .long 1069472140 + .long 2582230241 + .long 1020099350 + .long 2594975552 + .long 1069536698 + .long 2306443764 + .long 1019667244 + .long 3438545024 + .long 1069606573 + .long 957455549 + .long 1015587735 + .long 4211357472 + .long 1069670906 + .long 2611778754 + .long 1017877214 + .long 3002835424 + .long 1069735101 + .long 235580458 + .long 1020211685 + .long 3905315424 + .long 1069799150 + .long 3630647617 + .long 1018736849 + .long 2849656576 + .long 1069863047 + .long 2412165062 + .long 1019693004 + .long 507429472 + .long 1069926785 + .long 1397750723 + .long 1018412717 + .long 2307470272 + .long 1069990356 + .long 1796470904 + .long 1019796181 + .long 1271814912 + .long 1070053755 + .long 189761565 + .long 1016149115 + .long 3800538144 + .long 1070116974 + .long 2524871582 + .long 1018263353 + .long 3916203552 + .long 1070180008 + .long 127848658 + .long 1017672664 + .long 457192032 + .long 1070242851 + .long 4020400938 + .long 1019823010 + .long 1385324704 + .long 1070305495 + .long 564511179 + .long 1016079094 + .long 2322869856 + .long 1070367935 + .long 2347103319 + .long 1018927760 + .long 3743438624 + .long 1070430165 + .long 877973862 + .long 1019638162 + .long 2392255552 + .long 1070492180 + .long 2432782267 + .long 1018872629 + .long 4180443328 + .long 1070553973 + .long 3102990015 + .long 1020093101 + .long 2547540832 + .long 1070636485 + .long 3877738253 + .long 1017300424 + .long 2735468912 + .long 1070697461 + .long 2446470256 + .long 1019235378 + .long 542633792 + .long 1070757943 + .long 583606328 + .long 1018624131 + .long 923265984 + .long 1070817911 + .long 1793926708 + .long 1019714161 + .long 918728448 + .long 1070877348 + .long 3726463586 + .long 1019433296 + .long 2572275008 + .long 1070936237 + .long 1845354238 + .long 1019459238 + .long 50974688 + .long 1070994564 + .long 983808064 + .long 1016685418 + .long 1105518320 + .long 1071052313 + .long 2357496692 + .long 1015139882 + .long 1264825328 + .long 1071109472 + .long 2244129354 + .long 1019046344 + .long 961157920 + .long 1071166029 + .long 3124185339 + .long 1018541776 + .long 1162701584 + .long 1071221973 + .long 1279780948 + .long 1019268918 + .long 3284935664 + .long 1071277294 + .long 2670033472 + .long 1019833744 + .long 497441888 + .long 1071331985 + .long 1032737410 + .long 1019795212 + .long 3377383904 + .long 1071386036 + .long 2356897182 + .long 1020205553 + .long 1126962000 + .long 1071439443 + .long 3723724586 + .long 1015212418 + .long 90291008 + .long 1071492199 + .long 4178672431 + .long 1020186971 + .long 190059536 + .long 1071595741 + .long 1763589807 + .long 1019162163 + .long 2497392840 + .long 1071670654 + .long 3036997041 + .long 1020204325 + .long 2616971944 + .long 1071719773 + .long 300151069 + .long 1017041957 + .long 2883518128 + .long 1071767563 + .long 2203981414 + .long 1019190108 + .long 1496354352 + .long 1071814030 + .long 332287966 + .long 1016846435 + .long 483276728 + .long 1071859184 + .long 653845024 + .long 1018830914 + .long 3097401072 + .long 1071903039 + .long 1514746408 + .long 1019278972 + .long 2737217248 + .long 1071945615 + .long 1358845067 + .long 1017268275 + .long 2072577560 + .long 1071986933 + .long 3041024735 + .long 1019929672 + .long 2266405656 + .long 1072027017 + .long 1271261130 + .long 1012925070 + .long 958652544 + .long 1072065894 + .long 2158017058 + .long 1019955372 + .long 3312993840 + .long 1072103591 + .long 765809169 + .long 1019114443 + .long 3177001304 + .long 1072140139 + .long 144180084 + .long 1019822186 + .long 3071642184 + .long 1072175568 + .long 4004602424 + .long 1019420740 + .long 4283953648 + .long 1072209909 + .long 1511950430 + .long 1020176966 + .long 1413754136 + .long 1072243195 + .long 856972295 + .long 1015129638 + .long 4073202944 + .long 1072306725 + .long 4068194804 + .long 1019714860 + .long 946117760 + .long 1072366415 + .long 694980733 + .long 1020150135 + .long 3980632032 + .long 1072422512 + .long 1313251280 + .long 1019948709 + .long 1468297112 + .long 1072475260 + .long 330111143 + .long 1019809198 + .long 3478063816 + .long 1072524887 + .long 2930067044 + .long 1017784081 + .long 1153979856 + .long 1072571613 + .long 2225786102 + .long 1017634481 + .long 2089828808 + .long 1072615641 + .long 474621367 + .long 1017043414 + .long 3531732632 + .long 1072657163 + .long 2276396220 + .long 1018757240 + .long 775214612 + .long 1072694803 + .long 3209744818 + .long 1019963015 + .long 662307284 + .long 1072713319 + .long 1381696763 + .long 1019763781 + .long 1192776652 + .long 1072730830 + .long 3017932994 + .long 1015179769 + .long 744202396 + .long 1072747407 + .long 2073854034 + .long 1019512292 + .long 8337908 + .long 1072763115 + .long 16004448 + .long 1019599514 + .long 3589868768 + .long 1072778013 + .long 1374369804 + .long 1018019237 + .long 121647320 + .long 1072792159 + .long 128481634 + .long 1018115438 + .long 2464923204 + .long 1072805601 + .long 1787331214 + .long 1016798022 + .long 4093304372 + .long 1072830562 + .long 3306868969 + .long 1019384078 + .long 1436891684 + .long 1072853231 + .long 676347266 + .long 1017302183 + .long 1104571840 + .long 1072873890 + .long 2870400285 + .long 1019938149 + .long 2037009832 + .long 1072892781 + .long 2956702105 + .long 1016472908 + .long 3139037960 + .long 1072910111 + .long 916057147 + .long 1018364335 + .long 1826698064 + .long 1072926058 + .long 2171961098 + .long 1019669816 + .long 1353941060 + .long 1072940774 + .long 1722928782 + .long 1019926215 + .long 1803191644 + .long 1072954391 + .long 1547878639 + .long 1020259262 + .long 1092591296 + .long 1072967024 + .long 3070107923 + .long 1018320401 + .long 2205372832 + .long 1072978772 + .long 787328196 + .long 1014621351 + .long 1291577100 + .long 1072989723 + .long 2964757301 + .long 1020242528 + .long 4234512804 + .long 1072999952 + .long 3136030038 + .long 1017522144 + .long 3248069132 + .long 1073009528 + .long 1506192355 + .long 1018050472 + .long 3932628500 + .long 1073018509 + .long 1045823554 + .long 1019946655 + .long 4195697848 + .long 1073026948 + .long 233443322 + .long 1018917447 + .long 2501811452 + .long 1073034892 + .long 901427976 + .long 1017333852 + .long 866379428 + .long 1073049455 + .long 2437443742 + .long 1019678792 + .long 1376865888 + .long 1073062480 + .long 3365790232 + .long 1014547152 + .long 3290094268 + .long 1073074195 + .long 3898947415 + .long 1018683566 + .long 354764884 + .long 1073084787 + .long 3854322404 + .long 1019662058 + .long 3332975496 + .long 1073094406 + .long 3171701655 + .long 1017830922 + .long 1141460088 + .long 1073103181 + .long 3946082701 + .long 1020032019 + .long 745761284 + .long 1073111216 + .long 1347210591 + .long 1019106121 + .long 1673304508 + .long 1073118600 + .long 1760606642 + .long 1017324577 + .long 983388240 + .long 1073125409 + .long 3740651204 + .long 1019514104 + .long 3895509100 + .long 1073131706 + .long 2409629983 + .long 1020069322 + .long 2128523668 + .long 1073137548 + .long 3045605368 + .long 1018579174 + .long 2075485692 + .long 1073142981 + .long 3720571789 + .long 1017557436 + .long 121855976 + .long 1073148047 + .long 2391744767 + .long 1020160645 + .long 4181733780 + .long 1073152780 + .long 995028816 + .long 1019681295 + .long 2887813280 + .long 1073157214 + .long 218733247 + .long 1020003509 + .long 2862180896 + .long 1073161375 + .long 2043806490 + .long 1018602288 + .long 3909375184 + .long 1073168973 + .long 1559903412 + .long 1020103444 + .long 3533966292 + .long 1073175738 + .long 734884149 + .long 1018462962 + .long 3815044608 + .long 1073181799 + .long 3630523428 + .long 1017250093 + .long 739639376 + .long 1073187261 + .long 4167476661 + .long 1020008277 + .long 1068309648 + .long 1073192207 + .long 2110061437 + .long 1019295858 + .long 2350566352 + .long 1073196707 + .long 582596516 + .long 1018568821 + .long 2529520024 + .long 1073200819 + .long 745552787 + .long 1019053165 + .long 1841667508 + .long 1073204591 + .long 3982568700 + .long 1016503327 + .long 2242261080 + .long 1073208063 + .long 3433582258 + .long 1016196763 + .long 715134328 + .long 1073211270 + .long 355901358 + .long 1020087916 + .long 2700735876 + .long 1073214240 + .long 3640957736 + .long 1019780205 + .long 141607580 + .long 1073217000 + .long 2488245051 + .long 1020262395 + .long 287934404 + .long 1073219570 + .long 2392691085 + .long 1019883292 + .long 2363373988 + .long 1073221969 + .long 4194561737 + .long 1019237447 + .long 3829340424 + .long 1073224214 + .long 429455526 + .long 1019490975 + .long 1988805928 + .long 1073226320 + .long 3029848706 + .long 1018104889 + .long 1647572320 + .long 1073230161 + .long 10289938 + .long 1017394880 + .long 3988000624 + .long 1073233576 + .long 1957559169 + .long 1019434816 + .long 4263843944 + .long 1073236633 + .long 204710264 + .long 1019908761 + .long 663197724 + .long 1073239386 + .long 1921757578 + .long 1019778948 + .long 3560800700 + .long 1073241876 + .long 3994348896 + .long 1019230192 + .long 2441785656 + .long 1073244141 + .long 871468611 + .long 1014800505 + .long 3277400272 + .long 1073246209 + .long 4092218139 + .long 1020040842 + .long 3951990120 + .long 1073248105 + .long 4276546478 + .long 1019763677 + .long 2737338540 + .long 1073249850 + .long 252776012 + .long 1018794951 + .long 1511361316 + .long 1073251461 + .long 3119653999 + .long 1018514803 + .long 3969162516 + .long 1073252952 + .long 1037069016 + .long 1016792900 + .long 413985240 + .long 1073254338 + .long 4110171432 + .long 1020001345 + .long 3681283576 + .long 1073255627 + .long 1463092818 + .long 1020260354 + .long 3146455488 + .long 1073256831 + .long 1031209123 + .long 1016554799 + .long 95214512 + .long 1073257958 + .long 1373808632 + .long 1019493031 + .long 4250240828 + .long 1073259013 + .long 3891047882 + .long 1020108730 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 1413754136 + .long 1074340347 + .long 856972295 + .long 1017226790 + .long 1413754136 + .long 1072243195 + .long 856972295 + .long 1015129638 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1413754136 + .long 1074340347 + .long 856972295 + .long 1017226790 + .long 1413754136 + .long 3221823995 + .long 856972295 + .long 3164710438 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 856972295 + .long 1017226790 + .long 1413754136 + .long 1074340347 + .long 856972295 + .long 3164710438 + .long 1413754136 + .long 3221823995 + .long 0 + .long 0 + .long 4294967295 + .long 4294967295 + .long 0 + .long 0 + .long 4294967295 + .long 4294967295 + .long 4294967295 + .long 4294967295 + .long 0 + .long 0 + .long 4294967295 + .long 4294967295 + .long 0 + .long 0 + .long 2006262985 + .long 1069310863 + .long 2358449471 + .long 3217342131 + .long 3845454352 + .long 1069952297 + .long 2829679149 + .long 1073771565 + .long 4294967295 + .long 2148532223 + .long 0 + .long 0 + .long 0 + .long 1130364928 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .type static_const_table,@object + .size static_const_table,3024 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/e_cosh.S b/libm/x86/e_cosh.S new file mode 100644 index 000000000..ecea8f478 --- /dev/null +++ b/libm/x86/e_cosh.S @@ -0,0 +1,1349 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// cosh(x)=(exp(x)+exp(-x))/2 +// +// Let |x|=xH+xL (upper 26 bits, lower 27 bits) +// log2(e) rounded to 26 bits (high part) plus a double precision low part is +// L2EH+L2EL (upper 26, lower 53 bits) +// +// Let xH*L2EH=k+f+r`, where (k+f)*2^7=int(xH*L2EH*2^7), +// f=0.b1 b2 ... b7, k integer +// 2^f is approximated as Tp[f]+Dp[f], and 2^{-f} as Tn[f]+Dn[f] +// Tp stores higher 53 bits, Dp stores (2^f-Tp[f]) rounded to double precision +// +// e^|x|=2^{k+f}*2^r, r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-8}+2^{-14}, +// for |x| in [1/8,3*2^8) +// e^{-|x|}=2^{-k-f}*2^{-r} +// +// e^|x| is approximated as 2^k*Tp+2^k*Tp*c1*r(1+c2*r+..+c5*r^4)+2^k*Dp= +// =2^k*Tp+2^k*Tp*P15+2^k*Dp +// e^{-|x|} approximated as 2^{-k}*Tn-2^{-k}*Tn*c1*r(1-c2*r+..+c5*r^4) +// +// For |x| in [1/8, 3*2^7), cosh(x) is formed as +// RN(2^k*Tp+2^{-k}*Tn)+2^k*Tp*P15+2^{-k}*Tn*P`15+2^{-k}*TnL+2^{-k}*Dn+2^k*Dp +// +// For |x| in [3*2^7, 3*2^8), (e^|x|)/2 is returned, and +// the result is checked for overflow. +// +// For |x|<1/8, a Taylor polynomial expansion is used (degree 10) +// (error bound for polynomial expansion is below 0.501 ulp) +// +// Special cases: +// cosh(NaN) = quiet NaN, and raise invalid exception +// cosh(INF) = that INF +// cosh(0)=1 +// for finite argument, only cosh(0)=1 is exact +// For IEEE double +// cosh(x) overflows +// for x > 710.47586007394386342639336362481117248535156250 = MAXLOG+log(2) +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin cosh +ENTRY(cosh) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $104, %esp + movl %ebx, 40(%esp) + call static_func + movl %eax, %ebx + movsd 112(%esp), %xmm0 + movsd 4240(%ebx), %xmm3 + xorpd %xmm4, %xmm4 + movsd 4192(%ebx), %xmm1 + movsd 4200(%ebx), %xmm2 + movl $32768, %eax + pinsrw $3, %eax, %xmm4 + movsd 4096(%ebx), %xmm6 + pextrw $3, %xmm0, %ecx + andpd %xmm0, %xmm3 + andnpd %xmm0, %xmm4 + pshufd $68, %xmm4, %xmm5 + andl $32767, %ecx + subl $16320, %ecx + cmpl $200, %ecx + jae .L_2TAG_PACKET_0.0.2 + subsd %xmm3, %xmm4 + mulsd %xmm1, %xmm3 + mulsd %xmm5, %xmm2 + cvtsd2si %xmm3, %eax + movapd %xmm3, %xmm7 + addsd %xmm6, %xmm3 + mulsd %xmm4, %xmm1 + xorpd %xmm5, %xmm5 + subsd %xmm6, %xmm3 + movapd 4112(%ebx), %xmm4 + addsd %xmm1, %xmm2 + movapd 4128(%ebx), %xmm6 + subsd %xmm3, %xmm7 + movl $32704, %edx + pinsrw $3, %edx, %xmm5 + movapd 4144(%ebx), %xmm1 + addsd %xmm7, %xmm2 + movl $127, %edx + andl %eax, %edx + addl %edx, %edx + shrl $3, %eax + andl $65520, %eax + addl $16352, %eax + xorpd %xmm0, %xmm0 + cmpl $184, %ecx + jae .L_2TAG_PACKET_1.0.2 + pshufd $68, %xmm5, %xmm5 + pinsrw $3, %eax, %xmm0 + pshufd $68, %xmm0, %xmm0 + psubw %xmm0, %xmm5 + mulpd (%ebx,%edx,8), %xmm0 + mulpd 2048(%ebx,%edx,8), %xmm5 + pshufd $68, %xmm2, %xmm3 + movapd 4160(%ebx), %xmm7 + pshufd $68, %xmm2, %xmm2 + mulpd %xmm3, %xmm3 + mulpd %xmm2, %xmm4 + mulpd %xmm2, %xmm6 + mulpd 4176(%ebx), %xmm2 + mulpd %xmm3, %xmm1 + mulpd %xmm3, %xmm7 + mulpd %xmm3, %xmm4 + mulpd %xmm3, %xmm1 + addpd %xmm7, %xmm6 + movapd %xmm0, %xmm7 + addpd %xmm1, %xmm4 + shufpd $0, %xmm5, %xmm7 + addpd %xmm5, %xmm0 + mulpd %xmm7, %xmm2 + addpd %xmm6, %xmm4 + subsd %xmm0, %xmm7 + mulpd %xmm2, %xmm4 + pshufd $238, %xmm0, %xmm6 + addsd %xmm5, %xmm7 + addpd %xmm2, %xmm4 + addsd %xmm6, %xmm7 + pshufd $238, %xmm4, %xmm2 + addsd %xmm7, %xmm2 + addsd %xmm4, %xmm2 + addsd %xmm2, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_0.0.2: + addl $16320, %ecx + cmpl $16320, %ecx + ja .L_2TAG_PACKET_3.0.2 + cmpl $15952, %ecx + jae .L_2TAG_PACKET_4.0.2 + addsd %xmm2, %xmm6 + movsd 4248(%ebx), %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_1.0.2: + subl $16352, %eax + movl %eax, %ecx + andl $32752, %eax + shrl $1, %eax + andl $65520, %eax + subl %eax, %ecx + addl $16352, %eax + pinsrw $3, %eax, %xmm0 + pshufd $68, %xmm0, %xmm0 + mulpd (%ebx,%edx,8), %xmm0 + pshufd $68, %xmm2, %xmm3 + movsd 4160(%ebx), %xmm7 + mulsd %xmm3, %xmm3 + mulsd %xmm2, %xmm4 + mulsd %xmm2, %xmm6 + mulsd 4176(%ebx), %xmm2 + mulsd %xmm3, %xmm1 + mulsd %xmm3, %xmm7 + mulsd %xmm3, %xmm4 + addl $16368, %ecx + pinsrw $3, %ecx, %xmm5 + mulsd %xmm3, %xmm1 + addsd %xmm7, %xmm6 + addsd %xmm1, %xmm4 + mulsd %xmm0, %xmm2 + addsd %xmm6, %xmm4 + mulsd %xmm2, %xmm4 + pshufd $238, %xmm0, %xmm6 + addsd %xmm6, %xmm4 + addsd %xmm4, %xmm2 + addsd %xmm2, %xmm0 + mulsd %xmm5, %xmm0 + pextrw $3, %xmm0, %eax + andl $32752, %eax + movl $64, %edx + cmpl $32752, %eax + je .L_2TAG_PACKET_5.0.2 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_4.0.2: + movapd 4208(%ebx), %xmm1 + mulpd %xmm5, %xmm5 + movapd 4224(%ebx), %xmm2 + xorpd %xmm3, %xmm3 + movapd %xmm5, %xmm0 + mulpd %xmm5, %xmm1 + movsd 4248(%ebx), %xmm6 + mulpd %xmm5, %xmm5 + movl $16352, %eax + pinsrw $3, %eax, %xmm3 + addpd %xmm2, %xmm1 + mulpd %xmm5, %xmm1 + pshufd $238, %xmm1, %xmm2 + mulsd %xmm1, %xmm5 + mulsd %xmm3, %xmm0 + addsd %xmm5, %xmm2 + addsd %xmm2, %xmm0 + addsd %xmm6, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_3.0.2: + cmpl $32752, %ecx + jae .L_2TAG_PACKET_6.0.2 + xorpd %xmm0, %xmm0 + movl $32736, %eax + pinsrw $3, %eax, %xmm0 + mulsd %xmm0, %xmm0 + movl $64, %edx +.L_2TAG_PACKET_5.0.2: + movsd %xmm0, (%esp) + movsd 112(%esp), %xmm0 + fldl (%esp) + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_6.0.2: + mulsd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_2.0.2: + movsd %xmm0, 24(%esp) + fldl 24(%esp) +.L_2TAG_PACKET_7.0.2: + movl 40(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(cosh) +# -- End cosh + +# Start file scope ASM +ALIAS_SYMBOL(coshl, cosh); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 2851812149 + .long 1072698941 + .long 2595802551 + .long 1016815913 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 3899555717 + .long 1072710421 + .long 427280750 + .long 3163595548 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 702412510 + .long 1072722027 + .long 3803266087 + .long 3163328991 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 3402036099 + .long 1072733758 + .long 405889334 + .long 1016154232 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 728909815 + .long 1072745618 + .long 383930225 + .long 1016078044 + .long 852742562 + .long 1072751596 + .long 667253586 + .long 1010842135 + .long 2952712987 + .long 1072757606 + .long 3293494651 + .long 3161168877 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 3228316108 + .long 1072769725 + .long 3010241991 + .long 3159471380 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 3366293073 + .long 1072781976 + .long 3119426314 + .long 1015169130 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 948735466 + .long 1072794361 + .long 3516338028 + .long 3163623459 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 2214878420 + .long 1072806880 + .long 892270087 + .long 3164164998 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 586995997 + .long 1072819536 + .long 41662348 + .long 3163676568 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 2440944790 + .long 1072832329 + .long 2492769774 + .long 1015196030 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 1337108031 + .long 1072845262 + .long 3203724452 + .long 1015726421 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 3790955393 + .long 1072858335 + .long 2352942462 + .long 3164228666 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 3504003472 + .long 1072871551 + .long 3594001060 + .long 3158379228 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 2839424854 + .long 1072884911 + .long 1171596163 + .long 1014090255 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 4232894513 + .long 1072898416 + .long 2383938684 + .long 1015717095 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 1603444721 + .long 1072912069 + .long 1548633640 + .long 3163249902 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 1829099622 + .long 1072925870 + .long 1016661181 + .long 3164509581 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 3272845541 + .long 1072939821 + .long 928852419 + .long 3164536824 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 78413852 + .long 1072953925 + .long 4183226867 + .long 3164065827 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 3645941911 + .long 1072968181 + .long 3814685081 + .long 3162621917 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 3978100823 + .long 1072982593 + .long 3513027190 + .long 1016894539 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 4040676318 + .long 1072997162 + .long 4090609238 + .long 1016712034 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 2583551245 + .long 1073011890 + .long 3161094195 + .long 1016655067 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 2731501122 + .long 1073026778 + .long 1774031855 + .long 3163518597 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 3395129871 + .long 1073041828 + .long 4025345435 + .long 3163383964 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3566716925 + .long 1073057042 + .long 1536826856 + .long 1015191009 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 2321106615 + .long 1073072422 + .long 2171176610 + .long 1010584347 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 3111574537 + .long 1073087969 + .long 2606161479 + .long 3163808322 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 885834528 + .long 1073103686 + .long 1973258547 + .long 3163310140 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 3561793907 + .long 1073119573 + .long 1157054053 + .long 1012938926 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 1963711167 + .long 1073135634 + .long 1744767757 + .long 3161622870 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 4182873220 + .long 1073151869 + .long 629542646 + .long 3163044879 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 1218806132 + .long 1073168282 + .long 1818613052 + .long 3163597017 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 1339972927 + .long 1073184873 + .long 167908909 + .long 1016620728 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 19972402 + .long 1073201645 + .long 3507899862 + .long 1017057868 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 1413356050 + .long 1073218599 + .long 1651349291 + .long 3163716742 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 1176749997 + .long 1073235738 + .long 2738998779 + .long 3163084420 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 3649726105 + .long 1073253063 + .long 4085036346 + .long 1016698050 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 380978316 + .long 1073270578 + .long 854188970 + .long 3161511262 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 194117574 + .long 1073288283 + .long 777528612 + .long 3164460665 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 3418903055 + .long 1073306180 + .long 2527457337 + .long 3161869180 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 1892288442 + .long 1073324273 + .long 2446255666 + .long 3163648957 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 434316067 + .long 1073342563 + .long 2028358766 + .long 1014506698 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 3964284211 + .long 1073361051 + .long 2111583915 + .long 1016475740 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 321958744 + .long 1073379742 + .long 3401933767 + .long 1016843134 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 3218338682 + .long 1073398635 + .long 3404164304 + .long 3163525684 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 697153126 + .long 1073417735 + .long 1283515429 + .long 3164331765 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 2380618042 + .long 1073437042 + .long 3149557219 + .long 3164369375 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 815859274 + .long 1073456560 + .long 240396590 + .long 3164536019 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 1540824585 + .long 1073476290 + .long 1064017011 + .long 3164536266 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 1610600570 + .long 1073496235 + .long 3766732298 + .long 1016808759 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 2483480501 + .long 1073516397 + .long 1216371780 + .long 1014082748 + .long 3706687593 + .long 1073526560 + .long 3521726940 + .long 1014301643 + .long 1432208378 + .long 1073536779 + .long 1401068914 + .long 3163412539 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 135105010 + .long 1073557383 + .long 1906148728 + .long 3164424315 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 382305176 + .long 1073578211 + .long 2347622376 + .long 3163627201 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 4076975200 + .long 1073599265 + .long 2029000899 + .long 1016257111 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 351641897 + .long 1073620550 + .long 2172261526 + .long 3164059175 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 4224142467 + .long 1073642065 + .long 3389820386 + .long 1016255778 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 764307441 + .long 1073663816 + .long 3021057420 + .long 3164378099 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 929806999 + .long 1073685803 + .long 3205336643 + .long 1016308133 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2912730644 + .long 1073708029 + .long 3490067722 + .long 3164453650 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 730821105 + .long 1073730498 + .long 2523232743 + .long 1013115764 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 730821105 + .long 1072681922 + .long 2523232743 + .long 1012067188 + .long 2174652632 + .long 1072670657 + .long 4087714590 + .long 1014450259 + .long 2912730644 + .long 1072659453 + .long 3490067722 + .long 3163405074 + .long 1533953344 + .long 1072648310 + .long 769171851 + .long 1015665633 + .long 929806999 + .long 1072637227 + .long 3205336643 + .long 1015259557 + .long 3999357479 + .long 1072626203 + .long 2258941616 + .long 1015924724 + .long 764307441 + .long 1072615240 + .long 3021057420 + .long 3163329523 + .long 2728693978 + .long 1072604335 + .long 396109971 + .long 3163462691 + .long 4224142467 + .long 1072593489 + .long 3389820386 + .long 1015207202 + .long 3884662774 + .long 1072582702 + .long 2158611599 + .long 1014210185 + .long 351641897 + .long 1072571974 + .long 2172261526 + .long 3163010599 + .long 863738719 + .long 1072561303 + .long 1326992220 + .long 3162613197 + .long 4076975200 + .long 1072550689 + .long 2029000899 + .long 1015208535 + .long 64696965 + .long 1072540134 + .long 1768797490 + .long 1015816960 + .long 382305176 + .long 1072529635 + .long 2347622376 + .long 3162578625 + .long 3707479175 + .long 1072519192 + .long 3613079303 + .long 1014164738 + .long 135105010 + .long 1072508807 + .long 1906148728 + .long 3163375739 + .long 1242007932 + .long 1072498477 + .long 1132034716 + .long 3163339831 + .long 1432208378 + .long 1072488203 + .long 1401068914 + .long 3162363963 + .long 3706687593 + .long 1072477984 + .long 3521726940 + .long 1013253067 + .long 2483480501 + .long 1072467821 + .long 1216371780 + .long 1013034172 + .long 777507147 + .long 1072457713 + .long 4282924205 + .long 1015187533 + .long 1610600570 + .long 1072447659 + .long 3766732298 + .long 1015760183 + .long 3716502172 + .long 1072437659 + .long 2303740125 + .long 1014042725 + .long 1540824585 + .long 1072427714 + .long 1064017011 + .long 3163487690 + .long 2420883922 + .long 1072417822 + .long 2049810052 + .long 1014119888 + .long 815859274 + .long 1072407984 + .long 240396590 + .long 3163487443 + .long 4076559943 + .long 1072398198 + .long 2119478331 + .long 3160758351 + .long 2380618042 + .long 1072388466 + .long 3149557219 + .long 3163320799 + .long 3092190715 + .long 1072378786 + .long 814012168 + .long 3159523422 + .long 697153126 + .long 1072369159 + .long 1283515429 + .long 3163283189 + .long 2572866477 + .long 1072359583 + .long 878562433 + .long 1015521741 + .long 3218338682 + .long 1072350059 + .long 3404164304 + .long 3162477108 + .long 1434058175 + .long 1072340587 + .long 251133233 + .long 1015085769 + .long 321958744 + .long 1072331166 + .long 3401933767 + .long 1015794558 + .long 2990417245 + .long 1072321795 + .long 3683467745 + .long 3163369326 + .long 3964284211 + .long 1072312475 + .long 2111583915 + .long 1015427164 + .long 2069751141 + .long 1072303206 + .long 1562170675 + .long 3162724681 + .long 434316067 + .long 1072293987 + .long 2028358766 + .long 1013458122 + .long 2191782032 + .long 1072284817 + .long 2960257726 + .long 1013742662 + .long 1892288442 + .long 1072275697 + .long 2446255666 + .long 3162600381 + .long 2682146384 + .long 1072266626 + .long 2082178513 + .long 3163363419 + .long 3418903055 + .long 1072257604 + .long 2527457337 + .long 3160820604 + .long 2966275557 + .long 1072248631 + .long 2176155324 + .long 3159842759 + .long 194117574 + .long 1072239707 + .long 777528612 + .long 3163412089 + .long 2568320822 + .long 1072230830 + .long 2732824428 + .long 1014352915 + .long 380978316 + .long 1072222002 + .long 854188970 + .long 3160462686 + .long 1110089947 + .long 1072213221 + .long 1451641639 + .long 1015474673 + .long 3649726105 + .long 1072204487 + .long 4085036346 + .long 1015649474 + .long 2604962541 + .long 1072195801 + .long 2614425274 + .long 3163539192 + .long 1176749997 + .long 1072187162 + .long 2738998779 + .long 3162035844 + .long 2571947539 + .long 1072178569 + .long 3558159064 + .long 3163376669 + .long 1413356050 + .long 1072170023 + .long 1651349291 + .long 3162668166 + .long 919555682 + .long 1072161523 + .long 3121969534 + .long 1012948226 + .long 19972402 + .long 1072153069 + .long 3507899862 + .long 1016009292 + .long 1944781191 + .long 1072144660 + .long 3993278767 + .long 3161724279 + .long 1339972927 + .long 1072136297 + .long 167908909 + .long 1015572152 + .long 1447192521 + .long 1072127979 + .long 1462857171 + .long 3162514521 + .long 1218806132 + .long 1072119706 + .long 1818613052 + .long 3162548441 + .long 3907805044 + .long 1072111477 + .long 2257091225 + .long 3161550407 + .long 4182873220 + .long 1072103293 + .long 629542646 + .long 3161996303 + .long 1013258799 + .long 1072095154 + .long 1748797611 + .long 3160129082 + .long 1963711167 + .long 1072087058 + .long 1744767757 + .long 3160574294 + .long 1719614413 + .long 1072079006 + .long 330458198 + .long 3163282740 + .long 3561793907 + .long 1072070997 + .long 1157054053 + .long 1011890350 + .long 2186617381 + .long 1072063032 + .long 2270764084 + .long 3163272713 + .long 885834528 + .long 1072055110 + .long 1973258547 + .long 3162261564 + .long 2956612997 + .long 1072047230 + .long 2118169751 + .long 3162735553 + .long 3111574537 + .long 1072039393 + .long 2606161479 + .long 3162759746 + .long 363667784 + .long 1072031599 + .long 813753950 + .long 1015785209 + .long 2321106615 + .long 1072023846 + .long 2171176610 + .long 1009535771 + .long 3712504873 + .long 1072016135 + .long 88491949 + .long 1015427660 + .long 3566716925 + .long 1072008466 + .long 1536826856 + .long 1014142433 + .long 917841882 + .long 1072000839 + .long 18715565 + .long 1015659308 + .long 3395129871 + .long 1071993252 + .long 4025345435 + .long 3162335388 + .long 1453150082 + .long 1071985707 + .long 498154669 + .long 3161488062 + .long 2731501122 + .long 1071978202 + .long 1774031855 + .long 3162470021 + .long 1990012071 + .long 1071970738 + .long 3529070563 + .long 3162813193 + .long 2583551245 + .long 1071963314 + .long 3161094195 + .long 1015606491 + .long 3577096743 + .long 1071955930 + .long 2951496418 + .long 1013793687 + .long 4040676318 + .long 1071948586 + .long 4090609238 + .long 1015663458 + .long 3049340112 + .long 1071941282 + .long 3062915824 + .long 1013170595 + .long 3978100823 + .long 1071934017 + .long 3513027190 + .long 1015845963 + .long 1617004845 + .long 1071926792 + .long 82804944 + .long 1010342778 + .long 3645941911 + .long 1071919605 + .long 3814685081 + .long 3161573341 + .long 569847338 + .long 1071912458 + .long 472945272 + .long 3159290729 + .long 78413852 + .long 1071905349 + .long 4183226867 + .long 3163017251 + .long 1276261410 + .long 1071898278 + .long 300981948 + .long 1014684169 + .long 3272845541 + .long 1071891245 + .long 928852419 + .long 3163488248 + .long 887463927 + .long 1071884251 + .long 3596744163 + .long 3160794166 + .long 1829099622 + .long 1071877294 + .long 1016661181 + .long 3163461005 + .long 926591435 + .long 1071870375 + .long 3208833762 + .long 3162913514 + .long 1603444721 + .long 1071863493 + .long 1548633640 + .long 3162201326 + .long 2992903935 + .long 1071856648 + .long 2218154406 + .long 1015228193 + .long 4232894513 + .long 1071849840 + .long 2383938684 + .long 1014668519 + .long 171030293 + .long 1071843070 + .long 3526460132 + .long 1014428778 + .long 2839424854 + .long 1071836335 + .long 1171596163 + .long 1013041679 + .long 2799960843 + .long 1071829637 + .long 1423655381 + .long 1015022151 + .long 3504003472 + .long 1071822975 + .long 3594001060 + .long 3157330652 + .long 4112506593 + .long 1071816349 + .long 2947355221 + .long 1014371048 + .long 3790955393 + .long 1071809759 + .long 2352942462 + .long 3163180090 + .long 1709341917 + .long 1071803205 + .long 2571168217 + .long 1014152499 + .long 1337108031 + .long 1071796686 + .long 3203724452 + .long 1014677845 + .long 1853186616 + .long 1071790202 + .long 3066496371 + .long 1015656574 + .long 2440944790 + .long 1071783753 + .long 2492769774 + .long 1014147454 + .long 2288159958 + .long 1071777339 + .long 2169144469 + .long 1014876021 + .long 586995997 + .long 1071770960 + .long 41662348 + .long 3162627992 + .long 828946858 + .long 1071764615 + .long 10642492 + .long 1015939438 + .long 2214878420 + .long 1071758304 + .long 892270087 + .long 3163116422 + .long 3949972341 + .long 1071752027 + .long 2068408548 + .long 1014913868 + .long 948735466 + .long 1071745785 + .long 3516338028 + .long 3162574883 + .long 1014845819 + .long 1071739576 + .long 3117910646 + .long 3161559105 + .long 3366293073 + .long 1071733400 + .long 3119426314 + .long 1014120554 + .long 2930322912 + .long 1071727258 + .long 2599499422 + .long 3162714047 + .long 3228316108 + .long 1071721149 + .long 3010241991 + .long 3158422804 + .long 3490863953 + .long 1071715073 + .long 960797498 + .long 3162948880 + .long 2952712987 + .long 1071709030 + .long 3293494651 + .long 3160120301 + .long 852742562 + .long 1071703020 + .long 667253586 + .long 1009793559 + .long 728909815 + .long 1071697042 + .long 383930225 + .long 1015029468 + .long 1828292879 + .long 1071691096 + .long 1255956747 + .long 1015588398 + .long 3402036099 + .long 1071685182 + .long 405889334 + .long 1015105656 + .long 410360776 + .long 1071679301 + .long 1269990655 + .long 1011975870 + .long 702412510 + .long 1071673451 + .long 3803266087 + .long 3162280415 + .long 3541402996 + .long 1071667632 + .long 2759177317 + .long 1014854626 + .long 3899555717 + .long 1071661845 + .long 427280750 + .long 3162546972 + .long 1048019041 + .long 1071656090 + .long 1398474845 + .long 3160510595 + .long 2851812149 + .long 1071650365 + .long 2595802551 + .long 1015767337 + .long 0 + .long 1127743488 + .long 0 + .long 3275227136 + .long 3607404736 + .long 1044146952 + .long 3607404736 + .long 3191630600 + .long 4277811695 + .long 1063661122 + .long 4277811695 + .long 3211144770 + .long 2140175755 + .long 1033864261 + .long 2140175755 + .long 1033864261 + .long 4289495988 + .long 1054113747 + .long 4289495988 + .long 1054113747 + .long 4277811695 + .long 1064709698 + .long 4277811695 + .long 3212193346 + .long 1610612736 + .long 1080497479 + .long 4166901572 + .long 1053077003 + .long 3078135644 + .long 1049787983 + .long 381774870 + .long 1062650220 + .long 436314137 + .long 1056571808 + .long 1431655765 + .long 1067799893 + .long 4160749568 + .long 2147483647 + .long 0 + .long 1072693248 + .type static_const_table,@object + .size static_const_table,4256 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/e_exp.S b/libm/x86/e_exp.S new file mode 100644 index 000000000..eab619d85 --- /dev/null +++ b/libm/x86/e_exp.S @@ -0,0 +1,576 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Description: +// Let K = 64 (table size). +// x x/log(2) n +// e = 2 = 2 * T[j] * (1 + P(y)) +// where +// x = m*log(2)/K + y, y in [-log(2)/K..log(2)/K] +// m = n*K + j, m,n,j - signed integer, j in [-K/2..K/2] +// j/K +// values of 2 are tabulated as T[j] = T_hi[j] ( 1 + T_lo[j]). +// +// P(y) is a minimax polynomial approximation of exp(x)-1 +// on small interval [-log(2)/K..log(2)/K] (were calculated by Maple V). +// +// To avoid problems with arithmetic overflow and underflow, +// n n1 n2 +// value of 2 is safely computed as 2 * 2 where n1 in [-BIAS/2..BIAS/2] +// where BIAS is a value of exponent bias. +// +// Special cases: +// exp(NaN) = NaN +// exp(+INF) = +INF +// exp(-INF) = 0 +// exp(x) = 1 for subnormals +// for finite argument, only exp(0)=1 is exact +// For IEEE double +// if x > 709.782712893383973096 then exp(x) overflow +// if x < -745.133219101941108420 then exp(x) underflow +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin exp +ENTRY(exp) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $120, %esp + movl %ebx, 64(%esp) + call static_func + movl %eax, %ebx + movsd 128(%esp), %xmm0 + unpcklpd %xmm0, %xmm0 + movapd 64(%ebx), %xmm1 + movapd 48(%ebx), %xmm6 + movapd 80(%ebx), %xmm2 + movapd 96(%ebx), %xmm3 + pextrw $3, %xmm0, %eax + andl $32767, %eax + movl $16527, %edx + subl %eax, %edx + subl $15504, %eax + orl %eax, %edx + cmpl $-2147483648, %edx + jae .L_2TAG_PACKET_0.0.2 + mulpd %xmm0, %xmm1 + addpd %xmm6, %xmm1 + movapd %xmm1, %xmm7 + subpd %xmm6, %xmm1 + mulpd %xmm1, %xmm2 + movapd 128(%ebx), %xmm4 + mulpd %xmm1, %xmm3 + movapd 144(%ebx), %xmm5 + subpd %xmm2, %xmm0 + movd %xmm7, %eax + movl %eax, %ecx + andl $63, %ecx + shll $4, %ecx + sarl $6, %eax + movl %eax, %edx + movdqa 16(%ebx), %xmm6 + pand %xmm6, %xmm7 + movdqa 32(%ebx), %xmm6 + paddq %xmm6, %xmm7 + psllq $46, %xmm7 + subpd %xmm3, %xmm0 + movapd 160(%ebx,%ecx), %xmm2 + mulpd %xmm0, %xmm4 + movapd %xmm0, %xmm6 + movapd %xmm0, %xmm1 + mulpd %xmm6, %xmm6 + mulpd %xmm6, %xmm0 + addpd %xmm4, %xmm5 + mulsd %xmm6, %xmm0 + mulpd 112(%ebx), %xmm6 + addsd %xmm2, %xmm1 + unpckhpd %xmm2, %xmm2 + mulpd %xmm5, %xmm0 + addsd %xmm0, %xmm1 + orpd %xmm7, %xmm2 + unpckhpd %xmm0, %xmm0 + addsd %xmm1, %xmm0 + addsd %xmm6, %xmm0 + addl $894, %edx + cmpl $1916, %edx + ja .L_2TAG_PACKET_1.0.2 + mulsd %xmm2, %xmm0 + addsd %xmm2, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_1.0.2: + fstcw 24(%esp) + movzwl 24(%esp), %edx + orl $768, %edx + movw %dx, 28(%esp) + fldcw 28(%esp) + movl %eax, %edx + sarl $1, %eax + subl %eax, %edx + movdqa (%ebx), %xmm6 + pandn %xmm2, %xmm6 + addl $1023, %eax + movd %eax, %xmm3 + psllq $52, %xmm3 + orpd %xmm3, %xmm6 + addl $1023, %edx + movd %edx, %xmm4 + psllq $52, %xmm4 + movsd %xmm0, 8(%esp) + fldl 8(%esp) + movsd %xmm6, 16(%esp) + fldl 16(%esp) + fmul %st, %st(1) + faddp %st, %st(1) + movsd %xmm4, 8(%esp) + fldl 8(%esp) + fmulp %st, %st(1) + fstpl 8(%esp) + movsd 8(%esp), %xmm0 + fldcw 24(%esp) + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + cmpl $32752, %ecx + jae .L_2TAG_PACKET_3.0.2 + cmpl $0, %ecx + je .L_2TAG_PACKET_4.0.2 + jmp .L_2TAG_PACKET_2.0.2 + cmpl $-2147483648, %ecx + jb .L_2TAG_PACKET_3.0.2 + cmpl $-1064950997, %ecx + jb .L_2TAG_PACKET_2.0.2 + ja .L_2TAG_PACKET_4.0.2 + movl 128(%esp), %edx + cmpl $-17155601, %edx + jb .L_2TAG_PACKET_2.0.2 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_3.0.2: + movl $14, %edx + jmp .L_2TAG_PACKET_5.0.2 +.L_2TAG_PACKET_4.0.2: + movl $15, %edx +.L_2TAG_PACKET_5.0.2: + movsd %xmm0, (%esp) + movsd 128(%esp), %xmm0 + fldl (%esp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_7.0.2: + cmpl $2146435072, %eax + jae .L_2TAG_PACKET_8.0.2 + movl 132(%esp), %eax + cmpl $-2147483648, %eax + jae .L_2TAG_PACKET_9.0.2 + movsd 1208(%ebx), %xmm0 + mulsd %xmm0, %xmm0 + movl $14, %edx + jmp .L_2TAG_PACKET_5.0.2 +.L_2TAG_PACKET_9.0.2: + movsd 1216(%ebx), %xmm0 + mulsd %xmm0, %xmm0 + movl $15, %edx + jmp .L_2TAG_PACKET_5.0.2 +.L_2TAG_PACKET_8.0.2: + movl 128(%esp), %edx + cmpl $2146435072, %eax + ja .L_2TAG_PACKET_10.0.2 + cmpl $0, %edx + jne .L_2TAG_PACKET_10.0.2 + movl 132(%esp), %eax + cmpl $2146435072, %eax + jne .L_2TAG_PACKET_11.0.2 + movsd 1192(%ebx), %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_11.0.2: + movsd 1200(%ebx), %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_10.0.2: + movsd 128(%esp), %xmm0 + addsd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_0.0.2: + movl 132(%esp), %eax + andl $2147483647, %eax + cmpl $1083179008, %eax + jae .L_2TAG_PACKET_7.0.2 + movsd 128(%esp), %xmm0 + addsd 1184(%ebx), %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_2.0.2: + movsd %xmm0, 48(%esp) + fldl 48(%esp) +.L_2TAG_PACKET_6.0.2: + movl 64(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(exp) +# -- End exp + +# Start file scope ASM +ALIAS_SYMBOL(expl, exp); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 4293918720 + .long 0 + .long 4293918720 + .long 4294967232 + .long 0 + .long 4294967232 + .long 0 + .long 65472 + .long 0 + .long 65472 + .long 0 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 1697350398 + .long 1079448903 + .long 1697350398 + .long 1079448903 + .long 4277796864 + .long 1065758274 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 3164486458 + .long 1025308570 + .long 4294967294 + .long 1071644671 + .long 4294967294 + .long 1071644671 + .long 3811088480 + .long 1062650204 + .long 1432067621 + .long 1067799893 + .long 3230715663 + .long 1065423125 + .long 1431604129 + .long 1069897045 + .long 0 + .long 0 + .long 0 + .long 0 + .long 235107661 + .long 1018002367 + .long 1048019040 + .long 11418 + .long 896005651 + .long 1015861842 + .long 3541402996 + .long 22960 + .long 1642514529 + .long 1012987726 + .long 410360776 + .long 34629 + .long 1568897900 + .long 1016568486 + .long 1828292879 + .long 46424 + .long 1882168529 + .long 1010744893 + .long 852742562 + .long 58348 + .long 509852888 + .long 1017336174 + .long 3490863952 + .long 70401 + .long 653277307 + .long 1017431380 + .long 2930322911 + .long 82586 + .long 1649557430 + .long 1017729363 + .long 1014845818 + .long 94904 + .long 1058231231 + .long 1015777676 + .long 3949972341 + .long 107355 + .long 1044000607 + .long 1016786167 + .long 828946858 + .long 119943 + .long 1151779725 + .long 1015705409 + .long 2288159958 + .long 132667 + .long 3819481236 + .long 1016499965 + .long 1853186616 + .long 145530 + .long 2552227826 + .long 1015039787 + .long 1709341917 + .long 158533 + .long 1829350193 + .long 1015216097 + .long 4112506593 + .long 171677 + .long 1913391795 + .long 1015756674 + .long 2799960843 + .long 184965 + .long 1303423926 + .long 1015238005 + .long 171030293 + .long 198398 + .long 1574172746 + .long 1016061241 + .long 2992903935 + .long 211976 + .long 3424156969 + .long 1017196428 + .long 926591434 + .long 225703 + .long 1938513547 + .long 1017631273 + .long 887463926 + .long 239579 + .long 2804567149 + .long 1015390024 + .long 1276261410 + .long 253606 + .long 631083525 + .long 1017690182 + .long 569847337 + .long 267786 + .long 1623370770 + .long 1011049453 + .long 1617004845 + .long 282120 + .long 3667985273 + .long 1013894369 + .long 3049340112 + .long 296610 + .long 3145379760 + .long 1014403278 + .long 3577096743 + .long 311258 + .long 2603100681 + .long 1017152460 + .long 1990012070 + .long 326066 + .long 3249202951 + .long 1017448880 + .long 1453150081 + .long 341035 + .long 419288974 + .long 1016280325 + .long 917841882 + .long 356167 + .long 3793507337 + .long 1016095713 + .long 3712504873 + .long 371463 + .long 728023093 + .long 1016345318 + .long 363667784 + .long 386927 + .long 2582678538 + .long 1017123460 + .long 2956612996 + .long 402558 + .long 7592966 + .long 1016721543 + .long 2186617380 + .long 418360 + .long 228611441 + .long 1016696141 + .long 1719614412 + .long 434334 + .long 2261665670 + .long 1017457593 + .long 1013258798 + .long 450482 + .long 544148907 + .long 1017323666 + .long 3907805043 + .long 466805 + .long 2383914918 + .long 1017143586 + .long 1447192520 + .long 483307 + .long 1176412038 + .long 1017267372 + .long 1944781190 + .long 499988 + .long 2882956373 + .long 1013312481 + .long 919555682 + .long 516851 + .long 3154077648 + .long 1016528543 + .long 2571947538 + .long 533897 + .long 348651999 + .long 1016405780 + .long 2604962540 + .long 551129 + .long 3253791412 + .long 1015920431 + .long 1110089947 + .long 568549 + .long 1509121860 + .long 1014756995 + .long 2568320822 + .long 586158 + .long 2617649212 + .long 1017340090 + .long 2966275556 + .long 603959 + .long 553214634 + .long 1016457425 + .long 2682146383 + .long 621954 + .long 730975783 + .long 1014083580 + .long 2191782032 + .long 640145 + .long 1486499517 + .long 1016818996 + .long 2069751140 + .long 658534 + .long 2595788928 + .long 1016407932 + .long 2990417244 + .long 677123 + .long 1853053619 + .long 1015310724 + .long 1434058175 + .long 695915 + .long 2462790535 + .long 1015814775 + .long 2572866477 + .long 714911 + .long 3693944214 + .long 1017259110 + .long 3092190714 + .long 734114 + .long 2979333550 + .long 1017188654 + .long 4076559942 + .long 753526 + .long 174054861 + .long 1014300631 + .long 2420883922 + .long 773150 + .long 816778419 + .long 1014197934 + .long 3716502172 + .long 792987 + .long 3507050924 + .long 1015341199 + .long 777507147 + .long 813041 + .long 1821514088 + .long 1013410604 + .long 3706687593 + .long 833312 + .long 920623539 + .long 1016295433 + .long 1242007931 + .long 853805 + .long 2789017511 + .long 1014276997 + .long 3707479175 + .long 874520 + .long 3586233004 + .long 1015962192 + .long 64696965 + .long 895462 + .long 474650514 + .long 1016642419 + .long 863738718 + .long 916631 + .long 1614448851 + .long 1014281732 + .long 3884662774 + .long 938030 + .long 2450082086 + .long 1016164135 + .long 2728693977 + .long 959663 + .long 1101668360 + .long 1015989180 + .long 3999357479 + .long 981531 + .long 835814894 + .long 1015702697 + .long 1533953344 + .long 1003638 + .long 1301400989 + .long 1014466875 + .long 2174652632 + .long 1025985 + .long 0 + .long 1072693248 + .long 0 + .long 2146435072 + .long 0 + .long 0 + .long 4294967295 + .long 2146435071 + .long 0 + .long 1048576 + .type static_const_table,@object + .size static_const_table,1224 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/e_hypot.S b/libm/x86/e_hypot.S new file mode 100644 index 000000000..6a143e50b --- /dev/null +++ b/libm/x86/e_hypot.S @@ -0,0 +1,220 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// X87 version: +// Use 80-bit FPU precision fmul, fsqrt to compute square and sqrt. +// +// SSE version: +// Swap x, y if |x|<|y| +// For x=2^k*x, get y=y*2^(-k) +// Get S ~ sqrt(x^2+y^2) (leading 1 + leading 25 mantissa bits) +// +// Get D = ( RN(x^2+y^2) - S^2 ) + ( x^2 - RN(x^2) ) + +// + ( y^2 - ((RN(x^2+y^2)-RN(x^2)) ) +// +// Result is 2^k*(S + Se), where Se = S*e +// S*e is approximated as (D/2S)*( 1 - (D/2S)^2*1.0/S ) +// +// Return 2^k*(S+Se) +// +// For |y/x|<2^(-64), return x +// +// For cases where maximum biased exponent is either greater than 7fdh or +// below 32, take a special path to check for special cases (0, NaN, Inf), +// possible overflow, and more accurate computation for denormal results +// +// Special cases: +// hypot(x,y), hypot(y,x), and hypot(x,-y) are equivalent +// hypot(x,+-0) is equivalent to fabs(x) +// hypot(x,y) = y if (x==NaN or x==INF) and y==INF +// hypot(x,y) = x if (x==NaN or x==INF) and y!=INF (even if y==NaN!) +// hypot(x,y) = y if (x!=NaN and x!=INF) and (y==NaN or y==INF) +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin hypot +ENTRY(hypot) +# parameter 1: 8 + %ebp +# parameter 2: 16 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $152, %esp + movl %ebx, 96(%esp) + call static_func + movl %eax, %ebx + movapd (%ebx), %xmm3 + movsd 160(%esp), %xmm0 + movsd 168(%esp), %xmm1 + andpd %xmm3, %xmm0 + andpd %xmm3, %xmm1 + pextrw $3, %xmm0, %eax + pextrw $3, %xmm1, %edx + cmpl $24528, %eax + ja .L_2TAG_PACKET_0.0.2 + cmpl $24528, %edx + ja .L_2TAG_PACKET_0.0.2 +.L_2TAG_PACKET_1.0.2: + fldl 160(%esp) + fldl 168(%esp) + fxch %st(1) + fmul %st(0), %st + fxch %st(1) + nop + fmul %st(0), %st + faddp %st, %st(1) + fsqrt + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_0.0.2: + cmpl $32752, %eax + movl %eax, %ecx + jae .L_2TAG_PACKET_3.0.2 + subl %edx, %ecx + cmpl $32752, %edx + jae .L_2TAG_PACKET_3.0.2 + addl $928, %ecx + addl %edx, %eax + cmpl $1856, %ecx + ja .L_2TAG_PACKET_4.0.2 + cmpl $49056, %eax + jb .L_2TAG_PACKET_1.0.2 + fldl 160(%esp) + fldl 168(%esp) + fxch %st(1) + fmul %st(0), %st + fxch %st(1) + nop + fmul %st(0), %st + faddp %st, %st(1) + fsqrt +.L_2TAG_PACKET_5.0.2: + fstl (%esp) + fstpt 16(%esp) + xorl %eax, %eax + movw 24(%esp), %ax + cmpl $17407, %eax + jae .L_2TAG_PACKET_6.0.2 + fldl (%esp) + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_4.0.2: + movsd %xmm0, 32(%esp) + movsd %xmm1, 40(%esp) + fldl 32(%esp) + faddl 40(%esp) + jmp .L_2TAG_PACKET_5.0.2 +.L_2TAG_PACKET_6.0.2: + movl $46, %edx +.L_2TAG_PACKET_8.0.2: + movsd 160(%esp), %xmm0 + movsd 168(%esp), %xmm1 + fldl (%esp) + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_3.0.2: + shufpd $0, %xmm1, %xmm0 + movdqa %xmm0, %xmm2 + movdqa 16(%ebx), %xmm3 + movsd %xmm0, 32(%esp) + movsd %xmm1, 40(%esp) + cmppd $3, %xmm0, %xmm2 + cmppd $0, %xmm0, %xmm3 + movmskpd %xmm2, %edx + movmskpd %xmm3, %eax + testl %edx, %edx + je .L_2TAG_PACKET_9.0.2 + fldl 32(%esp) + fmull 40(%esp) + testl $1, %eax + jne .L_2TAG_PACKET_10.0.2 + testl $2, %eax + jne .L_2TAG_PACKET_11.0.2 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_9.0.2: + fldl 32(%esp) + faddl 40(%esp) + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_10.0.2: + fstpl 40(%esp) + fldl 32(%esp) + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_11.0.2: + fstpl 32(%esp) + fldl 40(%esp) + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_2.0.2: +.L_2TAG_PACKET_7.0.2: + movl 96(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(hypot) +# -- End hypot + +# Start file scope ASM +ALIAS_SYMBOL(hypotl, hypot); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .type static_const_table,@object + .size static_const_table,32 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/e_log.S b/libm/x86/e_log.S new file mode 100644 index 000000000..a6181cac0 --- /dev/null +++ b/libm/x86/e_log.S @@ -0,0 +1,780 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// x=2^k * mx, mx in [1,2) +// +// Get B~1/mx based on the output of rcpss instruction (B0) +// B = int((B0*2^7+0.5))/2^7 +// +// Reduced argument: r=B*mx-1.0 (computed accurately in high and low parts) +// +// Result: k*log(2) - log(B) + p(r) if |x-1| >= small value (2^-6) and +// p(r) is a degree 7 polynomial +// -log(B) read from data table (high, low parts) +// Result is formed from high and low parts +// +// Special cases: +// log(NaN) = quiet NaN, and raise invalid exception +// log(+INF) = that INF +// log(0) = -INF with divide-by-zero exception raised +// log(1) = +0 +// log(x) = NaN with invalid exception raised if x < -0, including -INF +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin log +ENTRY(log) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $104, %esp + movl %ebx, 40(%esp) + call static_func + movl %eax, %ebx + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + xorpd %xmm3, %xmm3 + movl $30704, %edx + pinsrw $3, %edx, %xmm3 + movsd 112(%esp), %xmm0 + movapd %xmm0, %xmm1 + movl $32768, %ecx + movd %ecx, %xmm4 + movsd 2128(%ebx), %xmm5 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + psllq $5, %xmm0 + movl $16352, %ecx + psrlq $34, %xmm0 + rcpss %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $228, %xmm5, %xmm6 + psrlq $12, %xmm1 + subl $16, %eax + cmpl $32736, %eax + jae .L_2TAG_PACKET_0.0.2 +.L_2TAG_PACKET_1.0.2: + paddd %xmm4, %xmm0 + orpd %xmm3, %xmm1 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm1, %xmm5 + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm1 + mulpd %xmm0, %xmm5 + andl $32752, %eax + subl %ecx, %eax + cvtsi2sdl %eax, %xmm7 + mulsd %xmm0, %xmm1 + movsd 2064(%ebx), %xmm6 + movapd 2080(%ebx), %xmm3 + subsd %xmm2, %xmm5 + andl $16711680, %edx + shrl $12, %edx + movapd (%ebx,%edx), %xmm0 + movapd 2096(%ebx), %xmm4 + addsd %xmm5, %xmm1 + movapd 2112(%ebx), %xmm2 + mulsd %xmm7, %xmm6 + pshufd $68, %xmm1, %xmm5 + mulsd 2072(%ebx), %xmm7 + mulsd %xmm1, %xmm3 + addsd %xmm6, %xmm0 + mulpd %xmm5, %xmm4 + mulpd %xmm5, %xmm5 + pshufd $228, %xmm0, %xmm6 + addsd %xmm1, %xmm0 + addpd %xmm2, %xmm4 + mulpd %xmm5, %xmm3 + subsd %xmm0, %xmm6 + mulsd %xmm1, %xmm4 + pshufd $238, %xmm0, %xmm2 + addsd %xmm6, %xmm1 + mulsd %xmm5, %xmm5 + addsd %xmm2, %xmm7 + addpd %xmm3, %xmm4 + addsd %xmm7, %xmm1 + mulpd %xmm5, %xmm4 + addsd %xmm4, %xmm1 + pshufd $238, %xmm4, %xmm5 + addsd %xmm5, %xmm1 + addsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_0.0.2: + movsd 112(%esp), %xmm0 + movapd %xmm0, %xmm1 + addl $16, %eax + cmpl $32768, %eax + jae .L_2TAG_PACKET_3.0.2 + cmpl $16, %eax + jb .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_5.0.2: + addsd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_6.0.2: + ja .L_2TAG_PACKET_5.0.2 + cmpl $0, %edx + ja .L_2TAG_PACKET_5.0.2 + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_3.0.2: + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + addl %ecx, %ecx + cmpl $-2097152, %ecx + jae .L_2TAG_PACKET_6.0.2 + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_7.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %eax + pinsrw $3, %eax, %xmm1 + movl $3, %edx + mulsd %xmm1, %xmm0 +.L_2TAG_PACKET_9.0.2: + movsd %xmm0, (%esp) + movsd 112(%esp), %xmm0 + fldl (%esp) + jmp .L_2TAG_PACKET_10.0.2 +.L_2TAG_PACKET_8.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $49136, %eax + pinsrw $3, %eax, %xmm0 + divsd %xmm1, %xmm0 + movl $2, %edx + jmp .L_2TAG_PACKET_9.0.2 +.L_2TAG_PACKET_4.0.2: + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_8.0.2 + xorpd %xmm1, %xmm1 + movl $18416, %eax + pinsrw $3, %eax, %xmm1 + mulsd %xmm1, %xmm0 + movapd %xmm0, %xmm1 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + psllq $5, %xmm0 + movl $18416, %ecx + psrlq $34, %xmm0 + rcpss %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $228, %xmm5, %xmm6 + psrlq $12, %xmm1 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + movsd %xmm0, 24(%esp) + fldl 24(%esp) +.L_2TAG_PACKET_10.0.2: + movl 40(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(log) +# -- End log + +# Start file scope ASM +ALIAS_SYMBOL(logl, log); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 2854492160 + .long 1072033410 + .long 215631550 + .long 1025638968 + .long 1547061248 + .long 1072017216 + .long 2886781435 + .long 1026423395 + .long 649825280 + .long 1072001146 + .long 4281533405 + .long 1024038923 + .long 646346752 + .long 1071985198 + .long 1562735921 + .long 1023790276 + .long 2203734016 + .long 1071969370 + .long 1838397691 + .long 3173936209 + .long 1872169984 + .long 1071953661 + .long 3981202460 + .long 1022325013 + .long 669557760 + .long 1071938069 + .long 4182597802 + .long 3173174122 + .long 4076413952 + .long 1071922591 + .long 1209029111 + .long 3170736207 + .long 556125184 + .long 1071907228 + .long 821086028 + .long 3173437049 + .long 204914688 + .long 1071891976 + .long 2097025986 + .long 3171071798 + .long 387545088 + .long 1071876834 + .long 3142936996 + .long 3173092218 + .long 2912783360 + .long 1071861800 + .long 2502420140 + .long 1024505919 + .long 1144260608 + .long 1071846874 + .long 3315658140 + .long 3173469843 + .long 1471209472 + .long 1071832053 + .long 129621009 + .long 3172443877 + .long 1829683200 + .long 1071817336 + .long 3885467693 + .long 1025535275 + .long 288676864 + .long 1071802722 + .long 86139472 + .long 3171639793 + .long 3636378624 + .long 1071788208 + .long 1850238587 + .long 1024654342 + .long 1606817792 + .long 1071773795 + .long 3388899795 + .long 3173675586 + .long 1236164608 + .long 1071759480 + .long 3983599207 + .long 1020046558 + .long 1089616896 + .long 1071745262 + .long 4171974224 + .long 1024773198 + .long 4143093760 + .long 1071731139 + .long 2727587401 + .long 3173965207 + .long 600267776 + .long 1071717112 + .long 3147685042 + .long 3173353031 + .long 2249313280 + .long 1071703177 + .long 125835074 + .long 1025255832 + .long 3805303808 + .long 1071689334 + .long 2289991207 + .long 1025460331 + .long 87278592 + .long 1071675583 + .long 1106114045 + .long 1025933602 + .long 3195405312 + .long 1071661920 + .long 3885316576 + .long 3171206239 + .long 3853649920 + .long 1071648346 + .long 2977069852 + .long 3171236771 + .long 2944026624 + .long 1071625048 + .long 1008093493 + .long 1023444474 + .long 3993180160 + .long 1071598247 + .long 1862355595 + .long 1024642533 + .long 1454641152 + .long 1071571617 + .long 1514603089 + .long 1026500596 + .long 3286085632 + .long 1071545154 + .long 1400028424 + .long 3173279056 + .long 438773760 + .long 1071518858 + .long 120727864 + .long 3172148914 + .long 1212979200 + .long 1071492725 + .long 1625055594 + .long 3172901933 + .long 1189017600 + .long 1071466754 + .long 3920062376 + .long 1025727407 + .long 403064832 + .long 1071440943 + .long 1053271728 + .long 3171391427 + .long 3343210496 + .long 1071415289 + .long 3243395502 + .long 3173627613 + .long 1765777408 + .long 1071389792 + .long 2145968512 + .long 1026354304 + .long 461430784 + .long 1071364449 + .long 4094322285 + .long 1026021467 + .long 71706624 + .long 1071339258 + .long 763632021 + .long 1024496933 + .long 1380503552 + .long 1071314217 + .long 1383547992 + .long 3173088453 + .long 1015732224 + .long 1071289325 + .long 3198646877 + .long 1025390322 + .long 35977216 + .long 1071264580 + .long 2141026805 + .long 1025754693 + .long 3927306240 + .long 1071239979 + .long 282116272 + .long 3173394334 + .long 1125341184 + .long 1071215523 + .long 2768427504 + .long 3172279059 + .long 1666971648 + .long 1071191208 + .long 786837629 + .long 3172427445 + .long 2827694080 + .long 1071167033 + .long 3857122416 + .long 3173014241 + .long 2003683328 + .long 1071142997 + .long 859010954 + .long 1026545007 + .long 1004017664 + .long 1071119098 + .long 3356644970 + .long 3173458064 + .long 1753020416 + .long 1071095334 + .long 788338552 + .long 1026157693 + .long 1992718336 + .long 1071071704 + .long 1239179443 + .long 1026394889 + .long 3870234624 + .long 1071048206 + .long 2082614663 + .long 1024926053 + .long 1050437632 + .long 1071024840 + .long 660007840 + .long 1025548499 + .long 188395520 + .long 1071001603 + .long 3878792704 + .long 3173889571 + .long 3747176448 + .long 1070978493 + .long 144991708 + .long 3171552042 + .long 1405669376 + .long 1070955511 + .long 3999088879 + .long 1025486317 + .long 121151488 + .long 1070932654 + .long 2170865497 + .long 1026473584 + .long 2652319744 + .long 1070909920 + .long 453695652 + .long 3173916809 + .long 3262236672 + .long 1070887309 + .long 157800053 + .long 3173984206 + .long 601221120 + .long 1070864820 + .long 3968917661 + .long 1023992886 + .long 1999843328 + .long 1070842450 + .long 3053895004 + .long 1024998228 + .long 1992167424 + .long 1070820199 + .long 2968614856 + .long 1024552653 + .long 3788726272 + .long 1070798065 + .long 3542170808 + .long 3173573242 + .long 2094829568 + .long 1070776048 + .long 1246758132 + .long 1026202874 + .long 288675840 + .long 1070754146 + .long 3747328950 + .long 1026331585 + .long 1829681152 + .long 1070732357 + .long 3125197546 + .long 1024100318 + .long 1666869248 + .long 1070710681 + .long 1363656119 + .long 1026336493 + .long 3417110528 + .long 1070689116 + .long 4154791553 + .long 1026267853 + .long 2183653376 + .long 1070667662 + .long 1671819292 + .long 3173785870 + .long 1734434816 + .long 1070646317 + .long 373091049 + .long 1025972363 + .long 1615681536 + .long 1070625080 + .long 384650897 + .long 1022926043 + .long 1445382144 + .long 1070603950 + .long 344320330 + .long 3172397196 + .long 1823715328 + .long 1070569756 + .long 3389841200 + .long 1025231852 + .long 3839688704 + .long 1070527917 + .long 1706790417 + .long 3167363349 + .long 4293332992 + .long 1070486286 + .long 1614935088 + .long 1019351591 + .long 2966720512 + .long 1070444861 + .long 4145393717 + .long 3173711658 + .long 4066729984 + .long 1070403639 + .long 1974925028 + .long 3171437182 + .long 3337621504 + .long 1070362619 + .long 3314953170 + .long 3169971314 + .long 943448064 + .long 1070321799 + .long 1498682038 + .long 3173862340 + .long 1465634816 + .long 1070281176 + .long 1319952810 + .long 3171693965 + .long 1015734272 + .long 1070240749 + .long 1347821929 + .long 3173544515 + .long 118001664 + .long 1070200516 + .long 1751482746 + .long 1026134093 + .long 3707174912 + .long 1070160474 + .long 1486946159 + .long 1023930920 + .long 3946381312 + .long 1070120623 + .long 2867408081 + .long 3171368276 + .long 1699848192 + .long 1070080961 + .long 2590187139 + .long 1025379803 + .long 2235846656 + .long 1070041485 + .long 1888568069 + .long 3172754960 + .long 2339729408 + .long 1070002194 + .long 3852214753 + .long 3173323149 + .long 3196850176 + .long 1069963086 + .long 742141560 + .long 1025101707 + .long 1800683520 + .long 1069924160 + .long 3949500444 + .long 3172102179 + .long 3835801600 + .long 1069885413 + .long 3848895943 + .long 1025913832 + .long 2201202688 + .long 1069846845 + .long 1425913464 + .long 1025868665 + .long 2778279936 + .long 1069808453 + .long 2120889677 + .long 3173831128 + .long 2954203136 + .long 1069770236 + .long 592147081 + .long 1019621288 + .long 210141184 + .long 1069732193 + .long 3414275233 + .long 1023647084 + .long 709476352 + .long 1069694321 + .long 2413027164 + .long 1024462115 + .long 2116284416 + .long 1069656619 + .long 1144559924 + .long 1026336654 + .long 2183651328 + .long 1069619086 + .long 3459057650 + .long 1025634168 + .long 3047047168 + .long 1069581720 + .long 1879674924 + .long 3173508573 + .long 970711040 + .long 1069541521 + .long 1335954173 + .long 3173332182 + .long 2198478848 + .long 1069467449 + .long 2951103968 + .long 3173892200 + .long 1669611520 + .long 1069393703 + .long 531044147 + .long 1025149248 + .long 29114368 + .long 1069320280 + .long 3327831251 + .long 1025918673 + .long 2376949760 + .long 1069247176 + .long 737634533 + .long 3172176000 + .long 1085390848 + .long 1069174390 + .long 3108243400 + .long 3171828406 + .long 1566130176 + .long 1069101918 + .long 985483226 + .long 1025708380 + .long 792780800 + .long 1069029758 + .long 4184866295 + .long 1024426204 + .long 183156736 + .long 1068957907 + .long 2845699378 + .long 1022107277 + .long 1301782528 + .long 1068886362 + .long 1012735262 + .long 3173804294 + .long 1562411008 + .long 1068815121 + .long 2197086703 + .long 3170187813 + .long 2815549440 + .long 1068744181 + .long 2782613207 + .long 1026345054 + .long 2756124672 + .long 1068673540 + .long 2929486205 + .long 3173037800 + .long 3511050240 + .long 1068603195 + .long 1443733147 + .long 3173331549 + .long 3047047168 + .long 1068533144 + .long 1879674924 + .long 3172459997 + .long 3221667840 + .long 1068427825 + .long 1338588027 + .long 3171815742 + .long 3453861888 + .long 1068288883 + .long 1205348359 + .long 3172624626 + .long 3506110464 + .long 1068150514 + .long 893105198 + .long 1025571866 + .long 346013696 + .long 1068012714 + .long 3495569021 + .long 3172563349 + .long 4074029056 + .long 1067875476 + .long 3961106338 + .long 3171065595 + .long 3559784448 + .long 1067738798 + .long 1975385384 + .long 3173783155 + .long 797769728 + .long 1067602675 + .long 3760305787 + .long 1026047642 + .long 2313633792 + .long 1067467101 + .long 1559353171 + .long 1023480256 + .long 3960766464 + .long 1067213778 + .long 1067365107 + .long 1025865926 + .long 684261376 + .long 1066944805 + .long 844762164 + .long 3173687482 + .long 630718464 + .long 1066676905 + .long 2458269694 + .long 1024033081 + .long 1486061568 + .long 1066410070 + .long 115537874 + .long 3173243995 + .long 2743664640 + .long 1065886792 + .long 3665098304 + .long 3173471607 + .long 1971912704 + .long 1065357333 + .long 2577214440 + .long 3171993451 + .long 1498939392 + .long 1064306693 + .long 3409036923 + .long 1025599151 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 4277811200 + .long 1067855426 + .long 2479318832 + .long 1022292823 + .long 2454267026 + .long 1069697316 + .long 0 + .long 3218079744 + .long 1030730101 + .long 3217380702 + .long 1431655765 + .long 1070945621 + .long 2576980378 + .long 1070176665 + .long 0 + .long 3219128320 + .long 0 + .long 4294959104 + .long 0 + .long 4294959104 + .type static_const_table,@object + .size static_const_table,2144 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/e_log10.S b/libm/x86/e_log10.S new file mode 100644 index 000000000..09b295211 --- /dev/null +++ b/libm/x86/e_log10.S @@ -0,0 +1,795 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Let x=2^k * mx, mx in [1,2) +// +// Get B~1/mx based on the output of rcpss instruction (B0) +// B = int((B0*LH*2^7+0.5))/2^7 +// LH is a short approximation for log10(e) +// +// Reduced argument: r=B*mx-LH (computed accurately in high and low parts) +// +// Result: k*log10(2) - log(B) + p(r) +// p(r) is a degree 7 polynomial +// -log(B) read from data table (high, low parts) +// Result is formed from high and low parts +// +// Special cases: +// log10(0) = -INF with divide-by-zero exception raised +// log10(1) = +0 +// log10(x) = NaN with invalid exception raised if x < -0, including -INF +// log10(+INF) = +INF +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin log10 +ENTRY(log10) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $104, %esp + movl %ebx, 40(%esp) + call static_func + movl %eax, %ebx + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + movl $1054736384, %ecx + movd %ecx, %xmm7 + xorpd %xmm3, %xmm3 + movl $30704, %edx + pinsrw $3, %edx, %xmm3 + movsd 112(%esp), %xmm0 + movapd %xmm0, %xmm1 + movl $32768, %edx + movd %edx, %xmm4 + movapd 2128(%ebx), %xmm5 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + movl $16352, %ecx + psllq $5, %xmm0 + movsd 2144(%ebx), %xmm2 + psrlq $34, %xmm0 + rcpss %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $78, %xmm5, %xmm6 + psrlq $12, %xmm1 + subl $16, %eax + cmpl $32736, %eax + jae .L_2TAG_PACKET_0.0.2 +.L_2TAG_PACKET_1.0.2: + mulss %xmm7, %xmm0 + orpd %xmm3, %xmm1 + andpd %xmm1, %xmm5 + paddd %xmm4, %xmm0 + subsd %xmm5, %xmm1 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm6, %xmm0 + andl $32752, %eax + subl %ecx, %eax + cvtsi2sdl %eax, %xmm7 + mulpd %xmm0, %xmm5 + mulsd %xmm0, %xmm1 + movsd 2064(%ebx), %xmm6 + movapd 2080(%ebx), %xmm3 + subsd %xmm2, %xmm5 + andl $16711680, %edx + shrl $12, %edx + movapd -1504(%ebx,%edx), %xmm0 + movapd 2096(%ebx), %xmm4 + addsd %xmm5, %xmm1 + movapd 2112(%ebx), %xmm2 + mulsd %xmm7, %xmm6 + pshufd $68, %xmm1, %xmm5 + mulsd 2072(%ebx), %xmm7 + mulsd %xmm1, %xmm3 + addsd %xmm6, %xmm0 + mulpd %xmm5, %xmm4 + movsd 2152(%ebx), %xmm6 + mulpd %xmm5, %xmm5 + addpd %xmm2, %xmm4 + mulpd %xmm5, %xmm3 + pshufd $228, %xmm0, %xmm2 + addsd %xmm1, %xmm0 + mulsd %xmm1, %xmm4 + subsd %xmm0, %xmm2 + mulsd %xmm1, %xmm6 + addsd %xmm2, %xmm1 + pshufd $238, %xmm0, %xmm2 + mulsd %xmm5, %xmm5 + addsd %xmm2, %xmm7 + addsd %xmm6, %xmm1 + addpd %xmm3, %xmm4 + addsd %xmm7, %xmm1 + mulpd %xmm5, %xmm4 + addsd %xmm4, %xmm1 + pshufd $238, %xmm4, %xmm5 + addsd %xmm5, %xmm1 + addsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_0.0.2: + movsd 112(%esp), %xmm0 + movapd %xmm0, %xmm1 + addl $16, %eax + cmpl $32768, %eax + jae .L_2TAG_PACKET_3.0.2 + cmpl $16, %eax + jb .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_5.0.2: + addsd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_6.0.2: + ja .L_2TAG_PACKET_5.0.2 + cmpl $0, %edx + ja .L_2TAG_PACKET_5.0.2 + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_3.0.2: + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + addl %ecx, %ecx + cmpl $-2097152, %ecx + jae .L_2TAG_PACKET_6.0.2 + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_7.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %eax + pinsrw $3, %eax, %xmm1 + movl $9, %edx + mulsd %xmm1, %xmm0 +.L_2TAG_PACKET_9.0.2: + movsd %xmm0, (%esp) + movsd 112(%esp), %xmm0 + fldl (%esp) + jmp .L_2TAG_PACKET_10.0.2 +.L_2TAG_PACKET_8.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $49136, %eax + pinsrw $3, %eax, %xmm0 + divsd %xmm1, %xmm0 + movl $8, %edx + jmp .L_2TAG_PACKET_9.0.2 +.L_2TAG_PACKET_4.0.2: + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_8.0.2 + xorpd %xmm1, %xmm1 + movl $18416, %eax + pinsrw $3, %eax, %xmm1 + mulsd %xmm1, %xmm0 + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + movapd %xmm0, %xmm1 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + movl $18416, %ecx + psllq $5, %xmm0 + movsd 2144(%ebx), %xmm2 + psrlq $34, %xmm0 + rcpss %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $78, %xmm5, %xmm6 + psrlq $12, %xmm1 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + movsd %xmm0, 24(%esp) + fldl 24(%esp) +.L_2TAG_PACKET_10.0.2: + movl 40(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(log10) +# -- End log10 + +# Start file scope ASM +ALIAS_SYMBOL(log10l, log10); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 1352628224 + .long 1070810131 + .long 521319256 + .long 1025503025 + .long 2150839296 + .long 1070801944 + .long 3329350096 + .long 3170190015 + .long 1360613376 + .long 1070793794 + .long 2024059075 + .long 1024991594 + .long 1875350528 + .long 1070785680 + .long 2163882141 + .long 3163564137 + .long 2312126464 + .long 1070777602 + .long 1975711076 + .long 1023674196 + .long 1306336256 + .long 1070769560 + .long 3524899523 + .long 3170508164 + .long 1806334976 + .long 1070761553 + .long 4254777025 + .long 1025238739 + .long 2483193856 + .long 1070753581 + .long 3800671317 + .long 3172916830 + .long 2025350144 + .long 1070745644 + .long 1731514745 + .long 1025501083 + .long 3433285632 + .long 1070737741 + .long 2551857336 + .long 3169662186 + .long 1134317568 + .long 1070729873 + .long 3426297655 + .long 3172637891 + .long 2457152512 + .long 1070722038 + .long 63549415 + .long 1025415416 + .long 1861803008 + .long 1070714237 + .long 1910171636 + .long 1023977580 + .long 2414140416 + .long 1070706469 + .long 4002514337 + .long 3170841618 + .long 2900726784 + .long 1070698734 + .long 3268064083 + .long 1022459609 + .long 2123517952 + .long 1070691032 + .long 1767031218 + .long 1022448156 + .long 3194569728 + .long 1070683362 + .long 3402332618 + .long 3171671160 + .long 650882048 + .long 1070675725 + .long 4146023905 + .long 3171023038 + .long 1928988672 + .long 1070668119 + .long 1438617867 + .long 1016360491 + .long 1594908672 + .long 1070660545 + .long 971389377 + .long 1024763979 + .long 2818746368 + .long 1070653002 + .long 3555925341 + .long 3172434821 + .long 194584576 + .long 1070645491 + .long 943919215 + .long 3172950063 + .long 1215096832 + .long 1070638010 + .long 2283358588 + .long 1022335098 + .long 501519360 + .long 1070630560 + .long 480904295 + .long 1024437959 + .long 1278266368 + .long 1070623140 + .long 2755806066 + .long 3172342012 + .long 2487812096 + .long 1070615750 + .long 2489653202 + .long 3172481099 + .long 3085451264 + .long 1070608390 + .long 3759184951 + .long 3172574892 + .long 2039090176 + .long 1070601060 + .long 1361176676 + .long 3172355319 + .long 953057280 + .long 1070591423 + .long 1176587546 + .long 3166422018 + .long 3370524672 + .long 1070576879 + .long 3669570051 + .long 1025376630 + .long 749742080 + .long 1070562394 + .long 707700964 + .long 3170814058 + .long 4008353792 + .long 1070547965 + .long 3247327652 + .long 1022431400 + .long 2612455424 + .long 1070533594 + .long 2453457344 + .long 3172322969 + .long 3230920704 + .long 1070519279 + .long 1296781801 + .long 1025115335 + .long 3965253632 + .long 1070505020 + .long 373075289 + .long 1017938528 + .long 2593157120 + .long 1070476669 + .long 1068054086 + .long 1021616576 + .long 925962240 + .long 1070448537 + .long 850121213 + .long 1023928989 + .long 1732556800 + .long 1070420620 + .long 1305206740 + .long 3172665570 + .long 3815630848 + .long 1070392915 + .long 192642943 + .long 3172699907 + .long 2001758208 + .long 1070365420 + .long 2820786683 + .long 1024704867 + .long 16746496 + .long 1070338131 + .long 1399573110 + .long 3171372773 + .long 1886492672 + .long 1070311044 + .long 3621428075 + .long 3172974358 + .long 3338196992 + .long 1070284157 + .long 3793882035 + .long 1025124701 + .long 381769728 + .long 1070257468 + .long 3877933342 + .long 3170195490 + .long 2186491904 + .long 1070230972 + .long 1838687089 + .long 1017927292 + .long 1008330752 + .long 1070204668 + .long 2228321664 + .long 1025352196 + .long 2247065600 + .long 1070178552 + .long 1413900906 + .long 3170902532 + .long 2964070400 + .long 1070152622 + .long 3590454629 + .long 1025016844 + .long 465154048 + .long 1070126876 + .long 2079688550 + .long 3172268183 + .long 883615744 + .long 1070101310 + .long 989244452 + .long 3171900485 + .long 1993768960 + .long 1070075922 + .long 1124327841 + .long 3172964992 + .long 1794471936 + .long 1070050710 + .long 1140575046 + .long 1022673726 + .long 2797932544 + .long 1070025671 + .long 1894836933 + .long 3172544059 + .long 3433797632 + .long 1070000803 + .long 3221831166 + .long 3171921685 + .long 2338371584 + .long 1069976104 + .long 3732461053 + .long 3164513518 + .long 2644013056 + .long 1069951571 + .long 2519460462 + .long 3172548740 + .long 3383814144 + .long 1069927202 + .long 2290997657 + .long 1025499649 + .long 3781380096 + .long 1069902995 + .long 380479405 + .long 1025184136 + .long 3245785088 + .long 1069878948 + .long 1096398261 + .long 3169885192 + .long 1366712320 + .long 1069855059 + .long 2218343715 + .long 3170281628 + .long 2204717056 + .long 1069831325 + .long 2668334011 + .long 1025264524 + .long 1401772032 + .long 1069807745 + .long 4103993159 + .long 1022925721 + .long 3356721152 + .long 1069784316 + .long 3573790772 + .long 3172186527 + .long 4041148416 + .long 1069761037 + .long 4027691910 + .long 3171276990 + .long 3880151040 + .long 1069737906 + .long 4087118786 + .long 3172710734 + .long 3453364224 + .long 1069714921 + .long 99014299 + .long 3172003077 + .long 3491092480 + .long 1069692080 + .long 3801836701 + .long 3172989287 + .long 575580160 + .long 1069669382 + .long 1920406012 + .long 3170874125 + .long 22282240 + .long 1069646824 + .long 964193370 + .long 1019363159 + .long 2991429632 + .long 1069624404 + .long 3372589890 + .long 1023425053 + .long 2189645824 + .long 1069602122 + .long 2610503872 + .long 1023652442 + .long 3341467648 + .long 1069579975 + .long 1190292004 + .long 1022425665 + .long 3711293440 + .long 1069557962 + .long 1104795356 + .long 1023625829 + .long 1380401152 + .long 1069524644 + .long 1156998217 + .long 1025100499 + .long 765710336 + .long 1069481144 + .long 1736649113 + .long 1024999439 + .long 849412096 + .long 1069437902 + .long 2618178330 + .long 3170853629 + .long 1433104384 + .long 1069394915 + .long 43477267 + .long 3170378811 + .long 2548596736 + .long 1069352180 + .long 3967367063 + .long 1025246584 + .long 157577216 + .long 1069309695 + .long 100402533 + .long 3172825502 + .long 3326238720 + .long 1069267455 + .long 1176892909 + .long 1025464099 + .long 4155494400 + .long 1069225459 + .long 3713707617 + .long 3172630046 + .long 3545804800 + .long 1069183704 + .long 857007315 + .long 1024965777 + .long 2602520576 + .long 1069142187 + .long 2588758347 + .long 1022463131 + .long 2631196672 + .long 1069100905 + .long 2118424235 + .long 1022490989 + .long 838135808 + .long 1069059856 + .long 4117002727 + .long 1024874520 + .long 3210903552 + .long 1069019036 + .long 650070125 + .long 3172012966 + .long 3039211520 + .long 1068978444 + .long 438055812 + .long 1017743757 + .long 2385633280 + .long 1068938077 + .long 3011990369 + .long 3171312044 + .long 3491618816 + .long 1068897932 + .long 712813818 + .long 3172720400 + .long 183644160 + .long 1068858008 + .long 4287006742 + .long 1022379728 + .long 3639214080 + .long 1068818300 + .long 353762279 + .long 3172980009 + .long 3728416768 + .long 1068778808 + .long 1851367730 + .long 1025486574 + .long 3370094592 + .long 1068739529 + .long 4046594913 + .long 3172567047 + .long 1348407296 + .long 1068700461 + .long 143189675 + .long 1025397632 + .long 899403776 + .long 1068661601 + .long 3753687842 + .long 3170772772 + .long 1117708288 + .long 1068622947 + .long 1857340812 + .long 3170782678 + .long 1248276480 + .long 1068584497 + .long 1289858203 + .long 1025222289 + .long 683237376 + .long 1068546249 + .long 2356679608 + .long 3171629170 + .long 3253764096 + .long 1068508200 + .long 3267136556 + .long 1018554987 + .long 94478336 + .long 1068441756 + .long 1927868814 + .long 3169378180 + .long 3233144832 + .long 1068366445 + .long 2682188854 + .long 1023964004 + .long 2940297216 + .long 1068291522 + .long 275301289 + .long 1023944679 + .long 3677708288 + .long 1068216982 + .long 302658771 + .long 1024465567 + .long 1576968192 + .long 1068142822 + .long 3672035940 + .long 3172254610 + .long 1614069760 + .long 1068069037 + .long 480052905 + .long 3172692062 + .long 424435712 + .long 1067995624 + .long 2207869657 + .long 3170965436 + .long 3477782528 + .long 1067922578 + .long 2980661858 + .long 3164990018 + .long 3598401536 + .long 1067849897 + .long 1974393034 + .long 3171357083 + .long 2435235840 + .long 1067777577 + .long 1385289011 + .long 1024615823 + .long 1867333632 + .long 1067705614 + .long 3442236633 + .long 1025334384 + .long 3999301632 + .long 1067634004 + .long 3506472073 + .long 1025132546 + .long 2566971392 + .long 1067562745 + .long 1425757592 + .long 3172358463 + .long 112943104 + .long 1067491833 + .long 1693407156 + .long 3172426603 + .long 3079929856 + .long 1067392159 + .long 3999942455 + .long 1018549369 + .long 2443837440 + .long 1067251701 + .long 974534460 + .long 1023963412 + .long 359366656 + .long 1067111917 + .long 2204915018 + .long 1013514416 + .long 3564519424 + .long 1066972799 + .long 3977441659 + .long 3170879860 + .long 2011086848 + .long 1066834343 + .long 590145514 + .long 1025390011 + .long 3216982016 + .long 1066696541 + .long 3629120110 + .long 1024330313 + .long 2194128896 + .long 1066559388 + .long 2367098512 + .long 3172260338 + .long 2916220928 + .long 1066422877 + .long 2262431886 + .long 1021229446 + .long 2263941120 + .long 1066172214 + .long 3118507287 + .long 1021484970 + .long 3076292608 + .long 1065901726 + .long 1411737803 + .long 3172957147 + .long 1186136064 + .long 1065632488 + .long 3109349337 + .long 1025397383 + .long 3085303808 + .long 1065364487 + .long 584715031 + .long 3172596519 + .long 1821048832 + .long 1064842211 + .long 2182246895 + .long 3172536214 + .long 697368576 + .long 1064311094 + .long 3157561765 + .long 3172716357 + .long 894042112 + .long 1063260131 + .long 3237958154 + .long 3172587292 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1352628224 + .long 1066615827 + .long 521319256 + .long 1021308721 + .long 3248877870 + .long 1077250164 + .long 1691676429 + .long 3221787401 + .long 945132465 + .long 3223701783 + .long 3700831335 + .long 1073506818 + .long 2141010593 + .long 1075227551 + .long 3698831637 + .long 3220339442 + .long 4160749568 + .long 4294967295 + .long 0 + .long 4294959104 + .long 0 + .long 1071366144 + .long 3207479560 + .long 1062894188 + .type static_const_table,@object + .size static_const_table,2160 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/e_pow.S b/libm/x86/e_pow.S new file mode 100644 index 000000000..43e30d84b --- /dev/null +++ b/libm/x86/e_pow.S @@ -0,0 +1,4277 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Let x=2^k * mx, mx in [1,2) +// +// log2(x) calculation: +// +// Get B~1/mx based on the output of rcpps instruction (B0) +// B = int((B0*LH*2^9+0.5))/2^9 +// LH is a short approximation for log2(e) +// +// Reduced argument, scaled by LH: +// r=B*mx-LH (computed accurately in high and low parts) +// +// log2(x) result: k - log2(B) + p(r) +// p(r) is a degree 8 polynomial +// -log2(B) read from data table (high, low parts) +// log2(x) is formed from high and low parts +// For |x| in [1-1/32, 1+1/16), a slower but more accurate computation +// based om the same table design is performed. +// +// Main path is taken if | floor(log2(|log2(|x|)|) + floor(log2|y|) | < 8, +// to filter out all potential OF/UF cases. +// exp2(y*log2(x)) is computed using an 8-bit index table and a degree 5 +// polynomial +// +// Special cases: +// pow(-0,y) = -INF and raises the divide-by-zero exception for y an odd +// integer < 0. +// pow(-0,y) = +INF and raises the divide-by-zero exception for y < 0 and +// not an odd integer. +// pow(-0,y) = -0 for y an odd integer > 0. +// pow(-0,y) = +0 for y > 0 and not an odd integer. +// pow(-1,-INF) = 1. +// pow(+1,y) = 1 for any y, even a NaN. +// pow(x,-0) = 1 for any x, even a NaN. +// pow(x,y) = a NaN and raises the invalid exception for finite x < 0 and +// finite non-integer y. +// pow(x,-INF) = +INF for |x|<1. +// pow(x,-INF) = +0 for |x|>1. +// pow(x,+INF) = +0 for |x|<1. +// pow(x,+INF) = +INF for |x|>1. +// pow(-INF,y) = -0 for y an odd integer < 0. +// pow(-INF,y) = +0 for y < 0 and not an odd integer. +// pow(-INF,y) = -INF for y an odd integer > 0. +// pow(-INF,y) = +INF for y > 0 and not an odd integer. +// pow(+INF,y) = +0 for y <0. +// pow(+INF,y) = +INF for y >0. +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin pow +ENTRY(pow) +# parameter 1: 8 + %ebp +# parameter 2: 16 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $120, %esp + movl %ebx, 64(%esp) + call static_func + movl %eax, %ebx + movsd 128(%esp), %xmm0 + movsd 136(%esp), %xmm1 + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + movl $1069088768, %ecx + movd %ecx, %xmm7 + movsd %xmm1, 16(%esp) + xorpd %xmm1, %xmm1 + movl $30704, %edx + pinsrw $3, %edx, %xmm1 + movsd %xmm0, 8(%esp) + movapd %xmm0, %xmm3 + movl $8192, %edx + movd %edx, %xmm4 + movapd 8240(%ebx), %xmm6 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + psllq $5, %xmm0 + movsd 8256(%ebx), %xmm2 + psrlq $34, %xmm0 + movl %eax, %edx + andl $32752, %edx + subl $16368, %edx + movl %edx, %ecx + sarl $31, %edx + addl %edx, %ecx + xorl %edx, %ecx + rcpss %xmm0, %xmm0 + psllq $12, %xmm3 + addl $16, %ecx + bsr %ecx, %ecx + psrlq $12, %xmm3 + movl %esi, 24(%esp) + subl $16, %eax + cmpl $32736, %eax + jae .L_2TAG_PACKET_0.0.2 + movl $0, %esi +.L_2TAG_PACKET_1.0.2: + mulss %xmm7, %xmm0 + movl $-1, %edx + subl $4, %ecx + shll %cl, %edx + movd %edx, %xmm5 + orpd %xmm1, %xmm3 + subl $16351, %eax + cmpl $1, %eax + jbe .L_2TAG_PACKET_2.0.2 + paddd %xmm4, %xmm0 + psllq $32, %xmm5 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm3, %xmm5 +.L_2TAG_PACKET_3.0.2: + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm3 + subl $1, %eax + sarl $4, %eax + cvtsi2sdl %eax, %xmm7 + mulpd %xmm0, %xmm5 +.L_2TAG_PACKET_4.0.2: + mulsd %xmm0, %xmm3 + movapd 8272(%ebx), %xmm1 + subsd %xmm2, %xmm5 + movapd 8288(%ebx), %xmm4 + movl %eax, %ecx + sarl $31, %eax + addl %eax, %ecx + xorl %ecx, %eax + addl $1, %eax + bsr %eax, %eax + unpcklpd %xmm3, %xmm5 + movapd 8304(%ebx), %xmm6 + addsd %xmm5, %xmm3 + andl $16760832, %edx + shrl $10, %edx + addpd -3616(%ebx,%edx), %xmm5 + movapd 8320(%ebx), %xmm0 + pshufd $68, %xmm3, %xmm2 + mulsd %xmm3, %xmm3 + mulpd %xmm2, %xmm1 + mulpd %xmm2, %xmm4 + addsd %xmm7, %xmm5 + mulsd %xmm3, %xmm2 + addpd %xmm1, %xmm6 + mulsd %xmm3, %xmm3 + addpd %xmm4, %xmm0 + movsd 16(%esp), %xmm1 + movzwl 22(%esp), %ecx + pshufd $238, %xmm5, %xmm7 + movsd 8368(%ebx), %xmm4 + mulpd %xmm2, %xmm6 + pshufd $68, %xmm3, %xmm3 + mulpd %xmm2, %xmm0 + shll $4, %eax + subl $15872, %eax + andl $32752, %ecx + addl %ecx, %eax + mulpd %xmm6, %xmm3 + cmpl $624, %eax + jae .L_2TAG_PACKET_5.0.2 + xorpd %xmm6, %xmm6 + movl $17080, %edx + pinsrw $3, %edx, %xmm6 + movapd %xmm1, %xmm2 + andpd %xmm1, %xmm4 + subsd %xmm4, %xmm1 + mulsd %xmm5, %xmm4 + addsd %xmm7, %xmm0 + mulsd %xmm5, %xmm1 + movapd %xmm6, %xmm7 + addsd %xmm4, %xmm6 + addpd %xmm0, %xmm3 + movd %xmm6, %edx + subsd %xmm7, %xmm6 + pshufd $238, %xmm3, %xmm0 + subsd %xmm6, %xmm4 + addsd %xmm3, %xmm0 + movl %edx, %ecx + andl $255, %edx + addl %edx, %edx + movapd 8384(%ebx,%edx,8), %xmm5 + addsd %xmm1, %xmm4 + mulsd %xmm0, %xmm2 + movapd 12480(%ebx), %xmm7 + movapd 12496(%ebx), %xmm3 + shll $12, %ecx + xorl %esi, %ecx + andl $-1048576, %ecx + movd %ecx, %xmm6 + addsd %xmm4, %xmm2 + movsd 12512(%ebx), %xmm1 + pshufd $68, %xmm2, %xmm0 + pshufd $68, %xmm2, %xmm4 + mulpd %xmm0, %xmm0 + movl 24(%esp), %esi + mulpd %xmm4, %xmm7 + pshufd $17, %xmm6, %xmm6 + mulsd %xmm2, %xmm1 + mulsd %xmm0, %xmm0 + paddd %xmm6, %xmm5 + addpd %xmm7, %xmm3 + mulsd %xmm5, %xmm1 + pshufd $238, %xmm5, %xmm6 + mulpd %xmm3, %xmm0 + addsd %xmm6, %xmm1 + pshufd $238, %xmm0, %xmm3 + mulsd %xmm5, %xmm0 + mulsd %xmm5, %xmm3 + addsd %xmm1, %xmm0 + addsd %xmm3, %xmm0 + addsd %xmm5, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_7.0.2: + movsd 128(%esp), %xmm0 + movsd 136(%esp), %xmm1 + mulsd %xmm1, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_0.0.2: + addl $16, %eax + movl $32752, %edx + andl %eax, %edx + cmpl $32752, %edx + je .L_2TAG_PACKET_8.0.2 + testl $32768, %eax + jne .L_2TAG_PACKET_9.0.2 +.L_2TAG_PACKET_10.0.2: + movl 16(%esp), %ecx + xorl %edx, %edx + testl %ecx, %ecx + movl $1, %ecx + cmovne %ecx, %edx + orl 20(%esp), %edx + cmpl $1072693248, %edx + je .L_2TAG_PACKET_7.0.2 + movsd 8(%esp), %xmm0 + movsd 8(%esp), %xmm3 + movd %xmm3, %edx + psrlq $32, %xmm3 + movd %xmm3, %ecx + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_11.0.2 + xorpd %xmm3, %xmm3 + movl $18416, %eax + pinsrw $3, %eax, %xmm3 + mulsd %xmm3, %xmm0 + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + movapd %xmm0, %xmm3 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + movl $18416, %ecx + psllq $5, %xmm0 + movsd 8256(%ebx), %xmm2 + psrlq $34, %xmm0 + rcpss %xmm0, %xmm0 + psllq $12, %xmm3 + movapd 8240(%ebx), %xmm6 + psrlq $12, %xmm3 + mulss %xmm7, %xmm0 + movl $-1024, %edx + movd %edx, %xmm5 + orpd %xmm1, %xmm3 + paddd %xmm4, %xmm0 + psllq $32, %xmm5 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm3, %xmm5 + movl $0, %esi + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm3 + andl $32752, %eax + subl $18416, %eax + sarl $4, %eax + cvtsi2sdl %eax, %xmm7 + mulpd %xmm0, %xmm5 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_12.0.2: + movl 16(%esp), %ecx + xorl %edx, %edx + testl %ecx, %ecx + movl $1, %ecx + cmovne %ecx, %edx + orl 20(%esp), %edx + cmpl $1072693248, %edx + je .L_2TAG_PACKET_7.0.2 + movsd 8(%esp), %xmm0 + movsd 8(%esp), %xmm3 + movd %xmm3, %edx + psrlq $32, %xmm3 + movd %xmm3, %ecx + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_11.0.2 + xorpd %xmm3, %xmm3 + movl $18416, %eax + pinsrw $3, %eax, %xmm3 + mulsd %xmm3, %xmm0 + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + movapd %xmm0, %xmm3 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + movl $18416, %ecx + psllq $5, %xmm0 + movsd 8256(%ebx), %xmm2 + psrlq $34, %xmm0 + rcpss %xmm0, %xmm0 + psllq $12, %xmm3 + movapd 8240(%ebx), %xmm6 + psrlq $12, %xmm3 + mulss %xmm7, %xmm0 + movl $-1024, %edx + movd %edx, %xmm5 + orpd %xmm1, %xmm3 + paddd %xmm4, %xmm0 + psllq $32, %xmm5 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm3, %xmm5 + movl $-2147483648, %esi + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm3 + andl $32752, %eax + subl $18416, %eax + sarl $4, %eax + cvtsi2sdl %eax, %xmm7 + mulpd %xmm0, %xmm5 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_5.0.2: + cmpl $0, %eax + jl .L_2TAG_PACKET_13.0.2 + cmpl $736, %eax + jae .L_2TAG_PACKET_14.0.2 +.L_2TAG_PACKET_15.0.2: + addsd %xmm7, %xmm0 + movsd 12544(%ebx), %xmm2 + addpd %xmm0, %xmm3 + xorpd %xmm6, %xmm6 + movl $17080, %eax + pinsrw $3, %eax, %xmm6 + pshufd $238, %xmm3, %xmm0 + addsd %xmm3, %xmm0 + movapd %xmm5, %xmm3 + addsd %xmm0, %xmm5 + movapd %xmm2, %xmm4 + subsd %xmm5, %xmm3 + movapd %xmm5, %xmm7 + andpd %xmm2, %xmm5 + movapd %xmm1, %xmm2 + andpd %xmm1, %xmm4 + subsd %xmm5, %xmm7 + addsd %xmm3, %xmm0 + subsd %xmm4, %xmm1 + mulsd %xmm5, %xmm4 + addsd %xmm7, %xmm0 + mulsd %xmm0, %xmm2 + movapd %xmm6, %xmm7 + mulsd %xmm5, %xmm1 + addsd %xmm4, %xmm6 + movd %xmm6, %eax + subsd %xmm7, %xmm6 + addsd %xmm1, %xmm2 + movapd 12480(%ebx), %xmm7 + movapd 12496(%ebx), %xmm3 + subsd %xmm6, %xmm4 + pextrw $3, %xmm6, %edx + movl %eax, %ecx + andl $255, %eax + addl %eax, %eax + movapd 8384(%ebx,%eax,8), %xmm5 + addsd %xmm4, %xmm2 + sarl $8, %ecx + movl %ecx, %eax + sarl $1, %ecx + subl %ecx, %eax + shll $20, %ecx + xorl %esi, %ecx + movd %ecx, %xmm6 + movsd 12512(%ebx), %xmm1 + andl $32767, %edx + cmpl $16529, %edx + ja .L_2TAG_PACKET_14.0.2 + pshufd $68, %xmm2, %xmm0 + pshufd $68, %xmm2, %xmm4 + mulpd %xmm0, %xmm0 + mulpd %xmm4, %xmm7 + pshufd $17, %xmm6, %xmm6 + mulsd %xmm2, %xmm1 + mulsd %xmm0, %xmm0 + paddd %xmm6, %xmm5 + addpd %xmm7, %xmm3 + mulsd %xmm5, %xmm1 + pshufd $238, %xmm5, %xmm6 + mulpd %xmm3, %xmm0 + addsd %xmm6, %xmm1 + pshufd $238, %xmm0, %xmm3 + mulsd %xmm5, %xmm0 + mulsd %xmm5, %xmm3 + shll $4, %eax + xorpd %xmm4, %xmm4 + addl $16368, %eax + pinsrw $3, %eax, %xmm4 + addsd %xmm1, %xmm0 + movl 24(%esp), %esi + addsd %xmm3, %xmm0 + movapd %xmm0, %xmm1 + addsd %xmm5, %xmm0 + mulsd %xmm4, %xmm0 + pextrw $3, %xmm0, %eax + andl $32752, %eax + je .L_2TAG_PACKET_16.0.2 + cmpl $32752, %eax + je .L_2TAG_PACKET_17.0.2 +.L_2TAG_PACKET_18.0.2: + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_8.0.2: + movsd 16(%esp), %xmm1 + movsd 8(%esp), %xmm0 + movapd %xmm0, %xmm2 + movd %xmm2, %eax + psrlq $20, %xmm2 + movd %xmm2, %edx + orl %edx, %eax + je .L_2TAG_PACKET_19.0.2 + addsd %xmm0, %xmm0 + movd %xmm1, %eax + psrlq $32, %xmm1 + movd %xmm1, %edx + movl %edx, %ecx + addl %edx, %edx + orl %edx, %eax + je .L_2TAG_PACKET_20.0.2 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_20.0.2: + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + movl $29, %edx + jmp .L_2TAG_PACKET_21.0.2 +.L_2TAG_PACKET_22.0.2: + movsd 16(%esp), %xmm0 + addpd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_19.0.2: + movd %xmm1, %eax + movapd %xmm1, %xmm2 + psrlq $32, %xmm1 + movd %xmm1, %edx + movl %edx, %ecx + addl %edx, %edx + orl %edx, %eax + je .L_2TAG_PACKET_23.0.2 + pextrw $3, %xmm2, %eax + andl $32752, %eax + cmpl $32752, %eax + jne .L_2TAG_PACKET_24.0.2 + movd %xmm2, %eax + psrlq $20, %xmm2 + movd %xmm2, %edx + orl %edx, %eax + jne .L_2TAG_PACKET_22.0.2 +.L_2TAG_PACKET_24.0.2: + pextrw $3, %xmm0, %eax + testl $32768, %eax + jne .L_2TAG_PACKET_25.0.2 + testl $-2147483648, %ecx + jne .L_2TAG_PACKET_26.0.2 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_27.0.2: + movsd 16(%esp), %xmm1 + movd %xmm1, %eax + testl $1, %eax + jne .L_2TAG_PACKET_28.0.2 + testl $2, %eax + jne .L_2TAG_PACKET_29.0.2 + jmp .L_2TAG_PACKET_28.0.2 +.L_2TAG_PACKET_25.0.2: + shrl $20, %ecx + andl $2047, %ecx + cmpl $1075, %ecx + ja .L_2TAG_PACKET_28.0.2 + je .L_2TAG_PACKET_30.0.2 + cmpl $1074, %ecx + ja .L_2TAG_PACKET_27.0.2 + cmpl $1023, %ecx + jb .L_2TAG_PACKET_28.0.2 + movsd 16(%esp), %xmm1 + movl $17208, %eax + xorpd %xmm3, %xmm3 + pinsrw $3, %eax, %xmm3 + movapd %xmm3, %xmm4 + addsd %xmm1, %xmm3 + subsd %xmm3, %xmm4 + addsd %xmm4, %xmm1 + pextrw $3, %xmm1, %eax + andl $32752, %eax + jne .L_2TAG_PACKET_28.0.2 + movd %xmm3, %eax + andl $1, %eax + je .L_2TAG_PACKET_28.0.2 +.L_2TAG_PACKET_29.0.2: + movsd 16(%esp), %xmm1 + pextrw $3, %xmm1, %eax + andl $32768, %eax + je .L_2TAG_PACKET_18.0.2 + xorpd %xmm0, %xmm0 + movl $32768, %eax + pinsrw $3, %eax, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_28.0.2: + movsd 16(%esp), %xmm1 + pextrw $3, %xmm1, %eax + andl $32768, %eax + jne .L_2TAG_PACKET_26.0.2 +.L_2TAG_PACKET_31.0.2: + xorpd %xmm0, %xmm0 + movl $32752, %eax + pinsrw $3, %eax, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_30.0.2: + movsd 16(%esp), %xmm1 + movd %xmm1, %eax + andl $1, %eax + je .L_2TAG_PACKET_28.0.2 + jmp .L_2TAG_PACKET_29.0.2 +.L_2TAG_PACKET_32.0.2: + movd %xmm1, %eax + psrlq $20, %xmm1 + movd %xmm1, %edx + orl %edx, %eax + je .L_2TAG_PACKET_33.0.2 + movsd 16(%esp), %xmm0 + addsd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_33.0.2: + movsd 8(%esp), %xmm0 + pextrw $3, %xmm0, %eax + cmpl $49136, %eax + jne .L_2TAG_PACKET_34.0.2 + movd %xmm0, %ecx + psrlq $20, %xmm0 + movd %xmm0, %edx + orl %edx, %ecx + jne .L_2TAG_PACKET_34.0.2 + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_34.0.2: + movsd 16(%esp), %xmm1 + andl $32752, %eax + subl $16368, %eax + pextrw $3, %xmm1, %edx + xorpd %xmm0, %xmm0 + xorl %edx, %eax + andl $32768, %eax + jne .L_2TAG_PACKET_18.0.2 + movl $32752, %ecx + pinsrw $3, %ecx, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_35.0.2: + movd %xmm1, %eax + cmpl $17184, %edx + ja .L_2TAG_PACKET_36.0.2 + testl $1, %eax + jne .L_2TAG_PACKET_37.0.2 + testl $2, %eax + je .L_2TAG_PACKET_38.0.2 + jmp .L_2TAG_PACKET_39.0.2 +.L_2TAG_PACKET_36.0.2: + testl $1, %eax + je .L_2TAG_PACKET_38.0.2 + jmp .L_2TAG_PACKET_39.0.2 +.L_2TAG_PACKET_9.0.2: + movsd 8(%esp), %xmm2 + movd %xmm2, %eax + psrlq $31, %xmm2 + movd %xmm2, %ecx + orl %ecx, %eax + je .L_2TAG_PACKET_11.0.2 + movsd 16(%esp), %xmm1 + pextrw $3, %xmm1, %edx + movd %xmm1, %eax + movapd %xmm1, %xmm2 + psrlq $32, %xmm2 + movd %xmm2, %ecx + addl %ecx, %ecx + orl %eax, %ecx + je .L_2TAG_PACKET_40.0.2 + andl $32752, %edx + cmpl $32752, %edx + je .L_2TAG_PACKET_32.0.2 + cmpl $17200, %edx + ja .L_2TAG_PACKET_38.0.2 + cmpl $17184, %edx + jae .L_2TAG_PACKET_35.0.2 + cmpl $16368, %edx + jb .L_2TAG_PACKET_37.0.2 + movl $17208, %eax + xorpd %xmm2, %xmm2 + pinsrw $3, %eax, %xmm2 + movapd %xmm2, %xmm4 + addsd %xmm1, %xmm2 + subsd %xmm2, %xmm4 + addsd %xmm4, %xmm1 + pextrw $3, %xmm1, %eax + andl $32767, %eax + jne .L_2TAG_PACKET_37.0.2 + movd %xmm2, %eax + andl $1, %eax + je .L_2TAG_PACKET_38.0.2 +.L_2TAG_PACKET_39.0.2: + xorpd %xmm1, %xmm1 + movl $30704, %edx + pinsrw $3, %edx, %xmm1 + movsd 8256(%ebx), %xmm2 + movsd 8(%esp), %xmm4 + pextrw $3, %xmm4, %eax + movl $8192, %edx + movd %edx, %xmm4 + andl $32767, %eax + subl $16, %eax + jl .L_2TAG_PACKET_12.0.2 + movl %eax, %edx + andl $32752, %edx + subl $16368, %edx + movl %edx, %ecx + sarl $31, %edx + addl %edx, %ecx + xorl %edx, %ecx + addl $16, %ecx + bsr %ecx, %ecx + movl $-2147483648, %esi + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_37.0.2: + xorpd %xmm1, %xmm1 + movl $32752, %eax + pinsrw $3, %eax, %xmm1 + xorpd %xmm0, %xmm0 + mulsd %xmm1, %xmm0 + movl $28, %edx + jmp .L_2TAG_PACKET_21.0.2 +.L_2TAG_PACKET_38.0.2: + xorpd %xmm1, %xmm1 + movl $30704, %edx + pinsrw $3, %edx, %xmm1 + movsd 8256(%ebx), %xmm2 + movsd 8(%esp), %xmm4 + pextrw $3, %xmm4, %eax + movl $8192, %edx + movd %edx, %xmm4 + andl $32767, %eax + subl $16, %eax + jl .L_2TAG_PACKET_10.0.2 + movl %eax, %edx + andl $32752, %edx + subl $16368, %edx + movl %edx, %ecx + sarl $31, %edx + addl %edx, %ecx + xorl %edx, %ecx + addl $16, %ecx + bsr %ecx, %ecx + movl $0, %esi + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_23.0.2: + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_26.0.2: + xorpd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_13.0.2: + addl $384, %eax + cmpl $0, %eax + jl .L_2TAG_PACKET_41.0.2 + mulsd %xmm1, %xmm5 + addsd %xmm7, %xmm0 + shrl $31, %esi + addpd %xmm0, %xmm3 + pshufd $238, %xmm3, %xmm0 + addsd %xmm0, %xmm3 + movsd 12528(%ebx,%esi,8), %xmm4 + mulsd %xmm3, %xmm1 + xorpd %xmm0, %xmm0 + movl $16368, %eax + shll $15, %esi + orl %esi, %eax + pinsrw $3, %eax, %xmm0 + addsd %xmm1, %xmm5 + movl 24(%esp), %esi + mulsd %xmm4, %xmm5 + addsd %xmm5, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_41.0.2: + movl 24(%esp), %esi + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_40.0.2: + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_42.0.2: + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + movl $26, %edx + jmp .L_2TAG_PACKET_21.0.2 +.L_2TAG_PACKET_11.0.2: + movsd 16(%esp), %xmm1 + movapd %xmm1, %xmm2 + pextrw $3, %xmm1, %eax + andl $32752, %eax + cmpl $32752, %eax + jne .L_2TAG_PACKET_43.0.2 + movd %xmm2, %eax + psrlq $20, %xmm2 + movd %xmm2, %edx + orl %edx, %eax + jne .L_2TAG_PACKET_22.0.2 +.L_2TAG_PACKET_43.0.2: + movd %xmm1, %eax + psrlq $32, %xmm1 + movd %xmm1, %edx + movl %edx, %ecx + addl %edx, %edx + orl %edx, %eax + je .L_2TAG_PACKET_42.0.2 + shrl $21, %edx + cmpl $1075, %edx + ja .L_2TAG_PACKET_44.0.2 + je .L_2TAG_PACKET_45.0.2 + cmpl $1023, %edx + jb .L_2TAG_PACKET_44.0.2 + movsd 16(%esp), %xmm1 + movl $17208, %eax + xorpd %xmm3, %xmm3 + pinsrw $3, %eax, %xmm3 + movapd %xmm3, %xmm4 + addsd %xmm1, %xmm3 + subsd %xmm3, %xmm4 + addsd %xmm4, %xmm1 + pextrw $3, %xmm1, %eax + andl $32752, %eax + jne .L_2TAG_PACKET_44.0.2 + movd %xmm3, %eax + andl $1, %eax + je .L_2TAG_PACKET_44.0.2 +.L_2TAG_PACKET_46.0.2: + movsd 8(%esp), %xmm0 + testl $-2147483648, %ecx + jne .L_2TAG_PACKET_47.0.2 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_45.0.2: + movsd 16(%esp), %xmm1 + movd %xmm1, %eax + testl $1, %eax + jne .L_2TAG_PACKET_46.0.2 +.L_2TAG_PACKET_44.0.2: + testl $-2147483648, %ecx + je .L_2TAG_PACKET_26.0.2 + xorpd %xmm0, %xmm0 +.L_2TAG_PACKET_47.0.2: + movl $16368, %eax + xorpd %xmm1, %xmm1 + pinsrw $3, %eax, %xmm1 + divsd %xmm0, %xmm1 + movapd %xmm1, %xmm0 + movl $27, %edx + jmp .L_2TAG_PACKET_21.0.2 +.L_2TAG_PACKET_14.0.2: + movsd 8(%esp), %xmm2 + movsd 16(%esp), %xmm6 + pextrw $3, %xmm2, %eax + pextrw $3, %xmm6, %edx + movl $32752, %ecx + andl %edx, %ecx + cmpl $32752, %ecx + je .L_2TAG_PACKET_48.0.2 + andl $32752, %eax + subl $16368, %eax + xorl %eax, %edx + testl $32768, %edx + jne .L_2TAG_PACKET_49.0.2 +.L_2TAG_PACKET_50.0.2: + movl $32736, %eax + pinsrw $3, %eax, %xmm0 + shrl $16, %esi + orl %esi, %eax + pinsrw $3, %eax, %xmm1 + movl 24(%esp), %esi + mulsd %xmm1, %xmm0 +.L_2TAG_PACKET_17.0.2: + movl $24, %edx +.L_2TAG_PACKET_21.0.2: + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_49.0.2: + movl $16, %eax + pinsrw $3, %eax, %xmm0 + mulsd %xmm0, %xmm0 + testl $-2147483648, %esi + je .L_2TAG_PACKET_51.0.2 + movsd 12560(%ebx), %xmm2 + xorpd %xmm2, %xmm0 +.L_2TAG_PACKET_51.0.2: + movl 24(%esp), %esi + movl $25, %edx + jmp .L_2TAG_PACKET_21.0.2 +.L_2TAG_PACKET_16.0.2: + pextrw $3, %xmm5, %ecx + pextrw $3, %xmm4, %edx + movl $-1, %eax + andl $32752, %ecx + subl $16368, %ecx + andl $32752, %edx + addl %ecx, %edx + movl $-31, %ecx + sarl $4, %edx + subl %edx, %ecx + jle .L_2TAG_PACKET_52.0.2 + cmpl $20, %ecx + ja .L_2TAG_PACKET_53.0.2 + shll %cl, %eax +.L_2TAG_PACKET_52.0.2: + movd %eax, %xmm0 + psllq $32, %xmm0 + andpd %xmm5, %xmm0 + subsd %xmm0, %xmm5 + addsd %xmm1, %xmm5 + mulsd %xmm4, %xmm0 + mulsd %xmm4, %xmm5 + addsd %xmm5, %xmm0 +.L_2TAG_PACKET_53.0.2: + movl $25, %edx + jmp .L_2TAG_PACKET_21.0.2 +.L_2TAG_PACKET_2.0.2: + movzwl 22(%esp), %ecx + movl $-2147483648, %edx + movd %edx, %xmm1 + xorpd %xmm7, %xmm7 + paddd %xmm4, %xmm0 + psllq $32, %xmm5 + movd %xmm0, %edx + psllq $29, %xmm0 + paddq %xmm3, %xmm1 + andpd %xmm1, %xmm5 + andl $32752, %ecx + cmpl $16560, %ecx + jb .L_2TAG_PACKET_3.0.2 + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm3 + addl $16351, %eax + shrl $4, %eax + subl $1022, %eax + cvtsi2sdl %eax, %xmm7 + mulpd %xmm0, %xmm5 + movsd (%ebx), %xmm4 + mulsd %xmm0, %xmm3 + movsd (%ebx), %xmm6 + subsd %xmm2, %xmm5 + movsd 8(%ebx), %xmm1 + pshufd $68, %xmm3, %xmm2 + unpcklpd %xmm3, %xmm5 + addsd %xmm5, %xmm3 + movsd 8(%ebx), %xmm0 + andl $16760832, %edx + shrl $10, %edx + addpd -3616(%ebx,%edx), %xmm7 + mulsd %xmm5, %xmm4 + mulsd %xmm5, %xmm0 + mulsd %xmm2, %xmm6 + mulsd %xmm2, %xmm1 + movapd %xmm5, %xmm2 + mulsd %xmm5, %xmm4 + addsd %xmm0, %xmm5 + movapd %xmm7, %xmm0 + addsd %xmm3, %xmm2 + addsd %xmm5, %xmm7 + mulsd %xmm2, %xmm6 + subsd %xmm7, %xmm0 + movapd %xmm7, %xmm2 + addsd %xmm4, %xmm7 + addsd %xmm5, %xmm0 + subsd %xmm7, %xmm2 + addsd %xmm2, %xmm4 + pshufd $238, %xmm5, %xmm2 + movapd %xmm7, %xmm5 + addsd %xmm2, %xmm7 + addsd %xmm0, %xmm4 + movapd 8272(%ebx), %xmm0 + subsd %xmm7, %xmm5 + addsd %xmm4, %xmm6 + movapd %xmm7, %xmm4 + addsd %xmm2, %xmm5 + addsd %xmm1, %xmm7 + movapd 8336(%ebx), %xmm2 + subsd %xmm7, %xmm4 + addsd %xmm5, %xmm6 + addsd %xmm1, %xmm4 + pshufd $238, %xmm7, %xmm5 + movapd %xmm7, %xmm1 + addsd %xmm5, %xmm7 + subsd %xmm7, %xmm1 + addsd %xmm5, %xmm1 + movapd 8352(%ebx), %xmm5 + pshufd $68, %xmm3, %xmm3 + addsd %xmm4, %xmm6 + addsd %xmm1, %xmm6 + movapd 8304(%ebx), %xmm1 + mulpd %xmm3, %xmm0 + mulpd %xmm3, %xmm2 + pshufd $68, %xmm3, %xmm4 + mulpd %xmm3, %xmm3 + addpd %xmm1, %xmm0 + addpd %xmm2, %xmm5 + mulsd %xmm3, %xmm4 + movsd 16(%ebx), %xmm2 + mulpd %xmm3, %xmm3 + movsd 16(%esp), %xmm1 + movzwl 22(%esp), %ecx + mulpd %xmm4, %xmm0 + pextrw $3, %xmm7, %eax + mulpd %xmm4, %xmm5 + mulpd %xmm3, %xmm0 + movsd 8376(%ebx), %xmm4 + andpd %xmm7, %xmm2 + addsd %xmm6, %xmm5 + subsd %xmm2, %xmm7 + addpd %xmm0, %xmm5 + andl $32752, %eax + subl $16368, %eax + andl $32752, %ecx + cmpl $32752, %ecx + je .L_2TAG_PACKET_48.0.2 + addl %eax, %ecx + cmpl $16576, %ecx + jae .L_2TAG_PACKET_54.0.2 + pshufd $238, %xmm5, %xmm0 + andpd %xmm1, %xmm4 + movapd %xmm1, %xmm3 + addsd %xmm0, %xmm5 + subsd %xmm4, %xmm1 + xorpd %xmm6, %xmm6 + movl $17080, %edx + pinsrw $3, %edx, %xmm6 + addsd %xmm5, %xmm7 + mulsd %xmm2, %xmm4 + mulsd %xmm2, %xmm1 + movapd %xmm6, %xmm5 + mulsd %xmm7, %xmm3 + addsd %xmm4, %xmm6 + addsd %xmm3, %xmm1 + movapd 12480(%ebx), %xmm7 + movd %xmm6, %edx + subsd %xmm5, %xmm6 + movapd 12496(%ebx), %xmm3 + movsd 12512(%ebx), %xmm2 + subsd %xmm6, %xmm4 + movl %edx, %ecx + andl $255, %edx + addl %edx, %edx + movapd 8384(%ebx,%edx,8), %xmm5 + addsd %xmm1, %xmm4 + pextrw $3, %xmm6, %edx + shrl $8, %ecx + movl %ecx, %eax + shrl $1, %ecx + subl %ecx, %eax + shll $20, %ecx + movd %ecx, %xmm6 + pshufd $68, %xmm4, %xmm0 + pshufd $68, %xmm4, %xmm1 + mulpd %xmm0, %xmm0 + mulpd %xmm1, %xmm7 + pshufd $17, %xmm6, %xmm6 + mulsd %xmm4, %xmm2 + andl $32767, %edx + cmpl $16529, %edx + ja .L_2TAG_PACKET_14.0.2 + mulsd %xmm0, %xmm0 + paddd %xmm6, %xmm5 + addpd %xmm7, %xmm3 + mulsd %xmm5, %xmm2 + pshufd $238, %xmm5, %xmm6 + mulpd %xmm3, %xmm0 + addsd %xmm6, %xmm2 + pshufd $238, %xmm0, %xmm3 + addl $1023, %eax + shll $20, %eax + orl %esi, %eax + movd %eax, %xmm4 + mulsd %xmm5, %xmm0 + mulsd %xmm5, %xmm3 + addsd %xmm2, %xmm0 + psllq $32, %xmm4 + addsd %xmm3, %xmm0 + movapd %xmm0, %xmm1 + addsd %xmm5, %xmm0 + movl 24(%esp), %esi + mulsd %xmm4, %xmm0 + pextrw $3, %xmm0, %eax + andl $32752, %eax + je .L_2TAG_PACKET_16.0.2 + cmpl $32752, %eax + je .L_2TAG_PACKET_17.0.2 +.L_2TAG_PACKET_55.0.2: + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_48.0.2: + movl 24(%esp), %esi +.L_2TAG_PACKET_56.0.2: + movsd 8(%esp), %xmm0 + movsd 16(%esp), %xmm1 + addsd %xmm1, %xmm1 + xorpd %xmm2, %xmm2 + movl $49136, %eax + pinsrw $3, %eax, %xmm2 + addsd %xmm0, %xmm2 + pextrw $3, %xmm2, %eax + cmpl $0, %eax + je .L_2TAG_PACKET_18.0.2 + movd %xmm1, %edx + movapd %xmm1, %xmm3 + psrlq $20, %xmm3 + movd %xmm3, %ecx + orl %edx, %ecx + je .L_2TAG_PACKET_57.0.2 + addsd %xmm1, %xmm1 + movapd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_57.0.2: + pextrw $3, %xmm0, %eax + andl $32752, %eax + pextrw $3, %xmm1, %edx + xorpd %xmm0, %xmm0 + subl $16368, %eax + xorl %edx, %eax + testl $32768, %eax + jne .L_2TAG_PACKET_18.0.2 + movl $32752, %edx + pinsrw $3, %edx, %xmm0 + jmp .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_54.0.2: + pextrw $3, %xmm1, %eax + pextrw $3, %xmm2, %ecx + xorl %ecx, %eax + testl $32768, %eax + je .L_2TAG_PACKET_50.0.2 + jmp .L_2TAG_PACKET_49.0.2 +.L_2TAG_PACKET_6.0.2: + movl 64(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(pow) +# -- End pow + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 3218479616 + .long 0 + .long 3210587105 + .long 4160749568 + .long 4294967295 + .long 0 + .long 4294965248 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 536870912 + .long 1072689162 + .long 2523013013 + .long 1046157398 + .long 3758096384 + .long 1072685081 + .long 3851513758 + .long 3190968952 + .long 0 + .long 1072681007 + .long 2241466466 + .long 1046044599 + .long 3221225472 + .long 1072676937 + .long 2990928271 + .long 3193084984 + .long 3758096384 + .long 1072672873 + .long 2905112743 + .long 3192918576 + .long 1610612736 + .long 1072668815 + .long 3370591264 + .long 1046051793 + .long 2147483648 + .long 1072664762 + .long 3272361216 + .long 3193793653 + .long 3758096384 + .long 1072660714 + .long 46546755 + .long 1043206936 + .long 3221225472 + .long 1072656672 + .long 3017067724 + .long 3192177962 + .long 0 + .long 1072652636 + .long 3688436631 + .long 3192814956 + .long 2684354560 + .long 1072648604 + .long 1707461992 + .long 3193056712 + .long 2684354560 + .long 1072644578 + .long 1188114540 + .long 3193603086 + .long 3758096384 + .long 1072640557 + .long 3533180564 + .long 1045459375 + .long 2684354560 + .long 1072636542 + .long 2000337630 + .long 3193475557 + .long 2684354560 + .long 1072632532 + .long 3698062443 + .long 3193752766 + .long 3758096384 + .long 1072628527 + .long 3161606138 + .long 3190532995 + .long 2147483648 + .long 1072624528 + .long 3165265478 + .long 3193158459 + .long 1610612736 + .long 1072620534 + .long 1600940077 + .long 3193226777 + .long 2147483648 + .long 1072616545 + .long 1363272552 + .long 3192614278 + .long 3758096384 + .long 1072612561 + .long 3966209910 + .long 3191249654 + .long 2147483648 + .long 1072608583 + .long 1093672789 + .long 3190637330 + .long 1610612736 + .long 1072604610 + .long 1735239357 + .long 3192753616 + .long 1610612736 + .long 1072600642 + .long 1470665156 + .long 1045559697 + .long 2684354560 + .long 1072596679 + .long 3840624926 + .long 1045928953 + .long 536870912 + .long 1072592722 + .long 4259072556 + .long 3191035622 + .long 3221225472 + .long 1072588769 + .long 3613088753 + .long 3192165681 + .long 2147483648 + .long 1072584822 + .long 3175234446 + .long 1039486948 + .long 1610612736 + .long 1072580880 + .long 856576441 + .long 1045702812 + .long 2147483648 + .long 1072576943 + .long 2253498719 + .long 3193285334 + .long 2684354560 + .long 1072573011 + .long 1587070728 + .long 3190801577 + .long 3758096384 + .long 1072569084 + .long 159986317 + .long 1042519436 + .long 1073741824 + .long 1072565163 + .long 3999541949 + .long 3192020440 + .long 2684354560 + .long 1072561246 + .long 3281310262 + .long 1045586786 + .long 536870912 + .long 1072557335 + .long 3775179406 + .long 1045226055 + .long 3221225472 + .long 1072553428 + .long 643472356 + .long 3193681786 + .long 1073741824 + .long 1072549527 + .long 248169775 + .long 1045068977 + .long 3758096384 + .long 1072545630 + .long 307016632 + .long 1042640932 + .long 2147483648 + .long 1072541739 + .long 3872718526 + .long 3189781486 + .long 536870912 + .long 1072537853 + .long 969711630 + .long 3191724732 + .long 3221225472 + .long 1072533971 + .long 4018820394 + .long 3193189264 + .long 1073741824 + .long 1072530095 + .long 3102233092 + .long 1045510224 + .long 3758096384 + .long 1072526223 + .long 1029307912 + .long 3193812776 + .long 1073741824 + .long 1072522357 + .long 984083153 + .long 1045987403 + .long 3221225472 + .long 1072518495 + .long 4171455401 + .long 3193084080 + .long 0 + .long 1072514639 + .long 2592660757 + .long 1046121691 + .long 1073741824 + .long 1072510787 + .long 2964365712 + .long 1046054453 + .long 2147483648 + .long 1072506940 + .long 3792777877 + .long 3193704729 + .long 2147483648 + .long 1072503098 + .long 2948536104 + .long 3192467100 + .long 1610612736 + .long 1072499261 + .long 3836005619 + .long 1041873166 + .long 536870912 + .long 1072495429 + .long 3124543160 + .long 1044409168 + .long 3221225472 + .long 1072491601 + .long 286227933 + .long 1041065990 + .long 1073741824 + .long 1072487779 + .long 2111296776 + .long 3193604419 + .long 2147483648 + .long 1072483961 + .long 2606822001 + .long 3192940394 + .long 2147483648 + .long 1072480148 + .long 194696800 + .long 1046026063 + .long 1610612736 + .long 1072476340 + .long 8535452 + .long 1046200178 + .long 536870912 + .long 1072472537 + .long 950463625 + .long 3192731897 + .long 2147483648 + .long 1072468738 + .long 973831566 + .long 1045683197 + .long 3221225472 + .long 1072464944 + .long 3330435892 + .long 3190277577 + .long 3221225472 + .long 1072461155 + .long 208692097 + .long 3193517651 + .long 1610612736 + .long 1072457371 + .long 2113097415 + .long 1044781749 + .long 3758096384 + .long 1072453591 + .long 1088808936 + .long 3193716142 + .long 0 + .long 1072449817 + .long 1443002127 + .long 3193250205 + .long 3221225472 + .long 1072446046 + .long 3967357419 + .long 1046109477 + .long 1610612736 + .long 1072442281 + .long 3013517861 + .long 3193159691 + .long 2147483648 + .long 1072438520 + .long 2524586286 + .long 1046121951 + .long 1610612736 + .long 1072434764 + .long 1476892861 + .long 1046434731 + .long 0 + .long 1072431013 + .long 3089640950 + .long 3192305780 + .long 536870912 + .long 1072427266 + .long 3812255529 + .long 1045730879 + .long 0 + .long 1072423524 + .long 995354762 + .long 3191528673 + .long 1610612736 + .long 1072419786 + .long 3260567684 + .long 1046273695 + .long 2147483648 + .long 1072416053 + .long 2738210286 + .long 3191471516 + .long 536870912 + .long 1072412325 + .long 1931849805 + .long 1044560405 + .long 1610612736 + .long 1072408601 + .long 358896655 + .long 1044029237 + .long 1073741824 + .long 1072404882 + .long 2214589842 + .long 3193202126 + .long 2684354560 + .long 1072401167 + .long 3118097363 + .long 3192592906 + .long 2147483648 + .long 1072397457 + .long 1835998884 + .long 1045788247 + .long 0 + .long 1072393752 + .long 1585488319 + .long 1045289910 + .long 0 + .long 1072390051 + .long 480160949 + .long 1046030455 + .long 2684354560 + .long 1072386354 + .long 1832959667 + .long 3193013644 + .long 2684354560 + .long 1072382662 + .long 3611346555 + .long 1044544210 + .long 1073741824 + .long 1072378975 + .long 2749418734 + .long 3193712580 + .long 1073741824 + .long 1072375292 + .long 2390043472 + .long 3191710658 + .long 3221225472 + .long 1072371613 + .long 2828199902 + .long 1042265217 + .long 3221225472 + .long 1072367939 + .long 569209321 + .long 3191230982 + .long 536870912 + .long 1072364270 + .long 236159139 + .long 1046240123 + .long 536870912 + .long 1072360605 + .long 1010656270 + .long 3193813968 + .long 1610612736 + .long 1072356944 + .long 2409080597 + .long 1044025029 + .long 536870912 + .long 1072353288 + .long 598419513 + .long 1043327370 + .long 1073741824 + .long 1072349636 + .long 4105950479 + .long 1045747958 + .long 3758096384 + .long 1072345988 + .long 343243853 + .long 3192420172 + .long 3221225472 + .long 1072342345 + .long 2088439530 + .long 1046172091 + .long 536870912 + .long 1072338707 + .long 4117721107 + .long 1043882496 + .long 3758096384 + .long 1072335072 + .long 3192032958 + .long 3192998645 + .long 3758096384 + .long 1072331442 + .long 2366522518 + .long 1045401957 + .long 1610612736 + .long 1072327817 + .long 3685533141 + .long 3193701947 + .long 536870912 + .long 1072324196 + .long 1058658672 + .long 3193572492 + .long 536870912 + .long 1072320579 + .long 166346347 + .long 1045456348 + .long 2147483648 + .long 1072316966 + .long 2027889772 + .long 1046349302 + .long 1073741824 + .long 1072313358 + .long 1079497888 + .long 1044585259 + .long 1073741824 + .long 1072309754 + .long 2189851573 + .long 1045132990 + .long 2684354560 + .long 1072306154 + .long 2486629386 + .long 3193613625 + .long 536870912 + .long 1072302559 + .long 1263686579 + .long 1044789259 + .long 0 + .long 1072298968 + .long 2412061798 + .long 3191369627 + .long 536870912 + .long 1072295381 + .long 584315716 + .long 3193144135 + .long 1610612736 + .long 1072291798 + .long 449000738 + .long 1046330451 + .long 0 + .long 1072288220 + .long 3938320157 + .long 1044446220 + .long 3758096384 + .long 1072284645 + .long 2949844595 + .long 3193462371 + .long 3758096384 + .long 1072281075 + .long 2771329642 + .long 3192121593 + .long 536870912 + .long 1072277510 + .long 3971508621 + .long 3193002806 + .long 2147483648 + .long 1072273948 + .long 4071942301 + .long 1044952619 + .long 536870912 + .long 1072270391 + .long 2090502395 + .long 1044660556 + .long 0 + .long 1072266838 + .long 3657520961 + .long 3193770938 + .long 3758096384 + .long 1072263288 + .long 1608175110 + .long 1045543239 + .long 0 + .long 1072259744 + .long 2506924180 + .long 1045530501 + .long 1073741824 + .long 1072256203 + .long 18238493 + .long 1046305623 + .long 3221225472 + .long 1072252666 + .long 3862640487 + .long 3192882407 + .long 1073741824 + .long 1072249134 + .long 3850158761 + .long 1043656099 + .long 3758096384 + .long 1072245605 + .long 2356524356 + .long 1045915296 + .long 3221225472 + .long 1072242081 + .long 936497287 + .long 3193842353 + .long 2147483648 + .long 1072238561 + .long 2840845344 + .long 1046454771 + .long 2147483648 + .long 1072235045 + .long 3688100713 + .long 1044895451 + .long 2684354560 + .long 1072231533 + .long 479979913 + .long 3193842442 + .long 2684354560 + .long 1072228025 + .long 1016321898 + .long 1046251032 + .long 3758096384 + .long 1072224521 + .long 562232474 + .long 3191974558 + .long 536870912 + .long 1072221022 + .long 3870512029 + .long 3193113881 + .long 1610612736 + .long 1072217526 + .long 1239780547 + .long 3191583604 + .long 2684354560 + .long 1072214034 + .long 2815421327 + .long 1045873682 + .long 0 + .long 1072210547 + .long 2371009561 + .long 1041508792 + .long 1610612736 + .long 1072207063 + .long 1304636524 + .long 3192414284 + .long 3221225472 + .long 1072203583 + .long 210144854 + .long 3193327333 + .long 0 + .long 1072200108 + .long 1454303272 + .long 1046360024 + .long 1610612736 + .long 1072196636 + .long 2095757548 + .long 1044984677 + .long 3221225472 + .long 1072193168 + .long 2027215580 + .long 3192880933 + .long 0 + .long 1072189705 + .long 214794880 + .long 1043457954 + .long 1073741824 + .long 1072186245 + .long 884624917 + .long 1043497079 + .long 2147483648 + .long 1072182789 + .long 2792396634 + .long 3193171685 + .long 2684354560 + .long 1072179337 + .long 4128995250 + .long 3192103434 + .long 2684354560 + .long 1072175889 + .long 333866043 + .long 1046372325 + .long 3221225472 + .long 1072172445 + .long 2194445544 + .long 3193958905 + .long 2684354560 + .long 1072169005 + .long 2316082269 + .long 3192041703 + .long 1610612736 + .long 1072165569 + .long 581005057 + .long 1046322848 + .long 536870912 + .long 1072162137 + .long 3280786513 + .long 1045457251 + .long 3221225472 + .long 1072158708 + .long 2567093361 + .long 1044710359 + .long 1073741824 + .long 1072155284 + .long 3740443584 + .long 1044224237 + .long 2684354560 + .long 1072151863 + .long 3981028272 + .long 1042596351 + .long 3758096384 + .long 1072148446 + .long 3820011120 + .long 3191915623 + .long 0 + .long 1072145034 + .long 2946439484 + .long 3193831276 + .long 3758096384 + .long 1072141624 + .long 3075274422 + .long 3190132432 + .long 2684354560 + .long 1072138219 + .long 496052167 + .long 1043619760 + .long 1073741824 + .long 1072134818 + .long 271106589 + .long 3192265149 + .long 2684354560 + .long 1072131420 + .long 2091955684 + .long 1044443554 + .long 3758096384 + .long 1072128026 + .long 723240109 + .long 3191007419 + .long 3758096384 + .long 1072124636 + .long 1748629070 + .long 1044510075 + .long 3221225472 + .long 1072121250 + .long 3289522046 + .long 3193095178 + .long 1610612736 + .long 1072117868 + .long 3599052146 + .long 3193720427 + .long 3221225472 + .long 1072114489 + .long 2446758135 + .long 3193436303 + .long 3758096384 + .long 1072111114 + .long 1652171097 + .long 3192137173 + .long 3221225472 + .long 1072107743 + .long 1353007155 + .long 1044523902 + .long 1610612736 + .long 1072104376 + .long 990601105 + .long 1046296663 + .long 3758096384 + .long 1072101012 + .long 2228627618 + .long 3193041040 + .long 0 + .long 1072097653 + .long 812484756 + .long 3191950723 + .long 3758096384 + .long 1072094296 + .long 817833130 + .long 3192279242 + .long 2147483648 + .long 1072090944 + .long 3563228521 + .long 3193810951 + .long 3221225472 + .long 1072087595 + .long 2729108859 + .long 3190936185 + .long 3221225472 + .long 1072084250 + .long 2249121662 + .long 3190639690 + .long 2147483648 + .long 1072080909 + .long 4082471745 + .long 3193929368 + .long 3758096384 + .long 1072077571 + .long 2827323806 + .long 3193708561 + .long 3758096384 + .long 1072074237 + .long 735866167 + .long 1042434690 + .long 2684354560 + .long 1072070907 + .long 3240808889 + .long 3191918422 + .long 0 + .long 1072067581 + .long 466482777 + .long 3186962221 + .long 0 + .long 1072064258 + .long 1576076296 + .long 1045849056 + .long 3221225472 + .long 1072060938 + .long 2751923560 + .long 3191910703 + .long 0 + .long 1072057623 + .long 1908755527 + .long 1046437515 + .long 0 + .long 1072054311 + .long 3175841411 + .long 1044572886 + .long 2684354560 + .long 1072051002 + .long 1633258450 + .long 3192670420 + .long 3221225472 + .long 1072047697 + .long 1867746657 + .long 1045726209 + .long 2684354560 + .long 1072044396 + .long 338968864 + .long 3193084662 + .long 0 + .long 1072041099 + .long 1501742471 + .long 3191742031 + .long 0 + .long 1072037805 + .long 4266775786 + .long 3192686970 + .long 2147483648 + .long 1072034514 + .long 4249283553 + .long 1045769728 + .long 2684354560 + .long 1072031227 + .long 2758366873 + .long 1046402161 + .long 1610612736 + .long 1072027944 + .long 2161186990 + .long 1044736865 + .long 2684354560 + .long 1072024664 + .long 810300171 + .long 1045748777 + .long 2147483648 + .long 1072021388 + .long 183688927 + .long 3191515581 + .long 3758096384 + .long 1072018115 + .long 368874072 + .long 3192363575 + .long 3221225472 + .long 1072014846 + .long 2459092970 + .long 1041794640 + .long 536870912 + .long 1072011581 + .long 867488640 + .long 1046310291 + .long 536870912 + .long 1072008319 + .long 50140871 + .long 1043327329 + .long 2684354560 + .long 1072005060 + .long 1241902518 + .long 3192739252 + .long 2684354560 + .long 1072001805 + .long 1027881659 + .long 3193858388 + .long 0 + .long 1071998554 + .long 38457322 + .long 1045489179 + .long 0 + .long 1071995306 + .long 3432963337 + .long 3190969347 + .long 1610612736 + .long 1071992061 + .long 534931792 + .long 1046302734 + .long 1610612736 + .long 1071988820 + .long 1817895268 + .long 3192551860 + .long 3221225472 + .long 1071985582 + .long 357237383 + .long 3191870833 + .long 2684354560 + .long 1071982348 + .long 108262401 + .long 3193365867 + .long 3758096384 + .long 1071979117 + .long 1964729244 + .long 1042502249 + .long 2684354560 + .long 1071975890 + .long 2088446957 + .long 1038010503 + .long 3221225472 + .long 1071972666 + .long 2947239447 + .long 1046377845 + .long 1610612736 + .long 1071969446 + .long 774932072 + .long 1046064854 + .long 2147483648 + .long 1071966229 + .long 4080937590 + .long 3193041284 + .long 3758096384 + .long 1071963015 + .long 2208251454 + .long 1045945089 + .long 3221225472 + .long 1071959805 + .long 2850924475 + .long 1045650959 + .long 0 + .long 1071956599 + .long 714040997 + .long 1046275153 + .long 3221225472 + .long 1071953395 + .long 85533782 + .long 3192816920 + .long 3221225472 + .long 1071950195 + .long 1252511005 + .long 1044805706 + .long 1073741824 + .long 1071946999 + .long 2384659038 + .long 3193391602 + .long 0 + .long 1071943806 + .long 416481813 + .long 1043730233 + .long 536870912 + .long 1071940616 + .long 1675424499 + .long 1046348030 + .long 3221225472 + .long 1071937429 + .long 1175989513 + .long 3193009113 + .long 2684354560 + .long 1071934246 + .long 2400084650 + .long 3192451713 + .long 3758096384 + .long 1071931066 + .long 1467335692 + .long 3193350868 + .long 1610612736 + .long 1071927890 + .long 266493801 + .long 1044954481 + .long 1073741824 + .long 1071924717 + .long 3919093445 + .long 1046023575 + .long 2147483648 + .long 1071921547 + .long 3017408483 + .long 1044880828 + .long 536870912 + .long 1071918381 + .long 948849966 + .long 3193892224 + .long 3758096384 + .long 1071915217 + .long 1870232600 + .long 1045777228 + .long 536870912 + .long 1071912058 + .long 822381492 + .long 3193639186 + .long 2147483648 + .long 1071908901 + .long 788243705 + .long 1044966343 + .long 1073741824 + .long 1071905748 + .long 1344278809 + .long 1044428545 + .long 1073741824 + .long 1071902598 + .long 172864300 + .long 1045765608 + .long 2684354560 + .long 1071899451 + .long 211555467 + .long 3192963574 + .long 536870912 + .long 1071896308 + .long 3373438023 + .long 1045643168 + .long 0 + .long 1071893168 + .long 2867180960 + .long 3189945998 + .long 536870912 + .long 1071890031 + .long 36724362 + .long 3193240584 + .long 1610612736 + .long 1071886897 + .long 2140176984 + .long 1045945349 + .long 0 + .long 1071883767 + .long 436842360 + .long 1040712587 + .long 3758096384 + .long 1071880639 + .long 1225147329 + .long 3193814594 + .long 3758096384 + .long 1071877515 + .long 1586157348 + .long 3191614322 + .long 536870912 + .long 1071874395 + .long 3329332918 + .long 1041699791 + .long 2684354560 + .long 1071871277 + .long 1635968041 + .long 3191783756 + .long 1073741824 + .long 1071868163 + .long 2876158382 + .long 1046097093 + .long 1073741824 + .long 1071865052 + .long 4267556964 + .long 3193723000 + .long 1073741824 + .long 1071861944 + .long 195475940 + .long 1045520795 + .long 2147483648 + .long 1071858839 + .long 2239193514 + .long 1046478675 + .long 0 + .long 1071855738 + .long 4168275596 + .long 1044926285 + .long 2684354560 + .long 1071852639 + .long 142514114 + .long 1045595182 + .long 2147483648 + .long 1071849544 + .long 1943457984 + .long 3192930015 + .long 2147483648 + .long 1071846452 + .long 202659489 + .long 3193926317 + .long 2684354560 + .long 1071843363 + .long 2208408789 + .long 3193857484 + .long 3758096384 + .long 1071840277 + .long 2237297552 + .long 3192939576 + .long 1073741824 + .long 1071837195 + .long 2726920839 + .long 1044193954 + .long 3758096384 + .long 1071834115 + .long 2337732207 + .long 3193611773 + .long 2147483648 + .long 1071831039 + .long 1390088602 + .long 1044000317 + .long 1610612736 + .long 1071827966 + .long 3806188736 + .long 3193463913 + .long 1073741824 + .long 1071824896 + .long 1795276560 + .long 1043671965 + .long 1073741824 + .long 1071821829 + .long 2960792799 + .long 1046240474 + .long 2147483648 + .long 1071818765 + .long 3350591592 + .long 3193333939 + .long 3221225472 + .long 1071815704 + .long 408870754 + .long 3193322854 + .long 0 + .long 1071812647 + .long 4146717132 + .long 1046063520 + .long 2147483648 + .long 1071809592 + .long 1681114919 + .long 3192114313 + .long 0 + .long 1071806541 + .long 1098393137 + .long 3190846732 + .long 2684354560 + .long 1071803492 + .long 2437484983 + .long 3193448718 + .long 1073741824 + .long 1071800447 + .long 1036809185 + .long 3192023501 + .long 0 + .long 1071797405 + .long 659668848 + .long 3193596312 + .long 3221225472 + .long 1071794365 + .long 1112062459 + .long 3192773376 + .long 2147483648 + .long 1071791329 + .long 4082956335 + .long 1045830513 + .long 1610612736 + .long 1071788296 + .long 2387089965 + .long 1045532601 + .long 1610612736 + .long 1071785266 + .long 1522101980 + .long 3193941957 + .long 1073741824 + .long 1071782239 + .long 2157197585 + .long 3188193305 + .long 1073741824 + .long 1071779215 + .long 946810220 + .long 3193223819 + .long 1073741824 + .long 1071776194 + .long 4069942444 + .long 3193878549 + .long 536870912 + .long 1071773176 + .long 1693463440 + .long 1046360588 + .long 536870912 + .long 1071770161 + .long 1954543254 + .long 1046409381 + .long 1073741824 + .long 1071767149 + .long 1050471249 + .long 3193933095 + .long 536870912 + .long 1071764140 + .long 1256240478 + .long 1046456865 + .long 536870912 + .long 1071761134 + .long 676764254 + .long 1046055503 + .long 536870912 + .long 1071758131 + .long 1421032967 + .long 1044779786 + .long 536870912 + .long 1071755131 + .long 38735992 + .long 3192766355 + .long 0 + .long 1071752134 + .long 2960669690 + .long 1044484680 + .long 3758096384 + .long 1071749139 + .long 788707382 + .long 1045299895 + .long 3221225472 + .long 1071746148 + .long 685689300 + .long 1040778831 + .long 2147483648 + .long 1071743160 + .long 1170994182 + .long 1046159174 + .long 1073741824 + .long 1071740175 + .long 64591436 + .long 1046153849 + .long 0 + .long 1071737193 + .long 2338031659 + .long 3189997702 + .long 2684354560 + .long 1071734213 + .long 1941624568 + .long 3186752676 + .long 536870912 + .long 1071731237 + .long 1401255580 + .long 1046383990 + .long 2684354560 + .long 1071728263 + .long 376888427 + .long 1045896456 + .long 536870912 + .long 1071725293 + .long 2831424639 + .long 3193539109 + .long 1610612736 + .long 1071722325 + .long 3303123696 + .long 1044599415 + .long 2684354560 + .long 1071719360 + .long 1077295329 + .long 3189877372 + .long 3221225472 + .long 1071716398 + .long 1434061099 + .long 3184529771 + .long 3221225472 + .long 1071713439 + .long 2104991590 + .long 1045062074 + .long 3221225472 + .long 1071710483 + .long 722060869 + .long 3193788526 + .long 536870912 + .long 1071704580 + .long 3928796486 + .long 1046129020 + .long 536870912 + .long 1071698688 + .long 588844628 + .long 1045492135 + .long 2684354560 + .long 1071692807 + .long 326739366 + .long 3193004445 + .long 1610612736 + .long 1071686938 + .long 2456436042 + .long 1046278169 + .long 2684354560 + .long 1071681080 + .long 2831303512 + .long 1043670046 + .long 536870912 + .long 1071675234 + .long 607223418 + .long 1045507322 + .long 0 + .long 1071669399 + .long 4254921332 + .long 3193290483 + .long 0 + .long 1071663575 + .long 914994333 + .long 3191263853 + .long 1073741824 + .long 1071657762 + .long 4147050180 + .long 3193228552 + .long 2684354560 + .long 1071651960 + .long 594554157 + .long 3193503935 + .long 0 + .long 1071646170 + .long 1062846796 + .long 1045944331 + .long 1073741824 + .long 1071636109 + .long 2909238893 + .long 3193436884 + .long 1073741824 + .long 1071624572 + .long 1682918119 + .long 1042211899 + .long 1073741824 + .long 1071613057 + .long 2419209426 + .long 1045437062 + .long 1073741824 + .long 1071601564 + .long 2951341321 + .long 3190193214 + .long 0 + .long 1071590093 + .long 3084900875 + .long 3192394907 + .long 1073741824 + .long 1071578643 + .long 999567454 + .long 1046433447 + .long 2147483648 + .long 1071567215 + .long 1570101857 + .long 3193291160 + .long 0 + .long 1071555809 + .long 1080647881 + .long 3185154585 + .long 0 + .long 1071544424 + .long 3526309177 + .long 1044843640 + .long 2147483648 + .long 1071533060 + .long 2213463349 + .long 3191738930 + .long 1073741824 + .long 1071521718 + .long 1039925195 + .long 3192618353 + .long 1073741824 + .long 1071510397 + .long 2115757280 + .long 3193671567 + .long 1073741824 + .long 1071499097 + .long 1188751495 + .long 3191145560 + .long 2147483648 + .long 1071487818 + .long 3983461449 + .long 3193897029 + .long 2147483648 + .long 1071476560 + .long 782141500 + .long 1042879962 + .long 2147483648 + .long 1071465323 + .long 4038904626 + .long 1045063881 + .long 2147483648 + .long 1071454107 + .long 2613036921 + .long 3193217642 + .long 0 + .long 1071442912 + .long 2095723435 + .long 1044629175 + .long 1073741824 + .long 1071431737 + .long 3879795974 + .long 1045767874 + .long 1073741824 + .long 1071420583 + .long 2662198042 + .long 3191434637 + .long 3221225472 + .long 1071409449 + .long 4037605722 + .long 3193703090 + .long 2147483648 + .long 1071398336 + .long 1860331835 + .long 1040814822 + .long 3221225472 + .long 1071387243 + .long 1522972033 + .long 3190305974 + .long 1073741824 + .long 1071376171 + .long 2361534207 + .long 1043699366 + .long 0 + .long 1071365119 + .long 4180309179 + .long 1044142099 + .long 0 + .long 1071354087 + .long 1201038528 + .long 3192968772 + .long 0 + .long 1071343075 + .long 1342478171 + .long 3193251215 + .long 0 + .long 1071332083 + .long 3836883348 + .long 3193472007 + .long 3221225472 + .long 1071321110 + .long 3864874250 + .long 1045593126 + .long 2147483648 + .long 1071310158 + .long 2169494998 + .long 1046045346 + .long 1073741824 + .long 1071299226 + .long 3785165075 + .long 3193319246 + .long 2147483648 + .long 1071288313 + .long 1137692678 + .long 3192716779 + .long 1073741824 + .long 1071277420 + .long 1752107598 + .long 1046366120 + .long 3221225472 + .long 1071266546 + .long 1912656912 + .long 1046352281 + .long 3221225472 + .long 1071255692 + .long 2882676334 + .long 1046406353 + .long 1073741824 + .long 1071244858 + .long 963612460 + .long 1045282811 + .long 0 + .long 1071234043 + .long 3811255773 + .long 1046231636 + .long 1073741824 + .long 1071223247 + .long 1126055989 + .long 3192224037 + .long 2147483648 + .long 1071212470 + .long 2079145427 + .long 1044432413 + .long 0 + .long 1071201713 + .long 3611595621 + .long 1043358745 + .long 2147483648 + .long 1071190974 + .long 390522769 + .long 1045888252 + .long 1073741824 + .long 1071180255 + .long 4087939723 + .long 3192930745 + .long 3221225472 + .long 1071169554 + .long 1451494480 + .long 3190219274 + .long 1073741824 + .long 1071158873 + .long 427176194 + .long 3193042022 + .long 2147483648 + .long 1071148210 + .long 1882381948 + .long 3192727946 + .long 2147483648 + .long 1071137566 + .long 3736313771 + .long 3192087019 + .long 1073741824 + .long 1071126941 + .long 1560398816 + .long 3193185715 + .long 2147483648 + .long 1071116334 + .long 1021942441 + .long 1041526696 + .long 2147483648 + .long 1071105746 + .long 3517080249 + .long 3193576041 + .long 3221225472 + .long 1071095176 + .long 2248589878 + .long 1044527624 + .long 2147483648 + .long 1071084625 + .long 2412896695 + .long 1046112867 + .long 3221225472 + .long 1071074092 + .long 3834725738 + .long 1044562378 + .long 1073741824 + .long 1071063578 + .long 1150920407 + .long 1043768986 + .long 0 + .long 1071053082 + .long 1379393428 + .long 3188690690 + .long 0 + .long 1071042604 + .long 3058183278 + .long 3193617655 + .long 0 + .long 1071032144 + .long 421133665 + .long 3193417186 + .long 0 + .long 1071021702 + .long 2860161357 + .long 3191816125 + .long 0 + .long 1071011278 + .long 1742405964 + .long 1043580240 + .long 0 + .long 1071000872 + .long 2821215927 + .long 3188984273 + .long 3221225472 + .long 1070990483 + .long 510275597 + .long 1045813401 + .long 2147483648 + .long 1070980113 + .long 304266588 + .long 3191193536 + .long 3221225472 + .long 1070969760 + .long 1854784211 + .long 1046302073 + .long 0 + .long 1070959426 + .long 3773082854 + .long 3193008899 + .long 2147483648 + .long 1070949108 + .long 3003572392 + .long 1046404879 + .long 3221225472 + .long 1070938808 + .long 1702149204 + .long 1046407257 + .long 2147483648 + .long 1070928526 + .long 3935314439 + .long 1046438280 + .long 3221225472 + .long 1070918261 + .long 2677087609 + .long 1045501749 + .long 2147483648 + .long 1070908014 + .long 4190598039 + .long 3193640515 + .long 1073741824 + .long 1070897784 + .long 368874072 + .long 1044879927 + .long 2147483648 + .long 1070887571 + .long 3584052697 + .long 3192024662 + .long 3221225472 + .long 1070877375 + .long 3762307829 + .long 1045886918 + .long 1073741824 + .long 1070867197 + .long 495710920 + .long 1046317072 + .long 0 + .long 1070857036 + .long 2292768238 + .long 3190887508 + .long 3221225472 + .long 1070846891 + .long 1044078151 + .long 3193772914 + .long 1073741824 + .long 1070836764 + .long 3266010457 + .long 1043443755 + .long 3221225472 + .long 1070826653 + .long 3571665822 + .long 1045547823 + .long 1073741824 + .long 1070816560 + .long 393348347 + .long 3190525143 + .long 2147483648 + .long 1070806483 + .long 4241722498 + .long 3192084193 + .long 2147483648 + .long 1070796423 + .long 1693797068 + .long 3192807972 + .long 0 + .long 1070786380 + .long 2860086745 + .long 1046331646 + .long 2147483648 + .long 1070776353 + .long 1366141759 + .long 3192979363 + .long 1073741824 + .long 1070766343 + .long 737899283 + .long 1045853346 + .long 3221225472 + .long 1070756349 + .long 88734873 + .long 1043881257 + .long 3221225472 + .long 1070746372 + .long 1438003315 + .long 3192917101 + .long 0 + .long 1070736412 + .long 1066505530 + .long 1043896695 + .long 3221225472 + .long 1070726467 + .long 2706653041 + .long 3191113643 + .long 3221225472 + .long 1070716539 + .long 1321764476 + .long 1039573724 + .long 0 + .long 1070706628 + .long 1126753211 + .long 1044502976 + .long 2147483648 + .long 1070696732 + .long 773642884 + .long 1044110727 + .long 1073741824 + .long 1070686853 + .long 1263743406 + .long 3193115278 + .long 0 + .long 1070676990 + .long 3115237732 + .long 3193089176 + .long 3221225472 + .long 1070667142 + .long 3642626838 + .long 3191146032 + .long 2147483648 + .long 1070657311 + .long 2091696428 + .long 1044337177 + .long 1073741824 + .long 1070647496 + .long 3168958391 + .long 1044197568 + .long 0 + .long 1070637697 + .long 711148669 + .long 3193181047 + .long 2147483648 + .long 1070627913 + .long 4207182773 + .long 3193402092 + .long 3221225472 + .long 1070618145 + .long 918070640 + .long 3192902845 + .long 3221225472 + .long 1070608393 + .long 3135571447 + .long 3192193928 + .long 2147483648 + .long 1070598657 + .long 1043705517 + .long 3193188604 + .long 2147483648 + .long 1070581777 + .long 1886680492 + .long 1043890286 + .long 2147483648 + .long 1070562367 + .long 3373799420 + .long 3191917802 + .long 2147483648 + .long 1070542988 + .long 2919618025 + .long 3192461752 + .long 2147483648 + .long 1070523640 + .long 2926365158 + .long 3193113492 + .long 0 + .long 1070504323 + .long 519978638 + .long 1045918846 + .long 0 + .long 1070485037 + .long 3665353151 + .long 3193546248 + .long 0 + .long 1070465781 + .long 2327718958 + .long 1045050797 + .long 0 + .long 1070446556 + .long 345326861 + .long 3188224716 + .long 2147483648 + .long 1070427361 + .long 2263747488 + .long 3192871328 + .long 0 + .long 1070408197 + .long 3894192264 + .long 1045693123 + .long 0 + .long 1070389063 + .long 994321593 + .long 1046347203 + .long 2147483648 + .long 1070369959 + .long 3540366700 + .long 1042296230 + .long 0 + .long 1070350886 + .long 966420752 + .long 3192400412 + .long 2147483648 + .long 1070331842 + .long 1954511160 + .long 3193467762 + .long 2147483648 + .long 1070312828 + .long 1875003040 + .long 1045485629 + .long 0 + .long 1070293845 + .long 4003372005 + .long 3193714109 + .long 2147483648 + .long 1070274890 + .long 2216083644 + .long 1045720399 + .long 0 + .long 1070255966 + .long 1240985743 + .long 1045879414 + .long 0 + .long 1070237071 + .long 1573064162 + .long 1046427916 + .long 0 + .long 1070218206 + .long 2500166582 + .long 3193848169 + .long 2147483648 + .long 1070199369 + .long 862131539 + .long 1045606065 + .long 0 + .long 1070180563 + .long 3733427622 + .long 3193545988 + .long 0 + .long 1070161785 + .long 124515358 + .long 1045504766 + .long 2147483648 + .long 1070143036 + .long 689228007 + .long 1044238436 + .long 0 + .long 1070124317 + .long 976284835 + .long 3189879978 + .long 2147483648 + .long 1070105626 + .long 2997446224 + .long 3193394244 + .long 2147483648 + .long 1070086964 + .long 594985163 + .long 3190453447 + .long 2147483648 + .long 1070068331 + .long 3634411091 + .long 3193012662 + .long 0 + .long 1070049727 + .long 841316482 + .long 3192551604 + .long 0 + .long 1070031151 + .long 518949849 + .long 3189505693 + .long 2147483648 + .long 1070012603 + .long 207633604 + .long 1043791305 + .long 2147483648 + .long 1069994084 + .long 925415631 + .long 3189658670 + .long 2147483648 + .long 1069975593 + .long 3348775015 + .long 1046231055 + .long 0 + .long 1069957131 + .long 4137593961 + .long 1045760644 + .long 2147483648 + .long 1069938696 + .long 3081207972 + .long 1046319652 + .long 2147483648 + .long 1069920290 + .long 2912811806 + .long 3193250863 + .long 0 + .long 1069901912 + .long 1704663230 + .long 3192651171 + .long 2147483648 + .long 1069883561 + .long 1726887473 + .long 3193427817 + .long 2147483648 + .long 1069865238 + .long 516302873 + .long 1042556919 + .long 2147483648 + .long 1069846943 + .long 3737277289 + .long 3192083505 + .long 0 + .long 1069828676 + .long 2829909067 + .long 3191628520 + .long 0 + .long 1069810436 + .long 3474800299 + .long 3187384991 + .long 2147483648 + .long 1069792223 + .long 2041291754 + .long 3186735048 + .long 2147483648 + .long 1069774038 + .long 3100739290 + .long 3192991951 + .long 2147483648 + .long 1069755880 + .long 2641686866 + .long 1042449846 + .long 0 + .long 1069737750 + .long 1353612457 + .long 3192928544 + .long 2147483648 + .long 1069719646 + .long 1823398190 + .long 3193125156 + .long 0 + .long 1069701570 + .long 2629108558 + .long 3192983089 + .long 2147483648 + .long 1069683520 + .long 314889080 + .long 3193178947 + .long 2147483648 + .long 1069665497 + .long 3426846470 + .long 1046055034 + .long 0 + .long 1069647502 + .long 2451521798 + .long 3193081447 + .long 2147483648 + .long 1069629532 + .long 963200030 + .long 1046315089 + .long 0 + .long 1069611590 + .long 3644976987 + .long 1046450297 + .long 2147483648 + .long 1069593674 + .long 1514045874 + .long 3193337489 + .long 0 + .long 1069575785 + .long 2640752615 + .long 3192734715 + .long 0 + .long 1069557922 + .long 177381730 + .long 3193107348 + .long 0 + .long 1069532650 + .long 546871269 + .long 1045601847 + .long 0 + .long 1069497029 + .long 2220408187 + .long 1045964849 + .long 0 + .long 1069461461 + .long 3101209784 + .long 3192417098 + .long 0 + .long 1069425944 + .long 3768825782 + .long 1046196178 + .long 0 + .long 1069390480 + .long 737308942 + .long 1043872555 + .long 0 + .long 1069355068 + .long 1944808119 + .long 3193362317 + .long 0 + .long 1069319707 + .long 852406261 + .long 3191004250 + .long 0 + .long 1069284398 + .long 3202370743 + .long 3192549796 + .long 0 + .long 1069249140 + .long 900633975 + .long 1043862575 + .long 0 + .long 1069213934 + .long 3417168564 + .long 3193213168 + .long 0 + .long 1069178778 + .long 2513309972 + .long 1046051953 + .long 0 + .long 1069143674 + .long 1836846968 + .long 1044036653 + .long 0 + .long 1069108621 + .long 675391362 + .long 3193334972 + .long 0 + .long 1069073618 + .long 1859398086 + .long 3191668729 + .long 0 + .long 1069038666 + .long 3835994043 + .long 3193252196 + .long 0 + .long 1069003764 + .long 563337246 + .long 3192060530 + .long 0 + .long 1068968912 + .long 3715154210 + .long 1045592716 + .long 0 + .long 1068934111 + .long 51415636 + .long 3192193939 + .long 0 + .long 1068899359 + .long 822049108 + .long 1045846080 + .long 0 + .long 1068864658 + .long 3739043340 + .long 3193184949 + .long 0 + .long 1068830006 + .long 2500828997 + .long 3193115638 + .long 0 + .long 1068795403 + .long 1479335089 + .long 1045458233 + .long 0 + .long 1068760850 + .long 1914098598 + .long 1045079833 + .long 0 + .long 1068726346 + .long 1470374909 + .long 1046125471 + .long 0 + .long 1068691892 + .long 2048101185 + .long 3192960024 + .long 0 + .long 1068657486 + .long 801101802 + .long 1042523454 + .long 0 + .long 1068623129 + .long 412171467 + .long 1044799425 + .long 0 + .long 1068588821 + .long 2124566049 + .long 1040459843 + .long 0 + .long 1068554561 + .long 2087558263 + .long 1046083102 + .long 0 + .long 1068520350 + .long 290389316 + .long 1045220023 + .long 0 + .long 1068473430 + .long 393737815 + .long 1045770085 + .long 0 + .long 1068405202 + .long 3273111658 + .long 3193594336 + .long 0 + .long 1068337068 + .long 3076935419 + .long 3191993934 + .long 0 + .long 1068269030 + .long 1564279721 + .long 1040713632 + .long 0 + .long 1068201088 + .long 1950103787 + .long 3191285473 + .long 0 + .long 1068133240 + .long 111301617 + .long 1046140470 + .long 0 + .long 1068065488 + .long 2740933659 + .long 1046091898 + .long 0 + .long 1067997832 + .long 1267131462 + .long 3192947024 + .long 0 + .long 1067930268 + .long 629787343 + .long 1045599114 + .long 0 + .long 1067862800 + .long 2943029746 + .long 3191100621 + .long 0 + .long 1067795426 + .long 2538631151 + .long 3193953989 + .long 0 + .long 1067728144 + .long 3881795033 + .long 3191377363 + .long 0 + .long 1067660956 + .long 2752747058 + .long 3186250103 + .long 0 + .long 1067593862 + .long 892170014 + .long 3193330390 + .long 0 + .long 1067526860 + .long 2000985783 + .long 3192968647 + .long 0 + .long 1067459950 + .long 1954077304 + .long 1044399908 + .long 0 + .long 1067335900 + .long 4120702847 + .long 3193150730 + .long 0 + .long 1067202448 + .long 353489980 + .long 1045676744 + .long 0 + .long 1067069184 + .long 2609643324 + .long 3192108001 + .long 0 + .long 1066936100 + .long 2904433317 + .long 1044836541 + .long 0 + .long 1066803200 + .long 319656790 + .long 1044863904 + .long 0 + .long 1066670484 + .long 2407987331 + .long 3192995083 + .long 0 + .long 1066537948 + .long 2437746120 + .long 3193127733 + .long 0 + .long 1066405592 + .long 762570215 + .long 3189946997 + .long 0 + .long 1066145040 + .long 3317159694 + .long 1046060125 + .long 0 + .long 1065881056 + .long 2317845886 + .long 3191679176 + .long 0 + .long 1065617424 + .long 3665195816 + .long 1045633853 + .long 0 + .long 1065354160 + .long 2008730355 + .long 3193898211 + .long 0 + .long 1064829264 + .long 3746236192 + .long 1046121471 + .long 0 + .long 1064303680 + .long 885296753 + .long 3191852441 + .long 0 + .long 1063253696 + .long 449976495 + .long 3192682663 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 4294965248 + .long 0 + .long 4294965248 + .long 0 + .long 1073160192 + .long 370913857 + .long 3210587105 + .long 1841914130 + .long 3213059448 + .long 3995341938 + .long 3214607105 + .long 2677381210 + .long 3216320731 + .long 3011779882 + .long 3218479542 + .long 1367832035 + .long 1066403058 + .long 2894285243 + .long 1067936923 + .long 1215221452 + .long 1069835102 + .long 370913857 + .long 3210587105 + .long 2677381210 + .long 3216320731 + .long 4172642429 + .long 1056068382 + .long 1215221451 + .long 1069835102 + .long 1092638156 + .long 3184925618 + .long 0 + .long 4294967288 + .long 0 + .long 4294967295 + .long 0 + .long 1072693248 + .long 0 + .long 997195776 + .long 4200250559 + .long 1072696090 + .long 2808127345 + .long 3162830514 + .long 2851812149 + .long 1072698941 + .long 2595802551 + .long 1016815913 + .long 339411585 + .long 1072701800 + .long 264588982 + .long 3162685233 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 772914124 + .long 1072707540 + .long 4004372762 + .long 1013278737 + .long 3899555717 + .long 1072710421 + .long 427280750 + .long 3163595548 + .long 1928746161 + .long 1072713311 + .long 983617676 + .long 1015333753 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 238821257 + .long 1072719114 + .long 1469694871 + .long 3163933563 + .long 702412510 + .long 1072722027 + .long 3803266087 + .long 3163328991 + .long 728934454 + .long 1072724948 + .long 1413842688 + .long 1015227188 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 4133881824 + .long 1072730813 + .long 2148155345 + .long 3163979875 + .long 3402036099 + .long 1072733758 + .long 405889334 + .long 1016154232 + .long 2602514713 + .long 1072736711 + .long 2268929336 + .long 1015402860 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 1172597893 + .long 1072742641 + .long 114433263 + .long 1016396169 + .long 728909815 + .long 1072745618 + .long 383930225 + .long 1016078044 + .long 590962156 + .long 1072748603 + .long 3829346666 + .long 3164324173 + .long 852742562 + .long 1072751596 + .long 667253586 + .long 1010842135 + .long 1608493509 + .long 1072754597 + .long 3159622171 + .long 3163856313 + .long 2952712987 + .long 1072757606 + .long 3293494651 + .long 3161168877 + .long 685187902 + .long 1072760624 + .long 378731989 + .long 1015891691 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 2875075254 + .long 1072766683 + .long 4144233330 + .long 3164382292 + .long 3228316108 + .long 1072769725 + .long 3010241991 + .long 3159471380 + .long 351405227 + .long 1072772776 + .long 3125337328 + .long 3160871055 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 2471440686 + .long 1072778901 + .long 968836267 + .long 3163263464 + .long 3366293073 + .long 1072781976 + .long 3119426314 + .long 1015169130 + .long 1416741826 + .long 1072785060 + .long 2196380210 + .long 1012462139 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 2257959872 + .long 1072791252 + .long 3802946148 + .long 1014013503 + .long 948735466 + .long 1072794361 + .long 3516338028 + .long 3163623459 + .long 1480023343 + .long 1072797478 + .long 2247196168 + .long 1016376029 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 4162030108 + .long 1072803737 + .long 2763428480 + .long 1016577925 + .long 2214878420 + .long 1072806880 + .long 892270087 + .long 3164164998 + .long 2502433899 + .long 1072810031 + .long 2148595913 + .long 1016072567 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 1588871207 + .long 1072816359 + .long 143439582 + .long 3164011992 + .long 586995997 + .long 1072819536 + .long 41662348 + .long 3163676568 + .long 2218315341 + .long 1072822721 + .long 2694295388 + .long 3164337444 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 897099801 + .long 1072829118 + .long 754756297 + .long 1016289581 + .long 2440944790 + .long 1072832329 + .long 2492769774 + .long 1015196030 + .long 2725843665 + .long 1072835549 + .long 1433917087 + .long 1015887099 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 4219606026 + .long 1072842015 + .long 2434574742 + .long 1015730124 + .long 1337108031 + .long 1072845262 + .long 3203724452 + .long 1015726421 + .long 1897844341 + .long 1072848517 + .long 1254300460 + .long 1016324514 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 874372905 + .long 1072855054 + .long 100263788 + .long 1016989308 + .long 3790955393 + .long 1072858335 + .long 2352942462 + .long 3164228666 + .long 1972484976 + .long 1072861626 + .long 675290301 + .long 3162688626 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 1724976915 + .long 1072868234 + .long 420909223 + .long 3164165955 + .long 3504003472 + .long 1072871551 + .long 3594001060 + .long 3158379228 + .long 964107055 + .long 1072874878 + .long 2800439588 + .long 3163881797 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 526652809 + .long 1072881558 + .long 4223459736 + .long 1016927951 + .long 2839424854 + .long 1072884911 + .long 1171596163 + .long 1014090255 + .long 1253935211 + .long 1072888274 + .long 1395382931 + .long 3160751189 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 3991843581 + .long 1072895026 + .long 4092853457 + .long 1015634339 + .long 4232894513 + .long 1072898416 + .long 2383938684 + .long 1015717095 + .long 1000925746 + .long 1072901816 + .long 1018491672 + .long 3164358120 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 1726216749 + .long 1072908642 + .long 2466808228 + .long 3162724981 + .long 1603444721 + .long 1072912069 + .long 1548633640 + .long 3163249902 + .long 2732492859 + .long 1072915505 + .long 2691479646 + .long 3163304260 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 589198666 + .long 1072922406 + .long 2664346172 + .long 3164206538 + .long 1829099622 + .long 1072925870 + .long 1016661181 + .long 3164509581 + .long 460407023 + .long 1072929344 + .long 4237175092 + .long 3164187045 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 3219942644 + .long 1072936319 + .long 3798990616 + .long 1016417382 + .long 3272845541 + .long 1072939821 + .long 928852419 + .long 3164536824 + .long 1156440435 + .long 1072943333 + .long 2351451249 + .long 1015015632 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 3743175029 + .long 1072950384 + .long 2072812490 + .long 3163223651 + .long 78413852 + .long 1072953925 + .long 4183226867 + .long 3164065827 + .long 3278348324 + .long 1072957474 + .long 3069497416 + .long 1015799288 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 654919306 + .long 1072964603 + .long 3232961757 + .long 3164096045 + .long 3645941911 + .long 1072968181 + .long 3814685081 + .long 3162621917 + .long 1065662932 + .long 1072971770 + .long 2533670915 + .long 1015578814 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 1118294578 + .long 1072978976 + .long 2197495694 + .long 3160957977 + .long 3978100823 + .long 1072982593 + .long 3513027190 + .long 1016894539 + .long 1720398391 + .long 1072986221 + .long 3980678963 + .long 3164348656 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 3784486610 + .long 1072993505 + .long 1581883040 + .long 3162747529 + .long 4040676318 + .long 1072997162 + .long 4090609238 + .long 1016712034 + .long 3933059031 + .long 1073000829 + .long 2133366768 + .long 3162580408 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 3088564500 + .long 1073008193 + .long 1762311517 + .long 1016094249 + .long 2583551245 + .long 1073011890 + .long 3161094195 + .long 1016655067 + .long 2178460671 + .long 1073015597 + .long 777878098 + .long 3163891069 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 2135241198 + .long 1073023041 + .long 1236747871 + .long 1014637723 + .long 2731501122 + .long 1073026778 + .long 1774031855 + .long 3163518597 + .long 3896463087 + .long 1073030525 + .long 1139797873 + .long 3162282381 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 4109806887 + .long 1073038050 + .long 422403966 + .long 1015517805 + .long 3395129871 + .long 1073041828 + .long 4025345435 + .long 3163383964 + .long 3723038930 + .long 1073045616 + .long 378465264 + .long 3163618158 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3689071823 + .long 1073053223 + .long 2321004996 + .long 3163601292 + .long 3566716925 + .long 1073057042 + .long 1536826856 + .long 1015191009 + .long 671025100 + .long 1073060872 + .long 3832014351 + .long 3164070606 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 4222122499 + .long 1073068561 + .long 1277378074 + .long 3164305313 + .long 2321106615 + .long 1073072422 + .long 2171176610 + .long 1010584347 + .long 2425981843 + .long 1073076293 + .long 2830390851 + .long 3164395175 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 551349105 + .long 1073084067 + .long 3821916050 + .long 3163155165 + .long 3111574537 + .long 1073087969 + .long 2606161479 + .long 3163808322 + .long 3872257780 + .long 1073091882 + .long 1253592103 + .long 1017006910 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 488188413 + .long 1073099741 + .long 3199821029 + .long 1016612624 + .long 885834528 + .long 1073103686 + .long 1973258547 + .long 3163310140 + .long 4273770423 + .long 1073107641 + .long 3383180809 + .long 3164267477 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 3339203574 + .long 1073115585 + .long 1483497780 + .long 3163457330 + .long 3561793907 + .long 1073119573 + .long 1157054053 + .long 1012938926 + .long 2979960120 + .long 1073123572 + .long 2599109725 + .long 1015547069 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 4201977662 + .long 1073131602 + .long 748330254 + .long 1014642933 + .long 1963711167 + .long 1073135634 + .long 1744767757 + .long 3161622870 + .long 3721688645 + .long 1073139676 + .long 3069276937 + .long 1016887977 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 2555984613 + .long 1073147794 + .long 2652555442 + .long 3163601268 + .long 4182873220 + .long 1073151869 + .long 629542646 + .long 3163044879 + .long 1727278727 + .long 1073155956 + .long 3562710623 + .long 1012520516 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 2263535754 + .long 1073164162 + .long 752233586 + .long 3163687584 + .long 1218806132 + .long 1073168282 + .long 1818613052 + .long 3163597017 + .long 903334909 + .long 1073172413 + .long 1636462108 + .long 1016088573 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 2980802057 + .long 1073180708 + .long 378619896 + .long 1016821879 + .long 1339972927 + .long 1073184873 + .long 167908909 + .long 1016620728 + .long 950803702 + .long 1073189049 + .long 1655364926 + .long 1016285608 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 158781403 + .long 1073197435 + .long 2221464712 + .long 3164335029 + .long 19972402 + .long 1073201645 + .long 3507899862 + .long 1017057868 + .long 1660913392 + .long 1073205866 + .long 4218599604 + .long 1016184283 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 2224145553 + .long 1073214343 + .long 3482522030 + .long 3162537745 + .long 1413356050 + .long 1073218599 + .long 1651349291 + .long 3163716742 + .long 2916157145 + .long 1073222866 + .long 219487565 + .long 1016357943 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 515457527 + .long 1073231436 + .long 836709333 + .long 1016699802 + .long 1176749997 + .long 1073235738 + .long 2738998779 + .long 3163084420 + .long 396319521 + .long 1073240052 + .long 4172420816 + .long 3160123208 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 3643909174 + .long 1073248714 + .long 3537586109 + .long 1015403223 + .long 3649726105 + .long 1073253063 + .long 4085036346 + .long 1016698050 + .long 2759350287 + .long 1073257424 + .long 1148526634 + .long 1016943509 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 3134592888 + .long 1073266181 + .long 4232266862 + .long 1017039710 + .long 380978316 + .long 1073270578 + .long 854188970 + .long 3161511262 + .long 1577608921 + .long 1073274986 + .long 1875489510 + .long 3164016970 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 3492293770 + .long 1073283838 + .long 2248032210 + .long 1016435402 + .long 194117574 + .long 1073288283 + .long 777528612 + .long 3164460665 + .long 1403662306 + .long 1073292739 + .long 2788809599 + .long 3162719583 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 727685349 + .long 1073301688 + .long 2038246809 + .long 3163407318 + .long 3418903055 + .long 1073306180 + .long 2527457337 + .long 3161869180 + .long 2591453363 + .long 1073310685 + .long 2132396182 + .long 3160122774 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 3833209506 + .long 1073319731 + .long 2722920684 + .long 1014803418 + .long 1892288442 + .long 1073324273 + .long 2446255666 + .long 3163648957 + .long 1297350157 + .long 1073328827 + .long 1308022040 + .long 3164461134 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 424392917 + .long 1073337972 + .long 2749202995 + .long 3163887294 + .long 434316067 + .long 1073342563 + .long 2028358766 + .long 1014506698 + .long 2366108318 + .long 1073347166 + .long 2867985102 + .long 3162810830 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 3985553595 + .long 1073356410 + .long 4002146062 + .long 1016882712 + .long 3964284211 + .long 1073361051 + .long 2111583915 + .long 1016475740 + .long 2152073944 + .long 1073365705 + .long 1486860576 + .long 3164252032 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 2331271250 + .long 1073375050 + .long 812057446 + .long 1013256022 + .long 321958744 + .long 1073379742 + .long 3401933767 + .long 1016843134 + .long 1405169241 + .long 1073384446 + .long 2998539689 + .long 3163879527 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 557149882 + .long 1073393893 + .long 3672720709 + .long 1015585841 + .long 3218338682 + .long 1073398635 + .long 3404164304 + .long 3163525684 + .long 977020788 + .long 1073403391 + .long 3065100517 + .long 1016590139 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 3861050111 + .long 1073412940 + .long 254893773 + .long 3163861756 + .long 697153126 + .long 1073417735 + .long 1283515429 + .long 3164331765 + .long 1822067026 + .long 1073422542 + .long 1241994956 + .long 1016388866 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 364333489 + .long 1073432196 + .long 3923737744 + .long 3162469949 + .long 2380618042 + .long 1073437042 + .long 3149557219 + .long 3164369375 + .long 703710506 + .long 1073441902 + .long 1384660846 + .long 1016244467 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 4062661092 + .long 1073451660 + .long 1422616006 + .long 3164303894 + .long 815859274 + .long 1073456560 + .long 240396590 + .long 3164536019 + .long 3080351519 + .long 1073461472 + .long 3379126789 + .long 3158266577 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 3287523847 + .long 1073471337 + .long 1625971539 + .long 3158058531 + .long 1540824585 + .long 1073476290 + .long 1064017011 + .long 3164536266 + .long 1631695677 + .long 1073481256 + .long 2717633076 + .long 3163392602 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 3657065772 + .long 1073491228 + .long 399025623 + .long 3164005654 + .long 1610600570 + .long 1073496235 + .long 3766732298 + .long 1016808759 + .long 2029714210 + .long 1073501255 + .long 613660079 + .long 1016147719 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 2307442995 + .long 1073511336 + .long 3190117721 + .long 3163453115 + .long 2483480501 + .long 1073516397 + .long 1216371780 + .long 1014082748 + .long 1464976603 + .long 1073521472 + .long 3507292405 + .long 3163026110 + .long 3706687593 + .long 1073526560 + .long 3521726939 + .long 1014301643 + .long 778901109 + .long 1073531663 + .long 2248183954 + .long 3162317327 + .long 1432208378 + .long 1073536779 + .long 1401068914 + .long 3163412539 + .long 1532734324 + .long 1073541909 + .long 3094216535 + .long 3164211433 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 721996136 + .long 1073552211 + .long 563754734 + .long 1016419894 + .long 135105010 + .long 1073557383 + .long 1906148728 + .long 3164424315 + .long 3939148246 + .long 1073562568 + .long 3210352148 + .long 1016322899 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 3898795731 + .long 1073572982 + .long 1249994144 + .long 1012918394 + .long 382305176 + .long 1073578211 + .long 2347622376 + .long 3163627201 + .long 1912561781 + .long 1073583453 + .long 3147495102 + .long 1016726829 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 3594158869 + .long 1073593980 + .long 2456521700 + .long 3164305137 + .long 4076975200 + .long 1073599265 + .long 2029000899 + .long 1016257111 + .long 1679558232 + .long 1073604565 + .long 2390342287 + .long 3164382546 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 1796832535 + .long 1073615207 + .long 3176955716 + .long 3161634089 + .long 351641897 + .long 1073620550 + .long 2172261526 + .long 3164059175 + .long 991358482 + .long 1073625907 + .long 838715019 + .long 3164206244 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 610758006 + .long 1073636665 + .long 1965209397 + .long 3162914808 + .long 4224142467 + .long 1073642065 + .long 3389820386 + .long 1016255778 + .long 2009970496 + .long 1073647481 + .long 2159039665 + .long 3163621524 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 2256325230 + .long 1073658356 + .long 580117746 + .long 1016365871 + .long 764307441 + .long 1073663816 + .long 3021057420 + .long 3164378099 + .long 2719515920 + .long 1073669290 + .long 2760332941 + .long 1016186509 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 481706282 + .long 1073680284 + .long 1696079173 + .long 3163759104 + .long 929806999 + .long 1073685803 + .long 3205336643 + .long 1016308133 + .long 1222472308 + .long 1073691337 + .long 1054357470 + .long 3162069594 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2038973688 + .long 1073702450 + .long 892941374 + .long 1017095035 + .long 2912730644 + .long 1073708029 + .long 3490067722 + .long 3164453650 + .long 35929225 + .long 1073713624 + .long 2809788041 + .long 3160485544 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 915592468 + .long 1073724858 + .long 352947894 + .long 3162072947 + .long 730821105 + .long 1073730498 + .long 2523232743 + .long 1013115764 + .long 1797923801 + .long 1073736153 + .long 1950547427 + .long 1014277635 + .long 3884607281 + .long 1062590591 + .long 3607404736 + .long 1068264200 + .long 1874480759 + .long 1065595563 + .long 4286760335 + .long 1070514109 + .long 4277811695 + .long 1072049730 + .long 0 + .long 0 + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 3219533378 + .long 4160749568 + .long 4294967295 + .long 4160749568 + .long 4294967295 + .long 0 + .long 2147483648 + .long 0 + .long 0 + .type static_const_table,@object + .size static_const_table,12576 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/e_sinh.S b/libm/x86/e_sinh.S new file mode 100644 index 000000000..d6b04b57d --- /dev/null +++ b/libm/x86/e_sinh.S @@ -0,0 +1,1407 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// sinh(x)=(exp(x)-exp(-x))/2 +// +// Let |x|=xH+xL (upper 26 bits, lower 27 bits) +// log2(e) rounded to 26 bits (high part) plus a double precision low part is +// L2EH+L2EL (upper 26, lower 53 bits) +// +// Let xH*L2EH=k+f+r`, where (k+f)*2^7=int(xH*L2EH*2^7), +// f=0.b1 b2 ... b7, k integer +// 2^f is approximated as Tp[f]+Dp[f], and 2^{-f} as Tn[f]+Dn[f] +// Tp stores the high 53 bits, Dp stores (2^f-Tp[f]) rounded to double precision +// +// e^|x|=2^{k+f}*2^r, r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-8}+2^{-14}, +// for |x| in [23/64,3*2^7) +// e^{-|x|}=2^{-k-f}*2^{-r} +// +// e^|x| is approximated as 2^k*Tp+2^k*Tp*c1*r(1+c2*r+..+c5*r^4)+2^k*Dp= +// =2^k*Tp+2^k*Tp*P15+2^k*Dp +// e^{-|x|} approximated as 2^{-k}*Tn-2^{-k}*Tn*c1*r(1-c2*r+..+c5*r^4)+2^{-k}*Dn +// +// For |x| in [1/8, 3*2^7), sinh(x) is formed as +// RN(2^k*Tp-2^{-k}*Tn)+2^k*Tp*P15-2^{-k}*Tn*P`15-2^{-k}*TnL-2^{-k}*Dn+2^k*Dp +// +// For x in (3*2^7, 3*2^8), sign(x)*(e^|x|)/2 is returned, and +// the result is checked for overflow. +// +// For |x|<23/64, a Taylor polynomial expansion is used (degree 13) +// To reduce rounding errors, the p3*x^3 term is computed as +// (p3*xh^3)_high+[(p3*xl*(3*x*xh+xl^2))+(p3*xh^3)_low], +// where x=xh+xl, (xh are the leading 17 bits of x), and +// (p3*xh^3)_high=RN(x+p3*xh^3)-x +// (error bound for polynomial expansion is below 0.51 ulp) +// +// Special cases: +// sinh(NaN) = quiet NaN, and raise invalid exception +// sinh(+/-INF) = +/-INF +// sinh(x) = x for subnormals +// for finite argument, only sinh(0)=0 is exact +// For IEEE double +// sinh(x) overflows for x > +// 710.47586007394386342639336362481117248535156250 = MAXLOG+log(2) +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin sinh +ENTRY(sinh) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $104, %esp + movl %ebx, 40(%esp) + call static_func + movl %eax, %ebx + movsd 112(%esp), %xmm0 + movsd 4272(%ebx), %xmm3 + xorpd %xmm4, %xmm4 + movsd 4192(%ebx), %xmm1 + movsd 4200(%ebx), %xmm2 + movl $32768, %eax + pinsrw $3, %eax, %xmm4 + movsd 4096(%ebx), %xmm6 + pextrw $3, %xmm0, %ecx + andpd %xmm0, %xmm3 + andnpd %xmm0, %xmm4 + pshufd $68, %xmm4, %xmm5 + movl $32768, %edx + andl %ecx, %edx + andl $32767, %ecx + subl $16343, %ecx + cmpl $177, %ecx + jae .L_2TAG_PACKET_0.0.2 + subsd %xmm3, %xmm4 + mulsd %xmm1, %xmm3 + mulsd %xmm5, %xmm2 + cvtsd2si %xmm3, %eax + shll $3, %edx + orl %edx, %eax + movapd %xmm3, %xmm7 + addsd %xmm6, %xmm3 + mulsd %xmm4, %xmm1 + xorpd %xmm5, %xmm5 + subsd %xmm6, %xmm3 + movapd 4112(%ebx), %xmm4 + addsd %xmm1, %xmm2 + movapd 4128(%ebx), %xmm6 + subsd %xmm3, %xmm7 + movl $32704, %edx + pinsrw $3, %edx, %xmm5 + movapd 4144(%ebx), %xmm1 + addsd %xmm7, %xmm2 + movl $127, %edx + andl %eax, %edx + addl %edx, %edx + shrl $3, %eax + andl $65520, %eax + addl $16352, %eax + xorpd %xmm0, %xmm0 + cmpl $161, %ecx + jae .L_2TAG_PACKET_1.0.2 + pshufd $68, %xmm5, %xmm5 + pinsrw $3, %eax, %xmm0 + pshufd $68, %xmm0, %xmm0 + psubw %xmm0, %xmm5 + mulpd (%ebx,%edx,8), %xmm0 + mulpd 2048(%ebx,%edx,8), %xmm5 + pshufd $68, %xmm2, %xmm3 + movapd 4160(%ebx), %xmm7 + pshufd $68, %xmm2, %xmm2 + mulpd %xmm3, %xmm3 + mulpd %xmm2, %xmm4 + mulpd %xmm2, %xmm6 + mulpd 4176(%ebx), %xmm2 + mulpd %xmm3, %xmm1 + mulpd %xmm3, %xmm7 + mulpd %xmm3, %xmm4 + mulpd %xmm3, %xmm1 + addpd %xmm7, %xmm6 + movapd %xmm0, %xmm7 + addpd %xmm1, %xmm4 + shufpd $0, %xmm5, %xmm7 + subpd %xmm5, %xmm0 + mulpd %xmm7, %xmm2 + addpd %xmm6, %xmm4 + subsd %xmm0, %xmm7 + mulpd %xmm2, %xmm4 + pshufd $238, %xmm0, %xmm6 + subsd %xmm5, %xmm7 + addpd %xmm2, %xmm4 + addsd %xmm6, %xmm7 + pshufd $238, %xmm4, %xmm2 + addsd %xmm7, %xmm2 + addsd %xmm4, %xmm2 + addsd %xmm2, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_1.0.2: + subl $16352, %eax + movl %eax, %ecx + andl $32752, %eax + shrl $1, %eax + andl $65520, %eax + subl %eax, %ecx + addl $16352, %eax + pinsrw $3, %eax, %xmm0 + pshufd $68, %xmm0, %xmm0 + mulpd (%ebx,%edx,8), %xmm0 + pshufd $68, %xmm2, %xmm3 + movsd 4160(%ebx), %xmm7 + mulsd %xmm3, %xmm3 + mulsd %xmm2, %xmm4 + mulsd %xmm2, %xmm6 + mulsd 4176(%ebx), %xmm2 + mulsd %xmm3, %xmm1 + mulsd %xmm3, %xmm7 + mulsd %xmm3, %xmm4 + addl $16368, %ecx + pinsrw $3, %ecx, %xmm5 + mulsd %xmm3, %xmm1 + addsd %xmm7, %xmm6 + addsd %xmm1, %xmm4 + mulsd %xmm0, %xmm2 + addsd %xmm6, %xmm4 + mulsd %xmm2, %xmm4 + pshufd $238, %xmm0, %xmm6 + addsd %xmm6, %xmm4 + addsd %xmm4, %xmm2 + addsd %xmm2, %xmm0 + mulsd %xmm5, %xmm0 + pextrw $3, %xmm0, %eax + andl $32752, %eax + movl $127, %edx + cmpl $32752, %eax + je .L_2TAG_PACKET_3.0.2 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_0.0.2: + addl $16343, %ecx + cmpl $16343, %ecx + ja .L_2TAG_PACKET_4.0.2 + cmpl $15856, %ecx + jb .L_2TAG_PACKET_5.0.2 + movapd 4208(%ebx), %xmm1 + pshufd $68, %xmm0, %xmm6 + mulpd %xmm5, %xmm5 + movapd 4224(%ebx), %xmm2 + pshufd $68, %xmm0, %xmm7 + movapd 4240(%ebx), %xmm3 + pshufd $68, %xmm0, %xmm4 + andpd 4256(%ebx), %xmm6 + mulpd %xmm5, %xmm1 + mulsd %xmm5, %xmm2 + subpd %xmm6, %xmm4 + mulpd %xmm5, %xmm7 + addpd %xmm3, %xmm1 + pshufd $68, %xmm6, %xmm3 + mulpd %xmm5, %xmm5 + mulsd %xmm7, %xmm2 + mulpd %xmm7, %xmm1 + pshufd $68, %xmm0, %xmm7 + mulsd %xmm6, %xmm6 + addsd %xmm7, %xmm7 + mulsd %xmm4, %xmm4 + mulpd %xmm5, %xmm1 + addsd %xmm0, %xmm7 + mulsd %xmm3, %xmm6 + mulsd %xmm3, %xmm7 + pshufd $238, %xmm1, %xmm3 + mulsd %xmm5, %xmm1 + pshufd $238, %xmm4, %xmm5 + addsd %xmm2, %xmm3 + pshufd $238, %xmm2, %xmm2 + addsd %xmm4, %xmm7 + movapd %xmm0, %xmm4 + mulsd %xmm2, %xmm6 + mulsd %xmm5, %xmm7 + addsd %xmm6, %xmm0 + mulsd %xmm2, %xmm7 + subsd %xmm0, %xmm4 + addsd %xmm7, %xmm1 + addsd %xmm4, %xmm6 + addsd %xmm3, %xmm1 + addsd %xmm6, %xmm1 + addsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_5.0.2: + cmpl $16, %ecx + jae .L_2TAG_PACKET_6.0.2 + movapd %xmm0, %xmm1 + mulsd %xmm1, %xmm1 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_6.0.2: + xorpd %xmm2, %xmm2 + movl $17392, %ecx + pinsrw $3, %ecx, %xmm2 + xorpd %xmm3, %xmm3 + movl $15344, %edx + pinsrw $3, %edx, %xmm3 + mulsd %xmm0, %xmm2 + addsd %xmm2, %xmm0 + mulsd %xmm3, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_4.0.2: + cmpl $32752, %ecx + jae .L_2TAG_PACKET_7.0.2 + xorpd %xmm0, %xmm0 + movl $32736, %eax + pinsrw $3, %eax, %xmm0 + orl %edx, %eax + pinsrw $3, %eax, %xmm1 + mulsd %xmm1, %xmm0 + movl $127, %edx +.L_2TAG_PACKET_3.0.2: + movsd %xmm0, (%esp) + movsd 112(%esp), %xmm0 + fldl (%esp) + jmp .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_7.0.2: + xorpd %xmm1, %xmm1 + movl $32768, %eax + pinsrw $3, %eax, %xmm1 + andnpd %xmm0, %xmm1 + mulsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_2.0.2: + movsd %xmm0, 24(%esp) + fldl 24(%esp) +.L_2TAG_PACKET_8.0.2: + movl 40(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(sinh) +# -- End sinh + +# Start file scope ASM +ALIAS_SYMBOL(sinhl, sinh); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 2851812149 + .long 1072698941 + .long 2595802551 + .long 1016815913 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 3899555717 + .long 1072710421 + .long 427280750 + .long 3163595548 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 702412510 + .long 1072722027 + .long 3803266087 + .long 3163328991 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 3402036099 + .long 1072733758 + .long 405889334 + .long 1016154232 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 728909815 + .long 1072745618 + .long 383930225 + .long 1016078044 + .long 852742562 + .long 1072751596 + .long 667253586 + .long 1010842135 + .long 2952712987 + .long 1072757606 + .long 3293494651 + .long 3161168877 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 3228316108 + .long 1072769725 + .long 3010241991 + .long 3159471380 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 3366293073 + .long 1072781976 + .long 3119426314 + .long 1015169130 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 948735466 + .long 1072794361 + .long 3516338028 + .long 3163623459 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 2214878420 + .long 1072806880 + .long 892270087 + .long 3164164998 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 586995997 + .long 1072819536 + .long 41662348 + .long 3163676568 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 2440944790 + .long 1072832329 + .long 2492769774 + .long 1015196030 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 1337108031 + .long 1072845262 + .long 3203724452 + .long 1015726421 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 3790955393 + .long 1072858335 + .long 2352942462 + .long 3164228666 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 3504003472 + .long 1072871551 + .long 3594001060 + .long 3158379228 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 2839424854 + .long 1072884911 + .long 1171596163 + .long 1014090255 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 4232894513 + .long 1072898416 + .long 2383938684 + .long 1015717095 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 1603444721 + .long 1072912069 + .long 1548633640 + .long 3163249902 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 1829099622 + .long 1072925870 + .long 1016661181 + .long 3164509581 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 3272845541 + .long 1072939821 + .long 928852419 + .long 3164536824 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 78413852 + .long 1072953925 + .long 4183226867 + .long 3164065827 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 3645941911 + .long 1072968181 + .long 3814685081 + .long 3162621917 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 3978100823 + .long 1072982593 + .long 3513027190 + .long 1016894539 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 4040676318 + .long 1072997162 + .long 4090609238 + .long 1016712034 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 2583551245 + .long 1073011890 + .long 3161094195 + .long 1016655067 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 2731501122 + .long 1073026778 + .long 1774031855 + .long 3163518597 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 3395129871 + .long 1073041828 + .long 4025345435 + .long 3163383964 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3566716925 + .long 1073057042 + .long 1536826856 + .long 1015191009 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 2321106615 + .long 1073072422 + .long 2171176610 + .long 1010584347 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 3111574537 + .long 1073087969 + .long 2606161479 + .long 3163808322 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 885834528 + .long 1073103686 + .long 1973258547 + .long 3163310140 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 3561793907 + .long 1073119573 + .long 1157054053 + .long 1012938926 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 1963711167 + .long 1073135634 + .long 1744767757 + .long 3161622870 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 4182873220 + .long 1073151869 + .long 629542646 + .long 3163044879 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 1218806132 + .long 1073168282 + .long 1818613052 + .long 3163597017 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 1339972927 + .long 1073184873 + .long 167908909 + .long 1016620728 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 19972402 + .long 1073201645 + .long 3507899862 + .long 1017057868 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 1413356050 + .long 1073218599 + .long 1651349291 + .long 3163716742 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 1176749997 + .long 1073235738 + .long 2738998779 + .long 3163084420 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 3649726105 + .long 1073253063 + .long 4085036346 + .long 1016698050 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 380978316 + .long 1073270578 + .long 854188970 + .long 3161511262 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 194117574 + .long 1073288283 + .long 777528612 + .long 3164460665 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 3418903055 + .long 1073306180 + .long 2527457337 + .long 3161869180 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 1892288442 + .long 1073324273 + .long 2446255666 + .long 3163648957 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 434316067 + .long 1073342563 + .long 2028358766 + .long 1014506698 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 3964284211 + .long 1073361051 + .long 2111583915 + .long 1016475740 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 321958744 + .long 1073379742 + .long 3401933767 + .long 1016843134 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 3218338682 + .long 1073398635 + .long 3404164304 + .long 3163525684 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 697153126 + .long 1073417735 + .long 1283515429 + .long 3164331765 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 2380618042 + .long 1073437042 + .long 3149557219 + .long 3164369375 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 815859274 + .long 1073456560 + .long 240396590 + .long 3164536019 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 1540824585 + .long 1073476290 + .long 1064017011 + .long 3164536266 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 1610600570 + .long 1073496235 + .long 3766732298 + .long 1016808759 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 2483480501 + .long 1073516397 + .long 1216371780 + .long 1014082748 + .long 3706687593 + .long 1073526560 + .long 3521726940 + .long 1014301643 + .long 1432208378 + .long 1073536779 + .long 1401068914 + .long 3163412539 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 135105010 + .long 1073557383 + .long 1906148728 + .long 3164424315 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 382305176 + .long 1073578211 + .long 2347622376 + .long 3163627201 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 4076975200 + .long 1073599265 + .long 2029000899 + .long 1016257111 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 351641897 + .long 1073620550 + .long 2172261526 + .long 3164059175 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 4224142467 + .long 1073642065 + .long 3389820386 + .long 1016255778 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 764307441 + .long 1073663816 + .long 3021057420 + .long 3164378099 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 929806999 + .long 1073685803 + .long 3205336643 + .long 1016308133 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2912730644 + .long 1073708029 + .long 3490067722 + .long 3164453650 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 730821105 + .long 1073730498 + .long 2523232743 + .long 1013115764 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 730821105 + .long 1072681922 + .long 2523232743 + .long 1012067188 + .long 2174652632 + .long 1072670657 + .long 4087714590 + .long 1014450259 + .long 2912730644 + .long 1072659453 + .long 3490067722 + .long 3163405074 + .long 1533953344 + .long 1072648310 + .long 769171851 + .long 1015665633 + .long 929806999 + .long 1072637227 + .long 3205336643 + .long 1015259557 + .long 3999357479 + .long 1072626203 + .long 2258941616 + .long 1015924724 + .long 764307441 + .long 1072615240 + .long 3021057420 + .long 3163329523 + .long 2728693978 + .long 1072604335 + .long 396109971 + .long 3163462691 + .long 4224142467 + .long 1072593489 + .long 3389820386 + .long 1015207202 + .long 3884662774 + .long 1072582702 + .long 2158611599 + .long 1014210185 + .long 351641897 + .long 1072571974 + .long 2172261526 + .long 3163010599 + .long 863738719 + .long 1072561303 + .long 1326992220 + .long 3162613197 + .long 4076975200 + .long 1072550689 + .long 2029000899 + .long 1015208535 + .long 64696965 + .long 1072540134 + .long 1768797490 + .long 1015816960 + .long 382305176 + .long 1072529635 + .long 2347622376 + .long 3162578625 + .long 3707479175 + .long 1072519192 + .long 3613079303 + .long 1014164738 + .long 135105010 + .long 1072508807 + .long 1906148728 + .long 3163375739 + .long 1242007932 + .long 1072498477 + .long 1132034716 + .long 3163339831 + .long 1432208378 + .long 1072488203 + .long 1401068914 + .long 3162363963 + .long 3706687593 + .long 1072477984 + .long 3521726940 + .long 1013253067 + .long 2483480501 + .long 1072467821 + .long 1216371780 + .long 1013034172 + .long 777507147 + .long 1072457713 + .long 4282924205 + .long 1015187533 + .long 1610600570 + .long 1072447659 + .long 3766732298 + .long 1015760183 + .long 3716502172 + .long 1072437659 + .long 2303740125 + .long 1014042725 + .long 1540824585 + .long 1072427714 + .long 1064017011 + .long 3163487690 + .long 2420883922 + .long 1072417822 + .long 2049810052 + .long 1014119888 + .long 815859274 + .long 1072407984 + .long 240396590 + .long 3163487443 + .long 4076559943 + .long 1072398198 + .long 2119478331 + .long 3160758351 + .long 2380618042 + .long 1072388466 + .long 3149557219 + .long 3163320799 + .long 3092190715 + .long 1072378786 + .long 814012168 + .long 3159523422 + .long 697153126 + .long 1072369159 + .long 1283515429 + .long 3163283189 + .long 2572866477 + .long 1072359583 + .long 878562433 + .long 1015521741 + .long 3218338682 + .long 1072350059 + .long 3404164304 + .long 3162477108 + .long 1434058175 + .long 1072340587 + .long 251133233 + .long 1015085769 + .long 321958744 + .long 1072331166 + .long 3401933767 + .long 1015794558 + .long 2990417245 + .long 1072321795 + .long 3683467745 + .long 3163369326 + .long 3964284211 + .long 1072312475 + .long 2111583915 + .long 1015427164 + .long 2069751141 + .long 1072303206 + .long 1562170675 + .long 3162724681 + .long 434316067 + .long 1072293987 + .long 2028358766 + .long 1013458122 + .long 2191782032 + .long 1072284817 + .long 2960257726 + .long 1013742662 + .long 1892288442 + .long 1072275697 + .long 2446255666 + .long 3162600381 + .long 2682146384 + .long 1072266626 + .long 2082178513 + .long 3163363419 + .long 3418903055 + .long 1072257604 + .long 2527457337 + .long 3160820604 + .long 2966275557 + .long 1072248631 + .long 2176155324 + .long 3159842759 + .long 194117574 + .long 1072239707 + .long 777528612 + .long 3163412089 + .long 2568320822 + .long 1072230830 + .long 2732824428 + .long 1014352915 + .long 380978316 + .long 1072222002 + .long 854188970 + .long 3160462686 + .long 1110089947 + .long 1072213221 + .long 1451641639 + .long 1015474673 + .long 3649726105 + .long 1072204487 + .long 4085036346 + .long 1015649474 + .long 2604962541 + .long 1072195801 + .long 2614425274 + .long 3163539192 + .long 1176749997 + .long 1072187162 + .long 2738998779 + .long 3162035844 + .long 2571947539 + .long 1072178569 + .long 3558159064 + .long 3163376669 + .long 1413356050 + .long 1072170023 + .long 1651349291 + .long 3162668166 + .long 919555682 + .long 1072161523 + .long 3121969534 + .long 1012948226 + .long 19972402 + .long 1072153069 + .long 3507899862 + .long 1016009292 + .long 1944781191 + .long 1072144660 + .long 3993278767 + .long 3161724279 + .long 1339972927 + .long 1072136297 + .long 167908909 + .long 1015572152 + .long 1447192521 + .long 1072127979 + .long 1462857171 + .long 3162514521 + .long 1218806132 + .long 1072119706 + .long 1818613052 + .long 3162548441 + .long 3907805044 + .long 1072111477 + .long 2257091225 + .long 3161550407 + .long 4182873220 + .long 1072103293 + .long 629542646 + .long 3161996303 + .long 1013258799 + .long 1072095154 + .long 1748797611 + .long 3160129082 + .long 1963711167 + .long 1072087058 + .long 1744767757 + .long 3160574294 + .long 1719614413 + .long 1072079006 + .long 330458198 + .long 3163282740 + .long 3561793907 + .long 1072070997 + .long 1157054053 + .long 1011890350 + .long 2186617381 + .long 1072063032 + .long 2270764084 + .long 3163272713 + .long 885834528 + .long 1072055110 + .long 1973258547 + .long 3162261564 + .long 2956612997 + .long 1072047230 + .long 2118169751 + .long 3162735553 + .long 3111574537 + .long 1072039393 + .long 2606161479 + .long 3162759746 + .long 363667784 + .long 1072031599 + .long 813753950 + .long 1015785209 + .long 2321106615 + .long 1072023846 + .long 2171176610 + .long 1009535771 + .long 3712504873 + .long 1072016135 + .long 88491949 + .long 1015427660 + .long 3566716925 + .long 1072008466 + .long 1536826856 + .long 1014142433 + .long 917841882 + .long 1072000839 + .long 18715565 + .long 1015659308 + .long 3395129871 + .long 1071993252 + .long 4025345435 + .long 3162335388 + .long 1453150082 + .long 1071985707 + .long 498154669 + .long 3161488062 + .long 2731501122 + .long 1071978202 + .long 1774031855 + .long 3162470021 + .long 1990012071 + .long 1071970738 + .long 3529070563 + .long 3162813193 + .long 2583551245 + .long 1071963314 + .long 3161094195 + .long 1015606491 + .long 3577096743 + .long 1071955930 + .long 2951496418 + .long 1013793687 + .long 4040676318 + .long 1071948586 + .long 4090609238 + .long 1015663458 + .long 3049340112 + .long 1071941282 + .long 3062915824 + .long 1013170595 + .long 3978100823 + .long 1071934017 + .long 3513027190 + .long 1015845963 + .long 1617004845 + .long 1071926792 + .long 82804944 + .long 1010342778 + .long 3645941911 + .long 1071919605 + .long 3814685081 + .long 3161573341 + .long 569847338 + .long 1071912458 + .long 472945272 + .long 3159290729 + .long 78413852 + .long 1071905349 + .long 4183226867 + .long 3163017251 + .long 1276261410 + .long 1071898278 + .long 300981948 + .long 1014684169 + .long 3272845541 + .long 1071891245 + .long 928852419 + .long 3163488248 + .long 887463927 + .long 1071884251 + .long 3596744163 + .long 3160794166 + .long 1829099622 + .long 1071877294 + .long 1016661181 + .long 3163461005 + .long 926591435 + .long 1071870375 + .long 3208833762 + .long 3162913514 + .long 1603444721 + .long 1071863493 + .long 1548633640 + .long 3162201326 + .long 2992903935 + .long 1071856648 + .long 2218154406 + .long 1015228193 + .long 4232894513 + .long 1071849840 + .long 2383938684 + .long 1014668519 + .long 171030293 + .long 1071843070 + .long 3526460132 + .long 1014428778 + .long 2839424854 + .long 1071836335 + .long 1171596163 + .long 1013041679 + .long 2799960843 + .long 1071829637 + .long 1423655381 + .long 1015022151 + .long 3504003472 + .long 1071822975 + .long 3594001060 + .long 3157330652 + .long 4112506593 + .long 1071816349 + .long 2947355221 + .long 1014371048 + .long 3790955393 + .long 1071809759 + .long 2352942462 + .long 3163180090 + .long 1709341917 + .long 1071803205 + .long 2571168217 + .long 1014152499 + .long 1337108031 + .long 1071796686 + .long 3203724452 + .long 1014677845 + .long 1853186616 + .long 1071790202 + .long 3066496371 + .long 1015656574 + .long 2440944790 + .long 1071783753 + .long 2492769774 + .long 1014147454 + .long 2288159958 + .long 1071777339 + .long 2169144469 + .long 1014876021 + .long 586995997 + .long 1071770960 + .long 41662348 + .long 3162627992 + .long 828946858 + .long 1071764615 + .long 10642492 + .long 1015939438 + .long 2214878420 + .long 1071758304 + .long 892270087 + .long 3163116422 + .long 3949972341 + .long 1071752027 + .long 2068408548 + .long 1014913868 + .long 948735466 + .long 1071745785 + .long 3516338028 + .long 3162574883 + .long 1014845819 + .long 1071739576 + .long 3117910646 + .long 3161559105 + .long 3366293073 + .long 1071733400 + .long 3119426314 + .long 1014120554 + .long 2930322912 + .long 1071727258 + .long 2599499422 + .long 3162714047 + .long 3228316108 + .long 1071721149 + .long 3010241991 + .long 3158422804 + .long 3490863953 + .long 1071715073 + .long 960797498 + .long 3162948880 + .long 2952712987 + .long 1071709030 + .long 3293494651 + .long 3160120301 + .long 852742562 + .long 1071703020 + .long 667253586 + .long 1009793559 + .long 728909815 + .long 1071697042 + .long 383930225 + .long 1015029468 + .long 1828292879 + .long 1071691096 + .long 1255956747 + .long 1015588398 + .long 3402036099 + .long 1071685182 + .long 405889334 + .long 1015105656 + .long 410360776 + .long 1071679301 + .long 1269990655 + .long 1011975870 + .long 702412510 + .long 1071673451 + .long 3803266087 + .long 3162280415 + .long 3541402996 + .long 1071667632 + .long 2759177317 + .long 1014854626 + .long 3899555717 + .long 1071661845 + .long 427280750 + .long 3162546972 + .long 1048019041 + .long 1071656090 + .long 1398474845 + .long 3160510595 + .long 2851812149 + .long 1071650365 + .long 2595802551 + .long 1015767337 + .long 0 + .long 1127743488 + .long 0 + .long 3275227136 + .long 3607404736 + .long 1044146952 + .long 3607404736 + .long 3191630600 + .long 4277811695 + .long 1063661122 + .long 4277811695 + .long 3211144770 + .long 2140175755 + .long 1033864261 + .long 2140175755 + .long 1033864261 + .long 4289495988 + .long 1054113747 + .long 4289495988 + .long 1054113747 + .long 4277811695 + .long 1064709698 + .long 4277811695 + .long 1064709698 + .long 1610612736 + .long 1080497479 + .long 4166901572 + .long 1053077003 + .long 329805064 + .long 1038488134 + .long 2773927730 + .long 1053236707 + .long 286331153 + .long 1065423121 + .long 1431655765 + .long 1069897045 + .long 1744127201 + .long 1046144581 + .long 436314137 + .long 1059717536 + .long 0 + .long 4294967280 + .long 0 + .long 4294967280 + .long 4160749568 + .long 2147483647 + .type static_const_table,@object + .size static_const_table,4280 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/floor.S b/libm/x86/floor.S new file mode 100644 index 000000000..b859736c7 --- /dev/null +++ b/libm/x86/floor.S @@ -0,0 +1,43 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(floor) + mov %esp,%eax + and $0xfffffff8,%eax + movsd 0x4(%esp),%xmm0 + roundsd $0x1,%xmm0,%xmm0 + movlpd %xmm0,-0x8(%eax) + fldl -0x8(%eax) + ret +END(floor) + +ALIAS_SYMBOL(floorl, floor); diff --git a/libm/x86/floorf.S b/libm/x86/floorf.S new file mode 100644 index 000000000..79b90731b --- /dev/null +++ b/libm/x86/floorf.S @@ -0,0 +1,39 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(floorf) + movss 0x4(%esp),%xmm0 + roundss $0x1,%xmm0,%xmm0 + movss %xmm0,-0x4(%esp) + flds -0x4(%esp) + ret +END(floorf) diff --git a/libm/x86/libm_reduce_pi04l.S b/libm/x86/libm_reduce_pi04l.S new file mode 100644 index 000000000..af6a7d05b --- /dev/null +++ b/libm/x86/libm_reduce_pi04l.S @@ -0,0 +1,3718 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +# -- Begin __libm_reduce_pi04l + .text + .align 16,0x90 + .hidden __libm_reduce_pi04l + .globl __libm_reduce_pi04l +__libm_reduce_pi04l: +# parameter 1: 8 + %ebp +# parameter 2: 20 + %ebp +# parameter 3: 24 + %ebp +..B1.1: + pushl %ebp + movl %esp, %ebp + andl $-16, %esp + pushl %esi + pushl %edi + pushl %ebx + subl $20, %esp + movzwl 16(%ebp), %ebx + andl $32767, %ebx + movl 20(%ebp), %eax + cmpl $16413, %ebx + movl 24(%ebp), %esi + call ..L2 +..L2: + popl %edi + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%edi), %edi + movl %eax, 4(%esp) + jge ..B1.8 +..B1.2: + fldt 8(%ebp) + fldl __4onpi_d@GOTOFF(%edi) + fmul %st(1), %st + fstpt 8(%esp) + movzwl 16(%esp), %ecx + negl %ecx + addl $30, %ecx + movl 12(%esp), %eax + shrl %cl, %eax + cmpl $0, 4(%esp) + jne ..B1.4 +..B1.3: + lea 1(%eax), %ecx + andl $-2, %ecx + jmp ..B1.5 +..B1.4: + movl %eax, %ecx + addl 4(%esp), %eax + movl %eax, %edx + andl $1, %edx + addl %edx, %ecx +..B1.5: + fldl _TWO_32H@GOTOFF(%edi) + cmpl $16400, %ebx + movl %ecx, (%esp) + fildl (%esp) + jge ..B1.7 +..B1.6: + fldl _pi04_3d@GOTOFF(%edi) + fmul %st(1), %st + fsubrp %st, %st(3) + fxch %st(1) + fmul %st(2), %st + fld %st(2) + fadd %st(1), %st + fsubp %st, %st(1) + fld %st(0) + fxch %st(1) + fsubr %st, %st(3) + fldl 8+_pi04_3d@GOTOFF(%edi) + fmul %st(3), %st + fsubr %st, %st(2) + fxch %st(1) + fsub %st(2), %st + fsubp %st, %st(1) + faddp %st, %st(3) + fldl 16+_pi04_3d@GOTOFF(%edi) + fmulp %st, %st(2) + fld %st(1) + fsubr %st(1), %st + fsubr %st, %st(1) + fxch %st(2) + fsubrp %st, %st(1) + faddp %st, %st(2) + fxch %st(1) + jmp ..B1.15 +..B1.7: + fldl _pi04_5d@GOTOFF(%edi) + fmul %st(1), %st + fsubrp %st, %st(3) + fxch %st(1) + fmul %st(2), %st + fld %st(2) + fadd %st(1), %st + fsubp %st, %st(1) + fld %st(0) + fxch %st(1) + fsubr %st, %st(3) + fldl 8+_pi04_5d@GOTOFF(%edi) + fmul %st(3), %st + fsubr %st, %st(2) + fxch %st(1) + fsub %st(2), %st + fsubp %st, %st(1) + faddp %st, %st(3) + fldl 16+_pi04_5d@GOTOFF(%edi) + fmul %st(2), %st + fld %st(0) + fsubr %st(2), %st + fsubr %st, %st(2) + fxch %st(1) + fsubrp %st, %st(2) + fxch %st(1) + faddp %st, %st(3) + fldl 24+_pi04_5d@GOTOFF(%edi) + fmul %st(2), %st + fld %st(0) + fsubr %st(2), %st + fsubr %st, %st(2) + fxch %st(1) + fsubrp %st, %st(2) + fxch %st(1) + faddp %st, %st(3) + fldl 32+_pi04_5d@GOTOFF(%edi) + fmulp %st, %st(2) + fld %st(1) + fsubr %st(1), %st + fsubr %st, %st(1) + fxch %st(2) + fsubrp %st, %st(1) + faddp %st, %st(2) + fxch %st(1) + jmp ..B1.15 +..B1.8: + fldt 8(%ebp) + addl $-16417, %ebx + fmull _SCALE@GOTOFF(%edi) + movl $-2078209981, %eax + imull %ebx + addl %ebx, %edx + movl %ebx, %ecx + sarl $4, %edx + sarl $31, %ecx + subl %ecx, %edx + movl %edx, %eax + shll $5, %eax + fstpt 8(%ebp) + fldt 8(%ebp) + subl %edx, %eax + movl $0, 8(%ebp) + subl %eax, %ebx + fldt 8(%ebp) + cmpl $17, %ebx + fsubr %st, %st(1) + jl ..B1.10 +..B1.9: + lea (,%edx,8), %eax + lea (%eax,%edx,4), %ecx + incl %edx + fldt __4onpi_31l@GOTOFF(%ecx,%edi) + fmul %st(2), %st + fldt 12+__4onpi_31l@GOTOFF(%edi,%ecx) + fmul %st(2), %st + fld %st(0) + fadd %st(2), %st + fsubr %st, %st(2) + fxch %st(1) + faddp %st, %st(2) + fld %st(1) + fadd %st(1), %st + fstpt 8(%esp) + andl $-16777216, 8(%esp) + fldt 8(%esp) + fsubrp %st, %st(1) + jmp ..B1.11 +..B1.10: + fldl _zeros@GOTOFF(%edi) + fld %st(0) +..B1.11: + fld %st(0) + lea (,%edx,8), %eax + fld %st(3) + lea (%eax,%edx,4), %edx + fldt __4onpi_31l@GOTOFF(%edx,%edi) + fmul %st(6), %st + movl %edx, (%esp) + fadd %st, %st(2) + fxch %st(2) + fsubr %st, %st(3) + fxch %st(2) + faddp %st, %st(3) + fxch %st(2) + faddp %st, %st(3) + fldt 12+__4onpi_31l@GOTOFF(%edx,%edi) + fmul %st, %st(2) + fld %st(2) + fadd %st(2), %st + fld %st(0) + fxch %st(1) + fsub %st, %st(3) + fxch %st(3) + fchs + faddp %st, %st(4) + fxch %st(3) + faddp %st, %st(4) + fxch %st(2) + fadd %st(3), %st + fxch %st(2) + fmul %st(5), %st + fadd %st, %st(2) + fld %st(4) + fldt 24+__4onpi_31l@GOTOFF(%edx,%edi) + fmul %st, %st(1) + fxch %st(1) + fadd %st, %st(4) + fxch %st(4) + fstpt 8(%esp) + movzwl 16(%esp), %ebx + andl $32767, %ebx + cmpl $16415, %ebx + jge ..B1.13 +..B1.12: + negl %ebx + addl $30, %ebx + movl %ebx, %ecx + movl 12(%esp), %eax + shrl %cl, %eax + shll %cl, %eax + movl %eax, 12(%esp) + movl $0, 8(%esp) + shrl %cl, %eax + jmp ..B1.14 +..B1.13: + negl %ebx + addl $30, %ebx + movl %ebx, %ecx + movl 8(%esp), %edx + shrl %cl, %edx + shll %cl, %edx + negl %ecx + movl 12(%esp), %eax + shll %cl, %eax + movl %ebx, %ecx + movl %edx, 8(%esp) + shrl %cl, %edx + orl %edx, %eax +..B1.14: + fldt 8(%esp) + addl 4(%esp), %eax + fsubrp %st, %st(3) + fmul %st(6), %st + fld %st(4) + movl %eax, %edx + andl $1, %edx + fadd %st(3), %st + movl (%esp), %ecx + fsubr %st, %st(3) + fxch %st(3) + faddp %st, %st(5) + fld %st(1) + fxch %st(3) + faddl zero_none@GOTOFF(%edi,%edx,8) + fadd %st, %st(3) + fsub %st(3), %st + faddp %st, %st(2) + fxch %st(1) + faddp %st, %st(4) + fld %st(2) + fadd %st(2), %st + fsubr %st, %st(2) + fxch %st(3) + faddp %st, %st(2) + fxch %st(1) + faddp %st, %st(3) + fld %st(0) + fadd %st(2), %st + fsubr %st, %st(2) + fxch %st(1) + faddp %st, %st(2) + fxch %st(1) + faddp %st, %st(2) + fld %st(2) + fldt 36+__4onpi_31l@GOTOFF(%ecx,%edi) + fmul %st, %st(1) + fld %st(1) + fadd %st(3), %st + fsubr %st, %st(3) + fxch %st(2) + faddp %st, %st(3) + fxch %st(2) + faddp %st, %st(3) + fxch %st(1) + fmul %st(4), %st + fld %st(0) + fadd %st(2), %st + fsubr %st, %st(2) + fxch %st(1) + faddp %st, %st(2) + fxch %st(1) + faddp %st, %st(2) + fld %st(2) + fldt 48+__4onpi_31l@GOTOFF(%ecx,%edi) + fmul %st, %st(1) + fld %st(1) + fadd %st(3), %st + fsubr %st, %st(3) + fxch %st(2) + faddp %st, %st(3) + fxch %st(2) + faddp %st, %st(3) + fld %st(3) + fxch %st(2) + fmul %st(5), %st + fldt 60+__4onpi_31l@GOTOFF(%ecx,%edi) + fmul %st, %st(3) + fxch %st(3) + faddp %st, %st(1) + fld %st(0) + fadd %st(2), %st + fsubr %st, %st(2) + fxch %st(1) + faddp %st, %st(2) + fxch %st(1) + faddp %st, %st(3) + fld %st(3) + fxch %st(2) + fmul %st(5), %st + fldt 72+__4onpi_31l@GOTOFF(%ecx,%edi) + fmul %st, %st(3) + fxch %st(3) + faddp %st, %st(1) + fld %st(0) + fadd %st(2), %st + fsubr %st, %st(2) + fxch %st(1) + faddp %st, %st(2) + fxch %st(1) + faddp %st, %st(3) + fxch %st(1) + fmulp %st, %st(4) + fldt 84+__4onpi_31l@GOTOFF(%edi,%ecx) + fmulp %st, %st(3) + fxch %st(2) + faddp %st, %st(3) + fld %st(2) + fadd %st(2), %st + fldl _TWO_32H@GOTOFF(%edi) + fmul %st(1), %st + fadd %st, %st(1) + fsubrp %st, %st(1) + fsubr %st, %st(2) + fxch %st(3) + faddp %st, %st(2) + faddp %st, %st(1) + fldl _pi04_2d@GOTOFF(%edi) + fld %st(0) + fmul %st(2), %st + fxch %st(2) + fadd %st(3), %st + fxch %st(1) + fmulp %st, %st(3) + fmull 8+_pi04_2d@GOTOFF(%edi) + faddp %st, %st(1) +..B1.15: + fldl _TWO_12H@GOTOFF(%edi) + fld %st(2) + fadd %st(2), %st + fmul %st, %st(1) + fstpt 8(%esp) + fldt 8(%esp) + fadd %st(1), %st + fsubp %st, %st(1) + fstl (%esi) + fsubrp %st, %st(2) + faddp %st, %st(1) + fstpl 8(%esi) + addl $20, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret + .align 16,0x90 + .type __libm_reduce_pi04l,@function + .size __libm_reduce_pi04l,.-__libm_reduce_pi04l + .data +# -- End __libm_reduce_pi04l + .section .rodata, "a" + .align 8 + .align 8 +zero_none: + .long 0x00000000,0x00000000 + .long 0x00000000,0xbff00000 + .type zero_none,@object + .size zero_none,16 + .align 4 +__4onpi_d: + .long 1841940611 + .long 1072979760 + .type __4onpi_d,@object + .size __4onpi_d,8 + .align 4 +_TWO_32H: + .long 0 + .long 1106771968 + .type _TWO_32H,@object + .size _TWO_32H,8 + .align 4 +_pi04_3d: + .long 1413754112 + .long 1072243195 + .long 2563527040 + .long 1021855384 + .long 3417685868 + .long 3118450936 + .type _pi04_3d,@object + .size _pi04_3d,24 + .align 4 +_pi04_5d: + .long 1413480448 + .long 1072243195 + .long 442499072 + .long 1036039265 + .long 771751936 + .long 999496074 + .long 622854144 + .long 963347354 + .long 1396597664 + .long 922906692 + .type _pi04_5d,@object + .size _pi04_5d,40 + .align 4 +_SCALE: + .long 0 + .long 845152256 + .type _SCALE,@object + .size _SCALE,8 + .align 4 +_zeros: + .long 0 + .long 0 + .long 0 + .long 2147483648 + .type _zeros,@object + .size _zeros,16 + .align 4 +_pi04_2d: + .long 1413480448 + .long 1072243195 + .long 442655537 + .long 1036039265 + .type _pi04_2d,@object + .size _pi04_2d,16 + .align 4 +_TWO_12H: + .long 0 + .long 1085800448 + .type _TWO_12H,@object + .size _TWO_12H,8 + .align 2 +__4onpi_31l: + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 33646 + .word 41721 + .word 16600 + .word 0 + .word 0 + .word 0 + .word 10832 + .word 40072 + .word 16567 + .word 0 + .word 0 + .word 0 + .word 44008 + .word 65043 + .word 16537 + .word 0 + .word 0 + .word 0 + .word 28384 + .word 64154 + .word 16505 + .word 0 + .word 0 + .word 0 + .word 38272 + .word 56162 + .word 16472 + .word 0 + .word 0 + .word 0 + .word 7298 + .word 51682 + .word 16445 + .word 0 + .word 0 + .word 0 + .word 45504 + .word 65320 + .word 16409 + .word 0 + .word 0 + .word 0 + .word 61204 + .word 44922 + .word 16382 + .word 0 + .word 0 + .word 0 + .word 18652 + .word 50030 + .word 16351 + .word 0 + .word 0 + .word 0 + .word 14144 + .word 59657 + .word 16318 + .word 0 + .word 0 + .word 0 + .word 37450 + .word 47105 + .word 16290 + .word 0 + .word 0 + .word 0 + .word 14898 + .word 56641 + .word 16259 + .word 0 + .word 0 + .word 0 + .word 34680 + .word 34623 + .word 16226 + .word 0 + .word 0 + .word 0 + .word 4760 + .word 45515 + .word 16196 + .word 0 + .word 0 + .word 0 + .word 41480 + .word 40187 + .word 16166 + .word 0 + .word 0 + .word 0 + .word 47852 + .word 55252 + .word 16134 + .word 0 + .word 0 + .word 0 + .word 54072 + .word 35081 + .word 16103 + .word 0 + .word 0 + .word 0 + .word 26808 + .word 57421 + .word 16071 + .word 0 + .word 0 + .word 0 + .word 20068 + .word 57232 + .word 16042 + .word 0 + .word 0 + .word 0 + .word 49576 + .word 60188 + .word 16009 + .word 0 + .word 0 + .word 0 + .word 10016 + .word 52861 + .word 15978 + .word 0 + .word 0 + .word 0 + .word 30648 + .word 35825 + .word 15947 + .word 0 + .word 0 + .word 0 + .word 60542 + .word 58528 + .word 15918 + .word 0 + .word 0 + .word 0 + .word 65468 + .word 61743 + .word 15887 + .word 0 + .word 0 + .word 0 + .word 64960 + .word 45825 + .word 15851 + .word 0 + .word 0 + .word 0 + .word 50604 + .word 38792 + .word 15825 + .word 0 + .word 0 + .word 0 + .word 18394 + .word 33435 + .word 15794 + .word 0 + .word 0 + .word 0 + .word 55780 + .word 42703 + .word 15763 + .word 0 + .word 0 + .word 0 + .word 14056 + .word 63841 + .word 15731 + .word 0 + .word 0 + .word 0 + .word 63080 + .word 62563 + .word 15700 + .word 0 + .word 0 + .word 0 + .word 20840 + .word 62207 + .word 15669 + .word 0 + .word 0 + .word 0 + .word 30094 + .word 59983 + .word 15639 + .word 0 + .word 0 + .word 0 + .word 61818 + .word 60389 + .word 15608 + .word 0 + .word 0 + .word 0 + .word 40186 + .word 40579 + .word 15577 + .word 0 + .word 0 + .word 0 + .word 42170 + .word 58004 + .word 15546 + .word 0 + .word 0 + .word 0 + .word 55276 + .word 39678 + .word 15514 + .word 0 + .word 0 + .word 0 + .word 44672 + .word 36806 + .word 15481 + .word 0 + .word 0 + .word 0 + .word 13060 + .word 34144 + .word 15452 + .word 0 + .word 0 + .word 0 + .word 28016 + .word 57231 + .word 15419 + .word 0 + .word 0 + .word 0 + .word 16112 + .word 44995 + .word 15390 + .word 0 + .word 0 + .word 0 + .word 53464 + .word 33387 + .word 15358 + .word 0 + .word 0 + .word 0 + .word 7296 + .word 60751 + .word 15325 + .word 0 + .word 0 + .word 0 + .word 29452 + .word 45231 + .word 15297 + .word 0 + .word 0 + .word 0 + .word 26208 + .word 49689 + .word 15266 + .word 0 + .word 0 + .word 0 + .word 37900 + .word 44002 + .word 15235 + .word 0 + .word 0 + .word 0 + .word 57340 + .word 33800 + .word 15204 + .word 0 + .word 0 + .word 0 + .word 27544 + .word 50178 + .word 15173 + .word 0 + .word 0 + .word 0 + .word 6168 + .word 40132 + .word 15142 + .word 0 + .word 0 + .word 0 + .word 21392 + .word 43702 + .word 15109 + .word 0 + .word 0 + .word 0 + .word 45168 + .word 54372 + .word 15081 + .word 0 + .word 0 + .word 0 + .word 8986 + .word 40688 + .word 15050 + .word 0 + .word 0 + .word 0 + .word 1648 + .word 53745 + .word 15018 + .word 0 + .word 0 + .word 0 + .word 30520 + .word 55795 + .word 14986 + .word 0 + .word 0 + .word 0 + .word 43060 + .word 32914 + .word 14956 + .word 0 + .word 0 + .word 0 + .word 46172 + .word 52771 + .word 14925 + .word 0 + .word 0 + .word 0 + .word 14056 + .word 45285 + .word 14893 + .word 0 + .word 0 + .word 0 + .word 53590 + .word 44868 + .word 14864 + .word 0 + .word 0 + .word 0 + .word 40786 + .word 35970 + .word 14833 + .word 0 + .word 0 + .word 0 + .word 33436 + .word 65411 + .word 14801 + .word 0 + .word 0 + .word 0 + .word 32006 + .word 61382 + .word 14771 + .word 0 + .word 0 + .word 0 + .word 37856 + .word 45239 + .word 14738 + .word 0 + .word 0 + .word 0 + .word 60894 + .word 49555 + .word 14709 + .word 0 + .word 0 + .word 0 + .word 48064 + .word 53065 + .word 14674 + .word 0 + .word 0 + .word 0 + .word 48624 + .word 54844 + .word 14647 + .word 0 + .word 0 + .word 0 + .word 7988 + .word 40762 + .word 14616 + .word 0 + .word 0 + .word 0 + .word 16270 + .word 58745 + .word 14585 + .word 0 + .word 0 + .word 0 + .word 37064 + .word 50168 + .word 14553 + .word 0 + .word 0 + .word 0 + .word 18624 + .word 63736 + .word 14519 + .word 0 + .word 0 + .word 0 + .word 60758 + .word 44966 + .word 14492 + .word 0 + .word 0 + .word 0 + .word 33304 + .word 47465 + .word 14461 + .word 0 + .word 0 + .word 0 + .word 6226 + .word 60503 + .word 14430 + .word 0 + .word 0 + .word 0 + .word 26380 + .word 54900 + .word 14398 + .word 0 + .word 0 + .word 0 + .word 44352 + .word 49860 + .word 14368 + .word 0 + .word 0 + .word 0 + .word 11904 + .word 42646 + .word 14337 + .word 0 + .word 0 + .word 0 + .word 55296 + .word 50279 + .word 14300 + .word 0 + .word 0 + .word 0 + .word 15474 + .word 50606 + .word 14275 + .word 0 + .word 0 + .word 0 + .word 45062 + .word 44137 + .word 14244 + .word 0 + .word 0 + .word 0 + .word 13472 + .word 36063 + .word 14210 + .word 0 + .word 0 + .word 0 + .word 40658 + .word 53854 + .word 14182 + .word 0 + .word 0 + .word 0 + .word 28652 + .word 43690 + .word 14151 + .word 0 + .word 0 + .word 0 + .word 24640 + .word 64348 + .word 14118 + .word 0 + .word 0 + .word 0 + .word 30284 + .word 41980 + .word 14088 + .word 0 + .word 0 + .word 0 + .word 45652 + .word 38222 + .word 14057 + .word 0 + .word 0 + .word 0 + .word 15900 + .word 62940 + .word 14026 + .word 0 + .word 0 + .word 0 + .word 31494 + .word 50741 + .word 13996 + .word 0 + .word 0 + .word 0 + .word 43194 + .word 55096 + .word 13965 + .word 0 + .word 0 + .word 0 + .word 1740 + .word 45646 + .word 13933 + .word 0 + .word 0 + .word 0 + .word 28936 + .word 44150 + .word 13903 + .word 0 + .word 0 + .word 0 + .word 8996 + .word 42955 + .word 13872 + .word 0 + .word 0 + .word 0 + .word 44096 + .word 61205 + .word 13839 + .word 0 + .word 0 + .word 0 + .word 44614 + .word 54550 + .word 13810 + .word 0 + .word 0 + .word 0 + .word 24926 + .word 57347 + .word 13779 + .word 0 + .word 0 + .word 0 + .word 3312 + .word 61415 + .word 13745 + .word 0 + .word 0 + .word 0 + .word 64336 + .word 63884 + .word 13717 + .word 0 + .word 0 + .word 0 + .word 2748 + .word 62259 + .word 13685 + .word 0 + .word 0 + .word 0 + .word 56672 + .word 51775 + .word 13653 + .word 0 + .word 0 + .word 0 + .word 32438 + .word 55423 + .word 13624 + .word 0 + .word 0 + .word 0 + .word 17652 + .word 45713 + .word 13593 + .word 0 + .word 0 + .word 0 + .word 65408 + .word 51586 + .word 13558 + .word 0 + .word 0 + .word 0 + .word 40416 + .word 55736 + .word 13531 + .word 0 + .word 0 + .word 0 + .word 52546 + .word 37734 + .word 13500 + .word 0 + .word 0 + .word 0 + .word 48880 + .word 64238 + .word 13469 + .word 0 + .word 0 + .word 0 + .word 56004 + .word 46833 + .word 13437 + .word 0 + .word 0 + .word 0 + .word 61760 + .word 38110 + .word 13405 + .word 0 + .word 0 + .word 0 + .word 41496 + .word 35659 + .word 13374 + .word 0 + .word 0 + .word 0 + .word 25472 + .word 41269 + .word 13342 + .word 0 + .word 0 + .word 0 + .word 45444 + .word 36018 + .word 13314 + .word 0 + .word 0 + .word 0 + .word 6510 + .word 56417 + .word 13283 + .word 0 + .word 0 + .word 0 + .word 3072 + .word 56837 + .word 13252 + .word 0 + .word 0 + .word 0 + .word 61338 + .word 48440 + .word 13221 + .word 0 + .word 0 + .word 0 + .word 49568 + .word 57088 + .word 13189 + .word 0 + .word 0 + .word 0 + .word 4240 + .word 39283 + .word 13157 + .word 0 + .word 0 + .word 0 + .word 18562 + .word 33537 + .word 13128 + .word 0 + .word 0 + .word 0 + .word 31422 + .word 44487 + .word 13097 + .word 0 + .word 0 + .word 0 + .word 31930 + .word 60459 + .word 13066 + .word 0 + .word 0 + .word 0 + .word 42272 + .word 36641 + .word 13033 + .word 0 + .word 0 + .word 0 + .word 28940 + .word 36150 + .word 13004 + .word 0 + .word 0 + .word 0 + .word 21010 + .word 50925 + .word 12973 + .word 0 + .word 0 + .word 0 + .word 29448 + .word 64886 + .word 12941 + .word 0 + .word 0 + .word 0 + .word 20500 + .word 54600 + .word 12911 + .word 0 + .word 0 + .word 0 + .word 54258 + .word 46233 + .word 12880 + .word 0 + .word 0 + .word 0 + .word 32628 + .word 42502 + .word 12848 + .word 0 + .word 0 + .word 0 + .word 61608 + .word 55072 + .word 12818 + .word 0 + .word 0 + .word 0 + .word 6236 + .word 57871 + .word 12786 + .word 0 + .word 0 + .word 0 + .word 42408 + .word 34616 + .word 12756 + .word 0 + .word 0 + .word 0 + .word 56692 + .word 51963 + .word 12724 + .word 0 + .word 0 + .word 0 + .word 39094 + .word 48526 + .word 12694 + .word 0 + .word 0 + .word 0 + .word 59870 + .word 38783 + .word 12663 + .word 0 + .word 0 + .word 0 + .word 26560 + .word 33165 + .word 12632 + .word 0 + .word 0 + .word 0 + .word 58666 + .word 37666 + .word 12601 + .word 0 + .word 0 + .word 0 + .word 58728 + .word 39788 + .word 12569 + .word 0 + .word 0 + .word 0 + .word 9048 + .word 43530 + .word 12538 + .word 0 + .word 0 + .word 0 + .word 58496 + .word 57659 + .word 12505 + .word 0 + .word 0 + .word 0 + .word 12324 + .word 37025 + .word 12477 + .word 0 + .word 0 + .word 0 + .word 38432 + .word 55856 + .word 12445 + .word 0 + .word 0 + .word 0 + .word 35210 + .word 45960 + .word 12415 + .word 0 + .word 0 + .word 0 + .word 45644 + .word 51345 + .word 12384 + .word 0 + .word 0 + .word 0 + .word 32854 + .word 63883 + .word 12353 + .word 0 + .word 0 + .word 0 + .word 29348 + .word 41450 + .word 12321 + .word 0 + .word 0 + .word 0 + .word 27384 + .word 38024 + .word 12289 + .word 0 + .word 0 + .word 0 + .word 57356 + .word 57291 + .word 12260 + .word 0 + .word 0 + .word 0 + .word 61164 + .word 51521 + .word 12228 + .word 0 + .word 0 + .word 0 + .word 21472 + .word 59151 + .word 12196 + .word 0 + .word 0 + .word 0 + .word 36704 + .word 39943 + .word 12165 + .word 0 + .word 0 + .word 0 + .word 45864 + .word 50151 + .word 12136 + .word 0 + .word 0 + .word 0 + .word 37892 + .word 63687 + .word 12104 + .word 0 + .word 0 + .word 0 + .word 14560 + .word 51615 + .word 12073 + .word 0 + .word 0 + .word 0 + .word 38776 + .word 55684 + .word 12041 + .word 0 + .word 0 + .word 0 + .word 59136 + .word 53570 + .word 12010 + .word 0 + .word 0 + .word 0 + .word 55556 + .word 37955 + .word 11981 + .word 0 + .word 0 + .word 0 + .word 54458 + .word 44670 + .word 11950 + .word 0 + .word 0 + .word 0 + .word 36446 + .word 34084 + .word 11919 + .word 0 + .word 0 + .word 0 + .word 46416 + .word 51693 + .word 11886 + .word 0 + .word 0 + .word 0 + .word 21432 + .word 34376 + .word 11857 + .word 0 + .word 0 + .word 0 + .word 56036 + .word 34809 + .word 11826 + .word 0 + .word 0 + .word 0 + .word 10562 + .word 55654 + .word 11795 + .word 0 + .word 0 + .word 0 + .word 20264 + .word 53052 + .word 11763 + .word 0 + .word 0 + .word 0 + .word 64064 + .word 50415 + .word 11729 + .word 0 + .word 0 + .word 0 + .word 17444 + .word 48295 + .word 11701 + .word 0 + .word 0 + .word 0 + .word 11874 + .word 52677 + .word 11671 + .word 0 + .word 0 + .word 0 + .word 60808 + .word 39275 + .word 11640 + .word 0 + .word 0 + .word 0 + .word 31792 + .word 55677 + .word 11606 + .word 0 + .word 0 + .word 0 + .word 60710 + .word 49006 + .word 11578 + .word 0 + .word 0 + .word 0 + .word 10520 + .word 37403 + .word 11546 + .word 0 + .word 0 + .word 0 + .word 20004 + .word 59470 + .word 11515 + .word 0 + .word 0 + .word 0 + .word 28096 + .word 37612 + .word 11485 + .word 0 + .word 0 + .word 0 + .word 20268 + .word 44280 + .word 11453 + .word 0 + .word 0 + .word 0 + .word 50740 + .word 61588 + .word 11422 + .word 0 + .word 0 + .word 0 + .word 56432 + .word 58835 + .word 11390 + .word 0 + .word 0 + .word 0 + .word 8576 + .word 42496 + .word 11355 + .word 0 + .word 0 + .word 0 + .word 33920 + .word 54912 + .word 11324 + .word 0 + .word 0 + .word 0 + .word 35620 + .word 54843 + .word 11298 + .word 0 + .word 0 + .word 0 + .word 736 + .word 43591 + .word 11264 + .word 0 + .word 0 + .word 0 + .word 39632 + .word 61060 + .word 11235 + .word 0 + .word 0 + .word 0 + .word 63452 + .word 63129 + .word 11206 + .word 0 + .word 0 + .word 0 + .word 56798 + .word 58512 + .word 11175 + .word 0 + .word 0 + .word 0 + .word 13472 + .word 46333 + .word 11141 + .word 0 + .word 0 + .word 0 + .word 37300 + .word 36598 + .word 11112 + .word 0 + .word 0 + .word 0 + .word 41952 + .word 41639 + .word 11079 + .word 0 + .word 0 + .word 0 + .word 52452 + .word 33459 + .word 11050 + .word 0 + .word 0 + .word 0 + .word 58558 + .word 33287 + .word 11020 + .word 0 + .word 0 + .word 0 + .word 7570 + .word 43843 + .word 10989 + .word 0 + .word 0 + .word 0 + .word 59416 + .word 63990 + .word 10957 + .word 0 + .word 0 + .word 0 + .word 65298 + .word 47744 + .word 10927 + .word 0 + .word 0 + .word 0 + .word 21076 + .word 34089 + .word 10896 + .word 0 + .word 0 + .word 0 + .word 7048 + .word 57394 + .word 10865 + .word 0 + .word 0 + .word 0 + .word 12872 + .word 55405 + .word 10832 + .word 0 + .word 0 + .word 0 + .word 12608 + .word 51669 + .word 10798 + .word 0 + .word 0 + .word 0 + .word 5350 + .word 48455 + .word 10772 + .word 0 + .word 0 + .word 0 + .word 23568 + .word 58692 + .word 10740 + .word 0 + .word 0 + .word 0 + .word 40784 + .word 37046 + .word 10708 + .word 0 + .word 0 + .word 0 + .word 38992 + .word 43861 + .word 10678 + .word 0 + .word 0 + .word 0 + .word 10064 + .word 40199 + .word 10648 + .word 0 + .word 0 + .word 0 + .word 26368 + .word 35771 + .word 10611 + .word 0 + .word 0 + .word 0 + .word 23994 + .word 60721 + .word 10586 + .word 0 + .word 0 + .word 0 + .word 25052 + .word 34302 + .word 10554 + .word 0 + .word 0 + .word 0 + .word 39842 + .word 54964 + .word 10524 + .word 0 + .word 0 + .word 0 + .word 11568 + .word 58277 + .word 10491 + .word 0 + .word 0 + .word 0 + .word 26160 + .word 46438 + .word 10461 + .word 0 + .word 0 + .word 0 + .word 23252 + .word 43049 + .word 10431 + .word 0 + .word 0 + .word 0 + .word 35288 + .word 58000 + .word 10400 + .word 0 + .word 0 + .word 0 + .word 14614 + .word 50216 + .word 10369 + .word 0 + .word 0 + .word 0 + .word 1168 + .word 48804 + .word 10336 + .word 0 + .word 0 + .word 0 + .word 60934 + .word 33006 + .word 10307 + .word 0 + .word 0 + .word 0 + .word 64512 + .word 62247 + .word 10272 + .word 0 + .word 0 + .word 0 + .word 59968 + .word 43121 + .word 10240 + .word 0 + .word 0 + .word 0 + .word 25560 + .word 39974 + .word 10212 + .word 0 + .word 0 + .word 0 + .word 1978 + .word 49353 + .word 10183 + .word 0 + .word 0 + .word 0 + .word 16290 + .word 38807 + .word 10152 + .word 0 + .word 0 + .word 0 + .word 8646 + .word 65226 + .word 10121 + .word 0 + .word 0 + .word 0 + .word 56896 + .word 34317 + .word 10088 + .word 0 + .word 0 + .word 0 + .word 40136 + .word 39118 + .word 10057 + .word 0 + .word 0 + .word 0 + .word 14200 + .word 41756 + .word 10026 + .word 0 + .word 0 + .word 0 + .word 59256 + .word 63202 + .word 9995 + .word 0 + .word 0 + .word 0 + .word 22968 + .word 63553 + .word 9965 + .word 0 + .word 0 + .word 0 + .word 736 + .word 44292 + .word 9933 + .word 0 + .word 0 + .word 0 + .word 23186 + .word 37760 + .word 9904 + .word 0 + .word 0 + .word 0 + .word 51008 + .word 34950 + .word 9869 + .word 0 + .word 0 + .word 0 + .word 1664 + .word 64248 + .word 9836 + .word 0 + .word 0 + .word 0 + .word 64352 + .word 35199 + .word 9811 + .word 0 + .word 0 + .word 0 + .word 34656 + .word 63747 + .word 9780 + .word 0 + .word 0 + .word 0 + .word 44330 + .word 49864 + .word 9749 + .word 0 + .word 0 + .word 0 + .word 11654 + .word 35567 + .word 9718 + .word 0 + .word 0 + .word 0 + .word 7924 + .word 58919 + .word 9686 + .word 0 + .word 0 + .word 0 + .word 2532 + .word 32800 + .word 9655 + .word 0 + .word 0 + .word 0 + .word 30024 + .word 53799 + .word 9624 + .word 0 + .word 0 + .word 0 + .word 30172 + .word 64347 + .word 9593 + .word 0 + .word 0 + .word 0 + .word 60036 + .word 51382 + .word 9562 + .word 0 + .word 0 + .word 0 + .word 58576 + .word 33093 + .word 9531 + .word 0 + .word 0 + .word 0 + .word 13888 + .word 38760 + .word 9500 + .word 0 + .word 0 + .word 0 + .word 9322 + .word 52460 + .word 9470 + .word 0 + .word 0 + .word 0 + .word 20944 + .word 41077 + .word 9437 + .word 0 + .word 0 + .word 0 + .word 17976 + .word 41861 + .word 9407 + .word 0 + .word 0 + .word 0 + .word 55176 + .word 55158 + .word 9377 + .word 0 + .word 0 + .word 0 + .word 4976 + .word 35223 + .word 9346 + .word 0 + .word 0 + .word 0 + .word 7816 + .word 39783 + .word 9314 + .word 0 + .word 0 + .word 0 + .word 27656 + .word 55669 + .word 9284 + .word 0 + .word 0 + .word 0 + .word 64944 + .word 53184 + .word 9250 + .word 0 + .word 0 + .word 0 + .word 12544 + .word 49190 + .word 9222 + .word 0 + .word 0 + .word 0 + .word 50612 + .word 44644 + .word 9190 + .word 0 + .word 0 + .word 0 + .word 8832 + .word 63111 + .word 9155 + .word 0 + .word 0 + .word 0 + .word 11744 + .word 36870 + .word 9129 + .word 0 + .word 0 + .word 0 + .word 9404 + .word 63025 + .word 9098 + .word 0 + .word 0 + .word 0 + .word 47316 + .word 43381 + .word 9067 + .word 0 + .word 0 + .word 0 + .word 55716 + .word 47433 + .word 9035 + .word 0 + .word 0 + .word 0 + .word 46414 + .word 48441 + .word 9005 + .word 0 + .word 0 + .word 0 + .word 19116 + .word 39506 + .word 8974 + .word 0 + .word 0 + .word 0 + .word 48060 + .word 53381 + .word 8943 + .word 0 + .word 0 + .word 0 + .word 57112 + .word 50739 + .word 8911 + .word 0 + .word 0 + .word 0 + .word 5840 + .word 60581 + .word 8879 + .word 0 + .word 0 + .word 0 + .word 62112 + .word 57199 + .word 8846 + .word 0 + .word 0 + .word 0 + .word 35908 + .word 59499 + .word 8818 + .word 0 + .word 0 + .word 0 + .word 13760 + .word 48116 + .word 8787 + .word 0 + .word 0 + .word 0 + .word 3136 + .word 56059 + .word 8752 + .word 0 + .word 0 + .word 0 + .word 37596 + .word 39221 + .word 8726 + .word 0 + .word 0 + .word 0 + .word 3232 + .word 48550 + .word 8691 + .word 0 + .word 0 + .word 0 + .word 22872 + .word 42749 + .word 8662 + .word 0 + .word 0 + .word 0 + .word 41948 + .word 40319 + .word 8633 + .word 0 + .word 0 + .word 0 + .word 31196 + .word 64693 + .word 8601 + .word 0 + .word 0 + .word 0 + .word 62052 + .word 52923 + .word 8571 + .word 0 + .word 0 + .word 0 + .word 2750 + .word 33544 + .word 8540 + .word 0 + .word 0 + .word 0 + .word 12462 + .word 46179 + .word 8509 + .word 0 + .word 0 + .word 0 + .word 25128 + .word 45120 + .word 8476 + .word 0 + .word 0 + .word 0 + .word 51634 + .word 62523 + .word 8447 + .word 0 + .word 0 + .word 0 + .word 15758 + .word 42163 + .word 8416 + .word 0 + .word 0 + .word 0 + .word 34022 + .word 36267 + .word 8385 + .word 0 + .word 0 + .word 0 + .word 41252 + .word 39796 + .word 8353 + .word 0 + .word 0 + .word 0 + .word 49782 + .word 54423 + .word 8323 + .word 0 + .word 0 + .word 0 + .word 25428 + .word 42086 + .word 8291 + .word 0 + .word 0 + .word 0 + .word 34388 + .word 44810 + .word 8260 + .word 0 + .word 0 + .word 0 + .word 7456 + .word 64092 + .word 8228 + .word 0 + .word 0 + .word 0 + .word 48336 + .word 62448 + .word 8196 + .word 0 + .word 0 + .word 0 + .word 60912 + .word 61622 + .word 8167 + .word 0 + .word 0 + .word 0 + .word 17852 + .word 37250 + .word 8137 + .word 0 + .word 0 + .word 0 + .word 57940 + .word 56453 + .word 8106 + .word 0 + .word 0 + .word 0 + .word 47256 + .word 59825 + .word 8074 + .word 0 + .word 0 + .word 0 + .word 3774 + .word 59120 + .word 8044 + .word 0 + .word 0 + .word 0 + .word 43448 + .word 62852 + .word 8012 + .word 0 + .word 0 + .word 0 + .word 4840 + .word 57195 + .word 7982 + .word 0 + .word 0 + .word 0 + .word 40862 + .word 52565 + .word 7951 + .word 0 + .word 0 + .word 0 + .word 1440 + .word 60474 + .word 7919 + .word 0 + .word 0 + .word 0 + .word 55520 + .word 38648 + .word 7889 + .word 0 + .word 0 + .word 0 + .word 15316 + .word 52422 + .word 7857 + .word 0 + .word 0 + .word 0 + .word 18704 + .word 47227 + .word 7827 + .word 0 + .word 0 + .word 0 + .word 48892 + .word 54283 + .word 7795 + .word 0 + .word 0 + .word 0 + .word 12670 + .word 41990 + .word 7765 + .word 0 + .word 0 + .word 0 + .word 27570 + .word 49842 + .word 7734 + .word 0 + .word 0 + .word 0 + .word 47230 + .word 47992 + .word 7703 + .word 0 + .word 0 + .word 0 + .word 41020 + .word 56253 + .word 7671 + .word 0 + .word 0 + .word 0 + .word 23404 + .word 58312 + .word 7641 + .word 0 + .word 0 + .word 0 + .word 35176 + .word 51854 + .word 7610 + .word 0 + .word 0 + .word 0 + .word 49188 + .word 59051 + .word 7578 + .word 0 + .word 0 + .word 0 + .word 16656 + .word 54507 + .word 7546 + .word 0 + .word 0 + .word 0 + .word 41320 + .word 48565 + .word 7517 + .word 0 + .word 0 + .word 0 + .word 302 + .word 42490 + .word 7486 + .word 0 + .word 0 + .word 0 + .word 26680 + .word 39967 + .word 7454 + .word 0 + .word 0 + .word 0 + .word 41304 + .word 43638 + .word 7424 + .word 0 + .word 0 + .word 0 + .word 2314 + .word 48533 + .word 7393 + .word 0 + .word 0 + .word 0 + .word 63294 + .word 35693 + .word 7362 + .word 0 + .word 0 + .word 0 + .word 24538 + .word 48319 + .word 7331 + .word 0 + .word 0 + .word 0 + .word 56296 + .word 47263 + .word 7300 + .word 0 + .word 0 + .word 0 + .word 28236 + .word 38599 + .word 7268 + .word 0 + .word 0 + .word 0 + .word 6594 + .word 62116 + .word 7238 + .word 0 + .word 0 + .word 0 + .word 47104 + .word 63573 + .word 7198 + .word 0 + .word 0 + .word 0 + .word 34812 + .word 34303 + .word 7176 + .word 0 + .word 0 + .word 0 + .word 5144 + .word 33695 + .word 7145 + .word 0 + .word 0 + .word 0 + .word 24966 + .word 55768 + .word 7114 + .word 0 + .word 0 + .word 0 + .word 62720 + .word 43946 + .word 7078 + .word 0 + .word 0 + .word 0 + .word 31542 + .word 56062 + .word 7052 + .word 0 + .word 0 + .word 0 + .word 62356 + .word 59096 + .word 7020 + .word 0 + .word 0 + .word 0 + .word 28412 + .word 40533 + .word 6990 + .word 0 + .word 0 + .word 0 + .word 24080 + .word 50467 + .word 6958 + .word 0 + .word 0 + .word 0 + .word 33296 + .word 46841 + .word 6925 + .word 0 + .word 0 + .word 0 + .word 39600 + .word 38627 + .word 6897 + .word 0 + .word 0 + .word 0 + .word 14436 + .word 37607 + .word 6865 + .word 0 + .word 0 + .word 0 + .word 39032 + .word 56421 + .word 6833 + .word 0 + .word 0 + .word 0 + .word 64032 + .word 54987 + .word 6804 + .word 0 + .word 0 + .word 0 + .word 27648 + .word 42212 + .word 6768 + .word 0 + .word 0 + .word 0 + .word 43840 + .word 46107 + .word 6739 + .word 0 + .word 0 + .word 0 + .word 17316 + .word 36574 + .word 6711 + .word 0 + .word 0 + .word 0 + .word 8928 + .word 37652 + .word 6677 + .word 0 + .word 0 + .word 0 + .word 24944 + .word 47433 + .word 6648 + .word 0 + .word 0 + .word 0 + .word 27392 + .word 57430 + .word 6616 + .word 0 + .word 0 + .word 0 + .word 39848 + .word 43340 + .word 6585 + .word 0 + .word 0 + .word 0 + .word 64160 + .word 43542 + .word 6555 + .word 0 + .word 0 + .word 0 + .word 35226 + .word 63015 + .word 6525 + .word 0 + .word 0 + .word 0 + .word 40736 + .word 64368 + .word 6493 + .word 0 + .word 0 + .word 0 + .word 42168 + .word 49526 + .word 6462 + .word 0 + .word 0 + .word 0 + .word 45596 + .word 34243 + .word 6432 + .word 0 + .word 0 + .word 0 + .word 20690 + .word 39705 + .word 6401 + .word 0 + .word 0 + .word 0 + .word 54448 + .word 46856 + .word 6368 + .word 0 + .word 0 + .word 0 + .word 64392 + .word 62736 + .word 6337 + .word 0 + .word 0 + .word 0 + .word 12780 + .word 56461 + .word 6307 + .word 0 + .word 0 + .word 0 + .word 15360 + .word 49145 + .word 6277 + .word 0 + .word 0 + .word 0 + .word 20512 + .word 49931 + .word 6242 + .word 0 + .word 0 + .word 0 + .word 54512 + .word 55820 + .word 6212 + .word 0 + .word 0 + .word 0 + .word 8402 + .word 39333 + .word 6184 + .word 0 + .word 0 + .word 0 + .word 34094 + .word 53593 + .word 6153 + .word 0 + .word 0 + .word 0 + .word 31960 + .word 38817 + .word 6121 + .word 0 + .word 0 + .word 0 + .word 16954 + .word 39291 + .word 6091 + .word 0 + .word 0 + .word 0 + .word 49600 + .word 48765 + .word 6056 + .word 0 + .word 0 + .word 0 + .word 59580 + .word 56541 + .word 6029 + .word 0 + .word 0 + .word 0 + .word 35624 + .word 44550 + .word 5998 + .word 0 + .word 0 + .word 0 + .word 4142 + .word 47316 + .word 5967 + .word 0 + .word 0 + .word 0 + .word 43520 + .word 43612 + .word 5935 + .word 0 + .word 0 + .word 0 + .word 20976 + .word 40896 + .word 5902 + .word 0 + .word 0 + .word 0 + .word 63576 + .word 57729 + .word 5874 + .word 0 + .word 0 + .word 0 + .word 37288 + .word 33122 + .word 5843 + .word 0 + .word 0 + .word 0 + .word 24384 + .word 52079 + .word 5809 + .word 0 + .word 0 + .word 0 + .word 47952 + .word 58719 + .word 5779 + .word 0 + .word 0 + .word 0 + .word 44242 + .word 55445 + .word 5750 + .word 0 + .word 0 + .word 0 + .word 61232 + .word 38847 + .word 5716 + .word 0 + .word 0 + .word 0 + .word 63232 + .word 46039 + .word 5683 + .word 0 + .word 0 + .word 0 + .word 13396 + .word 42933 + .word 5657 + .word 0 + .word 0 + .word 0 + .word 27392 + .word 43305 + .word 5622 + .word 0 + .word 0 + .word 0 + .word 40708 + .word 35319 + .word 5595 + .word 0 + .word 0 + .word 0 + .word 44408 + .word 55685 + .word 5564 + .word 0 + .word 0 + .word 0 + .word 42090 + .word 44607 + .word 5533 + .word 0 + .word 0 + .word 0 + .word 25504 + .word 53466 + .word 5500 + .word 0 + .word 0 + .word 0 + .word 24208 + .word 33149 + .word 5470 + .word 0 + .word 0 + .word 0 + .word 5268 + .word 45375 + .word 5440 + .word 0 + .word 0 + .word 0 + .word 144 + .word 40000 + .word 5409 + .word 0 + .word 0 + .word 0 + .word 56688 + .word 52358 + .word 5376 + .word 0 + .word 0 + .word 0 + .word 25848 + .word 56175 + .word 5345 + .word 0 + .word 0 + .word 0 + .word 57900 + .word 44055 + .word 5315 + .word 0 + .word 0 + .word 0 + .word 24800 + .word 43437 + .word 5283 + .word 0 + .word 0 + .word 0 + .word 17984 + .word 54872 + .word 5249 + .word 0 + .word 0 + .word 0 + .word 25744 + .word 41345 + .word 5223 + .word 0 + .word 0 + .word 0 + .word 7668 + .word 43682 + .word 5191 + .word 0 + .word 0 + .word 0 + .word 47434 + .word 36705 + .word 5161 + .word 0 + .word 0 + .word 0 + .word 20888 + .word 40323 + .word 5129 + .word 0 + .word 0 + .word 0 + .word 3962 + .word 43032 + .word 5099 + .word 0 + .word 0 + .word 0 + .word 50270 + .word 49260 + .word 5068 + .word 0 + .word 0 + .word 0 + .word 20160 + .word 64041 + .word 5032 + .word 0 + .word 0 + .word 0 + .word 25624 + .word 36013 + .word 5004 + .word 0 + .word 0 + .word 0 + .word 48328 + .word 59345 + .word 4975 + .word 0 + .word 0 + .word 0 + .word 51508 + .word 63920 + .word 4943 + .word 0 + .word 0 + .word 0 + .word 27872 + .word 39135 + .word 4913 + .word 0 + .word 0 + .word 0 + .word 13590 + .word 58857 + .word 4882 + .word 0 + .word 0 + .word 0 + .word 50880 + .word 61323 + .word 4847 + .word 0 + .word 0 + .word 0 + .word 44802 + .word 37181 + .word 4820 + .word 0 + .word 0 + .word 0 + .word 53808 + .word 57813 + .word 4789 + .word 0 + .word 0 + .word 0 + .word 64424 + .word 49714 + .word 4757 + .word 0 + .word 0 + .word 0 + .word 31652 + .word 44011 + .word 4727 + .word 0 + .word 0 + .word 0 + .word 28252 + .word 50834 + .word 4696 + .word 0 + .word 0 + .word 0 + .word 30370 + .word 38742 + .word 4665 + .word 0 + .word 0 + .word 0 + .word 57728 + .word 58403 + .word 4628 + .word 0 + .word 0 + .word 0 + .word 35900 + .word 37112 + .word 4603 + .word 0 + .word 0 + .word 0 + .word 40764 + .word 40914 + .word 4572 + .word 0 + .word 0 + .word 0 + .word 21472 + .word 46910 + .word 4541 + .word 0 + .word 0 + .word 0 + .word 17854 + .word 35030 + .word 4510 + .word 0 + .word 0 + .word 0 + .word 4378 + .word 35776 + .word 4479 + .word 0 + .word 0 + .word 0 + .word 57962 + .word 55295 + .word 4448 + .word 0 + .word 0 + .word 0 + .word 64352 + .word 56717 + .word 4415 + .word 0 + .word 0 + .word 0 + .word 37744 + .word 49416 + .word 4384 + .word 0 + .word 0 + .word 0 + .word 38484 + .word 35759 + .word 4355 + .word 0 + .word 0 + .word 0 + .word 55020 + .word 54969 + .word 4324 + .word 0 + .word 0 + .word 0 + .word 9188 + .word 55223 + .word 4292 + .word 0 + .word 0 + .word 0 + .word 6822 + .word 43079 + .word 4262 + .word 0 + .word 0 + .word 0 + .word 48870 + .word 40943 + .word 4231 + .word 0 + .word 0 + .word 0 + .word 9936 + .word 42731 + .word 4198 + .word 0 + .word 0 + .word 0 + .word 23430 + .word 43136 + .word 4169 + .word 0 + .word 0 + .word 0 + .word 4700 + .word 55665 + .word 4137 + .word 0 + .word 0 + .word 0 + .word 8056 + .word 40216 + .word 4106 + .word 0 + .word 0 + .word 0 + .word 3716 + .word 45403 + .word 4075 + .word 0 + .word 0 + .word 0 + .word 53440 + .word 49488 + .word 4044 + .word 0 + .word 0 + .word 0 + .word 41776 + .word 50188 + .word 4013 + .word 0 + .word 0 + .word 0 + .word 20994 + .word 64556 + .word 3983 + .word 0 + .word 0 + .word 0 + .word 16252 + .word 60661 + .word 3951 + .word 0 + .word 0 + .word 0 + .word 61252 + .word 65021 + .word 3920 + .word 0 + .word 0 + .word 0 + .word 16236 + .word 43803 + .word 3889 + .word 0 + .word 0 + .word 0 + .word 63064 + .word 35308 + .word 3857 + .word 0 + .word 0 + .word 0 + .word 49096 + .word 39848 + .word 3828 + .word 0 + .word 0 + .word 0 + .word 15680 + .word 48673 + .word 3797 + .word 0 + .word 0 + .word 0 + .word 48068 + .word 50957 + .word 3766 + .word 0 + .word 0 + .word 0 + .word 20824 + .word 56086 + .word 3734 + .word 0 + .word 0 + .word 0 + .word 46504 + .word 43224 + .word 3704 + .word 0 + .word 0 + .word 0 + .word 52428 + .word 46094 + .word 3672 + .word 0 + .word 0 + .word 0 + .word 17548 + .word 52066 + .word 3642 + .word 0 + .word 0 + .word 0 + .word 61738 + .word 35565 + .word 3611 + .word 0 + .word 0 + .word 0 + .word 31184 + .word 50588 + .word 3579 + .word 0 + .word 0 + .word 0 + .word 1716 + .word 52681 + .word 3549 + .word 0 + .word 0 + .word 0 + .word 44656 + .word 43385 + .word 3518 + .word 0 + .word 0 + .word 0 + .word 12668 + .word 43259 + .word 3486 + .word 0 + .word 0 + .word 0 + .word 24544 + .word 35408 + .word 3453 + .word 0 + .word 0 + .word 0 + .word 28854 + .word 65018 + .word 3425 + .word 0 + .word 0 + .word 0 + .word 5696 + .word 40391 + .word 3393 + .word 0 + .word 0 + .word 0 + .word 39580 + .word 56400 + .word 3363 + .word 0 + .word 0 + .word 0 + .word 20428 + .word 39579 + .word 3332 + .word 0 + .word 0 + .word 0 + .word 32328 + .word 36727 + .word 3301 + .word 0 + .word 0 + .word 0 + .word 34020 + .word 54457 + .word 3270 + .word 0 + .word 0 + .word 0 + .word 34016 + .word 48400 + .word 3238 + .word 0 + .word 0 + .word 0 + .word 6922 + .word 51417 + .word 3208 + .word 0 + .word 0 + .word 0 + .word 27208 + .word 64641 + .word 3176 + .word 0 + .word 0 + .word 0 + .word 1802 + .word 48886 + .word 3146 + .word 0 + .word 0 + .word 0 + .word 35440 + .word 61590 + .word 3115 + .word 0 + .word 0 + .word 0 + .word 60610 + .word 51604 + .word 3084 + .word 0 + .word 0 + .word 0 + .word 5440 + .word 38199 + .word 3050 + .word 0 + .word 0 + .word 0 + .word 6914 + .word 43867 + .word 3022 + .word 0 + .word 0 + .word 0 + .word 24000 + .word 45256 + .word 2989 + .word 0 + .word 0 + .word 0 + .word 51496 + .word 57396 + .word 2959 + .word 0 + .word 0 + .word 0 + .word 11538 + .word 46256 + .word 2929 + .word 0 + .word 0 + .word 0 + .word 36802 + .word 48020 + .word 2898 + .word 0 + .word 0 + .word 0 + .word 57910 + .word 57903 + .word 2867 + .word 0 + .word 0 + .word 0 + .word 47484 + .word 48798 + .word 2835 + .word 0 + .word 0 + .word 0 + .word 57766 + .word 57709 + .word 2805 + .word 0 + .word 0 + .word 0 + .word 54064 + .word 47856 + .word 2774 + .word 0 + .word 0 + .word 0 + .word 49340 + .word 48080 + .word 2743 + .word 0 + .word 0 + .word 0 + .word 36454 + .word 56731 + .word 2712 + .word 0 + .word 0 + .word 0 + .word 51548 + .word 63385 + .word 2681 + .word 0 + .word 0 + .word 0 + .word 56000 + .word 48716 + .word 2645 + .word 0 + .word 0 + .word 0 + .word 44992 + .word 50040 + .word 2615 + .word 0 + .word 0 + .word 0 + .word 43136 + .word 58177 + .word 2585 + .word 0 + .word 0 + .word 0 + .word 49730 + .word 33270 + .word 2557 + .word 0 + .word 0 + .word 0 + .word 29808 + .word 51063 + .word 2526 + .word 0 + .word 0 + .word 0 + .word 25276 + .word 46724 + .word 2494 + .word 0 + .word 0 + .word 0 + .word 17324 + .word 35928 + .word 2463 + .word 0 + .word 0 + .word 0 + .word 52284 + .word 63916 + .word 2433 + .word 0 + .word 0 + .word 0 + .word 5414 + .word 46704 + .word 2402 + .word 0 + .word 0 + .word 0 + .word 51710 + .word 57168 + .word 2371 + .word 0 + .word 0 + .word 0 + .word 27366 + .word 49253 + .word 2340 + .word 0 + .word 0 + .word 0 + .word 45332 + .word 53033 + .word 2309 + .word 0 + .word 0 + .word 0 + .word 54152 + .word 37418 + .word 2276 + .word 0 + .word 0 + .word 0 + .word 53076 + .word 47398 + .word 2247 + .word 0 + .word 0 + .word 0 + .word 14374 + .word 59477 + .word 2216 + .word 0 + .word 0 + .word 0 + .word 59336 + .word 33435 + .word 2184 + .word 0 + .word 0 + .word 0 + .word 21612 + .word 43267 + .word 2154 + .word 0 + .word 0 + .word 0 + .word 34664 + .word 39372 + .word 2121 + .word 0 + .word 0 + .word 0 + .word 172 + .word 62761 + .word 2091 + .word 0 + .word 0 + .word 0 + .word 9816 + .word 40715 + .word 2060 + .word 0 + .word 0 + .word 0 + .word 65116 + .word 40481 + .word 2030 + .word 0 + .word 0 + .word 0 + .word 28066 + .word 39184 + .word 1999 + .word 0 + .word 0 + .word 0 + .word 37408 + .word 63923 + .word 1968 + .word 0 + .word 0 + .word 0 + .word 15760 + .word 42305 + .word 1937 + .word 0 + .word 0 + .word 0 + .word 28236 + .word 59340 + .word 1905 + .word 0 + .word 0 + .word 0 + .word 43258 + .word 59402 + .word 1875 + .word 0 + .word 0 + .word 0 + .word 19988 + .word 50087 + .word 1844 + .word 0 + .word 0 + .word 0 + .word 63456 + .word 47833 + .word 1810 + .word 0 + .word 0 + .word 0 + .word 65184 + .word 61426 + .word 1781 + .word 0 + .word 0 + .word 0 + .word 52982 + .word 48456 + .word 1751 + .word 0 + .word 0 + .word 0 + .word 30020 + .word 62809 + .word 1719 + .word 0 + .word 0 + .word 0 + .word 9096 + .word 63061 + .word 1688 + .word 0 + .word 0 + .word 0 + .word 59648 + .word 44374 + .word 1654 + .word 0 + .word 0 + .word 0 + .word 11456 + .word 33847 + .word 1625 + .word 0 + .word 0 + .word 0 + .word 12392 + .word 50500 + .word 1595 + .word 0 + .word 0 + .word 0 + .word 56432 + .word 59196 + .word 1563 + .word 0 + .word 0 + .word 0 + .word 61008 + .word 40265 + .word 1532 + .word 0 + .word 0 + .word 0 + .word 37842 + .word 33270 + .word 1503 + .word 0 + .word 0 + .word 0 + .word 37916 + .word 44543 + .word 1471 + .word 0 + .word 0 + .word 0 + .word 11490 + .word 36421 + .word 1441 + .word 0 + .word 0 + .word 0 + .word 19040 + .word 38397 + .word 1409 + .word 0 + .word 0 + .word 0 + .word 31224 + .word 47162 + .word 1379 + .word 0 + .word 0 + .word 0 + .word 52056 + .word 41461 + .word 1347 + .word 0 + .word 0 + .word 0 + .word 10810 + .word 56374 + .word 1317 + .word 0 + .word 0 + .word 0 + .word 5358 + .word 35086 + .word 1286 + .word 0 + .word 0 + .word 0 + .word 36640 + .word 50226 + .word 1251 + .word 0 + .word 0 + .word 0 + .word 33856 + .word 45597 + .word 1222 + .word 0 + .word 0 + .word 0 + .word 21552 + .word 63128 + .word 1191 + .word 0 + .word 0 + .word 0 + .word 1198 + .word 35616 + .word 1162 + .word 0 + .word 0 + .word 0 + .word 1232 + .word 59506 + .word 1131 + .word 0 + .word 0 + .word 0 + .word 51086 + .word 34963 + .word 1100 + .word 0 + .word 0 + .word 0 + .word 3960 + .word 39061 + .word 1067 + .word 0 + .word 0 + .word 0 + .word 4564 + .word 57134 + .word 1037 + .word 0 + .word 0 + .word 0 + .word 59468 + .word 35285 + .word 1007 + .word 0 + .word 0 + .word 0 + .word 63422 + .word 35431 + .word 976 + .word 0 + .word 0 + .word 0 + .word 38352 + .word 51462 + .word 945 + .word 0 + .word 0 + .word 0 + .word 25806 + .word 55660 + .word 914 + .word 0 + .word 0 + .word 0 + .word 38842 + .word 41327 + .word 883 + .word 0 + .word 0 + .word 0 + .word 17980 + .word 50458 + .word 852 + .word 0 + .word 0 + .word 0 + .word 61194 + .word 59710 + .word 821 + .word 0 + .word 0 + .word 0 + .word 21098 + .word 42086 + .word 790 + .word 0 + .word 0 + .word 0 + .word 16704 + .word 43341 + .word 757 + .word 0 + .word 0 + .word 0 + .word 46316 + .word 52840 + .word 728 + .word 0 + .word 0 + .word 0 + .word 20386 + .word 33936 + .word 697 + .word 0 + .word 0 + .word 0 + .word 20064 + .word 51864 + .word 664 + .word 0 + .word 0 + .word 0 + .word 2268 + .word 57500 + .word 634 + .word 0 + .word 0 + .word 0 + .word 11152 + .word 51171 + .word 604 + .word 0 + .word 0 + .word 0 + .word 23164 + .word 63727 + .word 572 + .word 0 + .word 0 + .word 0 + .word 20514 + .word 40280 + .word 542 + .word 0 + .word 0 + .word 0 + .word 21818 + .word 57922 + .word 511 + .word 0 + .word 0 + .word 0 + .word 32366 + .word 46413 + .word 480 + .word 0 + .word 0 + .word 0 + .word 53972 + .word 43148 + .word 449 + .word 0 + .word 0 + .word 0 + .word 30134 + .word 65133 + .word 418 + .word 0 + .word 0 + .word 0 + .word 15282 + .word 61516 + .word 387 + .word 0 + .word 0 + .word 0 + .word 49872 + .word 49222 + .word 355 + .word 0 + .word 0 + .word 0 + .word 9484 + .word 63958 + .word 325 + .word 0 + .word 0 + .word 0 + .word 47028 + .word 35341 + .word 294 + .word 0 + .word 0 + .word 0 + .word 6770 + .word 58613 + .word 263 + .word 0 + .word 0 + .word 0 + .word 33372 + .word 43448 + .word 232 + .word 0 + .word 0 + .word 0 + .word 27792 + .word 51629 + .word 198 + .word 0 + .word 0 + .word 0 + .word 19712 + .word 53691 + .word 170 + .word 0 + .word 0 + .word 0 + .word 42144 + .word 60929 + .word 135 + .word 0 + .word 0 + .word 0 + .word 35240 + .word 48799 + .word 107 + .word 0 + .word 0 + .word 0 + .word 910 + .word 51212 + .word 77 + .word 0 + .word 0 + .word 0 + .word 65062 + .word 33668 + .word 46 + .word 0 + .word 0 + .word 0 + .word 52624 + .word 51799 + .word 14 + .word 0 + .type __4onpi_31l,@object + .size __4onpi_31l,6444 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/libm_sincos_huge.S b/libm/x86/libm_sincos_huge.S new file mode 100644 index 000000000..b43d193e5 --- /dev/null +++ b/libm/x86/libm_sincos_huge.S @@ -0,0 +1,668 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +# -- Begin __libm_sincos_huge + .text + .align 16,0x90 + .hidden __libm_sincos_huge + .globl __libm_sincos_huge +__libm_sincos_huge: +# parameter 1: 8 + %ebp +# parameter 2: 16 + %ebp +# parameter 3: 20 + %ebp +..B1.1: + pushl %ebp + movl %esp, %ebp + andl $-64, %esp + pushl %esi + pushl %edi + pushl %ebx + subl $52, %esp + movl 16(%ebp), %eax + movl 20(%ebp), %edx + movl %eax, 32(%esp) + movl %edx, 36(%esp) +..B1.2: + fnstcw 30(%esp) +..B1.3: + call ..L2 +..L2: + popl %edi + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%edi), %edi + movsd 8(%ebp), %xmm1 + movl 12(%ebp), %esi + movl %esi, %eax + andl $2147483647, %eax + andps .L_2il0floatpacket.0@GOTOFF(%edi), %xmm1 + shrl $31, %esi + movl %eax, 40(%esp) + cmpl $1104150528, %eax + movsd %xmm1, 8(%ebp) + jae ..B1.11 +..B1.4: + movsd _Pi4Inv@GOTOFF(%edi), %xmm0 + mulsd %xmm1, %xmm0 + movzwl 30(%esp), %edx + movl %edx, %eax + andl $768, %eax + movsd %xmm0, (%esp) + cmpl $768, %eax + je ..B1.42 +..B1.5: + orl $-64768, %edx + movw %dx, 28(%esp) +..B1.6: + fldcw 28(%esp) +..B1.7: + movsd 8(%ebp), %xmm1 + movl $1, %ebx +..B1.8: + movl %ebx, 12(%esp) + movl 4(%esp), %ebx + movl %ebx, %eax + movl %esi, 8(%esp) + movl %ebx, %esi + shrl $20, %esi + andl $1048575, %eax + movl %esi, %ecx + orl $1048576, %eax + negl %ecx + movl %eax, %edx + addl $19, %ecx + addl $13, %esi + movl %ecx, 24(%esp) + shrl %cl, %edx + movl %esi, %ecx + shll %cl, %eax + movl 24(%esp), %ecx + movl (%esp), %esi + shrl %cl, %esi + orl %esi, %eax + cmpl $1094713344, %ebx + movsd %xmm1, 16(%esp) + fldl 16(%esp) + cmovb %edx, %eax + movl 8(%esp), %esi + lea 1(%eax), %edx + movl %edx, %ebx + andl $-2, %ebx + movl %ebx, 16(%esp) + fildl 16(%esp) + movl 12(%esp), %ebx + cmpl $1094713344, 40(%esp) + jae ..B1.10 +..B1.9: + fldl _Pi4x3@GOTOFF(%edi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 8+_Pi4x3@GOTOFF(%edi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 16+_Pi4x3@GOTOFF(%edi) + fmulp %st, %st(1) + faddp %st, %st(1) + jmp ..B1.17 +..B1.10: + fldl _Pi4x4@GOTOFF(%edi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 8+_Pi4x4@GOTOFF(%edi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 16+_Pi4x4@GOTOFF(%edi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 24+_Pi4x4@GOTOFF(%edi) + fmulp %st, %st(1) + faddp %st, %st(1) + jmp ..B1.17 +..B1.11: + movzwl 30(%esp), %edx + movl %edx, %eax + andl $768, %eax + cmpl $768, %eax + je ..B1.43 +..B1.12: + orl $-64768, %edx + movw %dx, 28(%esp) +..B1.13: + fldcw 28(%esp) +..B1.14: + movsd 8(%ebp), %xmm1 + movl $1, %ebx +..B1.15: + movsd %xmm1, 16(%esp) + fldl 16(%esp) + addl $-32, %esp + lea 32(%esp), %eax + fstpt (%esp) + movl $0, 12(%esp) + movl %eax, 16(%esp) + call __libm_reduce_pi04l +..B1.46: + addl $32, %esp +..B1.16: + fldl (%esp) + lea 1(%eax), %edx + fldl 8(%esp) + faddp %st, %st(1) +..B1.17: + movl %edx, %ecx + addl $3, %eax + shrl $2, %ecx + andl $1, %ecx + shrl $2, %eax + xorl %ecx, %esi + movl 36(%esp), %ecx + andl $1, %eax + andl $3, %ecx + cmpl $3, %ecx + jne ..B1.25 +..B1.18: + fldt 84+_SP@GOTOFF(%edi) + fld %st(1) + fmul %st(2), %st + testb $2, %dl + fmul %st, %st(1) + fldt 72+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fmul %st, %st(1) + fldt 60+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fmul %st, %st(1) + fldt 48+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fmul %st, %st(1) + fldt 36+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fmul %st, %st(1) + fldt 24+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fmul %st, %st(1) + fldt 12+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fmul %st, %st(1) + fldt _SP@GOTOFF(%edi) + faddp %st, %st(2) + fmul %st, %st(1) + fldt 84+_CP@GOTOFF(%edi) + fmul %st(1), %st + fldt 72+_CP@GOTOFF(%edi) + faddp %st, %st(1) + fmul %st(1), %st + fldt 60+_CP@GOTOFF(%edi) + faddp %st, %st(1) + fmul %st(1), %st + fldt 48+_CP@GOTOFF(%edi) + faddp %st, %st(1) + fmul %st(1), %st + fldt 36+_CP@GOTOFF(%edi) + faddp %st, %st(1) + fmul %st(1), %st + fldt 24+_CP@GOTOFF(%edi) + faddp %st, %st(1) + fmul %st(1), %st + fldt 12+_CP@GOTOFF(%edi) + faddp %st, %st(1) + fmul %st(1), %st + fldt _CP@GOTOFF(%edi) + faddp %st, %st(1) + fmulp %st, %st(1) + fldl _ones@GOTOFF(%edi,%esi,8) + fldl _ones@GOTOFF(%edi,%eax,8) + je ..B1.22 +..B1.19: + fmulp %st, %st(4) + testl %ebx, %ebx + fxch %st(2) + fmul %st(3), %st + movl 32(%esp), %eax + faddp %st, %st(3) + fxch %st(2) + fstpl (%eax) + fmul %st, %st(1) + faddp %st, %st(1) + fstpl 8(%eax) + je ..B1.21 +..B1.20: + fldcw 30(%esp) +..B1.21: + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.22: + fxch %st(1) + fmulp %st, %st(4) + testl %ebx, %ebx + fxch %st(2) + fmul %st(3), %st + movl 32(%esp), %eax + faddp %st, %st(3) + fxch %st(2) + fstpl 8(%eax) + fmul %st, %st(1) + faddp %st, %st(1) + fstpl (%eax) + je ..B1.24 +..B1.23: + fldcw 30(%esp) +..B1.24: + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.25: + testb $2, 36(%esp) + je ..B1.33 +..B1.26: + fld %st(0) + testb $2, %dl + fmul %st(1), %st + fld %st(0) + fmul %st(1), %st + je ..B1.30 +..B1.27: + fstp %st(2) + fldt 84+_CP@GOTOFF(%edi) + testl %ebx, %ebx + fmul %st(2), %st + fldt 72+_CP@GOTOFF(%edi) + fmul %st(3), %st + fldt 60+_CP@GOTOFF(%edi) + movl 32(%esp), %eax + faddp %st, %st(2) + fxch %st(1) + fmul %st(3), %st + fldt 48+_CP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(3), %st + fldt 36+_CP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(3), %st + fldt 24+_CP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(3), %st + fldt 12+_CP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmulp %st, %st(3) + fldt _CP@GOTOFF(%edi) + faddp %st, %st(1) + fmulp %st, %st(1) + faddp %st, %st(1) + fldl _ones@GOTOFF(%edi,%esi,8) + fmul %st, %st(1) + faddp %st, %st(1) + fstpl 8(%eax) + je ..B1.29 +..B1.28: + fldcw 30(%esp) +..B1.29: + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.30: + fldt 84+_SP@GOTOFF(%edi) + testl %ebx, %ebx + fmul %st(1), %st + fldt 72+_SP@GOTOFF(%edi) + fmul %st(2), %st + fldt 60+_SP@GOTOFF(%edi) + movl 32(%esp), %eax + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 48+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 36+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 24+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 12+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmulp %st, %st(2) + fldt _SP@GOTOFF(%edi) + faddp %st, %st(1) + fmulp %st, %st(2) + faddp %st, %st(1) + fldl _ones@GOTOFF(%edi,%esi,8) + fmulp %st, %st(2) + fmul %st(1), %st + faddp %st, %st(1) + fstpl 8(%eax) + je ..B1.32 +..B1.31: + fldcw 30(%esp) +..B1.32: + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.33: + testb $1, 36(%esp) + je ..B1.41 +..B1.34: + fld %st(0) + testb $2, %dl + fmul %st(1), %st + fld %st(0) + fmul %st(1), %st + je ..B1.38 +..B1.35: + fldt 84+_SP@GOTOFF(%edi) + testl %ebx, %ebx + fmul %st(1), %st + fldt 72+_SP@GOTOFF(%edi) + fmul %st(2), %st + fldt 60+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 48+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 36+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 24+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 12+_SP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmulp %st, %st(2) + fldt _SP@GOTOFF(%edi) + faddp %st, %st(1) + fmulp %st, %st(2) + faddp %st, %st(1) + fldl _ones@GOTOFF(%edi,%eax,8) + fmulp %st, %st(2) + fmul %st(1), %st + movl 32(%esp), %eax + faddp %st, %st(1) + fstpl (%eax) + je ..B1.37 +..B1.36: + fldcw 30(%esp) +..B1.37: + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.38: + fstp %st(2) + fldt 84+_CP@GOTOFF(%edi) + testl %ebx, %ebx + fmul %st(2), %st + fldt 72+_CP@GOTOFF(%edi) + fmul %st(3), %st + fldt 60+_CP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(3), %st + fldt 48+_CP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(3), %st + fldt 36+_CP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(3), %st + fldt 24+_CP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(3), %st + fldt 12+_CP@GOTOFF(%edi) + faddp %st, %st(2) + fxch %st(1) + fmulp %st, %st(3) + fldt _CP@GOTOFF(%edi) + faddp %st, %st(1) + fmulp %st, %st(1) + faddp %st, %st(1) + fldl _ones@GOTOFF(%edi,%eax,8) + fmul %st, %st(1) + movl 32(%esp), %eax + faddp %st, %st(1) + fstpl (%eax) + je ..B1.40 +..B1.39: + fldcw 30(%esp) +..B1.40: + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.41: + fstp %st(0) + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.42: + xorl %ebx, %ebx + jmp ..B1.8 +..B1.43: + xorl %ebx, %ebx + jmp ..B1.15 + .align 16,0x90 + .type __libm_sincos_huge,@function + .size __libm_sincos_huge,.-__libm_sincos_huge + .data +# -- End __libm_sincos_huge + .section .rodata, "a" + .align 16 + .align 16 +.L_2il0floatpacket.0: + .long 0xffffffff,0x7fffffff,0x00000000,0x00000000 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,16 + .align 16 +_Pi4Inv: + .long 1841940611 + .long 1072979760 + .type _Pi4Inv,@object + .size _Pi4Inv,8 + .space 8, 0x00 # pad + .align 16 +_Pi4x3: + .long 1413754880 + .long 3219726843 + .long 993632256 + .long 1027030475 + .long 3773204808 + .long 3129236486 + .type _Pi4x3,@object + .size _Pi4x3,24 + .space 8, 0x00 # pad + .align 16 +_Pi4x4: + .long 1413480448 + .long 3219726843 + .long 442499072 + .long 3183522913 + .long 771751936 + .long 3146979722 + .long 622873025 + .long 3110831002 + .type _Pi4x4,@object + .size _Pi4x4,32 + .align 16 +_SP: + .word 43691 + .word 43690 + .word 43690 + .word 43690 + .word 49148 + .word 0 + .word 34951 + .word 34952 + .word 34952 + .word 34952 + .word 16376 + .word 0 + .word 50471 + .word 3328 + .word 208 + .word 53261 + .word 49138 + .word 0 + .word 17910 + .word 46614 + .word 7466 + .word 47343 + .word 16364 + .word 0 + .word 33371 + .word 14743 + .word 11071 + .word 55090 + .word 49125 + .word 0 + .word 48947 + .word 35764 + .word 12250 + .word 45202 + .word 16350 + .word 0 + .word 17574 + .word 60698 + .word 10735 + .word 55102 + .word 49110 + .word 0 + .word 34320 + .word 12415 + .word 25249 + .word 51489 + .word 16334 + .word 0 + .type _SP,@object + .size _SP,96 + .align 16 +_CP: + .word 0 + .word 0 + .word 0 + .word 32768 + .word 49150 + .word 0 + .word 43685 + .word 43690 + .word 43690 + .word 43690 + .word 16378 + .word 0 + .word 39983 + .word 2912 + .word 24758 + .word 46603 + .word 49141 + .word 0 + .word 61476 + .word 3244 + .word 208 + .word 53261 + .word 16367 + .word 0 + .word 1022 + .word 16229 + .word 32187 + .word 37874 + .word 49129 + .word 0 + .word 55373 + .word 44526 + .word 50840 + .word 36726 + .word 16354 + .word 0 + .word 55994 + .word 65145 + .word 59958 + .word 51657 + .word 49114 + .word 0 + .word 15046 + .word 2976 + .word 1998 + .word 54661 + .word 16338 + .word 0 + .type _CP,@object + .size _CP,96 + .align 16 +_ones: + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .type _ones,@object + .size _ones,16 + .data + .hidden __libm_reduce_pi04l + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/libm_tancot_huge.S b/libm/x86/libm_tancot_huge.S new file mode 100644 index 000000000..80f16d5ba --- /dev/null +++ b/libm/x86/libm_tancot_huge.S @@ -0,0 +1,750 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +# -- Begin __libm_tancot_huge + .text + .align 16,0x90 + .hidden __libm_tancot_huge + .globl __libm_tancot_huge +__libm_tancot_huge: +# parameter 1: 8 + %ebp +# parameter 2: 16 + %ebp +# parameter 3: 20 + %ebp +..B1.1: + pushl %ebp + movl %esp, %ebp + andl $-64, %esp + pushl %esi + pushl %edi + pushl %ebx + subl $52, %esp + movl 16(%ebp), %eax + movl 20(%ebp), %ebx + movl %eax, 40(%esp) +..B1.2: + fnstcw 38(%esp) +..B1.3: + movl 12(%ebp), %edx + movl %edx, %eax + andl $2147483647, %eax + shrl $31, %edx + movl %edx, 44(%esp) + cmpl $1104150528, %eax + call ..L2 +..L2: + popl %esi + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%esi), %esi + jae ..B1.11 +..B1.4: + movsd 8(%ebp), %xmm1 + movzwl 38(%esp), %ecx + movl %ecx, %edx + andl $768, %edx + andps .L_2il0floatpacket.0@GOTOFF(%esi), %xmm1 + cmpl $768, %edx + movsd _Pi4Inv@GOTOFF(%esi), %xmm0 + mulsd %xmm1, %xmm0 + movsd %xmm1, 8(%ebp) + movsd %xmm0, (%esp) + je ..B1.39 +..B1.5: + orl $-64768, %ecx + movw %cx, 36(%esp) +..B1.6: + fldcw 36(%esp) +..B1.7: + movsd 8(%ebp), %xmm1 + movl $1, %edi +..B1.8: + movl %esi, 12(%esp) + movl 4(%esp), %esi + movl %esi, %edx + movl %edi, 24(%esp) + movl %esi, %edi + shrl $20, %edi + andl $1048575, %edx + movl %edi, %ecx + orl $1048576, %edx + negl %ecx + addl $13, %edi + movl %ebx, 8(%esp) + addl $19, %ecx + movl %edx, %ebx + movl %ecx, 28(%esp) + shrl %cl, %ebx + movl %edi, %ecx + shll %cl, %edx + movl 28(%esp), %ecx + movl (%esp), %edi + shrl %cl, %edi + orl %edi, %edx + cmpl $1094713344, %esi + movsd %xmm1, 16(%esp) + fldl 16(%esp) + cmovb %ebx, %edx + movl 24(%esp), %edi + movl 12(%esp), %esi + lea 1(%edx), %ebx + andl $-2, %ebx + movl %ebx, 16(%esp) + cmpl $1094713344, %eax + fildl 16(%esp) + movl 8(%esp), %ebx + jae ..B1.10 +..B1.9: + fldl _Pi4x3@GOTOFF(%esi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 8+_Pi4x3@GOTOFF(%esi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 16+_Pi4x3@GOTOFF(%esi) + fmulp %st, %st(1) + faddp %st, %st(1) + jmp ..B1.17 +..B1.10: + fldl _Pi4x4@GOTOFF(%esi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 8+_Pi4x4@GOTOFF(%esi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 16+_Pi4x4@GOTOFF(%esi) + fmul %st(1), %st + faddp %st, %st(2) + fldl 24+_Pi4x4@GOTOFF(%esi) + fmulp %st, %st(1) + faddp %st, %st(1) + jmp ..B1.17 +..B1.11: + movzwl 38(%esp), %edx + movl %edx, %eax + andl $768, %eax + cmpl $768, %eax + je ..B1.40 +..B1.12: + orl $-64768, %edx + movw %dx, 36(%esp) +..B1.13: + fldcw 36(%esp) +..B1.14: + movl $1, %edi +..B1.15: + movsd 8(%ebp), %xmm0 + addl $-32, %esp + andps .L_2il0floatpacket.0@GOTOFF(%esi), %xmm0 + lea 32(%esp), %eax + movsd %xmm0, 16(%eax) + fldl 16(%eax) + fstpt (%esp) + movl $0, 12(%esp) + movl %eax, 16(%esp) + call __libm_reduce_pi04l +..B1.43: + movl %eax, %edx + addl $32, %esp +..B1.16: + fldl (%esp) + fldl 8(%esp) + faddp %st, %st(1) +..B1.17: + movl %ebx, %eax + andl $3, %eax + cmpl $3, %eax + jne ..B1.24 +..B1.18: + fldl _ones@GOTOFF(%esi) + incl %edx + fdiv %st(1), %st + testb $2, %dl + fstpt 24(%esp) + fld %st(0) + fmul %st(1), %st + fld %st(0) + fmul %st(1), %st + fldt 36+_TP@GOTOFF(%esi) + fmul %st(2), %st + fldt 24+_TP@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(2), %st + fldt 12+_TP@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(2), %st + fldt 36+_TQ@GOTOFF(%esi) + fmul %st(3), %st + fldt 24+_TQ@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(3), %st + fldt 12+_TQ@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(3), %st + fldt _TQ@GOTOFF(%esi) + faddp %st, %st(1) + fldt _TP@GOTOFF(%esi) + faddp %st, %st(2) + fldt 132+_GP@GOTOFF(%esi) + fmul %st(3), %st + fldt 120+_GP@GOTOFF(%esi) + fmul %st(4), %st + fldt 108+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(4), %st + fldt 96+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(4), %st + fldt 84+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(4), %st + fldt 72+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(4), %st + fldt 60+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(4), %st + fldt 48+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(4), %st + fldt 36+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(4), %st + fldt 24+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmulp %st, %st(4) + fldt 12+_GP@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(4), %st + fmul %st(5), %st + fldt _GP@GOTOFF(%esi) + faddp %st, %st(4) + fxch %st(3) + fmul %st(5), %st + faddp %st, %st(3) + je ..B1.20 +..B1.19: + fldt 24(%esp) + fxch %st(1) + fdivrp %st, %st(2) + fxch %st(1) + fmulp %st, %st(3) + movl 44(%esp), %eax + xorl $1, %eax + fxch %st(2) + fmul %st(3), %st + fldl _ones@GOTOFF(%esi,%eax,8) + fmul %st, %st(2) + fmul %st, %st(3) + fxch %st(3) + faddp %st, %st(2) + fxch %st(1) + fstpl 16(%esp) + fmul %st(1), %st + fxch %st(1) + fmulp %st, %st(2) + movsd 16(%esp), %xmm0 + faddp %st, %st(1) + fstpl 16(%esp) + movsd 16(%esp), %xmm1 + jmp ..B1.21 +..B1.20: + fdivrp %st, %st(1) + fmulp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + movl 44(%esp), %eax + fldl _ones@GOTOFF(%esi,%eax,8) + fmul %st, %st(1) + fmul %st, %st(3) + fxch %st(3) + faddp %st, %st(1) + fstpl 16(%esp) + fmul %st(1), %st + fldt 24(%esp) + fmulp %st, %st(2) + movsd 16(%esp), %xmm0 + faddp %st, %st(1) + fstpl 16(%esp) + movsd 16(%esp), %xmm1 +..B1.21: + testl %edi, %edi + je ..B1.23 +..B1.22: + fldcw 38(%esp) +..B1.23: + movl 40(%esp), %eax + movsd %xmm0, (%eax) + movsd %xmm1, 8(%eax) + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.24: + testb $2, %bl + je ..B1.31 +..B1.25: + incl %edx + fld %st(0) + fmul %st(1), %st + testb $2, %dl + je ..B1.27 +..B1.26: + fldl _ones@GOTOFF(%esi) + fdiv %st(2), %st + fld %st(1) + fmul %st(2), %st + fldt 132+_GP@GOTOFF(%esi) + fmul %st(1), %st + fldt 120+_GP@GOTOFF(%esi) + fmul %st(2), %st + fldt 108+_GP@GOTOFF(%esi) + movl 44(%esp), %eax + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + xorl $1, %eax + fldt 96+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 84+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 72+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 60+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 48+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 36+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 24+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmulp %st, %st(2) + fldt 12+_GP@GOTOFF(%esi) + faddp %st, %st(1) + fmulp %st, %st(3) + fldt _GP@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(3), %st + fxch %st(2) + fmulp %st, %st(3) + fxch %st(1) + faddp %st, %st(2) + fldl _ones@GOTOFF(%esi,%eax,8) + fmul %st, %st(2) + fmulp %st, %st(1) + faddp %st, %st(1) + fstpl 16(%esp) + movsd 16(%esp), %xmm0 + jmp ..B1.28 +..B1.27: + fldt 36+_TP@GOTOFF(%esi) + fmul %st(1), %st + fldt 24+_TP@GOTOFF(%esi) + movl 44(%esp), %eax + faddp %st, %st(1) + fmul %st(1), %st + fldt 36+_TQ@GOTOFF(%esi) + fmul %st(2), %st + fldt 24+_TQ@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(2), %st + fldt 12+_TQ@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(2), %st + fldt _TQ@GOTOFF(%esi) + faddp %st, %st(1) + fldt 12+_TP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt _TP@GOTOFF(%esi) + faddp %st, %st(1) + fdivp %st, %st(1) + fmulp %st, %st(1) + fmul %st(1), %st + fldl _ones@GOTOFF(%esi,%eax,8) + fmul %st, %st(1) + fmulp %st, %st(2) + faddp %st, %st(1) + fstpl 16(%esp) + movsd 16(%esp), %xmm0 +..B1.28: + testl %edi, %edi + je ..B1.30 +..B1.29: + fldcw 38(%esp) +..B1.30: + movl 40(%esp), %eax + movsd %xmm0, (%eax) + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.31: + testb $1, %bl + je ..B1.38 +..B1.32: + incl %edx + fld %st(0) + fmul %st(1), %st + testb $2, %dl + je ..B1.34 +..B1.33: + fldt 36+_TP@GOTOFF(%esi) + fmul %st(1), %st + fldt 24+_TP@GOTOFF(%esi) + movl 44(%esp), %eax + faddp %st, %st(1) + fmul %st(1), %st + xorl $1, %eax + fldt 36+_TQ@GOTOFF(%esi) + fmul %st(2), %st + fldt 24+_TQ@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(2), %st + fldt 12+_TQ@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(2), %st + fldt _TQ@GOTOFF(%esi) + faddp %st, %st(1) + fldt 12+_TP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt _TP@GOTOFF(%esi) + faddp %st, %st(1) + fdivp %st, %st(1) + fmulp %st, %st(1) + fmul %st(1), %st + fldl _ones@GOTOFF(%esi,%eax,8) + fmul %st, %st(1) + fmulp %st, %st(2) + faddp %st, %st(1) + fstpl 16(%esp) + movsd 16(%esp), %xmm0 + jmp ..B1.35 +..B1.34: + fldl _ones@GOTOFF(%esi) + fdiv %st(2), %st + fld %st(1) + fmul %st(2), %st + fldt 132+_GP@GOTOFF(%esi) + fmul %st(1), %st + fldt 120+_GP@GOTOFF(%esi) + fmul %st(2), %st + fldt 108+_GP@GOTOFF(%esi) + movl 44(%esp), %eax + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 96+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 84+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 72+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 60+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 48+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 36+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmul %st(2), %st + fldt 24+_GP@GOTOFF(%esi) + faddp %st, %st(2) + fxch %st(1) + fmulp %st, %st(2) + fldt 12+_GP@GOTOFF(%esi) + faddp %st, %st(1) + fmulp %st, %st(3) + fldt _GP@GOTOFF(%esi) + faddp %st, %st(1) + fmul %st(3), %st + fxch %st(2) + fmulp %st, %st(3) + fxch %st(1) + faddp %st, %st(2) + fldl _ones@GOTOFF(%esi,%eax,8) + fmul %st, %st(2) + fmulp %st, %st(1) + faddp %st, %st(1) + fstpl 16(%esp) + movsd 16(%esp), %xmm0 +..B1.35: + testl %edi, %edi + je ..B1.37 +..B1.36: + fldcw 38(%esp) +..B1.37: + movl 40(%esp), %eax + movsd %xmm0, 8(%eax) + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.38: + fstp %st(0) + addl $52, %esp + popl %ebx + popl %edi + popl %esi + movl %ebp, %esp + popl %ebp + ret +..B1.39: + xorl %edi, %edi + jmp ..B1.8 +..B1.40: + xorl %edi, %edi + jmp ..B1.15 + .align 16,0x90 + .type __libm_tancot_huge,@function + .size __libm_tancot_huge,.-__libm_tancot_huge + .data +# -- End __libm_tancot_huge + .section .rodata, "a" + .align 16 + .align 16 +.L_2il0floatpacket.0: + .long 0xffffffff,0x7fffffff,0x00000000,0x00000000 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,16 + .align 16 +_Pi4Inv: + .long 1841940611 + .long 1072979760 + .type _Pi4Inv,@object + .size _Pi4Inv,8 + .space 8, 0x00 # pad + .align 16 +_Pi4x3: + .long 1413754880 + .long 3219726843 + .long 993632256 + .long 1027030475 + .long 3773204808 + .long 3129236486 + .type _Pi4x3,@object + .size _Pi4x3,24 + .space 8, 0x00 # pad + .align 16 +_Pi4x4: + .long 1413480448 + .long 3219726843 + .long 442499072 + .long 3183522913 + .long 771751936 + .long 3146979722 + .long 622873025 + .long 3110831002 + .type _Pi4x4,@object + .size _Pi4x4,32 + .align 16 +_ones: + .long 0 + .long 1072693248 + .long 0 + .long 3220176896 + .type _ones,@object + .size _ones,16 + .align 16 +_TP: + .word 19670 + .word 44908 + .word 50960 + .word 50786 + .word 49149 + .word 0 + .word 19206 + .word 45228 + .word 54194 + .word 52268 + .word 16377 + .word 0 + .word 227 + .word 51280 + .word 43560 + .word 38195 + .word 49139 + .word 0 + .word 12272 + .word 18029 + .word 6715 + .word 45670 + .word 16357 + .word 0 + .type _TP,@object + .size _TP,48 + .align 16 +_TQ: + .word 14748 + .word 33681 + .word 5452 + .word 38090 + .word 49151 + .word 0 + .word 46755 + .word 50026 + .word 17634 + .word 35372 + .word 16382 + .word 0 + .word 46863 + .word 53352 + .word 42702 + .word 59869 + .word 49145 + .word 0 + .word 33295 + .word 20942 + .word 32118 + .word 39935 + .word 16371 + .word 0 + .type _TQ,@object + .size _TQ,48 + .align 16 +_GP: + .word 43691 + .word 43690 + .word 43690 + .word 43690 + .word 49149 + .word 0 + .word 46639 + .word 2912 + .word 24758 + .word 46603 + .word 49145 + .word 0 + .word 57255 + .word 2218 + .word 21984 + .word 35507 + .word 49142 + .word 0 + .word 34208 + .word 43033 + .word 48281 + .word 56811 + .word 49138 + .word 0 + .word 28773 + .word 27191 + .word 31071 + .word 45908 + .word 49135 + .word 0 + .word 43257 + .word 33777 + .word 11976 + .word 37184 + .word 49132 + .word 0 + .word 62410 + .word 35990 + .word 36363 + .word 60269 + .word 49128 + .word 0 + .word 13659 + .word 55568 + .word 26569 + .word 48851 + .word 49125 + .word 0 + .word 10347 + .word 46238 + .word 47188 + .word 39576 + .word 49122 + .word 0 + .word 2161 + .word 6703 + .word 25719 + .word 64708 + .word 49118 + .word 0 + .word 42329 + .word 7593 + .word 44754 + .word 47734 + .word 49115 + .word 0 + .word 163 + .word 32746 + .word 39875 + .word 61957 + .word 49112 + .word 0 + .type _GP,@object + .size _GP,144 + .data + .hidden __libm_reduce_pi04l + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/s_atan.S b/libm/x86/s_atan.S new file mode 100644 index 000000000..c4413f158 --- /dev/null +++ b/libm/x86/s_atan.S @@ -0,0 +1,934 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// This implementation uses the main path for |x| in [2^{-5},2^65). +// For |x| in [2^{-64},2^{-5}), a secondary path is used. +// For the biased exponent of X within 3FFH-64 and 3FF+64, we use one branch. +// We use the following definition of B and X` so that the formula +// atan(X) = Tau + atan( (X`-B) / (One + BX) ) is correct +// +// X = (-1)^s * 2^k * 1. x1 x2 ... x52 +// +// Define X` = 0 if k >= 5; and X` = |X| otherwise +// Define One = 0 if k >= 5; and One = 1 otherwise +// Define B = 0 if k <= -6; B = 2^k * 1.x1 x2 x3 x4 1 if -5 <= k <= 4 +// Define B = 2^5 * 1.0 0 ... 0 if k >= 5 +// +// Tau is 0 if k <= -6; +// Tau is atan( B ) if -5 <= k <= 4 +// Tau is pi/2 if k >= 5 +// +// Special cases: +// atan(NaN) = quiet NaN +// atan(+/-INF) = +/-Pi/2 +// atan(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin atan +ENTRY(atan) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $104, %esp + movl %ebx, 48(%esp) + call static_func + movl %eax, %ebx + movsd 112(%esp), %xmm0 + movsd 2640(%ebx), %xmm3 + movsd 2624(%ebx), %xmm5 + movsd 2656(%ebx), %xmm4 + movsd %xmm0, 8(%esp) + pextrw $3, %xmm0, %edx + andpd %xmm0, %xmm3 + pshufd $68, %xmm0, %xmm1 + orpd %xmm4, %xmm3 + movl %edx, %eax + andl $32767, %edx + subl $16288, %edx + cmpl $159, %edx + ja .L_2TAG_PACKET_0.0.2 + mulsd %xmm3, %xmm1 + subsd %xmm3, %xmm0 + addsd %xmm5, %xmm1 + divsd %xmm1, %xmm0 + addl $1, %edx + movsd 2672(%ebx), %xmm2 + movsd 2688(%ebx), %xmm4 + andl $32768, %eax + xorpd %xmm7, %xmm7 + pinsrw $3, %eax, %xmm7 + addl %edx, %edx + movsd (%ebx,%edx,8), %xmm6 + movsd 8(%ebx,%edx,8), %xmm5 + xorpd %xmm7, %xmm5 + xorpd %xmm7, %xmm6 + movsd 2680(%ebx), %xmm7 + pshufd $68, %xmm0, %xmm1 + mulsd %xmm0, %xmm0 + pshufd $68, %xmm1, %xmm3 + addsd %xmm6, %xmm1 + mulsd %xmm0, %xmm2 + addsd %xmm0, %xmm4 + subsd %xmm1, %xmm6 + mulsd %xmm0, %xmm4 + addsd %xmm7, %xmm2 + mulsd %xmm3, %xmm0 + addsd %xmm3, %xmm6 + mulsd %xmm2, %xmm0 + addsd 2696(%ebx), %xmm4 + addsd %xmm5, %xmm6 + mulsd %xmm4, %xmm0 + addsd %xmm6, %xmm0 + addsd %xmm1, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_0.0.2: + addl $944, %edx + cmpl $1103, %edx + ja .L_2TAG_PACKET_2.0.2 + movsd 2672(%ebx), %xmm4 + movsd 2688(%ebx), %xmm7 + movsd 8(%esp), %xmm0 + mulsd %xmm1, %xmm1 + movsd 2680(%ebx), %xmm2 + movsd 2696(%ebx), %xmm5 + mulsd %xmm1, %xmm4 + addsd %xmm1, %xmm7 + movapd %xmm1, %xmm6 + mulsd %xmm0, %xmm1 + addsd %xmm4, %xmm2 + mulsd %xmm6, %xmm7 + mulsd %xmm1, %xmm2 + addsd %xmm5, %xmm7 + mulsd %xmm7, %xmm2 + addsd %xmm2, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + addl $15344, %edx + cmpl $16368, %edx + ja .L_2TAG_PACKET_3.0.2 + movsd 8(%esp), %xmm0 + movsd 8(%esp), %xmm1 + cmpl $16, %edx + jae .L_2TAG_PACKET_4.0.2 + mulsd %xmm0, %xmm1 +.L_2TAG_PACKET_4.0.2: + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_3.0.2: + cmpl $17392, %edx + jae .L_2TAG_PACKET_5.0.2 + xorpd %xmm1, %xmm1 + movl $49136, %ecx + pinsrw $3, %ecx, %xmm1 + divsd %xmm0, %xmm1 + movsd 2672(%ebx), %xmm2 + movsd 2688(%ebx), %xmm4 + andl $32768, %eax + xorpd %xmm7, %xmm7 + pinsrw $3, %eax, %xmm7 + addl %edx, %edx + movsd 2592(%ebx), %xmm6 + movsd 2600(%ebx), %xmm5 + xorpd %xmm7, %xmm5 + xorpd %xmm7, %xmm6 + movsd 2680(%ebx), %xmm7 + pshufd $68, %xmm1, %xmm0 + mulsd %xmm1, %xmm1 + pshufd $68, %xmm0, %xmm3 + addsd %xmm6, %xmm0 + mulsd %xmm1, %xmm2 + addsd %xmm1, %xmm4 + subsd %xmm0, %xmm6 + mulsd %xmm1, %xmm4 + addsd %xmm7, %xmm2 + mulsd %xmm3, %xmm1 + addsd %xmm3, %xmm6 + mulsd %xmm2, %xmm1 + addsd 2696(%ebx), %xmm4 + addsd %xmm5, %xmm6 + mulsd %xmm4, %xmm1 + addsd %xmm6, %xmm1 + addsd %xmm1, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_5.0.2: + movsd 8(%esp), %xmm4 + movsd 2608(%ebx), %xmm0 + movsd 2592(%ebx), %xmm2 + movsd 2600(%ebx), %xmm3 + movd %xmm1, %eax + psrlq $32, %xmm1 + movd %xmm1, %edx + andl $2147483647, %edx + cmpl $2146435072, %edx + jae .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_7.0.2: + andnpd %xmm4, %xmm0 + orpd %xmm0, %xmm2 + orpd %xmm3, %xmm0 + addsd %xmm2, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_6.0.2: + subl $2146435072, %edx + orl %edx, %eax + cmpl $0, %eax + je .L_2TAG_PACKET_7.0.2 + movapd %xmm4, %xmm0 + addsd %xmm0, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) +.L_2TAG_PACKET_1.0.2: + movl 48(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(atan) +# -- End atan + +# Start file scope ASM +ALIAS_SYMBOL(atanl, atan); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 0 + .long 0 + .long 0 + .long 3819695742 + .long 1067482761 + .long 2398680355 + .long 3155462074 + .long 2998791009 + .long 1067548225 + .long 3868465248 + .long 3157182472 + .long 3339424991 + .long 1067613680 + .long 3296670360 + .long 1010752543 + .long 2710002256 + .long 1067679126 + .long 3403896007 + .long 1010910768 + .long 3275701428 + .long 1067744562 + .long 119959933 + .long 1011482843 + .long 2908636881 + .long 1067809988 + .long 2464489612 + .long 1011545526 + .long 3777889398 + .long 1067875403 + .long 3262682165 + .long 1009703919 + .long 3759667419 + .long 1067940807 + .long 1838130851 + .long 3157373556 + .long 732369940 + .long 1068006200 + .long 1203428313 + .long 1010055371 + .long 1166616461 + .long 1068071580 + .long 2901274051 + .long 3158549977 + .long 2945472892 + .long 1068136947 + .long 3726120658 + .long 1009762715 + .long 3954480976 + .long 1068202301 + .long 1289173457 + .long 1009429861 + .long 2081752829 + .long 1068267642 + .long 1836909874 + .long 1006212095 + .long 3807999788 + .long 1068332968 + .long 2172459940 + .long 3156162078 + .long 2731789884 + .long 1068398280 + .long 3450718392 + .long 3159216547 + .long 1044477961 + .long 1068463577 + .long 2230553229 + .long 1011424339 + .long 1486930287 + .long 1068530218 + .long 2861547474 + .long 1012041376 + .long 2293016881 + .long 1068595466 + .long 136843272 + .long 1012684797 + .long 201518157 + .long 1068660680 + .long 63231984 + .long 1012427198 + .long 4054234584 + .long 1068725856 + .long 3927006960 + .long 1011878955 + .long 1246477213 + .long 1068790995 + .long 1494265652 + .long 3155219350 + .long 678186699 + .long 1068856093 + .long 1264361424 + .long 3159256693 + .long 2690594995 + .long 1068921148 + .long 3906996379 + .long 1009288267 + .long 3362611517 + .long 1068986159 + .long 1650970041 + .long 3158331771 + .long 3102162111 + .long 1069051124 + .long 365917035 + .long 3160264153 + .long 2352611067 + .long 1069116041 + .long 4008970190 + .long 3159478182 + .long 1594134794 + .long 1069180908 + .long 466690178 + .long 1012526501 + .long 1345079306 + .long 1069245723 + .long 2268273568 + .long 3160164092 + .long 2163300970 + .long 1069310484 + .long 2750834800 + .long 3158113482 + .long 352522716 + .long 1069375190 + .long 1750411372 + .long 1011790845 + .long 848541647 + .long 1069439838 + .long 2164207573 + .long 1011698350 + .long 40647312 + .long 1069504427 + .long 2949165434 + .long 3159107267 + .long 2216766270 + .long 1069574357 + .long 2197920765 + .long 3161055954 + .long 1090914384 + .long 1069638757 + .long 2330454674 + .long 1013365998 + .long 387601244 + .long 1069703022 + .long 3185681168 + .long 1013434071 + .long 3991640484 + .long 1069767144 + .long 1313211590 + .long 3161087959 + .long 3322489502 + .long 1069831118 + .long 3013977995 + .long 1013053011 + .long 3121698570 + .long 1069894936 + .long 4069015667 + .long 1013023362 + .long 4289964660 + .long 1069958591 + .long 1736191156 + .long 3158266731 + .long 3903312386 + .long 1070022077 + .long 1833592413 + .long 3159731471 + .long 3818449864 + .long 1070085387 + .long 851036429 + .long 3159730451 + .long 2097480306 + .long 1070148515 + .long 3506390884 + .long 3160462302 + .long 1611694502 + .long 1070211454 + .long 2785735540 + .long 3160465144 + .long 1464694796 + .long 1070274198 + .long 4229277299 + .long 3159907000 + .long 1299612775 + .long 1070336741 + .long 4116653788 + .long 3160427739 + .long 1310544789 + .long 1070399077 + .long 1064430331 + .long 1013218202 + .long 2253168030 + .long 1070461200 + .long 1405044609 + .long 3157623179 + .long 1159567373 + .long 1070523105 + .long 2353445521 + .long 3159992176 + .long 1359373750 + .long 1070605818 + .long 1748171336 + .long 3161879263 + .long 908341706 + .long 1070667034 + .long 3372710815 + .long 3161775245 + .long 1743027350 + .long 1070727765 + .long 687089934 + .long 3160507171 + .long 2055355646 + .long 1070787992 + .long 2392855242 + .long 1013682469 + .long 690426164 + .long 1070847697 + .long 1103926666 + .long 1014052810 + .long 1483247847 + .long 1070906862 + .long 2082645847 + .long 3161345479 + .long 392040270 + .long 1070965472 + .long 2407720023 + .long 1014053754 + .long 2673846014 + .long 1071023511 + .long 1293605532 + .long 3158464385 + .long 1384215810 + .long 1071080967 + .long 2446095872 + .long 3159216407 + .long 3101660631 + .long 1071137826 + .long 698040758 + .long 1014855328 + .long 2094057058 + .long 1071194078 + .long 2282048339 + .long 1014040385 + .long 1712750594 + .long 1071249712 + .long 1204372378 + .long 3162276464 + .long 1411515787 + .long 1071304719 + .long 949080808 + .long 1015006403 + .long 931538085 + .long 1071359091 + .long 3027127039 + .long 1014307233 + .long 179139065 + .long 1071412821 + .long 4285547492 + .long 3161934731 + .long 3387721259 + .long 1071465902 + .long 373225773 + .long 1013486625 + .long 2132236852 + .long 1071544299 + .long 3250533429 + .long 1014031677 + .long 1942070284 + .long 1071645596 + .long 1237964179 + .long 3163239113 + .long 1532707802 + .long 1071695380 + .long 330645583 + .long 1012495610 + .long 2294184979 + .long 1071743834 + .long 3959472897 + .long 1015833116 + .long 3805060714 + .long 1071790961 + .long 2671256142 + .long 1013727772 + .long 2215037898 + .long 1071836770 + .long 2683359117 + .long 1015831902 + .long 483661594 + .long 1071881273 + .long 836288326 + .long 3162648643 + .long 1534679894 + .long 1071924486 + .long 373258696 + .long 3162470096 + .long 1538714628 + .long 1071966430 + .long 3199433068 + .long 1015325501 + .long 527642555 + .long 1072007128 + .long 3636832592 + .long 3161843145 + .long 291339150 + .long 1072046605 + .long 890169537 + .long 3160586117 + .long 2450210201 + .long 1072084888 + .long 1636353294 + .long 3163193400 + .long 2411367951 + .long 1072122007 + .long 374899873 + .long 1011331750 + .long 681549971 + .long 1072157992 + .long 506411689 + .long 1015373954 + .long 1466745541 + .long 1072192873 + .long 2143860931 + .long 1013364334 + .long 2845622366 + .long 1072226682 + .long 2869178209 + .long 3162423682 + .long 2838871438 + .long 1072275456 + .long 3742223599 + .long 1014338577 + .long 4200275274 + .long 1072337034 + .long 1566539915 + .long 3161839550 + .long 3034733530 + .long 1072394897 + .long 652621408 + .long 3162261964 + .long 3207412993 + .long 1072449290 + .long 3206124665 + .long 1014408733 + .long 624461478 + .long 1072500450 + .long 932437485 + .long 1015204343 + .long 767665908 + .long 1072548600 + .long 1037911952 + .long 3163527627 + .long 1110773639 + .long 1072593952 + .long 2371517912 + .long 3160465741 + .long 1940828530 + .long 1072636704 + .long 2731408428 + .long 3162895795 + .long 1911329388 + .long 1072677041 + .long 1773089615 + .long 3159569267 + .long 1764715788 + .long 1072704191 + .long 691346949 + .long 3164069946 + .long 3332979233 + .long 1072722195 + .long 3550733983 + .long 1014770628 + .long 1321870254 + .long 1072739231 + .long 1415315820 + .long 1016224052 + .long 3657429030 + .long 1072755365 + .long 3910539033 + .long 1015966402 + .long 4197624557 + .long 1072770661 + .long 2333399254 + .long 3164546480 + .long 1512059493 + .long 1072785177 + .long 2701510318 + .long 1016178092 + .long 453379037 + .long 1072798965 + .long 4046344253 + .long 3162814364 + .long 1942345162 + .long 1072818388 + .long 621134147 + .long 1016335195 + .long 4210176273 + .long 1072842164 + .long 2701013387 + .long 3164326619 + .long 4185644010 + .long 1072863795 + .long 4163699341 + .long 1016203112 + .long 679688788 + .long 1072883543 + .long 4147276762 + .long 1014066750 + .long 29432865 + .long 1072901630 + .long 970415797 + .long 1016902063 + .long 4070721092 + .long 1072918247 + .long 2539004411 + .long 3163736096 + .long 2252468843 + .long 1072933561 + .long 3424082887 + .long 3163407177 + .long 2929724825 + .long 1072947712 + .long 3661482235 + .long 3163846989 + .long 1377513368 + .long 1072960824 + .long 3987926680 + .long 1013647908 + .long 1031632908 + .long 1072973003 + .long 3672217151 + .long 1016614619 + .long 2516508130 + .long 1072984342 + .long 545855020 + .long 3162728930 + .long 3792452178 + .long 1072994923 + .long 3420119467 + .long 1016471430 + .long 3147791459 + .long 1073004818 + .long 1342204979 + .long 1013937254 + .long 999189752 + .long 1073014090 + .long 1006335472 + .long 3162850919 + .long 711011011 + .long 1073022794 + .long 4633488 + .long 3162966895 + .long 15640363 + .long 1073030980 + .long 1686389560 + .long 3164376226 + .long 1218463589 + .long 1073042382 + .long 1526837110 + .long 3163533985 + .long 2538470555 + .long 1073056144 + .long 2273304406 + .long 3163784996 + .long 1229720947 + .long 1073068489 + .long 2971628206 + .long 3162356540 + .long 3115427016 + .long 1073079621 + .long 4215132957 + .long 3164282762 + .long 4030612557 + .long 1073089709 + .long 1913251691 + .long 3163671292 + .long 2728521257 + .long 1073098892 + .long 2861089500 + .long 1015454459 + .long 1118696283 + .long 1073107285 + .long 1628948053 + .long 1016179658 + .long 2682711255 + .long 1073114984 + .long 2906306266 + .long 1014142643 + .long 2073898081 + .long 1073122072 + .long 1322740454 + .long 3164497217 + .long 1403700297 + .long 1073128618 + .long 416137895 + .long 3162781466 + .long 2502685617 + .long 1073134681 + .long 3242008732 + .long 1014593495 + .long 1531926851 + .long 1073140313 + .long 1362708094 + .long 1016517604 + .long 3572814411 + .long 1073145557 + .long 3709790527 + .long 1012646874 + .long 1695536111 + .long 1073150453 + .long 3980346340 + .long 1016705136 + .long 2363057203 + .long 1073155033 + .long 2551194792 + .long 1012569695 + .long 2873365682 + .long 1073159327 + .long 3181154748 + .long 1017041450 + .long 1053384691 + .long 1073165288 + .long 3074536879 + .long 1016965660 + .long 3270542712 + .long 1073172451 + .long 2535319415 + .long 3163051778 + .long 1353631484 + .long 1073178850 + .long 1173833755 + .long 1015534537 + .long 3511218460 + .long 1073184599 + .long 1243608109 + .long 3161592122 + .long 4121259284 + .long 1073189793 + .long 398584912 + .long 3163829923 + .long 1193862106 + .long 1073194509 + .long 1873745539 + .long 3163802819 + .long 3861949790 + .long 1073198808 + .long 3841261147 + .long 1015587248 + .long 1486904578 + .long 1073202745 + .long 1634726776 + .long 3163847886 + .long 2879153715 + .long 1073206362 + .long 200456242 + .long 3164138657 + .long 385353253 + .long 1073209698 + .long 1186355517 + .long 1014887155 + .long 1125865839 + .long 1073212783 + .long 203561262 + .long 3161244927 + .long 1221361475 + .long 1073215645 + .long 3382476563 + .long 1014936138 + .long 2077323573 + .long 1073218307 + .long 1005121005 + .long 3164430752 + .long 215611373 + .long 1073220790 + .long 353198764 + .long 3164485137 + .long 2347419265 + .long 1073223110 + .long 1103143360 + .long 1016542137 + .long 1379112765 + .long 1073225284 + .long 381583533 + .long 3162870833 + .long 3891198463 + .long 1073228298 + .long 1771275754 + .long 1014654681 + .long 3395914051 + .long 1073231917 + .long 2350900914 + .long 3164013978 + .long 2799919478 + .long 1073235146 + .long 2893950164 + .long 3163260901 + .long 1138673476 + .long 1073238045 + .long 2622204785 + .long 3164174388 + .long 3408855940 + .long 1073240661 + .long 2800881650 + .long 1016008624 + .long 2044858738 + .long 1073243035 + .long 604544785 + .long 1017022901 + .long 2578795176 + .long 1073245198 + .long 2557332925 + .long 1016135165 + .long 4196285314 + .long 1073247177 + .long 2032365307 + .long 1016194735 + .long 224877747 + .long 1073248996 + .long 497926916 + .long 1016947111 + .long 3271386490 + .long 1073250671 + .long 2689994846 + .long 1016631513 + .long 813635989 + .long 1073252221 + .long 747035277 + .long 3164530136 + .long 369829519 + .long 1073253658 + .long 2182033858 + .long 3163190340 + .long 1187679052 + .long 1073254994 + .long 673954443 + .long 1016149821 + .long 4232586098 + .long 1073256239 + .long 497775200 + .long 3162179015 + .long 426690558 + .long 1073257404 + .long 3063343247 + .long 1016865578 + .long 1624065902 + .long 1073258494 + .long 1354224996 + .long 3163503778 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .long 4294967295 + .long 2147483647 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 4294901760 + .long 0 + .long 0 + .long 0 + .long 32768 + .long 0 + .long 0 + .long 2006262985 + .long 1069310863 + .long 2358449471 + .long 3217342131 + .long 3845454352 + .long 1069952297 + .long 2829679149 + .long 1073771565 + .type static_const_table,@object + .size static_const_table,2704 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/s_cbrt.S b/libm/x86/s_cbrt.S new file mode 100644 index 000000000..0c98c9949 --- /dev/null +++ b/libm/x86/s_cbrt.S @@ -0,0 +1,738 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Assume x=2^{3*k+j} * 1.b1 b2 ... b5 b6 ... b52, where j = 0,1,2. +// Let r=(x*2^{-3k-j} - 1.b1 b2 ... b5 1)* rcp[b1 b2 ..b5], +// where rcp[b1 b2 .. b5]=1/(1.b1 b2 b3 b4 b5 1) in double precision +// cbrt(2^j * 1. b1 b2 .. b5 1) is approximated as T[j][b1..b5]+D[j][b1..b5] +// (T stores the high 53 bits, D stores the low order bits) +// Result=2^k*T+(2^k*T*r)*P+2^k*D +// where P=p1+p2*r+..+p8*r^7 +// +// Special cases: +// cbrt(NaN) = quiet NaN, and raise invalid exception +// cbrt(INF) = that INF +// cbrt(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin cbrt +ENTRY(cbrt) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $120, %esp + movl %esi, 52(%esp) + call static_func + movl %eax, %esi + movsd 128(%esp), %xmm0 + movapd %xmm0, %xmm7 + movsd %xmm0, 8(%esp) + movl $524032, %edx + movsd 64(%esi), %xmm5 + movsd 80(%esi), %xmm3 + psrlq $44, %xmm7 + pextrw $0, %xmm7, %ecx + movd %xmm7, %eax + movsd 96(%esi), %xmm1 + movsd 112(%esi), %xmm2 + movl %ebx, 16(%esp) + andl $248, %ecx + movsd 128(%ecx,%esi), %xmm4 + movl %eax, %ebx + andl %eax, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_0.0.2 + cmpl $524032, %edx + je .L_2TAG_PACKET_1.0.2 + shrl $8, %edx + shrl $8, %ebx + andpd %xmm0, %xmm2 + andpd %xmm5, %xmm0 + orpd %xmm2, %xmm3 + orpd %xmm0, %xmm1 + movapd (%esi), %xmm5 + movl $5462, %eax + movapd 16(%esi), %xmm6 + mull %edx + movl %ebx, %edx + andl $2047, %ebx + shrl $14, %eax + andl $2048, %edx + subl %eax, %ebx + subl %eax, %ebx + subl %eax, %ebx + shll $8, %ebx + addl $682, %eax + orl %edx, %eax + movd %eax, %xmm7 + addl %ebx, %ecx + psllq $52, %xmm7 +.L_2TAG_PACKET_2.0.2: + movapd 32(%esi), %xmm2 + movapd 48(%esi), %xmm0 + subsd %xmm3, %xmm1 + movq %xmm7, %xmm3 + mulsd 384(%ecx,%esi), %xmm7 + mulsd %xmm4, %xmm1 + mulsd 1152(%ecx,%esi), %xmm3 + movapd %xmm1, %xmm4 + unpcklpd %xmm1, %xmm1 + mulpd %xmm1, %xmm5 + mulpd %xmm1, %xmm6 + mulpd %xmm1, %xmm1 + addpd %xmm5, %xmm2 + addpd %xmm6, %xmm0 + mulpd %xmm1, %xmm2 + mulpd %xmm1, %xmm1 + mulsd %xmm7, %xmm4 + addpd %xmm2, %xmm0 + movl 16(%esp), %ebx + mulsd %xmm0, %xmm1 + unpckhpd %xmm0, %xmm0 + addsd %xmm1, %xmm0 + mulsd %xmm4, %xmm0 + addsd %xmm3, %xmm0 + addsd %xmm7, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_0.0.2: + mulsd 1984(%esi), %xmm0 + movq %xmm0, %xmm7 + movl $524032, %edx + psrlq $44, %xmm7 + pextrw $0, %xmm7, %ecx + movd %xmm7, %eax + andl $248, %ecx + movsd 128(%ecx,%esi), %xmm4 + movl %eax, %ebx + andl %eax, %edx + shrl $8, %edx + shrl $8, %ebx + cmpl $0, %edx + je .L_2TAG_PACKET_4.0.2 + andpd %xmm0, %xmm2 + andpd %xmm5, %xmm0 + orpd %xmm2, %xmm3 + orpd %xmm0, %xmm1 + movapd (%esi), %xmm5 + movl $5462, %eax + movapd 16(%esi), %xmm6 + mull %edx + movl %ebx, %edx + andl $2047, %ebx + shrl $14, %eax + andl $2048, %edx + subl %eax, %ebx + subl %eax, %ebx + subl %eax, %ebx + shll $8, %ebx + addl $661, %eax + orl %edx, %eax + movd %eax, %xmm7 + addl %ebx, %ecx + psllq $52, %xmm7 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_4.0.2: + cmpl $0, %ebx + jne .L_2TAG_PACKET_5.0.2 + movl 16(%esp), %ebx + fldl 1952(%esi) + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_5.0.2: + movl 16(%esp), %ebx + fldl 1968(%esi) + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_1.0.2: + movl 16(%esp), %ebx + movl 132(%esp), %eax + movl 128(%esp), %edx + movl %eax, %ecx + andl $2147483647, %ecx + cmpl $2146435072, %ecx + ja .L_2TAG_PACKET_6.0.2 + cmpl $0, %edx + jne .L_2TAG_PACKET_6.0.2 + cmpl $2146435072, %eax + jne .L_2TAG_PACKET_7.0.2 + fldl 1920(%esi) + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_7.0.2: + fldl 1936(%esi) + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_6.0.2: + movsd 8(%esp), %xmm0 + addsd %xmm0, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) +.L_2TAG_PACKET_3.0.2: + movl 52(%esp), %esi + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(cbrt) +# -- End cbrt + +# Start file scope ASM +ALIAS_SYMBOL(cbrtl, cbrt); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 1553778919 + .long 3213899486 + .long 3534952507 + .long 3215266280 + .long 1646371399 + .long 3214412045 + .long 477218588 + .long 3216798151 + .long 3582521621 + .long 1066628362 + .long 1007461464 + .long 1068473053 + .long 889629714 + .long 1067378449 + .long 1431655765 + .long 1070945621 + .long 4294967295 + .long 1048575 + .long 0 + .long 0 + .long 0 + .long 3220193280 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 1032192 + .long 0 + .long 0 + .long 528611360 + .long 3220144632 + .long 2884679527 + .long 3220082993 + .long 1991868891 + .long 3220024928 + .long 2298714891 + .long 3219970134 + .long 58835168 + .long 3219918343 + .long 3035110223 + .long 3219869313 + .long 1617585086 + .long 3219822831 + .long 2500867033 + .long 3219778702 + .long 4241943008 + .long 3219736752 + .long 258732970 + .long 3219696825 + .long 404232216 + .long 3219658776 + .long 2172167368 + .long 3219622476 + .long 1544257904 + .long 3219587808 + .long 377579543 + .long 3219554664 + .long 1616385542 + .long 3219522945 + .long 813783277 + .long 3219492562 + .long 3940743189 + .long 3219463431 + .long 2689777499 + .long 3219435478 + .long 1700977147 + .long 3219408632 + .long 3169102082 + .long 3219382828 + .long 327235604 + .long 3219358008 + .long 1244336319 + .long 3219334115 + .long 1300311200 + .long 3219311099 + .long 3095471925 + .long 3219288912 + .long 2166487928 + .long 3219267511 + .long 2913108253 + .long 3219246854 + .long 293672978 + .long 3219226904 + .long 288737297 + .long 3219207624 + .long 1810275472 + .long 3219188981 + .long 174592167 + .long 3219170945 + .long 3539053052 + .long 3219153485 + .long 2164392968 + .long 3219136576 + .long 572345495 + .long 1072698681 + .long 1998204467 + .long 1072709382 + .long 3861501553 + .long 1072719872 + .long 2268192434 + .long 1072730162 + .long 2981979308 + .long 1072740260 + .long 270859143 + .long 1072750176 + .long 2958651392 + .long 1072759916 + .long 313113243 + .long 1072769490 + .long 919449400 + .long 1072778903 + .long 2809328903 + .long 1072788162 + .long 2222981587 + .long 1072797274 + .long 2352530781 + .long 1072806244 + .long 594152517 + .long 1072815078 + .long 1555767199 + .long 1072823780 + .long 4282421314 + .long 1072832355 + .long 2355578597 + .long 1072840809 + .long 1162590619 + .long 1072849145 + .long 797864051 + .long 1072857367 + .long 431273680 + .long 1072865479 + .long 2669831148 + .long 1072873484 + .long 733477752 + .long 1072881387 + .long 4280220604 + .long 1072889189 + .long 801961634 + .long 1072896896 + .long 2915370760 + .long 1072904508 + .long 1159613482 + .long 1072912030 + .long 2689944798 + .long 1072919463 + .long 1248687822 + .long 1072926811 + .long 2967951030 + .long 1072934075 + .long 630170432 + .long 1072941259 + .long 3760898254 + .long 1072948363 + .long 0 + .long 1072955392 + .long 2370273294 + .long 1072962345 + .long 1261754802 + .long 1072972640 + .long 546334065 + .long 1072986123 + .long 1054893830 + .long 1072999340 + .long 1571187597 + .long 1073012304 + .long 1107975175 + .long 1073025027 + .long 3606909377 + .long 1073037519 + .long 1113616747 + .long 1073049792 + .long 4154744632 + .long 1073061853 + .long 3358931423 + .long 1073073713 + .long 4060702372 + .long 1073085379 + .long 747576176 + .long 1073096860 + .long 3023138255 + .long 1073108161 + .long 1419988548 + .long 1073119291 + .long 1914185305 + .long 1073130255 + .long 294389948 + .long 1073141060 + .long 3761802570 + .long 1073151710 + .long 978281566 + .long 1073162213 + .long 823148820 + .long 1073172572 + .long 2420954441 + .long 1073182792 + .long 3815449908 + .long 1073192878 + .long 2046058587 + .long 1073202835 + .long 1807524753 + .long 1073212666 + .long 2628681401 + .long 1073222375 + .long 3225667357 + .long 1073231966 + .long 1555307421 + .long 1073241443 + .long 3454043099 + .long 1073250808 + .long 1208137896 + .long 1073260066 + .long 3659916772 + .long 1073269218 + .long 1886261264 + .long 1073278269 + .long 3593647839 + .long 1073287220 + .long 3086012205 + .long 1073296075 + .long 2769796922 + .long 1073304836 + .long 888716057 + .long 1073317807 + .long 2201465623 + .long 1073334794 + .long 164369365 + .long 1073351447 + .long 3462666733 + .long 1073367780 + .long 2773905457 + .long 1073383810 + .long 1342879088 + .long 1073399550 + .long 2543933975 + .long 1073415012 + .long 1684477781 + .long 1073430209 + .long 3532178543 + .long 1073445151 + .long 1147747300 + .long 1073459850 + .long 1928031793 + .long 1073474314 + .long 2079717015 + .long 1073488553 + .long 4016765315 + .long 1073502575 + .long 3670431139 + .long 1073516389 + .long 3549227225 + .long 1073530002 + .long 11637607 + .long 1073543422 + .long 588220169 + .long 1073556654 + .long 2635407503 + .long 1073569705 + .long 2042029317 + .long 1073582582 + .long 1925128962 + .long 1073595290 + .long 4136375664 + .long 1073607834 + .long 759964600 + .long 1073620221 + .long 4257606771 + .long 1073632453 + .long 297278907 + .long 1073644538 + .long 3655053093 + .long 1073656477 + .long 2442253172 + .long 1073668277 + .long 1111876799 + .long 1073679941 + .long 3330973139 + .long 1073691472 + .long 3438879452 + .long 1073702875 + .long 3671565478 + .long 1073714153 + .long 1317849547 + .long 1073725310 + .long 1642364115 + .long 1073736348 + .long 4050900474 + .long 1014427190 + .long 1157977860 + .long 1016444461 + .long 1374568199 + .long 1017271387 + .long 2809163288 + .long 1016882676 + .long 3742377377 + .long 1013168191 + .long 3101606597 + .long 1017541672 + .long 65224358 + .long 1017217597 + .long 2691591250 + .long 1017266643 + .long 4020758549 + .long 1017689313 + .long 1316310992 + .long 1018030788 + .long 1031537856 + .long 1014090882 + .long 3261395239 + .long 1016413641 + .long 886424999 + .long 1016313335 + .long 3114776834 + .long 1014195875 + .long 1681120620 + .long 1017825416 + .long 1329600273 + .long 1016625740 + .long 465474623 + .long 1017097119 + .long 4251633980 + .long 1017169077 + .long 1986990133 + .long 1017710645 + .long 752958613 + .long 1017159641 + .long 2216216792 + .long 1018020163 + .long 4282860129 + .long 1015924861 + .long 1557627859 + .long 1016039538 + .long 3889219754 + .long 1018086237 + .long 3684996408 + .long 1017353275 + .long 723532103 + .long 1017717141 + .long 2951149676 + .long 1012528470 + .long 831890937 + .long 1017830553 + .long 1031212645 + .long 1017387331 + .long 2741737450 + .long 1017604974 + .long 2863311531 + .long 1003776682 + .long 4276736099 + .long 1013153088 + .long 4111778382 + .long 1015673686 + .long 1728065769 + .long 1016413986 + .long 2708718031 + .long 1018078833 + .long 1069335005 + .long 1015291224 + .long 700037144 + .long 1016482032 + .long 2904566452 + .long 1017226861 + .long 4074156649 + .long 1017622651 + .long 25019565 + .long 1015245366 + .long 3601952608 + .long 1015771755 + .long 3267129373 + .long 1017904664 + .long 503203103 + .long 1014921629 + .long 2122011730 + .long 1018027866 + .long 3927295461 + .long 1014189456 + .long 2790625147 + .long 1016024251 + .long 1330460186 + .long 1016940346 + .long 4033568463 + .long 1015538390 + .long 3695818227 + .long 1017509621 + .long 257573361 + .long 1017208868 + .long 3227697852 + .long 1017337964 + .long 234118548 + .long 1017169577 + .long 4009025803 + .long 1017278524 + .long 1948343394 + .long 1017749310 + .long 678398162 + .long 1018144239 + .long 3083864863 + .long 1016669086 + .long 2415453452 + .long 1017890370 + .long 175467344 + .long 1017330033 + .long 3197359580 + .long 1010339928 + .long 2071276951 + .long 1015941358 + .long 268372543 + .long 1016737773 + .long 938132959 + .long 1017389108 + .long 1816750559 + .long 1017337448 + .long 4119203749 + .long 1017152174 + .long 2578653878 + .long 1013108497 + .long 2470331096 + .long 1014678606 + .long 123855735 + .long 1016553320 + .long 1265650889 + .long 1014782687 + .long 3414398172 + .long 1017182638 + .long 1040773369 + .long 1016158401 + .long 3483628886 + .long 1016886550 + .long 4140499405 + .long 1016191425 + .long 3893477850 + .long 1016964495 + .long 3935319771 + .long 1009634717 + .long 2978982660 + .long 1015027112 + .long 2452709923 + .long 1017990229 + .long 3190365712 + .long 1015835149 + .long 4237588139 + .long 1015832925 + .long 2610678389 + .long 1017962711 + .long 2127316774 + .long 1017405770 + .long 824267502 + .long 1017959463 + .long 2165924042 + .long 1017912225 + .long 2774007076 + .long 1013257418 + .long 4123916326 + .long 1017582284 + .long 1976417958 + .long 1016959909 + .long 4092806412 + .long 1017711279 + .long 119251817 + .long 1015363631 + .long 3475418768 + .long 1017675415 + .long 1972580503 + .long 1015470684 + .long 815541017 + .long 1017517969 + .long 2429917451 + .long 1017397776 + .long 4062888482 + .long 1016749897 + .long 68284153 + .long 1017925678 + .long 2207779246 + .long 1016320298 + .long 1183466520 + .long 1017408657 + .long 143326427 + .long 1017060403 + .long 0 + .long 2146435072 + .long 0 + .long 0 + .long 0 + .long 4293918720 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 0 + .long 0 + .long 1138753536 + .long 0 + .long 0 + .type static_const_table,@object + .size static_const_table,2000 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/s_cos.S b/libm/x86/s_cos.S new file mode 100644 index 000000000..fd5ef5db6 --- /dev/null +++ b/libm/x86/s_cos.S @@ -0,0 +1,892 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// 1. RANGE REDUCTION +// +// We perform an initial range reduction from X to r with +// +// X =~= N * pi/32 + r +// +// so that |r| <= pi/64 + epsilon. We restrict inputs to those +// where |N| <= 932560. Beyond this, the range reduction is +// insufficiently accurate. For extremely small inputs, +// denormalization can occur internally, impacting performance. +// This means that the main path is actually only taken for +// 2^-252 <= |X| < 90112. +// +// To avoid branches, we perform the range reduction to full +// accuracy each time. +// +// X - N * (P_1 + P_2 + P_3) +// +// where P_1 and P_2 are 32-bit numbers (so multiplication by N +// is exact) and P_3 is a 53-bit number. Together, these +// approximate pi well enough for all cases in the restricted +// range. +// +// The main reduction sequence is: +// +// y = 32/pi * x +// N = integer(y) +// (computed by adding and subtracting off SHIFTER) +// +// m_1 = N * P_1 +// m_2 = N * P_2 +// r_1 = x - m_1 +// r = r_1 - m_2 +// (this r can be used for most of the calculation) +// +// c_1 = r_1 - r +// m_3 = N * P_3 +// c_2 = c_1 - m_2 +// c = c_2 - m_3 +// +// 2. MAIN ALGORITHM +// +// The algorithm uses a table lookup based on B = M * pi / 32 +// where M = N mod 64. The stored values are: +// sigma closest power of 2 to cos(B) +// C_hl 53-bit cos(B) - sigma +// S_hi + S_lo 2 * 53-bit sin(B) +// +// The computation is organized as follows: +// +// sin(B + r + c) = [sin(B) + sigma * r] + +// r * (cos(B) - sigma) + +// sin(B) * [cos(r + c) - 1] + +// cos(B) * [sin(r + c) - r] +// +// which is approximately: +// +// [S_hi + sigma * r] + +// C_hl * r + +// S_lo + S_hi * [(cos(r) - 1) - r * c] + +// (C_hl + sigma) * [(sin(r) - r) + c] +// +// and this is what is actually computed. We separate this sum +// into four parts: +// +// hi + med + pols + corr +// +// where +// +// hi = S_hi + sigma r +// med = C_hl * r +// pols = S_hi * (cos(r) - 1) + (C_hl + sigma) * (sin(r) - r) +// corr = S_lo + c * ((C_hl + sigma) - S_hi * r) +// +// 3. POLYNOMIAL +// +// The polynomial S_hi * (cos(r) - 1) + (C_hl + sigma) * +// (sin(r) - r) can be rearranged freely, since it is quite +// small, so we exploit parallelism to the fullest. +// +// psc4 = SC_4 * r_1 +// msc4 = psc4 * r +// r2 = r * r +// msc2 = SC_2 * r2 +// r4 = r2 * r2 +// psc3 = SC_3 + msc4 +// psc1 = SC_1 + msc2 +// msc3 = r4 * psc3 +// sincospols = psc1 + msc3 +// pols = sincospols * +// +// +// 4. CORRECTION TERM +// +// This is where the "c" component of the range reduction is +// taken into account; recall that just "r" is used for most of +// the calculation. +// +// -c = m_3 - c_2 +// -d = S_hi * r - (C_hl + sigma) +// corr = -c * -d + S_lo +// +// 5. COMPENSATED SUMMATIONS +// +// The two successive compensated summations add up the high +// and medium parts, leaving just the low parts to add up at +// the end. +// +// rs = sigma * r +// res_int = S_hi + rs +// k_0 = S_hi - res_int +// k_2 = k_0 + rs +// med = C_hl * r +// res_hi = res_int + med +// k_1 = res_int - res_hi +// k_3 = k_1 + med +// +// 6. FINAL SUMMATION +// +// We now add up all the small parts: +// +// res_lo = pols(hi) + pols(lo) + corr + k_1 + k_3 +// +// Now the overall result is just: +// +// res_hi + res_lo +// +// 7. SMALL ARGUMENTS +// +// Inputs with |X| < 2^-252 are treated specially as +// 1 - |x|. +// +// Special cases: +// cos(NaN) = quiet NaN, and raise invalid exception +// cos(INF) = NaN and raise invalid exception +// cos(0) = 1 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin cos +ENTRY(cos) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $120, %esp + movl %ebx, 56(%esp) + call static_func + movl %eax, %ebx + movsd 128(%esp), %xmm0 + pextrw $3, %xmm0, %eax + andl $32767, %eax + subl $12336, %eax + cmpl $4293, %eax + ja .L_2TAG_PACKET_0.0.2 + movsd 2160(%ebx), %xmm1 + mulsd %xmm0, %xmm1 + movapd 2240(%ebx), %xmm5 + movsd 2224(%ebx), %xmm4 + andpd %xmm0, %xmm4 + orps %xmm4, %xmm5 + movsd 2128(%ebx), %xmm3 + movapd 2112(%ebx), %xmm2 + addpd %xmm5, %xmm1 + cvttsd2si %xmm1, %edx + cvtsi2sdl %edx, %xmm1 + mulsd %xmm1, %xmm3 + unpcklpd %xmm1, %xmm1 + addl $1865232, %edx + movapd %xmm0, %xmm4 + andl $63, %edx + movapd 2096(%ebx), %xmm5 + lea (%ebx), %eax + shll $5, %edx + addl %edx, %eax + mulpd %xmm1, %xmm2 + subsd %xmm3, %xmm0 + mulsd 2144(%ebx), %xmm1 + subsd %xmm3, %xmm4 + movsd 8(%eax), %xmm7 + unpcklpd %xmm0, %xmm0 + movapd %xmm4, %xmm3 + subsd %xmm2, %xmm4 + mulpd %xmm0, %xmm5 + subpd %xmm2, %xmm0 + movapd 2064(%ebx), %xmm6 + mulsd %xmm4, %xmm7 + subsd %xmm4, %xmm3 + mulpd %xmm0, %xmm5 + mulpd %xmm0, %xmm0 + subsd %xmm2, %xmm3 + movapd (%eax), %xmm2 + subsd %xmm3, %xmm1 + movsd 24(%eax), %xmm3 + addsd %xmm3, %xmm2 + subsd %xmm2, %xmm7 + mulsd %xmm4, %xmm2 + mulpd %xmm0, %xmm6 + mulsd %xmm4, %xmm3 + mulpd %xmm0, %xmm2 + mulpd %xmm0, %xmm0 + addpd 2080(%ebx), %xmm5 + mulsd (%eax), %xmm4 + addpd 2048(%ebx), %xmm6 + mulpd %xmm0, %xmm5 + movapd %xmm3, %xmm0 + addsd 8(%eax), %xmm3 + mulpd %xmm7, %xmm1 + movapd %xmm4, %xmm7 + addsd %xmm3, %xmm4 + addpd %xmm5, %xmm6 + movsd 8(%eax), %xmm5 + subsd %xmm3, %xmm5 + subsd %xmm4, %xmm3 + addsd 16(%eax), %xmm1 + mulpd %xmm2, %xmm6 + addsd %xmm0, %xmm5 + addsd %xmm7, %xmm3 + addsd %xmm5, %xmm1 + addsd %xmm3, %xmm1 + addsd %xmm6, %xmm1 + unpckhpd %xmm6, %xmm6 + addsd %xmm6, %xmm1 + addsd %xmm1, %xmm4 + movsd %xmm4, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_0.0.2: + jg .L_2TAG_PACKET_2.0.2 + pextrw $3, %xmm0, %eax + andl $32767, %eax + pinsrw $3, %eax, %xmm0 + movsd 2192(%ebx), %xmm1 + subsd %xmm0, %xmm1 + movsd %xmm1, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + movl 132(%esp), %eax + andl $2146435072, %eax + cmpl $2146435072, %eax + je .L_2TAG_PACKET_3.0.2 + subl $32, %esp + movsd %xmm0, (%esp) + lea 40(%esp), %eax + movl %eax, 8(%esp) + movl $1, %eax + movl %eax, 12(%esp) + call __libm_sincos_huge + addl $32, %esp + fldl 8(%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_3.0.2: + fldl 128(%esp) + fmull 2208(%ebx) +.L_2TAG_PACKET_1.0.2: + movl 56(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(cos) +# -- End cos + +# Start file scope ASM +ALIAS_SYMBOL(cosl, cos); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 393047345 + .long 3212032302 + .long 3156849708 + .long 1069094822 + .long 3758096384 + .long 3158189848 + .long 0 + .long 1072693248 + .long 18115067 + .long 3214126342 + .long 1013556747 + .long 1070135480 + .long 3221225472 + .long 3160567065 + .long 0 + .long 1072693248 + .long 2476548698 + .long 3215330282 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 0 + .long 1072693248 + .long 2255197647 + .long 3216211105 + .long 2796464483 + .long 1071152610 + .long 3758096384 + .long 3160878317 + .long 0 + .long 1072693248 + .long 1945768569 + .long 3216915048 + .long 939980347 + .long 1071524701 + .long 536870912 + .long 1012796809 + .long 0 + .long 1072693248 + .long 1539668340 + .long 3217396327 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 0 + .long 1072693248 + .long 1403757309 + .long 3217886718 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 0 + .long 1072693248 + .long 2583490354 + .long 1070236281 + .long 1719614413 + .long 1072079006 + .long 536870912 + .long 3163282740 + .long 0 + .long 1071644672 + .long 2485417816 + .long 1069626316 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 0 + .long 1071644672 + .long 2598800519 + .long 1068266419 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 0 + .long 1071644672 + .long 2140183630 + .long 3214756396 + .long 4051746225 + .long 1072445618 + .long 2147483648 + .long 3161907377 + .long 0 + .long 1071644672 + .long 1699043957 + .long 3216902261 + .long 3476196678 + .long 1072533611 + .long 536870912 + .long 1014257638 + .long 0 + .long 1071644672 + .long 1991047213 + .long 1067753521 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 0 + .long 1070596096 + .long 240740309 + .long 3215727903 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 0 + .long 1070596096 + .long 257503056 + .long 3214647653 + .long 2748392742 + .long 1072683149 + .long 1073741824 + .long 3163061750 + .long 0 + .long 1069547520 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 257503056 + .long 1067164005 + .long 2748392742 + .long 1072683149 + .long 1073741824 + .long 3163061750 + .long 0 + .long 3217031168 + .long 240740309 + .long 1068244255 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 0 + .long 3218079744 + .long 1991047213 + .long 3215237169 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 0 + .long 3218079744 + .long 1699043957 + .long 1069418613 + .long 3476196678 + .long 1072533611 + .long 536870912 + .long 1014257638 + .long 0 + .long 3219128320 + .long 2140183630 + .long 1067272748 + .long 4051746225 + .long 1072445618 + .long 2147483648 + .long 3161907377 + .long 0 + .long 3219128320 + .long 2598800519 + .long 3215750067 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 0 + .long 3219128320 + .long 2485417816 + .long 3217109964 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 0 + .long 3219128320 + .long 2583490354 + .long 3217719929 + .long 1719614413 + .long 1072079006 + .long 536870912 + .long 3163282740 + .long 0 + .long 3219128320 + .long 1403757309 + .long 1070403070 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 0 + .long 3220176896 + .long 1539668340 + .long 1069912679 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 0 + .long 3220176896 + .long 1945768569 + .long 1069431400 + .long 939980347 + .long 1071524701 + .long 536870912 + .long 1012796809 + .long 0 + .long 3220176896 + .long 2255197647 + .long 1068727457 + .long 2796464483 + .long 1071152610 + .long 3758096384 + .long 3160878317 + .long 0 + .long 3220176896 + .long 2476548698 + .long 1067846634 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 0 + .long 3220176896 + .long 18115067 + .long 1066642694 + .long 1013556747 + .long 1070135480 + .long 3221225472 + .long 3160567065 + .long 0 + .long 3220176896 + .long 393047345 + .long 1064548654 + .long 3156849708 + .long 1069094822 + .long 3758096384 + .long 3158189848 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 393047345 + .long 1064548654 + .long 3156849708 + .long 3216578470 + .long 3758096384 + .long 1010706200 + .long 0 + .long 3220176896 + .long 18115067 + .long 1066642694 + .long 1013556747 + .long 3217619128 + .long 3221225472 + .long 1013083417 + .long 0 + .long 3220176896 + .long 2476548698 + .long 1067846634 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 0 + .long 3220176896 + .long 2255197647 + .long 1068727457 + .long 2796464483 + .long 3218636258 + .long 3758096384 + .long 1013394669 + .long 0 + .long 3220176896 + .long 1945768569 + .long 1069431400 + .long 939980347 + .long 3219008349 + .long 536870912 + .long 3160280457 + .long 0 + .long 3220176896 + .long 1539668340 + .long 1069912679 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 0 + .long 3220176896 + .long 1403757309 + .long 1070403070 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 0 + .long 3220176896 + .long 2583490354 + .long 3217719929 + .long 1719614413 + .long 3219562654 + .long 536870912 + .long 1015799092 + .long 0 + .long 3219128320 + .long 2485417816 + .long 3217109964 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 0 + .long 3219128320 + .long 2598800519 + .long 3215750067 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 0 + .long 3219128320 + .long 2140183630 + .long 1067272748 + .long 4051746225 + .long 3219929266 + .long 2147483648 + .long 1014423729 + .long 0 + .long 3219128320 + .long 1699043957 + .long 1069418613 + .long 3476196678 + .long 3220017259 + .long 536870912 + .long 3161741286 + .long 0 + .long 3219128320 + .long 1991047213 + .long 3215237169 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 0 + .long 3218079744 + .long 240740309 + .long 1068244255 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 0 + .long 3218079744 + .long 257503056 + .long 1067164005 + .long 2748392742 + .long 3220166797 + .long 1073741824 + .long 1015578102 + .long 0 + .long 3217031168 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 257503056 + .long 3214647653 + .long 2748392742 + .long 3220166797 + .long 1073741824 + .long 1015578102 + .long 0 + .long 1069547520 + .long 240740309 + .long 3215727903 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 0 + .long 1070596096 + .long 1991047213 + .long 1067753521 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 0 + .long 1070596096 + .long 1699043957 + .long 3216902261 + .long 3476196678 + .long 3220017259 + .long 536870912 + .long 3161741286 + .long 0 + .long 1071644672 + .long 2140183630 + .long 3214756396 + .long 4051746225 + .long 3219929266 + .long 2147483648 + .long 1014423729 + .long 0 + .long 1071644672 + .long 2598800519 + .long 1068266419 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 0 + .long 1071644672 + .long 2485417816 + .long 1069626316 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 0 + .long 1071644672 + .long 2583490354 + .long 1070236281 + .long 1719614413 + .long 3219562654 + .long 536870912 + .long 1015799092 + .long 0 + .long 1071644672 + .long 1403757309 + .long 3217886718 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 0 + .long 1072693248 + .long 1539668340 + .long 3217396327 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 0 + .long 1072693248 + .long 1945768569 + .long 3216915048 + .long 939980347 + .long 3219008349 + .long 536870912 + .long 3160280457 + .long 0 + .long 1072693248 + .long 2255197647 + .long 3216211105 + .long 2796464483 + .long 3218636258 + .long 3758096384 + .long 1013394669 + .long 0 + .long 1072693248 + .long 2476548698 + .long 3215330282 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 0 + .long 1072693248 + .long 18115067 + .long 3214126342 + .long 1013556747 + .long 3217619128 + .long 3221225472 + .long 1013083417 + .long 0 + .long 1072693248 + .long 393047345 + .long 3212032302 + .long 3156849708 + .long 3216578470 + .long 3758096384 + .long 1010706200 + .long 0 + .long 1072693248 + .long 1431655765 + .long 3217380693 + .long 0 + .long 3219128320 + .long 286331153 + .long 1065423121 + .long 1431655765 + .long 1067799893 + .long 436314138 + .long 3207201184 + .long 381774871 + .long 3210133868 + .long 2773927732 + .long 1053236707 + .long 436314138 + .long 1056571808 + .long 442499072 + .long 1032893537 + .long 442499072 + .long 1032893537 + .long 1413480448 + .long 1069097467 + .long 0 + .long 0 + .long 771977331 + .long 996350346 + .long 0 + .long 0 + .long 1841940611 + .long 1076125488 + .long 0 + .long 0 + .long 0 + .long 1127743488 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 0 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .type static_const_table,@object + .size static_const_table,2256 + .data + .hidden __libm_sincos_huge + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/s_expm1.S b/libm/x86/s_expm1.S new file mode 100644 index 000000000..1f9e87b91 --- /dev/null +++ b/libm/x86/s_expm1.S @@ -0,0 +1,702 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Description: +// Let K = 64 (table size). +// +// Four sub-domains: +// 1. |x| < 1/(2*K) +// expm1(x) ~ P(x) +// 2. 1/(2*K) <= |x| <= 56*log(2) +// x x/log(2) n +// e - 1 = 2 = 2 * T[j] * (1 + P(y)) - 1 +// 3. 56*log(2) < x < MAX_LOG +// x x x/log(2) n +// e - 1 ~ e = 2 = 2 * T[j] * (1 + P(y)) +// 4. x < -56*log(2) +// x x +// e - 1 = -1 + e ~ -1 +// where +// x = m*log(2)/K + y, y in [-log(2)/K..log(2)/K] +// m = n*K + j, m,n,j - signed integer, j in [-K/2..K/2] +// j/K +// values of 2 are tabulated as T[j] = T_hi[j] ( 1 + T_lo[j]). +// +// P(y) is a minimax polynomial approximation of exp(x)-1 +// on small interval [-log(2)/K..log(2)/K] (were calculated by Maple V). +// +// In case 3, to avoid problems with arithmetic overflow and underflow, +// n n1 n2 +// value of 2 is safely computed as 2 * 2 where n1 in [-BIAS/2..BIAS/2] +// and BIAS is a value of exponent bias. +// +// Special cases: +// expm1(NaN) is NaN +// expm1(+INF) is +INF +// expm1(-INF) is -1 +// expm1(x) is x for subnormals +// for finite argument, only expm1(0)=0 is exact. +// For IEEE double +// if x > 709.782712893383973096 then expm1(x) overflow +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin expm1 +ENTRY(expm1) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $120, %esp + movl %ebx, 64(%esp) + call static_func + movl %eax, %ebx + movsd 128(%esp), %xmm0 + unpcklpd %xmm0, %xmm0 + movapd 64(%ebx), %xmm1 + movapd 48(%ebx), %xmm6 + movapd 80(%ebx), %xmm2 + movapd 96(%ebx), %xmm3 + pextrw $3, %xmm0, %eax + andl $32767, %eax + movl $16527, %edx + subl %eax, %edx + subl $16304, %eax + orl %eax, %edx + cmpl $-2147483648, %edx + jae .L_2TAG_PACKET_0.0.2 + mulpd %xmm0, %xmm1 + addpd %xmm6, %xmm1 + movapd %xmm1, %xmm7 + subpd %xmm6, %xmm1 + mulpd %xmm1, %xmm2 + movapd 112(%ebx), %xmm4 + mulpd %xmm1, %xmm3 + movapd 128(%ebx), %xmm5 + subpd %xmm2, %xmm0 + movd %xmm7, %eax + movl %eax, %ecx + andl $63, %ecx + shll $4, %ecx + sarl $6, %eax + movl %eax, %edx + subpd %xmm3, %xmm0 + movapd 160(%ebx,%ecx), %xmm2 + movsd 144(%ebx), %xmm3 + mulpd %xmm0, %xmm4 + movapd %xmm0, %xmm1 + mulpd %xmm0, %xmm0 + mulsd %xmm0, %xmm3 + addpd %xmm4, %xmm5 + mulsd %xmm0, %xmm0 + movapd %xmm2, %xmm4 + unpckhpd %xmm2, %xmm2 + movdqa 16(%ebx), %xmm6 + pand %xmm6, %xmm7 + movdqa 32(%ebx), %xmm6 + paddq %xmm6, %xmm7 + psllq $46, %xmm7 + mulsd %xmm0, %xmm3 + mulpd %xmm5, %xmm0 + addl $894, %edx + cmpl $1916, %edx + ja .L_2TAG_PACKET_1.0.2 + addsd %xmm3, %xmm0 + xorpd %xmm3, %xmm3 + movl $16368, %eax + pinsrw $3, %eax, %xmm3 + orpd %xmm7, %xmm2 + mulsd %xmm4, %xmm7 + movapd %xmm3, %xmm6 + addsd %xmm1, %xmm3 + pextrw $3, %xmm2, %edx + pshufd $238, %xmm0, %xmm5 + psrlq $38, %xmm3 + psllq $38, %xmm3 + movapd %xmm2, %xmm4 + subsd %xmm3, %xmm6 + addsd %xmm5, %xmm0 + addsd %xmm6, %xmm1 + addsd %xmm7, %xmm4 + mulsd %xmm3, %xmm7 + mulsd %xmm2, %xmm3 + xorpd %xmm5, %xmm5 + movl $16368, %eax + pinsrw $3, %eax, %xmm5 + addsd %xmm1, %xmm0 + movl $17184, %ecx + subl %edx, %ecx + subl $16256, %edx + orl %edx, %ecx + jl .L_2TAG_PACKET_2.0.2 + mulsd %xmm4, %xmm0 + subsd %xmm5, %xmm3 + addsd %xmm7, %xmm0 + addsd %xmm3, %xmm0 +.L_2TAG_PACKET_3.0.2: + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_2.0.2: + cmpl $0, %edx + jl .L_2TAG_PACKET_5.0.2 + mulsd %xmm4, %xmm0 + subsd %xmm5, %xmm7 + addsd %xmm7, %xmm0 + addsd %xmm3, %xmm0 + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_5.0.2: + mulsd %xmm4, %xmm0 + addsd %xmm7, %xmm0 + addsd %xmm3, %xmm0 + subsd %xmm5, %xmm0 + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_1.0.2: + movl 132(%esp), %ecx + addsd %xmm0, %xmm1 + unpckhpd %xmm0, %xmm0 + addsd %xmm1, %xmm0 + cmpl $0, %ecx + jl .L_2TAG_PACKET_6.0.2 + fstcw 24(%esp) + movzwl 24(%esp), %edx + orl $768, %edx + movw %dx, 28(%esp) + fldcw 28(%esp) + movl %eax, %edx + sarl $1, %eax + subl %eax, %edx + movdqa (%ebx), %xmm6 + pandn %xmm2, %xmm6 + addl $1023, %eax + movd %eax, %xmm3 + psllq $52, %xmm3 + orpd %xmm3, %xmm6 + mulsd %xmm3, %xmm4 + movsd %xmm0, 8(%esp) + fldl 8(%esp) + movsd %xmm6, 16(%esp) + fldl 16(%esp) + movsd %xmm4, 16(%esp) + fldl 16(%esp) + addl $1023, %edx + movd %edx, %xmm4 + psllq $52, %xmm4 + faddp %st, %st(1) + fmul %st, %st(1) + faddp %st, %st(1) + movsd %xmm4, 8(%esp) + fldl 8(%esp) + fmulp %st, %st(1) + fstpl 8(%esp) + movsd 8(%esp), %xmm0 + fldcw 24(%esp) + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + cmpl $32752, %ecx + jae .L_2TAG_PACKET_7.0.2 + jmp .L_2TAG_PACKET_4.0.2 + cmpl $-2147483648, %ecx + jb .L_2TAG_PACKET_7.0.2 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_7.0.2: + movl $41, %edx +.L_2TAG_PACKET_8.0.2: + movsd %xmm0, (%esp) + movsd 128(%esp), %xmm0 + fldl (%esp) + jmp .L_2TAG_PACKET_9.0.2 +.L_2TAG_PACKET_10.0.2: + cmpl $2146435072, %eax + jae .L_2TAG_PACKET_11.0.2 + movsd 1272(%ebx), %xmm0 + mulsd %xmm0, %xmm0 + movl $41, %edx + jmp .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_11.0.2: + movl 132(%esp), %eax + movl 128(%esp), %edx + movl %eax, %ecx + andl $2147483647, %eax + cmpl $2146435072, %eax + ja .L_2TAG_PACKET_12.0.2 + cmpl $0, %edx + jne .L_2TAG_PACKET_12.0.2 + cmpl $0, %ecx + jl .L_2TAG_PACKET_13.0.2 + movsd 1256(%ebx), %xmm0 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_13.0.2: + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_12.0.2: + movsd 128(%esp), %xmm0 + addsd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_14.0.2: + addl $16304, %eax + cmpl $15504, %eax + jb .L_2TAG_PACKET_15.0.2 + movapd 1184(%ebx), %xmm2 + pshufd $68, %xmm0, %xmm1 + movapd 1200(%ebx), %xmm3 + movapd 1216(%ebx), %xmm4 + movsd 1232(%ebx), %xmm5 + mulsd %xmm1, %xmm1 + xorpd %xmm6, %xmm6 + movl $16352, %eax + pinsrw $3, %eax, %xmm6 + mulpd %xmm0, %xmm2 + xorpd %xmm7, %xmm7 + movl $16368, %edx + pinsrw $3, %edx, %xmm7 + addpd %xmm3, %xmm2 + mulsd %xmm1, %xmm5 + pshufd $228, %xmm1, %xmm3 + mulpd %xmm1, %xmm1 + mulsd %xmm0, %xmm6 + mulpd %xmm0, %xmm2 + addpd %xmm4, %xmm2 + movapd %xmm7, %xmm4 + addsd %xmm6, %xmm7 + mulpd %xmm3, %xmm1 + psrlq $27, %xmm7 + psllq $27, %xmm7 + movsd 1288(%ebx), %xmm3 + subsd %xmm7, %xmm4 + mulpd %xmm1, %xmm2 + addsd %xmm4, %xmm6 + pshufd $238, %xmm2, %xmm1 + addsd %xmm2, %xmm6 + andpd %xmm0, %xmm3 + movapd %xmm0, %xmm4 + addsd %xmm6, %xmm1 + subsd %xmm3, %xmm0 + addsd %xmm5, %xmm1 + mulsd %xmm7, %xmm3 + mulsd %xmm7, %xmm0 + mulsd %xmm1, %xmm4 + addsd %xmm4, %xmm0 + addsd %xmm3, %xmm0 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_15.0.2: + cmpl $16, %eax + jae .L_2TAG_PACKET_3.0.2 + movapd %xmm0, %xmm2 + movd %xmm0, %eax + psrlq $31, %xmm2 + movd %xmm2, %ecx + orl %ecx, %eax + je .L_2TAG_PACKET_3.0.2 + movl $16, %edx + xorpd %xmm1, %xmm1 + pinsrw $3, %edx, %xmm1 + mulsd %xmm1, %xmm1 + movl $42, %edx + jmp .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_0.0.2: + cmpl $0, %eax + jl .L_2TAG_PACKET_14.0.2 + movl 132(%esp), %eax + cmpl $1083179008, %eax + jge .L_2TAG_PACKET_10.0.2 + cmpl $-1048576, %eax + jae .L_2TAG_PACKET_11.0.2 +.L_2TAG_PACKET_6.0.2: + xorpd %xmm0, %xmm0 + movl $49136, %eax + pinsrw $3, %eax, %xmm0 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_4.0.2: + movsd %xmm0, 48(%esp) + fldl 48(%esp) +.L_2TAG_PACKET_9.0.2: + movl 64(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(expm1) +# -- End expm1 + +# Start file scope ASM +ALIAS_SYMBOL(expm1l, expm1); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 4293918720 + .long 0 + .long 4293918720 + .long 4294967232 + .long 0 + .long 4294967232 + .long 0 + .long 65472 + .long 0 + .long 65472 + .long 0 + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .long 1697350398 + .long 1079448903 + .long 1697350398 + .long 1079448903 + .long 4277796864 + .long 1065758274 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 3164486458 + .long 1025308570 + .long 1963358694 + .long 1065423121 + .long 1431655765 + .long 1069897045 + .long 1431655765 + .long 1067799893 + .long 0 + .long 1071644672 + .long 381774871 + .long 1062650220 + .long 381774871 + .long 1062650220 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1000070955 + .long 1042145304 + .long 1040187392 + .long 11418 + .long 988267849 + .long 1039500660 + .long 3539992576 + .long 22960 + .long 36755401 + .long 1042114290 + .long 402653184 + .long 34629 + .long 3634769483 + .long 1042178627 + .long 1820327936 + .long 46424 + .long 2155991225 + .long 1041560680 + .long 847249408 + .long 58348 + .long 2766913307 + .long 1039293264 + .long 3489660928 + .long 70401 + .long 3651174602 + .long 1040488175 + .long 2927624192 + .long 82586 + .long 3073892131 + .long 1042240606 + .long 1006632960 + .long 94904 + .long 1328391742 + .long 1042019037 + .long 3942645760 + .long 107355 + .long 2650893825 + .long 1041903210 + .long 822083584 + .long 119943 + .long 2397289153 + .long 1041802037 + .long 2281701376 + .long 132667 + .long 430997175 + .long 1042110606 + .long 1845493760 + .long 145530 + .long 1230936525 + .long 1041801015 + .long 1702887424 + .long 158533 + .long 740675935 + .long 1040178913 + .long 4110417920 + .long 171677 + .long 3489810261 + .long 1041825986 + .long 2793406464 + .long 184965 + .long 2532600530 + .long 1040767882 + .long 167772160 + .long 198398 + .long 3542557060 + .long 1041827263 + .long 2986344448 + .long 211976 + .long 1401563777 + .long 1041061093 + .long 922746880 + .long 225703 + .long 3129406026 + .long 1041852413 + .long 880803840 + .long 239579 + .long 900993572 + .long 1039283234 + .long 1275068416 + .long 253606 + .long 2115029358 + .long 1042140042 + .long 562036736 + .long 267786 + .long 1086643152 + .long 1041785419 + .long 1610612736 + .long 282120 + .long 82864366 + .long 1041256244 + .long 3045064704 + .long 296610 + .long 2392968152 + .long 1040913683 + .long 3573547008 + .long 311258 + .long 2905856183 + .long 1040002214 + .long 1988100096 + .long 326066 + .long 3742008261 + .long 1040011137 + .long 1451229184 + .long 341035 + .long 863393794 + .long 1040880621 + .long 914358272 + .long 356167 + .long 1446136837 + .long 1041372426 + .long 3707764736 + .long 371463 + .long 927855201 + .long 1040617636 + .long 360710144 + .long 386927 + .long 1492679939 + .long 1041050306 + .long 2952790016 + .long 402558 + .long 608827001 + .long 1041582217 + .long 2181038080 + .long 418360 + .long 606260204 + .long 1042271987 + .long 1711276032 + .long 434334 + .long 3163044019 + .long 1041843851 + .long 1006632960 + .long 450482 + .long 4148747325 + .long 1041962972 + .long 3900702720 + .long 466805 + .long 802924201 + .long 1041275378 + .long 1442840576 + .long 483307 + .long 3052749833 + .long 1041940577 + .long 1937768448 + .long 499988 + .long 2216116399 + .long 1041486744 + .long 914358272 + .long 516851 + .long 2729697836 + .long 1041445764 + .long 2566914048 + .long 533897 + .long 540608356 + .long 1041310907 + .long 2600468480 + .long 551129 + .long 2916344493 + .long 1040535661 + .long 1107296256 + .long 568549 + .long 731391814 + .long 1039497014 + .long 2566914048 + .long 586158 + .long 1024722704 + .long 1041461625 + .long 2961178624 + .long 603959 + .long 3806831748 + .long 1041732499 + .long 2675965952 + .long 621954 + .long 238953304 + .long 1040316488 + .long 2189426688 + .long 640145 + .long 749123235 + .long 1041725785 + .long 2063597568 + .long 658534 + .long 1168187977 + .long 1041175214 + .long 2986344448 + .long 677123 + .long 3506096399 + .long 1042186095 + .long 1426063360 + .long 695915 + .long 1470221620 + .long 1041675499 + .long 2566914048 + .long 714911 + .long 3182425146 + .long 1041483134 + .long 3087007744 + .long 734114 + .long 3131698208 + .long 1042208657 + .long 4068474880 + .long 753526 + .long 2300504125 + .long 1041428596 + .long 2415919104 + .long 773150 + .long 2290297931 + .long 1037388400 + .long 3716153344 + .long 792987 + .long 3532148223 + .long 1041626194 + .long 771751936 + .long 813041 + .long 1161884404 + .long 1042015258 + .long 3699376128 + .long 833312 + .long 876383176 + .long 1037968878 + .long 1241513984 + .long 853805 + .long 3379986796 + .long 1042213153 + .long 3699376128 + .long 874520 + .long 1545797737 + .long 1041681569 + .long 58720256 + .long 895462 + .long 2925146801 + .long 1042212567 + .long 855638016 + .long 916631 + .long 1316627971 + .long 1038516204 + .long 3883925504 + .long 938030 + .long 3267869137 + .long 1040337004 + .long 2726297600 + .long 959663 + .long 3720868999 + .long 1041782409 + .long 3992977408 + .long 981531 + .long 433316142 + .long 1041994064 + .long 1526726656 + .long 1003638 + .long 781232103 + .long 1040093400 + .long 2172649472 + .long 1025985 + .long 2773927732 + .long 1053236707 + .long 381774871 + .long 1062650220 + .long 379653899 + .long 1056571845 + .long 286331153 + .long 1065423121 + .long 436314138 + .long 1059717536 + .long 1431655765 + .long 1067799893 + .long 1431655765 + .long 1069897045 + .long 0 + .long 1071644672 + .long 0 + .long 1072693248 + .long 0 + .long 2146435072 + .long 0 + .long 0 + .long 4294967295 + .long 2146435071 + .long 0 + .long 1048576 + .long 4227858432 + .long 4294967295 + .type static_const_table,@object + .size static_const_table,1296 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/s_log1p.S b/libm/x86/s_log1p.S new file mode 100644 index 000000000..7a6d845bd --- /dev/null +++ b/libm/x86/s_log1p.S @@ -0,0 +1,827 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Let x=2^k * mx, mx in [1,2) +// +// Get B~1/mx based on the output of rcpps instruction (B0) +// B = int((B0*2^7+0.5))/2^7 +// +// Reduced argument: r=B*mx-1.0 (computed accurately in high and low parts) +// +// Result: k*log(2) - log(B) + p(r) +// p(r) is a degree 7 polynomial +// -log(B) read from data table (high, low parts) +// Result is formed from high and low parts +// +// Special cases: +// log1p(NaN) = quiet NaN, and raise invalid exception +// log1p(+INF) = that INF +// log1p(x) = NaN if x < -1 or x = -INF, and raises invalid exception +// log1p(-1) = -INF, and raises divide-by-zero exception +// log1p(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin log1p +ENTRY(log1p) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $104, %esp + movl %ebx, 40(%esp) + call static_func + movl %eax, %ebx + movsd 112(%esp), %xmm0 + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + xorpd %xmm3, %xmm3 + movl $32768, %ecx + movd %ecx, %xmm4 + movsd 2128(%ebx), %xmm5 + pshufd $68, %xmm0, %xmm7 + movapd %xmm2, %xmm6 + pextrw $3, %xmm0, %ecx + addsd %xmm2, %xmm0 + movapd %xmm0, %xmm1 + pextrw $3, %xmm0, %eax + subsd %xmm0, %xmm6 + orpd %xmm2, %xmm0 + psllq $5, %xmm0 + psrlq $34, %xmm0 + subl $16, %eax + cmpl $32736, %eax + jae .L_2TAG_PACKET_0.0.2 + addsd %xmm6, %xmm7 + rcpss %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $228, %xmm5, %xmm6 + psrlq $12, %xmm1 + andl $32752, %ecx + cmpl $16256, %ecx + jb .L_2TAG_PACKET_1.0.2 + andl $32752, %eax + movl $32720, %ecx + subl %eax, %ecx + pinsrw $3, %ecx, %xmm3 +.L_2TAG_PACKET_2.0.2: + mulsd %xmm3, %xmm7 + paddd %xmm4, %xmm0 + xorpd %xmm4, %xmm4 + movl $14336, %ecx + pinsrw $3, %ecx, %xmm4 + orpd %xmm2, %xmm1 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm1, %xmm5 + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm1 + paddd %xmm4, %xmm0 + mulsd %xmm0, %xmm5 + movl $16352, %ecx + subl %ecx, %eax + cvtsi2sdl %eax, %xmm4 + mulsd %xmm0, %xmm7 + mulsd %xmm0, %xmm1 + movsd 2064(%ebx), %xmm6 + movapd 2080(%ebx), %xmm3 + subsd %xmm2, %xmm5 + andl $16711680, %edx + shrl $12, %edx + movapd (%ebx,%edx), %xmm0 + movapd 2096(%ebx), %xmm2 + addsd %xmm5, %xmm1 + movapd %xmm1, %xmm5 + addsd %xmm7, %xmm1 + subsd %xmm1, %xmm5 + addsd %xmm5, %xmm7 + mulsd %xmm4, %xmm6 + mulsd 2072(%ebx), %xmm4 + mulsd %xmm1, %xmm3 + pshufd $68, %xmm1, %xmm5 + addsd %xmm6, %xmm0 + mulpd %xmm5, %xmm2 + mulpd %xmm5, %xmm5 + pshufd $228, %xmm0, %xmm6 + addsd %xmm1, %xmm0 + addpd 2112(%ebx), %xmm2 + mulpd %xmm5, %xmm3 + subsd %xmm0, %xmm6 + mulsd %xmm1, %xmm2 + addsd %xmm7, %xmm4 + mulsd %xmm1, %xmm7 + addsd %xmm6, %xmm1 + pshufd $238, %xmm0, %xmm6 + mulsd %xmm5, %xmm5 + addsd %xmm6, %xmm4 + subsd %xmm7, %xmm1 + addpd %xmm3, %xmm2 + addsd %xmm4, %xmm1 + mulpd %xmm5, %xmm2 + addsd %xmm2, %xmm1 + pshufd $238, %xmm2, %xmm5 + addsd %xmm5, %xmm1 + addsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_0.0.2: + movsd 112(%esp), %xmm0 + movapd %xmm0, %xmm1 + addl $16, %eax + cmpl $32768, %eax + jae .L_2TAG_PACKET_4.0.2 + cmpl $0, %eax + je .L_2TAG_PACKET_5.0.2 +.L_2TAG_PACKET_6.0.2: + addsd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_7.0.2: + ja .L_2TAG_PACKET_6.0.2 + cmpl $0, %edx + ja .L_2TAG_PACKET_6.0.2 + jmp .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_4.0.2: + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + addl %ecx, %ecx + cmpl $-2097152, %ecx + jae .L_2TAG_PACKET_7.0.2 + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_5.0.2 +.L_2TAG_PACKET_8.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %eax + pinsrw $3, %eax, %xmm1 + movl $141, %edx + mulsd %xmm1, %xmm0 +.L_2TAG_PACKET_9.0.2: + movsd %xmm0, (%esp) + movsd 112(%esp), %xmm0 + fldl (%esp) + jmp .L_2TAG_PACKET_10.0.2 +.L_2TAG_PACKET_5.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $49136, %eax + pinsrw $3, %eax, %xmm0 + divsd %xmm1, %xmm0 + movl $140, %edx + jmp .L_2TAG_PACKET_9.0.2 +.L_2TAG_PACKET_1.0.2: + movsd 112(%esp), %xmm0 + cmpl $15504, %ecx + jb .L_2TAG_PACKET_11.0.2 + movapd 2144(%ebx), %xmm1 + pshufd $68, %xmm0, %xmm0 + movapd 2160(%ebx), %xmm2 + pshufd $68, %xmm0, %xmm4 + movapd 2176(%ebx), %xmm3 + mulpd %xmm0, %xmm1 + xorpd %xmm6, %xmm6 + mulpd %xmm4, %xmm4 + addpd %xmm2, %xmm1 + pshufd $68, %xmm4, %xmm5 + mulpd %xmm0, %xmm4 + movl $49120, %eax + pinsrw $3, %eax, %xmm6 + mulpd %xmm0, %xmm1 + mulsd %xmm4, %xmm4 + addpd %xmm3, %xmm1 + mulsd %xmm6, %xmm5 + mulpd %xmm4, %xmm1 + pshufd $238, %xmm1, %xmm7 + addsd %xmm7, %xmm1 + addsd %xmm5, %xmm1 + addsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_11.0.2: + cmpl $16, %ecx + jb .L_2TAG_PACKET_12.0.2 + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_12.0.2: + movapd %xmm0, %xmm1 + mulsd %xmm1, %xmm1 + jmp .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_3.0.2: + movsd %xmm0, 24(%esp) + fldl 24(%esp) +.L_2TAG_PACKET_10.0.2: + movl 40(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(log1p) +# -- End log1p + +# Start file scope ASM +ALIAS_SYMBOL(log1pl, log1p); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 2854492160 + .long 1072033410 + .long 215631550 + .long 1025638968 + .long 1547061248 + .long 1072017216 + .long 2886781435 + .long 1026423395 + .long 649825280 + .long 1072001146 + .long 4281533405 + .long 1024038923 + .long 646346752 + .long 1071985198 + .long 1562735921 + .long 1023790276 + .long 2203734016 + .long 1071969370 + .long 1838397691 + .long 3173936209 + .long 1872169984 + .long 1071953661 + .long 3981202460 + .long 1022325013 + .long 669557760 + .long 1071938069 + .long 4182597802 + .long 3173174122 + .long 4076413952 + .long 1071922591 + .long 1209029111 + .long 3170736207 + .long 556125184 + .long 1071907228 + .long 821086028 + .long 3173437049 + .long 204914688 + .long 1071891976 + .long 2097025986 + .long 3171071798 + .long 387545088 + .long 1071876834 + .long 3142936996 + .long 3173092218 + .long 2912783360 + .long 1071861800 + .long 2502420140 + .long 1024505919 + .long 1144260608 + .long 1071846874 + .long 3315658140 + .long 3173469843 + .long 1471209472 + .long 1071832053 + .long 129621009 + .long 3172443877 + .long 1829683200 + .long 1071817336 + .long 3885467693 + .long 1025535275 + .long 288676864 + .long 1071802722 + .long 86139472 + .long 3171639793 + .long 3636378624 + .long 1071788208 + .long 1850238587 + .long 1024654342 + .long 1606817792 + .long 1071773795 + .long 3388899795 + .long 3173675586 + .long 1236164608 + .long 1071759480 + .long 3983599207 + .long 1020046558 + .long 1089616896 + .long 1071745262 + .long 4171974224 + .long 1024773198 + .long 4143093760 + .long 1071731139 + .long 2727587401 + .long 3173965207 + .long 600267776 + .long 1071717112 + .long 3147685042 + .long 3173353031 + .long 2249313280 + .long 1071703177 + .long 125835074 + .long 1025255832 + .long 3805303808 + .long 1071689334 + .long 2289991207 + .long 1025460331 + .long 87278592 + .long 1071675583 + .long 1106114045 + .long 1025933602 + .long 3195405312 + .long 1071661920 + .long 3885316576 + .long 3171206239 + .long 3853649920 + .long 1071648346 + .long 2977069852 + .long 3171236771 + .long 2944026624 + .long 1071625048 + .long 1008093493 + .long 1023444474 + .long 3993180160 + .long 1071598247 + .long 1862355595 + .long 1024642533 + .long 1454641152 + .long 1071571617 + .long 1514603089 + .long 1026500596 + .long 3286085632 + .long 1071545154 + .long 1400028424 + .long 3173279056 + .long 438773760 + .long 1071518858 + .long 120727864 + .long 3172148914 + .long 1212979200 + .long 1071492725 + .long 1625055594 + .long 3172901933 + .long 1189017600 + .long 1071466754 + .long 3920062376 + .long 1025727407 + .long 403064832 + .long 1071440943 + .long 1053271728 + .long 3171391427 + .long 3343210496 + .long 1071415289 + .long 3243395502 + .long 3173627613 + .long 1765777408 + .long 1071389792 + .long 2145968512 + .long 1026354304 + .long 461430784 + .long 1071364449 + .long 4094322285 + .long 1026021467 + .long 71706624 + .long 1071339258 + .long 763632021 + .long 1024496933 + .long 1380503552 + .long 1071314217 + .long 1383547992 + .long 3173088453 + .long 1015732224 + .long 1071289325 + .long 3198646877 + .long 1025390322 + .long 35977216 + .long 1071264580 + .long 2141026805 + .long 1025754693 + .long 3927306240 + .long 1071239979 + .long 282116272 + .long 3173394334 + .long 1125341184 + .long 1071215523 + .long 2768427504 + .long 3172279059 + .long 1666971648 + .long 1071191208 + .long 786837629 + .long 3172427445 + .long 2827694080 + .long 1071167033 + .long 3857122416 + .long 3173014241 + .long 2003683328 + .long 1071142997 + .long 859010954 + .long 1026545007 + .long 1004017664 + .long 1071119098 + .long 3356644970 + .long 3173458064 + .long 1753020416 + .long 1071095334 + .long 788338552 + .long 1026157693 + .long 1992718336 + .long 1071071704 + .long 1239179443 + .long 1026394889 + .long 3870234624 + .long 1071048206 + .long 2082614663 + .long 1024926053 + .long 1050437632 + .long 1071024840 + .long 660007840 + .long 1025548499 + .long 188395520 + .long 1071001603 + .long 3878792704 + .long 3173889571 + .long 3747176448 + .long 1070978493 + .long 144991708 + .long 3171552042 + .long 1405669376 + .long 1070955511 + .long 3999088879 + .long 1025486317 + .long 121151488 + .long 1070932654 + .long 2170865497 + .long 1026473584 + .long 2652319744 + .long 1070909920 + .long 453695652 + .long 3173916809 + .long 3262236672 + .long 1070887309 + .long 157800053 + .long 3173984206 + .long 601221120 + .long 1070864820 + .long 3968917661 + .long 1023992886 + .long 1999843328 + .long 1070842450 + .long 3053895004 + .long 1024998228 + .long 1992167424 + .long 1070820199 + .long 2968614856 + .long 1024552653 + .long 3788726272 + .long 1070798065 + .long 3542170808 + .long 3173573242 + .long 2094829568 + .long 1070776048 + .long 1246758132 + .long 1026202874 + .long 288675840 + .long 1070754146 + .long 3747328950 + .long 1026331585 + .long 1829681152 + .long 1070732357 + .long 3125197546 + .long 1024100318 + .long 1666869248 + .long 1070710681 + .long 1363656119 + .long 1026336493 + .long 3417110528 + .long 1070689116 + .long 4154791553 + .long 1026267853 + .long 2183653376 + .long 1070667662 + .long 1671819292 + .long 3173785870 + .long 1734434816 + .long 1070646317 + .long 373091049 + .long 1025972363 + .long 1615681536 + .long 1070625080 + .long 384650897 + .long 1022926043 + .long 1445382144 + .long 1070603950 + .long 344320330 + .long 3172397196 + .long 1823715328 + .long 1070569756 + .long 3389841200 + .long 1025231852 + .long 3839688704 + .long 1070527917 + .long 1706790417 + .long 3167363349 + .long 4293332992 + .long 1070486286 + .long 1614935088 + .long 1019351591 + .long 2966720512 + .long 1070444861 + .long 4145393717 + .long 3173711658 + .long 4066729984 + .long 1070403639 + .long 1974925028 + .long 3171437182 + .long 3337621504 + .long 1070362619 + .long 3314953170 + .long 3169971314 + .long 943448064 + .long 1070321799 + .long 1498682038 + .long 3173862340 + .long 1465634816 + .long 1070281176 + .long 1319952810 + .long 3171693965 + .long 1015734272 + .long 1070240749 + .long 1347821929 + .long 3173544515 + .long 118001664 + .long 1070200516 + .long 1751482746 + .long 1026134093 + .long 3707174912 + .long 1070160474 + .long 1486946159 + .long 1023930920 + .long 3946381312 + .long 1070120623 + .long 2867408081 + .long 3171368276 + .long 1699848192 + .long 1070080961 + .long 2590187139 + .long 1025379803 + .long 2235846656 + .long 1070041485 + .long 1888568069 + .long 3172754960 + .long 2339729408 + .long 1070002194 + .long 3852214753 + .long 3173323149 + .long 3196850176 + .long 1069963086 + .long 742141560 + .long 1025101707 + .long 1800683520 + .long 1069924160 + .long 3949500444 + .long 3172102179 + .long 3835801600 + .long 1069885413 + .long 3848895943 + .long 1025913832 + .long 2201202688 + .long 1069846845 + .long 1425913464 + .long 1025868665 + .long 2778279936 + .long 1069808453 + .long 2120889677 + .long 3173831128 + .long 2954203136 + .long 1069770236 + .long 592147081 + .long 1019621288 + .long 210141184 + .long 1069732193 + .long 3414275233 + .long 1023647084 + .long 709476352 + .long 1069694321 + .long 2413027164 + .long 1024462115 + .long 2116284416 + .long 1069656619 + .long 1144559924 + .long 1026336654 + .long 2183651328 + .long 1069619086 + .long 3459057650 + .long 1025634168 + .long 3047047168 + .long 1069581720 + .long 1879674924 + .long 3173508573 + .long 970711040 + .long 1069541521 + .long 1335954173 + .long 3173332182 + .long 2198478848 + .long 1069467449 + .long 2951103968 + .long 3173892200 + .long 1669611520 + .long 1069393703 + .long 531044147 + .long 1025149248 + .long 29114368 + .long 1069320280 + .long 3327831251 + .long 1025918673 + .long 2376949760 + .long 1069247176 + .long 737634533 + .long 3172176000 + .long 1085390848 + .long 1069174390 + .long 3108243400 + .long 3171828406 + .long 1566130176 + .long 1069101918 + .long 985483226 + .long 1025708380 + .long 792780800 + .long 1069029758 + .long 4184866295 + .long 1024426204 + .long 183156736 + .long 1068957907 + .long 2845699378 + .long 1022107277 + .long 1301782528 + .long 1068886362 + .long 1012735262 + .long 3173804294 + .long 1562411008 + .long 1068815121 + .long 2197086703 + .long 3170187813 + .long 2815549440 + .long 1068744181 + .long 2782613207 + .long 1026345054 + .long 2756124672 + .long 1068673540 + .long 2929486205 + .long 3173037800 + .long 3511050240 + .long 1068603195 + .long 1443733147 + .long 3173331549 + .long 3047047168 + .long 1068533144 + .long 1879674924 + .long 3172459997 + .long 3221667840 + .long 1068427825 + .long 1338588027 + .long 3171815742 + .long 3453861888 + .long 1068288883 + .long 1205348359 + .long 3172624626 + .long 3506110464 + .long 1068150514 + .long 893105198 + .long 1025571866 + .long 346013696 + .long 1068012714 + .long 3495569021 + .long 3172563349 + .long 4074029056 + .long 1067875476 + .long 3961106338 + .long 3171065595 + .long 3559784448 + .long 1067738798 + .long 1975385384 + .long 3173783155 + .long 797769728 + .long 1067602675 + .long 3760305787 + .long 1026047642 + .long 2313633792 + .long 1067467101 + .long 1559353171 + .long 1023480256 + .long 3960766464 + .long 1067213778 + .long 1067365107 + .long 1025865926 + .long 684261376 + .long 1066944805 + .long 844762164 + .long 3173687482 + .long 630718464 + .long 1066676905 + .long 2458269694 + .long 1024033081 + .long 1486061568 + .long 1066410070 + .long 115537874 + .long 3173243995 + .long 2743664640 + .long 1065886792 + .long 3665098304 + .long 3173471607 + .long 1971912704 + .long 1065357333 + .long 2577214440 + .long 3171993451 + .long 1498939392 + .long 1064306693 + .long 3409036923 + .long 1025599151 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 4277811200 + .long 1067855426 + .long 2479318832 + .long 1022292823 + .long 2454267026 + .long 1069697316 + .long 0 + .long 3218079744 + .long 1030730101 + .long 3217380702 + .long 1431655765 + .long 1070945621 + .long 2576980378 + .long 1070176665 + .long 0 + .long 3219128320 + .long 0 + .long 4294959104 + .long 0 + .long 4294959104 + .long 0 + .long 3217031168 + .long 2576980378 + .long 1070176665 + .long 2454267026 + .long 1069697316 + .long 0 + .long 3218079744 + .long 1431655765 + .long 3217380693 + .long 1431655765 + .long 1070945621 + .type static_const_table,@object + .size static_const_table,2192 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/s_sin.S b/libm/x86/s_sin.S new file mode 100644 index 000000000..1e6cbd4aa --- /dev/null +++ b/libm/x86/s_sin.S @@ -0,0 +1,907 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// 1. RANGE REDUCTION +// +// We perform an initial range reduction from X to r with +// +// X =~= N * pi/32 + r +// +// so that |r| <= pi/64 + epsilon. We restrict inputs to those +// where |N| <= 932560. Beyond this, the range reduction is +// insufficiently accurate. For extremely small inputs, +// denormalization can occur internally, impacting performance. +// This means that the main path is actually only taken for +// 2^-252 <= |X| < 90112. +// +// To avoid branches, we perform the range reduction to full +// accuracy each time. +// +// X - N * (P_1 + P_2 + P_3) +// +// where P_1 and P_2 are 32-bit numbers (so multiplication by N +// is exact) and P_3 is a 53-bit number. Together, these +// approximate pi well enough for all cases in the restricted +// range. +// +// The main reduction sequence is: +// +// y = 32/pi * x +// N = integer(y) +// (computed by adding and subtracting off SHIFTER) +// +// m_1 = N * P_1 +// m_2 = N * P_2 +// r_1 = x - m_1 +// r = r_1 - m_2 +// (this r can be used for most of the calculation) +// +// c_1 = r_1 - r +// m_3 = N * P_3 +// c_2 = c_1 - m_2 +// c = c_2 - m_3 +// +// 2. MAIN ALGORITHM +// +// The algorithm uses a table lookup based on B = M * pi / 32 +// where M = N mod 64. The stored values are: +// sigma closest power of 2 to cos(B) +// C_hl 53-bit cos(B) - sigma +// S_hi + S_lo 2 * 53-bit sin(B) +// +// The computation is organized as follows: +// +// sin(B + r + c) = [sin(B) + sigma * r] + +// r * (cos(B) - sigma) + +// sin(B) * [cos(r + c) - 1] + +// cos(B) * [sin(r + c) - r] +// +// which is approximately: +// +// [S_hi + sigma * r] + +// C_hl * r + +// S_lo + S_hi * [(cos(r) - 1) - r * c] + +// (C_hl + sigma) * [(sin(r) - r) + c] +// +// and this is what is actually computed. We separate this sum +// into four parts: +// +// hi + med + pols + corr +// +// where +// +// hi = S_hi + sigma r +// med = C_hl * r +// pols = S_hi * (cos(r) - 1) + (C_hl + sigma) * (sin(r) - r) +// corr = S_lo + c * ((C_hl + sigma) - S_hi * r) +// +// 3. POLYNOMIAL +// +// The polynomial S_hi * (cos(r) - 1) + (C_hl + sigma) * +// (sin(r) - r) can be rearranged freely, since it is quite +// small, so we exploit parallelism to the fullest. +// +// psc4 = SC_4 * r_1 +// msc4 = psc4 * r +// r2 = r * r +// msc2 = SC_2 * r2 +// r4 = r2 * r2 +// psc3 = SC_3 + msc4 +// psc1 = SC_1 + msc2 +// msc3 = r4 * psc3 +// sincospols = psc1 + msc3 +// pols = sincospols * +// +// +// 4. CORRECTION TERM +// +// This is where the "c" component of the range reduction is +// taken into account; recall that just "r" is used for most of +// the calculation. +// +// -c = m_3 - c_2 +// -d = S_hi * r - (C_hl + sigma) +// corr = -c * -d + S_lo +// +// 5. COMPENSATED SUMMATIONS +// +// The two successive compensated summations add up the high +// and medium parts, leaving just the low parts to add up at +// the end. +// +// rs = sigma * r +// res_int = S_hi + rs +// k_0 = S_hi - res_int +// k_2 = k_0 + rs +// med = C_hl * r +// res_hi = res_int + med +// k_1 = res_int - res_hi +// k_3 = k_1 + med +// +// 6. FINAL SUMMATION +// +// We now add up all the small parts: +// +// res_lo = pols(hi) + pols(lo) + corr + k_1 + k_3 +// +// Now the overall result is just: +// +// res_hi + res_lo +// +// 7. SMALL ARGUMENTS +// +// If |x| < SNN (SNN meaning the smallest normal number), we +// simply perform 0.1111111 cdots 1111 * x. For SNN <= |x|, we +// do 2^-55 * (2^55 * x - x). +// +// Special cases: +// sin(NaN) = quiet NaN, and raise invalid exception +// sin(INF) = NaN and raise invalid exception +// sin(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin sin +ENTRY(sin) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $120, %esp + movl %ebx, 56(%esp) + call static_func + movl %eax, %ebx + movsd 128(%esp), %xmm0 + pextrw $3, %xmm0, %eax + andl $32767, %eax + subl $12336, %eax + cmpl $4293, %eax + ja .L_2TAG_PACKET_0.0.2 + movsd 2160(%ebx), %xmm1 + mulsd %xmm0, %xmm1 + movsd 2272(%ebx), %xmm5 + movapd 2256(%ebx), %xmm4 + andpd %xmm0, %xmm4 + orps %xmm4, %xmm5 + movsd 2128(%ebx), %xmm3 + movapd 2112(%ebx), %xmm2 + addpd %xmm5, %xmm1 + cvttsd2si %xmm1, %edx + cvtsi2sdl %edx, %xmm1 + mulsd %xmm1, %xmm3 + unpcklpd %xmm1, %xmm1 + addl $1865216, %edx + movapd %xmm0, %xmm4 + andl $63, %edx + movapd 2096(%ebx), %xmm5 + lea (%ebx), %eax + shll $5, %edx + addl %edx, %eax + mulpd %xmm1, %xmm2 + subsd %xmm3, %xmm0 + mulsd 2144(%ebx), %xmm1 + subsd %xmm3, %xmm4 + movsd 8(%eax), %xmm7 + unpcklpd %xmm0, %xmm0 + movapd %xmm4, %xmm3 + subsd %xmm2, %xmm4 + mulpd %xmm0, %xmm5 + subpd %xmm2, %xmm0 + movapd 2064(%ebx), %xmm6 + mulsd %xmm4, %xmm7 + subsd %xmm4, %xmm3 + mulpd %xmm0, %xmm5 + mulpd %xmm0, %xmm0 + subsd %xmm2, %xmm3 + movapd (%eax), %xmm2 + subsd %xmm3, %xmm1 + movsd 24(%eax), %xmm3 + addsd %xmm3, %xmm2 + subsd %xmm2, %xmm7 + mulsd %xmm4, %xmm2 + mulpd %xmm0, %xmm6 + mulsd %xmm4, %xmm3 + mulpd %xmm0, %xmm2 + mulpd %xmm0, %xmm0 + addpd 2080(%ebx), %xmm5 + mulsd (%eax), %xmm4 + addpd 2048(%ebx), %xmm6 + mulpd %xmm0, %xmm5 + movapd %xmm3, %xmm0 + addsd 8(%eax), %xmm3 + mulpd %xmm7, %xmm1 + movapd %xmm4, %xmm7 + addsd %xmm3, %xmm4 + addpd %xmm5, %xmm6 + movsd 8(%eax), %xmm5 + subsd %xmm3, %xmm5 + subsd %xmm4, %xmm3 + addsd 16(%eax), %xmm1 + mulpd %xmm2, %xmm6 + addsd %xmm0, %xmm5 + addsd %xmm7, %xmm3 + addsd %xmm5, %xmm1 + addsd %xmm3, %xmm1 + addsd %xmm6, %xmm1 + unpckhpd %xmm6, %xmm6 + addsd %xmm6, %xmm1 + addsd %xmm1, %xmm4 + movsd %xmm4, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_0.0.2: + jg .L_2TAG_PACKET_2.0.2 + shrl $4, %eax + cmpl $268434685, %eax + jne .L_2TAG_PACKET_3.0.2 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_3.0.2: + movsd 2192(%ebx), %xmm3 + mulsd %xmm0, %xmm3 + subsd %xmm0, %xmm3 + mulsd 2208(%ebx), %xmm3 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + movl 132(%esp), %eax + andl $2146435072, %eax + cmpl $2146435072, %eax + je .L_2TAG_PACKET_4.0.2 + subl $32, %esp + movsd %xmm0, (%esp) + lea 40(%esp), %eax + movl %eax, 8(%esp) + movl $2, %eax + movl %eax, 12(%esp) + call __libm_sincos_huge + addl $32, %esp + fldl 16(%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_4.0.2: + fldl 128(%esp) + fmull 2240(%ebx) +.L_2TAG_PACKET_1.0.2: + movl 56(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(sin) +# -- End sin + +# Start file scope ASM +ALIAS_SYMBOL(sinl, sin); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 393047345 + .long 3212032302 + .long 3156849708 + .long 1069094822 + .long 3758096384 + .long 3158189848 + .long 0 + .long 1072693248 + .long 18115067 + .long 3214126342 + .long 1013556747 + .long 1070135480 + .long 3221225472 + .long 3160567065 + .long 0 + .long 1072693248 + .long 2476548698 + .long 3215330282 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 0 + .long 1072693248 + .long 2255197647 + .long 3216211105 + .long 2796464483 + .long 1071152610 + .long 3758096384 + .long 3160878317 + .long 0 + .long 1072693248 + .long 1945768569 + .long 3216915048 + .long 939980347 + .long 1071524701 + .long 536870912 + .long 1012796809 + .long 0 + .long 1072693248 + .long 1539668340 + .long 3217396327 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 0 + .long 1072693248 + .long 1403757309 + .long 3217886718 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 0 + .long 1072693248 + .long 2583490354 + .long 1070236281 + .long 1719614413 + .long 1072079006 + .long 536870912 + .long 3163282740 + .long 0 + .long 1071644672 + .long 2485417816 + .long 1069626316 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 0 + .long 1071644672 + .long 2598800519 + .long 1068266419 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 0 + .long 1071644672 + .long 2140183630 + .long 3214756396 + .long 4051746225 + .long 1072445618 + .long 2147483648 + .long 3161907377 + .long 0 + .long 1071644672 + .long 1699043957 + .long 3216902261 + .long 3476196678 + .long 1072533611 + .long 536870912 + .long 1014257638 + .long 0 + .long 1071644672 + .long 1991047213 + .long 1067753521 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 0 + .long 1070596096 + .long 240740309 + .long 3215727903 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 0 + .long 1070596096 + .long 257503056 + .long 3214647653 + .long 2748392742 + .long 1072683149 + .long 1073741824 + .long 3163061750 + .long 0 + .long 1069547520 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 257503056 + .long 1067164005 + .long 2748392742 + .long 1072683149 + .long 1073741824 + .long 3163061750 + .long 0 + .long 3217031168 + .long 240740309 + .long 1068244255 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 0 + .long 3218079744 + .long 1991047213 + .long 3215237169 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 0 + .long 3218079744 + .long 1699043957 + .long 1069418613 + .long 3476196678 + .long 1072533611 + .long 536870912 + .long 1014257638 + .long 0 + .long 3219128320 + .long 2140183630 + .long 1067272748 + .long 4051746225 + .long 1072445618 + .long 2147483648 + .long 3161907377 + .long 0 + .long 3219128320 + .long 2598800519 + .long 3215750067 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 0 + .long 3219128320 + .long 2485417816 + .long 3217109964 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 0 + .long 3219128320 + .long 2583490354 + .long 3217719929 + .long 1719614413 + .long 1072079006 + .long 536870912 + .long 3163282740 + .long 0 + .long 3219128320 + .long 1403757309 + .long 1070403070 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 0 + .long 3220176896 + .long 1539668340 + .long 1069912679 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 0 + .long 3220176896 + .long 1945768569 + .long 1069431400 + .long 939980347 + .long 1071524701 + .long 536870912 + .long 1012796809 + .long 0 + .long 3220176896 + .long 2255197647 + .long 1068727457 + .long 2796464483 + .long 1071152610 + .long 3758096384 + .long 3160878317 + .long 0 + .long 3220176896 + .long 2476548698 + .long 1067846634 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 0 + .long 3220176896 + .long 18115067 + .long 1066642694 + .long 1013556747 + .long 1070135480 + .long 3221225472 + .long 3160567065 + .long 0 + .long 3220176896 + .long 393047345 + .long 1064548654 + .long 3156849708 + .long 1069094822 + .long 3758096384 + .long 3158189848 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 393047345 + .long 1064548654 + .long 3156849708 + .long 3216578470 + .long 3758096384 + .long 1010706200 + .long 0 + .long 3220176896 + .long 18115067 + .long 1066642694 + .long 1013556747 + .long 3217619128 + .long 3221225472 + .long 1013083417 + .long 0 + .long 3220176896 + .long 2476548698 + .long 1067846634 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 0 + .long 3220176896 + .long 2255197647 + .long 1068727457 + .long 2796464483 + .long 3218636258 + .long 3758096384 + .long 1013394669 + .long 0 + .long 3220176896 + .long 1945768569 + .long 1069431400 + .long 939980347 + .long 3219008349 + .long 536870912 + .long 3160280457 + .long 0 + .long 3220176896 + .long 1539668340 + .long 1069912679 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 0 + .long 3220176896 + .long 1403757309 + .long 1070403070 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 0 + .long 3220176896 + .long 2583490354 + .long 3217719929 + .long 1719614413 + .long 3219562654 + .long 536870912 + .long 1015799092 + .long 0 + .long 3219128320 + .long 2485417816 + .long 3217109964 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 0 + .long 3219128320 + .long 2598800519 + .long 3215750067 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 0 + .long 3219128320 + .long 2140183630 + .long 1067272748 + .long 4051746225 + .long 3219929266 + .long 2147483648 + .long 1014423729 + .long 0 + .long 3219128320 + .long 1699043957 + .long 1069418613 + .long 3476196678 + .long 3220017259 + .long 536870912 + .long 3161741286 + .long 0 + .long 3219128320 + .long 1991047213 + .long 3215237169 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 0 + .long 3218079744 + .long 240740309 + .long 1068244255 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 0 + .long 3218079744 + .long 257503056 + .long 1067164005 + .long 2748392742 + .long 3220166797 + .long 1073741824 + .long 1015578102 + .long 0 + .long 3217031168 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 257503056 + .long 3214647653 + .long 2748392742 + .long 3220166797 + .long 1073741824 + .long 1015578102 + .long 0 + .long 1069547520 + .long 240740309 + .long 3215727903 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 0 + .long 1070596096 + .long 1991047213 + .long 1067753521 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 0 + .long 1070596096 + .long 1699043957 + .long 3216902261 + .long 3476196678 + .long 3220017259 + .long 536870912 + .long 3161741286 + .long 0 + .long 1071644672 + .long 2140183630 + .long 3214756396 + .long 4051746225 + .long 3219929266 + .long 2147483648 + .long 1014423729 + .long 0 + .long 1071644672 + .long 2598800519 + .long 1068266419 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 0 + .long 1071644672 + .long 2485417816 + .long 1069626316 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 0 + .long 1071644672 + .long 2583490354 + .long 1070236281 + .long 1719614413 + .long 3219562654 + .long 536870912 + .long 1015799092 + .long 0 + .long 1071644672 + .long 1403757309 + .long 3217886718 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 0 + .long 1072693248 + .long 1539668340 + .long 3217396327 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 0 + .long 1072693248 + .long 1945768569 + .long 3216915048 + .long 939980347 + .long 3219008349 + .long 536870912 + .long 3160280457 + .long 0 + .long 1072693248 + .long 2255197647 + .long 3216211105 + .long 2796464483 + .long 3218636258 + .long 3758096384 + .long 1013394669 + .long 0 + .long 1072693248 + .long 2476548698 + .long 3215330282 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 0 + .long 1072693248 + .long 18115067 + .long 3214126342 + .long 1013556747 + .long 3217619128 + .long 3221225472 + .long 1013083417 + .long 0 + .long 1072693248 + .long 393047345 + .long 3212032302 + .long 3156849708 + .long 3216578470 + .long 3758096384 + .long 1010706200 + .long 0 + .long 1072693248 + .long 1431655765 + .long 3217380693 + .long 0 + .long 3219128320 + .long 286331153 + .long 1065423121 + .long 1431655765 + .long 1067799893 + .long 436314138 + .long 3207201184 + .long 381774871 + .long 3210133868 + .long 2773927732 + .long 1053236707 + .long 436314138 + .long 1056571808 + .long 442499072 + .long 1032893537 + .long 442499072 + .long 1032893537 + .long 1413480448 + .long 1069097467 + .long 0 + .long 0 + .long 771977331 + .long 996350346 + .long 0 + .long 0 + .long 1841940611 + .long 1076125488 + .long 0 + .long 0 + .long 0 + .long 1127743488 + .long 0 + .long 0 + .long 0 + .long 1130364928 + .long 0 + .long 0 + .long 0 + .long 1015021568 + .long 0 + .long 0 + .long 4294967295 + .long 1072693247 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .type static_const_table,@object + .size static_const_table,2288 + .data + .hidden __libm_sincos_huge + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/s_tan.S b/libm/x86/s_tan.S new file mode 100644 index 000000000..3ee21075f --- /dev/null +++ b/libm/x86/s_tan.S @@ -0,0 +1,1766 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Polynomials coefficients and other constants. +// +// Note that in this algorithm, there is a different polynomial for +// each breakpoint, so there are 32 sets of polynomial coefficients +// as well as 32 instances of the other constants. +// +// The polynomial coefficients and constants are offset from the start +// of the main block as follows: +// +// 0: c8 | c0 +// 16: c9 | c1 +// 32: c10 | c2 +// 48: c11 | c3 +// 64: c12 | c4 +// 80: c13 | c5 +// 96: c14 | c6 +// 112: c15 | c7 +// 128: T_hi +// 136: T_lo +// 144: Sigma +// 152: T_hl +// 160: Tau +// 168: Mask +// 176: (end of block) +// +// The total table size is therefore 5632 bytes. +// +// Note that c0 and c1 are always zero. We could try storing +// other constants here, and just loading the low part of the +// SIMD register in these cases, after ensuring the high part +// is zero. +// +// The higher terms of the polynomial are computed in the *low* +// part of the SIMD register. This is so we can overlap the +// multiplication by r^8 and the unpacking of the other part. +// +// The constants are: +// T_hi + T_lo = accurate constant term in power series +// Sigma + T_hl = accurate coefficient of r in power series (Sigma=1 bit) +// Tau = multiplier for the reciprocal, always -1 or 0 +// +// The basic reconstruction formula using these constants is: +// +// High = tau * recip_hi + t_hi +// Med = (sgn * r + t_hl * r)_hi +// Low = (sgn * r + t_hl * r)_lo + +// tau * recip_lo + T_lo + (T_hl + sigma) * c + pol +// +// where pol = c0 + c1 * r + c2 * r^2 + ... + c15 * r^15 +// +// (c0 = c1 = 0, but using them keeps SIMD regularity) +// +// We then do a compensated sum High + Med, add the low parts together +// and then do the final sum. +// +// Here recip_hi + recip_lo is an accurate reciprocal of the remainder +// modulo pi/2 +// +// Special cases: +// tan(NaN) = quiet NaN, and raise invalid exception +// tan(INF) = NaN and raise invalid exception +// tan(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin tan +ENTRY(tan) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $120, %esp + movl %ebx, 56(%esp) + call static_func + movl %eax, %ebx + movsd 128(%esp), %xmm0 + pextrw $3, %xmm0, %eax + andl $32767, %eax + subl $14368, %eax + cmpl $2216, %eax + ja .L_2TAG_PACKET_0.0.2 + movapd 5840(%ebx), %xmm5 + movapd 5856(%ebx), %xmm6 + unpcklpd %xmm0, %xmm0 + movapd 5712(%ebx), %xmm4 + andpd %xmm0, %xmm4 + movapd 5632(%ebx), %xmm1 + mulpd %xmm0, %xmm1 + orpd %xmm4, %xmm5 + addpd %xmm5, %xmm1 + movapd %xmm1, %xmm7 + unpckhpd %xmm7, %xmm7 + cvttsd2si %xmm7, %edx + cvttpd2dq %xmm1, %xmm1 + cvtdq2pd %xmm1, %xmm1 + mulpd %xmm6, %xmm1 + movapd 5664(%ebx), %xmm3 + movsd 5728(%ebx), %xmm5 + addl $469248, %edx + movapd 5680(%ebx), %xmm4 + mulpd %xmm1, %xmm3 + andl $31, %edx + mulsd %xmm1, %xmm5 + movl %edx, %ecx + mulpd %xmm1, %xmm4 + shll $1, %ecx + subpd %xmm3, %xmm0 + mulpd 5696(%ebx), %xmm1 + addl %ecx, %edx + shll $2, %ecx + addl %ecx, %edx + addsd %xmm0, %xmm5 + movapd %xmm0, %xmm2 + subpd %xmm4, %xmm0 + movsd 5744(%ebx), %xmm6 + shll $4, %edx + lea (%ebx), %eax + andpd 5776(%ebx), %xmm5 + movapd %xmm0, %xmm3 + addl %edx, %eax + subpd %xmm0, %xmm2 + unpckhpd %xmm0, %xmm0 + divsd %xmm5, %xmm6 + subpd %xmm4, %xmm2 + movapd 16(%eax), %xmm7 + subsd %xmm5, %xmm3 + mulpd %xmm0, %xmm7 + subpd %xmm1, %xmm2 + movapd 48(%eax), %xmm1 + mulpd %xmm0, %xmm1 + movapd 96(%eax), %xmm4 + mulpd %xmm0, %xmm4 + addsd %xmm3, %xmm2 + movapd %xmm0, %xmm3 + mulpd %xmm0, %xmm0 + addpd (%eax), %xmm7 + addpd 32(%eax), %xmm1 + mulpd %xmm0, %xmm1 + addpd 80(%eax), %xmm4 + addpd %xmm1, %xmm7 + movapd 112(%eax), %xmm1 + mulpd %xmm0, %xmm1 + mulpd %xmm0, %xmm0 + addpd %xmm1, %xmm4 + movapd 64(%eax), %xmm1 + mulpd %xmm0, %xmm1 + addpd %xmm1, %xmm7 + movapd %xmm3, %xmm1 + mulpd %xmm0, %xmm3 + mulsd %xmm0, %xmm0 + mulpd 144(%eax), %xmm1 + mulpd %xmm3, %xmm4 + movapd %xmm1, %xmm3 + addpd %xmm4, %xmm7 + movapd %xmm1, %xmm4 + mulsd %xmm7, %xmm0 + unpckhpd %xmm7, %xmm7 + addsd %xmm7, %xmm0 + unpckhpd %xmm1, %xmm1 + addsd %xmm1, %xmm3 + subsd %xmm3, %xmm4 + addsd %xmm4, %xmm1 + movapd %xmm2, %xmm4 + movsd 144(%eax), %xmm7 + unpckhpd %xmm2, %xmm2 + addsd 152(%eax), %xmm7 + mulsd %xmm2, %xmm7 + addsd 136(%eax), %xmm7 + addsd %xmm1, %xmm7 + addsd %xmm7, %xmm0 + movsd 5744(%ebx), %xmm7 + mulsd %xmm6, %xmm4 + movsd 168(%eax), %xmm2 + andpd %xmm6, %xmm2 + mulsd %xmm2, %xmm5 + mulsd 160(%eax), %xmm6 + subsd %xmm5, %xmm7 + subsd 128(%eax), %xmm2 + subsd %xmm4, %xmm7 + mulsd %xmm6, %xmm7 + movapd %xmm3, %xmm4 + subsd %xmm2, %xmm3 + addsd %xmm3, %xmm2 + subsd %xmm2, %xmm4 + addsd %xmm4, %xmm0 + subsd %xmm7, %xmm0 + addsd %xmm3, %xmm0 + movsd %xmm0, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_0.0.2: + jg .L_2TAG_PACKET_2.0.2 + shrl $4, %eax + cmpl $268434558, %eax + jne .L_2TAG_PACKET_3.0.2 + movapd %xmm0, %xmm3 + mulsd 5808(%ebx), %xmm3 +.L_2TAG_PACKET_3.0.2: + movsd 5792(%ebx), %xmm3 + mulsd %xmm0, %xmm3 + addsd %xmm0, %xmm3 + mulsd 5808(%ebx), %xmm3 + movsd %xmm3, (%esp) + fldl (%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + movq 5712(%ebx), %xmm7 + andpd %xmm0, %xmm7 + xorpd %xmm0, %xmm7 + ucomisd 5760(%ebx), %xmm7 + je .L_2TAG_PACKET_4.0.2 + subl $32, %esp + movsd %xmm0, (%esp) + lea 40(%esp), %eax + movl %eax, 8(%esp) + movl $2, %eax + movl %eax, 12(%esp) + call __libm_tancot_huge + addl $32, %esp + fldl 8(%esp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_4.0.2: + movq %xmm0, (%esp) + fldl (%esp) + fsubl (%esp) +.L_2TAG_PACKET_1.0.2: + movl 56(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(tan) +# -- End tan + +# Start file scope ASM +ALIAS_SYMBOL(tanl, tan); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 0 + .long 0 + .long 0 + .long 2284589306 + .long 1066820852 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1441186365 + .long 1065494243 + .long 1431655765 + .long 1070945621 + .long 0 + .long 0 + .long 0 + .long 0 + .long 236289504 + .long 1064135997 + .long 286331153 + .long 1069617425 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1160476131 + .long 1062722102 + .long 463583772 + .long 1068212666 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1313038235 + .long 1066745731 + .long 0 + .long 0 + .long 1013878342 + .long 1067152618 + .long 0 + .long 0 + .long 3663426833 + .long 1065725283 + .long 3693284251 + .long 1069118808 + .long 650852232 + .long 1065882376 + .long 1996245381 + .long 1071000265 + .long 2008746170 + .long 1064664197 + .long 3055842593 + .long 1068578846 + .long 1495406348 + .long 1064652437 + .long 2269530157 + .long 1069711235 + .long 285563696 + .long 1063576465 + .long 1046897440 + .long 1067705865 + .long 233429731 + .long 1063453151 + .long 522045958 + .long 1068476590 + .long 2354785698 + .long 1069102779 + .long 1317599141 + .long 1012432133 + .long 0 + .long 1072693248 + .long 2828230105 + .long 1065606626 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1512545955 + .long 1068119047 + .long 0 + .long 0 + .long 1127048698 + .long 1067909459 + .long 0 + .long 0 + .long 2300200450 + .long 1067254767 + .long 3593250296 + .long 1070233561 + .long 3009365544 + .long 1066902117 + .long 1127373050 + .long 1071173457 + .long 3046103305 + .long 1066371299 + .long 24583402 + .long 1069723988 + .long 4082511758 + .long 1065914199 + .long 3223889699 + .long 1070020367 + .long 548927984 + .long 1065415756 + .long 558065897 + .long 1068949418 + .long 680073315 + .long 1064940726 + .long 388873200 + .long 1068944270 + .long 3763679576 + .long 1070167541 + .long 1497360404 + .long 1009710547 + .long 0 + .long 1072693248 + .long 64931152 + .long 1067729411 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2467582782 + .long 1069256389 + .long 0 + .long 0 + .long 162150096 + .long 1068946420 + .long 0 + .long 0 + .long 3702794237 + .long 1068579152 + .long 3631919291 + .long 1070936926 + .long 3456821413 + .long 1068217218 + .long 2031366438 + .long 1071495745 + .long 1596664020 + .long 1067799281 + .long 1509038701 + .long 1070601643 + .long 583171477 + .long 1067510148 + .long 3785344682 + .long 1070618476 + .long 2402036048 + .long 1067075736 + .long 3233018412 + .long 1069913186 + .long 411280568 + .long 1066710556 + .long 1065584192 + .long 1069747896 + .long 895247324 + .long 1070819848 + .long 500078909 + .long 3161288781 + .long 0 + .long 1072693248 + .long 729983843 + .long 1068994194 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1458794562 + .long 1070398550 + .long 0 + .long 0 + .long 2857777489 + .long 1070137637 + .long 0 + .long 0 + .long 1024359517 + .long 1069876531 + .long 2616040238 + .long 1071582937 + .long 1609024636 + .long 1069675088 + .long 2529240549 + .long 1071836633 + .long 1510128600 + .long 1069440113 + .long 2251697184 + .long 1071253687 + .long 1262761453 + .long 1069142850 + .long 1263091857 + .long 1071190461 + .long 3043383486 + .long 1068885191 + .long 2476932470 + .long 1070842002 + .long 3659995028 + .long 1068669200 + .long 855891755 + .long 1070696894 + .long 2583490354 + .long 1071284857 + .long 3062633575 + .long 1014008623 + .long 0 + .long 1072693248 + .long 2550940471 + .long 1069938201 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3422807297 + .long 1071640847 + .long 0 + .long 0 + .long 1151658053 + .long 1071494715 + .long 0 + .long 0 + .long 929607071 + .long 1071346340 + .long 1037049034 + .long 1072037305 + .long 2786928657 + .long 1071215282 + .long 1447406859 + .long 1072265209 + .long 3490952107 + .long 1071090851 + .long 3205232916 + .long 1071968658 + .long 1297344304 + .long 1070977120 + .long 1066110976 + .long 1071946035 + .long 3803721480 + .long 1070871082 + .long 1496754229 + .long 1071807201 + .long 2982550683 + .long 1070773243 + .long 4014441989 + .long 1071736222 + .long 419968236 + .long 1071717047 + .long 3451266538 + .long 3163444811 + .long 0 + .long 1072693248 + .long 2960267235 + .long 1070745841 + .long 0 + .long 0 + .long 0 + .long 0 + .long 724322768 + .long 1072881308 + .long 0 + .long 0 + .long 643153048 + .long 1072905816 + .long 0 + .long 0 + .long 4285079458 + .long 1072928558 + .long 3912524733 + .long 1072622983 + .long 118362272 + .long 1072952754 + .long 4107767972 + .long 1072827408 + .long 2689502883 + .long 1072976922 + .long 946523347 + .long 1072772766 + .long 573204189 + .long 1073001761 + .long 581531518 + .long 1072826391 + .long 1386236526 + .long 1073026959 + .long 3718905905 + .long 1072832823 + .long 1145558140 + .long 1073052673 + .long 513572637 + .long 1072861969 + .long 716700048 + .long 1071997368 + .long 547126769 + .long 1015523525 + .long 0 + .long 1072693248 + .long 1097907398 + .long 1071420120 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3349892442 + .long 1074290212 + .long 0 + .long 0 + .long 3913197405 + .long 1074501181 + .long 0 + .long 0 + .long 2494034522 + .long 1074739170 + .long 1264738763 + .long 1073084804 + .long 1520293906 + .long 1074899632 + .long 1958936600 + .long 1073411493 + .long 2133649635 + .long 1075052171 + .long 4270740730 + .long 1073574708 + .long 1728930189 + .long 1075224844 + .long 1303998552 + .long 1073799186 + .long 618611933 + .long 1075420255 + .long 1769828046 + .long 1073938542 + .long 2200537986 + .long 1075641421 + .long 433361110 + .long 1074105369 + .long 719595600 + .long 1072317184 + .long 294527206 + .long 3162140088 + .long 0 + .long 1073741824 + .long 3811788216 + .long 3218400550 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1704352102 + .long 1075943001 + .long 0 + .long 0 + .long 2284589306 + .long 1076258036 + .long 0 + .long 0 + .long 2211264291 + .long 1076659010 + .long 0 + .long 1073741824 + .long 1441186365 + .long 1077028579 + .long 1431655765 + .long 1074091349 + .long 876943673 + .long 1077353622 + .long 2863311531 + .long 1074440874 + .long 236289504 + .long 1077767485 + .long 286331153 + .long 1074860305 + .long 2805473311 + .long 1078115278 + .long 95443718 + .long 1075163227 + .long 1160476131 + .long 1078450742 + .long 463583772 + .long 1075552698 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 1073741824 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1330165971 + .long 3207850745 + .long 0 + .long 0 + .long 217536623 + .long 1059109098 + .long 0 + .long 0 + .long 3492120849 + .long 3205151475 + .long 602185705 + .long 3215678092 + .long 760422958 + .long 1056312597 + .long 555127889 + .long 1067545266 + .long 3139784124 + .long 3202470837 + .long 3690544014 + .long 3213150171 + .long 95707915 + .long 1053635428 + .long 4003114407 + .long 1064581412 + .long 2034926231 + .long 3199711161 + .long 3759536023 + .long 3210559989 + .long 3826928214 + .long 1050893819 + .long 3837960785 + .long 1061790379 + .long 1526325248 + .long 3217967566 + .long 2356426521 + .long 1025423456 + .long 0 + .long 0 + .long 457728975 + .long 1071088276 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1398462608 + .long 3207303968 + .long 0 + .long 0 + .long 26205983 + .long 1058461213 + .long 0 + .long 0 + .long 56226238 + .long 3204528612 + .long 2754706541 + .long 3215359511 + .long 2187799823 + .long 1055634437 + .long 790323742 + .long 1067402587 + .long 1372385848 + .long 3201651479 + .long 4097292716 + .long 3212856302 + .long 3348210357 + .long 1052830099 + .long 2442796466 + .long 1064337602 + .long 862608142 + .long 3198830754 + .long 170296152 + .long 3210060867 + .long 3755571428 + .long 1049933343 + .long 3614866008 + .long 1061361670 + .long 719978496 + .long 3217669096 + .long 1998842465 + .long 3174703977 + .long 0 + .long 0 + .long 3749156607 + .long 1071048258 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 3120498638 + .long 3206749304 + .long 0 + .long 0 + .long 2773578114 + .long 1058009312 + .long 0 + .long 0 + .long 2030783676 + .long 3203817873 + .long 2223654598 + .long 3215071936 + .long 2976134650 + .long 1054987244 + .long 706390066 + .long 1067217386 + .long 4258437615 + .long 3200900378 + .long 1066252975 + .long 3212391267 + .long 815777514 + .long 1051989462 + .long 3202745457 + .long 1064010682 + .long 2493556375 + .long 3198004753 + .long 1046243251 + .long 3209678971 + .long 2593078846 + .long 1049017717 + .long 2763962276 + .long 1060970161 + .long 701480960 + .long 3217377742 + .long 3205862232 + .long 3174660915 + .long 0 + .long 0 + .long 2267016812 + .long 1071015664 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 2107155798 + .long 3206166872 + .long 0 + .long 0 + .long 2642992129 + .long 1057424578 + .long 0 + .long 0 + .long 1936992811 + .long 3203204426 + .long 1485063559 + .long 3214682643 + .long 1432914553 + .long 1054319398 + .long 3996381654 + .long 1067075828 + .long 2833029256 + .long 3200223545 + .long 2866066872 + .long 3211982662 + .long 2432888737 + .long 1051234178 + .long 3669764559 + .long 1063748136 + .long 2458496952 + .long 3197170774 + .long 1948234989 + .long 3209098147 + .long 2843698787 + .long 1048163519 + .long 3398041407 + .long 1060559728 + .long 2829230080 + .long 3217092115 + .long 1034046433 + .long 3174271903 + .long 0 + .long 0 + .long 298675305 + .long 1070989821 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 437603223 + .long 3205589761 + .long 0 + .long 0 + .long 759330352 + .long 1057048511 + .long 0 + .long 0 + .long 3107463368 + .long 3202507988 + .long 3144465176 + .long 3214191500 + .long 2290961810 + .long 1053841035 + .long 1618153340 + .long 1066971547 + .long 3836869393 + .long 3199400272 + .long 584032116 + .long 3211469261 + .long 1245704358 + .long 1050626462 + .long 4247487438 + .long 1063561943 + .long 1669034927 + .long 3196274812 + .long 3844233498 + .long 3208626322 + .long 2706958524 + .long 1047411374 + .long 3857199098 + .long 1060281647 + .long 3593904128 + .long 3216590719 + .long 3267547836 + .long 3172163321 + .long 0 + .long 0 + .long 4076712227 + .long 1070970214 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 3290090340 + .long 3204793485 + .long 0 + .long 0 + .long 3685760367 + .long 1056668370 + .long 0 + .long 0 + .long 2655163949 + .long 3201674917 + .long 628750575 + .long 3213566872 + .long 680140505 + .long 1053299777 + .long 2954464709 + .long 1066900026 + .long 803201619 + .long 3198516435 + .long 1466315631 + .long 3210837162 + .long 1611220163 + .long 1049972438 + .long 2766187256 + .long 1063437894 + .long 1804579484 + .long 3195331491 + .long 3695969289 + .long 3207854418 + .long 2617238373 + .long 1046675948 + .long 3095830084 + .long 1060095334 + .long 3789570048 + .long 3216034914 + .long 23826559 + .long 3172048060 + .long 0 + .long 0 + .long 3870939386 + .long 1070956467 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1571758758 + .long 3203672535 + .long 0 + .long 0 + .long 113026373 + .long 1056416381 + .long 0 + .long 0 + .long 1913766298 + .long 3200523326 + .long 2507068734 + .long 3212502004 + .long 4000648818 + .long 1053003803 + .long 2446607349 + .long 1066858259 + .long 912662124 + .long 3197333001 + .long 1349489537 + .long 3209765608 + .long 3412972607 + .long 1049641401 + .long 1721283327 + .long 1063366855 + .long 1466691883 + .long 3194116746 + .long 3852528092 + .long 3206760861 + .long 285443293 + .long 1046158380 + .long 1758739894 + .long 1059895449 + .long 1858781184 + .long 3214984212 + .long 3447575948 + .long 1024675855 + .long 0 + .long 0 + .long 2242038011 + .long 1070948320 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 0 + .long 0 + .long 0 + .long 0 + .long 737611454 + .long 1056336527 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3594790527 + .long 1052911621 + .long 381774871 + .long 1066844524 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3303051618 + .long 1049456050 + .long 3154187623 + .long 1063343722 + .long 0 + .long 0 + .long 0 + .long 0 + .long 528061788 + .long 1045944910 + .long 2469719819 + .long 1059831159 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1431655765 + .long 1070945621 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1571758758 + .long 1056188887 + .long 0 + .long 0 + .long 113026373 + .long 1056416381 + .long 0 + .long 0 + .long 1913766298 + .long 1053039678 + .long 2507068734 + .long 1065018356 + .long 4000648818 + .long 1053003803 + .long 2446607349 + .long 1066858259 + .long 912662124 + .long 1049849353 + .long 1349489537 + .long 1062281960 + .long 3412972607 + .long 1049641401 + .long 1721283327 + .long 1063366855 + .long 1466691883 + .long 1046633098 + .long 3852528092 + .long 1059277213 + .long 285443293 + .long 1046158380 + .long 1758739894 + .long 1059895449 + .long 1858781184 + .long 1067500564 + .long 3447575948 + .long 3172159503 + .long 0 + .long 0 + .long 2242038011 + .long 1070948320 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 3290090340 + .long 1057309837 + .long 0 + .long 0 + .long 3685760367 + .long 1056668370 + .long 0 + .long 0 + .long 2655163949 + .long 1054191269 + .long 628750575 + .long 1066083224 + .long 680140505 + .long 1053299777 + .long 2954464709 + .long 1066900026 + .long 803201619 + .long 1051032787 + .long 1466315631 + .long 1063353514 + .long 1611220163 + .long 1049972438 + .long 2766187256 + .long 1063437894 + .long 1804579484 + .long 1047847843 + .long 3695969289 + .long 1060370770 + .long 2617238373 + .long 1046675948 + .long 3095830084 + .long 1060095334 + .long 3789570048 + .long 1068551266 + .long 23826559 + .long 1024564412 + .long 0 + .long 0 + .long 3870939386 + .long 1070956467 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 437603223 + .long 1058106113 + .long 0 + .long 0 + .long 759330352 + .long 1057048511 + .long 0 + .long 0 + .long 3107463368 + .long 1055024340 + .long 3144465176 + .long 1066707852 + .long 2290961810 + .long 1053841035 + .long 1618153340 + .long 1066971547 + .long 3836869393 + .long 1051916624 + .long 584032116 + .long 1063985613 + .long 1245704358 + .long 1050626462 + .long 4247487438 + .long 1063561943 + .long 1669034927 + .long 1048791164 + .long 3844233498 + .long 1061142674 + .long 2706958524 + .long 1047411374 + .long 3857199098 + .long 1060281647 + .long 3593904128 + .long 1069107071 + .long 3267547836 + .long 1024679673 + .long 0 + .long 0 + .long 4076712227 + .long 1070970214 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 2107155798 + .long 1058683224 + .long 0 + .long 0 + .long 2642992129 + .long 1057424578 + .long 0 + .long 0 + .long 1936992811 + .long 1055720778 + .long 1485063559 + .long 1067198995 + .long 1432914553 + .long 1054319398 + .long 3996381654 + .long 1067075828 + .long 2833029256 + .long 1052739897 + .long 2866066872 + .long 1064499014 + .long 2432888737 + .long 1051234178 + .long 3669764559 + .long 1063748136 + .long 2458496952 + .long 1049687126 + .long 1948234989 + .long 1061614499 + .long 2843698787 + .long 1048163519 + .long 3398041407 + .long 1060559728 + .long 2829230080 + .long 1069608467 + .long 1034046433 + .long 1026788255 + .long 0 + .long 0 + .long 298675305 + .long 1070989821 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 3120498638 + .long 1059265656 + .long 0 + .long 0 + .long 2773578114 + .long 1058009312 + .long 0 + .long 0 + .long 2030783676 + .long 1056334225 + .long 2223654598 + .long 1067588288 + .long 2976134650 + .long 1054987244 + .long 706390066 + .long 1067217386 + .long 4258437615 + .long 1053416730 + .long 1066252975 + .long 1064907619 + .long 815777514 + .long 1051989462 + .long 3202745457 + .long 1064010682 + .long 2493556375 + .long 1050521105 + .long 1046243251 + .long 1062195323 + .long 2593078846 + .long 1049017717 + .long 2763962276 + .long 1060970161 + .long 701480960 + .long 1069894094 + .long 3205862232 + .long 1027177267 + .long 0 + .long 0 + .long 2267016812 + .long 1071015664 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1398462608 + .long 1059820320 + .long 0 + .long 0 + .long 26205983 + .long 1058461213 + .long 0 + .long 0 + .long 56226238 + .long 1057044964 + .long 2754706541 + .long 1067875863 + .long 2187799823 + .long 1055634437 + .long 790323742 + .long 1067402587 + .long 1372385848 + .long 1054167831 + .long 4097292716 + .long 1065372654 + .long 3348210357 + .long 1052830099 + .long 2442796466 + .long 1064337602 + .long 862608142 + .long 1051347106 + .long 170296152 + .long 1062577219 + .long 3755571428 + .long 1049933343 + .long 3614866008 + .long 1061361670 + .long 719978496 + .long 1070185448 + .long 1998842465 + .long 1027220329 + .long 0 + .long 0 + .long 3749156607 + .long 1071048258 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1330165971 + .long 1060367097 + .long 0 + .long 0 + .long 217536623 + .long 1059109098 + .long 0 + .long 0 + .long 3492120849 + .long 1057667827 + .long 602185705 + .long 1068194444 + .long 760422958 + .long 1056312597 + .long 555127889 + .long 1067545266 + .long 3139784124 + .long 1054987189 + .long 3690544014 + .long 1065666523 + .long 95707915 + .long 1053635428 + .long 4003114407 + .long 1064581412 + .long 2034926231 + .long 1052227513 + .long 3759536023 + .long 1063076341 + .long 3826928214 + .long 1050893819 + .long 3837960785 + .long 1061790379 + .long 1526325248 + .long 1070483918 + .long 2356426521 + .long 3172907104 + .long 0 + .long 0 + .long 457728975 + .long 1071088276 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1704352102 + .long 3223426649 + .long 0 + .long 0 + .long 2284589306 + .long 1076258036 + .long 0 + .long 0 + .long 2211264291 + .long 3224142658 + .long 0 + .long 3221225472 + .long 1441186365 + .long 1077028579 + .long 1431655765 + .long 1074091349 + .long 876943673 + .long 3224837270 + .long 2863311531 + .long 3221924522 + .long 236289504 + .long 1077767485 + .long 286331153 + .long 1074860305 + .long 2805473311 + .long 3225598926 + .long 95443718 + .long 3222646875 + .long 1160476131 + .long 1078450742 + .long 463583772 + .long 1075552698 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 1073741824 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3349892442 + .long 3221773860 + .long 0 + .long 0 + .long 3913197405 + .long 1074501181 + .long 0 + .long 0 + .long 2494034522 + .long 3222222818 + .long 1264738763 + .long 3220568452 + .long 1520293906 + .long 1074899632 + .long 1958936600 + .long 1073411493 + .long 2133649635 + .long 3222535819 + .long 4270740730 + .long 3221058356 + .long 1728930189 + .long 1075224844 + .long 1303998552 + .long 1073799186 + .long 618611933 + .long 3222903903 + .long 1769828046 + .long 3221422190 + .long 2200537986 + .long 1075641421 + .long 433361110 + .long 1074105369 + .long 719595600 + .long 3219800832 + .long 294527206 + .long 1014656440 + .long 0 + .long 1073741824 + .long 3811788216 + .long 3218400550 + .long 0 + .long 0 + .long 0 + .long 0 + .long 724322768 + .long 3220364956 + .long 0 + .long 0 + .long 643153048 + .long 1072905816 + .long 0 + .long 0 + .long 4285079458 + .long 3220412206 + .long 3912524733 + .long 3220106631 + .long 118362272 + .long 1072952754 + .long 4107767972 + .long 1072827408 + .long 2689502883 + .long 3220460570 + .long 946523347 + .long 3220256414 + .long 573204189 + .long 1073001761 + .long 581531518 + .long 1072826391 + .long 1386236526 + .long 3220510607 + .long 3718905905 + .long 3220316471 + .long 1145558140 + .long 1073052673 + .long 513572637 + .long 1072861969 + .long 716700048 + .long 3219481016 + .long 547126769 + .long 3163007173 + .long 0 + .long 1072693248 + .long 1097907398 + .long 1071420120 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3422807297 + .long 3219124495 + .long 0 + .long 0 + .long 1151658053 + .long 1071494715 + .long 0 + .long 0 + .long 929607071 + .long 3218829988 + .long 1037049034 + .long 3219520953 + .long 2786928657 + .long 1071215282 + .long 1447406859 + .long 1072265209 + .long 3490952107 + .long 3218574499 + .long 3205232916 + .long 3219452306 + .long 1297344304 + .long 1070977120 + .long 1066110976 + .long 1071946035 + .long 3803721480 + .long 3218354730 + .long 1496754229 + .long 3219290849 + .long 2982550683 + .long 1070773243 + .long 4014441989 + .long 1071736222 + .long 419968236 + .long 3219200695 + .long 3451266538 + .long 1015961163 + .long 0 + .long 1072693248 + .long 2960267235 + .long 1070745841 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1458794562 + .long 3217882198 + .long 0 + .long 0 + .long 2857777489 + .long 1070137637 + .long 0 + .long 0 + .long 1024359517 + .long 3217360179 + .long 2616040238 + .long 3219066585 + .long 1609024636 + .long 1069675088 + .long 2529240549 + .long 1071836633 + .long 1510128600 + .long 3216923761 + .long 2251697184 + .long 3218737335 + .long 1262761453 + .long 1069142850 + .long 1263091857 + .long 1071190461 + .long 3043383486 + .long 3216368839 + .long 2476932470 + .long 3218325650 + .long 3659995028 + .long 1068669200 + .long 855891755 + .long 1070696894 + .long 2583490354 + .long 3218768505 + .long 3062633575 + .long 3161492271 + .long 0 + .long 1072693248 + .long 2550940471 + .long 1069938201 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2467582782 + .long 3216740037 + .long 0 + .long 0 + .long 162150096 + .long 1068946420 + .long 0 + .long 0 + .long 3702794237 + .long 3216062800 + .long 3631919291 + .long 3218420574 + .long 3456821413 + .long 1068217218 + .long 2031366438 + .long 1071495745 + .long 1596664020 + .long 3215282929 + .long 1509038701 + .long 3218085291 + .long 583171477 + .long 1067510148 + .long 3785344682 + .long 1070618476 + .long 2402036048 + .long 3214559384 + .long 3233018412 + .long 3217396834 + .long 411280568 + .long 1066710556 + .long 1065584192 + .long 1069747896 + .long 895247324 + .long 3218303496 + .long 500078909 + .long 1013805133 + .long 0 + .long 1072693248 + .long 729983843 + .long 1068994194 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1512545955 + .long 3215602695 + .long 0 + .long 0 + .long 1127048698 + .long 1067909459 + .long 0 + .long 0 + .long 2300200450 + .long 3214738415 + .long 3593250296 + .long 3217717209 + .long 3009365544 + .long 1066902117 + .long 1127373050 + .long 1071173457 + .long 3046103305 + .long 3213854947 + .long 24583402 + .long 3217207636 + .long 4082511758 + .long 1065914199 + .long 3223889699 + .long 1070020367 + .long 548927984 + .long 3212899404 + .long 558065897 + .long 3216433066 + .long 680073315 + .long 1064940726 + .long 388873200 + .long 1068944270 + .long 3763679576 + .long 3217651189 + .long 1497360404 + .long 3157194195 + .long 0 + .long 1072693248 + .long 64931152 + .long 1067729411 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1313038235 + .long 3214229379 + .long 0 + .long 0 + .long 1013878342 + .long 1067152618 + .long 0 + .long 0 + .long 3663426833 + .long 3213208931 + .long 3693284251 + .long 3216602456 + .long 650852232 + .long 1065882376 + .long 1996245381 + .long 1071000265 + .long 2008746170 + .long 3212147845 + .long 3055842593 + .long 3216062494 + .long 1495406348 + .long 1064652437 + .long 2269530157 + .long 1069711235 + .long 285563696 + .long 3211060113 + .long 1046897440 + .long 3215189513 + .long 233429731 + .long 1063453151 + .long 522045958 + .long 1068476590 + .long 2354785698 + .long 3216586427 + .long 1317599141 + .long 3159915781 + .long 0 + .long 1072693248 + .long 2828230105 + .long 1065606626 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1841940611 + .long 1071931184 + .long 1841940611 + .long 1076125488 + .long 0 + .long 1131937792 + .long 0 + .long 1127743488 + .long 1413758976 + .long 1069097467 + .long 1413742592 + .long 1069097467 + .long 1734819840 + .long 3174229945 + .long 1280049152 + .long 1028033571 + .long 923219018 + .long 984130272 + .long 57701189 + .long 988383790 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 1734816687 + .long 1026746297 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 2146435072 + .long 0 + .long 0 + .long 4294705152 + .long 4294967295 + .long 0 + .long 0 + .long 0 + .long 1130364928 + .long 0 + .long 0 + .long 0 + .long 1015021568 + .long 0 + .long 0 + .long 0 + .long 1017118720 + .long 0 + .long 0 + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .long 0 + .long 1076887552 + .long 0 + .long 1072693248 + .type static_const_table,@object + .size static_const_table,5872 + .data + .hidden __libm_tancot_huge + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/s_tanh.S b/libm/x86/s_tanh.S new file mode 100644 index 000000000..737bcbbd9 --- /dev/null +++ b/libm/x86/s_tanh.S @@ -0,0 +1,1361 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// tanh(x)=(exp(x)-exp(-x))/(exp(x)+exp(-x))=(1-exp(-2*x))/(1+exp(-2*x)) +// +// Let |x|=xH+xL (upper 26 bits, lower 27 bits) +// log2(e) rounded to 26 bits (high part) plus a double precision low part is +// L2EH+L2EL (upper 26, lower 53 bits) +// +// Let xH*L2EH=k+f+r`, where (k+f)*2^8*2=int(xH*L2EH*2^9), +// f=0.b1 b2 ... b8, k integer +// 2^{-f} is approximated as Tn[f]+Dn[f] +// Tn stores the high 53 bits, Dn stores (2^{-f}-Tn[f]) rounded to double precision +// +// r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-9}+2^{-14}, +// for |x| in [23/64,3*2^7) +// e^{-2*|x|}=2^{-k-f}*2^{-r} ~ 2^{-k}*(Tn+Dn)*(1+p)=(T0+D0)*(1+p) +// +// For |x| in [2^{-4},2^5): +// 2^{-r}-1 ~ p=c1*r+c2*r^2+..+c5*r^5 +// Let R=1/(1+T0+p*T0), truncated to 35 significant bits +// R=1/(1+T0+D0+p*(T0+D0))*(1+eps), |eps|<2^{-33} +// 1+T0+D0+p*(T0+D0)=KH+KL, where +// KH=(1+T0+c1*r*T0)_high (leading 17 bits) +// KL=T0_low+D0+(c1*r*T0)_low+c1*r*D0+(c2*r^2+..c5*r^5)*T0 +// eps ~ (R*KH-1)+R*KL +// 1/(1+T0+D0+p*(T0+D0)) ~ R-R*eps +// The result is approximated as (1-T0-D0-(T0+D0)*p)*(R-R*eps) +// 1-T0-D0-(T0+D0)*p=-((KH-2)+KL) +// The result is formed as +// (KH-2)*R+(-(KH-2)*R*eps+(KL*R-KL*R*eps)), with the correct sign +// set at the end +// +// For |x| in [2^{-64},2^{-4}): +// A Taylor series expansion is used (x+p3*x^3+..+p13*x^{13}) +// +// For |x|<2^{-64}: x is returned +// +// For |x|>=2^32: return +/-1 +// +// Special cases: +// tanh(NaN) = quiet NaN, and raise invalid exception +// tanh(INF) = that INF +// tanh(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin static_func + .text + .align __bionic_asm_align + .type static_func, @function +static_func: +..B1.1: + call ..L2 +..L2: + popl %eax + lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax + lea static_const_table@GOTOFF(%eax), %eax + ret + .size static_func,.-static_func +# -- End static_func + +# -- Begin tanh +ENTRY(tanh) +# parameter 1: 8 + %ebp +..B2.1: +..B2.2: + pushl %ebp + movl %esp, %ebp + subl $104, %esp + movl %ebx, 40(%esp) + call static_func + movl %eax, %ebx + movsd 112(%esp), %xmm0 + movsd 4256(%ebx), %xmm3 + xorpd %xmm4, %xmm4 + movsd 4112(%ebx), %xmm1 + movsd 4120(%ebx), %xmm2 + movl $32768, %eax + pinsrw $3, %eax, %xmm4 + movsd 4096(%ebx), %xmm6 + pextrw $3, %xmm0, %ecx + andpd %xmm0, %xmm3 + andnpd %xmm0, %xmm4 + pshufd $68, %xmm4, %xmm5 + movl $32768, %edx + andl %ecx, %edx + andl $32767, %ecx + subl $16304, %ecx + cmpl $144, %ecx + jae .L_2TAG_PACKET_0.0.2 + subsd %xmm3, %xmm4 + mulsd %xmm1, %xmm3 + mulsd %xmm5, %xmm2 + cvtsd2si %xmm3, %eax + movapd %xmm3, %xmm7 + addsd %xmm6, %xmm3 + mulsd %xmm4, %xmm1 + movsd 4264(%ebx), %xmm4 + subsd %xmm6, %xmm3 + xorpd %xmm0, %xmm0 + addsd %xmm1, %xmm2 + subsd %xmm3, %xmm7 + movapd 4128(%ebx), %xmm6 + addsd %xmm7, %xmm2 + movl $255, %ecx + andl %eax, %ecx + addl %ecx, %ecx + movapd (%ebx,%ecx,8), %xmm5 + shrl $4, %eax + andl $65520, %eax + subl $16368, %eax + negl %eax + pinsrw $3, %eax, %xmm0 + movapd 4144(%ebx), %xmm1 + pshufd $68, %xmm0, %xmm0 + mulpd %xmm5, %xmm0 + movsd 4160(%ebx), %xmm7 + pshufd $68, %xmm2, %xmm2 + movapd %xmm4, %xmm5 + addsd %xmm0, %xmm4 + mulpd %xmm2, %xmm6 + mulsd %xmm2, %xmm7 + mulpd %xmm2, %xmm2 + addpd %xmm6, %xmm1 + mulsd %xmm2, %xmm2 + movsd 4264(%ebx), %xmm3 + mulpd %xmm2, %xmm1 + pshufd $78, %xmm1, %xmm6 + addsd %xmm6, %xmm1 + movapd %xmm1, %xmm6 + addsd %xmm7, %xmm1 + mulsd %xmm0, %xmm1 + addsd %xmm4, %xmm1 + andpd 4224(%ebx), %xmm4 + divsd %xmm1, %xmm5 + subsd %xmm4, %xmm3 + pshufd $238, %xmm0, %xmm1 + addsd %xmm0, %xmm3 + movapd %xmm4, %xmm2 + addsd %xmm1, %xmm3 + mulsd %xmm7, %xmm1 + mulsd %xmm0, %xmm7 + addsd %xmm1, %xmm3 + addsd %xmm7, %xmm4 + movsd 4240(%ebx), %xmm1 + mulsd %xmm0, %xmm6 + andpd 4224(%ebx), %xmm4 + addsd %xmm6, %xmm3 + movapd %xmm4, %xmm6 + subsd %xmm4, %xmm2 + addsd %xmm7, %xmm2 + movsd 4264(%ebx), %xmm7 + andpd %xmm1, %xmm5 + addsd %xmm2, %xmm3 + mulsd %xmm5, %xmm4 + xorpd %xmm2, %xmm2 + mulsd %xmm5, %xmm3 + subsd 4272(%ebx), %xmm6 + subsd %xmm7, %xmm4 + xorl $32768, %edx + pinsrw $3, %edx, %xmm2 + addsd %xmm3, %xmm4 + mulsd %xmm5, %xmm6 + movapd %xmm3, %xmm1 + mulsd %xmm4, %xmm3 + movapd %xmm6, %xmm0 + mulsd %xmm4, %xmm6 + subsd %xmm3, %xmm1 + subsd %xmm6, %xmm1 + addsd %xmm1, %xmm0 + xorpd %xmm2, %xmm0 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_0.0.2: + addl $960, %ecx + cmpl $1104, %ecx + jae .L_2TAG_PACKET_2.0.2 + movapd 4176(%ebx), %xmm2 + pshufd $68, %xmm0, %xmm1 + movapd 4192(%ebx), %xmm3 + mulpd %xmm1, %xmm1 + movapd 4208(%ebx), %xmm4 + mulpd %xmm1, %xmm2 + pshufd $68, %xmm1, %xmm5 + addpd %xmm3, %xmm2 + mulsd %xmm5, %xmm5 + mulpd %xmm1, %xmm2 + mulsd %xmm5, %xmm5 + addpd %xmm4, %xmm2 + mulpd %xmm5, %xmm2 + pshufd $238, %xmm2, %xmm5 + addsd %xmm5, %xmm2 + mulsd %xmm0, %xmm2 + addsd %xmm2, %xmm0 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + addl $15344, %ecx + cmpl $16448, %ecx + jae .L_2TAG_PACKET_3.0.2 + cmpl $16, %ecx + jb .L_2TAG_PACKET_4.0.2 + xorpd %xmm2, %xmm2 + movl $17392, %eax + pinsrw $3, %eax, %xmm2 + mulsd %xmm0, %xmm2 + addsd %xmm0, %xmm2 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_4.0.2: + movapd %xmm0, %xmm2 + mulsd %xmm2, %xmm2 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_3.0.2: + cmpl $32752, %ecx + jae .L_2TAG_PACKET_5.0.2 + xorpd %xmm2, %xmm2 + movl $15344, %ecx + pinsrw $3, %ecx, %xmm2 + movapd %xmm2, %xmm3 + mulsd %xmm2, %xmm2 + addsd %xmm3, %xmm2 +.L_2TAG_PACKET_6.0.2: + xorpd %xmm0, %xmm0 + orl $16368, %edx + pinsrw $3, %edx, %xmm0 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_5.0.2: + movapd %xmm0, %xmm2 + movd %xmm0, %eax + psrlq $20, %xmm2 + movd %xmm2, %ecx + orl %eax, %ecx + cmpl $0, %ecx + je .L_2TAG_PACKET_6.0.2 + addsd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_1.0.2: + movsd %xmm0, 24(%esp) + fldl 24(%esp) +.L_2TAG_PACKET_7.0.2: + movl 40(%esp), %ebx + movl %ebp, %esp + popl %ebp + ret +..B2.3: +END(tanh) +# -- End tanh + +# Start file scope ASM +ALIAS_SYMBOL(tanhl, tanh); +# End file scope ASM + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 1797923801 + .long 1072687577 + .long 1950547427 + .long 1013229059 + .long 730821105 + .long 1072681922 + .long 2523232743 + .long 1012067188 + .long 915592468 + .long 1072676282 + .long 352947894 + .long 3161024371 + .long 2174652632 + .long 1072670657 + .long 4087714590 + .long 1014450259 + .long 35929225 + .long 1072665048 + .long 2809788041 + .long 3159436968 + .long 2912730644 + .long 1072659453 + .long 3490067722 + .long 3163405074 + .long 2038973688 + .long 1072653874 + .long 892941374 + .long 1016046459 + .long 1533953344 + .long 1072648310 + .long 769171851 + .long 1015665633 + .long 1222472308 + .long 1072642761 + .long 1054357470 + .long 3161021018 + .long 929806999 + .long 1072637227 + .long 3205336643 + .long 1015259557 + .long 481706282 + .long 1072631708 + .long 1696079173 + .long 3162710528 + .long 3999357479 + .long 1072626203 + .long 2258941616 + .long 1015924724 + .long 2719515920 + .long 1072620714 + .long 2760332941 + .long 1015137933 + .long 764307441 + .long 1072615240 + .long 3021057420 + .long 3163329523 + .long 2256325230 + .long 1072609780 + .long 580117746 + .long 1015317295 + .long 2728693978 + .long 1072604335 + .long 396109971 + .long 3163462691 + .long 2009970496 + .long 1072598905 + .long 2159039665 + .long 3162572948 + .long 4224142467 + .long 1072593489 + .long 3389820386 + .long 1015207202 + .long 610758006 + .long 1072588089 + .long 1965209397 + .long 3161866232 + .long 3884662774 + .long 1072582702 + .long 2158611599 + .long 1014210185 + .long 991358482 + .long 1072577331 + .long 838715019 + .long 3163157668 + .long 351641897 + .long 1072571974 + .long 2172261526 + .long 3163010599 + .long 1796832535 + .long 1072566631 + .long 3176955716 + .long 3160585513 + .long 863738719 + .long 1072561303 + .long 1326992220 + .long 3162613197 + .long 1679558232 + .long 1072555989 + .long 2390342287 + .long 3163333970 + .long 4076975200 + .long 1072550689 + .long 2029000899 + .long 1015208535 + .long 3594158869 + .long 1072545404 + .long 2456521700 + .long 3163256561 + .long 64696965 + .long 1072540134 + .long 1768797490 + .long 1015816960 + .long 1912561781 + .long 1072534877 + .long 3147495102 + .long 1015678253 + .long 382305176 + .long 1072529635 + .long 2347622376 + .long 3162578625 + .long 3898795731 + .long 1072524406 + .long 1249994144 + .long 1011869818 + .long 3707479175 + .long 1072519192 + .long 3613079303 + .long 1014164738 + .long 3939148246 + .long 1072513992 + .long 3210352148 + .long 1015274323 + .long 135105010 + .long 1072508807 + .long 1906148728 + .long 3163375739 + .long 721996136 + .long 1072503635 + .long 563754734 + .long 1015371318 + .long 1242007932 + .long 1072498477 + .long 1132034716 + .long 3163339831 + .long 1532734324 + .long 1072493333 + .long 3094216535 + .long 3163162857 + .long 1432208378 + .long 1072488203 + .long 1401068914 + .long 3162363963 + .long 778901109 + .long 1072483087 + .long 2248183955 + .long 3161268751 + .long 3706687593 + .long 1072477984 + .long 3521726940 + .long 1013253067 + .long 1464976603 + .long 1072472896 + .long 3507292405 + .long 3161977534 + .long 2483480501 + .long 1072467821 + .long 1216371780 + .long 1013034172 + .long 2307442995 + .long 1072462760 + .long 3190117721 + .long 3162404539 + .long 777507147 + .long 1072457713 + .long 4282924205 + .long 1015187533 + .long 2029714210 + .long 1072452679 + .long 613660079 + .long 1015099143 + .long 1610600570 + .long 1072447659 + .long 3766732298 + .long 1015760183 + .long 3657065772 + .long 1072442652 + .long 399025623 + .long 3162957078 + .long 3716502172 + .long 1072437659 + .long 2303740125 + .long 1014042725 + .long 1631695677 + .long 1072432680 + .long 2717633076 + .long 3162344026 + .long 1540824585 + .long 1072427714 + .long 1064017011 + .long 3163487690 + .long 3287523847 + .long 1072422761 + .long 1625971539 + .long 3157009955 + .long 2420883922 + .long 1072417822 + .long 2049810052 + .long 1014119888 + .long 3080351519 + .long 1072412896 + .long 3379126788 + .long 3157218001 + .long 815859274 + .long 1072407984 + .long 240396590 + .long 3163487443 + .long 4062661092 + .long 1072403084 + .long 1422616006 + .long 3163255318 + .long 4076559943 + .long 1072398198 + .long 2119478331 + .long 3160758351 + .long 703710506 + .long 1072393326 + .long 1384660846 + .long 1015195891 + .long 2380618042 + .long 1072388466 + .long 3149557219 + .long 3163320799 + .long 364333489 + .long 1072383620 + .long 3923737744 + .long 3161421373 + .long 3092190715 + .long 1072378786 + .long 814012168 + .long 3159523422 + .long 1822067026 + .long 1072373966 + .long 1241994956 + .long 1015340290 + .long 697153126 + .long 1072369159 + .long 1283515429 + .long 3163283189 + .long 3861050111 + .long 1072364364 + .long 254893773 + .long 3162813180 + .long 2572866477 + .long 1072359583 + .long 878562433 + .long 1015521741 + .long 977020788 + .long 1072354815 + .long 3065100517 + .long 1015541563 + .long 3218338682 + .long 1072350059 + .long 3404164304 + .long 3162477108 + .long 557149882 + .long 1072345317 + .long 3672720709 + .long 1014537265 + .long 1434058175 + .long 1072340587 + .long 251133233 + .long 1015085769 + .long 1405169241 + .long 1072335870 + .long 2998539689 + .long 3162830951 + .long 321958744 + .long 1072331166 + .long 3401933767 + .long 1015794558 + .long 2331271250 + .long 1072326474 + .long 812057446 + .long 1012207446 + .long 2990417245 + .long 1072321795 + .long 3683467745 + .long 3163369326 + .long 2152073944 + .long 1072317129 + .long 1486860576 + .long 3163203456 + .long 3964284211 + .long 1072312475 + .long 2111583915 + .long 1015427164 + .long 3985553595 + .long 1072307834 + .long 4002146062 + .long 1015834136 + .long 2069751141 + .long 1072303206 + .long 1562170675 + .long 3162724681 + .long 2366108318 + .long 1072298590 + .long 2867985102 + .long 3161762254 + .long 434316067 + .long 1072293987 + .long 2028358766 + .long 1013458122 + .long 424392917 + .long 1072289396 + .long 2749202995 + .long 3162838718 + .long 2191782032 + .long 1072284817 + .long 2960257726 + .long 1013742662 + .long 1297350157 + .long 1072280251 + .long 1308022040 + .long 3163412558 + .long 1892288442 + .long 1072275697 + .long 2446255666 + .long 3162600381 + .long 3833209506 + .long 1072271155 + .long 2722920684 + .long 1013754842 + .long 2682146384 + .long 1072266626 + .long 2082178513 + .long 3163363419 + .long 2591453363 + .long 1072262109 + .long 2132396182 + .long 3159074198 + .long 3418903055 + .long 1072257604 + .long 2527457337 + .long 3160820604 + .long 727685349 + .long 1072253112 + .long 2038246809 + .long 3162358742 + .long 2966275557 + .long 1072248631 + .long 2176155324 + .long 3159842759 + .long 1403662306 + .long 1072244163 + .long 2788809599 + .long 3161671007 + .long 194117574 + .long 1072239707 + .long 777528612 + .long 3163412089 + .long 3492293770 + .long 1072235262 + .long 2248032210 + .long 1015386826 + .long 2568320822 + .long 1072230830 + .long 2732824428 + .long 1014352915 + .long 1577608921 + .long 1072226410 + .long 1875489510 + .long 3162968394 + .long 380978316 + .long 1072222002 + .long 854188970 + .long 3160462686 + .long 3134592888 + .long 1072217605 + .long 4232266862 + .long 1015991134 + .long 1110089947 + .long 1072213221 + .long 1451641639 + .long 1015474673 + .long 2759350287 + .long 1072208848 + .long 1148526634 + .long 1015894933 + .long 3649726105 + .long 1072204487 + .long 4085036346 + .long 1015649474 + .long 3643909174 + .long 1072200138 + .long 3537586109 + .long 1014354647 + .long 2604962541 + .long 1072195801 + .long 2614425274 + .long 3163539192 + .long 396319521 + .long 1072191476 + .long 4172420816 + .long 3159074632 + .long 1176749997 + .long 1072187162 + .long 2738998779 + .long 3162035844 + .long 515457527 + .long 1072182860 + .long 836709333 + .long 1015651226 + .long 2571947539 + .long 1072178569 + .long 3558159064 + .long 3163376669 + .long 2916157145 + .long 1072174290 + .long 219487565 + .long 1015309367 + .long 1413356050 + .long 1072170023 + .long 1651349291 + .long 3162668166 + .long 2224145553 + .long 1072165767 + .long 3482522030 + .long 3161489169 + .long 919555682 + .long 1072161523 + .long 3121969534 + .long 1012948226 + .long 1660913392 + .long 1072157290 + .long 4218599604 + .long 1015135707 + .long 19972402 + .long 1072153069 + .long 3507899862 + .long 1016009292 + .long 158781403 + .long 1072148859 + .long 2221464712 + .long 3163286453 + .long 1944781191 + .long 1072144660 + .long 3993278767 + .long 3161724279 + .long 950803702 + .long 1072140473 + .long 1655364926 + .long 1015237032 + .long 1339972927 + .long 1072136297 + .long 167908909 + .long 1015572152 + .long 2980802057 + .long 1072132132 + .long 378619896 + .long 1015773303 + .long 1447192521 + .long 1072127979 + .long 1462857171 + .long 3162514521 + .long 903334909 + .long 1072123837 + .long 1636462108 + .long 1015039997 + .long 1218806132 + .long 1072119706 + .long 1818613052 + .long 3162548441 + .long 2263535754 + .long 1072115586 + .long 752233586 + .long 3162639008 + .long 3907805044 + .long 1072111477 + .long 2257091225 + .long 3161550407 + .long 1727278727 + .long 1072107380 + .long 3562710623 + .long 1011471940 + .long 4182873220 + .long 1072103293 + .long 629542646 + .long 3161996303 + .long 2555984613 + .long 1072099218 + .long 2652555442 + .long 3162552692 + .long 1013258799 + .long 1072095154 + .long 1748797611 + .long 3160129082 + .long 3721688645 + .long 1072091100 + .long 3069276937 + .long 1015839401 + .long 1963711167 + .long 1072087058 + .long 1744767757 + .long 3160574294 + .long 4201977662 + .long 1072083026 + .long 748330254 + .long 1013594357 + .long 1719614413 + .long 1072079006 + .long 330458198 + .long 3163282740 + .long 2979960120 + .long 1072074996 + .long 2599109725 + .long 1014498493 + .long 3561793907 + .long 1072070997 + .long 1157054053 + .long 1011890350 + .long 3339203574 + .long 1072067009 + .long 1483497780 + .long 3162408754 + .long 2186617381 + .long 1072063032 + .long 2270764084 + .long 3163272713 + .long 4273770423 + .long 1072059065 + .long 3383180809 + .long 3163218901 + .long 885834528 + .long 1072055110 + .long 1973258547 + .long 3162261564 + .long 488188413 + .long 1072051165 + .long 3199821029 + .long 1015564048 + .long 2956612997 + .long 1072047230 + .long 2118169751 + .long 3162735553 + .long 3872257780 + .long 1072043306 + .long 1253592103 + .long 1015958334 + .long 3111574537 + .long 1072039393 + .long 2606161479 + .long 3162759746 + .long 551349105 + .long 1072035491 + .long 3821916050 + .long 3162106589 + .long 363667784 + .long 1072031599 + .long 813753950 + .long 1015785209 + .long 2425981843 + .long 1072027717 + .long 2830390851 + .long 3163346599 + .long 2321106615 + .long 1072023846 + .long 2171176610 + .long 1009535771 + .long 4222122499 + .long 1072019985 + .long 1277378074 + .long 3163256737 + .long 3712504873 + .long 1072016135 + .long 88491949 + .long 1015427660 + .long 671025100 + .long 1072012296 + .long 3832014351 + .long 3163022030 + .long 3566716925 + .long 1072008466 + .long 1536826856 + .long 1014142433 + .long 3689071823 + .long 1072004647 + .long 2321004996 + .long 3162552716 + .long 917841882 + .long 1072000839 + .long 18715565 + .long 1015659308 + .long 3723038930 + .long 1071997040 + .long 378465264 + .long 3162569582 + .long 3395129871 + .long 1071993252 + .long 4025345435 + .long 3162335388 + .long 4109806887 + .long 1071989474 + .long 422403966 + .long 1014469229 + .long 1453150082 + .long 1071985707 + .long 498154669 + .long 3161488062 + .long 3896463087 + .long 1071981949 + .long 1139797873 + .long 3161233805 + .long 2731501122 + .long 1071978202 + .long 1774031855 + .long 3162470021 + .long 2135241198 + .long 1071974465 + .long 1236747871 + .long 1013589147 + .long 1990012071 + .long 1071970738 + .long 3529070563 + .long 3162813193 + .long 2178460671 + .long 1071967021 + .long 777878098 + .long 3162842493 + .long 2583551245 + .long 1071963314 + .long 3161094195 + .long 1015606491 + .long 3088564500 + .long 1071959617 + .long 1762311517 + .long 1015045673 + .long 3577096743 + .long 1071955930 + .long 2951496418 + .long 1013793687 + .long 3933059031 + .long 1071952253 + .long 2133366768 + .long 3161531832 + .long 4040676318 + .long 1071948586 + .long 4090609238 + .long 1015663458 + .long 3784486610 + .long 1071944929 + .long 1581883040 + .long 3161698953 + .long 3049340112 + .long 1071941282 + .long 3062915824 + .long 1013170595 + .long 1720398391 + .long 1071937645 + .long 3980678963 + .long 3163300080 + .long 3978100823 + .long 1071934017 + .long 3513027190 + .long 1015845963 + .long 1118294578 + .long 1071930400 + .long 2197495694 + .long 3159909401 + .long 1617004845 + .long 1071926792 + .long 82804944 + .long 1010342778 + .long 1065662932 + .long 1071923194 + .long 2533670915 + .long 1014530238 + .long 3645941911 + .long 1071919605 + .long 3814685081 + .long 3161573341 + .long 654919306 + .long 1071916027 + .long 3232961757 + .long 3163047469 + .long 569847338 + .long 1071912458 + .long 472945272 + .long 3159290729 + .long 3278348324 + .long 1071908898 + .long 3069497416 + .long 1014750712 + .long 78413852 + .long 1071905349 + .long 4183226867 + .long 3163017251 + .long 3743175029 + .long 1071901808 + .long 2072812490 + .long 3162175075 + .long 1276261410 + .long 1071898278 + .long 300981948 + .long 1014684169 + .long 1156440435 + .long 1071894757 + .long 2351451249 + .long 1013967056 + .long 3272845541 + .long 1071891245 + .long 928852419 + .long 3163488248 + .long 3219942644 + .long 1071887743 + .long 3798990616 + .long 1015368806 + .long 887463927 + .long 1071884251 + .long 3596744163 + .long 3160794166 + .long 460407023 + .long 1071880768 + .long 4237175092 + .long 3163138469 + .long 1829099622 + .long 1071877294 + .long 1016661181 + .long 3163461005 + .long 589198666 + .long 1071873830 + .long 2664346172 + .long 3163157962 + .long 926591435 + .long 1071870375 + .long 3208833762 + .long 3162913514 + .long 2732492859 + .long 1071866929 + .long 2691479646 + .long 3162255684 + .long 1603444721 + .long 1071863493 + .long 1548633640 + .long 3162201326 + .long 1726216749 + .long 1071860066 + .long 2466808228 + .long 3161676405 + .long 2992903935 + .long 1071856648 + .long 2218154406 + .long 1015228193 + .long 1000925746 + .long 1071853240 + .long 1018491672 + .long 3163309544 + .long 4232894513 + .long 1071849840 + .long 2383938684 + .long 1014668519 + .long 3991843581 + .long 1071846450 + .long 4092853457 + .long 1014585763 + .long 171030293 + .long 1071843070 + .long 3526460132 + .long 1014428778 + .long 1253935211 + .long 1071839698 + .long 1395382931 + .long 3159702613 + .long 2839424854 + .long 1071836335 + .long 1171596163 + .long 1013041679 + .long 526652809 + .long 1071832982 + .long 4223459736 + .long 1015879375 + .long 2799960843 + .long 1071829637 + .long 1423655381 + .long 1015022151 + .long 964107055 + .long 1071826302 + .long 2800439588 + .long 3162833221 + .long 3504003472 + .long 1071822975 + .long 3594001060 + .long 3157330652 + .long 1724976915 + .long 1071819658 + .long 420909223 + .long 3163117379 + .long 4112506593 + .long 1071816349 + .long 2947355221 + .long 1014371048 + .long 1972484976 + .long 1071813050 + .long 675290301 + .long 3161640050 + .long 3790955393 + .long 1071809759 + .long 2352942462 + .long 3163180090 + .long 874372905 + .long 1071806478 + .long 100263788 + .long 1015940732 + .long 1709341917 + .long 1071803205 + .long 2571168217 + .long 1014152499 + .long 1897844341 + .long 1071799941 + .long 1254300460 + .long 1015275938 + .long 1337108031 + .long 1071796686 + .long 3203724452 + .long 1014677845 + .long 4219606026 + .long 1071793439 + .long 2434574742 + .long 1014681548 + .long 1853186616 + .long 1071790202 + .long 3066496371 + .long 1015656574 + .long 2725843665 + .long 1071786973 + .long 1433917087 + .long 1014838523 + .long 2440944790 + .long 1071783753 + .long 2492769774 + .long 1014147454 + .long 897099801 + .long 1071780542 + .long 754756297 + .long 1015241005 + .long 2288159958 + .long 1071777339 + .long 2169144469 + .long 1014876021 + .long 2218315341 + .long 1071774145 + .long 2694295388 + .long 3163288868 + .long 586995997 + .long 1071770960 + .long 41662348 + .long 3162627992 + .long 1588871207 + .long 1071767783 + .long 143439582 + .long 3162963416 + .long 828946858 + .long 1071764615 + .long 10642492 + .long 1015939438 + .long 2502433899 + .long 1071761455 + .long 2148595913 + .long 1015023991 + .long 2214878420 + .long 1071758304 + .long 892270087 + .long 3163116422 + .long 4162030108 + .long 1071755161 + .long 2763428480 + .long 1015529349 + .long 3949972341 + .long 1071752027 + .long 2068408548 + .long 1014913868 + .long 1480023343 + .long 1071748902 + .long 2247196168 + .long 1015327453 + .long 948735466 + .long 1071745785 + .long 3516338028 + .long 3162574883 + .long 2257959872 + .long 1071742676 + .long 3802946148 + .long 1012964927 + .long 1014845819 + .long 1071739576 + .long 3117910646 + .long 3161559105 + .long 1416741826 + .long 1071736484 + .long 2196380210 + .long 1011413563 + .long 3366293073 + .long 1071733400 + .long 3119426314 + .long 1014120554 + .long 2471440686 + .long 1071730325 + .long 968836267 + .long 3162214888 + .long 2930322912 + .long 1071727258 + .long 2599499422 + .long 3162714047 + .long 351405227 + .long 1071724200 + .long 3125337328 + .long 3159822479 + .long 3228316108 + .long 1071721149 + .long 3010241991 + .long 3158422804 + .long 2875075254 + .long 1071718107 + .long 4144233330 + .long 3163333716 + .long 3490863953 + .long 1071715073 + .long 960797498 + .long 3162948880 + .long 685187902 + .long 1071712048 + .long 378731989 + .long 1014843115 + .long 2952712987 + .long 1071709030 + .long 3293494651 + .long 3160120301 + .long 1608493509 + .long 1071706021 + .long 3159622171 + .long 3162807737 + .long 852742562 + .long 1071703020 + .long 667253586 + .long 1009793559 + .long 590962156 + .long 1071700027 + .long 3829346666 + .long 3163275597 + .long 728909815 + .long 1071697042 + .long 383930225 + .long 1015029468 + .long 1172597893 + .long 1071694065 + .long 114433263 + .long 1015347593 + .long 1828292879 + .long 1071691096 + .long 1255956747 + .long 1015588398 + .long 2602514713 + .long 1071688135 + .long 2268929336 + .long 1014354284 + .long 3402036099 + .long 1071685182 + .long 405889334 + .long 1015105656 + .long 4133881824 + .long 1071682237 + .long 2148155345 + .long 3162931299 + .long 410360776 + .long 1071679301 + .long 1269990655 + .long 1011975870 + .long 728934454 + .long 1071676372 + .long 1413842688 + .long 1014178612 + .long 702412510 + .long 1071673451 + .long 3803266087 + .long 3162280415 + .long 238821257 + .long 1071670538 + .long 1469694871 + .long 3162884987 + .long 3541402996 + .long 1071667632 + .long 2759177317 + .long 1014854626 + .long 1928746161 + .long 1071664735 + .long 983617676 + .long 1014285177 + .long 3899555717 + .long 1071661845 + .long 427280750 + .long 3162546972 + .long 772914124 + .long 1071658964 + .long 4004372762 + .long 1012230161 + .long 1048019041 + .long 1071656090 + .long 1398474845 + .long 3160510595 + .long 339411585 + .long 1071653224 + .long 264588982 + .long 3161636657 + .long 2851812149 + .long 1071650365 + .long 2595802551 + .long 1015767337 + .long 4200250559 + .long 1071647514 + .long 2808127345 + .long 3161781938 + .long 0 + .long 1127743488 + .long 0 + .long 3275227136 + .long 1610612736 + .long 1082594631 + .long 4166901572 + .long 1055174155 + .long 3884607281 + .long 3168131199 + .long 3607404735 + .long 3190582024 + .long 1874480759 + .long 1032041131 + .long 4286760334 + .long 1053736893 + .long 4277811695 + .long 3211144770 + .long 0 + .long 0 + .long 236289503 + .long 1064135997 + .long 463583772 + .long 3215696314 + .long 1441186365 + .long 3212977891 + .long 286331153 + .long 1069617425 + .long 2284589306 + .long 1066820852 + .long 1431655765 + .long 3218429269 + .long 0 + .long 4294967280 + .long 0 + .long 4294967280 + .long 4294705152 + .long 4294967295 + .long 4294705152 + .long 4294967295 + .long 4160749568 + .long 2147483647 + .long 0 + .long 1072693248 + .long 0 + .long 1073741824 + .type static_const_table,@object + .size static_const_table,4280 + .data + .section .note.GNU-stack, "" +# End diff --git a/libm/x86/sqrt.S b/libm/x86/sqrt.S new file mode 100644 index 000000000..c9d434d2e --- /dev/null +++ b/libm/x86/sqrt.S @@ -0,0 +1,43 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(sqrt) + mov %esp,%eax + and $0xfffffff8,%eax + movsd 0x4(%esp),%xmm0 + sqrtsd %xmm0,%xmm0 + movlpd %xmm0,-0x8(%eax) + fldl -0x8(%eax) + ret +END(sqrt) + +ALIAS_SYMBOL(sqrtl, sqrt); diff --git a/libm/x86/sqrtf.S b/libm/x86/sqrtf.S new file mode 100644 index 000000000..78c183b03 --- /dev/null +++ b/libm/x86/sqrtf.S @@ -0,0 +1,39 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(sqrtf) + movss 0x4(%esp),%xmm0 + sqrtss %xmm0,%xmm0 + movss %xmm0,-0x4(%esp) + flds -0x4(%esp) + ret +END(sqrtf) diff --git a/libm/x86/trunc.S b/libm/x86/trunc.S new file mode 100644 index 000000000..da9d5fb3a --- /dev/null +++ b/libm/x86/trunc.S @@ -0,0 +1,43 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(trunc) + mov %esp,%eax + and $0xfffffff8,%eax + movsd 0x4(%esp),%xmm0 + roundsd $0x3,%xmm0,%xmm0 + movlpd %xmm0,-0x8(%eax) + fldl -0x8(%eax) + ret +END(trunc) + +ALIAS_SYMBOL(truncl, trunc); diff --git a/libm/x86/truncf.S b/libm/x86/truncf.S new file mode 100644 index 000000000..d3e3f4a7a --- /dev/null +++ b/libm/x86/truncf.S @@ -0,0 +1,39 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(truncf) + movss 0x4(%esp),%xmm0 + roundss $0x3,%xmm0,%xmm0 + movss %xmm0,-0x4(%esp) + flds -0x4(%esp) + ret +END(truncf) diff --git a/libm/x86_64/ceil.S b/libm/x86_64/ceil.S new file mode 100644 index 000000000..d4492c404 --- /dev/null +++ b/libm/x86_64/ceil.S @@ -0,0 +1,36 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(ceil) +roundsd $0x2,%xmm0,%xmm0 +retq +END(ceil) diff --git a/libm/x86_64/ceilf.S b/libm/x86_64/ceilf.S new file mode 100644 index 000000000..0e1ca95dc --- /dev/null +++ b/libm/x86_64/ceilf.S @@ -0,0 +1,36 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(ceilf) +roundss $0x2,%xmm0,%xmm0 +retq +END(ceilf) diff --git a/libm/x86_64/e_acos.S b/libm/x86_64/e_acos.S new file mode 100644 index 000000000..d83c66b97 --- /dev/null +++ b/libm/x86_64/e_acos.S @@ -0,0 +1,1957 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// To compute acos(s), separate schemes are used when s is in different +// intervals. +// +// |s| in [2^{-4}, sqrt(3)/2): +// Let t=2^k*1.b1 b2..b6 1, where s=2^k*1.b1 b2 .. b52 +// acos(s)=pi/2-asin(t)-asin(r), where r=s*sqrt(1-t^2)-t*sqrt(1-s^2) +// asin(r)-r evaluated as 7-degree polynomial (c3*r^3+c5*r^5+c7*r^7) +// For the first degree term, r is evaluated as +// R=(s^2-t^2)/(sqrt(1-t^2)*s+sqrt(1-s^2)*t) +// (sqrt(1-t^2) read from table) +// The main source of error is still R (may still be affected by up to 3 ulps +// of rounding error). The table size must be sufficiently large, to minimize +// this effect. +// +// |s| in [sqrt(3)/2, 255/256): +// Let t=2^k*1.b1 b2..b6 1, where sqrt(1-s^2)=2^k*1.b1 b2 .. b52 (rounded) +// acos(|s|)=asin(t)-asin(r), r=s*t-sqrt(1-s^2)*sqrt(1-t^2) +// acos(-|s|)=pi-acos(|s|) +// (The -PI constant, or 0, is added to the result. The sign is set at +// the end) +// asin(r) evaluated as a polynomial (same as above) +// The first degree term is evaluated as +// r=(s^2+t^2-1)/(s*t+sqrt(1-s^2)*sqrt(1-t^2)) +// +// |s|<2^{-4}: acos(s)=pi/2-asin(s) +// evaluate asin(s) as 13-degree polynomial +// +// |s| in [255/256,1): acos(|s|)=2*asin(q), where q=sqrt((1-|s|)/2) +// asin(q) is evaluated as 13-degree polynomial +// q^2=(1-|s|)/2 is obtained in advance +// 2*q*eps ~ ((1-|s|)/2-q^2)/q used for first term +// acos(-|s|)=pi-acos(|s|) +// (The -PI constant, or 0, is added to the result. The sign is set at +// the end) +// +// Special cases: +// acos(NaN) = quiet NaN, and raise invalid exception +// acos(INF) = QNaN and raise invalid exception +// acos(x) = QNaN and raise invalid exception, for |x|>1.0 +// acos(1) = +0 +// +/******************************************************************************/ + +#include +# -- Begin acos +ENTRY(acos) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_acos.1: + subq $24, %rsp +..___tag_value_acos.3: + movsd %xmm0, (%rsp) +..B1.2: + movsd ABSVALMASK(%rip), %xmm4 + movsd ONEMASK(%rip), %xmm3 + xorpd %xmm5, %xmm5 + movsd TMASK(%rip), %xmm2 + movq %xmm0, %xmm1 + psrlq $44, %xmm0 + movd %xmm0, %edx + movq %xmm1, %xmm7 + movl $8192, %ecx + pinsrw $2, %ecx, %xmm5 + movq %xmm1, %xmm0 + movl $524287, %eax + andl %edx, %eax + subl $260864, %eax + cmpl $955, %eax + jae .L_2TAG_PACKET_0.0.2 + mulsd %xmm1, %xmm1 + andl $65535, %edx + subsd %xmm1, %xmm3 + sqrtsd %xmm3, %xmm3 + andpd %xmm7, %xmm2 + andl $-4, %edx + subl $64256, %edx + lea T_table(%rip), %r8 + movsd (%r8,%rdx,2), %xmm1 + orpd %xmm5, %xmm2 + lea Tbl_addr(%rip), %r8 + movapd (%r8,%rdx,4), %xmm4 + movq %xmm7, %xmm6 + addsd %xmm2, %xmm7 + subsd %xmm2, %xmm0 + mulsd %xmm0, %xmm7 + mulsd %xmm1, %xmm6 + mulsd %xmm2, %xmm3 + movq %xmm6, %xmm1 + addsd %xmm3, %xmm6 + divsd %xmm6, %xmm7 + movsd 24+cv(%rip), %xmm0 + movsd 8+cv(%rip), %xmm5 + subsd %xmm3, %xmm1 + psrlq $63, %xmm2 + movq %xmm1, %xmm3 + psllq $63, %xmm2 + mulsd %xmm1, %xmm1 + pshufd $68, %xmm2, %xmm2 + movsd 16+cv(%rip), %xmm6 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm0 + xorpd %xmm2, %xmm4 + mulsd %xmm3, %xmm5 + subpd PI_BY_2(%rip), %xmm4 + mulsd %xmm1, %xmm3 + addsd %xmm6, %xmm0 + mulsd %xmm3, %xmm0 + subsd %xmm4, %xmm5 + pshufd $238, %xmm4, %xmm4 + addsd %xmm5, %xmm0 + subsd %xmm7, %xmm0 + subsd %xmm4, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: + subl $955, %eax + cmpl $65, %eax + jae .L_2TAG_PACKET_1.0.2 + psrlq $38, %xmm7 + psllq $38, %xmm7 + pmovmskb %xmm0, %eax + andnpd %xmm0, %xmm4 + subsd %xmm7, %xmm1 + movq %xmm7, %xmm6 + mulsd %xmm7, %xmm7 + addsd %xmm6, %xmm0 + orpd %xmm4, %xmm5 + subsd %xmm7, %xmm3 + mulsd %xmm1, %xmm0 + movq %xmm3, %xmm4 + subsd %xmm0, %xmm3 + sqrtsd %xmm3, %xmm3 + andl $128, %eax + shrl $7, %eax + negl %eax + movq %xmm3, %xmm7 + andpd %xmm3, %xmm2 + psllq $2, %xmm3 + pextrw $3, %xmm3, %edx + orpd %xmm5, %xmm2 + movd %eax, %xmm3 + pshufd $0, %xmm3, %xmm3 + subl $65216, %edx + addl %edx, %edx + lea T_table(%rip), %r8 + mulsd (%r8,%rdx,4), %xmm7 + mulsd %xmm2, %xmm6 + mulsd %xmm2, %xmm1 + mulsd %xmm2, %xmm2 + subsd %xmm7, %xmm6 + andpd NEG_PI(%rip), %xmm3 + addsd %xmm1, %xmm6 + subsd %xmm2, %xmm4 + addsd %xmm7, %xmm7 + movsd 8+cv(%rip), %xmm5 + subsd %xmm0, %xmm4 + addsd %xmm6, %xmm7 + movsd 24+cv(%rip), %xmm0 + divsd %xmm7, %xmm4 + movsd 16+cv(%rip), %xmm2 + lea Tbl_addr(%rip), %r8 + addpd (%r8,%rdx,8), %xmm3 + movq %xmm6, %xmm1 + mulsd %xmm6, %xmm6 + mulsd %xmm6, %xmm0 + mulsd %xmm6, %xmm1 + mulsd %xmm1, %xmm5 + mulsd %xmm6, %xmm1 + addsd %xmm2, %xmm0 + pxor %xmm6, %xmm6 + mulsd %xmm1, %xmm0 + addsd %xmm3, %xmm5 + addsd %xmm5, %xmm0 + andl $32768, %eax + pinsrw $3, %eax, %xmm6 + movq %xmm4, %xmm5 + pshufd $238, %xmm3, %xmm3 + addsd %xmm3, %xmm4 + subsd %xmm4, %xmm3 + addsd %xmm3, %xmm5 + addsd %xmm5, %xmm0 + addsd %xmm4, %xmm0 + xorpd %xmm6, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_1.0.2: + addl $15291, %eax + cmpl $14336, %eax + jae .L_2TAG_PACKET_2.0.2 + unpcklpd %xmm0, %xmm0 + movapd cv2(%rip), %xmm6 + unpcklpd %xmm0, %xmm1 + movapd 16+cv2(%rip), %xmm2 + movapd 32+cv2(%rip), %xmm4 + mulpd %xmm0, %xmm0 + movapd PI_BY_2(%rip), %xmm5 + mulpd %xmm0, %xmm1 + mulpd %xmm0, %xmm6 + mulpd %xmm0, %xmm0 + movq %xmm1, %xmm3 + mulsd %xmm1, %xmm1 + addpd %xmm2, %xmm6 + mulpd %xmm0, %xmm4 + mulsd %xmm3, %xmm1 + addpd %xmm4, %xmm6 + pshufd $238, %xmm5, %xmm0 + mulpd %xmm6, %xmm1 + pshufd $238, %xmm5, %xmm6 + subsd %xmm7, %xmm0 + pshufd $238, %xmm1, %xmm2 + subsd %xmm1, %xmm5 + subsd %xmm0, %xmm6 + subsd %xmm2, %xmm5 + subsd %xmm6, %xmm7 + subsd %xmm7, %xmm5 + addsd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_2.0.2: + subl $15356, %eax + cmpl $4, %eax + jae .L_2TAG_PACKET_3.0.2 + xorpd %xmm6, %xmm6 + andpd ABSVALMASK(%rip), %xmm7 + movsd ONE_BY_2(%rip), %xmm4 + movapd cv2(%rip), %xmm1 + mulsd %xmm4, %xmm7 + movapd 16+cv2(%rip), %xmm2 + subsd %xmm7, %xmm4 + movapd 32+cv2(%rip), %xmm3 + pshufd $68, %xmm4, %xmm7 + sqrtsd %xmm4, %xmm4 + mulpd %xmm7, %xmm1 + pshufd $68, %xmm7, %xmm5 + pextrw $3, %xmm0, %eax + mulpd %xmm7, %xmm7 + addpd %xmm1, %xmm2 + movsd HALFMASK(%rip), %xmm1 + mulpd %xmm7, %xmm3 + cmpsd $1, %xmm6, %xmm0 + mulsd %xmm5, %xmm7 + addpd %xmm3, %xmm2 + pshufd $68, %xmm0, %xmm0 + mulsd %xmm7, %xmm2 + andpd NEG_PI(%rip), %xmm0 + mulpd %xmm5, %xmm2 + andpd %xmm4, %xmm1 + pshufd $68, %xmm4, %xmm3 + subsd %xmm1, %xmm4 + addsd %xmm3, %xmm3 + mulsd %xmm1, %xmm1 + subsd %xmm4, %xmm3 + subsd %xmm1, %xmm5 + mulsd %xmm3, %xmm4 + pshufd $238, %xmm3, %xmm3 + subsd %xmm4, %xmm5 + divsd %xmm3, %xmm5 + addpd %xmm3, %xmm3 + mulpd %xmm3, %xmm2 + pshufd $238, %xmm2, %xmm4 + addsd %xmm0, %xmm2 + andl $32768, %eax + pinsrw $3, %eax, %xmm6 + pshufd $238, %xmm0, %xmm0 + addsd %xmm4, %xmm2 + addsd %xmm5, %xmm2 + addsd %xmm3, %xmm2 + addsd %xmm2, %xmm0 + xorpd %xmm6, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_3.0.2: + addl $261884, %eax + cmpl $261888, %eax + jb .L_2TAG_PACKET_4.0.2 + movd %xmm7, %ecx + psrlq $32, %xmm7 + movd %xmm7, %edx + andl $2147483647, %edx + movl $1072693248, %eax + subl %edx, %eax + orl %ecx, %eax + cmpl $0, %eax + je .L_2TAG_PACKET_5.0.2 + movsd (%rsp), %xmm2 + movd %xmm2, %edx + psrlq $32, %xmm2 + movd %xmm2, %ecx + andl $2147483647, %ecx + subl $1, %edx + sbbl $2146435072, %ecx + cmpl $0, %ecx + jge .L_2TAG_PACKET_6.0.2 + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %edx + pinsrw $3, %edx, %xmm1 + mulsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_5.0.2: + pextrw $1, %xmm7, %edx + shrl $15, %edx + negl %edx + movd %edx, %xmm7 + pshufd $0, %xmm7, %xmm7 + movsd PI(%rip), %xmm2 + movsd 8+PI(%rip), %xmm0 + andpd %xmm7, %xmm2 + andpd %xmm7, %xmm0 + addsd %xmm2, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_4.0.2: + movsd PI_BY_2(%rip), %xmm2 + movsd 8+PI_BY_2(%rip), %xmm0 + addsd %xmm2, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_6.0.2: + xorpd %xmm6, %xmm6 + addsd %xmm6, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_7.0.2: + movq %xmm0, 8(%rsp) +..B1.3: + movq 8(%rsp), %xmm0 +.L_2TAG_PACKET_8.0.2: +..B1.5: + addq $24, %rsp +..___tag_value_acos.4: + ret +..___tag_value_acos.5: +END(acos) +# -- End acos + .section .rodata, "a" + .align 16 + .align 16 +ABSVALMASK: + .long 4294967295 + .long 2147483647 + .long 0 + .long 0 + .type ABSVALMASK,@object + .size ABSVALMASK,16 + .align 16 +T_table: + .long 2642784509 + .long 1072689083 + .long 1514442531 + .long 1072688953 + .long 333108933 + .long 1072688821 + .long 3392112024 + .long 1072688686 + .long 2099852862 + .long 1072688550 + .long 749609004 + .long 1072688412 + .long 3634632596 + .long 1072688271 + .long 2163248461 + .long 1072688129 + .long 628657846 + .long 1072687985 + .long 3324036511 + .long 1072687838 + .long 1657632815 + .long 1072687690 + .long 4217538760 + .long 1072687539 + .long 2411951597 + .long 1072687387 + .long 533944872 + .long 1072687233 + .long 2876566508 + .long 1072687076 + .long 847936891 + .long 1072686918 + .long 3036019913 + .long 1072686757 + .long 848884575 + .long 1072686595 + .long 2874443326 + .long 1072686430 + .long 520713666 + .long 1072686264 + .long 2375556481 + .long 1072686095 + .long 4141904948 + .long 1072685924 + .long 1522666382 + .long 1072685752 + .long 3105624104 + .long 1072685577 + .long 298666327 + .long 1072685401 + .long 1689524500 + .long 1072685222 + .long 2981002200 + .long 1072685041 + .long 4170844284 + .long 1072684858 + .long 961802263 + .long 1072684674 + .long 1941503454 + .long 1072684487 + .long 2812647170 + .long 1072684298 + .long 3572873869 + .long 1072684107 + .long 4219797823 + .long 1072683914 + .long 456039788 + .long 1072683720 + .long 869096151 + .long 1072683523 + .long 1161535119 + .long 1072683324 + .long 1330865866 + .long 1072683123 + .long 1374571204 + .long 1072682920 + .long 1290107538 + .long 1072682715 + .long 1074904836 + .long 1072682508 + .long 726366587 + .long 1072682299 + .long 241869763 + .long 1072682088 + .long 3913732079 + .long 1072681874 + .long 3149342765 + .long 1072681659 + .long 2240966306 + .long 1072681442 + .long 1185873216 + .long 1072681223 + .long 4276274591 + .long 1072681001 + .long 2919452883 + .long 1072680778 + .long 1407565635 + .long 1072680553 + .long 4032743551 + .long 1072680325 + .long 2202188565 + .long 1072680096 + .long 207977577 + .long 1072679865 + .long 2342160518 + .long 1072679631 + .long 11858423 + .long 1072679396 + .long 1804034453 + .long 1072679158 + .long 3420722787 + .long 1072678918 + .long 563930456 + .long 1072678677 + .long 1820539192 + .long 1072678433 + .long 2892501606 + .long 1072678187 + .long 3776710320 + .long 1072677939 + .long 175063337 + .long 1072677690 + .long 674333171 + .long 1072677438 + .long 976363026 + .long 1072677184 + .long 1077935934 + .long 1072676928 + .long 1921075490 + .long 1072676540 + .long 881493302 + .long 1072676016 + .long 3275752439 + .long 1072675483 + .long 486855588 + .long 1072674943 + .long 1077229111 + .long 1072674394 + .long 723950308 + .long 1072673837 + .long 3693582199 + .long 1072673271 + .long 1367335316 + .long 1072672698 + .long 2305837020 + .long 1072672116 + .long 2184358641 + .long 1072671526 + .long 972682840 + .long 1072670928 + .long 2935101762 + .long 1072670321 + .long 3745513263 + .long 1072669706 + .long 3372320886 + .long 1072669083 + .long 1783464620 + .long 1072668452 + .long 3241386215 + .long 1072667812 + .long 3418125284 + .long 1072667164 + .long 2280219148 + .long 1072666508 + .long 4088700758 + .long 1072665843 + .long 219227400 + .long 1072665171 + .long 3521816918 + .long 1072664489 + .long 1076205279 + .long 1072663800 + .long 1436484616 + .long 1072663102 + .long 271362610 + .long 1072662396 + .long 1838996688 + .long 1072661681 + .long 1807122518 + .long 1072660958 + .long 137953542 + .long 1072660227 + .long 1088178584 + .long 1072659487 + .long 324057537 + .long 1072658739 + .long 2101288076 + .long 1072657982 + .long 2085133974 + .long 1072657217 + .long 235324451 + .long 1072656444 + .long 806051592 + .long 1072655662 + .long 3756033140 + .long 1072654871 + .long 453542543 + .long 1072654073 + .long 3741177327 + .long 1072653265 + .long 691216109 + .long 1072652450 + .long 4145223372 + .long 1072651625 + .long 1174439091 + .long 1072650793 + .long 324416139 + .long 1072649952 + .long 1550246310 + .long 1072649102 + .long 511524674 + .long 1072648244 + .long 1457248482 + .long 1072647377 + .long 45944955 + .long 1072646502 + .long 525537397 + .long 1072645618 + .long 2848440188 + .long 1072644725 + .long 2671555633 + .long 1072643824 + .long 4241172637 + .long 1072642914 + .long 3213094278 + .long 1072641996 + .long 3832503688 + .long 1072641069 + .long 1754091534 + .long 1072640134 + .long 1221921804 + .long 1072639190 + .long 2184526489 + .long 1072638237 + .long 294902089 + .long 1072637276 + .long 4090375270 + .long 1072636305 + .long 632860906 + .long 1072635327 + .long 2753498702 + .long 1072634339 + .long 1808009252 + .long 1072633343 + .long 2036428672 + .long 1072632338 + .long 3383235626 + .long 1072631324 + .long 1497347484 + .long 1072630302 + .long 617018317 + .long 1072629271 + .long 684933058 + .long 1072628231 + .long 1643170798 + .long 1072627182 + .long 3011066360 + .long 1072625592 + .long 957158713 + .long 1072623442 + .long 1390907941 + .long 1072621256 + .long 3819155270 + .long 1072619034 + .long 3443571196 + .long 1072616777 + .long 4045412458 + .long 1072614484 + .long 805503923 + .long 1072612156 + .long 1778922015 + .long 1072609791 + .long 2125033665 + .long 1072607390 + .long 1287203863 + .long 1072604953 + .long 2992629568 + .long 1072602479 + .long 2367267127 + .long 1072599969 + .long 3115526047 + .long 1072597422 + .long 340219539 + .long 1072594839 + .long 2017215719 + .long 1072592218 + .long 3225443424 + .long 1072589560 + .long 3326565673 + .long 1072586865 + .long 1669811211 + .long 1072584133 + .long 1886735022 + .long 1072581363 + .long 3301071171 + .long 1072578555 + .long 928514283 + .long 1072575710 + .long 2656364059 + .long 1072572826 + .long 3473490507 + .long 1072569904 + .long 2649965606 + .long 1072566944 + .long 3736819052 + .long 1072563945 + .long 1680885175 + .long 1072560908 + .long 4413771 + .long 1072557832 + .long 2214869753 + .long 1072554716 + .long 3214725184 + .long 1072551561 + .long 2186079903 + .long 1072548367 + .long 2590372131 + .long 1072545133 + .long 3578146079 + .long 1072541859 + .long 4283712755 + .long 1072538545 + .long 3824834510 + .long 1072535191 + .long 1302400298 + .long 1072531797 + .long 95058636 + .long 1072528362 + .long 3563906063 + .long 1072524885 + .long 2167230730 + .long 1072521368 + .long 3524918334 + .long 1072517809 + .long 2353304918 + .long 1072514209 + .long 1939625839 + .long 1072510567 + .long 1256714581 + .long 1072506883 + .long 3552525848 + .long 1072503156 + .long 3464809522 + .long 1072499387 + .long 4200542593 + .long 1072495575 + .long 355609124 + .long 1072491721 + .long 3684139099 + .long 1072487822 + .long 148355918 + .long 1072483881 + .long 1457689242 + .long 1072479895 + .long 2118591596 + .long 1072475865 + .long 908848089 + .long 1072471791 + .long 877032689 + .long 1072467672 + .long 752012304 + .long 1072463508 + .long 3532301749 + .long 1072459298 + .long 3600563221 + .long 1072455043 + .long 3902857084 + .long 1072450742 + .long 3063101036 + .long 1072446395 + .long 3972344374 + .long 1072442001 + .long 903183549 + .long 1072437561 + .long 983892938 + .long 1072433073 + .long 2722858568 + .long 1072428537 + .long 302790515 + .long 1072423954 + .long 759811057 + .long 1072419322 + .long 2507809922 + .long 1072414641 + .long 2388408813 + .long 1072407528 + .long 2084492942 + .long 1072397870 + .long 2435703301 + .long 1072388010 + .long 1935433360 + .long 1072377945 + .long 2742047290 + .long 1072367671 + .long 2053284205 + .long 1072357185 + .long 657783367 + .long 1072346483 + .long 2893664841 + .long 1072335560 + .long 3718906405 + .long 1072324413 + .long 1547896303 + .long 1072313038 + .long 2494058440 + .long 1072301429 + .long 3133238742 + .long 1072289582 + .long 3327000086 + .long 1072277492 + .long 1860667274 + .long 1072265154 + .long 665340747 + .long 1072252562 + .long 443347841 + .long 1072239710 + .long 581282618 + .long 1072226592 + .long 3349780465 + .long 1072213201 + .long 914217606 + .long 1072199532 + .long 989797661 + .long 1072185576 + .long 945436416 + .long 1072171326 + .long 549291300 + .long 1072156774 + .long 1814636389 + .long 1072141911 + .long 239092858 + .long 1072126729 + .long 1794680724 + .long 1072111217 + .long 1241534678 + .long 1072095366 + .long 3366566214 + .long 1072079164 + .long 1244090828 + .long 1072062601 + .long 1708448120 + .long 1072045663 + .long 3544260650 + .long 1072028337 + .long 1402741403 + .long 1072010610 + .long 2551936888 + .long 1071992465 + .long 617669739 + .long 1071973887 + .long 794002186 + .long 1071954857 + .long 2021237693 + .long 1071935356 + .long 540450384 + .long 1071915364 + .long 1920555537 + .long 1071894857 + .long 2879585206 + .long 1071873811 + .long 3000237455 + .long 1071852199 + .long 3352974346 + .long 1071829991 + .long 569629937 + .long 1071807155 + .long 2077237208 + .long 1071783653 + .long 2284891805 + .long 1071759446 + .long 1226651784 + .long 1071734489 + .long 1102047405 + .long 1071708731 + .long 2009896384 + .long 1071682115 + .long 927419082 + .long 1071654577 + .long 85010366 + .long 1071607413 + .long 696431025 + .long 1071548180 + .long 2611410541 + .long 1071486585 + .long 2612593658 + .long 1071422396 + .long 3548155306 + .long 1071355336 + .long 3887997484 + .long 1071285073 + .long 244854763 + .long 1071211202 + .long 4214445648 + .long 1071133216 + .long 2303966727 + .long 1071050478 + .long 3991040013 + .long 1070962152 + .long 3126952278 + .long 1070867118 + .long 1817448378 + .long 1070763804 + .long 1793814864 + .long 1070649884 + .long 3507224072 + .long 1070447193 + .long 4027609105 + .long 1070148772 + .long 577507993 + .long 1069779414 + .long 2310232419 + .long 1068931829 + .type T_table,@object + .size T_table,2048 + .align 16 +Tbl_addr: + .long 3822952792 + .long 1021639372 + .long 182792448 + .long 1068507836 + .long 2264213271 + .long 1019558908 + .long 649052928 + .long 1068524253 + .long 1797139609 + .long 1022295143 + .long 1243095296 + .long 1068540671 + .long 1415938756 + .long 1021439537 + .long 2033294592 + .long 1068557090 + .long 2356809978 + .long 1021777916 + .long 3088063744 + .long 1068573510 + .long 2669055318 + .long 1022124482 + .long 180888576 + .long 1068589932 + .long 3566445325 + .long 1021358712 + .long 1970196992 + .long 1068606354 + .long 896980323 + .long 1021319659 + .long 4229555456 + .long 1068622777 + .long 436049712 + .long 1021319758 + .long 2732572160 + .long 1068639202 + .long 583123209 + .long 1020797960 + .long 1842831872 + .long 1068655628 + .long 1370449804 + .long 1021429270 + .long 1628994560 + .long 1068672055 + .long 2411391464 + .long 1021057980 + .long 2159763712 + .long 1068688483 + .long 1208692749 + .long 1021943903 + .long 3503886336 + .long 1068704912 + .long 538793309 + .long 1019744063 + .long 1435187200 + .long 1068721343 + .long 4085087612 + .long 1020608419 + .long 317469952 + .long 1068737775 + .long 144386942 + .long 1021440732 + .long 219617280 + .long 1068754208 + .long 2940088361 + .long 1019981122 + .long 1210558208 + .long 1068770642 + .long 2176850347 + .long 1018373705 + .long 3359268352 + .long 1068787077 + .long 2395611454 + .long 1021889042 + .long 2439803648 + .long 1068803514 + .long 1650705253 + .long 1020227966 + .long 2816203520 + .long 1068819952 + .long 3702166386 + .long 1019379914 + .long 262620672 + .long 1068836392 + .long 1855649370 + .long 1020453124 + .long 3438159616 + .long 1068852832 + .long 923063860 + .long 1019273834 + .long 3822105856 + .long 1068869274 + .long 4289947947 + .long 1019434249 + .long 1483729920 + .long 1068885718 + .long 787455814 + .long 1020738379 + .long 787321088 + .long 1068902163 + .long 3321653337 + .long 1021842569 + .long 1802253312 + .long 1068918609 + .long 2653633526 + .long 1021821525 + .long 302985984 + .long 1068935057 + .long 161272028 + .long 1021655149 + .long 653966080 + .long 1068951506 + .long 2566098667 + .long 1020066219 + .long 2924727296 + .long 1068967956 + .long 3646493722 + .long 1014292285 + .long 2889890304 + .long 1068984408 + .long 1081009196 + .long 1022189620 + .long 619098112 + .long 1069000862 + .long 4011643355 + .long 1021773297 + .long 477017600 + .long 1069017317 + .long 4030305534 + .long 1021292252 + .long 2533403904 + .long 1069033773 + .long 2645187591 + .long 1019527099 + .long 2563102208 + .long 1069050231 + .long 3857293792 + .long 1022311697 + .long 635982336 + .long 1069066691 + .long 3625936637 + .long 1017511744 + .long 1116940800 + .long 1069083152 + .long 3653872993 + .long 1022016631 + .long 4075964160 + .long 1069099614 + .long 2468900271 + .long 1021769532 + .long 993165568 + .long 1069116079 + .long 1358104224 + .long 1021199776 + .long 528586752 + .long 1069132545 + .long 2200950332 + .long 1022024872 + .long 2752395776 + .long 1069149012 + .long 3197072454 + .long 1017751319 + .long 3439855616 + .long 1069165481 + .long 1651081806 + .long 1020809338 + .long 2661257728 + .long 1069181952 + .long 539032752 + .long 1021728805 + .long 486957312 + .long 1069198425 + .long 3136045149 + .long 1016888671 + .long 1282340352 + .long 1069214899 + .long 2593963259 + .long 1018956103 + .long 822921728 + .long 1069231375 + .long 2146032737 + .long 1022306465 + .long 3474216192 + .long 1069247852 + .long 3976811625 + .long 1021350207 + .long 716902656 + .long 1069264332 + .long 718267222 + .long 1018624727 + .long 1211594496 + .long 1069280813 + .long 1485641389 + .long 1018447451 + .long 734070272 + .long 1069297296 + .long 354455128 + .long 1021341291 + .long 3650110720 + .long 1069313780 + .long 682185947 + .long 1021651853 + .long 1440663040 + .long 1069330267 + .long 3558574550 + .long 1021615110 + .long 2766612224 + .long 1069346755 + .long 874607978 + .long 1017746872 + .long 3404011008 + .long 1069363245 + .long 4154988502 + .long 1021439906 + .long 3423949056 + .long 1069379737 + .long 2263202309 + .long 1021479615 + .long 2897587712 + .long 1069396231 + .long 2562065031 + .long 1022090363 + .long 1896159232 + .long 1069412727 + .long 3836237663 + .long 1019867288 + .long 490968576 + .long 1069429225 + .long 3322056743 + .long 1006752762 + .long 3048360192 + .long 1069445724 + .long 1152314833 + .long 1013122252 + .long 1049850624 + .long 1069462226 + .long 3601590727 + .long 1022214610 + .long 3156899584 + .long 1069478729 + .long 1855169970 + .long 1019487271 + .long 851173376 + .long 1069495235 + .long 312649594 + .long 1020868604 + .long 2794281728 + .long 1069511742 + .long 1093490181 + .long 1020777577 + .long 468042496 + .long 1069528252 + .long 1152540679 + .long 1021403732 + .long 2534219264 + .long 1069544763 + .long 2292126035 + .long 1021872430 + .long 1376146432 + .long 1069558527 + .long 3293753641 + .long 1020500454 + .long 4175442432 + .long 1069575044 + .long 3626347564 + .long 1021610969 + .long 3523113472 + .long 1069591566 + .long 339956500 + .long 1021119039 + .long 4003350528 + .long 1069608092 + .long 3429333082 + .long 1022813542 + .long 1611067392 + .long 1069624623 + .long 2298017544 + .long 1021977587 + .long 931782144 + .long 1069641158 + .long 2164684743 + .long 1021250988 + .long 2256725504 + .long 1069657697 + .long 1138762335 + .long 1021443776 + .long 1582853120 + .long 1069674241 + .long 1084010382 + .long 1022994693 + .long 3497758720 + .long 1069690789 + .long 406366244 + .long 1022713586 + .long 3999816960 + .long 1069707342 + .long 1488723042 + .long 1023381290 + .long 3383096064 + .long 1069723900 + .long 2541558953 + .long 1019137887 + .long 1942403584 + .long 1069740463 + .long 1879620343 + .long 1022653642 + .long 4268263680 + .long 1069757030 + .long 3039077047 + .long 1022252545 + .long 2067062272 + .long 1069773603 + .long 4190670677 + .long 1020725863 + .long 4225828096 + .long 1069790180 + .long 1998567321 + .long 1022014385 + .long 2452507136 + .long 1069806763 + .long 1511628873 + .long 1021900300 + .long 1340746240 + .long 1069823351 + .long 788367341 + .long 1022726208 + .long 1190035456 + .long 1069839944 + .long 3856337230 + .long 1021834118 + .long 2300688384 + .long 1069856542 + .long 3211396579 + .long 1022621365 + .long 678886400 + .long 1069873146 + .long 4001011887 + .long 1022042646 + .long 921594112 + .long 1069889755 + .long 557811968 + .long 1023065533 + .long 3331668992 + .long 1069906369 + .long 1877060679 + .long 1022419742 + .long 3917875200 + .long 1069922989 + .long 1181055171 + .long 1022752712 + .long 2984829696 + .long 1069939615 + .long 4294526932 + .long 1021499988 + .long 838049024 + .long 1069956247 + .long 3658081878 + .long 1022957952 + .long 2078928384 + .long 1069972884 + .long 820353701 + .long 1019391107 + .long 2719854336 + .long 1069989527 + .long 1644022489 + .long 1023378240 + .long 3069117696 + .long 1070006176 + .long 2771393702 + .long 1019319954 + .long 3435962368 + .long 1070022831 + .long 3876394145 + .long 1023024433 + .long 4130595328 + .long 1070039492 + .long 1630447748 + .long 1021465882 + .long 1169236224 + .long 1070056160 + .long 2828355997 + .long 1020458120 + .long 3453997312 + .long 1070072833 + .long 164091641 + .long 1020388279 + .long 2708127744 + .long 1070089513 + .long 3036550223 + .long 1023328684 + .long 3540797696 + .long 1070106199 + .long 3710949463 + .long 1022568805 + .long 1972276736 + .long 1070122892 + .long 3885277950 + .long 1019761674 + .long 2613815552 + .long 1070139591 + .long 2764165077 + .long 1022921023 + .long 1487791616 + .long 1070156297 + .long 1330644769 + .long 1023162679 + .long 3207593472 + .long 1070173009 + .long 3911007221 + .long 1022993496 + .long 3797764608 + .long 1070189728 + .long 979712598 + .long 1022554580 + .long 3578920448 + .long 1070206454 + .long 2825738223 + .long 1020223708 + .long 2872795648 + .long 1070223187 + .long 392451124 + .long 1022666279 + .long 2002258432 + .long 1070239927 + .long 3730407632 + .long 1023148291 + .long 1291326464 + .long 1070256674 + .long 3723802980 + .long 1022514089 + .long 1065180928 + .long 1070273428 + .long 2635617463 + .long 1022654470 + .long 1650181632 + .long 1070290189 + .long 2061982883 + .long 1022853411 + .long 3373882880 + .long 1070306957 + .long 319732785 + .long 1022017175 + .long 2270081280 + .long 1070323733 + .long 2237757411 + .long 1023064087 + .long 2963732736 + .long 1070340516 + .long 468839165 + .long 1023293774 + .long 1491099904 + .long 1070357307 + .long 1502657946 + .long 1021533479 + .long 2479636480 + .long 1070374105 + .long 482913562 + .long 1021986286 + .long 1968133632 + .long 1070390911 + .long 3281474337 + .long 1022646400 + .long 291639040 + .long 1070407725 + .long 2453320259 + .long 1022812423 + .long 2081472512 + .long 1070424546 + .long 2939989570 + .long 1023091888 + .long 3380340480 + .long 1070441375 + .long 2850707499 + .long 1021921109 + .long 232287488 + .long 1070458213 + .long 3674625342 + .long 1020725130 + .long 1567614208 + .long 1070475058 + .long 9347334 + .long 1022024009 + .long 3433091072 + .long 1070491911 + .long 282524999 + .long 1021433523 + .long 1876877312 + .long 1070508773 + .long 3470449440 + .long 1019309721 + .long 1538472192 + .long 1070525643 + .long 2089486825 + .long 1019698916 + .long 2763830784 + .long 1070542521 + .long 443498115 + .long 1020505194 + .long 1605381632 + .long 1070559408 + .long 3018871601 + .long 1022869913 + .long 2706946048 + .long 1070576303 + .long 3936260892 + .long 1023175875 + .long 2123887360 + .long 1070593207 + .long 2994220655 + .long 1022825948 + .long 104015104 + .long 1070603108 + .long 335054493 + .long 1023441853 + .long 2904568832 + .long 1070615800 + .long 1451215633 + .long 1023853857 + .long 3456197120 + .long 1070632739 + .long 436334733 + .long 1024026432 + .long 252452352 + .long 1070649697 + .long 34596167 + .long 1024031396 + .long 3328018432 + .long 1070666672 + .long 2644547073 + .long 1024296758 + .long 1255829248 + .long 1070683667 + .long 552832586 + .long 1023763122 + .long 4097058560 + .long 1070700680 + .long 1955640623 + .long 1021394654 + .long 451770112 + .long 1070717714 + .long 3428903777 + .long 1022941142 + .long 408920832 + .long 1070734767 + .long 165503263 + .long 1023894958 + .long 1186960640 + .long 1070751840 + .long 435826450 + .long 1024026134 + .long 19078656 + .long 1070768934 + .long 1834169749 + .long 1022899284 + .long 2743490304 + .long 1070786048 + .long 494581074 + .long 1018818479 + .long 2328961024 + .long 1070803184 + .long 2987908834 + .long 1022581110 + .long 350011392 + .long 1070820342 + .long 240771184 + .long 1024143083 + .long 2692326912 + .long 1070837521 + .long 666056837 + .long 1022394776 + .long 2373274368 + .long 1070854723 + .long 2484337770 + .long 1024228156 + .long 1017131520 + .long 1070871948 + .long 3285648279 + .long 1024025789 + .long 265558272 + .long 1070889196 + .long 392241896 + .long 1024252809 + .long 1778008064 + .long 1070906467 + .long 1536107943 + .long 1023949300 + .long 2937184768 + .long 1070923762 + .long 3541062251 + .long 1019448646 + .long 1144442880 + .long 1070941082 + .long 3691683781 + .long 1022123948 + .long 2410165504 + .long 1070958426 + .long 1804181960 + .long 1023945221 + .long 4174350848 + .long 1070975795 + .long 2016094861 + .long 1021716585 + .long 3897012480 + .long 1070993190 + .long 175294410 + .long 1023703404 + .long 3353623040 + .long 1071010611 + .long 167973242 + .long 1023240839 + .long 45671168 + .long 1071028059 + .long 2166856113 + .long 1021565413 + .long 86063872 + .long 1071045533 + .long 2676254727 + .long 1023985299 + .long 1019772672 + .long 1071063034 + .long 989043593 + .long 1021549587 + .long 414297344 + .long 1071080563 + .long 3960972046 + .long 1024307251 + .long 155173120 + .long 1071098120 + .long 1830919291 + .long 1021592251 + .long 2151562240 + .long 1071115705 + .long 405408666 + .long 1023423128 + .long 4041854720 + .long 1071133319 + .long 2043497827 + .long 1024411503 + .long 3489224192 + .long 1071150963 + .long 3072215864 + .long 1022698635 + .long 2477196288 + .long 1071168637 + .long 1812195139 + .long 1022689192 + .long 3015298816 + .long 1071186341 + .long 764841969 + .long 1021027331 + .long 2844731136 + .long 1071204076 + .long 2878117321 + .long 1019116513 + .long 4028950528 + .long 1071221842 + .long 698911452 + .long 1023265602 + .long 69441536 + .long 1071239641 + .long 3253467847 + .long 1020795075 + .long 1676209920 + .long 1071257471 + .long 4272431167 + .long 1022873982 + .long 2408752384 + .long 1071275334 + .long 648519100 + .long 1024385717 + .long 151623680 + .long 1071293231 + .long 345257017 + .long 1019561408 + .long 1410154240 + .long 1071311161 + .long 197863993 + .long 1023224207 + .long 4131351552 + .long 1071329125 + .long 2620801789 + .long 1024411169 + .long 1999664384 + .long 1071347125 + .long 3952692616 + .long 1024168086 + .long 1617668864 + .long 1071365160 + .long 3019889809 + .long 1021907692 + .long 1032074240 + .long 1071383231 + .long 59469899 + .long 1023656194 + .long 2619492096 + .long 1071401338 + .long 1417526820 + .long 1021457783 + .long 202429440 + .long 1071419483 + .long 2927667935 + .long 1019175447 + .long 525044224 + .long 1071437665 + .long 38166811 + .long 1023981879 + .long 1779258880 + .long 1071455885 + .long 481252500 + .long 1023310234 + .long 2195673600 + .long 1071474144 + .long 3962395981 + .long 1021339088 + .long 44573696 + .long 1071492443 + .long 3936281395 + .long 1023014829 + .long 2226905344 + .long 1071510781 + .long 1515320476 + .long 1024320623 + .long 2800512512 + .long 1071529160 + .long 1225403697 + .long 1021081846 + .long 161113600 + .long 1071547581 + .long 3064809733 + .long 1024173917 + .long 1338410240 + .long 1071566043 + .long 2027604973 + .long 1024362526 + .long 522433280 + .long 1071584548 + .long 2055171723 + .long 1023858825 + .long 539595776 + .long 1071603096 + .long 3868820135 + .long 1022936424 + .long 4264017664 + .long 1071621687 + .long 3228065145 + .long 1023479578 + .long 1733924096 + .long 1071640324 + .long 3511934475 + .long 1022496355 + .long 108880384 + .long 1071651839 + .long 615880967 + .long 1023519706 + .long 3517856512 + .long 1071661202 + .long 3113108559 + .long 1025190289 + .long 4043153152 + .long 1071670589 + .long 1571836218 + .long 1023106116 + .long 3251299072 + .long 1071680000 + .long 3444076102 + .long 1022187841 + .long 2736921600 + .long 1071689435 + .long 272771483 + .long 1025095280 + .long 3897698560 + .long 1071703633 + .long 2075390188 + .long 1022489022 + .long 3209485056 + .long 1071722652 + .long 1438094065 + .long 1021844944 + .long 3781432064 + .long 1071741774 + .long 1675017145 + .long 1024143828 + .long 2684184064 + .long 1071761003 + .long 2259963753 + .long 1024731393 + .long 1840489728 + .long 1071780342 + .long 3372883597 + .long 1023431408 + .long 3764087808 + .long 1071799794 + .long 3307523102 + .long 1024485788 + .long 3006232320 + .long 1071819364 + .long 3088971966 + .long 1025213251 + .long 3374881280 + .long 1071839055 + .long 834437749 + .long 1025236452 + .long 797284864 + .long 1071858872 + .long 3122663941 + .long 1025320473 + .long 545765120 + .long 1071878818 + .long 826539625 + .long 1022450955 + .long 107562240 + .long 1071898898 + .long 339584600 + .long 1022481255 + .long 2123649024 + .long 1071919116 + .long 3912959833 + .long 1024321009 + .long 1562385664 + .long 1071939478 + .long 2846067230 + .long 1023343981 + .long 2963085824 + .long 1071959988 + .long 954548627 + .long 1021475211 + .long 3325550592 + .long 1071980652 + .long 3459651155 + .long 1025305573 + .long 775752448 + .long 1072001476 + .long 3582746667 + .long 1023859460 + .long 3238590720 + .long 1072022464 + .long 634636162 + .long 1024472353 + .long 2758801920 + .long 1072043624 + .long 3078216319 + .long 1025304516 + .long 1370319104 + .long 1072064962 + .long 2570569078 + .long 1025099442 + .long 2615805184 + .long 1072086484 + .long 3729933412 + .long 1024605112 + .long 3077336576 + .long 1072108198 + .long 1948916066 + .long 1024781603 + .long 1099528192 + .long 1072130112 + .long 3139143157 + .long 1023729360 + .long 1231903232 + .long 1072152233 + .long 1349513477 + .long 1024737515 + .long 1507504128 + .long 1072174570 + .long 3484516322 + .long 1024000959 + .long 2214659840 + .long 1072197132 + .long 2563820917 + .long 1025225535 + .long 1804739840 + .long 1072219929 + .long 760038746 + .long 1024482855 + .long 1413746688 + .long 1072242971 + .long 3401734714 + .long 1025129838 + .long 821409536 + .long 1072266269 + .long 3729772551 + .long 1025484796 + .long 3031825664 + .long 1072289834 + .long 122256749 + .long 1024752594 + .long 1710784256 + .long 1072313680 + .long 1518205483 + .long 1024724809 + .long 3025265152 + .long 1072337819 + .long 409951989 + .long 1022835555 + .long 287769088 + .long 1072362267 + .long 800355594 + .long 1022484850 + .long 198179840 + .long 1072387038 + .long 3502926213 + .long 1024209373 + .long 1909130496 + .long 1072412149 + .long 3064694319 + .long 1025380823 + .long 1941732096 + .long 1072437619 + .long 4112930390 + .long 1024294679 + .long 3492010496 + .long 1072463467 + .long 2684918107 + .long 1023220233 + .long 81959680 + .long 1072489716 + .long 220021366 + .long 1020635131 + .long 2297837056 + .long 1072516387 + .long 4027683826 + .long 1021041185 + .long 270404096 + .long 1072543508 + .long 2012766065 + .long 1021780753 + .long 3667376896 + .long 1072571105 + .long 2727981522 + .long 1023009874 + .long 330400256 + .long 1072599212 + .long 2940017003 + .long 1025393439 + .long 1119293952 + .long 1072627861 + .long 1608550416 + .long 1022675612 + .long 3536155904 + .long 1072657091 + .long 349665778 + .long 1025156751 + .long 3078046720 + .long 1072686946 + .long 2016159996 + .long 1022193169 + .long 455228416 + .long 1072705361 + .long 1908539328 + .long 1026126332 + .long 1871505664 + .long 1072720988 + .long 2784700894 + .long 1025922277 + .long 1630994432 + .long 1072737010 + .long 361107678 + .long 1022887244 + .long 2084558336 + .long 1072753462 + .type Tbl_addr,@object + .size Tbl_addr,3840 + .space 768, 0x00 # pad + .align 16 +cv: + .long 0 + .long 0 + .long 1431655765 + .long 3217380693 + .long 858993459 + .long 3216192307 + .long 3067833783 + .long 3215383405 + .type cv,@object + .size cv,32 + .align 16 +PI_BY_2: + .long 856972295 + .long 1016178214 + .long 1413754136 + .long 1073291771 + .type PI_BY_2,@object + .size PI_BY_2,16 + .align 16 +NEG_PI: + .long 856972295 + .long 3164710438 + .long 1413754136 + .long 3221823995 + .type NEG_PI,@object + .size NEG_PI,16 + .align 16 +cv2: + .long 780903145 + .long 1066854586 + .long 858993459 + .long 1068708659 + .long 3340530119 + .long 1067392113 + .long 1431655765 + .long 1069897045 + .long 1321528399 + .long 1066517740 + .long 3067833783 + .long 1067899757 + .long 2021159460 + .long 1065855096 + .long 2576980378 + .long 1066178969 + .type cv2,@object + .size cv2,64 + .align 16 +HALFMASK: + .long 4160749568 + .long 4294967295 + .long 4160749568 + .long 4294967295 + .type HALFMASK,@object + .size HALFMASK,16 + .align 16 +PI: + .long 856972295 + .long 1017226790 + .long 1413754136 + .long 1074340347 + .type PI,@object + .size PI,16 + .align 4 +ONEMASK: + .long 0 + .long 1072693248 + .type ONEMASK,@object + .size ONEMASK,8 + .align 4 +TMASK: + .long 0 + .long 4294950912 + .type TMASK,@object + .size TMASK,8 + .align 4 +ONE_BY_2: + .long 0 + .long 1071644672 + .type ONE_BY_2,@object + .size ONE_BY_2,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_acos.1-. + .4byte ..___tag_value_acos.5-..___tag_value_acos.1 + .2byte 0x0400 + .4byte ..___tag_value_acos.3-..___tag_value_acos.1 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_acos.4-..___tag_value_acos.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/e_asin.S b/libm/x86_64/e_asin.S new file mode 100644 index 000000000..9f41c7cfd --- /dev/null +++ b/libm/x86_64/e_asin.S @@ -0,0 +1,2036 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// To compute asin(s), separate schemes are used when s is in different +// intervals. +// +// |s| in [2^{-4}, sqrt(3)/2): +// Let t=2^k*1.b1 b2..b6 1, where s=2^k*1.b1 b2 .. b52 +// asin(s)=asin(t)+asin(r), where r=s*sqrt(1-t^2)-t*sqrt(1-s^2) +// asin(r)-r evaluated as 7-degree polynomial (c3*r^3+c5*r^5+c7*r^7) +// For the first degree term, r is evaluated as +// R=(s^2-t^2)/(sqrt(1-t^2)*s+sqrt(1-s^2)*t) +// (sqrt(1-t^2) read from table) +// The main source of error is still R (may still be affected by up to 3 ulps +// of rounding error). The table size must be sufficiently large, to minimize +// this effect. +// +// |s| in [sqrt(3)/2, 255/256): +// Let t=2^k*1.b1 b2..b6 1, where sqrt(1-s^2)=2^k*1.b1 b2 .. b52 (rounded) +// asin(|s|)=pi/2-asin(t)+asin(r), r=s*t-sqrt(1-s^2)*sqrt(1-t^2) +// asin(r) evaluated as polynomial (same as above) +// The first degree term is evaluated as +// r=(s^2+t^2-1)/(s*t+sqrt(1-s^2)*sqrt(1-t^2)) +// +// |s|<2^{-4}: evaluate as 13-degree polynomial +// +// |s| in [255/256,1): asin(|s|)=pi/2-asin(sqrt(1-s^2)) +// use 17-degree polynomial, get error term +// Q*eps ~ (1-s^2-Q^2)/(2*Q) for first term +// ( Q(1+eps)=sqrt(1-s^2) ) +// +// Special cases: +// asin(NaN) = quiet NaN, and raise invalid exception +// asin(INF) = QNaN and raise invalid exception +// asin(x) = QNaN and raise invalid exception, for |x|>1.0 +// asin(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin asin +ENTRY(asin) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_asin.1: + subq $24, %rsp +..___tag_value_asin.3: + movsd %xmm0, (%rsp) +..B1.2: + stmxcsr 16(%rsp) + movl 16(%rsp), %eax + andl $-24577, %eax + cmpl 16(%rsp), %eax + jne .L_2TAG_PACKET_0.0.2 +.L_2TAG_PACKET_1.0.2: + movsd ABSVALMASK(%rip), %xmm4 + movsd ONEMASK(%rip), %xmm3 + xorpd %xmm5, %xmm5 + movsd TMASK(%rip), %xmm2 + movl $8192, %ecx + pinsrw $2, %ecx, %xmm5 + movq %xmm0, %xmm1 + psrlq $44, %xmm0 + movd %xmm0, %edx + movq %xmm1, %xmm7 + movl $8192, %ecx + pinsrw $2, %ecx, %xmm5 + movq %xmm1, %xmm0 + movl $524287, %eax + andl %edx, %eax + subl $260864, %eax + cmpl $955, %eax + jae .L_2TAG_PACKET_2.0.2 + mulsd %xmm1, %xmm1 + andl $65535, %edx + subsd %xmm1, %xmm3 + sqrtsd %xmm3, %xmm3 + andpd %xmm7, %xmm2 + andl $-4, %edx + subl $64256, %edx + lea T_table(%rip), %r8 + movsd (%r8,%rdx,2), %xmm1 + orpd %xmm5, %xmm2 + lea Tbl_addr(%rip), %r8 + movapd (%r8,%rdx,4), %xmm4 + movq %xmm7, %xmm6 + addsd %xmm2, %xmm7 + subsd %xmm2, %xmm0 + mulsd %xmm7, %xmm0 + mulsd %xmm1, %xmm6 + mulsd %xmm2, %xmm3 + movq %xmm6, %xmm1 + addsd %xmm3, %xmm6 + divsd %xmm6, %xmm0 + movsd 16+cv(%rip), %xmm7 + movsd cv(%rip), %xmm5 + subsd %xmm3, %xmm1 + andpd SIGNMASK(%rip), %xmm2 + movq %xmm1, %xmm3 + mulsd %xmm1, %xmm1 + movsd 8+cv(%rip), %xmm6 + mulsd %xmm1, %xmm3 + mulsd %xmm1, %xmm7 + mulsd %xmm3, %xmm5 + xorpd %xmm2, %xmm4 + mulsd %xmm1, %xmm3 + addsd %xmm7, %xmm6 + mulsd %xmm3, %xmm6 + addsd %xmm4, %xmm5 + pshufd $238, %xmm4, %xmm4 + addsd %xmm5, %xmm6 + orpd %xmm2, %xmm4 + addsd %xmm6, %xmm0 + movl 16(%rsp), %eax + andl $-24577, %eax + cmpl 16(%rsp), %eax + je .L_2TAG_PACKET_3.0.2 + stmxcsr 20(%rsp) + movl 16(%rsp), %eax + andl $24576, %eax + orl %eax, 20(%rsp) + ldmxcsr 20(%rsp) +.L_2TAG_PACKET_3.0.2: + addsd %xmm4, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_2.0.2: + subl $955, %eax + cmpl $67, %eax + jae .L_2TAG_PACKET_4.0.2 + mulsd %xmm1, %xmm1 + subsd %xmm1, %xmm3 + sqrtsd %xmm3, %xmm3 + movl %edx, %eax + andpd ABSVALMASK(%rip), %xmm0 + andpd HALFMASK2(%rip), %xmm7 + movq %xmm0, %xmm1 + movsd ONEMASK(%rip), %xmm4 + movq %xmm7, %xmm6 + subsd %xmm7, %xmm1 + mulsd %xmm7, %xmm7 + addsd %xmm6, %xmm0 + subsd %xmm7, %xmm4 + mulsd %xmm1, %xmm0 + movq %xmm3, %xmm7 + andpd %xmm3, %xmm2 + psllq $2, %xmm3 + pextrw $3, %xmm3, %edx + orpd %xmm5, %xmm2 + subl $65216, %edx + addl %edx, %edx + lea T_table(%rip), %r8 + mulsd (%r8,%rdx,4), %xmm7 + mulsd %xmm2, %xmm6 + movapd PI_BY_2(%rip), %xmm3 + mulsd %xmm2, %xmm1 + mulsd %xmm2, %xmm2 + subsd %xmm7, %xmm6 + addsd %xmm1, %xmm6 + subsd %xmm2, %xmm4 + addsd %xmm7, %xmm7 + movsd cv(%rip), %xmm5 + subsd %xmm0, %xmm4 + addsd %xmm6, %xmm7 + movsd 16+cv(%rip), %xmm0 + divsd %xmm7, %xmm4 + movsd 8+cv(%rip), %xmm2 + lea Tbl_addr(%rip), %r8 + subpd (%r8,%rdx,8), %xmm3 + movq %xmm6, %xmm1 + mulsd %xmm6, %xmm6 + andl $524288, %eax + shrl $4, %eax + mulsd %xmm6, %xmm0 + mulsd %xmm6, %xmm1 + mulsd %xmm1, %xmm5 + mulsd %xmm6, %xmm1 + addsd %xmm2, %xmm0 + pxor %xmm6, %xmm6 + mulsd %xmm1, %xmm0 + addsd %xmm3, %xmm5 + pinsrw $3, %eax, %xmm6 + addsd %xmm5, %xmm0 + movq %xmm4, %xmm5 + pshufd $238, %xmm3, %xmm3 + subsd %xmm3, %xmm4 + addsd %xmm4, %xmm3 + subsd %xmm3, %xmm5 + subsd %xmm5, %xmm0 + movl 16(%rsp), %eax + andl $-24577, %eax + cmpl 16(%rsp), %eax + je .L_2TAG_PACKET_5.0.2 + stmxcsr 20(%rsp) + movl 16(%rsp), %eax + andl $24576, %eax + orl %eax, 20(%rsp) + ldmxcsr 20(%rsp) +.L_2TAG_PACKET_5.0.2: + xorpd %xmm6, %xmm0 + xorpd %xmm6, %xmm4 + subsd %xmm4, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_4.0.2: + addl $15291, %eax + cmpl $14336, %eax + jae .L_2TAG_PACKET_6.0.2 + unpcklpd %xmm7, %xmm7 + movapd cv2(%rip), %xmm1 + movapd %xmm7, %xmm6 + movapd 16+cv2(%rip), %xmm2 + movapd 32+cv2(%rip), %xmm4 + mulpd %xmm7, %xmm7 + mulpd %xmm7, %xmm6 + mulpd %xmm7, %xmm1 + mulpd %xmm7, %xmm7 + movq %xmm6, %xmm3 + mulsd %xmm6, %xmm6 + addpd %xmm2, %xmm1 + mulpd %xmm7, %xmm4 + mulsd %xmm3, %xmm6 + addpd %xmm4, %xmm1 + mulpd %xmm6, %xmm1 + pshufd $238, %xmm1, %xmm2 + addsd %xmm2, %xmm1 + movl 16(%rsp), %eax + andl $-24577, %eax + cmpl 16(%rsp), %eax + je .L_2TAG_PACKET_7.0.2 + stmxcsr 20(%rsp) + movl 16(%rsp), %eax + andl $24576, %eax + orl %eax, 20(%rsp) + ldmxcsr 20(%rsp) +.L_2TAG_PACKET_7.0.2: + addsd %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_6.0.2: + subl $15358, %eax + cmpl $2, %eax + jae .L_2TAG_PACKET_8.0.2 + mulsd %xmm1, %xmm1 + subsd %xmm1, %xmm3 + sqrtsd %xmm3, %xmm3 + movl %edx, %eax + andpd HALFMASK(%rip), %xmm7 + pshufd $68, %xmm3, %xmm5 + andpd HALFMASK(%rip), %xmm3 + movq %xmm7, %xmm1 + movsd ONEMASK(%rip), %xmm4 + movq %xmm7, %xmm6 + subsd %xmm7, %xmm0 + mulsd %xmm7, %xmm7 + addsd %xmm1, %xmm1 + mulsd %xmm0, %xmm1 + subsd %xmm7, %xmm4 + movq %xmm3, %xmm6 + mulsd %xmm3, %xmm3 + mulsd %xmm0, %xmm0 + subsd %xmm1, %xmm4 + subsd %xmm5, %xmm6 + addsd %xmm5, %xmm5 + subsd %xmm3, %xmm4 + movapd cv2(%rip), %xmm2 + pshufd $238, %xmm5, %xmm3 + subsd %xmm0, %xmm4 + addsd %xmm6, %xmm5 + pshufd $238, %xmm3, %xmm7 + addsd %xmm3, %xmm3 + mulsd %xmm6, %xmm5 + addsd %xmm5, %xmm4 + pshufd $238, %xmm7, %xmm6 + divsd %xmm3, %xmm4 + movapd 48+cv2(%rip), %xmm1 + movapd 16+cv2(%rip), %xmm5 + movapd 32+cv2(%rip), %xmm0 + mulpd %xmm7, %xmm7 + movq %xmm6, %xmm3 + mulpd %xmm7, %xmm2 + mulpd %xmm7, %xmm6 + shrl $4, %eax + andl $32768, %eax + mulsd %xmm7, %xmm1 + mulpd %xmm7, %xmm7 + addpd %xmm2, %xmm5 + movapd %xmm6, %xmm2 + mulsd %xmm6, %xmm6 + mulpd %xmm0, %xmm7 + movapd PI_BY_2(%rip), %xmm0 + mulsd %xmm6, %xmm2 + addpd %xmm5, %xmm7 + pshufd $238, %xmm1, %xmm5 + mulsd %xmm2, %xmm6 + mulpd %xmm2, %xmm7 + addsd %xmm5, %xmm1 + xorpd %xmm5, %xmm5 + pshufd $238, %xmm7, %xmm2 + mulsd %xmm6, %xmm1 + pshufd $238, %xmm0, %xmm6 + addsd %xmm2, %xmm7 + movq %xmm3, %xmm2 + pinsrw $3, %eax, %xmm5 + subsd %xmm6, %xmm3 + addsd %xmm1, %xmm0 + addsd %xmm3, %xmm6 + addsd %xmm4, %xmm7 + subsd %xmm6, %xmm2 + subsd %xmm7, %xmm0 + subsd %xmm2, %xmm0 + movl 16(%rsp), %eax + andl $-24577, %eax + cmpl 16(%rsp), %eax + je .L_2TAG_PACKET_9.0.2 + stmxcsr 20(%rsp) + movl 16(%rsp), %eax + andl $24576, %eax + orl %eax, 20(%rsp) + ldmxcsr 20(%rsp) +.L_2TAG_PACKET_9.0.2: + xorpd %xmm5, %xmm0 + xorpd %xmm5, %xmm3 + subsd %xmm3, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_8.0.2: + addl $261886, %eax + cmpl $261888, %eax + jb .L_2TAG_PACKET_10.0.2 + movd %xmm0, %ecx + psrlq $32, %xmm0 + movd %xmm0, %edx + andl $2147483647, %edx + movl $1072693248, %eax + subl %edx, %eax + orl %ecx, %eax + cmpl $0, %eax + je .L_2TAG_PACKET_11.0.2 + movsd (%rsp), %xmm2 + movd %xmm2, %edx + psrlq $32, %xmm2 + movd %xmm2, %ecx + andl $2147483647, %ecx + subl $1, %edx + sbbl $2146435072, %ecx + cmpl $0, %ecx + jge .L_2TAG_PACKET_10.0.2 + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %edx + pinsrw $3, %edx, %xmm1 + mulsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_12.0.2 +.L_2TAG_PACKET_11.0.2: + movsd ABSVALMASK(%rip), %xmm1 + movsd PI_BY_2(%rip), %xmm2 + movsd 8+PI_BY_2(%rip), %xmm0 + addsd %xmm2, %xmm0 + andnpd %xmm7, %xmm1 + orpd %xmm1, %xmm0 + movl 16(%rsp), %eax + andl $-24577, %eax + cmpl 16(%rsp), %eax + je .L_2TAG_PACKET_13.0.2 + stmxcsr 20(%rsp) + movl 16(%rsp), %eax + andl $24576, %eax + orl %eax, 20(%rsp) + ldmxcsr 20(%rsp) +.L_2TAG_PACKET_13.0.2: + jmp ..B1.5 +.L_2TAG_PACKET_10.0.2: + movsd (%rsp), %xmm0 + xorpd %xmm6, %xmm6 + movq %xmm0, %xmm7 + movl 16(%rsp), %eax + andl $-24577, %eax + cmpl 16(%rsp), %eax + je .L_2TAG_PACKET_14.0.2 + stmxcsr 20(%rsp) + movl 16(%rsp), %eax + andl $24576, %eax + orl %eax, 20(%rsp) + ldmxcsr 20(%rsp) +.L_2TAG_PACKET_14.0.2: + pextrw $3, %xmm0, %edx + andl $32752, %edx + subl $16, %edx + cmpl $32736, %edx + jb .L_2TAG_PACKET_15.0.2 + addsd %xmm0, %xmm6 + orpd %xmm6, %xmm0 + mulsd %xmm0, %xmm7 +.L_2TAG_PACKET_15.0.2: + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: + movl %eax, 20(%rsp) + ldmxcsr 20(%rsp) + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_12.0.2: + movl 16(%rsp), %eax + andl $-24577, %eax + cmpl 16(%rsp), %eax + je .L_2TAG_PACKET_16.0.2 + stmxcsr 20(%rsp) + movl 16(%rsp), %eax + andl $24576, %eax + orl %eax, 20(%rsp) + ldmxcsr 20(%rsp) +.L_2TAG_PACKET_16.0.2: + movq %xmm0, 8(%rsp) +..B1.3: + movq 8(%rsp), %xmm0 +.L_2TAG_PACKET_17.0.2: +..B1.5: + addq $24, %rsp +..___tag_value_asin.4: + ret +..___tag_value_asin.5: +END(asin) +# -- End asin + .section .rodata, "a" + .align 16 + .align 16 +ABSVALMASK: + .long 4294967295 + .long 2147483647 + .long 0 + .long 0 + .type ABSVALMASK,@object + .size ABSVALMASK,16 + .align 16 +T_table: + .long 2642784509 + .long 1072689083 + .long 1514442531 + .long 1072688953 + .long 333108933 + .long 1072688821 + .long 3392112024 + .long 1072688686 + .long 2099852862 + .long 1072688550 + .long 749609004 + .long 1072688412 + .long 3634632596 + .long 1072688271 + .long 2163248461 + .long 1072688129 + .long 628657846 + .long 1072687985 + .long 3324036511 + .long 1072687838 + .long 1657632815 + .long 1072687690 + .long 4217538760 + .long 1072687539 + .long 2411951597 + .long 1072687387 + .long 533944872 + .long 1072687233 + .long 2876566508 + .long 1072687076 + .long 847936891 + .long 1072686918 + .long 3036019913 + .long 1072686757 + .long 848884575 + .long 1072686595 + .long 2874443326 + .long 1072686430 + .long 520713666 + .long 1072686264 + .long 2375556481 + .long 1072686095 + .long 4141904948 + .long 1072685924 + .long 1522666382 + .long 1072685752 + .long 3105624104 + .long 1072685577 + .long 298666327 + .long 1072685401 + .long 1689524500 + .long 1072685222 + .long 2981002200 + .long 1072685041 + .long 4170844284 + .long 1072684858 + .long 961802263 + .long 1072684674 + .long 1941503454 + .long 1072684487 + .long 2812647170 + .long 1072684298 + .long 3572873869 + .long 1072684107 + .long 4219797823 + .long 1072683914 + .long 456039788 + .long 1072683720 + .long 869096151 + .long 1072683523 + .long 1161535119 + .long 1072683324 + .long 1330865866 + .long 1072683123 + .long 1374571204 + .long 1072682920 + .long 1290107538 + .long 1072682715 + .long 1074904836 + .long 1072682508 + .long 726366587 + .long 1072682299 + .long 241869763 + .long 1072682088 + .long 3913732079 + .long 1072681874 + .long 3149342765 + .long 1072681659 + .long 2240966306 + .long 1072681442 + .long 1185873216 + .long 1072681223 + .long 4276274591 + .long 1072681001 + .long 2919452883 + .long 1072680778 + .long 1407565635 + .long 1072680553 + .long 4032743551 + .long 1072680325 + .long 2202188565 + .long 1072680096 + .long 207977577 + .long 1072679865 + .long 2342160518 + .long 1072679631 + .long 11858423 + .long 1072679396 + .long 1804034453 + .long 1072679158 + .long 3420722787 + .long 1072678918 + .long 563930456 + .long 1072678677 + .long 1820539192 + .long 1072678433 + .long 2892501606 + .long 1072678187 + .long 3776710320 + .long 1072677939 + .long 175063337 + .long 1072677690 + .long 674333171 + .long 1072677438 + .long 976363026 + .long 1072677184 + .long 1077935934 + .long 1072676928 + .long 1921075490 + .long 1072676540 + .long 881493302 + .long 1072676016 + .long 3275752439 + .long 1072675483 + .long 486855588 + .long 1072674943 + .long 1077229111 + .long 1072674394 + .long 723950308 + .long 1072673837 + .long 3693582199 + .long 1072673271 + .long 1367335316 + .long 1072672698 + .long 2305837020 + .long 1072672116 + .long 2184358641 + .long 1072671526 + .long 972682840 + .long 1072670928 + .long 2935101762 + .long 1072670321 + .long 3745513263 + .long 1072669706 + .long 3372320886 + .long 1072669083 + .long 1783464620 + .long 1072668452 + .long 3241386215 + .long 1072667812 + .long 3418125284 + .long 1072667164 + .long 2280219148 + .long 1072666508 + .long 4088700758 + .long 1072665843 + .long 219227400 + .long 1072665171 + .long 3521816918 + .long 1072664489 + .long 1076205279 + .long 1072663800 + .long 1436484616 + .long 1072663102 + .long 271362610 + .long 1072662396 + .long 1838996688 + .long 1072661681 + .long 1807122518 + .long 1072660958 + .long 137953542 + .long 1072660227 + .long 1088178584 + .long 1072659487 + .long 324057537 + .long 1072658739 + .long 2101288076 + .long 1072657982 + .long 2085133974 + .long 1072657217 + .long 235324451 + .long 1072656444 + .long 806051592 + .long 1072655662 + .long 3756033140 + .long 1072654871 + .long 453542543 + .long 1072654073 + .long 3741177327 + .long 1072653265 + .long 691216109 + .long 1072652450 + .long 4145223372 + .long 1072651625 + .long 1174439091 + .long 1072650793 + .long 324416139 + .long 1072649952 + .long 1550246310 + .long 1072649102 + .long 511524674 + .long 1072648244 + .long 1457248482 + .long 1072647377 + .long 45944955 + .long 1072646502 + .long 525537397 + .long 1072645618 + .long 2848440188 + .long 1072644725 + .long 2671555633 + .long 1072643824 + .long 4241172637 + .long 1072642914 + .long 3213094278 + .long 1072641996 + .long 3832503688 + .long 1072641069 + .long 1754091534 + .long 1072640134 + .long 1221921804 + .long 1072639190 + .long 2184526489 + .long 1072638237 + .long 294902089 + .long 1072637276 + .long 4090375270 + .long 1072636305 + .long 632860906 + .long 1072635327 + .long 2753498702 + .long 1072634339 + .long 1808009252 + .long 1072633343 + .long 2036428672 + .long 1072632338 + .long 3383235626 + .long 1072631324 + .long 1497347484 + .long 1072630302 + .long 617018317 + .long 1072629271 + .long 684933058 + .long 1072628231 + .long 1643170798 + .long 1072627182 + .long 3011066360 + .long 1072625592 + .long 957158713 + .long 1072623442 + .long 1390907941 + .long 1072621256 + .long 3819155270 + .long 1072619034 + .long 3443571196 + .long 1072616777 + .long 4045412458 + .long 1072614484 + .long 805503923 + .long 1072612156 + .long 1778922015 + .long 1072609791 + .long 2125033665 + .long 1072607390 + .long 1287203863 + .long 1072604953 + .long 2992629568 + .long 1072602479 + .long 2367267127 + .long 1072599969 + .long 3115526047 + .long 1072597422 + .long 340219539 + .long 1072594839 + .long 2017215719 + .long 1072592218 + .long 3225443424 + .long 1072589560 + .long 3326565673 + .long 1072586865 + .long 1669811211 + .long 1072584133 + .long 1886735022 + .long 1072581363 + .long 3301071171 + .long 1072578555 + .long 928514283 + .long 1072575710 + .long 2656364059 + .long 1072572826 + .long 3473490507 + .long 1072569904 + .long 2649965606 + .long 1072566944 + .long 3736819052 + .long 1072563945 + .long 1680885175 + .long 1072560908 + .long 4413771 + .long 1072557832 + .long 2214869753 + .long 1072554716 + .long 3214725184 + .long 1072551561 + .long 2186079903 + .long 1072548367 + .long 2590372131 + .long 1072545133 + .long 3578146079 + .long 1072541859 + .long 4283712755 + .long 1072538545 + .long 3824834510 + .long 1072535191 + .long 1302400298 + .long 1072531797 + .long 95058636 + .long 1072528362 + .long 3563906063 + .long 1072524885 + .long 2167230730 + .long 1072521368 + .long 3524918334 + .long 1072517809 + .long 2353304918 + .long 1072514209 + .long 1939625839 + .long 1072510567 + .long 1256714581 + .long 1072506883 + .long 3552525848 + .long 1072503156 + .long 3464809522 + .long 1072499387 + .long 4200542593 + .long 1072495575 + .long 355609124 + .long 1072491721 + .long 3684139099 + .long 1072487822 + .long 148355918 + .long 1072483881 + .long 1457689242 + .long 1072479895 + .long 2118591596 + .long 1072475865 + .long 908848089 + .long 1072471791 + .long 877032689 + .long 1072467672 + .long 752012304 + .long 1072463508 + .long 3532301749 + .long 1072459298 + .long 3600563221 + .long 1072455043 + .long 3902857084 + .long 1072450742 + .long 3063101036 + .long 1072446395 + .long 3972344374 + .long 1072442001 + .long 903183549 + .long 1072437561 + .long 983892938 + .long 1072433073 + .long 2722858568 + .long 1072428537 + .long 302790515 + .long 1072423954 + .long 759811057 + .long 1072419322 + .long 2507809922 + .long 1072414641 + .long 2388408813 + .long 1072407528 + .long 2084492942 + .long 1072397870 + .long 2435703301 + .long 1072388010 + .long 1935433360 + .long 1072377945 + .long 2742047290 + .long 1072367671 + .long 2053284205 + .long 1072357185 + .long 657783367 + .long 1072346483 + .long 2893664841 + .long 1072335560 + .long 3718906405 + .long 1072324413 + .long 1547896303 + .long 1072313038 + .long 2494058440 + .long 1072301429 + .long 3133238742 + .long 1072289582 + .long 3327000086 + .long 1072277492 + .long 1860667274 + .long 1072265154 + .long 665340747 + .long 1072252562 + .long 443347841 + .long 1072239710 + .long 581282618 + .long 1072226592 + .long 3349780465 + .long 1072213201 + .long 914217606 + .long 1072199532 + .long 989797661 + .long 1072185576 + .long 945436416 + .long 1072171326 + .long 549291300 + .long 1072156774 + .long 1814636389 + .long 1072141911 + .long 239092858 + .long 1072126729 + .long 1794680724 + .long 1072111217 + .long 1241534678 + .long 1072095366 + .long 3366566214 + .long 1072079164 + .long 1244090828 + .long 1072062601 + .long 1708448120 + .long 1072045663 + .long 3544260650 + .long 1072028337 + .long 1402741403 + .long 1072010610 + .long 2551936888 + .long 1071992465 + .long 617669739 + .long 1071973887 + .long 794002186 + .long 1071954857 + .long 2021237693 + .long 1071935356 + .long 540450384 + .long 1071915364 + .long 1920555537 + .long 1071894857 + .long 2879585206 + .long 1071873811 + .long 3000237455 + .long 1071852199 + .long 3352974346 + .long 1071829991 + .long 569629937 + .long 1071807155 + .long 2077237208 + .long 1071783653 + .long 2284891805 + .long 1071759446 + .long 1226651784 + .long 1071734489 + .long 1102047405 + .long 1071708731 + .long 2009896384 + .long 1071682115 + .long 927419082 + .long 1071654577 + .long 85010366 + .long 1071607413 + .long 696431025 + .long 1071548180 + .long 2611410541 + .long 1071486585 + .long 2612593658 + .long 1071422396 + .long 3548155306 + .long 1071355336 + .long 3887997484 + .long 1071285073 + .long 244854763 + .long 1071211202 + .long 4214445648 + .long 1071133216 + .long 2303966727 + .long 1071050478 + .long 3991040013 + .long 1070962152 + .long 3126952278 + .long 1070867118 + .long 1817448378 + .long 1070763804 + .long 1793814864 + .long 1070649884 + .long 3507224072 + .long 1070447193 + .long 4027609105 + .long 1070148772 + .long 577507993 + .long 1069779414 + .long 2310232419 + .long 1068931829 + .type T_table,@object + .size T_table,2048 + .align 16 +Tbl_addr: + .long 3822952792 + .long 1021639372 + .long 182792448 + .long 1068507836 + .long 2264213271 + .long 1019558908 + .long 649052928 + .long 1068524253 + .long 1797139609 + .long 1022295143 + .long 1243095296 + .long 1068540671 + .long 1415938756 + .long 1021439537 + .long 2033294592 + .long 1068557090 + .long 2356809978 + .long 1021777916 + .long 3088063744 + .long 1068573510 + .long 2669055318 + .long 1022124482 + .long 180888576 + .long 1068589932 + .long 3566445325 + .long 1021358712 + .long 1970196992 + .long 1068606354 + .long 896980323 + .long 1021319659 + .long 4229555456 + .long 1068622777 + .long 436049712 + .long 1021319758 + .long 2732572160 + .long 1068639202 + .long 583123209 + .long 1020797960 + .long 1842831872 + .long 1068655628 + .long 1370449804 + .long 1021429270 + .long 1628994560 + .long 1068672055 + .long 2411391464 + .long 1021057980 + .long 2159763712 + .long 1068688483 + .long 1208692749 + .long 1021943903 + .long 3503886336 + .long 1068704912 + .long 538793309 + .long 1019744063 + .long 1435187200 + .long 1068721343 + .long 4085087612 + .long 1020608419 + .long 317469952 + .long 1068737775 + .long 144386942 + .long 1021440732 + .long 219617280 + .long 1068754208 + .long 2940088361 + .long 1019981122 + .long 1210558208 + .long 1068770642 + .long 2176850347 + .long 1018373705 + .long 3359268352 + .long 1068787077 + .long 2395611454 + .long 1021889042 + .long 2439803648 + .long 1068803514 + .long 1650705253 + .long 1020227966 + .long 2816203520 + .long 1068819952 + .long 3702166386 + .long 1019379914 + .long 262620672 + .long 1068836392 + .long 1855649370 + .long 1020453124 + .long 3438159616 + .long 1068852832 + .long 923063860 + .long 1019273834 + .long 3822105856 + .long 1068869274 + .long 4289947947 + .long 1019434249 + .long 1483729920 + .long 1068885718 + .long 787455814 + .long 1020738379 + .long 787321088 + .long 1068902163 + .long 3321653337 + .long 1021842569 + .long 1802253312 + .long 1068918609 + .long 2653633526 + .long 1021821525 + .long 302985984 + .long 1068935057 + .long 161272028 + .long 1021655149 + .long 653966080 + .long 1068951506 + .long 2566098667 + .long 1020066219 + .long 2924727296 + .long 1068967956 + .long 3646493722 + .long 1014292285 + .long 2889890304 + .long 1068984408 + .long 1081009196 + .long 1022189620 + .long 619098112 + .long 1069000862 + .long 4011643355 + .long 1021773297 + .long 477017600 + .long 1069017317 + .long 4030305534 + .long 1021292252 + .long 2533403904 + .long 1069033773 + .long 2645187591 + .long 1019527099 + .long 2563102208 + .long 1069050231 + .long 3857293792 + .long 1022311697 + .long 635982336 + .long 1069066691 + .long 3625936637 + .long 1017511744 + .long 1116940800 + .long 1069083152 + .long 3653872993 + .long 1022016631 + .long 4075964160 + .long 1069099614 + .long 2468900271 + .long 1021769532 + .long 993165568 + .long 1069116079 + .long 1358104224 + .long 1021199776 + .long 528586752 + .long 1069132545 + .long 2200950332 + .long 1022024872 + .long 2752395776 + .long 1069149012 + .long 3197072454 + .long 1017751319 + .long 3439855616 + .long 1069165481 + .long 1651081806 + .long 1020809338 + .long 2661257728 + .long 1069181952 + .long 539032752 + .long 1021728805 + .long 486957312 + .long 1069198425 + .long 3136045149 + .long 1016888671 + .long 1282340352 + .long 1069214899 + .long 2593963259 + .long 1018956103 + .long 822921728 + .long 1069231375 + .long 2146032737 + .long 1022306465 + .long 3474216192 + .long 1069247852 + .long 3976811625 + .long 1021350207 + .long 716902656 + .long 1069264332 + .long 718267222 + .long 1018624727 + .long 1211594496 + .long 1069280813 + .long 1485641389 + .long 1018447451 + .long 734070272 + .long 1069297296 + .long 354455128 + .long 1021341291 + .long 3650110720 + .long 1069313780 + .long 682185947 + .long 1021651853 + .long 1440663040 + .long 1069330267 + .long 3558574550 + .long 1021615110 + .long 2766612224 + .long 1069346755 + .long 874607978 + .long 1017746872 + .long 3404011008 + .long 1069363245 + .long 4154988502 + .long 1021439906 + .long 3423949056 + .long 1069379737 + .long 2263202309 + .long 1021479615 + .long 2897587712 + .long 1069396231 + .long 2562065031 + .long 1022090363 + .long 1896159232 + .long 1069412727 + .long 3836237663 + .long 1019867288 + .long 490968576 + .long 1069429225 + .long 3322056743 + .long 1006752762 + .long 3048360192 + .long 1069445724 + .long 1152314833 + .long 1013122252 + .long 1049850624 + .long 1069462226 + .long 3601590727 + .long 1022214610 + .long 3156899584 + .long 1069478729 + .long 1855169970 + .long 1019487271 + .long 851173376 + .long 1069495235 + .long 312649594 + .long 1020868604 + .long 2794281728 + .long 1069511742 + .long 1093490181 + .long 1020777577 + .long 468042496 + .long 1069528252 + .long 1152540679 + .long 1021403732 + .long 2534219264 + .long 1069544763 + .long 2292126035 + .long 1021872430 + .long 1376146432 + .long 1069558527 + .long 3293753641 + .long 1020500454 + .long 4175442432 + .long 1069575044 + .long 3626347564 + .long 1021610969 + .long 3523113472 + .long 1069591566 + .long 339956500 + .long 1021119039 + .long 4003350528 + .long 1069608092 + .long 3429333082 + .long 1022813542 + .long 1611067392 + .long 1069624623 + .long 2298017544 + .long 1021977587 + .long 931782144 + .long 1069641158 + .long 2164684743 + .long 1021250988 + .long 2256725504 + .long 1069657697 + .long 1138762335 + .long 1021443776 + .long 1582853120 + .long 1069674241 + .long 1084010382 + .long 1022994693 + .long 3497758720 + .long 1069690789 + .long 406366244 + .long 1022713586 + .long 3999816960 + .long 1069707342 + .long 1488723042 + .long 1023381290 + .long 3383096064 + .long 1069723900 + .long 2541558953 + .long 1019137887 + .long 1942403584 + .long 1069740463 + .long 1879620343 + .long 1022653642 + .long 4268263680 + .long 1069757030 + .long 3039077047 + .long 1022252545 + .long 2067062272 + .long 1069773603 + .long 4190670677 + .long 1020725863 + .long 4225828096 + .long 1069790180 + .long 1998567321 + .long 1022014385 + .long 2452507136 + .long 1069806763 + .long 1511628873 + .long 1021900300 + .long 1340746240 + .long 1069823351 + .long 788367341 + .long 1022726208 + .long 1190035456 + .long 1069839944 + .long 3856337230 + .long 1021834118 + .long 2300688384 + .long 1069856542 + .long 3211396579 + .long 1022621365 + .long 678886400 + .long 1069873146 + .long 4001011887 + .long 1022042646 + .long 921594112 + .long 1069889755 + .long 557811968 + .long 1023065533 + .long 3331668992 + .long 1069906369 + .long 1877060679 + .long 1022419742 + .long 3917875200 + .long 1069922989 + .long 1181055171 + .long 1022752712 + .long 2984829696 + .long 1069939615 + .long 4294526932 + .long 1021499988 + .long 838049024 + .long 1069956247 + .long 3658081878 + .long 1022957952 + .long 2078928384 + .long 1069972884 + .long 820353701 + .long 1019391107 + .long 2719854336 + .long 1069989527 + .long 1644022489 + .long 1023378240 + .long 3069117696 + .long 1070006176 + .long 2771393702 + .long 1019319954 + .long 3435962368 + .long 1070022831 + .long 3876394145 + .long 1023024433 + .long 4130595328 + .long 1070039492 + .long 1630447748 + .long 1021465882 + .long 1169236224 + .long 1070056160 + .long 2828355997 + .long 1020458120 + .long 3453997312 + .long 1070072833 + .long 164091641 + .long 1020388279 + .long 2708127744 + .long 1070089513 + .long 3036550223 + .long 1023328684 + .long 3540797696 + .long 1070106199 + .long 3710949463 + .long 1022568805 + .long 1972276736 + .long 1070122892 + .long 3885277950 + .long 1019761674 + .long 2613815552 + .long 1070139591 + .long 2764165077 + .long 1022921023 + .long 1487791616 + .long 1070156297 + .long 1330644769 + .long 1023162679 + .long 3207593472 + .long 1070173009 + .long 3911007221 + .long 1022993496 + .long 3797764608 + .long 1070189728 + .long 979712598 + .long 1022554580 + .long 3578920448 + .long 1070206454 + .long 2825738223 + .long 1020223708 + .long 2872795648 + .long 1070223187 + .long 392451124 + .long 1022666279 + .long 2002258432 + .long 1070239927 + .long 3730407632 + .long 1023148291 + .long 1291326464 + .long 1070256674 + .long 3723802980 + .long 1022514089 + .long 1065180928 + .long 1070273428 + .long 2635617463 + .long 1022654470 + .long 1650181632 + .long 1070290189 + .long 2061982883 + .long 1022853411 + .long 3373882880 + .long 1070306957 + .long 319732785 + .long 1022017175 + .long 2270081280 + .long 1070323733 + .long 2237757411 + .long 1023064087 + .long 2963732736 + .long 1070340516 + .long 468839165 + .long 1023293774 + .long 1491099904 + .long 1070357307 + .long 1502657946 + .long 1021533479 + .long 2479636480 + .long 1070374105 + .long 482913562 + .long 1021986286 + .long 1968133632 + .long 1070390911 + .long 3281474337 + .long 1022646400 + .long 291639040 + .long 1070407725 + .long 2453320259 + .long 1022812423 + .long 2081472512 + .long 1070424546 + .long 2939989570 + .long 1023091888 + .long 3380340480 + .long 1070441375 + .long 2850707499 + .long 1021921109 + .long 232287488 + .long 1070458213 + .long 3674625342 + .long 1020725130 + .long 1567614208 + .long 1070475058 + .long 9347334 + .long 1022024009 + .long 3433091072 + .long 1070491911 + .long 282524999 + .long 1021433523 + .long 1876877312 + .long 1070508773 + .long 3470449440 + .long 1019309721 + .long 1538472192 + .long 1070525643 + .long 2089486825 + .long 1019698916 + .long 2763830784 + .long 1070542521 + .long 443498115 + .long 1020505194 + .long 1605381632 + .long 1070559408 + .long 3018871601 + .long 1022869913 + .long 2706946048 + .long 1070576303 + .long 3936260892 + .long 1023175875 + .long 2123887360 + .long 1070593207 + .long 2994220655 + .long 1022825948 + .long 104015104 + .long 1070603108 + .long 335054493 + .long 1023441853 + .long 2904568832 + .long 1070615800 + .long 1451215633 + .long 1023853857 + .long 3456197120 + .long 1070632739 + .long 436334733 + .long 1024026432 + .long 252452352 + .long 1070649697 + .long 34596167 + .long 1024031396 + .long 3328018432 + .long 1070666672 + .long 2644547073 + .long 1024296758 + .long 1255829248 + .long 1070683667 + .long 552832586 + .long 1023763122 + .long 4097058560 + .long 1070700680 + .long 1955640623 + .long 1021394654 + .long 451770112 + .long 1070717714 + .long 3428903777 + .long 1022941142 + .long 408920832 + .long 1070734767 + .long 165503263 + .long 1023894958 + .long 1186960640 + .long 1070751840 + .long 435826450 + .long 1024026134 + .long 19078656 + .long 1070768934 + .long 1834169749 + .long 1022899284 + .long 2743490304 + .long 1070786048 + .long 494581074 + .long 1018818479 + .long 2328961024 + .long 1070803184 + .long 2987908834 + .long 1022581110 + .long 350011392 + .long 1070820342 + .long 240771184 + .long 1024143083 + .long 2692326912 + .long 1070837521 + .long 666056837 + .long 1022394776 + .long 2373274368 + .long 1070854723 + .long 2484337770 + .long 1024228156 + .long 1017131520 + .long 1070871948 + .long 3285648279 + .long 1024025789 + .long 265558272 + .long 1070889196 + .long 392241896 + .long 1024252809 + .long 1778008064 + .long 1070906467 + .long 1536107943 + .long 1023949300 + .long 2937184768 + .long 1070923762 + .long 3541062251 + .long 1019448646 + .long 1144442880 + .long 1070941082 + .long 3691683781 + .long 1022123948 + .long 2410165504 + .long 1070958426 + .long 1804181960 + .long 1023945221 + .long 4174350848 + .long 1070975795 + .long 2016094861 + .long 1021716585 + .long 3897012480 + .long 1070993190 + .long 175294410 + .long 1023703404 + .long 3353623040 + .long 1071010611 + .long 167973242 + .long 1023240839 + .long 45671168 + .long 1071028059 + .long 2166856113 + .long 1021565413 + .long 86063872 + .long 1071045533 + .long 2676254727 + .long 1023985299 + .long 1019772672 + .long 1071063034 + .long 989043593 + .long 1021549587 + .long 414297344 + .long 1071080563 + .long 3960972046 + .long 1024307251 + .long 155173120 + .long 1071098120 + .long 1830919291 + .long 1021592251 + .long 2151562240 + .long 1071115705 + .long 405408666 + .long 1023423128 + .long 4041854720 + .long 1071133319 + .long 2043497827 + .long 1024411503 + .long 3489224192 + .long 1071150963 + .long 3072215864 + .long 1022698635 + .long 2477196288 + .long 1071168637 + .long 1812195139 + .long 1022689192 + .long 3015298816 + .long 1071186341 + .long 764841969 + .long 1021027331 + .long 2844731136 + .long 1071204076 + .long 2878117321 + .long 1019116513 + .long 4028950528 + .long 1071221842 + .long 698911452 + .long 1023265602 + .long 69441536 + .long 1071239641 + .long 3253467847 + .long 1020795075 + .long 1676209920 + .long 1071257471 + .long 4272431167 + .long 1022873982 + .long 2408752384 + .long 1071275334 + .long 648519100 + .long 1024385717 + .long 151623680 + .long 1071293231 + .long 345257017 + .long 1019561408 + .long 1410154240 + .long 1071311161 + .long 197863993 + .long 1023224207 + .long 4131351552 + .long 1071329125 + .long 2620801789 + .long 1024411169 + .long 1999664384 + .long 1071347125 + .long 3952692616 + .long 1024168086 + .long 1617668864 + .long 1071365160 + .long 3019889809 + .long 1021907692 + .long 1032074240 + .long 1071383231 + .long 59469899 + .long 1023656194 + .long 2619492096 + .long 1071401338 + .long 1417526820 + .long 1021457783 + .long 202429440 + .long 1071419483 + .long 2927667935 + .long 1019175447 + .long 525044224 + .long 1071437665 + .long 38166811 + .long 1023981879 + .long 1779258880 + .long 1071455885 + .long 481252500 + .long 1023310234 + .long 2195673600 + .long 1071474144 + .long 3962395981 + .long 1021339088 + .long 44573696 + .long 1071492443 + .long 3936281395 + .long 1023014829 + .long 2226905344 + .long 1071510781 + .long 1515320476 + .long 1024320623 + .long 2800512512 + .long 1071529160 + .long 1225403697 + .long 1021081846 + .long 161113600 + .long 1071547581 + .long 3064809733 + .long 1024173917 + .long 1338410240 + .long 1071566043 + .long 2027604973 + .long 1024362526 + .long 522433280 + .long 1071584548 + .long 2055171723 + .long 1023858825 + .long 539595776 + .long 1071603096 + .long 3868820135 + .long 1022936424 + .long 4264017664 + .long 1071621687 + .long 3228065145 + .long 1023479578 + .long 1733924096 + .long 1071640324 + .long 3511934475 + .long 1022496355 + .long 108880384 + .long 1071651839 + .long 615880967 + .long 1023519706 + .long 3517856512 + .long 1071661202 + .long 3113108559 + .long 1025190289 + .long 4043153152 + .long 1071670589 + .long 1571836218 + .long 1023106116 + .long 3251299072 + .long 1071680000 + .long 3444076102 + .long 1022187841 + .long 2736921600 + .long 1071689435 + .long 272771483 + .long 1025095280 + .long 3897698560 + .long 1071703633 + .long 2075390188 + .long 1022489022 + .long 3209485056 + .long 1071722652 + .long 1438094065 + .long 1021844944 + .long 3781432064 + .long 1071741774 + .long 1675017145 + .long 1024143828 + .long 2684184064 + .long 1071761003 + .long 2259963753 + .long 1024731393 + .long 1840489728 + .long 1071780342 + .long 3372883597 + .long 1023431408 + .long 3764087808 + .long 1071799794 + .long 3307523102 + .long 1024485788 + .long 3006232320 + .long 1071819364 + .long 3088971966 + .long 1025213251 + .long 3374881280 + .long 1071839055 + .long 834437749 + .long 1025236452 + .long 797284864 + .long 1071858872 + .long 3122663941 + .long 1025320473 + .long 545765120 + .long 1071878818 + .long 826539625 + .long 1022450955 + .long 107562240 + .long 1071898898 + .long 339584600 + .long 1022481255 + .long 2123649024 + .long 1071919116 + .long 3912959833 + .long 1024321009 + .long 1562385664 + .long 1071939478 + .long 2846067230 + .long 1023343981 + .long 2963085824 + .long 1071959988 + .long 954548627 + .long 1021475211 + .long 3325550592 + .long 1071980652 + .long 3459651155 + .long 1025305573 + .long 775752448 + .long 1072001476 + .long 3582746667 + .long 1023859460 + .long 3238590720 + .long 1072022464 + .long 634636162 + .long 1024472353 + .long 2758801920 + .long 1072043624 + .long 3078216319 + .long 1025304516 + .long 1370319104 + .long 1072064962 + .long 2570569078 + .long 1025099442 + .long 2615805184 + .long 1072086484 + .long 3729933412 + .long 1024605112 + .long 3077336576 + .long 1072108198 + .long 1948916066 + .long 1024781603 + .long 1099528192 + .long 1072130112 + .long 3139143157 + .long 1023729360 + .long 1231903232 + .long 1072152233 + .long 1349513477 + .long 1024737515 + .long 1507504128 + .long 1072174570 + .long 3484516322 + .long 1024000959 + .long 2214659840 + .long 1072197132 + .long 2563820917 + .long 1025225535 + .long 1804739840 + .long 1072219929 + .long 760038746 + .long 1024482855 + .long 1413746688 + .long 1072242971 + .long 3401734714 + .long 1025129838 + .long 821409536 + .long 1072266269 + .long 3729772551 + .long 1025484796 + .long 3031825664 + .long 1072289834 + .long 122256749 + .long 1024752594 + .long 1710784256 + .long 1072313680 + .long 1518205483 + .long 1024724809 + .long 3025265152 + .long 1072337819 + .long 409951989 + .long 1022835555 + .long 287769088 + .long 1072362267 + .long 800355594 + .long 1022484850 + .long 198179840 + .long 1072387038 + .long 3502926213 + .long 1024209373 + .long 1909130496 + .long 1072412149 + .long 3064694319 + .long 1025380823 + .long 1941732096 + .long 1072437619 + .long 4112930390 + .long 1024294679 + .long 3492010496 + .long 1072463467 + .long 2684918107 + .long 1023220233 + .long 81959680 + .long 1072489716 + .long 220021366 + .long 1020635131 + .long 2297837056 + .long 1072516387 + .long 4027683826 + .long 1021041185 + .long 270404096 + .long 1072543508 + .long 2012766065 + .long 1021780753 + .long 3667376896 + .long 1072571105 + .long 2727981522 + .long 1023009874 + .long 330400256 + .long 1072599212 + .long 2940017003 + .long 1025393439 + .long 1119293952 + .long 1072627861 + .long 1608550416 + .long 1022675612 + .long 3536155904 + .long 1072657091 + .long 349665778 + .long 1025156751 + .long 3078046720 + .long 1072686946 + .long 2016159996 + .long 1022193169 + .long 455228416 + .long 1072705361 + .long 1908539328 + .long 1026126332 + .long 1871505664 + .long 1072720988 + .long 2784700894 + .long 1025922277 + .long 1630994432 + .long 1072737010 + .long 361107678 + .long 1022887244 + .long 2084558336 + .long 1072753462 + .type Tbl_addr,@object + .size Tbl_addr,3840 + .space 768, 0x00 # pad + .align 16 +SIGNMASK: + .long 0 + .long 2147483648 + .long 0 + .long 0 + .type SIGNMASK,@object + .size SIGNMASK,16 + .align 16 +HALFMASK2: + .long 0 + .long 2147483584 + .long 0 + .long 0 + .type HALFMASK2,@object + .size HALFMASK2,16 + .align 16 +PI_BY_2: + .long 856972295 + .long 1016178214 + .long 1413754136 + .long 1073291771 + .type PI_BY_2,@object + .size PI_BY_2,16 + .align 16 +cv2: + .long 780903145 + .long 1066854586 + .long 858993459 + .long 1068708659 + .long 3340530119 + .long 1067392113 + .long 1431655765 + .long 1069897045 + .long 1321528399 + .long 1066517740 + .long 3067833783 + .long 1067899757 + .long 2021159460 + .long 1065855096 + .long 2576980378 + .long 1066178969 + .type cv2,@object + .size cv2,64 + .align 16 +HALFMASK: + .long 4160749568 + .long 4294967295 + .long 4160749568 + .long 4294967295 + .type HALFMASK,@object + .size HALFMASK,16 + .align 4 +ONEMASK: + .long 0 + .long 1072693248 + .type ONEMASK,@object + .size ONEMASK,8 + .align 4 +TMASK: + .long 0 + .long 4294950912 + .type TMASK,@object + .size TMASK,8 + .align 4 +cv: + .long 1431655765 + .long 1069897045 + .long 858993459 + .long 1068708659 + .long 3067833783 + .long 1067899757 + .type cv,@object + .size cv,24 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_asin.1-. + .4byte ..___tag_value_asin.5-..___tag_value_asin.1 + .2byte 0x0400 + .4byte ..___tag_value_asin.3-..___tag_value_asin.1 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_asin.4-..___tag_value_asin.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/e_atan2.S b/libm/x86_64/e_atan2.S new file mode 100644 index 000000000..f9baea975 --- /dev/null +++ b/libm/x86_64/e_atan2.S @@ -0,0 +1,1242 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// +//1. The method is based on the relationship of atan2(Y,X) to atan(|Y/X|) +// as follows. +// / sign(Y) atan(|Y/X|) if X > 0 +// atan2(Y,X) = +// \ sign(Y)*pi - sign(Y)*atan(|Y/X|) if X < 0 +// +// Thus, atan2(Y,X) is of the form atan2(Y,X) = PI + sgn*atan(|Y/X|) +// where PI and sgn can be determined by the four possible combinations of +// of the pair (sign(X),sign(Y)). We concentrate on the numerical method +// for atan(|Y/X|). +// +//2. For |Y/X| < 2^(-64), atan(|Y/X|) ~=~ |Y/X|. Hence, atan2(Y,X) is Y/X +// if X > 0, and sign(Y)*pi otherwise. +//3. For |Y/X| >= 2^(65), atan(|Y/X|) ~=~ pi/2. Hence atan2(Y,X) is sign(Y)pi/2. +//4. For 2^(-64) <= |Y/X| < 2^(-5), atan(|Y/X|) is approximated by a polynomial +// of the form Z + Z*E*polynomial(E), where Z = |Y/X| and E = Z*Z. +//5. For |Y/X| > 2^(5), atan(|Y/X|) = pi/2 + atan(-|X/Y|), and atan(-|X/Y|) is +// calculated using the polynomial in 4 above. +//6. For 2^(-5) <= |Y/X| <= 2^(5), we employ a table lookup method. First, +// we obtain B = 2^k * 1.b1 b2 b3 b4 = 2^k * (1+k/16) that approximate +// |Y/X| to approximately 5 significant bits. Hence, atan(|Y/X|) is +// +// atan(|Y/X|) = atan(B) + atan(Z), where Z = (|Y|-B|X|)/(|X|+B|Y|). +// ~=~ tau + Z + Z*E*polynomial(E), where E = Z*Z. +// +// B has the range from 2^(-6)*(1+14/16) to 2^5 = 2^(5)*(1+0/16), totally +// 163 possible values. These values are calculated beforehand and stored +// in a table. The polynomial is the one used in 4. +// +// Special cases: +// atan2(+-0, +0) = +-0 +// atan2(+-0, -0) = +-pi +// atan2(+-0, x) = +-0, for x > 0, and +-pi, for x < 0 +// atan2(y, +-0) = +pi/2 for y > 0, and -pi/2 for y < 0 +// atan2(+-y, +INF) = +-0, for finite y > 0 +// atan2(+-y, -INF) = +-pi, for finite y > 0 +// atan2(+-INF, x) = +-pi/2, for finite x +// atan2(+-INF, +INF) = +-pi/4 +// atan2(+-INF, -INF) = +-3*pi/4 +// +/******************************************************************************/ + +#include +# -- Begin atan2 +ENTRY(atan2) +# parameter 1: %xmm0 +# parameter 2: %xmm1 +..B1.1: +..___tag_value_atan2.1: + subq $24, %rsp +..___tag_value_atan2.3: + movsd %xmm0, (%rsp) + movsd %xmm1, 8(%rsp) +..B1.2: + pextrw $3, %xmm0, %eax + andl $32752, %eax + subl $14448, %eax + cmpl $3840, %eax + ja .L_2TAG_PACKET_0.0.2 + pextrw $3, %xmm1, %eax + andl $32752, %eax + subl $14448, %eax + cmpl $3840, %eax + ja .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + unpcklpd %xmm1, %xmm0 + xorpd %xmm5, %xmm5 + xorpd %xmm3, %xmm3 + movl $2048, %eax + pinsrw $3, %eax, %xmm5 + paddw %xmm1, %xmm5 + psrlq $29, %xmm5 + rcpss %xmm5, %xmm3 + xorpd %xmm4, %xmm4 + movl $14336, %ecx + pinsrw $3, %ecx, %xmm4 + psllq $29, %xmm3 + paddw %xmm4, %xmm3 + mulsd %xmm0, %xmm3 + xorpd %xmm2, %xmm2 + xorpd %xmm6, %xmm6 + xorpd %xmm7, %xmm7 + movl $32768, %eax + pinsrw $2, %eax, %xmm6 + movl $32767, %ecx + pinsrw $3, %ecx, %xmm7 + paddd %xmm6, %xmm3 + andpd %xmm7, %xmm3 + movq %xmm3, %xmm5 + pextrw $3, %xmm3, %eax + movl $16448, %ecx + pinsrw $3, %ecx, %xmm2 + minsd %xmm2, %xmm3 + movmskpd %xmm0, %edx + psllq $1, %xmm0 + psrlq $1, %xmm0 + cmpsd $2, %xmm2, %xmm5 + psllq $1, %xmm1 + psrlq $1, %xmm1 + movq %xmm1, %xmm6 + movq %xmm1, %xmm7 + movq %xmm0, %xmm2 + movl $0, %ecx + pinsrw $0, %ecx, %xmm6 + subsd %xmm6, %xmm7 + movq %xmm0, %xmm4 + mulsd %xmm3, %xmm6 + mulsd %xmm3, %xmm4 + mulsd %xmm3, %xmm7 + andpd %xmm5, %xmm0 + subsd %xmm6, %xmm0 + andpd %xmm5, %xmm1 + addsd %xmm1, %xmm4 + subsd %xmm7, %xmm0 + andl $32752, %eax + subl $16286, %eax + cmpl $1121, %eax + ja .L_2TAG_PACKET_3.0.2 + divsd %xmm4, %xmm0 + pextrw $3, %xmm3, %ecx + movsd a2(%rip), %xmm2 + movsd b2(%rip), %xmm3 + pextrw $0, %xmm5, %eax + addl %edx, %edx + lea P_TBL(%rip), %r8 + movapd (%r8,%rdx,8), %xmm6 + lea SGN_TBL(%rip), %r8 + movapd (%r8,%rdx,8), %xmm1 + subl $16286, %ecx + notl %eax + andl $1, %eax + addl %eax, %ecx + addl %ecx, %ecx + lea ATAN_TBL(%rip), %r8 + movapd (%r8,%rcx,8), %xmm5 + xorpd %xmm1, %xmm5 + addpd %xmm6, %xmm5 + movq %xmm5, %xmm6 + unpckhpd %xmm5, %xmm5 + xorpd %xmm0, %xmm1 + movq %xmm1, %xmm4 + mulsd %xmm0, %xmm0 + mulsd %xmm0, %xmm2 + addsd %xmm0, %xmm3 + addsd %xmm6, %xmm1 + subsd %xmm1, %xmm6 + addsd %xmm4, %xmm6 + addsd 8+a2(%rip), %xmm2 + mulsd %xmm0, %xmm3 + mulsd %xmm4, %xmm0 + addsd %xmm5, %xmm6 + mulsd %xmm2, %xmm0 + addsd 8+b2(%rip), %xmm3 + mulsd %xmm3, %xmm0 + addsd %xmm6, %xmm0 + addsd %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_3.0.2: + addl $942, %eax + cmpl $942, %eax + ja .L_2TAG_PACKET_4.0.2 + xorpd %xmm4, %xmm4 + movl $16368, %ecx + pinsrw $3, %ecx, %xmm4 + divsd %xmm1, %xmm4 + addl %edx, %edx + lea SGN_TBL(%rip), %r8 + movapd (%r8,%rdx,8), %xmm6 + unpcklpd %xmm3, %xmm3 + xorpd %xmm6, %xmm0 + xorpd %xmm6, %xmm2 + xorpd %xmm6, %xmm3 + lea P_TBL2(%rip), %r8 + movapd (%r8,%rdx,8), %xmm7 + movsd a2(%rip), %xmm1 + movsd b2(%rip), %xmm5 + lea SELECT_B(%rip), %r8 + andpd (%r8,%rdx,8), %xmm3 + mulsd %xmm4, %xmm2 + mulsd %xmm4, %xmm0 + movq %xmm2, %xmm6 + mulsd %xmm2, %xmm2 + mulsd %xmm2, %xmm1 + addsd %xmm2, %xmm5 + mulsd %xmm2, %xmm6 + addsd 8+a2(%rip), %xmm1 + mulsd %xmm2, %xmm5 + addsd %xmm0, %xmm7 + addpd %xmm3, %xmm7 + mulsd %xmm6, %xmm1 + addsd 8+b2(%rip), %xmm5 + mulsd %xmm1, %xmm5 + addsd %xmm7, %xmm5 + pshufd $238, %xmm7, %xmm0 + addsd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_4.0.2: + movsd 8(%rsp), %xmm1 + movsd (%rsp), %xmm0 + pextrw $3, %xmm1, %eax + andl $32752, %eax + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + cmpl %eax, %ecx + jg .L_2TAG_PACKET_5.0.2 + pextrw $3, %xmm1, %ecx + cmpl $32767, %ecx + jg .L_2TAG_PACKET_6.0.2 + divsd %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_6.0.2: + andpd SGNMASK(%rip), %xmm0 + movsd pi_table(%rip), %xmm2 + xorpd %xmm2, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_5.0.2: + andpd SGNMASK(%rip), %xmm0 + movsd pi2_table(%rip), %xmm2 + xorpd %xmm2, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: +.L_2TAG_PACKET_1.0.2: + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + pextrw $3, %xmm1, %eax + andl $32752, %eax + cmpl $32752, %ecx + je .L_2TAG_PACKET_7.0.2 + cmpl $32752, %eax + je .L_2TAG_PACKET_8.0.2 + movsd POW55(%rip), %xmm3 + movl $1024, %edx + movsd INVEXPMASK(%rip), %xmm4 + xorpd %xmm6, %xmm6 + movsd EXPMASK(%rip), %xmm7 + cmpl $0, %ecx + je .L_2TAG_PACKET_9.0.2 +.L_2TAG_PACKET_10.0.2: + cmpl $0, %eax + je .L_2TAG_PACKET_11.0.2 +.L_2TAG_PACKET_12.0.2: + addl %ecx, %edx + subl %eax, %edx + cmpl $2048, %edx + ja .L_2TAG_PACKET_4.0.2 + addl $15344, %edx + pinsrw $3, %edx, %xmm6 + andpd %xmm4, %xmm0 + andpd %xmm4, %xmm1 + orpd %xmm6, %xmm0 + orpd %xmm7, %xmm1 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_9.0.2: + subl $880, %edx + mulsd %xmm3, %xmm0 + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + cmpl $0, %ecx + je .L_2TAG_PACKET_13.0.2 + jmp .L_2TAG_PACKET_10.0.2 +.L_2TAG_PACKET_11.0.2: + addl $880, %edx + mulsd %xmm3, %xmm1 + pextrw $3, %xmm1, %eax + andl $32752, %eax + cmpl $0, %eax + je .L_2TAG_PACKET_14.0.2 + jmp .L_2TAG_PACKET_12.0.2 +.L_2TAG_PACKET_7.0.2: + movd %xmm0, %edx + movq %xmm0, %xmm2 + psrlq $32, %xmm2 + movd %xmm2, %ecx + andl $1048575, %ecx + orl %edx, %ecx + cmpl $0, %ecx + jne .L_2TAG_PACKET_15.0.2 + psrlq $63, %xmm0 + psllq $63, %xmm0 + cmpl $32752, %eax + jae .L_2TAG_PACKET_16.0.2 + movapd pi2_table(%rip), %xmm5 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + orpd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_15.0.2: + addsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_16.0.2: + movd %xmm1, %eax + movq %xmm1, %xmm2 + psrlq $32, %xmm2 + movd %xmm2, %ecx + movl $-2147483648, %edx + andl %ecx, %edx + andl $1048575, %ecx + orl %eax, %ecx + cmpl $0, %ecx + jne .L_2TAG_PACKET_17.0.2 + cmpl $0, %edx + jne .L_2TAG_PACKET_18.0.2 + movapd pi4_table(%rip), %xmm5 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + orpd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_17.0.2: + movq %xmm1, %xmm0 + addsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_18.0.2: + movapd pi4_table(%rip), %xmm5 + movapd pi2_table(%rip), %xmm6 + addpd %xmm6, %xmm5 + pshufd $238, %xmm5, %xmm6 + addpd %xmm6, %xmm5 + orpd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_8.0.2: + movd %xmm1, %eax + movq %xmm1, %xmm2 + psrlq $32, %xmm2 + movd %xmm2, %ecx + movl $-2147483648, %edx + andl %ecx, %edx + andl $1048575, %ecx + orl %eax, %ecx + cmpl $0, %ecx + jne .L_2TAG_PACKET_17.0.2 + psrlq $63, %xmm0 + psllq $63, %xmm0 + cmpl $0, %edx + jne .L_2TAG_PACKET_19.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_19.0.2: + movapd pi_table(%rip), %xmm5 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + orpd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_13.0.2: + pextrw $3, %xmm1, %edx + andl $32768, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_20.0.2 + movapd pi_table(%rip), %xmm5 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + comisd %xmm0, %xmm1 + orpd %xmm5, %xmm0 + je .L_2TAG_PACKET_21.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_20.0.2: + comisd %xmm0, %xmm1 + je .L_2TAG_PACKET_21.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_14.0.2: + movapd pi2_table(%rip), %xmm5 + psrlq $63, %xmm0 + psllq $63, %xmm0 + pshufd $238, %xmm5, %xmm4 + addsd %xmm4, %xmm5 + orpd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_21.0.2: + movq %xmm0, 16(%rsp) +..B1.3: + movq 16(%rsp), %xmm0 +.L_2TAG_PACKET_22.0.2: +..B1.5: + addq $24, %rsp +..___tag_value_atan2.4: + ret +..___tag_value_atan2.5: +END(atan2) +# -- End atan2 + .section .rodata, "a" + .align 16 + .align 16 +a2: + .long 2006262985 + .long 1069310863 + .long 2358449471 + .long 3217342131 + .type a2,@object + .size a2,16 + .align 16 +b2: + .long 3845454352 + .long 1069952297 + .long 2829679149 + .long 1073771565 + .type b2,@object + .size b2,16 + .align 16 +P_TBL: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1413754136 + .long 1074340347 + .long 856972295 + .long 1017226790 + .long 1413754136 + .long 3221823995 + .long 856972295 + .long 3164710438 + .type P_TBL,@object + .size P_TBL,64 + .align 16 +SGN_TBL: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .long 0 + .long 0 + .long 0 + .long 0 + .type SGN_TBL,@object + .size SGN_TBL,64 + .align 16 +ATAN_TBL: + .long 3390881280 + .long 1067318733 + .long 1411116779 + .long 1018950063 + .long 2985987840 + .long 1067384211 + .long 2088903695 + .long 1018086027 + .long 3148445184 + .long 1067449685 + .long 2044163806 + .long 1017271335 + .long 3667629184 + .long 1067515494 + .long 2353092775 + .long 1019967309 + .long 1546568832 + .long 1067580954 + .long 611991315 + .long 1017602584 + .long 3815996800 + .long 1067646404 + .long 466038598 + .long 1019686426 + .long 4050241920 + .long 1067711845 + .long 3265026328 + .long 1019626952 + .long 120454912 + .long 1067777277 + .long 1542207696 + .long 1020155608 + .long 2784639744 + .long 1067842697 + .long 3883834623 + .long 1018602870 + .long 1328010624 + .long 1067908107 + .long 1791097456 + .long 1019053126 + .long 2217794048 + .long 1067973505 + .long 551619938 + .long 1018494194 + .long 3333520000 + .long 1068038891 + .long 2390331823 + .long 1019033022 + .long 2557052032 + .long 1068104265 + .long 2423976108 + .long 1019728674 + .long 2067649536 + .long 1068169626 + .long 3757397745 + .long 1018672362 + .long 4047094784 + .long 1068234973 + .long 481613184 + .long 1019275104 + .long 2089853184 + .long 1068300307 + .long 1733914374 + .long 1020124677 + .long 2678003840 + .long 1068365626 + .long 1373600282 + .long 1013935474 + .long 3706496128 + .long 1068430930 + .long 1000610902 + .long 1019673285 + .long 3073179008 + .long 1068496219 + .long 1497143008 + .long 1019900342 + .long 2803716736 + .long 1068562846 + .long 1476677416 + .long 1019444094 + .long 3204984128 + .long 1068628077 + .long 1192335905 + .long 1018748628 + .long 831146624 + .long 1068693273 + .long 2733586224 + .long 1018823295 + .long 243029376 + .long 1068758431 + .long 950106081 + .long 1019046675 + .long 1735561920 + .long 1068823549 + .long 3546440856 + .long 1020104712 + .long 1339217792 + .long 1068888626 + .long 3028812387 + .long 1019818321 + .long 3706342144 + .long 1068953659 + .long 3814564029 + .long 1017763871 + .long 637726976 + .long 1069018648 + .long 3584007699 + .long 1017976868 + .long 1148779264 + .long 1069083589 + .long 2282532133 + .long 1019483954 + .long 1406131392 + .long 1069148481 + .long 1547359113 + .long 1019786342 + .long 1908875904 + .long 1069213322 + .long 1315508410 + .long 1020009473 + .long 3194947520 + .long 1069278110 + .long 3845393201 + .long 1015803761 + .long 1547487744 + .long 1069342844 + .long 3863107865 + .long 1019810104 + .long 1881061952 + .long 1069407521 + .long 4288343548 + .long 1019687581 + .long 563086336 + .long 1069472140 + .long 2582230241 + .long 1020099350 + .long 2594975552 + .long 1069536698 + .long 2306443764 + .long 1019667244 + .long 3438545024 + .long 1069606573 + .long 957455549 + .long 1015587735 + .long 4211357472 + .long 1069670906 + .long 2611778754 + .long 1017877214 + .long 3002835424 + .long 1069735101 + .long 235580458 + .long 1020211685 + .long 3905315424 + .long 1069799150 + .long 3630647617 + .long 1018736849 + .long 2849656576 + .long 1069863047 + .long 2412165062 + .long 1019693004 + .long 507429472 + .long 1069926785 + .long 1397750723 + .long 1018412717 + .long 2307470272 + .long 1069990356 + .long 1796470904 + .long 1019796181 + .long 1271814912 + .long 1070053755 + .long 189761565 + .long 1016149115 + .long 3800538144 + .long 1070116974 + .long 2524871582 + .long 1018263353 + .long 3916203552 + .long 1070180008 + .long 127848658 + .long 1017672664 + .long 457192032 + .long 1070242851 + .long 4020400938 + .long 1019823010 + .long 1385324704 + .long 1070305495 + .long 564511179 + .long 1016079094 + .long 2322869856 + .long 1070367935 + .long 2347103319 + .long 1018927760 + .long 3743438624 + .long 1070430165 + .long 877973862 + .long 1019638162 + .long 2392255552 + .long 1070492180 + .long 2432782267 + .long 1018872629 + .long 4180443328 + .long 1070553973 + .long 3102990015 + .long 1020093101 + .long 2547540832 + .long 1070636485 + .long 3877738253 + .long 1017300424 + .long 2735468912 + .long 1070697461 + .long 2446470256 + .long 1019235378 + .long 542633792 + .long 1070757943 + .long 583606328 + .long 1018624131 + .long 923265984 + .long 1070817911 + .long 1793926708 + .long 1019714161 + .long 918728448 + .long 1070877348 + .long 3726463586 + .long 1019433296 + .long 2572275008 + .long 1070936237 + .long 1845354238 + .long 1019459238 + .long 50974688 + .long 1070994564 + .long 983808064 + .long 1016685418 + .long 1105518320 + .long 1071052313 + .long 2357496692 + .long 1015139882 + .long 1264825328 + .long 1071109472 + .long 2244129354 + .long 1019046344 + .long 961157920 + .long 1071166029 + .long 3124185339 + .long 1018541776 + .long 1162701584 + .long 1071221973 + .long 1279780948 + .long 1019268918 + .long 3284935664 + .long 1071277294 + .long 2670033472 + .long 1019833744 + .long 497441888 + .long 1071331985 + .long 1032737410 + .long 1019795212 + .long 3377383904 + .long 1071386036 + .long 2356897182 + .long 1020205553 + .long 1126962000 + .long 1071439443 + .long 3723724586 + .long 1015212418 + .long 90291008 + .long 1071492199 + .long 4178672431 + .long 1020186971 + .long 190059536 + .long 1071595741 + .long 1763589807 + .long 1019162163 + .long 2497392840 + .long 1071670654 + .long 3036997041 + .long 1020204325 + .long 2616971944 + .long 1071719773 + .long 300151069 + .long 1017041957 + .long 2883518128 + .long 1071767563 + .long 2203981414 + .long 1019190108 + .long 1496354352 + .long 1071814030 + .long 332287966 + .long 1016846435 + .long 483276728 + .long 1071859184 + .long 653845024 + .long 1018830914 + .long 3097401072 + .long 1071903039 + .long 1514746408 + .long 1019278972 + .long 2737217248 + .long 1071945615 + .long 1358845067 + .long 1017268275 + .long 2072577560 + .long 1071986933 + .long 3041024735 + .long 1019929672 + .long 2266405656 + .long 1072027017 + .long 1271261130 + .long 1012925070 + .long 958652544 + .long 1072065894 + .long 2158017058 + .long 1019955372 + .long 3312993840 + .long 1072103591 + .long 765809169 + .long 1019114443 + .long 3177001304 + .long 1072140139 + .long 144180084 + .long 1019822186 + .long 3071642184 + .long 1072175568 + .long 4004602424 + .long 1019420740 + .long 4283953648 + .long 1072209909 + .long 1511950430 + .long 1020176966 + .long 1413754136 + .long 1072243195 + .long 856972295 + .long 1015129638 + .long 4073202944 + .long 1072306725 + .long 4068194804 + .long 1019714860 + .long 946117760 + .long 1072366415 + .long 694980733 + .long 1020150135 + .long 3980632032 + .long 1072422512 + .long 1313251280 + .long 1019948709 + .long 1468297112 + .long 1072475260 + .long 330111143 + .long 1019809198 + .long 3478063816 + .long 1072524887 + .long 2930067044 + .long 1017784081 + .long 1153979856 + .long 1072571613 + .long 2225786102 + .long 1017634481 + .long 2089828808 + .long 1072615641 + .long 474621367 + .long 1017043414 + .long 3531732632 + .long 1072657163 + .long 2276396220 + .long 1018757240 + .long 775214612 + .long 1072694803 + .long 3209744818 + .long 1019963015 + .long 662307284 + .long 1072713319 + .long 1381696763 + .long 1019763781 + .long 1192776652 + .long 1072730830 + .long 3017932994 + .long 1015179769 + .long 744202396 + .long 1072747407 + .long 2073854034 + .long 1019512292 + .long 8337908 + .long 1072763115 + .long 16004448 + .long 1019599514 + .long 3589868768 + .long 1072778013 + .long 1374369804 + .long 1018019237 + .long 121647320 + .long 1072792159 + .long 128481634 + .long 1018115438 + .long 2464923204 + .long 1072805601 + .long 1787331214 + .long 1016798022 + .long 4093304372 + .long 1072830562 + .long 3306868969 + .long 1019384078 + .long 1436891684 + .long 1072853231 + .long 676347266 + .long 1017302183 + .long 1104571840 + .long 1072873890 + .long 2870400285 + .long 1019938149 + .long 2037009832 + .long 1072892781 + .long 2956702105 + .long 1016472908 + .long 3139037960 + .long 1072910111 + .long 916057147 + .long 1018364335 + .long 1826698064 + .long 1072926058 + .long 2171961098 + .long 1019669816 + .long 1353941060 + .long 1072940774 + .long 1722928782 + .long 1019926215 + .long 1803191644 + .long 1072954391 + .long 1547878639 + .long 1020259262 + .long 1092591296 + .long 1072967024 + .long 3070107923 + .long 1018320401 + .long 2205372832 + .long 1072978772 + .long 787328196 + .long 1014621351 + .long 1291577100 + .long 1072989723 + .long 2964757301 + .long 1020242528 + .long 4234512804 + .long 1072999952 + .long 3136030038 + .long 1017522144 + .long 3248069132 + .long 1073009528 + .long 1506192355 + .long 1018050472 + .long 3932628500 + .long 1073018509 + .long 1045823554 + .long 1019946655 + .long 4195697848 + .long 1073026948 + .long 233443322 + .long 1018917447 + .long 2501811452 + .long 1073034892 + .long 901427976 + .long 1017333852 + .long 866379428 + .long 1073049455 + .long 2437443742 + .long 1019678792 + .long 1376865888 + .long 1073062480 + .long 3365790232 + .long 1014547152 + .long 3290094268 + .long 1073074195 + .long 3898947415 + .long 1018683566 + .long 354764884 + .long 1073084787 + .long 3854322404 + .long 1019662058 + .long 3332975496 + .long 1073094406 + .long 3171701655 + .long 1017830922 + .long 1141460088 + .long 1073103181 + .long 3946082701 + .long 1020032019 + .long 745761284 + .long 1073111216 + .long 1347210591 + .long 1019106121 + .long 1673304508 + .long 1073118600 + .long 1760606642 + .long 1017324577 + .long 983388240 + .long 1073125409 + .long 3740651204 + .long 1019514104 + .long 3895509100 + .long 1073131706 + .long 2409629983 + .long 1020069322 + .long 2128523668 + .long 1073137548 + .long 3045605368 + .long 1018579174 + .long 2075485692 + .long 1073142981 + .long 3720571789 + .long 1017557436 + .long 121855976 + .long 1073148047 + .long 2391744767 + .long 1020160645 + .long 4181733780 + .long 1073152780 + .long 995028816 + .long 1019681295 + .long 2887813280 + .long 1073157214 + .long 218733247 + .long 1020003509 + .long 2862180896 + .long 1073161375 + .long 2043806490 + .long 1018602288 + .long 3909375184 + .long 1073168973 + .long 1559903412 + .long 1020103444 + .long 3533966292 + .long 1073175738 + .long 734884149 + .long 1018462962 + .long 3815044608 + .long 1073181799 + .long 3630523428 + .long 1017250093 + .long 739639376 + .long 1073187261 + .long 4167476661 + .long 1020008277 + .long 1068309648 + .long 1073192207 + .long 2110061437 + .long 1019295858 + .long 2350566352 + .long 1073196707 + .long 582596516 + .long 1018568821 + .long 2529520024 + .long 1073200819 + .long 745552787 + .long 1019053165 + .long 1841667508 + .long 1073204591 + .long 3982568700 + .long 1016503327 + .long 2242261080 + .long 1073208063 + .long 3433582258 + .long 1016196763 + .long 715134328 + .long 1073211270 + .long 355901358 + .long 1020087916 + .long 2700735876 + .long 1073214240 + .long 3640957736 + .long 1019780205 + .long 141607580 + .long 1073217000 + .long 2488245051 + .long 1020262395 + .long 287934404 + .long 1073219570 + .long 2392691085 + .long 1019883292 + .long 2363373988 + .long 1073221969 + .long 4194561737 + .long 1019237447 + .long 3829340424 + .long 1073224214 + .long 429455526 + .long 1019490975 + .long 1988805928 + .long 1073226320 + .long 3029848706 + .long 1018104889 + .long 1647572320 + .long 1073230161 + .long 10289938 + .long 1017394880 + .long 3988000624 + .long 1073233576 + .long 1957559169 + .long 1019434816 + .long 4263843944 + .long 1073236633 + .long 204710264 + .long 1019908761 + .long 663197724 + .long 1073239386 + .long 1921757578 + .long 1019778948 + .long 3560800700 + .long 1073241876 + .long 3994348896 + .long 1019230192 + .long 2441785656 + .long 1073244141 + .long 871468611 + .long 1014800505 + .long 3277400272 + .long 1073246209 + .long 4092218139 + .long 1020040842 + .long 3951990120 + .long 1073248105 + .long 4276546478 + .long 1019763677 + .long 2737338540 + .long 1073249850 + .long 252776012 + .long 1018794951 + .long 1511361316 + .long 1073251461 + .long 3119653999 + .long 1018514803 + .long 3969162516 + .long 1073252952 + .long 1037069016 + .long 1016792900 + .long 413985240 + .long 1073254338 + .long 4110171432 + .long 1020001345 + .long 3681283576 + .long 1073255627 + .long 1463092818 + .long 1020260354 + .long 3146455488 + .long 1073256831 + .long 1031209123 + .long 1016554799 + .long 95214512 + .long 1073257958 + .long 1373808632 + .long 1019493031 + .long 4250240828 + .long 1073259013 + .long 3891047882 + .long 1020108730 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .type ATAN_TBL,@object + .size ATAN_TBL,2624 + .align 16 +P_TBL2: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 856972295 + .long 1017226790 + .long 1413754136 + .long 1074340347 + .long 856972295 + .long 3164710438 + .long 1413754136 + .long 3221823995 + .type P_TBL2,@object + .size P_TBL2,64 + .align 16 +SELECT_B: + .long 0 + .long 0 + .long 4294967295 + .long 4294967295 + .long 0 + .long 0 + .long 4294967295 + .long 4294967295 + .long 4294967295 + .long 4294967295 + .long 0 + .long 0 + .long 4294967295 + .long 4294967295 + .long 0 + .long 0 + .type SELECT_B,@object + .size SELECT_B,64 + .align 16 +SGNMASK: + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .type SGNMASK,@object + .size SGNMASK,16 + .align 16 +pi_table: + .long 1413754136 + .long 1074340347 + .long 856972295 + .long 1017226790 + .type pi_table,@object + .size pi_table,16 + .align 16 +pi2_table: + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .type pi2_table,@object + .size pi2_table,16 + .align 16 +pi4_table: + .long 1413754136 + .long 1072243195 + .long 856972295 + .long 1015129638 + .type pi4_table,@object + .size pi4_table,16 + .align 4 +POW55: + .long 0 + .long 1130364928 + .type POW55,@object + .size POW55,8 + .align 4 +INVEXPMASK: + .long 4294967295 + .long 2148532223 + .type INVEXPMASK,@object + .size INVEXPMASK,8 + .align 4 +EXPMASK: + .long 0 + .long 1072693248 + .type EXPMASK,@object + .size EXPMASK,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_atan2.1-. + .4byte ..___tag_value_atan2.5-..___tag_value_atan2.1 + .2byte 0x0400 + .4byte ..___tag_value_atan2.3-..___tag_value_atan2.1 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_atan2.4-..___tag_value_atan2.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/e_cosh.S b/libm/x86_64/e_cosh.S new file mode 100644 index 000000000..8cdbca6c0 --- /dev/null +++ b/libm/x86_64/e_cosh.S @@ -0,0 +1,1372 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// cosh(x)=(exp(x)+exp(-x))/2 +// +// Let |x|=xH+xL (upper 26 bits, lower 27 bits) +// log2(e) rounded to 26 bits (high part) plus a double precision low part is +// L2EH+L2EL (upper 26, lower 53 bits) +// +// Let xH*L2EH=k+f+r`, where (k+f)*2^7=int(xH*L2EH*2^7), +// f=0.b1 b2 ... b7, k integer +// 2^f is approximated as Tp[f]+Dp[f], and 2^{-f} as Tn[f]+Dn[f] +// Tp stores higher 53 bits, Dp stores (2^f-Tp[f]) rounded to double precision +// +// e^|x|=2^{k+f}*2^r, r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-8}+2^{-14}, +// for |x| in [1/8,3*2^8) +// e^{-|x|}=2^{-k-f}*2^{-r} +// +// e^|x| is approximated as 2^k*Tp+2^k*Tp*c1*r(1+c2*r+..+c5*r^4)+2^k*Dp= +// =2^k*Tp+2^k*Tp*P15+2^k*Dp +// e^{-|x|} approximated as 2^{-k}*Tn-2^{-k}*Tn*c1*r(1-c2*r+..+c5*r^4) +// +// For |x| in [1/8, 3*2^7), cosh(x) is formed as +// RN(2^k*Tp+2^{-k}*Tn)+2^k*Tp*P15+2^{-k}*Tn*P`15+2^{-k}*TnL+2^{-k}*Dn+2^k*Dp +// +// For |x| in [3*2^7, 3*2^8), (e^|x|)/2 is returned, and +// the result is checked for overflow. +// +// For |x|<1/8, a Taylor polynomial expansion is used (degree 10) +// (error bound for polynomial expansion is below 0.501 ulp) +// +// Special cases: +// cosh(NaN) = quiet NaN, and raise invalid exception +// cosh(INF) = that INF +// cosh(0)=1 +// for finite argument, only cosh(0)=1 is exact +// For IEEE double +// cosh(x) overflows +// for x > 710.47586007394386342639336362481117248535156250 = MAXLOG+log(2) +// +/******************************************************************************/ + +#include + +# -- Begin cosh +ENTRY(cosh) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_cosh.1: + pushq %rsi +..___tag_value_cosh.3: +..B1.2: + movsd HALFMASK(%rip), %xmm3 + xorpd %xmm4, %xmm4 + movsd L2E(%rip), %xmm1 + movsd 8+L2E(%rip), %xmm2 + movl $32768, %eax + pinsrw $3, %eax, %xmm4 + movsd Shifter(%rip), %xmm6 + pextrw $3, %xmm0, %ecx + andpd %xmm0, %xmm3 + andnpd %xmm0, %xmm4 + pshufd $68, %xmm4, %xmm5 + andl $32767, %ecx + subl $16320, %ecx + cmpl $200, %ecx + jae .L_2TAG_PACKET_0.0.2 + subsd %xmm3, %xmm4 + mulsd %xmm1, %xmm3 + mulsd %xmm5, %xmm2 + cvtsd2si %xmm3, %eax + movq %xmm3, %xmm7 + addsd %xmm6, %xmm3 + mulsd %xmm4, %xmm1 + xorpd %xmm5, %xmm5 + subsd %xmm6, %xmm3 + movapd cv(%rip), %xmm4 + addsd %xmm1, %xmm2 + movapd 16+cv(%rip), %xmm6 + subsd %xmm3, %xmm7 + movl $32704, %edx + pinsrw $3, %edx, %xmm5 + movapd 32+cv(%rip), %xmm1 + addsd %xmm7, %xmm2 + movl $127, %edx + andl %eax, %edx + addl %edx, %edx + shrl $3, %eax + andl $65520, %eax + addl $16352, %eax + xorpd %xmm0, %xmm0 + cmpl $184, %ecx + jae .L_2TAG_PACKET_1.0.2 + pshufd $68, %xmm5, %xmm5 + pinsrw $3, %eax, %xmm0 + pshufd $68, %xmm0, %xmm0 + psubw %xmm0, %xmm5 + lea T2f(%rip), %r8 + mulpd (%r8,%rdx,8), %xmm0 + lea T2_neg_f(%rip), %r8 + mulpd (%r8,%rdx,8), %xmm5 + pshufd $68, %xmm2, %xmm3 + movapd 48+cv(%rip), %xmm7 + pshufd $68, %xmm2, %xmm2 + mulpd %xmm3, %xmm3 + mulpd %xmm2, %xmm4 + mulpd %xmm2, %xmm6 + mulpd 64+cv(%rip), %xmm2 + mulpd %xmm3, %xmm1 + mulpd %xmm3, %xmm7 + mulpd %xmm3, %xmm4 + mulpd %xmm3, %xmm1 + addpd %xmm7, %xmm6 + movq %xmm0, %xmm7 + addpd %xmm1, %xmm4 + shufpd $0, %xmm5, %xmm7 + addpd %xmm5, %xmm0 + mulpd %xmm7, %xmm2 + addpd %xmm6, %xmm4 + subsd %xmm0, %xmm7 + mulpd %xmm2, %xmm4 + pshufd $238, %xmm0, %xmm6 + addsd %xmm5, %xmm7 + addpd %xmm2, %xmm4 + addsd %xmm6, %xmm7 + pshufd $238, %xmm4, %xmm2 + addsd %xmm7, %xmm2 + addsd %xmm4, %xmm2 + addsd %xmm2, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: + addl $16320, %ecx + cmpl $16320, %ecx + ja .L_2TAG_PACKET_2.0.2 + cmpl $15952, %ecx + jae .L_2TAG_PACKET_3.0.2 + addsd %xmm2, %xmm6 + movq ONEMASK(%rip), %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_1.0.2: + subl $16352, %eax + movl %eax, %ecx + andl $32752, %eax + shrl $1, %eax + andl $65520, %eax + subl %eax, %ecx + addl $16352, %eax + pinsrw $3, %eax, %xmm0 + pshufd $68, %xmm0, %xmm0 + lea T2f(%rip), %r8 + mulpd (%r8,%rdx,8), %xmm0 + pshufd $68, %xmm2, %xmm3 + movsd 48+cv(%rip), %xmm7 + mulsd %xmm3, %xmm3 + mulsd %xmm2, %xmm4 + mulsd %xmm2, %xmm6 + mulsd 64+cv(%rip), %xmm2 + mulsd %xmm3, %xmm1 + mulsd %xmm3, %xmm7 + mulsd %xmm3, %xmm4 + addl $16368, %ecx + pinsrw $3, %ecx, %xmm5 + mulsd %xmm3, %xmm1 + addsd %xmm7, %xmm6 + addsd %xmm1, %xmm4 + mulsd %xmm0, %xmm2 + addsd %xmm6, %xmm4 + mulsd %xmm2, %xmm4 + pshufd $238, %xmm0, %xmm6 + addsd %xmm6, %xmm4 + addsd %xmm4, %xmm2 + addsd %xmm2, %xmm0 + mulsd %xmm5, %xmm0 + pextrw $3, %xmm0, %eax + andl $32752, %eax + cmpl $32752, %eax + je .L_2TAG_PACKET_4.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_3.0.2: + movapd pv(%rip), %xmm1 + mulpd %xmm5, %xmm5 + movapd 16+pv(%rip), %xmm2 + xorpd %xmm3, %xmm3 + movq %xmm5, %xmm0 + mulpd %xmm5, %xmm1 + movsd ONEMASK(%rip), %xmm6 + mulpd %xmm5, %xmm5 + movl $16352, %eax + pinsrw $3, %eax, %xmm3 + addpd %xmm2, %xmm1 + mulpd %xmm5, %xmm1 + pshufd $238, %xmm1, %xmm2 + mulsd %xmm1, %xmm5 + mulsd %xmm3, %xmm0 + addsd %xmm5, %xmm2 + addsd %xmm2, %xmm0 + addsd %xmm6, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_2.0.2: + cmpl $32752, %ecx + jae .L_2TAG_PACKET_5.0.2 + xorpd %xmm0, %xmm0 + movl $32736, %eax + pinsrw $3, %eax, %xmm0 + mulsd %xmm0, %xmm0 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_5.0.2: + mulsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_4.0.2: + movq %xmm0, (%rsp) +..B1.3: + movq (%rsp), %xmm0 +.L_2TAG_PACKET_6.0.2: +..B1.5: + popq %rcx +..___tag_value_cosh.4: + ret +..___tag_value_cosh.5: +END(cosh) +# -- End cosh + .section .rodata, "a" + .align 16 + .align 16 +L2E: + .long 1610612736 + .long 1080497479 + .long 4166901572 + .long 1053077003 + .type L2E,@object + .size L2E,16 + .align 16 +Shifter: + .long 0 + .long 1127743488 + .long 0 + .long 3275227136 + .type Shifter,@object + .size Shifter,16 + .align 16 +cv: + .long 3607404736 + .long 1044146952 + .long 3607404736 + .long 3191630600 + .long 4277811695 + .long 1063661122 + .long 4277811695 + .long 3211144770 + .long 2140175755 + .long 1033864261 + .long 2140175755 + .long 1033864261 + .long 4289495988 + .long 1054113747 + .long 4289495988 + .long 1054113747 + .long 4277811695 + .long 1064709698 + .long 4277811695 + .long 3212193346 + .type cv,@object + .size cv,80 + .align 16 +T2f: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 2851812149 + .long 1072698941 + .long 2595802551 + .long 1016815913 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 3899555717 + .long 1072710421 + .long 427280750 + .long 3163595548 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 702412510 + .long 1072722027 + .long 3803266087 + .long 3163328991 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 3402036099 + .long 1072733758 + .long 405889334 + .long 1016154232 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 728909815 + .long 1072745618 + .long 383930225 + .long 1016078044 + .long 852742562 + .long 1072751596 + .long 667253586 + .long 1010842135 + .long 2952712987 + .long 1072757606 + .long 3293494651 + .long 3161168877 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 3228316108 + .long 1072769725 + .long 3010241991 + .long 3159471380 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 3366293073 + .long 1072781976 + .long 3119426314 + .long 1015169130 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 948735466 + .long 1072794361 + .long 3516338028 + .long 3163623459 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 2214878420 + .long 1072806880 + .long 892270087 + .long 3164164998 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 586995997 + .long 1072819536 + .long 41662348 + .long 3163676568 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 2440944790 + .long 1072832329 + .long 2492769774 + .long 1015196030 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 1337108031 + .long 1072845262 + .long 3203724452 + .long 1015726421 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 3790955393 + .long 1072858335 + .long 2352942462 + .long 3164228666 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 3504003472 + .long 1072871551 + .long 3594001060 + .long 3158379228 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 2839424854 + .long 1072884911 + .long 1171596163 + .long 1014090255 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 4232894513 + .long 1072898416 + .long 2383938684 + .long 1015717095 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 1603444721 + .long 1072912069 + .long 1548633640 + .long 3163249902 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 1829099622 + .long 1072925870 + .long 1016661181 + .long 3164509581 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 3272845541 + .long 1072939821 + .long 928852419 + .long 3164536824 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 78413852 + .long 1072953925 + .long 4183226867 + .long 3164065827 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 3645941911 + .long 1072968181 + .long 3814685081 + .long 3162621917 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 3978100823 + .long 1072982593 + .long 3513027190 + .long 1016894539 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 4040676318 + .long 1072997162 + .long 4090609238 + .long 1016712034 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 2583551245 + .long 1073011890 + .long 3161094195 + .long 1016655067 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 2731501122 + .long 1073026778 + .long 1774031855 + .long 3163518597 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 3395129871 + .long 1073041828 + .long 4025345435 + .long 3163383964 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3566716925 + .long 1073057042 + .long 1536826856 + .long 1015191009 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 2321106615 + .long 1073072422 + .long 2171176610 + .long 1010584347 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 3111574537 + .long 1073087969 + .long 2606161479 + .long 3163808322 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 885834528 + .long 1073103686 + .long 1973258547 + .long 3163310140 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 3561793907 + .long 1073119573 + .long 1157054053 + .long 1012938926 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 1963711167 + .long 1073135634 + .long 1744767757 + .long 3161622870 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 4182873220 + .long 1073151869 + .long 629542646 + .long 3163044879 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 1218806132 + .long 1073168282 + .long 1818613052 + .long 3163597017 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 1339972927 + .long 1073184873 + .long 167908909 + .long 1016620728 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 19972402 + .long 1073201645 + .long 3507899862 + .long 1017057868 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 1413356050 + .long 1073218599 + .long 1651349291 + .long 3163716742 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 1176749997 + .long 1073235738 + .long 2738998779 + .long 3163084420 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 3649726105 + .long 1073253063 + .long 4085036346 + .long 1016698050 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 380978316 + .long 1073270578 + .long 854188970 + .long 3161511262 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 194117574 + .long 1073288283 + .long 777528612 + .long 3164460665 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 3418903055 + .long 1073306180 + .long 2527457337 + .long 3161869180 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 1892288442 + .long 1073324273 + .long 2446255666 + .long 3163648957 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 434316067 + .long 1073342563 + .long 2028358766 + .long 1014506698 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 3964284211 + .long 1073361051 + .long 2111583915 + .long 1016475740 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 321958744 + .long 1073379742 + .long 3401933767 + .long 1016843134 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 3218338682 + .long 1073398635 + .long 3404164304 + .long 3163525684 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 697153126 + .long 1073417735 + .long 1283515429 + .long 3164331765 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 2380618042 + .long 1073437042 + .long 3149557219 + .long 3164369375 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 815859274 + .long 1073456560 + .long 240396590 + .long 3164536019 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 1540824585 + .long 1073476290 + .long 1064017011 + .long 3164536266 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 1610600570 + .long 1073496235 + .long 3766732298 + .long 1016808759 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 2483480501 + .long 1073516397 + .long 1216371780 + .long 1014082748 + .long 3706687593 + .long 1073526560 + .long 3521726940 + .long 1014301643 + .long 1432208378 + .long 1073536779 + .long 1401068914 + .long 3163412539 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 135105010 + .long 1073557383 + .long 1906148728 + .long 3164424315 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 382305176 + .long 1073578211 + .long 2347622376 + .long 3163627201 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 4076975200 + .long 1073599265 + .long 2029000899 + .long 1016257111 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 351641897 + .long 1073620550 + .long 2172261526 + .long 3164059175 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 4224142467 + .long 1073642065 + .long 3389820386 + .long 1016255778 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 764307441 + .long 1073663816 + .long 3021057420 + .long 3164378099 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 929806999 + .long 1073685803 + .long 3205336643 + .long 1016308133 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2912730644 + .long 1073708029 + .long 3490067722 + .long 3164453650 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 730821105 + .long 1073730498 + .long 2523232743 + .long 1013115764 + .type T2f,@object + .size T2f,2048 + .align 16 +T2_neg_f: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 730821105 + .long 1072681922 + .long 2523232743 + .long 1012067188 + .long 2174652632 + .long 1072670657 + .long 4087714590 + .long 1014450259 + .long 2912730644 + .long 1072659453 + .long 3490067722 + .long 3163405074 + .long 1533953344 + .long 1072648310 + .long 769171851 + .long 1015665633 + .long 929806999 + .long 1072637227 + .long 3205336643 + .long 1015259557 + .long 3999357479 + .long 1072626203 + .long 2258941616 + .long 1015924724 + .long 764307441 + .long 1072615240 + .long 3021057420 + .long 3163329523 + .long 2728693978 + .long 1072604335 + .long 396109971 + .long 3163462691 + .long 4224142467 + .long 1072593489 + .long 3389820386 + .long 1015207202 + .long 3884662774 + .long 1072582702 + .long 2158611599 + .long 1014210185 + .long 351641897 + .long 1072571974 + .long 2172261526 + .long 3163010599 + .long 863738719 + .long 1072561303 + .long 1326992220 + .long 3162613197 + .long 4076975200 + .long 1072550689 + .long 2029000899 + .long 1015208535 + .long 64696965 + .long 1072540134 + .long 1768797490 + .long 1015816960 + .long 382305176 + .long 1072529635 + .long 2347622376 + .long 3162578625 + .long 3707479175 + .long 1072519192 + .long 3613079303 + .long 1014164738 + .long 135105010 + .long 1072508807 + .long 1906148728 + .long 3163375739 + .long 1242007932 + .long 1072498477 + .long 1132034716 + .long 3163339831 + .long 1432208378 + .long 1072488203 + .long 1401068914 + .long 3162363963 + .long 3706687593 + .long 1072477984 + .long 3521726940 + .long 1013253067 + .long 2483480501 + .long 1072467821 + .long 1216371780 + .long 1013034172 + .long 777507147 + .long 1072457713 + .long 4282924205 + .long 1015187533 + .long 1610600570 + .long 1072447659 + .long 3766732298 + .long 1015760183 + .long 3716502172 + .long 1072437659 + .long 2303740125 + .long 1014042725 + .long 1540824585 + .long 1072427714 + .long 1064017011 + .long 3163487690 + .long 2420883922 + .long 1072417822 + .long 2049810052 + .long 1014119888 + .long 815859274 + .long 1072407984 + .long 240396590 + .long 3163487443 + .long 4076559943 + .long 1072398198 + .long 2119478331 + .long 3160758351 + .long 2380618042 + .long 1072388466 + .long 3149557219 + .long 3163320799 + .long 3092190715 + .long 1072378786 + .long 814012168 + .long 3159523422 + .long 697153126 + .long 1072369159 + .long 1283515429 + .long 3163283189 + .long 2572866477 + .long 1072359583 + .long 878562433 + .long 1015521741 + .long 3218338682 + .long 1072350059 + .long 3404164304 + .long 3162477108 + .long 1434058175 + .long 1072340587 + .long 251133233 + .long 1015085769 + .long 321958744 + .long 1072331166 + .long 3401933767 + .long 1015794558 + .long 2990417245 + .long 1072321795 + .long 3683467745 + .long 3163369326 + .long 3964284211 + .long 1072312475 + .long 2111583915 + .long 1015427164 + .long 2069751141 + .long 1072303206 + .long 1562170675 + .long 3162724681 + .long 434316067 + .long 1072293987 + .long 2028358766 + .long 1013458122 + .long 2191782032 + .long 1072284817 + .long 2960257726 + .long 1013742662 + .long 1892288442 + .long 1072275697 + .long 2446255666 + .long 3162600381 + .long 2682146384 + .long 1072266626 + .long 2082178513 + .long 3163363419 + .long 3418903055 + .long 1072257604 + .long 2527457337 + .long 3160820604 + .long 2966275557 + .long 1072248631 + .long 2176155324 + .long 3159842759 + .long 194117574 + .long 1072239707 + .long 777528612 + .long 3163412089 + .long 2568320822 + .long 1072230830 + .long 2732824428 + .long 1014352915 + .long 380978316 + .long 1072222002 + .long 854188970 + .long 3160462686 + .long 1110089947 + .long 1072213221 + .long 1451641639 + .long 1015474673 + .long 3649726105 + .long 1072204487 + .long 4085036346 + .long 1015649474 + .long 2604962541 + .long 1072195801 + .long 2614425274 + .long 3163539192 + .long 1176749997 + .long 1072187162 + .long 2738998779 + .long 3162035844 + .long 2571947539 + .long 1072178569 + .long 3558159064 + .long 3163376669 + .long 1413356050 + .long 1072170023 + .long 1651349291 + .long 3162668166 + .long 919555682 + .long 1072161523 + .long 3121969534 + .long 1012948226 + .long 19972402 + .long 1072153069 + .long 3507899862 + .long 1016009292 + .long 1944781191 + .long 1072144660 + .long 3993278767 + .long 3161724279 + .long 1339972927 + .long 1072136297 + .long 167908909 + .long 1015572152 + .long 1447192521 + .long 1072127979 + .long 1462857171 + .long 3162514521 + .long 1218806132 + .long 1072119706 + .long 1818613052 + .long 3162548441 + .long 3907805044 + .long 1072111477 + .long 2257091225 + .long 3161550407 + .long 4182873220 + .long 1072103293 + .long 629542646 + .long 3161996303 + .long 1013258799 + .long 1072095154 + .long 1748797611 + .long 3160129082 + .long 1963711167 + .long 1072087058 + .long 1744767757 + .long 3160574294 + .long 1719614413 + .long 1072079006 + .long 330458198 + .long 3163282740 + .long 3561793907 + .long 1072070997 + .long 1157054053 + .long 1011890350 + .long 2186617381 + .long 1072063032 + .long 2270764084 + .long 3163272713 + .long 885834528 + .long 1072055110 + .long 1973258547 + .long 3162261564 + .long 2956612997 + .long 1072047230 + .long 2118169751 + .long 3162735553 + .long 3111574537 + .long 1072039393 + .long 2606161479 + .long 3162759746 + .long 363667784 + .long 1072031599 + .long 813753950 + .long 1015785209 + .long 2321106615 + .long 1072023846 + .long 2171176610 + .long 1009535771 + .long 3712504873 + .long 1072016135 + .long 88491949 + .long 1015427660 + .long 3566716925 + .long 1072008466 + .long 1536826856 + .long 1014142433 + .long 917841882 + .long 1072000839 + .long 18715565 + .long 1015659308 + .long 3395129871 + .long 1071993252 + .long 4025345435 + .long 3162335388 + .long 1453150082 + .long 1071985707 + .long 498154669 + .long 3161488062 + .long 2731501122 + .long 1071978202 + .long 1774031855 + .long 3162470021 + .long 1990012071 + .long 1071970738 + .long 3529070563 + .long 3162813193 + .long 2583551245 + .long 1071963314 + .long 3161094195 + .long 1015606491 + .long 3577096743 + .long 1071955930 + .long 2951496418 + .long 1013793687 + .long 4040676318 + .long 1071948586 + .long 4090609238 + .long 1015663458 + .long 3049340112 + .long 1071941282 + .long 3062915824 + .long 1013170595 + .long 3978100823 + .long 1071934017 + .long 3513027190 + .long 1015845963 + .long 1617004845 + .long 1071926792 + .long 82804944 + .long 1010342778 + .long 3645941911 + .long 1071919605 + .long 3814685081 + .long 3161573341 + .long 569847338 + .long 1071912458 + .long 472945272 + .long 3159290729 + .long 78413852 + .long 1071905349 + .long 4183226867 + .long 3163017251 + .long 1276261410 + .long 1071898278 + .long 300981948 + .long 1014684169 + .long 3272845541 + .long 1071891245 + .long 928852419 + .long 3163488248 + .long 887463927 + .long 1071884251 + .long 3596744163 + .long 3160794166 + .long 1829099622 + .long 1071877294 + .long 1016661181 + .long 3163461005 + .long 926591435 + .long 1071870375 + .long 3208833762 + .long 3162913514 + .long 1603444721 + .long 1071863493 + .long 1548633640 + .long 3162201326 + .long 2992903935 + .long 1071856648 + .long 2218154406 + .long 1015228193 + .long 4232894513 + .long 1071849840 + .long 2383938684 + .long 1014668519 + .long 171030293 + .long 1071843070 + .long 3526460132 + .long 1014428778 + .long 2839424854 + .long 1071836335 + .long 1171596163 + .long 1013041679 + .long 2799960843 + .long 1071829637 + .long 1423655381 + .long 1015022151 + .long 3504003472 + .long 1071822975 + .long 3594001060 + .long 3157330652 + .long 4112506593 + .long 1071816349 + .long 2947355221 + .long 1014371048 + .long 3790955393 + .long 1071809759 + .long 2352942462 + .long 3163180090 + .long 1709341917 + .long 1071803205 + .long 2571168217 + .long 1014152499 + .long 1337108031 + .long 1071796686 + .long 3203724452 + .long 1014677845 + .long 1853186616 + .long 1071790202 + .long 3066496371 + .long 1015656574 + .long 2440944790 + .long 1071783753 + .long 2492769774 + .long 1014147454 + .long 2288159958 + .long 1071777339 + .long 2169144469 + .long 1014876021 + .long 586995997 + .long 1071770960 + .long 41662348 + .long 3162627992 + .long 828946858 + .long 1071764615 + .long 10642492 + .long 1015939438 + .long 2214878420 + .long 1071758304 + .long 892270087 + .long 3163116422 + .long 3949972341 + .long 1071752027 + .long 2068408548 + .long 1014913868 + .long 948735466 + .long 1071745785 + .long 3516338028 + .long 3162574883 + .long 1014845819 + .long 1071739576 + .long 3117910646 + .long 3161559105 + .long 3366293073 + .long 1071733400 + .long 3119426314 + .long 1014120554 + .long 2930322912 + .long 1071727258 + .long 2599499422 + .long 3162714047 + .long 3228316108 + .long 1071721149 + .long 3010241991 + .long 3158422804 + .long 3490863953 + .long 1071715073 + .long 960797498 + .long 3162948880 + .long 2952712987 + .long 1071709030 + .long 3293494651 + .long 3160120301 + .long 852742562 + .long 1071703020 + .long 667253586 + .long 1009793559 + .long 728909815 + .long 1071697042 + .long 383930225 + .long 1015029468 + .long 1828292879 + .long 1071691096 + .long 1255956747 + .long 1015588398 + .long 3402036099 + .long 1071685182 + .long 405889334 + .long 1015105656 + .long 410360776 + .long 1071679301 + .long 1269990655 + .long 1011975870 + .long 702412510 + .long 1071673451 + .long 3803266087 + .long 3162280415 + .long 3541402996 + .long 1071667632 + .long 2759177317 + .long 1014854626 + .long 3899555717 + .long 1071661845 + .long 427280750 + .long 3162546972 + .long 1048019041 + .long 1071656090 + .long 1398474845 + .long 3160510595 + .long 2851812149 + .long 1071650365 + .long 2595802551 + .long 1015767337 + .type T2_neg_f,@object + .size T2_neg_f,2048 + .align 16 +pv: + .long 3078135644 + .long 1049787983 + .long 381774870 + .long 1062650220 + .long 436314137 + .long 1056571808 + .long 1431655765 + .long 1067799893 + .type pv,@object + .size pv,32 + .align 4 +HALFMASK: + .long 4160749568 + .long 2147483647 + .type HALFMASK,@object + .size HALFMASK,8 + .align 4 +ONEMASK: + .long 0 + .long 1072693248 + .type ONEMASK,@object + .size ONEMASK,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_cosh.1-. + .4byte ..___tag_value_cosh.5-..___tag_value_cosh.1 + .2byte 0x0400 + .4byte ..___tag_value_cosh.3-..___tag_value_cosh.1 + .2byte 0x100e + .byte 0x04 + .4byte ..___tag_value_cosh.4-..___tag_value_cosh.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/e_exp.S b/libm/x86_64/e_exp.S new file mode 100644 index 000000000..6882dfc9c --- /dev/null +++ b/libm/x86_64/e_exp.S @@ -0,0 +1,636 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Description: +// Let K = 64 (table size). +// x x/log(2) n +// e = 2 = 2 * T[j] * (1 + P(y)) +// where +// x = m*log(2)/K + y, y in [-log(2)/K..log(2)/K] +// m = n*K + j, m,n,j - signed integer, j in [-K/2..K/2] +// j/K +// values of 2 are tabulated as T[j] = T_hi[j] ( 1 + T_lo[j]). +// +// P(y) is a minimax polynomial approximation of exp(x)-1 +// on small interval [-log(2)/K..log(2)/K] (were calculated by Maple V). +// +// To avoid problems with arithmetic overflow and underflow, +// n n1 n2 +// value of 2 is safely computed as 2 * 2 where n1 in [-BIAS/2..BIAS/2] +// where BIAS is a value of exponent bias. +// +// Special cases: +// exp(NaN) = NaN +// exp(+INF) = +INF +// exp(-INF) = 0 +// exp(x) = 1 for subnormals +// for finite argument, only exp(0)=1 is exact +// For IEEE double +// if x > 709.782712893383973096 then exp(x) overflow +// if x < -745.133219101941108420 then exp(x) underflow +// +/******************************************************************************/ + +#include +# -- Begin exp +ENTRY(exp) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_exp.1: + subq $24, %rsp +..___tag_value_exp.3: + movsd %xmm0, 8(%rsp) +..B1.2: + unpcklpd %xmm0, %xmm0 + movapd cv(%rip), %xmm1 + movapd Shifter(%rip), %xmm6 + movapd 16+cv(%rip), %xmm2 + movapd 32+cv(%rip), %xmm3 + pextrw $3, %xmm0, %eax + andl $32767, %eax + movl $16527, %edx + subl %eax, %edx + subl $15504, %eax + orl %eax, %edx + cmpl $-2147483648, %edx + jae .L_2TAG_PACKET_0.0.2 + mulpd %xmm0, %xmm1 + addpd %xmm6, %xmm1 + movapd %xmm1, %xmm7 + subpd %xmm6, %xmm1 + mulpd %xmm1, %xmm2 + movapd 64+cv(%rip), %xmm4 + mulpd %xmm1, %xmm3 + movapd 80+cv(%rip), %xmm5 + subpd %xmm2, %xmm0 + movd %xmm7, %eax + movl %eax, %ecx + andl $63, %ecx + shll $4, %ecx + sarl $6, %eax + movl %eax, %edx + movdqa mmask(%rip), %xmm6 + pand %xmm6, %xmm7 + movdqa bias(%rip), %xmm6 + paddq %xmm6, %xmm7 + psllq $46, %xmm7 + subpd %xmm3, %xmm0 + lea Tbl_addr(%rip), %r8 + movapd (%rcx,%r8), %xmm2 + mulpd %xmm0, %xmm4 + movapd %xmm0, %xmm6 + movapd %xmm0, %xmm1 + mulpd %xmm6, %xmm6 + mulpd %xmm6, %xmm0 + addpd %xmm4, %xmm5 + mulsd %xmm6, %xmm0 + mulpd 48+cv(%rip), %xmm6 + addsd %xmm2, %xmm1 + unpckhpd %xmm2, %xmm2 + mulpd %xmm5, %xmm0 + addsd %xmm0, %xmm1 + orpd %xmm7, %xmm2 + unpckhpd %xmm0, %xmm0 + addsd %xmm1, %xmm0 + addsd %xmm6, %xmm0 + addl $894, %edx + cmpl $1916, %edx + ja .L_2TAG_PACKET_1.0.2 + mulsd %xmm2, %xmm0 + addsd %xmm2, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_1.0.2: + xorpd %xmm3, %xmm3 + movapd ALLONES(%rip), %xmm4 + movl $-1022, %edx + subl %eax, %edx + movd %edx, %xmm5 + psllq %xmm5, %xmm4 + movl %eax, %ecx + sarl $1, %eax + pinsrw $3, %eax, %xmm3 + movapd ebias(%rip), %xmm6 + psllq $4, %xmm3 + psubd %xmm3, %xmm2 + mulsd %xmm2, %xmm0 + cmpl $52, %edx + jg .L_2TAG_PACKET_2.0.2 + andpd %xmm2, %xmm4 + paddd %xmm6, %xmm3 + subsd %xmm4, %xmm2 + addsd %xmm2, %xmm0 + cmpl $1023, %ecx + jge .L_2TAG_PACKET_3.0.2 + pextrw $3, %xmm0, %ecx + andl $32768, %ecx + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_4.0.2 + movapd %xmm0, %xmm6 + addsd %xmm4, %xmm0 + mulsd %xmm3, %xmm0 + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + cmpl $0, %ecx + je .L_2TAG_PACKET_5.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_5.0.2: + mulsd %xmm3, %xmm6 + mulsd %xmm3, %xmm4 + movq %xmm6, %xmm0 + pxor %xmm4, %xmm6 + psrad $31, %xmm6 + pshufd $85, %xmm6, %xmm6 + psllq $1, %xmm0 + psrlq $1, %xmm0 + pxor %xmm6, %xmm0 + psrlq $63, %xmm6 + paddq %xmm6, %xmm0 + paddq %xmm4, %xmm0 + movl $15, (%rsp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_4.0.2: + addsd %xmm4, %xmm0 + mulsd %xmm3, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_3.0.2: + addsd %xmm4, %xmm0 + mulsd %xmm3, %xmm0 + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + cmpl $32752, %ecx + jnb .L_2TAG_PACKET_7.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_2.0.2: + paddd %xmm6, %xmm3 + addpd %xmm2, %xmm0 + mulsd %xmm3, %xmm0 + movl $15, (%rsp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_8.0.2: + cmpl $2146435072, %eax + jae .L_2TAG_PACKET_9.0.2 + movl 12(%rsp), %eax + cmpl $-2147483648, %eax + jae .L_2TAG_PACKET_10.0.2 + movsd XMAX(%rip), %xmm0 + mulsd %xmm0, %xmm0 +.L_2TAG_PACKET_7.0.2: + movl $14, (%rsp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_10.0.2: + movsd XMIN(%rip), %xmm0 + mulsd %xmm0, %xmm0 + movl $15, (%rsp) + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_9.0.2: + movl 8(%rsp), %edx + cmpl $2146435072, %eax + ja .L_2TAG_PACKET_11.0.2 + cmpl $0, %edx + jne .L_2TAG_PACKET_11.0.2 + movl 12(%rsp), %eax + cmpl $2146435072, %eax + jne .L_2TAG_PACKET_12.0.2 + movsd INF(%rip), %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_12.0.2: + movsd ZERO(%rip), %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_11.0.2: + movsd 8(%rsp), %xmm0 + addsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: + movl 12(%rsp), %eax + andl $2147483647, %eax + cmpl $1083179008, %eax + jae .L_2TAG_PACKET_8.0.2 + movsd 8(%rsp), %xmm0 + addsd ONE_val(%rip), %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_6.0.2: + movq %xmm0, 16(%rsp) +..B1.3: + movq 16(%rsp), %xmm0 +.L_2TAG_PACKET_13.0.2: +..B1.5: + addq $24, %rsp +..___tag_value_exp.4: + ret +..___tag_value_exp.5: +END(exp) +# -- End exp + .section .rodata, "a" + .align 16 + .align 16 +cv: + .long 1697350398 + .long 1079448903 + .long 1697350398 + .long 1079448903 + .long 4277796864 + .long 1065758274 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 3164486458 + .long 1025308570 + .long 4294967294 + .long 1071644671 + .long 4294967294 + .long 1071644671 + .long 3811088480 + .long 1062650204 + .long 1432067621 + .long 1067799893 + .long 3230715663 + .long 1065423125 + .long 1431604129 + .long 1069897045 + .type cv,@object + .size cv,96 + .align 16 +Shifter: + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .type Shifter,@object + .size Shifter,16 + .align 16 +mmask: + .long 4294967232 + .long 0 + .long 4294967232 + .long 0 + .type mmask,@object + .size mmask,16 + .align 16 +bias: + .long 65472 + .long 0 + .long 65472 + .long 0 + .type bias,@object + .size bias,16 + .align 16 +Tbl_addr: + .long 0 + .long 0 + .long 0 + .long 0 + .long 235107661 + .long 1018002367 + .long 1048019040 + .long 11418 + .long 896005651 + .long 1015861842 + .long 3541402996 + .long 22960 + .long 1642514529 + .long 1012987726 + .long 410360776 + .long 34629 + .long 1568897900 + .long 1016568486 + .long 1828292879 + .long 46424 + .long 1882168529 + .long 1010744893 + .long 852742562 + .long 58348 + .long 509852888 + .long 1017336174 + .long 3490863952 + .long 70401 + .long 653277307 + .long 1017431380 + .long 2930322911 + .long 82586 + .long 1649557430 + .long 1017729363 + .long 1014845818 + .long 94904 + .long 1058231231 + .long 1015777676 + .long 3949972341 + .long 107355 + .long 1044000607 + .long 1016786167 + .long 828946858 + .long 119943 + .long 1151779725 + .long 1015705409 + .long 2288159958 + .long 132667 + .long 3819481236 + .long 1016499965 + .long 1853186616 + .long 145530 + .long 2552227826 + .long 1015039787 + .long 1709341917 + .long 158533 + .long 1829350193 + .long 1015216097 + .long 4112506593 + .long 171677 + .long 1913391795 + .long 1015756674 + .long 2799960843 + .long 184965 + .long 1303423926 + .long 1015238005 + .long 171030293 + .long 198398 + .long 1574172746 + .long 1016061241 + .long 2992903935 + .long 211976 + .long 3424156969 + .long 1017196428 + .long 926591434 + .long 225703 + .long 1938513547 + .long 1017631273 + .long 887463926 + .long 239579 + .long 2804567149 + .long 1015390024 + .long 1276261410 + .long 253606 + .long 631083525 + .long 1017690182 + .long 569847337 + .long 267786 + .long 1623370770 + .long 1011049453 + .long 1617004845 + .long 282120 + .long 3667985273 + .long 1013894369 + .long 3049340112 + .long 296610 + .long 3145379760 + .long 1014403278 + .long 3577096743 + .long 311258 + .long 2603100681 + .long 1017152460 + .long 1990012070 + .long 326066 + .long 3249202951 + .long 1017448880 + .long 1453150081 + .long 341035 + .long 419288974 + .long 1016280325 + .long 917841882 + .long 356167 + .long 3793507337 + .long 1016095713 + .long 3712504873 + .long 371463 + .long 728023093 + .long 1016345318 + .long 363667784 + .long 386927 + .long 2582678538 + .long 1017123460 + .long 2956612996 + .long 402558 + .long 7592966 + .long 1016721543 + .long 2186617380 + .long 418360 + .long 228611441 + .long 1016696141 + .long 1719614412 + .long 434334 + .long 2261665670 + .long 1017457593 + .long 1013258798 + .long 450482 + .long 544148907 + .long 1017323666 + .long 3907805043 + .long 466805 + .long 2383914918 + .long 1017143586 + .long 1447192520 + .long 483307 + .long 1176412038 + .long 1017267372 + .long 1944781190 + .long 499988 + .long 2882956373 + .long 1013312481 + .long 919555682 + .long 516851 + .long 3154077648 + .long 1016528543 + .long 2571947538 + .long 533897 + .long 348651999 + .long 1016405780 + .long 2604962540 + .long 551129 + .long 3253791412 + .long 1015920431 + .long 1110089947 + .long 568549 + .long 1509121860 + .long 1014756995 + .long 2568320822 + .long 586158 + .long 2617649212 + .long 1017340090 + .long 2966275556 + .long 603959 + .long 553214634 + .long 1016457425 + .long 2682146383 + .long 621954 + .long 730975783 + .long 1014083580 + .long 2191782032 + .long 640145 + .long 1486499517 + .long 1016818996 + .long 2069751140 + .long 658534 + .long 2595788928 + .long 1016407932 + .long 2990417244 + .long 677123 + .long 1853053619 + .long 1015310724 + .long 1434058175 + .long 695915 + .long 2462790535 + .long 1015814775 + .long 2572866477 + .long 714911 + .long 3693944214 + .long 1017259110 + .long 3092190714 + .long 734114 + .long 2979333550 + .long 1017188654 + .long 4076559942 + .long 753526 + .long 174054861 + .long 1014300631 + .long 2420883922 + .long 773150 + .long 816778419 + .long 1014197934 + .long 3716502172 + .long 792987 + .long 3507050924 + .long 1015341199 + .long 777507147 + .long 813041 + .long 1821514088 + .long 1013410604 + .long 3706687593 + .long 833312 + .long 920623539 + .long 1016295433 + .long 1242007931 + .long 853805 + .long 2789017511 + .long 1014276997 + .long 3707479175 + .long 874520 + .long 3586233004 + .long 1015962192 + .long 64696965 + .long 895462 + .long 474650514 + .long 1016642419 + .long 863738718 + .long 916631 + .long 1614448851 + .long 1014281732 + .long 3884662774 + .long 938030 + .long 2450082086 + .long 1016164135 + .long 2728693977 + .long 959663 + .long 1101668360 + .long 1015989180 + .long 3999357479 + .long 981531 + .long 835814894 + .long 1015702697 + .long 1533953344 + .long 1003638 + .long 1301400989 + .long 1014466875 + .long 2174652632 + .long 1025985 + .type Tbl_addr,@object + .size Tbl_addr,1024 + .align 16 +ALLONES: + .long 4294967295 + .long 4294967295 + .long 4294967295 + .long 4294967295 + .type ALLONES,@object + .size ALLONES,16 + .align 16 +ebias: + .long 0 + .long 1072693248 + .long 0 + .long 1072693248 + .type ebias,@object + .size ebias,16 + .align 4 +XMAX: + .long 4294967295 + .long 2146435071 + .type XMAX,@object + .size XMAX,8 + .align 4 +XMIN: + .long 0 + .long 1048576 + .type XMIN,@object + .size XMIN,8 + .align 4 +INF: + .long 0 + .long 2146435072 + .type INF,@object + .size INF,8 + .align 4 +ZERO: + .long 0 + .long 0 + .type ZERO,@object + .size ZERO,8 + .align 4 +ONE_val: + .long 0 + .long 1072693248 + .type ONE_val,@object + .size ONE_val,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_exp.1-. + .4byte ..___tag_value_exp.5-..___tag_value_exp.1 + .2byte 0x0400 + .4byte ..___tag_value_exp.3-..___tag_value_exp.1 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_exp.4-..___tag_value_exp.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/e_hypot.S b/libm/x86_64/e_hypot.S new file mode 100644 index 000000000..089b2b47c --- /dev/null +++ b/libm/x86_64/e_hypot.S @@ -0,0 +1,210 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// X87 version: +// Use 80-bit FPU precision fmul, fsqrt to compute square and sqrt. +// +// SSE version: +// Swap x, y if |x|<|y| +// For x=2^k*x, get y=y*2^(-k) +// Get S ~ sqrt(x^2+y^2) (leading 1 + leading 25 mantissa bits) +// +// Get D = ( RN(x^2+y^2) - S^2 ) + ( x^2 - RN(x^2) ) + +// + ( y^2 - ((RN(x^2+y^2)-RN(x^2)) ) +// +// Result is 2^k*(S + Se), where Se = S*e +// S*e is approximated as (D/2S)*( 1 - (D/2S)^2*1.0/S ) +// +// Return 2^k*(S+Se) +// +// For |y/x|<2^(-64), return x +// +// For cases where maximum biased exponent is either greater than 7fdh or +// below 32, take a special path to check for special cases (0, NaN, Inf), +// possible overflow, and more accurate computation for denormal results +// +// Special cases: +// hypot(x,y), hypot(y,x), and hypot(x,-y) are equivalent +// hypot(x,+-0) is equivalent to fabs(x) +// hypot(x,y) = y if (x==NaN or x==INF) and y==INF +// hypot(x,y) = x if (x==NaN or x==INF) and y!=INF (even if y==NaN!) +// hypot(x,y) = y if (x!=NaN and x!=INF) and (y==NaN or y==INF) +// +/******************************************************************************/ + +#include +# -- Begin hypot +ENTRY(hypot) +# parameter 1: %xmm0 +# parameter 2: %xmm1 +..B1.1: +..___tag_value_hypot.1: +..___tag_value_hypot.3: +..B1.2: + subq $64, %rsp + movapd static_const_table(%rip), %xmm3 + movsd %xmm0, 48(%rsp) + movsd %xmm1, 56(%rsp) + andpd %xmm3, %xmm0 + andpd %xmm3, %xmm1 + pextrw $3, %xmm0, %eax + pextrw $3, %xmm1, %edx + cmpl $24528, %eax + ja .L_2TAG_PACKET_0.0.1 + cmpl $24528, %edx + ja .L_2TAG_PACKET_0.0.1 +.L_2TAG_PACKET_1.0.1: + fldl 48(%rsp) + fldl 56(%rsp) + fxch %st(1) + fmul %st(0), %st + fxch %st(1) + nop + fmul %st(0), %st + faddp %st, %st(1) + fsqrt + jmp .L_2TAG_PACKET_2.0.1 +.L_2TAG_PACKET_0.0.1: + cmpl $32752, %eax + movl %eax, %ecx + jae .L_2TAG_PACKET_3.0.1 + subl %edx, %ecx + cmpl $32752, %edx + jae .L_2TAG_PACKET_3.0.1 + addl $928, %ecx + addl %edx, %eax + cmpl $1856, %ecx + ja .L_2TAG_PACKET_4.0.1 + cmpl $49056, %eax + jb .L_2TAG_PACKET_1.0.1 + fldl 48(%rsp) + fldl 56(%rsp) + fxch %st(1) + fmul %st(0), %st + fxch %st(1) + nop + fmul %st(0), %st + faddp %st, %st(1) + fsqrt +.L_2TAG_PACKET_5.0.1: + fstl (%rsp) + fstpt 16(%rsp) + xorl %eax, %eax + movw 24(%rsp), %ax + cmpl $17407, %eax + jae .L_2TAG_PACKET_6.0.1 + fldl (%rsp) + jmp .L_2TAG_PACKET_7.0.1 +.L_2TAG_PACKET_4.0.1: + movsd %xmm0, 32(%rsp) + movsd %xmm1, 40(%rsp) + fldl 32(%rsp) + faddl 40(%rsp) + jmp .L_2TAG_PACKET_5.0.1 +.L_2TAG_PACKET_6.0.1: + fldl (%rsp) + jmp .L_2TAG_PACKET_7.0.1 +.L_2TAG_PACKET_3.0.1: + shufpd $0, %xmm1, %xmm0 + movdqa %xmm0, %xmm2 + movdqa 16+static_const_table(%rip), %xmm3 + movsd %xmm0, 32(%rsp) + movsd %xmm1, 40(%rsp) + cmppd $3, %xmm0, %xmm2 + cmppd $0, %xmm0, %xmm3 + movmskpd %xmm2, %edx + movmskpd %xmm3, %rax + testl %edx, %edx + je .L_2TAG_PACKET_8.0.1 + fldl 32(%rsp) + fmull 40(%rsp) + testq $1, %rax + jne .L_2TAG_PACKET_9.0.1 + testq $2, %rax + jne .L_2TAG_PACKET_10.0.1 + jmp .L_2TAG_PACKET_2.0.1 +.L_2TAG_PACKET_8.0.1: + fldl 32(%rsp) + faddl 40(%rsp) + jmp .L_2TAG_PACKET_2.0.1 +.L_2TAG_PACKET_9.0.1: + fstpl 40(%rsp) + fldl 32(%rsp) + jmp .L_2TAG_PACKET_7.0.1 +.L_2TAG_PACKET_10.0.1: + fstpl 32(%rsp) + fldl 40(%rsp) + jmp .L_2TAG_PACKET_7.0.1 +.L_2TAG_PACKET_2.0.1: +.L_2TAG_PACKET_7.0.1: + fstpl 16(%rsp) + movq 16(%rsp), %xmm0 + addq $64, %rsp + ret +..B1.3: +..___tag_value_hypot.4: +END(hypot) +# -- End hypot + .section .rodata, "a" + .align 16 + .align 16 +static_const_table: + .long 4294967295 + .long 2147483647 + .long 4294967295 + .long 2147483647 + .long 0 + .long 2146435072 + .long 0 + .long 2146435072 + .type static_const_table,@object + .size static_const_table,32 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x00000014 + .4byte 0x0000001c + .4byte ..___tag_value_hypot.1-. + .4byte ..___tag_value_hypot.4-..___tag_value_hypot.1 + .2byte 0x0400 + .4byte ..___tag_value_hypot.3-..___tag_value_hypot.1 + .2byte 0x100e +# End diff --git a/libm/x86_64/e_log.S b/libm/x86_64/e_log.S new file mode 100644 index 000000000..40cb5e243 --- /dev/null +++ b/libm/x86_64/e_log.S @@ -0,0 +1,779 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// x=2^k * mx, mx in [1,2) +// +// Get B~1/mx based on the output of rcpss instruction (B0) +// B = int((B0*2^7+0.5))/2^7 +// +// Reduced argument: r=B*mx-1.0 (computed accurately in high and low parts) +// +// Result: k*log(2) - log(B) + p(r) if |x-1| >= small value (2^-6) and +// p(r) is a degree 7 polynomial +// -log(B) read from data table (high, low parts) +// Result is formed from high and low parts +// +// Special cases: +// log(NaN) = quiet NaN, and raise invalid exception +// log(+INF) = that INF +// log(0) = -INF with divide-by-zero exception raised +// log(1) = +0 +// log(x) = NaN with invalid exception raised if x < -0, including -INF +// +/******************************************************************************/ + +#include +# -- Begin log +ENTRY(log) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_log.1: + subq $24, %rsp +..___tag_value_log.3: + movsd %xmm0, (%rsp) +..B1.2: + movq $0x3ff0000000000000, %rax + movd %rax, %xmm2 + movq $0x77f0000000000000, %rdx + movd %rdx, %xmm3 + movl $32768, %ecx + movd %rcx, %xmm4 + movq $0xffffe00000000000, %r8 + movd %r8, %xmm5 + movq %xmm0, %xmm1 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + movl $16352, %ecx + psrlq $27, %xmm0 + lea L_tbl(%rip), %r11 + psrld $2, %xmm0 + rcpps %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $228, %xmm5, %xmm6 + psrlq $12, %xmm1 + subl $16, %eax + cmpl $32736, %eax + jae .L_2TAG_PACKET_0.0.2 +.L_2TAG_PACKET_1.0.2: + paddd %xmm4, %xmm0 + orpd %xmm3, %xmm1 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm1, %xmm5 + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm1 + mulpd %xmm0, %xmm5 + andl $32752, %eax + subl %ecx, %eax + cvtsi2sd %eax, %xmm7 + mulsd %xmm0, %xmm1 + movq log2(%rip), %xmm6 + movapd coeff(%rip), %xmm3 + subsd %xmm2, %xmm5 + andl $16711680, %edx + shrl $12, %edx + movapd (%r11,%rdx), %xmm0 + movapd 16+coeff(%rip), %xmm4 + addsd %xmm5, %xmm1 + movapd 32+coeff(%rip), %xmm2 + mulsd %xmm7, %xmm6 + movddup %xmm1, %xmm5 + mulsd 8+log2(%rip), %xmm7 + mulsd %xmm1, %xmm3 + addsd %xmm6, %xmm0 + mulpd %xmm5, %xmm4 + mulpd %xmm5, %xmm5 + movddup %xmm0, %xmm6 + addsd %xmm1, %xmm0 + addpd %xmm2, %xmm4 + mulpd %xmm5, %xmm3 + subsd %xmm0, %xmm6 + mulsd %xmm1, %xmm4 + pshufd $238, %xmm0, %xmm2 + addsd %xmm6, %xmm1 + mulsd %xmm5, %xmm5 + addsd %xmm2, %xmm7 + addpd %xmm3, %xmm4 + addsd %xmm7, %xmm1 + mulpd %xmm5, %xmm4 + addsd %xmm4, %xmm1 + pshufd $238, %xmm4, %xmm5 + addsd %xmm5, %xmm1 + addsd %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: + movq (%rsp), %xmm0 + movq (%rsp), %xmm1 + addl $16, %eax + cmpl $32768, %eax + jae .L_2TAG_PACKET_2.0.2 + cmpl $16, %eax + jb .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_4.0.2: + addsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_5.0.2: + ja .L_2TAG_PACKET_4.0.2 + cmpl $0, %edx + ja .L_2TAG_PACKET_4.0.2 + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_3.0.2: + xorpd %xmm1, %xmm1 + addsd %xmm0, %xmm1 + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_7.0.2 + xorpd %xmm1, %xmm1 + movl $18416, %eax + pinsrw $3, %eax, %xmm1 + mulsd %xmm1, %xmm0 + movq %xmm0, %xmm1 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + psrlq $27, %xmm0 + movl $18416, %ecx + psrld $2, %xmm0 + rcpps %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $228, %xmm5, %xmm6 + psrlq $12, %xmm1 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + addl %ecx, %ecx + cmpl $-2097152, %ecx + jae .L_2TAG_PACKET_5.0.2 + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_6.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %eax + pinsrw $3, %eax, %xmm1 + mulsd %xmm1, %xmm0 + movl $3, 16(%rsp) + jmp .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_7.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $49136, %eax + pinsrw $3, %eax, %xmm0 + divsd %xmm1, %xmm0 + movl $2, 16(%rsp) +.L_2TAG_PACKET_8.0.2: + movq %xmm0, 8(%rsp) +..B1.3: + movq 8(%rsp), %xmm0 +.L_2TAG_PACKET_9.0.2: +..B1.5: + addq $24, %rsp +..___tag_value_log.4: + ret +..___tag_value_log.5: +END(log) +# -- End log + .section .rodata, "a" + .align 16 + .align 16 +L_tbl: + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 2854492160 + .long 1072033410 + .long 215631550 + .long 1025638968 + .long 1547061248 + .long 1072017216 + .long 2886781435 + .long 1026423395 + .long 649825280 + .long 1072001146 + .long 4281533405 + .long 1024038923 + .long 646346752 + .long 1071985198 + .long 1562735921 + .long 1023790276 + .long 2203734016 + .long 1071969370 + .long 1838397691 + .long 3173936209 + .long 1872169984 + .long 1071953661 + .long 3981202460 + .long 1022325013 + .long 669557760 + .long 1071938069 + .long 4182597802 + .long 3173174122 + .long 4076413952 + .long 1071922591 + .long 1209029111 + .long 3170736207 + .long 556125184 + .long 1071907228 + .long 821086028 + .long 3173437049 + .long 204914688 + .long 1071891976 + .long 2097025986 + .long 3171071798 + .long 387545088 + .long 1071876834 + .long 3142936996 + .long 3173092218 + .long 2912783360 + .long 1071861800 + .long 2502420140 + .long 1024505919 + .long 1144260608 + .long 1071846874 + .long 3315658140 + .long 3173469843 + .long 1471209472 + .long 1071832053 + .long 129621009 + .long 3172443877 + .long 1829683200 + .long 1071817336 + .long 3885467693 + .long 1025535275 + .long 288676864 + .long 1071802722 + .long 86139472 + .long 3171639793 + .long 3636378624 + .long 1071788208 + .long 1850238587 + .long 1024654342 + .long 1606817792 + .long 1071773795 + .long 3388899795 + .long 3173675586 + .long 1236164608 + .long 1071759480 + .long 3983599207 + .long 1020046558 + .long 1089616896 + .long 1071745262 + .long 4171974224 + .long 1024773198 + .long 4143093760 + .long 1071731139 + .long 2727587401 + .long 3173965207 + .long 600267776 + .long 1071717112 + .long 3147685042 + .long 3173353031 + .long 2249313280 + .long 1071703177 + .long 125835074 + .long 1025255832 + .long 3805303808 + .long 1071689334 + .long 2289991207 + .long 1025460331 + .long 87278592 + .long 1071675583 + .long 1106114045 + .long 1025933602 + .long 3195405312 + .long 1071661920 + .long 3885316576 + .long 3171206239 + .long 3853649920 + .long 1071648346 + .long 2977069852 + .long 3171236771 + .long 2944026624 + .long 1071625048 + .long 1008093493 + .long 1023444474 + .long 3993180160 + .long 1071598247 + .long 1862355595 + .long 1024642533 + .long 1454641152 + .long 1071571617 + .long 1514603089 + .long 1026500596 + .long 3286085632 + .long 1071545154 + .long 1400028424 + .long 3173279056 + .long 438773760 + .long 1071518858 + .long 120727864 + .long 3172148914 + .long 1212979200 + .long 1071492725 + .long 1625055594 + .long 3172901933 + .long 1189017600 + .long 1071466754 + .long 3920062376 + .long 1025727407 + .long 403064832 + .long 1071440943 + .long 1053271728 + .long 3171391427 + .long 3343210496 + .long 1071415289 + .long 3243395502 + .long 3173627613 + .long 1765777408 + .long 1071389792 + .long 2145968512 + .long 1026354304 + .long 461430784 + .long 1071364449 + .long 4094322285 + .long 1026021467 + .long 71706624 + .long 1071339258 + .long 763632021 + .long 1024496933 + .long 1380503552 + .long 1071314217 + .long 1383547992 + .long 3173088453 + .long 1015732224 + .long 1071289325 + .long 3198646877 + .long 1025390322 + .long 35977216 + .long 1071264580 + .long 2141026805 + .long 1025754693 + .long 3927306240 + .long 1071239979 + .long 282116272 + .long 3173394334 + .long 1125341184 + .long 1071215523 + .long 2768427504 + .long 3172279059 + .long 1666971648 + .long 1071191208 + .long 786837629 + .long 3172427445 + .long 2827694080 + .long 1071167033 + .long 3857122416 + .long 3173014241 + .long 2003683328 + .long 1071142997 + .long 859010954 + .long 1026545007 + .long 1004017664 + .long 1071119098 + .long 3356644970 + .long 3173458064 + .long 1753020416 + .long 1071095334 + .long 788338552 + .long 1026157693 + .long 1992718336 + .long 1071071704 + .long 1239179443 + .long 1026394889 + .long 3870234624 + .long 1071048206 + .long 2082614663 + .long 1024926053 + .long 1050437632 + .long 1071024840 + .long 660007840 + .long 1025548499 + .long 188395520 + .long 1071001603 + .long 3878792704 + .long 3173889571 + .long 3747176448 + .long 1070978493 + .long 144991708 + .long 3171552042 + .long 1405669376 + .long 1070955511 + .long 3999088879 + .long 1025486317 + .long 121151488 + .long 1070932654 + .long 2170865497 + .long 1026473584 + .long 2652319744 + .long 1070909920 + .long 453695652 + .long 3173916809 + .long 3262236672 + .long 1070887309 + .long 157800053 + .long 3173984206 + .long 601221120 + .long 1070864820 + .long 3968917661 + .long 1023992886 + .long 1999843328 + .long 1070842450 + .long 3053895004 + .long 1024998228 + .long 1992167424 + .long 1070820199 + .long 2968614856 + .long 1024552653 + .long 3788726272 + .long 1070798065 + .long 3542170808 + .long 3173573242 + .long 2094829568 + .long 1070776048 + .long 1246758132 + .long 1026202874 + .long 288675840 + .long 1070754146 + .long 3747328950 + .long 1026331585 + .long 1829681152 + .long 1070732357 + .long 3125197546 + .long 1024100318 + .long 1666869248 + .long 1070710681 + .long 1363656119 + .long 1026336493 + .long 3417110528 + .long 1070689116 + .long 4154791553 + .long 1026267853 + .long 2183653376 + .long 1070667662 + .long 1671819292 + .long 3173785870 + .long 1734434816 + .long 1070646317 + .long 373091049 + .long 1025972363 + .long 1615681536 + .long 1070625080 + .long 384650897 + .long 1022926043 + .long 1445382144 + .long 1070603950 + .long 344320330 + .long 3172397196 + .long 1823715328 + .long 1070569756 + .long 3389841200 + .long 1025231852 + .long 3839688704 + .long 1070527917 + .long 1706790417 + .long 3167363349 + .long 4293332992 + .long 1070486286 + .long 1614935088 + .long 1019351591 + .long 2966720512 + .long 1070444861 + .long 4145393717 + .long 3173711658 + .long 4066729984 + .long 1070403639 + .long 1974925028 + .long 3171437182 + .long 3337621504 + .long 1070362619 + .long 3314953170 + .long 3169971314 + .long 943448064 + .long 1070321799 + .long 1498682038 + .long 3173862340 + .long 1465634816 + .long 1070281176 + .long 1319952810 + .long 3171693965 + .long 1015734272 + .long 1070240749 + .long 1347821929 + .long 3173544515 + .long 118001664 + .long 1070200516 + .long 1751482746 + .long 1026134093 + .long 3707174912 + .long 1070160474 + .long 1486946159 + .long 1023930920 + .long 3946381312 + .long 1070120623 + .long 2867408081 + .long 3171368276 + .long 1699848192 + .long 1070080961 + .long 2590187139 + .long 1025379803 + .long 2235846656 + .long 1070041485 + .long 1888568069 + .long 3172754960 + .long 2339729408 + .long 1070002194 + .long 3852214753 + .long 3173323149 + .long 3196850176 + .long 1069963086 + .long 742141560 + .long 1025101707 + .long 1800683520 + .long 1069924160 + .long 3949500444 + .long 3172102179 + .long 3835801600 + .long 1069885413 + .long 3848895943 + .long 1025913832 + .long 2201202688 + .long 1069846845 + .long 1425913464 + .long 1025868665 + .long 2778279936 + .long 1069808453 + .long 2120889677 + .long 3173831128 + .long 2954203136 + .long 1069770236 + .long 592147081 + .long 1019621288 + .long 210141184 + .long 1069732193 + .long 3414275233 + .long 1023647084 + .long 709476352 + .long 1069694321 + .long 2413027164 + .long 1024462115 + .long 2116284416 + .long 1069656619 + .long 1144559924 + .long 1026336654 + .long 2183651328 + .long 1069619086 + .long 3459057650 + .long 1025634168 + .long 3047047168 + .long 1069581720 + .long 1879674924 + .long 3173508573 + .long 970711040 + .long 1069541521 + .long 1335954173 + .long 3173332182 + .long 2198478848 + .long 1069467449 + .long 2951103968 + .long 3173892200 + .long 1669611520 + .long 1069393703 + .long 531044147 + .long 1025149248 + .long 29114368 + .long 1069320280 + .long 3327831251 + .long 1025918673 + .long 2376949760 + .long 1069247176 + .long 737634533 + .long 3172176000 + .long 1085390848 + .long 1069174390 + .long 3108243400 + .long 3171828406 + .long 1566130176 + .long 1069101918 + .long 985483226 + .long 1025708380 + .long 792780800 + .long 1069029758 + .long 4184866295 + .long 1024426204 + .long 183156736 + .long 1068957907 + .long 2845699378 + .long 1022107277 + .long 1301782528 + .long 1068886362 + .long 1012735262 + .long 3173804294 + .long 1562411008 + .long 1068815121 + .long 2197086703 + .long 3170187813 + .long 2815549440 + .long 1068744181 + .long 2782613207 + .long 1026345054 + .long 2756124672 + .long 1068673540 + .long 2929486205 + .long 3173037800 + .long 3511050240 + .long 1068603195 + .long 1443733147 + .long 3173331549 + .long 3047047168 + .long 1068533144 + .long 1879674924 + .long 3172459997 + .long 3221667840 + .long 1068427825 + .long 1338588027 + .long 3171815742 + .long 3453861888 + .long 1068288883 + .long 1205348359 + .long 3172624626 + .long 3506110464 + .long 1068150514 + .long 893105198 + .long 1025571866 + .long 346013696 + .long 1068012714 + .long 3495569021 + .long 3172563349 + .long 4074029056 + .long 1067875476 + .long 3961106338 + .long 3171065595 + .long 3559784448 + .long 1067738798 + .long 1975385384 + .long 3173783155 + .long 797769728 + .long 1067602675 + .long 3760305787 + .long 1026047642 + .long 2313633792 + .long 1067467101 + .long 1559353171 + .long 1023480256 + .long 3960766464 + .long 1067213778 + .long 1067365107 + .long 1025865926 + .long 684261376 + .long 1066944805 + .long 844762164 + .long 3173687482 + .long 630718464 + .long 1066676905 + .long 2458269694 + .long 1024033081 + .long 1486061568 + .long 1066410070 + .long 115537874 + .long 3173243995 + .long 2743664640 + .long 1065886792 + .long 3665098304 + .long 3173471607 + .long 1971912704 + .long 1065357333 + .long 2577214440 + .long 3171993451 + .long 1498939392 + .long 1064306693 + .long 3409036923 + .long 1025599151 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .type L_tbl,@object + .size L_tbl,2064 + .align 16 +log2: + .long 4277811200 + .long 1067855426 + .long 2479318832 + .long 1022292823 + .type log2,@object + .size log2,16 + .align 16 +coeff: + .long 2454267026 + .long 1069697316 + .long 0 + .long 3218079744 + .long 1030730101 + .long 3217380702 + .long 1431655765 + .long 1070945621 + .long 2576980378 + .long 1070176665 + .long 0 + .long 3219128320 + .type coeff,@object + .size coeff,48 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_log.1-. + .4byte ..___tag_value_log.5-..___tag_value_log.1 + .2byte 0x0400 + .4byte ..___tag_value_log.3-..___tag_value_log.1 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_log.4-..___tag_value_log.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/e_log10.S b/libm/x86_64/e_log10.S new file mode 100644 index 000000000..4f43a36e5 --- /dev/null +++ b/libm/x86_64/e_log10.S @@ -0,0 +1,807 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Let x=2^k * mx, mx in [1,2) +// +// Get B~1/mx based on the output of rcpss instruction (B0) +// B = int((B0*LH*2^7+0.5))/2^7 +// LH is a short approximation for log10(e) +// +// Reduced argument: r=B*mx-LH (computed accurately in high and low parts) +// +// Result: k*log10(2) - log(B) + p(r) +// p(r) is a degree 7 polynomial +// -log(B) read from data table (high, low parts) +// Result is formed from high and low parts +// +// Special cases: +// log10(0) = -INF with divide-by-zero exception raised +// log10(1) = +0 +// log10(x) = NaN with invalid exception raised if x < -0, including -INF +// log10(+INF) = +INF +// +/******************************************************************************/ + +#include +# -- Begin log10 +ENTRY(log10) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_log10.1: + subq $24, %rsp +..___tag_value_log10.3: + movsd %xmm0, (%rsp) +..B1.2: + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + movl $1054736384, %ecx + movd %ecx, %xmm7 + xorpd %xmm3, %xmm3 + movl $30704, %edx + pinsrw $3, %edx, %xmm3 + movq %xmm0, %xmm1 + movl $32768, %edx + movd %edx, %xmm4 + movapd HIGHSIGMASK(%rip), %xmm5 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + movl $16352, %ecx + psrlq $27, %xmm0 + movq LOG10_E(%rip), %xmm2 + psrld $2, %xmm0 + rcpps %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $78, %xmm5, %xmm6 + psrlq $12, %xmm1 + subl $16, %eax + cmpl $32736, %eax + jae .L_2TAG_PACKET_0.0.2 +.L_2TAG_PACKET_1.0.2: + mulss %xmm7, %xmm0 + orpd %xmm3, %xmm1 + lea L_tbl(%rip), %r11 + andpd %xmm1, %xmm5 + paddd %xmm4, %xmm0 + subsd %xmm5, %xmm1 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm6, %xmm0 + andl $32752, %eax + subl %ecx, %eax + cvtsi2sd %eax, %xmm7 + mulpd %xmm0, %xmm5 + mulsd %xmm0, %xmm1 + movq log2(%rip), %xmm6 + movapd coeff(%rip), %xmm3 + subsd %xmm2, %xmm5 + andl $16711680, %edx + shrl $12, %edx + movapd -1504(%r11,%rdx), %xmm0 + movapd 16+coeff(%rip), %xmm4 + addsd %xmm5, %xmm1 + movapd 32+coeff(%rip), %xmm2 + mulsd %xmm7, %xmm6 + pshufd $68, %xmm1, %xmm5 + mulsd 8+log2(%rip), %xmm7 + mulsd %xmm1, %xmm3 + addsd %xmm6, %xmm0 + mulpd %xmm5, %xmm4 + movq 8+LOG10_E(%rip), %xmm6 + mulpd %xmm5, %xmm5 + addpd %xmm2, %xmm4 + mulpd %xmm5, %xmm3 + pshufd $228, %xmm0, %xmm2 + addsd %xmm1, %xmm0 + mulsd %xmm1, %xmm4 + subsd %xmm0, %xmm2 + mulsd %xmm1, %xmm6 + addsd %xmm2, %xmm1 + pshufd $238, %xmm0, %xmm2 + mulsd %xmm5, %xmm5 + addsd %xmm2, %xmm7 + addsd %xmm6, %xmm1 + addpd %xmm3, %xmm4 + addsd %xmm7, %xmm1 + mulpd %xmm5, %xmm4 + addsd %xmm4, %xmm1 + pshufd $238, %xmm4, %xmm5 + addsd %xmm5, %xmm1 + addsd %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: + movq (%rsp), %xmm0 + movq (%rsp), %xmm1 + addl $16, %eax + cmpl $32768, %eax + jae .L_2TAG_PACKET_2.0.2 + cmpl $16, %eax + jb .L_2TAG_PACKET_3.0.2 +.L_2TAG_PACKET_4.0.2: + addsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_5.0.2: + ja .L_2TAG_PACKET_4.0.2 + cmpl $0, %edx + ja .L_2TAG_PACKET_4.0.2 + jmp .L_2TAG_PACKET_6.0.2 +.L_2TAG_PACKET_3.0.2: + xorpd %xmm1, %xmm1 + addsd %xmm0, %xmm1 + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_7.0.2 + xorpd %xmm1, %xmm1 + movl $18416, %eax + pinsrw $3, %eax, %xmm1 + mulsd %xmm1, %xmm0 + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + movq %xmm0, %xmm1 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + movl $18416, %ecx + psrlq $27, %xmm0 + movq LOG10_E(%rip), %xmm2 + psrld $2, %xmm0 + rcpps %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $78, %xmm5, %xmm6 + psrlq $12, %xmm1 + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_2.0.2: + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + addl %ecx, %ecx + cmpl $-2097152, %ecx + jae .L_2TAG_PACKET_5.0.2 + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_6.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %eax + pinsrw $3, %eax, %xmm1 + mulsd %xmm1, %xmm0 + movl $9, 16(%rsp) + jmp .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_7.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $49136, %eax + pinsrw $3, %eax, %xmm0 + divsd %xmm1, %xmm0 + movl $8, 16(%rsp) +.L_2TAG_PACKET_8.0.2: + movq %xmm0, 8(%rsp) +..B1.3: + movq 8(%rsp), %xmm0 +.L_2TAG_PACKET_9.0.2: +..B1.5: + addq $24, %rsp +..___tag_value_log10.4: + ret +..___tag_value_log10.5: +END(log10) +# -- End log10 + .section .rodata, "a" + .align 16 + .align 16 +HIGHSIGMASK: + .long 4160749568 + .long 4294967295 + .long 0 + .long 4294959104 + .type HIGHSIGMASK,@object + .size HIGHSIGMASK,16 + .align 16 +LOG10_E: + .long 0 + .long 1071366144 + .long 3207479560 + .long 1062894188 + .type LOG10_E,@object + .size LOG10_E,16 + .align 16 +L_tbl: + .long 1352628224 + .long 1070810131 + .long 521319256 + .long 1025503025 + .long 2150839296 + .long 1070801944 + .long 3329350096 + .long 3170190015 + .long 1360613376 + .long 1070793794 + .long 2024059075 + .long 1024991594 + .long 1875350528 + .long 1070785680 + .long 2163882141 + .long 3163564137 + .long 2312126464 + .long 1070777602 + .long 1975711076 + .long 1023674196 + .long 1306336256 + .long 1070769560 + .long 3524899523 + .long 3170508164 + .long 1806334976 + .long 1070761553 + .long 4254777025 + .long 1025238739 + .long 2483193856 + .long 1070753581 + .long 3800671317 + .long 3172916830 + .long 2025350144 + .long 1070745644 + .long 1731514745 + .long 1025501083 + .long 3433285632 + .long 1070737741 + .long 2551857336 + .long 3169662186 + .long 1134317568 + .long 1070729873 + .long 3426297655 + .long 3172637891 + .long 2457152512 + .long 1070722038 + .long 63549415 + .long 1025415416 + .long 1861803008 + .long 1070714237 + .long 1910171636 + .long 1023977580 + .long 2414140416 + .long 1070706469 + .long 4002514337 + .long 3170841618 + .long 2900726784 + .long 1070698734 + .long 3268064083 + .long 1022459609 + .long 2123517952 + .long 1070691032 + .long 1767031218 + .long 1022448156 + .long 3194569728 + .long 1070683362 + .long 3402332618 + .long 3171671160 + .long 650882048 + .long 1070675725 + .long 4146023905 + .long 3171023038 + .long 1928988672 + .long 1070668119 + .long 1438617867 + .long 1016360491 + .long 1594908672 + .long 1070660545 + .long 971389377 + .long 1024763979 + .long 2818746368 + .long 1070653002 + .long 3555925341 + .long 3172434821 + .long 194584576 + .long 1070645491 + .long 943919215 + .long 3172950063 + .long 1215096832 + .long 1070638010 + .long 2283358588 + .long 1022335098 + .long 501519360 + .long 1070630560 + .long 480904295 + .long 1024437959 + .long 1278266368 + .long 1070623140 + .long 2755806066 + .long 3172342012 + .long 2487812096 + .long 1070615750 + .long 2489653202 + .long 3172481099 + .long 3085451264 + .long 1070608390 + .long 3759184951 + .long 3172574892 + .long 2039090176 + .long 1070601060 + .long 1361176676 + .long 3172355319 + .long 953057280 + .long 1070591423 + .long 1176587546 + .long 3166422018 + .long 3370524672 + .long 1070576879 + .long 3669570051 + .long 1025376630 + .long 749742080 + .long 1070562394 + .long 707700964 + .long 3170814058 + .long 4008353792 + .long 1070547965 + .long 3247327652 + .long 1022431400 + .long 2612455424 + .long 1070533594 + .long 2453457344 + .long 3172322969 + .long 3230920704 + .long 1070519279 + .long 1296781801 + .long 1025115335 + .long 3965253632 + .long 1070505020 + .long 373075289 + .long 1017938528 + .long 2593157120 + .long 1070476669 + .long 1068054086 + .long 1021616576 + .long 925962240 + .long 1070448537 + .long 850121213 + .long 1023928989 + .long 1732556800 + .long 1070420620 + .long 1305206740 + .long 3172665570 + .long 3815630848 + .long 1070392915 + .long 192642943 + .long 3172699907 + .long 2001758208 + .long 1070365420 + .long 2820786683 + .long 1024704867 + .long 16746496 + .long 1070338131 + .long 1399573110 + .long 3171372773 + .long 1886492672 + .long 1070311044 + .long 3621428075 + .long 3172974358 + .long 3338196992 + .long 1070284157 + .long 3793882035 + .long 1025124701 + .long 381769728 + .long 1070257468 + .long 3877933342 + .long 3170195490 + .long 2186491904 + .long 1070230972 + .long 1838687089 + .long 1017927292 + .long 1008330752 + .long 1070204668 + .long 2228321664 + .long 1025352196 + .long 2247065600 + .long 1070178552 + .long 1413900906 + .long 3170902532 + .long 2964070400 + .long 1070152622 + .long 3590454629 + .long 1025016844 + .long 465154048 + .long 1070126876 + .long 2079688550 + .long 3172268183 + .long 883615744 + .long 1070101310 + .long 989244452 + .long 3171900485 + .long 1993768960 + .long 1070075922 + .long 1124327841 + .long 3172964992 + .long 1794471936 + .long 1070050710 + .long 1140575046 + .long 1022673726 + .long 2797932544 + .long 1070025671 + .long 1894836933 + .long 3172544059 + .long 3433797632 + .long 1070000803 + .long 3221831166 + .long 3171921685 + .long 2338371584 + .long 1069976104 + .long 3732461053 + .long 3164513518 + .long 2644013056 + .long 1069951571 + .long 2519460462 + .long 3172548740 + .long 3383814144 + .long 1069927202 + .long 2290997657 + .long 1025499649 + .long 3781380096 + .long 1069902995 + .long 380479405 + .long 1025184136 + .long 3245785088 + .long 1069878948 + .long 1096398261 + .long 3169885192 + .long 1366712320 + .long 1069855059 + .long 2218343715 + .long 3170281628 + .long 2204717056 + .long 1069831325 + .long 2668334011 + .long 1025264524 + .long 1401772032 + .long 1069807745 + .long 4103993159 + .long 1022925721 + .long 3356721152 + .long 1069784316 + .long 3573790772 + .long 3172186527 + .long 4041148416 + .long 1069761037 + .long 4027691910 + .long 3171276990 + .long 3880151040 + .long 1069737906 + .long 4087118786 + .long 3172710734 + .long 3453364224 + .long 1069714921 + .long 99014299 + .long 3172003077 + .long 3491092480 + .long 1069692080 + .long 3801836701 + .long 3172989287 + .long 575580160 + .long 1069669382 + .long 1920406012 + .long 3170874125 + .long 22282240 + .long 1069646824 + .long 964193370 + .long 1019363159 + .long 2991429632 + .long 1069624404 + .long 3372589890 + .long 1023425053 + .long 2189645824 + .long 1069602122 + .long 2610503872 + .long 1023652442 + .long 3341467648 + .long 1069579975 + .long 1190292004 + .long 1022425665 + .long 3711293440 + .long 1069557962 + .long 1104795356 + .long 1023625829 + .long 1380401152 + .long 1069524644 + .long 1156998217 + .long 1025100499 + .long 765710336 + .long 1069481144 + .long 1736649113 + .long 1024999439 + .long 849412096 + .long 1069437902 + .long 2618178330 + .long 3170853629 + .long 1433104384 + .long 1069394915 + .long 43477267 + .long 3170378811 + .long 2548596736 + .long 1069352180 + .long 3967367063 + .long 1025246584 + .long 157577216 + .long 1069309695 + .long 100402533 + .long 3172825502 + .long 3326238720 + .long 1069267455 + .long 1176892909 + .long 1025464099 + .long 4155494400 + .long 1069225459 + .long 3713707617 + .long 3172630046 + .long 3545804800 + .long 1069183704 + .long 857007315 + .long 1024965777 + .long 2602520576 + .long 1069142187 + .long 2588758347 + .long 1022463131 + .long 2631196672 + .long 1069100905 + .long 2118424235 + .long 1022490989 + .long 838135808 + .long 1069059856 + .long 4117002727 + .long 1024874520 + .long 3210903552 + .long 1069019036 + .long 650070125 + .long 3172012966 + .long 3039211520 + .long 1068978444 + .long 438055812 + .long 1017743757 + .long 2385633280 + .long 1068938077 + .long 3011990369 + .long 3171312044 + .long 3491618816 + .long 1068897932 + .long 712813818 + .long 3172720400 + .long 183644160 + .long 1068858008 + .long 4287006742 + .long 1022379728 + .long 3639214080 + .long 1068818300 + .long 353762279 + .long 3172980009 + .long 3728416768 + .long 1068778808 + .long 1851367730 + .long 1025486574 + .long 3370094592 + .long 1068739529 + .long 4046594913 + .long 3172567047 + .long 1348407296 + .long 1068700461 + .long 143189675 + .long 1025397632 + .long 899403776 + .long 1068661601 + .long 3753687842 + .long 3170772772 + .long 1117708288 + .long 1068622947 + .long 1857340812 + .long 3170782678 + .long 1248276480 + .long 1068584497 + .long 1289858203 + .long 1025222289 + .long 683237376 + .long 1068546249 + .long 2356679608 + .long 3171629170 + .long 3253764096 + .long 1068508200 + .long 3267136556 + .long 1018554987 + .long 94478336 + .long 1068441756 + .long 1927868814 + .long 3169378180 + .long 3233144832 + .long 1068366445 + .long 2682188854 + .long 1023964004 + .long 2940297216 + .long 1068291522 + .long 275301289 + .long 1023944679 + .long 3677708288 + .long 1068216982 + .long 302658771 + .long 1024465567 + .long 1576968192 + .long 1068142822 + .long 3672035940 + .long 3172254610 + .long 1614069760 + .long 1068069037 + .long 480052905 + .long 3172692062 + .long 424435712 + .long 1067995624 + .long 2207869657 + .long 3170965436 + .long 3477782528 + .long 1067922578 + .long 2980661858 + .long 3164990018 + .long 3598401536 + .long 1067849897 + .long 1974393034 + .long 3171357083 + .long 2435235840 + .long 1067777577 + .long 1385289011 + .long 1024615823 + .long 1867333632 + .long 1067705614 + .long 3442236633 + .long 1025334384 + .long 3999301632 + .long 1067634004 + .long 3506472073 + .long 1025132546 + .long 2566971392 + .long 1067562745 + .long 1425757592 + .long 3172358463 + .long 112943104 + .long 1067491833 + .long 1693407156 + .long 3172426603 + .long 3079929856 + .long 1067392159 + .long 3999942455 + .long 1018549369 + .long 2443837440 + .long 1067251701 + .long 974534460 + .long 1023963412 + .long 359366656 + .long 1067111917 + .long 2204915018 + .long 1013514416 + .long 3564519424 + .long 1066972799 + .long 3977441659 + .long 3170879860 + .long 2011086848 + .long 1066834343 + .long 590145514 + .long 1025390011 + .long 3216982016 + .long 1066696541 + .long 3629120110 + .long 1024330313 + .long 2194128896 + .long 1066559388 + .long 2367098512 + .long 3172260338 + .long 2916220928 + .long 1066422877 + .long 2262431886 + .long 1021229446 + .long 2263941120 + .long 1066172214 + .long 3118507287 + .long 1021484970 + .long 3076292608 + .long 1065901726 + .long 1411737803 + .long 3172957147 + .long 1186136064 + .long 1065632488 + .long 3109349337 + .long 1025397383 + .long 3085303808 + .long 1065364487 + .long 584715031 + .long 3172596519 + .long 1821048832 + .long 1064842211 + .long 2182246895 + .long 3172536214 + .long 697368576 + .long 1064311094 + .long 3157561765 + .long 3172716357 + .long 894042112 + .long 1063260131 + .long 3237958154 + .long 3172587292 + .long 0 + .long 0 + .long 0 + .long 0 + .type L_tbl,@object + .size L_tbl,2064 + .align 16 +log2: + .long 1352628224 + .long 1066615827 + .long 521319256 + .long 1021308721 + .type log2,@object + .size log2,16 + .align 16 +coeff: + .long 3248877870 + .long 1077250164 + .long 1691676429 + .long 3221787401 + .long 945132465 + .long 3223701783 + .long 3700831335 + .long 1073506818 + .long 2141010593 + .long 1075227551 + .long 3698831637 + .long 3220339442 + .type coeff,@object + .size coeff,48 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_log10.1-. + .4byte ..___tag_value_log10.5-..___tag_value_log10.1 + .2byte 0x0400 + .4byte ..___tag_value_log10.3-..___tag_value_log10.1 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_log10.4-..___tag_value_log10.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/e_pow.S b/libm/x86_64/e_pow.S new file mode 100644 index 000000000..9ec38287c --- /dev/null +++ b/libm/x86_64/e_pow.S @@ -0,0 +1,4282 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Let x=2^k * mx, mx in [1,2) +// +// log2(x) calculation: +// +// Get B~1/mx based on the output of rcpps instruction (B0) +// B = int((B0*LH*2^9+0.5))/2^9 +// LH is a short approximation for log2(e) +// +// Reduced argument, scaled by LH: +// r=B*mx-LH (computed accurately in high and low parts) +// +// log2(x) result: k - log2(B) + p(r) +// p(r) is a degree 8 polynomial +// -log2(B) read from data table (high, low parts) +// log2(x) is formed from high and low parts +// For |x| in [1-1/32, 1+1/16), a slower but more accurate computation +// based om the same table design is performed. +// +// Main path is taken if | floor(log2(|log2(|x|)|) + floor(log2|y|) | < 8, +// to filter out all potential OF/UF cases. +// exp2(y*log2(x)) is computed using an 8-bit index table and a degree 5 +// polynomial +// +// Special cases: +// pow(-0,y) = -INF and raises the divide-by-zero exception for y an odd +// integer < 0. +// pow(-0,y) = +INF and raises the divide-by-zero exception for y < 0 and +// not an odd integer. +// pow(-0,y) = -0 for y an odd integer > 0. +// pow(-0,y) = +0 for y > 0 and not an odd integer. +// pow(-1,-INF) = 1. +// pow(+1,y) = 1 for any y, even a NaN. +// pow(x,-0) = 1 for any x, even a NaN. +// pow(x,y) = a NaN and raises the invalid exception for finite x < 0 and +// finite non-integer y. +// pow(x,-INF) = +INF for |x|<1. +// pow(x,-INF) = +0 for |x|>1. +// pow(x,+INF) = +0 for |x|<1. +// pow(x,+INF) = +INF for |x|>1. +// pow(-INF,y) = -0 for y an odd integer < 0. +// pow(-INF,y) = +0 for y < 0 and not an odd integer. +// pow(-INF,y) = -INF for y an odd integer > 0. +// pow(-INF,y) = +INF for y > 0 and not an odd integer. +// pow(+INF,y) = +0 for y <0. +// pow(+INF,y) = +INF for y >0. +// +/******************************************************************************/ + +#include +# -- Begin pow +ENTRY(pow) +# parameter 1: %xmm0 +# parameter 2: %xmm1 +..B1.1: +..___tag_value_pow.1: + subq $40, %rsp +..___tag_value_pow.3: + movsd %xmm0, 8(%rsp) + movsd %xmm1, 16(%rsp) +..B1.2: + pextrw $3, %xmm0, %eax + xorpd %xmm2, %xmm2 + movq $0x3ff0000000000000, %r9 + movd %r9, %xmm2 + movl $1069088768, %r8d + movd %r8, %xmm7 + xorpd %xmm1, %xmm1 + movq $0x77f0000000000000, %r10 + movd %r10, %xmm1 + movq %xmm0, %xmm3 + movl $32752, %edx + andl %eax, %edx + subl $16368, %edx + movl %edx, %ecx + sarl $31, %edx + addl %edx, %ecx + xorl %edx, %ecx + orpd %xmm2, %xmm0 + movapd HIGHSIGMASK(%rip), %xmm6 + psrlq $27, %xmm0 + movq LOG2_E(%rip), %xmm2 + psrld $2, %xmm0 + addl $16, %ecx + bsr %ecx, %ecx + rcpps %xmm0, %xmm0 + psllq $12, %xmm3 + movl $8192, %r11d + movd %r11, %xmm4 + psrlq $12, %xmm3 + subl $16, %eax + cmpl $32736, %eax + jae .L_2TAG_PACKET_0.0.2 + movq $0, %r8 +.L_2TAG_PACKET_1.0.2: + mulss %xmm7, %xmm0 + movl $-1, %edx + subl $4, %ecx + shll %cl, %edx + shlq $32, %rdx + movd %rdx, %xmm5 + orpd %xmm1, %xmm3 + subl $16351, %eax + cmpl $1, %eax + jbe .L_2TAG_PACKET_2.0.2 + paddd %xmm4, %xmm0 + andpd %xmm3, %xmm5 + movd %xmm0, %edx + psllq $29, %xmm0 +.L_2TAG_PACKET_3.0.2: + subsd %xmm5, %xmm3 + andpd %xmm6, %xmm0 + subl $1, %eax + sarl $4, %eax + cvtsi2sd %eax, %xmm7 + mulpd %xmm0, %xmm5 +.L_2TAG_PACKET_4.0.2: + mulsd %xmm0, %xmm3 + movapd coeff(%rip), %xmm1 + lea L_tbl(%rip), %r11 + subsd %xmm2, %xmm5 + movapd 16+coeff(%rip), %xmm4 + movl %eax, %ecx + sarl $31, %eax + addl %eax, %ecx + xorl %ecx, %eax + addl $1, %eax + bsr %eax, %eax + unpcklpd %xmm3, %xmm5 + movapd 32+coeff(%rip), %xmm6 + addsd %xmm5, %xmm3 + andl $16760832, %edx + shrl $10, %edx + addpd -3648(%r11,%rdx), %xmm5 + movapd 48+coeff(%rip), %xmm0 + pshufd $68, %xmm3, %xmm2 + mulsd %xmm3, %xmm3 + mulpd %xmm2, %xmm1 + mulpd %xmm2, %xmm4 + addsd %xmm7, %xmm5 + mulsd %xmm3, %xmm2 + addpd %xmm1, %xmm6 + mulsd %xmm3, %xmm3 + addpd %xmm4, %xmm0 + movq 16(%rsp), %xmm1 + movw 22(%rsp), %cx + pshufd $238, %xmm5, %xmm7 + movq HIGHMASK_Y(%rip), %xmm4 + mulpd %xmm2, %xmm6 + pshufd $68, %xmm3, %xmm3 + mulpd %xmm2, %xmm0 + shll $4, %eax + subl $15872, %eax + andl $32752, %ecx + addl %ecx, %eax + mulpd %xmm6, %xmm3 + cmpl $624, %eax + jae .L_2TAG_PACKET_5.0.2 + xorpd %xmm6, %xmm6 + movl $17080, %edx + pinsrw $3, %edx, %xmm6 + movq %xmm1, %xmm2 + andpd %xmm1, %xmm4 + subsd %xmm4, %xmm1 + mulsd %xmm5, %xmm4 + addsd %xmm7, %xmm0 + mulsd %xmm5, %xmm1 + movq %xmm6, %xmm7 + addsd %xmm4, %xmm6 + lea T_exp(%rip), %r11 + addpd %xmm0, %xmm3 + movd %xmm6, %edx + subsd %xmm7, %xmm6 + pshufd $238, %xmm3, %xmm0 + subsd %xmm6, %xmm4 + addsd %xmm3, %xmm0 + movl %edx, %ecx + andl $255, %edx + addl %edx, %edx + movapd (%r11,%rdx,8), %xmm5 + addsd %xmm1, %xmm4 + mulsd %xmm0, %xmm2 + movapd e_coeff(%rip), %xmm7 + movapd 16+e_coeff(%rip), %xmm3 + shll $12, %ecx + xorl %r8d, %ecx + andl $-1048576, %ecx + movd %rcx, %xmm6 + addsd %xmm4, %xmm2 + movq $0x3fe62e42fefa39ef, %r9 + movd %r9, %xmm1 + pshufd $68, %xmm2, %xmm0 + pshufd $68, %xmm2, %xmm4 + mulsd %xmm2, %xmm1 + pshufd $17, %xmm6, %xmm6 + mulpd %xmm0, %xmm0 + mulpd %xmm4, %xmm7 + paddd %xmm6, %xmm5 + mulsd %xmm5, %xmm1 + pshufd $238, %xmm5, %xmm6 + mulsd %xmm0, %xmm0 + addpd %xmm7, %xmm3 + addsd %xmm6, %xmm1 + mulpd %xmm3, %xmm0 + pshufd $238, %xmm0, %xmm3 + mulsd %xmm5, %xmm0 + mulsd %xmm5, %xmm3 + addsd %xmm1, %xmm0 + addsd %xmm3, %xmm0 + addsd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: + addl $16, %eax + movl $32752, %edx + andl %eax, %edx + cmpl $32752, %edx + je .L_2TAG_PACKET_6.0.2 + testl $32768, %eax + jne .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_8.0.2: + movq 8(%rsp), %xmm0 + movq 8(%rsp), %xmm3 + movd %xmm3, %edx + psrlq $32, %xmm3 + movd %xmm3, %ecx + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_9.0.2 + xorpd %xmm3, %xmm3 + movl $18416, %eax + pinsrw $3, %eax, %xmm3 + mulsd %xmm3, %xmm0 + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + movq %xmm0, %xmm3 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + movl $18416, %ecx + psrlq $27, %xmm0 + movq LOG2_E(%rip), %xmm2 + psrld $2, %xmm0 + rcpps %xmm0, %xmm0 + psllq $12, %xmm3 + movapd HIGHSIGMASK(%rip), %xmm6 + psrlq $12, %xmm3 + mulss %xmm7, %xmm0 + movl $-1024, %edx + movd %edx, %xmm5 + orpd %xmm1, %xmm3 + paddd %xmm4, %xmm0 + psllq $32, %xmm5 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm3, %xmm5 + movl $0, %r8d + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm3 + andl $32752, %eax + subl $18416, %eax + sarl $4, %eax + cvtsi2sd %eax, %xmm7 + mulpd %xmm0, %xmm5 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_10.0.2: + movq 8(%rsp), %xmm0 + movq 8(%rsp), %xmm3 + movd %xmm3, %edx + psrlq $32, %xmm3 + movd %xmm3, %ecx + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_9.0.2 + xorpd %xmm3, %xmm3 + movl $18416, %eax + pinsrw $3, %eax, %xmm3 + mulsd %xmm3, %xmm0 + xorpd %xmm2, %xmm2 + movl $16368, %eax + pinsrw $3, %eax, %xmm2 + movq %xmm0, %xmm3 + pextrw $3, %xmm0, %eax + orpd %xmm2, %xmm0 + movl $18416, %ecx + psrlq $27, %xmm0 + movq LOG2_E(%rip), %xmm2 + psrld $2, %xmm0 + rcpps %xmm0, %xmm0 + psllq $12, %xmm3 + movapd HIGHSIGMASK(%rip), %xmm6 + psrlq $12, %xmm3 + mulss %xmm7, %xmm0 + movl $-1024, %edx + movd %edx, %xmm5 + orpd %xmm1, %xmm3 + paddd %xmm4, %xmm0 + psllq $32, %xmm5 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm3, %xmm5 + movl $-2147483648, %r8d + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm3 + andl $32752, %eax + subl $18416, %eax + sarl $4, %eax + cvtsi2sd %eax, %xmm7 + mulpd %xmm0, %xmm5 + jmp .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_5.0.2: + cmpl $0, %eax + jl .L_2TAG_PACKET_11.0.2 + cmpl $736, %eax + jae .L_2TAG_PACKET_12.0.2 + addsd %xmm7, %xmm0 + movq HALFMASK(%rip), %xmm2 + addpd %xmm0, %xmm3 + xorpd %xmm6, %xmm6 + movl $17080, %eax + pinsrw $3, %eax, %xmm6 + pshufd $238, %xmm3, %xmm0 + addsd %xmm3, %xmm0 + movq %xmm5, %xmm3 + addsd %xmm0, %xmm5 + movq %xmm2, %xmm4 + subsd %xmm5, %xmm3 + movq %xmm5, %xmm7 + andpd %xmm2, %xmm5 + movq %xmm1, %xmm2 + andpd %xmm1, %xmm4 + subsd %xmm5, %xmm7 + addsd %xmm3, %xmm0 + subsd %xmm4, %xmm1 + mulsd %xmm5, %xmm4 + addsd %xmm7, %xmm0 + mulsd %xmm0, %xmm2 + movq %xmm6, %xmm7 + mulsd %xmm5, %xmm1 + addsd %xmm4, %xmm6 + movd %xmm6, %eax + subsd %xmm7, %xmm6 + lea T_exp(%rip), %r11 + addsd %xmm1, %xmm2 + movapd e_coeff(%rip), %xmm7 + movapd 16+e_coeff(%rip), %xmm3 + subsd %xmm6, %xmm4 + pextrw $3, %xmm6, %edx + movl %eax, %ecx + andl $255, %eax + addl %eax, %eax + movapd (%r11,%rax,8), %xmm5 + addsd %xmm4, %xmm2 + sarl $8, %ecx + movl %ecx, %eax + sarl $1, %ecx + subl %ecx, %eax + shll $20, %ecx + xorl %r8d, %ecx + movd %ecx, %xmm6 + movq 32+e_coeff(%rip), %xmm1 + andl $32767, %edx + cmpl $16529, %edx + ja .L_2TAG_PACKET_12.0.2 + pshufd $68, %xmm2, %xmm0 + pshufd $68, %xmm2, %xmm4 + mulpd %xmm0, %xmm0 + mulpd %xmm4, %xmm7 + pshufd $17, %xmm6, %xmm6 + mulsd %xmm2, %xmm1 + mulsd %xmm0, %xmm0 + paddd %xmm6, %xmm5 + addpd %xmm7, %xmm3 + mulsd %xmm5, %xmm1 + pshufd $238, %xmm5, %xmm6 + mulpd %xmm3, %xmm0 + addsd %xmm6, %xmm1 + pshufd $238, %xmm0, %xmm3 + mulsd %xmm5, %xmm0 + mulsd %xmm5, %xmm3 + shll $4, %eax + xorpd %xmm4, %xmm4 + addl $16368, %eax + pinsrw $3, %eax, %xmm4 + addsd %xmm1, %xmm0 + addsd %xmm3, %xmm0 + movq %xmm0, %xmm1 + addsd %xmm5, %xmm0 + mulsd %xmm4, %xmm0 + pextrw $3, %xmm0, %eax + andl $32752, %eax + je .L_2TAG_PACKET_13.0.2 + cmpl $32752, %eax + je .L_2TAG_PACKET_14.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_6.0.2: + movq 16(%rsp), %xmm1 + movq 8(%rsp), %xmm0 + movq %xmm0, %xmm2 + movd %xmm2, %eax + psrlq $20, %xmm2 + movd %xmm2, %edx + orl %edx, %eax + je .L_2TAG_PACKET_15.0.2 + movd %xmm1, %eax + psrlq $32, %xmm1 + movd %xmm1, %edx + movl %edx, %ecx + addl %edx, %edx + orl %edx, %eax + je .L_2TAG_PACKET_16.0.2 + addsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_16.0.2: + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + movl $29, (%rsp) + jmp .L_2TAG_PACKET_17.0.2 +.L_2TAG_PACKET_18.0.2: + movq 16(%rsp), %xmm0 + addpd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_15.0.2: + movd %xmm1, %eax + movq %xmm1, %xmm2 + psrlq $32, %xmm1 + movd %xmm1, %edx + movl %edx, %ecx + addl %edx, %edx + orl %edx, %eax + je .L_2TAG_PACKET_19.0.2 + pextrw $3, %xmm2, %eax + andl $32752, %eax + cmpl $32752, %eax + jne .L_2TAG_PACKET_20.0.2 + movd %xmm2, %eax + psrlq $20, %xmm2 + movd %xmm2, %edx + orl %edx, %eax + jne .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_20.0.2: + pextrw $3, %xmm0, %eax + testl $32768, %eax + jne .L_2TAG_PACKET_21.0.2 + testl $-2147483648, %ecx + jne .L_2TAG_PACKET_22.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_23.0.2: + movq 16(%rsp), %xmm1 + movd %xmm1, %eax + testl $1, %eax + jne .L_2TAG_PACKET_24.0.2 + testl $2, %eax + jne .L_2TAG_PACKET_25.0.2 + jmp .L_2TAG_PACKET_24.0.2 +.L_2TAG_PACKET_21.0.2: + shrl $20, %ecx + andl $2047, %ecx + cmpl $1075, %ecx + ja .L_2TAG_PACKET_24.0.2 + je .L_2TAG_PACKET_26.0.2 + cmpl $1074, %ecx + ja .L_2TAG_PACKET_23.0.2 + cmpl $1023, %ecx + jb .L_2TAG_PACKET_24.0.2 + movq 16(%rsp), %xmm1 + movl $17208, %eax + xorpd %xmm3, %xmm3 + pinsrw $3, %eax, %xmm3 + movq %xmm3, %xmm4 + addsd %xmm1, %xmm3 + subsd %xmm3, %xmm4 + addsd %xmm4, %xmm1 + pextrw $3, %xmm1, %eax + andl $32752, %eax + jne .L_2TAG_PACKET_24.0.2 + movd %xmm3, %eax + andl $1, %eax + je .L_2TAG_PACKET_24.0.2 +.L_2TAG_PACKET_25.0.2: + movq 16(%rsp), %xmm1 + pextrw $3, %xmm1, %eax + andl $32768, %eax + jne .L_2TAG_PACKET_27.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_27.0.2: + xorpd %xmm0, %xmm0 + movl $32768, %eax + pinsrw $3, %eax, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_24.0.2: + movq 16(%rsp), %xmm1 + pextrw $3, %xmm1, %eax + andl $32768, %eax + jne .L_2TAG_PACKET_22.0.2 + xorpd %xmm0, %xmm0 + movl $32752, %eax + pinsrw $3, %eax, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_26.0.2: + movq 16(%rsp), %xmm1 + movd %xmm1, %eax + andl $1, %eax + je .L_2TAG_PACKET_24.0.2 + jmp .L_2TAG_PACKET_25.0.2 +.L_2TAG_PACKET_28.0.2: + movd %xmm1, %eax + psrlq $20, %xmm1 + movd %xmm1, %edx + orl %edx, %eax + je .L_2TAG_PACKET_29.0.2 + movq 16(%rsp), %xmm0 + addsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_29.0.2: + movq 8(%rsp), %xmm0 + pextrw $3, %xmm0, %eax + cmpl $49136, %eax + jne .L_2TAG_PACKET_30.0.2 + movd %xmm0, %ecx + psrlq $20, %xmm0 + movd %xmm0, %edx + orl %edx, %ecx + jne .L_2TAG_PACKET_30.0.2 + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_30.0.2: + movq 16(%rsp), %xmm1 + andl $32752, %eax + subl $16368, %eax + pextrw $3, %xmm1, %edx + xorpd %xmm0, %xmm0 + xorl %edx, %eax + andl $32768, %eax + je .L_2TAG_PACKET_31.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_31.0.2: + movl $32752, %ecx + pinsrw $3, %ecx, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_32.0.2: + movd %xmm1, %eax + cmpl $17184, %edx + ja .L_2TAG_PACKET_33.0.2 + testl $1, %eax + jne .L_2TAG_PACKET_34.0.2 + testl $2, %eax + je .L_2TAG_PACKET_35.0.2 + jmp .L_2TAG_PACKET_36.0.2 +.L_2TAG_PACKET_33.0.2: + testl $1, %eax + je .L_2TAG_PACKET_35.0.2 + jmp .L_2TAG_PACKET_36.0.2 +.L_2TAG_PACKET_7.0.2: + movq 8(%rsp), %xmm2 + movd %xmm2, %eax + psrlq $31, %xmm2 + movd %xmm2, %ecx + orl %ecx, %eax + je .L_2TAG_PACKET_9.0.2 + movq 16(%rsp), %xmm1 + pextrw $3, %xmm1, %edx + movd %xmm1, %eax + movq %xmm1, %xmm2 + psrlq $32, %xmm2 + movd %xmm2, %ecx + addl %ecx, %ecx + orl %eax, %ecx + je .L_2TAG_PACKET_37.0.2 + andl $32752, %edx + cmpl $32752, %edx + je .L_2TAG_PACKET_28.0.2 + cmpl $17200, %edx + ja .L_2TAG_PACKET_35.0.2 + cmpl $17184, %edx + jae .L_2TAG_PACKET_32.0.2 + cmpl $16368, %edx + jb .L_2TAG_PACKET_34.0.2 + movl $17208, %eax + xorpd %xmm2, %xmm2 + pinsrw $3, %eax, %xmm2 + movq %xmm2, %xmm4 + addsd %xmm1, %xmm2 + subsd %xmm2, %xmm4 + addsd %xmm4, %xmm1 + pextrw $3, %xmm1, %eax + andl $32767, %eax + jne .L_2TAG_PACKET_34.0.2 + movd %xmm2, %eax + andl $1, %eax + je .L_2TAG_PACKET_35.0.2 +.L_2TAG_PACKET_36.0.2: + xorpd %xmm1, %xmm1 + movl $30704, %edx + pinsrw $3, %edx, %xmm1 + movq LOG2_E(%rip), %xmm2 + movq 8(%rsp), %xmm4 + pextrw $3, %xmm4, %eax + movl $8192, %edx + movd %edx, %xmm4 + andl $32767, %eax + subl $16, %eax + jl .L_2TAG_PACKET_10.0.2 + movl %eax, %edx + andl $32752, %edx + subl $16368, %edx + movl %edx, %ecx + sarl $31, %edx + addl %edx, %ecx + xorl %edx, %ecx + addl $16, %ecx + bsr %ecx, %ecx + movl $-2147483648, %r8d + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_34.0.2: + xorpd %xmm1, %xmm1 + movl $32752, %eax + pinsrw $3, %eax, %xmm1 + xorpd %xmm0, %xmm0 + mulsd %xmm1, %xmm0 + movl $28, (%rsp) + jmp .L_2TAG_PACKET_17.0.2 +.L_2TAG_PACKET_35.0.2: + xorpd %xmm1, %xmm1 + movl $30704, %edx + pinsrw $3, %edx, %xmm1 + movq LOG2_E(%rip), %xmm2 + movq 8(%rsp), %xmm4 + pextrw $3, %xmm4, %eax + movl $8192, %edx + movd %edx, %xmm4 + andl $32767, %eax + subl $16, %eax + jl .L_2TAG_PACKET_8.0.2 + movl %eax, %edx + andl $32752, %edx + subl $16368, %edx + movl %edx, %ecx + sarl $31, %edx + addl %edx, %ecx + xorl %edx, %ecx + addl $16, %ecx + bsr %ecx, %ecx + movl $0, %r8d + jmp .L_2TAG_PACKET_1.0.2 +.L_2TAG_PACKET_19.0.2: + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_22.0.2: + xorpd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_11.0.2: + addl $384, %eax + cmpl $0, %eax + jl .L_2TAG_PACKET_38.0.2 + mulsd %xmm1, %xmm5 + addsd %xmm7, %xmm0 + shrl $31, %r8d + addpd %xmm0, %xmm3 + pshufd $238, %xmm3, %xmm0 + addsd %xmm0, %xmm3 + lea log2(%rip), %r11 + movq (%r11,%r8,8), %xmm4 + mulsd %xmm3, %xmm1 + xorpd %xmm0, %xmm0 + movl $16368, %eax + shll $15, %r8d + orl %r8d, %eax + pinsrw $3, %eax, %xmm0 + addsd %xmm1, %xmm5 + mulsd %xmm4, %xmm5 + addsd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_38.0.2: +.L_2TAG_PACKET_37.0.2: + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_39.0.2: + xorpd %xmm0, %xmm0 + movl $16368, %eax + pinsrw $3, %eax, %xmm0 + movl $26, (%rsp) + jmp .L_2TAG_PACKET_17.0.2 +.L_2TAG_PACKET_9.0.2: + movq 16(%rsp), %xmm1 + movq %xmm1, %xmm2 + pextrw $3, %xmm1, %eax + andl $32752, %eax + cmpl $32752, %eax + jne .L_2TAG_PACKET_40.0.2 + movd %xmm2, %eax + psrlq $20, %xmm2 + movd %xmm2, %edx + orl %edx, %eax + jne .L_2TAG_PACKET_18.0.2 +.L_2TAG_PACKET_40.0.2: + movd %xmm1, %eax + psrlq $32, %xmm1 + movd %xmm1, %edx + movl %edx, %ecx + addl %edx, %edx + orl %edx, %eax + je .L_2TAG_PACKET_39.0.2 + shrl $21, %edx + cmpl $1075, %edx + ja .L_2TAG_PACKET_41.0.2 + je .L_2TAG_PACKET_42.0.2 + cmpl $1023, %edx + jb .L_2TAG_PACKET_41.0.2 + movq 16(%rsp), %xmm1 + movl $17208, %eax + xorpd %xmm3, %xmm3 + pinsrw $3, %eax, %xmm3 + movq %xmm3, %xmm4 + addsd %xmm1, %xmm3 + subsd %xmm3, %xmm4 + addsd %xmm4, %xmm1 + pextrw $3, %xmm1, %eax + andl $32752, %eax + jne .L_2TAG_PACKET_41.0.2 + movd %xmm3, %eax + andl $1, %eax + je .L_2TAG_PACKET_41.0.2 +.L_2TAG_PACKET_43.0.2: + movq 8(%rsp), %xmm0 + testl $-2147483648, %ecx + jne .L_2TAG_PACKET_44.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_42.0.2: + movq 16(%rsp), %xmm1 + movd %xmm1, %eax + testl $1, %eax + jne .L_2TAG_PACKET_43.0.2 +.L_2TAG_PACKET_41.0.2: + testl $-2147483648, %ecx + je .L_2TAG_PACKET_22.0.2 + xorpd %xmm0, %xmm0 +.L_2TAG_PACKET_44.0.2: + movl $16368, %eax + xorpd %xmm1, %xmm1 + pinsrw $3, %eax, %xmm1 + divsd %xmm0, %xmm1 + movq %xmm1, %xmm0 + movl $27, (%rsp) + jmp .L_2TAG_PACKET_17.0.2 +.L_2TAG_PACKET_12.0.2: + movq 8(%rsp), %xmm2 + movq 16(%rsp), %xmm6 + pextrw $3, %xmm2, %eax + pextrw $3, %xmm6, %edx + movl $32752, %ecx + andl %edx, %ecx + cmpl $32752, %ecx + je .L_2TAG_PACKET_45.0.2 + andl $32752, %eax + subl $16368, %eax + xorl %eax, %edx + testl $32768, %edx + jne .L_2TAG_PACKET_46.0.2 +.L_2TAG_PACKET_47.0.2: + movl $32736, %eax + pinsrw $3, %eax, %xmm0 + shrl $16, %r8d + orl %r8d, %eax + pinsrw $3, %eax, %xmm1 + mulsd %xmm1, %xmm0 +.L_2TAG_PACKET_14.0.2: + movl $24, (%rsp) + jmp .L_2TAG_PACKET_17.0.2 +.L_2TAG_PACKET_46.0.2: + movl $16, %eax + pinsrw $3, %eax, %xmm0 + mulsd %xmm0, %xmm0 + testl $-2147483648, %r8d + je .L_2TAG_PACKET_48.0.2 + movq $0x8000000000000000, %r9 + movd %r9, %xmm2 + xorpd %xmm2, %xmm0 +.L_2TAG_PACKET_48.0.2: + movl $25, (%rsp) + jmp .L_2TAG_PACKET_17.0.2 +.L_2TAG_PACKET_13.0.2: + pextrw $3, %xmm5, %ecx + pextrw $3, %xmm4, %edx + movl $-1, %eax + andl $32752, %ecx + subl $16368, %ecx + andl $32752, %edx + addl %ecx, %edx + movl $-31, %ecx + sarl $4, %edx + subl %edx, %ecx + jle .L_2TAG_PACKET_49.0.2 + cmpl $20, %ecx + ja .L_2TAG_PACKET_50.0.2 + shll %cl, %eax +.L_2TAG_PACKET_49.0.2: + movd %eax, %xmm0 + psllq $32, %xmm0 + andpd %xmm5, %xmm0 + subsd %xmm0, %xmm5 + addsd %xmm1, %xmm5 + mulsd %xmm4, %xmm0 + mulsd %xmm4, %xmm5 + addsd %xmm5, %xmm0 +.L_2TAG_PACKET_50.0.2: + jmp .L_2TAG_PACKET_48.0.2 +.L_2TAG_PACKET_2.0.2: + movw 22(%rsp), %cx + movl $-2147483648, %edx + movd %rdx, %xmm1 + xorpd %xmm7, %xmm7 + paddd %xmm4, %xmm0 + movd %xmm0, %edx + psllq $29, %xmm0 + paddq %xmm3, %xmm1 + andpd %xmm1, %xmm5 + andw $32752, %cx + cmpw $16560, %cx + jb .L_2TAG_PACKET_3.0.2 + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm3 + addl $16351, %eax + shrl $4, %eax + subl $1022, %eax + cvtsi2sd %eax, %xmm7 + mulpd %xmm0, %xmm5 + lea L_tbl(%rip), %r11 + movq coeff_h(%rip), %xmm4 + mulsd %xmm0, %xmm3 + movq coeff_h(%rip), %xmm6 + subsd %xmm2, %xmm5 + movq 8+coeff_h(%rip), %xmm1 + pshufd $68, %xmm3, %xmm2 + unpcklpd %xmm3, %xmm5 + addsd %xmm5, %xmm3 + movq 8+coeff_h(%rip), %xmm0 + andl $16760832, %edx + shrl $10, %edx + addpd -3648(%r11,%rdx), %xmm7 + mulsd %xmm5, %xmm4 + mulsd %xmm5, %xmm0 + mulsd %xmm2, %xmm6 + mulsd %xmm2, %xmm1 + movq %xmm5, %xmm2 + mulsd %xmm5, %xmm4 + addsd %xmm0, %xmm5 + movq %xmm7, %xmm0 + addsd %xmm3, %xmm2 + addsd %xmm5, %xmm7 + mulsd %xmm2, %xmm6 + subsd %xmm7, %xmm0 + movq %xmm7, %xmm2 + addsd %xmm4, %xmm7 + addsd %xmm5, %xmm0 + subsd %xmm7, %xmm2 + addsd %xmm2, %xmm4 + pshufd $238, %xmm5, %xmm2 + movq %xmm7, %xmm5 + addsd %xmm2, %xmm7 + addsd %xmm0, %xmm4 + movapd coeff(%rip), %xmm0 + subsd %xmm7, %xmm5 + addsd %xmm4, %xmm6 + movq %xmm7, %xmm4 + addsd %xmm2, %xmm5 + addsd %xmm1, %xmm7 + movapd 64+coeff(%rip), %xmm2 + subsd %xmm7, %xmm4 + addsd %xmm5, %xmm6 + addsd %xmm1, %xmm4 + pshufd $238, %xmm7, %xmm5 + movapd %xmm7, %xmm1 + addsd %xmm5, %xmm7 + subsd %xmm7, %xmm1 + addsd %xmm5, %xmm1 + movapd 80+coeff(%rip), %xmm5 + pshufd $68, %xmm3, %xmm3 + addsd %xmm4, %xmm6 + addsd %xmm1, %xmm6 + movapd 32+coeff(%rip), %xmm1 + mulpd %xmm3, %xmm0 + mulpd %xmm3, %xmm2 + pshufd $68, %xmm3, %xmm4 + mulpd %xmm3, %xmm3 + addpd %xmm1, %xmm0 + addpd %xmm2, %xmm5 + mulsd %xmm3, %xmm4 + movq HIGHMASK_LOG_X(%rip), %xmm2 + mulpd %xmm3, %xmm3 + movq 16(%rsp), %xmm1 + movw 22(%rsp), %cx + mulpd %xmm4, %xmm0 + pextrw $3, %xmm7, %eax + mulpd %xmm4, %xmm5 + mulpd %xmm3, %xmm0 + movq 8+HIGHMASK_Y(%rip), %xmm4 + andpd %xmm7, %xmm2 + addsd %xmm6, %xmm5 + subsd %xmm2, %xmm7 + addpd %xmm0, %xmm5 + andl $32752, %eax + subl $16368, %eax + andl $32752, %ecx + cmpl $32752, %ecx + je .L_2TAG_PACKET_45.0.2 + addl %eax, %ecx + cmpl $16576, %ecx + jae .L_2TAG_PACKET_51.0.2 + pshufd $238, %xmm5, %xmm0 + andpd %xmm1, %xmm4 + movq %xmm1, %xmm3 + addsd %xmm0, %xmm5 + subsd %xmm4, %xmm1 + xorpd %xmm6, %xmm6 + movl $17080, %edx + pinsrw $3, %edx, %xmm6 + addsd %xmm5, %xmm7 + mulsd %xmm2, %xmm4 + mulsd %xmm2, %xmm1 + movq %xmm6, %xmm5 + mulsd %xmm7, %xmm3 + addsd %xmm4, %xmm6 + addsd %xmm3, %xmm1 + movapd e_coeff(%rip), %xmm7 + movd %xmm6, %edx + subsd %xmm5, %xmm6 + lea T_exp(%rip), %r11 + movapd 16+e_coeff(%rip), %xmm3 + movq 32+e_coeff(%rip), %xmm2 + subsd %xmm6, %xmm4 + movl %edx, %ecx + andl $255, %edx + addl %edx, %edx + movapd (%r11,%rdx,8), %xmm5 + addsd %xmm1, %xmm4 + pextrw $3, %xmm6, %edx + shrl $8, %ecx + movl %ecx, %eax + shrl $1, %ecx + subl %ecx, %eax + shll $20, %ecx + movd %ecx, %xmm6 + pshufd $68, %xmm4, %xmm0 + pshufd $68, %xmm4, %xmm1 + mulpd %xmm0, %xmm0 + mulpd %xmm1, %xmm7 + pshufd $17, %xmm6, %xmm6 + mulsd %xmm4, %xmm2 + andl $32767, %edx + cmpl $16529, %edx + ja .L_2TAG_PACKET_12.0.2 + mulsd %xmm0, %xmm0 + paddd %xmm6, %xmm5 + addpd %xmm7, %xmm3 + mulsd %xmm5, %xmm2 + pshufd $238, %xmm5, %xmm6 + mulpd %xmm3, %xmm0 + addsd %xmm6, %xmm2 + pshufd $238, %xmm0, %xmm3 + addl $1023, %eax + shll $20, %eax + orl %r8d, %eax + movd %eax, %xmm4 + mulsd %xmm5, %xmm0 + mulsd %xmm5, %xmm3 + addsd %xmm2, %xmm0 + psllq $32, %xmm4 + addsd %xmm3, %xmm0 + movq %xmm0, %xmm1 + addsd %xmm5, %xmm0 + mulsd %xmm4, %xmm0 + pextrw $3, %xmm0, %eax + andl $32752, %eax + je .L_2TAG_PACKET_13.0.2 + cmpl $32752, %eax + je .L_2TAG_PACKET_14.0.2 +.L_2TAG_PACKET_52.0.2: + jmp ..B1.5 +.L_2TAG_PACKET_45.0.2: + movq 8(%rsp), %xmm0 + xorpd %xmm2, %xmm2 + movl $49136, %eax + pinsrw $3, %eax, %xmm2 + addsd %xmm0, %xmm2 + pextrw $3, %xmm2, %eax + cmpl $0, %eax + jne .L_2TAG_PACKET_53.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_53.0.2: + movq 16(%rsp), %xmm1 + movd %xmm1, %edx + movq %xmm1, %xmm3 + psrlq $20, %xmm3 + movd %xmm3, %ecx + orl %edx, %ecx + je .L_2TAG_PACKET_54.0.2 + addsd %xmm1, %xmm1 + movq %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_51.0.2: + pextrw $3, %xmm1, %eax + pextrw $3, %xmm2, %ecx + xorl %ecx, %eax + testl $32768, %eax + je .L_2TAG_PACKET_47.0.2 + jmp .L_2TAG_PACKET_46.0.2 +.L_2TAG_PACKET_54.0.2: + pextrw $3, %xmm0, %eax + andl $32752, %eax + pextrw $3, %xmm1, %edx + xorpd %xmm0, %xmm0 + subl $16368, %eax + xorl %edx, %eax + testl $32768, %eax + je .L_2TAG_PACKET_55.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_55.0.2: + movl $32752, %edx + pinsrw $3, %edx, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_17.0.2: + movq %xmm0, 24(%rsp) +..B1.3: + movq 24(%rsp), %xmm0 +.L_2TAG_PACKET_56.0.2: +..B1.5: + addq $40, %rsp +..___tag_value_pow.4: + ret +..___tag_value_pow.5: +END(pow) +# -- End pow + .section .rodata, "a" + .align 16 + .align 16 +HIGHSIGMASK: + .long 0 + .long 4294965248 + .long 0 + .long 4294965248 + .type HIGHSIGMASK,@object + .size HIGHSIGMASK,16 + .align 16 +LOG2_E: + .long 0 + .long 1073160192 + .long 370913857 + .long 3210587105 + .type LOG2_E,@object + .size LOG2_E,16 + .align 16 +coeff: + .long 1841914130 + .long 3213059448 + .long 3995341938 + .long 3214607105 + .long 2677381210 + .long 3216320731 + .long 3011779882 + .long 3218479542 + .long 1367832035 + .long 1066403058 + .long 2894285243 + .long 1067936923 + .long 1215221452 + .long 1069835102 + .long 370913857 + .long 3210587105 + .long 2677381210 + .long 3216320731 + .long 4172642429 + .long 1056068382 + .long 1215221451 + .long 1069835102 + .long 1092638156 + .long 3184925618 + .type coeff,@object + .size coeff,96 + .align 16 +L_tbl: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 536870912 + .long 1072689162 + .long 2523013013 + .long 1046157398 + .long 3758096384 + .long 1072685081 + .long 3851513758 + .long 3190968952 + .long 0 + .long 1072681007 + .long 2241466466 + .long 1046044599 + .long 3221225472 + .long 1072676937 + .long 2990928271 + .long 3193084984 + .long 3758096384 + .long 1072672873 + .long 2905112743 + .long 3192918576 + .long 1610612736 + .long 1072668815 + .long 3370591264 + .long 1046051793 + .long 2147483648 + .long 1072664762 + .long 3272361216 + .long 3193793653 + .long 3758096384 + .long 1072660714 + .long 46546755 + .long 1043206936 + .long 3221225472 + .long 1072656672 + .long 3017067724 + .long 3192177962 + .long 0 + .long 1072652636 + .long 3688436631 + .long 3192814956 + .long 2684354560 + .long 1072648604 + .long 1707461992 + .long 3193056712 + .long 2684354560 + .long 1072644578 + .long 1188114540 + .long 3193603086 + .long 3758096384 + .long 1072640557 + .long 3533180564 + .long 1045459375 + .long 2684354560 + .long 1072636542 + .long 2000337630 + .long 3193475557 + .long 2684354560 + .long 1072632532 + .long 3698062443 + .long 3193752766 + .long 3758096384 + .long 1072628527 + .long 3161606138 + .long 3190532995 + .long 2147483648 + .long 1072624528 + .long 3165265478 + .long 3193158459 + .long 1610612736 + .long 1072620534 + .long 1600940077 + .long 3193226777 + .long 2147483648 + .long 1072616545 + .long 1363272552 + .long 3192614278 + .long 3758096384 + .long 1072612561 + .long 3966209910 + .long 3191249654 + .long 2147483648 + .long 1072608583 + .long 1093672789 + .long 3190637330 + .long 1610612736 + .long 1072604610 + .long 1735239357 + .long 3192753616 + .long 1610612736 + .long 1072600642 + .long 1470665156 + .long 1045559697 + .long 2684354560 + .long 1072596679 + .long 3840624926 + .long 1045928953 + .long 536870912 + .long 1072592722 + .long 4259072556 + .long 3191035622 + .long 3221225472 + .long 1072588769 + .long 3613088753 + .long 3192165681 + .long 2147483648 + .long 1072584822 + .long 3175234446 + .long 1039486948 + .long 1610612736 + .long 1072580880 + .long 856576441 + .long 1045702812 + .long 2147483648 + .long 1072576943 + .long 2253498719 + .long 3193285334 + .long 2684354560 + .long 1072573011 + .long 1587070728 + .long 3190801577 + .long 3758096384 + .long 1072569084 + .long 159986317 + .long 1042519436 + .long 1073741824 + .long 1072565163 + .long 3999541949 + .long 3192020440 + .long 2684354560 + .long 1072561246 + .long 3281310262 + .long 1045586786 + .long 536870912 + .long 1072557335 + .long 3775179406 + .long 1045226055 + .long 3221225472 + .long 1072553428 + .long 643472356 + .long 3193681786 + .long 1073741824 + .long 1072549527 + .long 248169775 + .long 1045068977 + .long 3758096384 + .long 1072545630 + .long 307016632 + .long 1042640932 + .long 2147483648 + .long 1072541739 + .long 3872718526 + .long 3189781486 + .long 536870912 + .long 1072537853 + .long 969711630 + .long 3191724732 + .long 3221225472 + .long 1072533971 + .long 4018820394 + .long 3193189264 + .long 1073741824 + .long 1072530095 + .long 3102233092 + .long 1045510224 + .long 3758096384 + .long 1072526223 + .long 1029307912 + .long 3193812776 + .long 1073741824 + .long 1072522357 + .long 984083153 + .long 1045987403 + .long 3221225472 + .long 1072518495 + .long 4171455401 + .long 3193084080 + .long 0 + .long 1072514639 + .long 2592660757 + .long 1046121691 + .long 1073741824 + .long 1072510787 + .long 2964365712 + .long 1046054453 + .long 2147483648 + .long 1072506940 + .long 3792777877 + .long 3193704729 + .long 2147483648 + .long 1072503098 + .long 2948536104 + .long 3192467100 + .long 1610612736 + .long 1072499261 + .long 3836005619 + .long 1041873166 + .long 536870912 + .long 1072495429 + .long 3124543160 + .long 1044409168 + .long 3221225472 + .long 1072491601 + .long 286227933 + .long 1041065990 + .long 1073741824 + .long 1072487779 + .long 2111296776 + .long 3193604419 + .long 2147483648 + .long 1072483961 + .long 2606822001 + .long 3192940394 + .long 2147483648 + .long 1072480148 + .long 194696800 + .long 1046026063 + .long 1610612736 + .long 1072476340 + .long 8535452 + .long 1046200178 + .long 536870912 + .long 1072472537 + .long 950463625 + .long 3192731897 + .long 2147483648 + .long 1072468738 + .long 973831566 + .long 1045683197 + .long 3221225472 + .long 1072464944 + .long 3330435892 + .long 3190277577 + .long 3221225472 + .long 1072461155 + .long 208692097 + .long 3193517651 + .long 1610612736 + .long 1072457371 + .long 2113097415 + .long 1044781749 + .long 3758096384 + .long 1072453591 + .long 1088808936 + .long 3193716142 + .long 0 + .long 1072449817 + .long 1443002127 + .long 3193250205 + .long 3221225472 + .long 1072446046 + .long 3967357419 + .long 1046109477 + .long 1610612736 + .long 1072442281 + .long 3013517861 + .long 3193159691 + .long 2147483648 + .long 1072438520 + .long 2524586286 + .long 1046121951 + .long 1610612736 + .long 1072434764 + .long 1476892861 + .long 1046434731 + .long 0 + .long 1072431013 + .long 3089640950 + .long 3192305780 + .long 536870912 + .long 1072427266 + .long 3812255529 + .long 1045730879 + .long 0 + .long 1072423524 + .long 995354762 + .long 3191528673 + .long 1610612736 + .long 1072419786 + .long 3260567684 + .long 1046273695 + .long 2147483648 + .long 1072416053 + .long 2738210286 + .long 3191471516 + .long 536870912 + .long 1072412325 + .long 1931849805 + .long 1044560405 + .long 1610612736 + .long 1072408601 + .long 358896655 + .long 1044029237 + .long 1073741824 + .long 1072404882 + .long 2214589842 + .long 3193202126 + .long 2684354560 + .long 1072401167 + .long 3118097363 + .long 3192592906 + .long 2147483648 + .long 1072397457 + .long 1835998884 + .long 1045788247 + .long 0 + .long 1072393752 + .long 1585488319 + .long 1045289910 + .long 0 + .long 1072390051 + .long 480160949 + .long 1046030455 + .long 2684354560 + .long 1072386354 + .long 1832959667 + .long 3193013644 + .long 2684354560 + .long 1072382662 + .long 3611346555 + .long 1044544210 + .long 1073741824 + .long 1072378975 + .long 2749418734 + .long 3193712580 + .long 1073741824 + .long 1072375292 + .long 2390043472 + .long 3191710658 + .long 3221225472 + .long 1072371613 + .long 2828199902 + .long 1042265217 + .long 3221225472 + .long 1072367939 + .long 569209321 + .long 3191230982 + .long 536870912 + .long 1072364270 + .long 236159139 + .long 1046240123 + .long 536870912 + .long 1072360605 + .long 1010656270 + .long 3193813968 + .long 1610612736 + .long 1072356944 + .long 2409080597 + .long 1044025029 + .long 536870912 + .long 1072353288 + .long 598419513 + .long 1043327370 + .long 1073741824 + .long 1072349636 + .long 4105950479 + .long 1045747958 + .long 3758096384 + .long 1072345988 + .long 343243853 + .long 3192420172 + .long 3221225472 + .long 1072342345 + .long 2088439530 + .long 1046172091 + .long 536870912 + .long 1072338707 + .long 4117721107 + .long 1043882496 + .long 3758096384 + .long 1072335072 + .long 3192032958 + .long 3192998645 + .long 3758096384 + .long 1072331442 + .long 2366522518 + .long 1045401957 + .long 1610612736 + .long 1072327817 + .long 3685533141 + .long 3193701947 + .long 536870912 + .long 1072324196 + .long 1058658672 + .long 3193572492 + .long 536870912 + .long 1072320579 + .long 166346347 + .long 1045456348 + .long 2147483648 + .long 1072316966 + .long 2027889772 + .long 1046349302 + .long 1073741824 + .long 1072313358 + .long 1079497888 + .long 1044585259 + .long 1073741824 + .long 1072309754 + .long 2189851573 + .long 1045132990 + .long 2684354560 + .long 1072306154 + .long 2486629386 + .long 3193613625 + .long 536870912 + .long 1072302559 + .long 1263686579 + .long 1044789259 + .long 0 + .long 1072298968 + .long 2412061798 + .long 3191369627 + .long 536870912 + .long 1072295381 + .long 584315716 + .long 3193144135 + .long 1610612736 + .long 1072291798 + .long 449000738 + .long 1046330451 + .long 0 + .long 1072288220 + .long 3938320157 + .long 1044446220 + .long 3758096384 + .long 1072284645 + .long 2949844595 + .long 3193462371 + .long 3758096384 + .long 1072281075 + .long 2771329642 + .long 3192121593 + .long 536870912 + .long 1072277510 + .long 3971508621 + .long 3193002806 + .long 2147483648 + .long 1072273948 + .long 4071942301 + .long 1044952619 + .long 536870912 + .long 1072270391 + .long 2090502395 + .long 1044660556 + .long 0 + .long 1072266838 + .long 3657520961 + .long 3193770938 + .long 3758096384 + .long 1072263288 + .long 1608175110 + .long 1045543239 + .long 0 + .long 1072259744 + .long 2506924180 + .long 1045530501 + .long 1073741824 + .long 1072256203 + .long 18238493 + .long 1046305623 + .long 3221225472 + .long 1072252666 + .long 3862640487 + .long 3192882407 + .long 1073741824 + .long 1072249134 + .long 3850158761 + .long 1043656099 + .long 3758096384 + .long 1072245605 + .long 2356524356 + .long 1045915296 + .long 3221225472 + .long 1072242081 + .long 936497287 + .long 3193842353 + .long 2147483648 + .long 1072238561 + .long 2840845344 + .long 1046454771 + .long 2147483648 + .long 1072235045 + .long 3688100713 + .long 1044895451 + .long 2684354560 + .long 1072231533 + .long 479979913 + .long 3193842442 + .long 2684354560 + .long 1072228025 + .long 1016321898 + .long 1046251032 + .long 3758096384 + .long 1072224521 + .long 562232474 + .long 3191974558 + .long 536870912 + .long 1072221022 + .long 3870512029 + .long 3193113881 + .long 1610612736 + .long 1072217526 + .long 1239780547 + .long 3191583604 + .long 2684354560 + .long 1072214034 + .long 2815421327 + .long 1045873682 + .long 0 + .long 1072210547 + .long 2371009561 + .long 1041508792 + .long 1610612736 + .long 1072207063 + .long 1304636524 + .long 3192414284 + .long 3221225472 + .long 1072203583 + .long 210144854 + .long 3193327333 + .long 0 + .long 1072200108 + .long 1454303272 + .long 1046360024 + .long 1610612736 + .long 1072196636 + .long 2095757548 + .long 1044984677 + .long 3221225472 + .long 1072193168 + .long 2027215580 + .long 3192880933 + .long 0 + .long 1072189705 + .long 214794880 + .long 1043457954 + .long 1073741824 + .long 1072186245 + .long 884624917 + .long 1043497079 + .long 2147483648 + .long 1072182789 + .long 2792396634 + .long 3193171685 + .long 2684354560 + .long 1072179337 + .long 4128995250 + .long 3192103434 + .long 2684354560 + .long 1072175889 + .long 333866043 + .long 1046372325 + .long 3221225472 + .long 1072172445 + .long 2194445544 + .long 3193958905 + .long 2684354560 + .long 1072169005 + .long 2316082269 + .long 3192041703 + .long 1610612736 + .long 1072165569 + .long 581005057 + .long 1046322848 + .long 536870912 + .long 1072162137 + .long 3280786513 + .long 1045457251 + .long 3221225472 + .long 1072158708 + .long 2567093361 + .long 1044710359 + .long 1073741824 + .long 1072155284 + .long 3740443584 + .long 1044224237 + .long 2684354560 + .long 1072151863 + .long 3981028272 + .long 1042596351 + .long 3758096384 + .long 1072148446 + .long 3820011120 + .long 3191915623 + .long 0 + .long 1072145034 + .long 2946439484 + .long 3193831276 + .long 3758096384 + .long 1072141624 + .long 3075274422 + .long 3190132432 + .long 2684354560 + .long 1072138219 + .long 496052167 + .long 1043619760 + .long 1073741824 + .long 1072134818 + .long 271106589 + .long 3192265149 + .long 2684354560 + .long 1072131420 + .long 2091955684 + .long 1044443554 + .long 3758096384 + .long 1072128026 + .long 723240109 + .long 3191007419 + .long 3758096384 + .long 1072124636 + .long 1748629070 + .long 1044510075 + .long 3221225472 + .long 1072121250 + .long 3289522046 + .long 3193095178 + .long 1610612736 + .long 1072117868 + .long 3599052146 + .long 3193720427 + .long 3221225472 + .long 1072114489 + .long 2446758135 + .long 3193436303 + .long 3758096384 + .long 1072111114 + .long 1652171097 + .long 3192137173 + .long 3221225472 + .long 1072107743 + .long 1353007155 + .long 1044523902 + .long 1610612736 + .long 1072104376 + .long 990601105 + .long 1046296663 + .long 3758096384 + .long 1072101012 + .long 2228627618 + .long 3193041040 + .long 0 + .long 1072097653 + .long 812484756 + .long 3191950723 + .long 3758096384 + .long 1072094296 + .long 817833130 + .long 3192279242 + .long 2147483648 + .long 1072090944 + .long 3563228521 + .long 3193810951 + .long 3221225472 + .long 1072087595 + .long 2729108859 + .long 3190936185 + .long 3221225472 + .long 1072084250 + .long 2249121662 + .long 3190639690 + .long 2147483648 + .long 1072080909 + .long 4082471745 + .long 3193929368 + .long 3758096384 + .long 1072077571 + .long 2827323806 + .long 3193708561 + .long 3758096384 + .long 1072074237 + .long 735866167 + .long 1042434690 + .long 2684354560 + .long 1072070907 + .long 3240808889 + .long 3191918422 + .long 0 + .long 1072067581 + .long 466482777 + .long 3186962221 + .long 0 + .long 1072064258 + .long 1576076296 + .long 1045849056 + .long 3221225472 + .long 1072060938 + .long 2751923560 + .long 3191910703 + .long 0 + .long 1072057623 + .long 1908755527 + .long 1046437515 + .long 0 + .long 1072054311 + .long 3175841411 + .long 1044572886 + .long 2684354560 + .long 1072051002 + .long 1633258450 + .long 3192670420 + .long 3221225472 + .long 1072047697 + .long 1867746657 + .long 1045726209 + .long 2684354560 + .long 1072044396 + .long 338968864 + .long 3193084662 + .long 0 + .long 1072041099 + .long 1501742471 + .long 3191742031 + .long 0 + .long 1072037805 + .long 4266775786 + .long 3192686970 + .long 2147483648 + .long 1072034514 + .long 4249283553 + .long 1045769728 + .long 2684354560 + .long 1072031227 + .long 2758366873 + .long 1046402161 + .long 1610612736 + .long 1072027944 + .long 2161186990 + .long 1044736865 + .long 2684354560 + .long 1072024664 + .long 810300171 + .long 1045748777 + .long 2147483648 + .long 1072021388 + .long 183688927 + .long 3191515581 + .long 3758096384 + .long 1072018115 + .long 368874072 + .long 3192363575 + .long 3221225472 + .long 1072014846 + .long 2459092970 + .long 1041794640 + .long 536870912 + .long 1072011581 + .long 867488640 + .long 1046310291 + .long 536870912 + .long 1072008319 + .long 50140871 + .long 1043327329 + .long 2684354560 + .long 1072005060 + .long 1241902518 + .long 3192739252 + .long 2684354560 + .long 1072001805 + .long 1027881659 + .long 3193858388 + .long 0 + .long 1071998554 + .long 38457322 + .long 1045489179 + .long 0 + .long 1071995306 + .long 3432963337 + .long 3190969347 + .long 1610612736 + .long 1071992061 + .long 534931792 + .long 1046302734 + .long 1610612736 + .long 1071988820 + .long 1817895268 + .long 3192551860 + .long 3221225472 + .long 1071985582 + .long 357237383 + .long 3191870833 + .long 2684354560 + .long 1071982348 + .long 108262401 + .long 3193365867 + .long 3758096384 + .long 1071979117 + .long 1964729244 + .long 1042502249 + .long 2684354560 + .long 1071975890 + .long 2088446957 + .long 1038010503 + .long 3221225472 + .long 1071972666 + .long 2947239447 + .long 1046377845 + .long 1610612736 + .long 1071969446 + .long 774932072 + .long 1046064854 + .long 2147483648 + .long 1071966229 + .long 4080937590 + .long 3193041284 + .long 3758096384 + .long 1071963015 + .long 2208251454 + .long 1045945089 + .long 3221225472 + .long 1071959805 + .long 2850924475 + .long 1045650959 + .long 0 + .long 1071956599 + .long 714040997 + .long 1046275153 + .long 3221225472 + .long 1071953395 + .long 85533782 + .long 3192816920 + .long 3221225472 + .long 1071950195 + .long 1252511005 + .long 1044805706 + .long 1073741824 + .long 1071946999 + .long 2384659038 + .long 3193391602 + .long 0 + .long 1071943806 + .long 416481813 + .long 1043730233 + .long 536870912 + .long 1071940616 + .long 1675424499 + .long 1046348030 + .long 3221225472 + .long 1071937429 + .long 1175989513 + .long 3193009113 + .long 2684354560 + .long 1071934246 + .long 2400084650 + .long 3192451713 + .long 3758096384 + .long 1071931066 + .long 1467335692 + .long 3193350868 + .long 1610612736 + .long 1071927890 + .long 266493801 + .long 1044954481 + .long 1073741824 + .long 1071924717 + .long 3919093445 + .long 1046023575 + .long 2147483648 + .long 1071921547 + .long 3017408483 + .long 1044880828 + .long 536870912 + .long 1071918381 + .long 948849966 + .long 3193892224 + .long 3758096384 + .long 1071915217 + .long 1870232600 + .long 1045777228 + .long 536870912 + .long 1071912058 + .long 822381492 + .long 3193639186 + .long 2147483648 + .long 1071908901 + .long 788243705 + .long 1044966343 + .long 1073741824 + .long 1071905748 + .long 1344278809 + .long 1044428545 + .long 1073741824 + .long 1071902598 + .long 172864300 + .long 1045765608 + .long 2684354560 + .long 1071899451 + .long 211555467 + .long 3192963574 + .long 536870912 + .long 1071896308 + .long 3373438023 + .long 1045643168 + .long 0 + .long 1071893168 + .long 2867180960 + .long 3189945998 + .long 536870912 + .long 1071890031 + .long 36724362 + .long 3193240584 + .long 1610612736 + .long 1071886897 + .long 2140176984 + .long 1045945349 + .long 0 + .long 1071883767 + .long 436842360 + .long 1040712587 + .long 3758096384 + .long 1071880639 + .long 1225147329 + .long 3193814594 + .long 3758096384 + .long 1071877515 + .long 1586157348 + .long 3191614322 + .long 536870912 + .long 1071874395 + .long 3329332918 + .long 1041699791 + .long 2684354560 + .long 1071871277 + .long 1635968041 + .long 3191783756 + .long 1073741824 + .long 1071868163 + .long 2876158382 + .long 1046097093 + .long 1073741824 + .long 1071865052 + .long 4267556964 + .long 3193723000 + .long 1073741824 + .long 1071861944 + .long 195475940 + .long 1045520795 + .long 2147483648 + .long 1071858839 + .long 2239193514 + .long 1046478675 + .long 0 + .long 1071855738 + .long 4168275596 + .long 1044926285 + .long 2684354560 + .long 1071852639 + .long 142514114 + .long 1045595182 + .long 2147483648 + .long 1071849544 + .long 1943457984 + .long 3192930015 + .long 2147483648 + .long 1071846452 + .long 202659489 + .long 3193926317 + .long 2684354560 + .long 1071843363 + .long 2208408789 + .long 3193857484 + .long 3758096384 + .long 1071840277 + .long 2237297552 + .long 3192939576 + .long 1073741824 + .long 1071837195 + .long 2726920839 + .long 1044193954 + .long 3758096384 + .long 1071834115 + .long 2337732207 + .long 3193611773 + .long 2147483648 + .long 1071831039 + .long 1390088602 + .long 1044000317 + .long 1610612736 + .long 1071827966 + .long 3806188736 + .long 3193463913 + .long 1073741824 + .long 1071824896 + .long 1795276560 + .long 1043671965 + .long 1073741824 + .long 1071821829 + .long 2960792799 + .long 1046240474 + .long 2147483648 + .long 1071818765 + .long 3350591592 + .long 3193333939 + .long 3221225472 + .long 1071815704 + .long 408870754 + .long 3193322854 + .long 0 + .long 1071812647 + .long 4146717132 + .long 1046063520 + .long 2147483648 + .long 1071809592 + .long 1681114919 + .long 3192114313 + .long 0 + .long 1071806541 + .long 1098393137 + .long 3190846732 + .long 2684354560 + .long 1071803492 + .long 2437484983 + .long 3193448718 + .long 1073741824 + .long 1071800447 + .long 1036809185 + .long 3192023501 + .long 0 + .long 1071797405 + .long 659668848 + .long 3193596312 + .long 3221225472 + .long 1071794365 + .long 1112062459 + .long 3192773376 + .long 2147483648 + .long 1071791329 + .long 4082956335 + .long 1045830513 + .long 1610612736 + .long 1071788296 + .long 2387089965 + .long 1045532601 + .long 1610612736 + .long 1071785266 + .long 1522101980 + .long 3193941957 + .long 1073741824 + .long 1071782239 + .long 2157197585 + .long 3188193305 + .long 1073741824 + .long 1071779215 + .long 946810220 + .long 3193223819 + .long 1073741824 + .long 1071776194 + .long 4069942444 + .long 3193878549 + .long 536870912 + .long 1071773176 + .long 1693463440 + .long 1046360588 + .long 536870912 + .long 1071770161 + .long 1954543254 + .long 1046409381 + .long 1073741824 + .long 1071767149 + .long 1050471249 + .long 3193933095 + .long 536870912 + .long 1071764140 + .long 1256240478 + .long 1046456865 + .long 536870912 + .long 1071761134 + .long 676764254 + .long 1046055503 + .long 536870912 + .long 1071758131 + .long 1421032967 + .long 1044779786 + .long 536870912 + .long 1071755131 + .long 38735992 + .long 3192766355 + .long 0 + .long 1071752134 + .long 2960669690 + .long 1044484680 + .long 3758096384 + .long 1071749139 + .long 788707382 + .long 1045299895 + .long 3221225472 + .long 1071746148 + .long 685689300 + .long 1040778831 + .long 2147483648 + .long 1071743160 + .long 1170994182 + .long 1046159174 + .long 1073741824 + .long 1071740175 + .long 64591436 + .long 1046153849 + .long 0 + .long 1071737193 + .long 2338031659 + .long 3189997702 + .long 2684354560 + .long 1071734213 + .long 1941624568 + .long 3186752676 + .long 536870912 + .long 1071731237 + .long 1401255580 + .long 1046383990 + .long 2684354560 + .long 1071728263 + .long 376888427 + .long 1045896456 + .long 536870912 + .long 1071725293 + .long 2831424639 + .long 3193539109 + .long 1610612736 + .long 1071722325 + .long 3303123696 + .long 1044599415 + .long 2684354560 + .long 1071719360 + .long 1077295329 + .long 3189877372 + .long 3221225472 + .long 1071716398 + .long 1434061099 + .long 3184529771 + .long 3221225472 + .long 1071713439 + .long 2104991590 + .long 1045062074 + .long 3221225472 + .long 1071710483 + .long 722060869 + .long 3193788526 + .long 536870912 + .long 1071704580 + .long 3928796486 + .long 1046129020 + .long 536870912 + .long 1071698688 + .long 588844628 + .long 1045492135 + .long 2684354560 + .long 1071692807 + .long 326739366 + .long 3193004445 + .long 1610612736 + .long 1071686938 + .long 2456436042 + .long 1046278169 + .long 2684354560 + .long 1071681080 + .long 2831303512 + .long 1043670046 + .long 536870912 + .long 1071675234 + .long 607223418 + .long 1045507322 + .long 0 + .long 1071669399 + .long 4254921332 + .long 3193290483 + .long 0 + .long 1071663575 + .long 914994333 + .long 3191263853 + .long 1073741824 + .long 1071657762 + .long 4147050180 + .long 3193228552 + .long 2684354560 + .long 1071651960 + .long 594554157 + .long 3193503935 + .long 0 + .long 1071646170 + .long 1062846796 + .long 1045944331 + .long 1073741824 + .long 1071636109 + .long 2909238893 + .long 3193436884 + .long 1073741824 + .long 1071624572 + .long 1682918119 + .long 1042211899 + .long 1073741824 + .long 1071613057 + .long 2419209426 + .long 1045437062 + .long 1073741824 + .long 1071601564 + .long 2951341321 + .long 3190193214 + .long 0 + .long 1071590093 + .long 3084900875 + .long 3192394907 + .long 1073741824 + .long 1071578643 + .long 999567454 + .long 1046433447 + .long 2147483648 + .long 1071567215 + .long 1570101857 + .long 3193291160 + .long 0 + .long 1071555809 + .long 1080647881 + .long 3185154585 + .long 0 + .long 1071544424 + .long 3526309177 + .long 1044843640 + .long 2147483648 + .long 1071533060 + .long 2213463349 + .long 3191738930 + .long 1073741824 + .long 1071521718 + .long 1039925195 + .long 3192618353 + .long 1073741824 + .long 1071510397 + .long 2115757280 + .long 3193671567 + .long 1073741824 + .long 1071499097 + .long 1188751495 + .long 3191145560 + .long 2147483648 + .long 1071487818 + .long 3983461449 + .long 3193897029 + .long 2147483648 + .long 1071476560 + .long 782141500 + .long 1042879962 + .long 2147483648 + .long 1071465323 + .long 4038904626 + .long 1045063881 + .long 2147483648 + .long 1071454107 + .long 2613036921 + .long 3193217642 + .long 0 + .long 1071442912 + .long 2095723435 + .long 1044629175 + .long 1073741824 + .long 1071431737 + .long 3879795974 + .long 1045767874 + .long 1073741824 + .long 1071420583 + .long 2662198042 + .long 3191434637 + .long 3221225472 + .long 1071409449 + .long 4037605722 + .long 3193703090 + .long 2147483648 + .long 1071398336 + .long 1860331835 + .long 1040814822 + .long 3221225472 + .long 1071387243 + .long 1522972033 + .long 3190305974 + .long 1073741824 + .long 1071376171 + .long 2361534207 + .long 1043699366 + .long 0 + .long 1071365119 + .long 4180309179 + .long 1044142099 + .long 0 + .long 1071354087 + .long 1201038528 + .long 3192968772 + .long 0 + .long 1071343075 + .long 1342478171 + .long 3193251215 + .long 0 + .long 1071332083 + .long 3836883348 + .long 3193472007 + .long 3221225472 + .long 1071321110 + .long 3864874250 + .long 1045593126 + .long 2147483648 + .long 1071310158 + .long 2169494998 + .long 1046045346 + .long 1073741824 + .long 1071299226 + .long 3785165075 + .long 3193319246 + .long 2147483648 + .long 1071288313 + .long 1137692678 + .long 3192716779 + .long 1073741824 + .long 1071277420 + .long 1752107598 + .long 1046366120 + .long 3221225472 + .long 1071266546 + .long 1912656912 + .long 1046352281 + .long 3221225472 + .long 1071255692 + .long 2882676334 + .long 1046406353 + .long 1073741824 + .long 1071244858 + .long 963612460 + .long 1045282811 + .long 0 + .long 1071234043 + .long 3811255773 + .long 1046231636 + .long 1073741824 + .long 1071223247 + .long 1126055989 + .long 3192224037 + .long 2147483648 + .long 1071212470 + .long 2079145427 + .long 1044432413 + .long 0 + .long 1071201713 + .long 3611595621 + .long 1043358745 + .long 2147483648 + .long 1071190974 + .long 390522769 + .long 1045888252 + .long 1073741824 + .long 1071180255 + .long 4087939723 + .long 3192930745 + .long 3221225472 + .long 1071169554 + .long 1451494480 + .long 3190219274 + .long 1073741824 + .long 1071158873 + .long 427176194 + .long 3193042022 + .long 2147483648 + .long 1071148210 + .long 1882381948 + .long 3192727946 + .long 2147483648 + .long 1071137566 + .long 3736313771 + .long 3192087019 + .long 1073741824 + .long 1071126941 + .long 1560398816 + .long 3193185715 + .long 2147483648 + .long 1071116334 + .long 1021942441 + .long 1041526696 + .long 2147483648 + .long 1071105746 + .long 3517080249 + .long 3193576041 + .long 3221225472 + .long 1071095176 + .long 2248589878 + .long 1044527624 + .long 2147483648 + .long 1071084625 + .long 2412896695 + .long 1046112867 + .long 3221225472 + .long 1071074092 + .long 3834725738 + .long 1044562378 + .long 1073741824 + .long 1071063578 + .long 1150920407 + .long 1043768986 + .long 0 + .long 1071053082 + .long 1379393428 + .long 3188690690 + .long 0 + .long 1071042604 + .long 3058183278 + .long 3193617655 + .long 0 + .long 1071032144 + .long 421133665 + .long 3193417186 + .long 0 + .long 1071021702 + .long 2860161357 + .long 3191816125 + .long 0 + .long 1071011278 + .long 1742405964 + .long 1043580240 + .long 0 + .long 1071000872 + .long 2821215927 + .long 3188984273 + .long 3221225472 + .long 1070990483 + .long 510275597 + .long 1045813401 + .long 2147483648 + .long 1070980113 + .long 304266588 + .long 3191193536 + .long 3221225472 + .long 1070969760 + .long 1854784211 + .long 1046302073 + .long 0 + .long 1070959426 + .long 3773082854 + .long 3193008899 + .long 2147483648 + .long 1070949108 + .long 3003572392 + .long 1046404879 + .long 3221225472 + .long 1070938808 + .long 1702149204 + .long 1046407257 + .long 2147483648 + .long 1070928526 + .long 3935314439 + .long 1046438280 + .long 3221225472 + .long 1070918261 + .long 2677087609 + .long 1045501749 + .long 2147483648 + .long 1070908014 + .long 4190598039 + .long 3193640515 + .long 1073741824 + .long 1070897784 + .long 368874072 + .long 1044879927 + .long 2147483648 + .long 1070887571 + .long 3584052697 + .long 3192024662 + .long 3221225472 + .long 1070877375 + .long 3762307829 + .long 1045886918 + .long 1073741824 + .long 1070867197 + .long 495710920 + .long 1046317072 + .long 0 + .long 1070857036 + .long 2292768238 + .long 3190887508 + .long 3221225472 + .long 1070846891 + .long 1044078151 + .long 3193772914 + .long 1073741824 + .long 1070836764 + .long 3266010457 + .long 1043443755 + .long 3221225472 + .long 1070826653 + .long 3571665822 + .long 1045547823 + .long 1073741824 + .long 1070816560 + .long 393348347 + .long 3190525143 + .long 2147483648 + .long 1070806483 + .long 4241722498 + .long 3192084193 + .long 2147483648 + .long 1070796423 + .long 1693797068 + .long 3192807972 + .long 0 + .long 1070786380 + .long 2860086745 + .long 1046331646 + .long 2147483648 + .long 1070776353 + .long 1366141759 + .long 3192979363 + .long 1073741824 + .long 1070766343 + .long 737899283 + .long 1045853346 + .long 3221225472 + .long 1070756349 + .long 88734873 + .long 1043881257 + .long 3221225472 + .long 1070746372 + .long 1438003315 + .long 3192917101 + .long 0 + .long 1070736412 + .long 1066505530 + .long 1043896695 + .long 3221225472 + .long 1070726467 + .long 2706653041 + .long 3191113643 + .long 3221225472 + .long 1070716539 + .long 1321764476 + .long 1039573724 + .long 0 + .long 1070706628 + .long 1126753211 + .long 1044502976 + .long 2147483648 + .long 1070696732 + .long 773642884 + .long 1044110727 + .long 1073741824 + .long 1070686853 + .long 1263743406 + .long 3193115278 + .long 0 + .long 1070676990 + .long 3115237732 + .long 3193089176 + .long 3221225472 + .long 1070667142 + .long 3642626838 + .long 3191146032 + .long 2147483648 + .long 1070657311 + .long 2091696428 + .long 1044337177 + .long 1073741824 + .long 1070647496 + .long 3168958391 + .long 1044197568 + .long 0 + .long 1070637697 + .long 711148669 + .long 3193181047 + .long 2147483648 + .long 1070627913 + .long 4207182773 + .long 3193402092 + .long 3221225472 + .long 1070618145 + .long 918070640 + .long 3192902845 + .long 3221225472 + .long 1070608393 + .long 3135571447 + .long 3192193928 + .long 2147483648 + .long 1070598657 + .long 1043705517 + .long 3193188604 + .long 2147483648 + .long 1070581777 + .long 1886680492 + .long 1043890286 + .long 2147483648 + .long 1070562367 + .long 3373799420 + .long 3191917802 + .long 2147483648 + .long 1070542988 + .long 2919618025 + .long 3192461752 + .long 2147483648 + .long 1070523640 + .long 2926365158 + .long 3193113492 + .long 0 + .long 1070504323 + .long 519978638 + .long 1045918846 + .long 0 + .long 1070485037 + .long 3665353151 + .long 3193546248 + .long 0 + .long 1070465781 + .long 2327718958 + .long 1045050797 + .long 0 + .long 1070446556 + .long 345326861 + .long 3188224716 + .long 2147483648 + .long 1070427361 + .long 2263747488 + .long 3192871328 + .long 0 + .long 1070408197 + .long 3894192264 + .long 1045693123 + .long 0 + .long 1070389063 + .long 994321593 + .long 1046347203 + .long 2147483648 + .long 1070369959 + .long 3540366700 + .long 1042296230 + .long 0 + .long 1070350886 + .long 966420752 + .long 3192400412 + .long 2147483648 + .long 1070331842 + .long 1954511160 + .long 3193467762 + .long 2147483648 + .long 1070312828 + .long 1875003040 + .long 1045485629 + .long 0 + .long 1070293845 + .long 4003372005 + .long 3193714109 + .long 2147483648 + .long 1070274890 + .long 2216083644 + .long 1045720399 + .long 0 + .long 1070255966 + .long 1240985743 + .long 1045879414 + .long 0 + .long 1070237071 + .long 1573064162 + .long 1046427916 + .long 0 + .long 1070218206 + .long 2500166582 + .long 3193848169 + .long 2147483648 + .long 1070199369 + .long 862131539 + .long 1045606065 + .long 0 + .long 1070180563 + .long 3733427622 + .long 3193545988 + .long 0 + .long 1070161785 + .long 124515358 + .long 1045504766 + .long 2147483648 + .long 1070143036 + .long 689228007 + .long 1044238436 + .long 0 + .long 1070124317 + .long 976284835 + .long 3189879978 + .long 2147483648 + .long 1070105626 + .long 2997446224 + .long 3193394244 + .long 2147483648 + .long 1070086964 + .long 594985163 + .long 3190453447 + .long 2147483648 + .long 1070068331 + .long 3634411091 + .long 3193012662 + .long 0 + .long 1070049727 + .long 841316482 + .long 3192551604 + .long 0 + .long 1070031151 + .long 518949849 + .long 3189505693 + .long 2147483648 + .long 1070012603 + .long 207633604 + .long 1043791305 + .long 2147483648 + .long 1069994084 + .long 925415631 + .long 3189658670 + .long 2147483648 + .long 1069975593 + .long 3348775015 + .long 1046231055 + .long 0 + .long 1069957131 + .long 4137593961 + .long 1045760644 + .long 2147483648 + .long 1069938696 + .long 3081207972 + .long 1046319652 + .long 2147483648 + .long 1069920290 + .long 2912811806 + .long 3193250863 + .long 0 + .long 1069901912 + .long 1704663230 + .long 3192651171 + .long 2147483648 + .long 1069883561 + .long 1726887473 + .long 3193427817 + .long 2147483648 + .long 1069865238 + .long 516302873 + .long 1042556919 + .long 2147483648 + .long 1069846943 + .long 3737277289 + .long 3192083505 + .long 0 + .long 1069828676 + .long 2829909067 + .long 3191628520 + .long 0 + .long 1069810436 + .long 3474800299 + .long 3187384991 + .long 2147483648 + .long 1069792223 + .long 2041291754 + .long 3186735048 + .long 2147483648 + .long 1069774038 + .long 3100739290 + .long 3192991951 + .long 2147483648 + .long 1069755880 + .long 2641686866 + .long 1042449846 + .long 0 + .long 1069737750 + .long 1353612457 + .long 3192928544 + .long 2147483648 + .long 1069719646 + .long 1823398190 + .long 3193125156 + .long 0 + .long 1069701570 + .long 2629108558 + .long 3192983089 + .long 2147483648 + .long 1069683520 + .long 314889080 + .long 3193178947 + .long 2147483648 + .long 1069665497 + .long 3426846470 + .long 1046055034 + .long 0 + .long 1069647502 + .long 2451521798 + .long 3193081447 + .long 2147483648 + .long 1069629532 + .long 963200030 + .long 1046315089 + .long 0 + .long 1069611590 + .long 3644976987 + .long 1046450297 + .long 2147483648 + .long 1069593674 + .long 1514045874 + .long 3193337489 + .long 0 + .long 1069575785 + .long 2640752615 + .long 3192734715 + .long 0 + .long 1069557922 + .long 177381730 + .long 3193107348 + .long 0 + .long 1069532650 + .long 546871269 + .long 1045601847 + .long 0 + .long 1069497029 + .long 2220408187 + .long 1045964849 + .long 0 + .long 1069461461 + .long 3101209784 + .long 3192417098 + .long 0 + .long 1069425944 + .long 3768825782 + .long 1046196178 + .long 0 + .long 1069390480 + .long 737308942 + .long 1043872555 + .long 0 + .long 1069355068 + .long 1944808119 + .long 3193362317 + .long 0 + .long 1069319707 + .long 852406261 + .long 3191004250 + .long 0 + .long 1069284398 + .long 3202370743 + .long 3192549796 + .long 0 + .long 1069249140 + .long 900633975 + .long 1043862575 + .long 0 + .long 1069213934 + .long 3417168564 + .long 3193213168 + .long 0 + .long 1069178778 + .long 2513309972 + .long 1046051953 + .long 0 + .long 1069143674 + .long 1836846968 + .long 1044036653 + .long 0 + .long 1069108621 + .long 675391362 + .long 3193334972 + .long 0 + .long 1069073618 + .long 1859398086 + .long 3191668729 + .long 0 + .long 1069038666 + .long 3835994043 + .long 3193252196 + .long 0 + .long 1069003764 + .long 563337246 + .long 3192060530 + .long 0 + .long 1068968912 + .long 3715154210 + .long 1045592716 + .long 0 + .long 1068934111 + .long 51415636 + .long 3192193939 + .long 0 + .long 1068899359 + .long 822049108 + .long 1045846080 + .long 0 + .long 1068864658 + .long 3739043340 + .long 3193184949 + .long 0 + .long 1068830006 + .long 2500828997 + .long 3193115638 + .long 0 + .long 1068795403 + .long 1479335089 + .long 1045458233 + .long 0 + .long 1068760850 + .long 1914098598 + .long 1045079833 + .long 0 + .long 1068726346 + .long 1470374909 + .long 1046125471 + .long 0 + .long 1068691892 + .long 2048101185 + .long 3192960024 + .long 0 + .long 1068657486 + .long 801101802 + .long 1042523454 + .long 0 + .long 1068623129 + .long 412171467 + .long 1044799425 + .long 0 + .long 1068588821 + .long 2124566049 + .long 1040459843 + .long 0 + .long 1068554561 + .long 2087558263 + .long 1046083102 + .long 0 + .long 1068520350 + .long 290389316 + .long 1045220023 + .long 0 + .long 1068473430 + .long 393737815 + .long 1045770085 + .long 0 + .long 1068405202 + .long 3273111658 + .long 3193594336 + .long 0 + .long 1068337068 + .long 3076935419 + .long 3191993934 + .long 0 + .long 1068269030 + .long 1564279721 + .long 1040713632 + .long 0 + .long 1068201088 + .long 1950103787 + .long 3191285473 + .long 0 + .long 1068133240 + .long 111301617 + .long 1046140470 + .long 0 + .long 1068065488 + .long 2740933659 + .long 1046091898 + .long 0 + .long 1067997832 + .long 1267131462 + .long 3192947024 + .long 0 + .long 1067930268 + .long 629787343 + .long 1045599114 + .long 0 + .long 1067862800 + .long 2943029746 + .long 3191100621 + .long 0 + .long 1067795426 + .long 2538631151 + .long 3193953989 + .long 0 + .long 1067728144 + .long 3881795033 + .long 3191377363 + .long 0 + .long 1067660956 + .long 2752747058 + .long 3186250103 + .long 0 + .long 1067593862 + .long 892170014 + .long 3193330390 + .long 0 + .long 1067526860 + .long 2000985783 + .long 3192968647 + .long 0 + .long 1067459950 + .long 1954077304 + .long 1044399908 + .long 0 + .long 1067335900 + .long 4120702847 + .long 3193150730 + .long 0 + .long 1067202448 + .long 353489980 + .long 1045676744 + .long 0 + .long 1067069184 + .long 2609643324 + .long 3192108001 + .long 0 + .long 1066936100 + .long 2904433317 + .long 1044836541 + .long 0 + .long 1066803200 + .long 319656790 + .long 1044863904 + .long 0 + .long 1066670484 + .long 2407987331 + .long 3192995083 + .long 0 + .long 1066537948 + .long 2437746120 + .long 3193127733 + .long 0 + .long 1066405592 + .long 762570215 + .long 3189946997 + .long 0 + .long 1066145040 + .long 3317159694 + .long 1046060125 + .long 0 + .long 1065881056 + .long 2317845886 + .long 3191679176 + .long 0 + .long 1065617424 + .long 3665195816 + .long 1045633853 + .long 0 + .long 1065354160 + .long 2008730355 + .long 3193898211 + .long 0 + .long 1064829264 + .long 3746236192 + .long 1046121471 + .long 0 + .long 1064303680 + .long 885296753 + .long 3191852441 + .long 0 + .long 1063253696 + .long 449976495 + .long 3192682663 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .type L_tbl,@object + .size L_tbl,8208 + .space 496, 0x00 # pad + .align 16 +HIGHMASK_Y: + .long 0 + .long 4294967288 + .long 0 + .long 4294967295 + .type HIGHMASK_Y,@object + .size HIGHMASK_Y,16 + .align 16 +T_exp: + .long 0 + .long 1072693248 + .long 0 + .long 997195776 + .long 4200250559 + .long 1072696090 + .long 2808127345 + .long 3162830514 + .long 2851812149 + .long 1072698941 + .long 2595802551 + .long 1016815913 + .long 339411585 + .long 1072701800 + .long 264588982 + .long 3162685233 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 772914124 + .long 1072707540 + .long 4004372762 + .long 1013278737 + .long 3899555717 + .long 1072710421 + .long 427280750 + .long 3163595548 + .long 1928746161 + .long 1072713311 + .long 983617676 + .long 1015333753 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 238821257 + .long 1072719114 + .long 1469694871 + .long 3163933563 + .long 702412510 + .long 1072722027 + .long 3803266087 + .long 3163328991 + .long 728934454 + .long 1072724948 + .long 1413842688 + .long 1015227188 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 4133881824 + .long 1072730813 + .long 2148155345 + .long 3163979875 + .long 3402036099 + .long 1072733758 + .long 405889334 + .long 1016154232 + .long 2602514713 + .long 1072736711 + .long 2268929336 + .long 1015402860 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 1172597893 + .long 1072742641 + .long 114433263 + .long 1016396169 + .long 728909815 + .long 1072745618 + .long 383930225 + .long 1016078044 + .long 590962156 + .long 1072748603 + .long 3829346666 + .long 3164324173 + .long 852742562 + .long 1072751596 + .long 667253586 + .long 1010842135 + .long 1608493509 + .long 1072754597 + .long 3159622171 + .long 3163856313 + .long 2952712987 + .long 1072757606 + .long 3293494651 + .long 3161168877 + .long 685187902 + .long 1072760624 + .long 378731989 + .long 1015891691 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 2875075254 + .long 1072766683 + .long 4144233330 + .long 3164382292 + .long 3228316108 + .long 1072769725 + .long 3010241991 + .long 3159471380 + .long 351405227 + .long 1072772776 + .long 3125337328 + .long 3160871055 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 2471440686 + .long 1072778901 + .long 968836267 + .long 3163263464 + .long 3366293073 + .long 1072781976 + .long 3119426314 + .long 1015169130 + .long 1416741826 + .long 1072785060 + .long 2196380210 + .long 1012462139 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 2257959872 + .long 1072791252 + .long 3802946148 + .long 1014013503 + .long 948735466 + .long 1072794361 + .long 3516338028 + .long 3163623459 + .long 1480023343 + .long 1072797478 + .long 2247196168 + .long 1016376029 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 4162030108 + .long 1072803737 + .long 2763428480 + .long 1016577925 + .long 2214878420 + .long 1072806880 + .long 892270087 + .long 3164164998 + .long 2502433899 + .long 1072810031 + .long 2148595913 + .long 1016072567 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 1588871207 + .long 1072816359 + .long 143439582 + .long 3164011992 + .long 586995997 + .long 1072819536 + .long 41662348 + .long 3163676568 + .long 2218315341 + .long 1072822721 + .long 2694295388 + .long 3164337444 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 897099801 + .long 1072829118 + .long 754756297 + .long 1016289581 + .long 2440944790 + .long 1072832329 + .long 2492769774 + .long 1015196030 + .long 2725843665 + .long 1072835549 + .long 1433917087 + .long 1015887099 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 4219606026 + .long 1072842015 + .long 2434574742 + .long 1015730124 + .long 1337108031 + .long 1072845262 + .long 3203724452 + .long 1015726421 + .long 1897844341 + .long 1072848517 + .long 1254300460 + .long 1016324514 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 874372905 + .long 1072855054 + .long 100263788 + .long 1016989308 + .long 3790955393 + .long 1072858335 + .long 2352942462 + .long 3164228666 + .long 1972484976 + .long 1072861626 + .long 675290301 + .long 3162688626 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 1724976915 + .long 1072868234 + .long 420909223 + .long 3164165955 + .long 3504003472 + .long 1072871551 + .long 3594001060 + .long 3158379228 + .long 964107055 + .long 1072874878 + .long 2800439588 + .long 3163881797 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 526652809 + .long 1072881558 + .long 4223459736 + .long 1016927951 + .long 2839424854 + .long 1072884911 + .long 1171596163 + .long 1014090255 + .long 1253935211 + .long 1072888274 + .long 1395382931 + .long 3160751189 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 3991843581 + .long 1072895026 + .long 4092853457 + .long 1015634339 + .long 4232894513 + .long 1072898416 + .long 2383938684 + .long 1015717095 + .long 1000925746 + .long 1072901816 + .long 1018491672 + .long 3164358120 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 1726216749 + .long 1072908642 + .long 2466808228 + .long 3162724981 + .long 1603444721 + .long 1072912069 + .long 1548633640 + .long 3163249902 + .long 2732492859 + .long 1072915505 + .long 2691479646 + .long 3163304260 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 589198666 + .long 1072922406 + .long 2664346172 + .long 3164206538 + .long 1829099622 + .long 1072925870 + .long 1016661181 + .long 3164509581 + .long 460407023 + .long 1072929344 + .long 4237175092 + .long 3164187045 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 3219942644 + .long 1072936319 + .long 3798990616 + .long 1016417382 + .long 3272845541 + .long 1072939821 + .long 928852419 + .long 3164536824 + .long 1156440435 + .long 1072943333 + .long 2351451249 + .long 1015015632 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 3743175029 + .long 1072950384 + .long 2072812490 + .long 3163223651 + .long 78413852 + .long 1072953925 + .long 4183226867 + .long 3164065827 + .long 3278348324 + .long 1072957474 + .long 3069497416 + .long 1015799288 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 654919306 + .long 1072964603 + .long 3232961757 + .long 3164096045 + .long 3645941911 + .long 1072968181 + .long 3814685081 + .long 3162621917 + .long 1065662932 + .long 1072971770 + .long 2533670915 + .long 1015578814 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 1118294578 + .long 1072978976 + .long 2197495694 + .long 3160957977 + .long 3978100823 + .long 1072982593 + .long 3513027190 + .long 1016894539 + .long 1720398391 + .long 1072986221 + .long 3980678963 + .long 3164348656 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 3784486610 + .long 1072993505 + .long 1581883040 + .long 3162747529 + .long 4040676318 + .long 1072997162 + .long 4090609238 + .long 1016712034 + .long 3933059031 + .long 1073000829 + .long 2133366768 + .long 3162580408 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 3088564500 + .long 1073008193 + .long 1762311517 + .long 1016094249 + .long 2583551245 + .long 1073011890 + .long 3161094195 + .long 1016655067 + .long 2178460671 + .long 1073015597 + .long 777878098 + .long 3163891069 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 2135241198 + .long 1073023041 + .long 1236747871 + .long 1014637723 + .long 2731501122 + .long 1073026778 + .long 1774031855 + .long 3163518597 + .long 3896463087 + .long 1073030525 + .long 1139797873 + .long 3162282381 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 4109806887 + .long 1073038050 + .long 422403966 + .long 1015517805 + .long 3395129871 + .long 1073041828 + .long 4025345435 + .long 3163383964 + .long 3723038930 + .long 1073045616 + .long 378465264 + .long 3163618158 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3689071823 + .long 1073053223 + .long 2321004996 + .long 3163601292 + .long 3566716925 + .long 1073057042 + .long 1536826856 + .long 1015191009 + .long 671025100 + .long 1073060872 + .long 3832014351 + .long 3164070606 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 4222122499 + .long 1073068561 + .long 1277378074 + .long 3164305313 + .long 2321106615 + .long 1073072422 + .long 2171176610 + .long 1010584347 + .long 2425981843 + .long 1073076293 + .long 2830390851 + .long 3164395175 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 551349105 + .long 1073084067 + .long 3821916050 + .long 3163155165 + .long 3111574537 + .long 1073087969 + .long 2606161479 + .long 3163808322 + .long 3872257780 + .long 1073091882 + .long 1253592103 + .long 1017006910 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 488188413 + .long 1073099741 + .long 3199821029 + .long 1016612624 + .long 885834528 + .long 1073103686 + .long 1973258547 + .long 3163310140 + .long 4273770423 + .long 1073107641 + .long 3383180809 + .long 3164267477 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 3339203574 + .long 1073115585 + .long 1483497780 + .long 3163457330 + .long 3561793907 + .long 1073119573 + .long 1157054053 + .long 1012938926 + .long 2979960120 + .long 1073123572 + .long 2599109725 + .long 1015547069 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 4201977662 + .long 1073131602 + .long 748330254 + .long 1014642933 + .long 1963711167 + .long 1073135634 + .long 1744767757 + .long 3161622870 + .long 3721688645 + .long 1073139676 + .long 3069276937 + .long 1016887977 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 2555984613 + .long 1073147794 + .long 2652555442 + .long 3163601268 + .long 4182873220 + .long 1073151869 + .long 629542646 + .long 3163044879 + .long 1727278727 + .long 1073155956 + .long 3562710623 + .long 1012520516 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 2263535754 + .long 1073164162 + .long 752233586 + .long 3163687584 + .long 1218806132 + .long 1073168282 + .long 1818613052 + .long 3163597017 + .long 903334909 + .long 1073172413 + .long 1636462108 + .long 1016088573 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 2980802057 + .long 1073180708 + .long 378619896 + .long 1016821879 + .long 1339972927 + .long 1073184873 + .long 167908909 + .long 1016620728 + .long 950803702 + .long 1073189049 + .long 1655364926 + .long 1016285608 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 158781403 + .long 1073197435 + .long 2221464712 + .long 3164335029 + .long 19972402 + .long 1073201645 + .long 3507899862 + .long 1017057868 + .long 1660913392 + .long 1073205866 + .long 4218599604 + .long 1016184283 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 2224145553 + .long 1073214343 + .long 3482522030 + .long 3162537745 + .long 1413356050 + .long 1073218599 + .long 1651349291 + .long 3163716742 + .long 2916157145 + .long 1073222866 + .long 219487565 + .long 1016357943 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 515457527 + .long 1073231436 + .long 836709333 + .long 1016699802 + .long 1176749997 + .long 1073235738 + .long 2738998779 + .long 3163084420 + .long 396319521 + .long 1073240052 + .long 4172420816 + .long 3160123208 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 3643909174 + .long 1073248714 + .long 3537586109 + .long 1015403223 + .long 3649726105 + .long 1073253063 + .long 4085036346 + .long 1016698050 + .long 2759350287 + .long 1073257424 + .long 1148526634 + .long 1016943509 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 3134592888 + .long 1073266181 + .long 4232266862 + .long 1017039710 + .long 380978316 + .long 1073270578 + .long 854188970 + .long 3161511262 + .long 1577608921 + .long 1073274986 + .long 1875489510 + .long 3164016970 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 3492293770 + .long 1073283838 + .long 2248032210 + .long 1016435402 + .long 194117574 + .long 1073288283 + .long 777528612 + .long 3164460665 + .long 1403662306 + .long 1073292739 + .long 2788809599 + .long 3162719583 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 727685349 + .long 1073301688 + .long 2038246809 + .long 3163407318 + .long 3418903055 + .long 1073306180 + .long 2527457337 + .long 3161869180 + .long 2591453363 + .long 1073310685 + .long 2132396182 + .long 3160122774 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 3833209506 + .long 1073319731 + .long 2722920684 + .long 1014803418 + .long 1892288442 + .long 1073324273 + .long 2446255666 + .long 3163648957 + .long 1297350157 + .long 1073328827 + .long 1308022040 + .long 3164461134 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 424392917 + .long 1073337972 + .long 2749202995 + .long 3163887294 + .long 434316067 + .long 1073342563 + .long 2028358766 + .long 1014506698 + .long 2366108318 + .long 1073347166 + .long 2867985102 + .long 3162810830 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 3985553595 + .long 1073356410 + .long 4002146062 + .long 1016882712 + .long 3964284211 + .long 1073361051 + .long 2111583915 + .long 1016475740 + .long 2152073944 + .long 1073365705 + .long 1486860576 + .long 3164252032 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 2331271250 + .long 1073375050 + .long 812057446 + .long 1013256022 + .long 321958744 + .long 1073379742 + .long 3401933767 + .long 1016843134 + .long 1405169241 + .long 1073384446 + .long 2998539689 + .long 3163879527 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 557149882 + .long 1073393893 + .long 3672720709 + .long 1015585841 + .long 3218338682 + .long 1073398635 + .long 3404164304 + .long 3163525684 + .long 977020788 + .long 1073403391 + .long 3065100517 + .long 1016590139 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 3861050111 + .long 1073412940 + .long 254893773 + .long 3163861756 + .long 697153126 + .long 1073417735 + .long 1283515429 + .long 3164331765 + .long 1822067026 + .long 1073422542 + .long 1241994956 + .long 1016388866 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 364333489 + .long 1073432196 + .long 3923737744 + .long 3162469949 + .long 2380618042 + .long 1073437042 + .long 3149557219 + .long 3164369375 + .long 703710506 + .long 1073441902 + .long 1384660846 + .long 1016244467 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 4062661092 + .long 1073451660 + .long 1422616006 + .long 3164303894 + .long 815859274 + .long 1073456560 + .long 240396590 + .long 3164536019 + .long 3080351519 + .long 1073461472 + .long 3379126789 + .long 3158266577 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 3287523847 + .long 1073471337 + .long 1625971539 + .long 3158058531 + .long 1540824585 + .long 1073476290 + .long 1064017011 + .long 3164536266 + .long 1631695677 + .long 1073481256 + .long 2717633076 + .long 3163392602 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 3657065772 + .long 1073491228 + .long 399025623 + .long 3164005654 + .long 1610600570 + .long 1073496235 + .long 3766732298 + .long 1016808759 + .long 2029714210 + .long 1073501255 + .long 613660079 + .long 1016147719 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 2307442995 + .long 1073511336 + .long 3190117721 + .long 3163453115 + .long 2483480501 + .long 1073516397 + .long 1216371780 + .long 1014082748 + .long 1464976603 + .long 1073521472 + .long 3507292405 + .long 3163026110 + .long 3706687593 + .long 1073526560 + .long 3521726939 + .long 1014301643 + .long 778901109 + .long 1073531663 + .long 2248183954 + .long 3162317327 + .long 1432208378 + .long 1073536779 + .long 1401068914 + .long 3163412539 + .long 1532734324 + .long 1073541909 + .long 3094216535 + .long 3164211433 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 721996136 + .long 1073552211 + .long 563754734 + .long 1016419894 + .long 135105010 + .long 1073557383 + .long 1906148728 + .long 3164424315 + .long 3939148246 + .long 1073562568 + .long 3210352148 + .long 1016322899 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 3898795731 + .long 1073572982 + .long 1249994144 + .long 1012918394 + .long 382305176 + .long 1073578211 + .long 2347622376 + .long 3163627201 + .long 1912561781 + .long 1073583453 + .long 3147495102 + .long 1016726829 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 3594158869 + .long 1073593980 + .long 2456521700 + .long 3164305137 + .long 4076975200 + .long 1073599265 + .long 2029000899 + .long 1016257111 + .long 1679558232 + .long 1073604565 + .long 2390342287 + .long 3164382546 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 1796832535 + .long 1073615207 + .long 3176955716 + .long 3161634089 + .long 351641897 + .long 1073620550 + .long 2172261526 + .long 3164059175 + .long 991358482 + .long 1073625907 + .long 838715019 + .long 3164206244 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 610758006 + .long 1073636665 + .long 1965209397 + .long 3162914808 + .long 4224142467 + .long 1073642065 + .long 3389820386 + .long 1016255778 + .long 2009970496 + .long 1073647481 + .long 2159039665 + .long 3163621524 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 2256325230 + .long 1073658356 + .long 580117746 + .long 1016365871 + .long 764307441 + .long 1073663816 + .long 3021057420 + .long 3164378099 + .long 2719515920 + .long 1073669290 + .long 2760332941 + .long 1016186509 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 481706282 + .long 1073680284 + .long 1696079173 + .long 3163759104 + .long 929806999 + .long 1073685803 + .long 3205336643 + .long 1016308133 + .long 1222472308 + .long 1073691337 + .long 1054357470 + .long 3162069594 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2038973688 + .long 1073702450 + .long 892941374 + .long 1017095035 + .long 2912730644 + .long 1073708029 + .long 3490067722 + .long 3164453650 + .long 35929225 + .long 1073713624 + .long 2809788041 + .long 3160485544 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 915592468 + .long 1073724858 + .long 352947894 + .long 3162072947 + .long 730821105 + .long 1073730498 + .long 2523232743 + .long 1013115764 + .long 1797923801 + .long 1073736153 + .long 1950547427 + .long 1014277635 + .type T_exp,@object + .size T_exp,4096 + .space 512, 0x00 # pad + .align 16 +e_coeff: + .long 3884607281 + .long 1062590591 + .long 3607404736 + .long 1068264200 + .long 1874480759 + .long 1065595563 + .long 4286760335 + .long 1070514109 + .long 4277811695 + .long 1072049730 + .long 0 + .long 0 + .type e_coeff,@object + .size e_coeff,48 + .align 16 +coeff_h: + .long 0 + .long 3218479616 + .long 0 + .long 3210587105 + .type coeff_h,@object + .size coeff_h,16 + .align 16 +HIGHMASK_LOG_X: + .long 4160749568 + .long 4294967295 + .long 0 + .long 4294965248 + .type HIGHMASK_LOG_X,@object + .size HIGHMASK_LOG_X,16 + .align 8 +HALFMASK: + .long 4160749568 + .long 4294967295 + .long 4160749568 + .long 4294967295 + .type HALFMASK,@object + .size HALFMASK,16 + .align 8 +log2: + .long 4277811695 + .long 1072049730 + .long 4277811695 + .long 3219533378 + .type log2,@object + .size log2,16 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_pow.1-. + .4byte ..___tag_value_pow.5-..___tag_value_pow.1 + .2byte 0x0400 + .4byte ..___tag_value_pow.3-..___tag_value_pow.1 + .2byte 0x300e + .byte 0x04 + .4byte ..___tag_value_pow.4-..___tag_value_pow.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/e_sinh.S b/libm/x86_64/e_sinh.S new file mode 100644 index 000000000..4d8db630a --- /dev/null +++ b/libm/x86_64/e_sinh.S @@ -0,0 +1,1430 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// sinh(x)=(exp(x)-exp(-x))/2 +// +// Let |x|=xH+xL (upper 26 bits, lower 27 bits) +// log2(e) rounded to 26 bits (high part) plus a double precision low part is +// L2EH+L2EL (upper 26, lower 53 bits) +// +// Let xH*L2EH=k+f+r`, where (k+f)*2^7=int(xH*L2EH*2^7), +// f=0.b1 b2 ... b7, k integer +// 2^f is approximated as Tp[f]+Dp[f], and 2^{-f} as Tn[f]+Dn[f] +// Tp stores the high 53 bits, Dp stores (2^f-Tp[f]) rounded to double precision +// +// e^|x|=2^{k+f}*2^r, r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-8}+2^{-14}, +// for |x| in [23/64,3*2^7) +// e^{-|x|}=2^{-k-f}*2^{-r} +// +// e^|x| is approximated as 2^k*Tp+2^k*Tp*c1*r(1+c2*r+..+c5*r^4)+2^k*Dp= +// =2^k*Tp+2^k*Tp*P15+2^k*Dp +// e^{-|x|} approximated as 2^{-k}*Tn-2^{-k}*Tn*c1*r(1-c2*r+..+c5*r^4)+2^{-k}*Dn +// +// For |x| in [1/8, 3*2^7), sinh(x) is formed as +// RN(2^k*Tp-2^{-k}*Tn)+2^k*Tp*P15-2^{-k}*Tn*P`15-2^{-k}*TnL-2^{-k}*Dn+2^k*Dp +// +// For x in (3*2^7, 3*2^8), sign(x)*(e^|x|)/2 is returned, and +// the result is checked for overflow. +// +// For |x|<23/64, a Taylor polynomial expansion is used (degree 13) +// To reduce rounding errors, the p3*x^3 term is computed as +// (p3*xh^3)_high+[(p3*xl*(3*x*xh+xl^2))+(p3*xh^3)_low], +// where x=xh+xl, (xh are the leading 17 bits of x), and +// (p3*xh^3)_high=RN(x+p3*xh^3)-x +// (error bound for polynomial expansion is below 0.51 ulp) +// +// Special cases: +// sinh(NaN) = quiet NaN, and raise invalid exception +// sinh(+/-INF) = +/-INF +// sinh(x) = x for subnormals +// for finite argument, only sinh(0)=0 is exact +// For IEEE double +// sinh(x) overflows for x > +// 710.47586007394386342639336362481117248535156250 = MAXLOG+log(2) +// +/******************************************************************************/ + +#include +# -- Begin sinh +ENTRY(sinh) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_sinh.1: + pushq %rsi +..___tag_value_sinh.3: +..B1.2: + movsd HALFMASK(%rip), %xmm3 + xorpd %xmm4, %xmm4 + movsd L2E(%rip), %xmm1 + movsd 8+L2E(%rip), %xmm2 + movl $32768, %eax + pinsrw $3, %eax, %xmm4 + movsd Shifter(%rip), %xmm6 + pextrw $3, %xmm0, %ecx + andpd %xmm0, %xmm3 + andnpd %xmm0, %xmm4 + pshufd $68, %xmm4, %xmm5 + movl $32768, %edx + andl %ecx, %edx + andl $32767, %ecx + subl $16343, %ecx + cmpl $177, %ecx + jae .L_2TAG_PACKET_0.0.2 + subsd %xmm3, %xmm4 + mulsd %xmm1, %xmm3 + mulsd %xmm5, %xmm2 + cvtsd2si %xmm3, %eax + shll $3, %edx + orl %edx, %eax + movq %xmm3, %xmm7 + addsd %xmm6, %xmm3 + mulsd %xmm4, %xmm1 + xorpd %xmm5, %xmm5 + subsd %xmm6, %xmm3 + movapd cv(%rip), %xmm4 + addsd %xmm1, %xmm2 + movapd 16+cv(%rip), %xmm6 + subsd %xmm3, %xmm7 + movl $32704, %edx + pinsrw $3, %edx, %xmm5 + movapd 32+cv(%rip), %xmm1 + addsd %xmm7, %xmm2 + movl $127, %edx + andl %eax, %edx + addl %edx, %edx + shrl $3, %eax + andl $65520, %eax + addl $16352, %eax + xorpd %xmm0, %xmm0 + cmpl $161, %ecx + jae .L_2TAG_PACKET_1.0.2 + pshufd $68, %xmm5, %xmm5 + pinsrw $3, %eax, %xmm0 + pshufd $68, %xmm0, %xmm0 + psubw %xmm0, %xmm5 + lea T2f(%rip), %r8 + mulpd (%r8,%rdx,8), %xmm0 + lea T2_neg_f(%rip), %r8 + mulpd (%r8,%rdx,8), %xmm5 + pshufd $68, %xmm2, %xmm3 + movapd 48+cv(%rip), %xmm7 + pshufd $68, %xmm2, %xmm2 + mulpd %xmm3, %xmm3 + mulpd %xmm2, %xmm4 + mulpd %xmm2, %xmm6 + mulpd 64+cv(%rip), %xmm2 + mulpd %xmm3, %xmm1 + mulpd %xmm3, %xmm7 + mulpd %xmm3, %xmm4 + mulpd %xmm3, %xmm1 + addpd %xmm7, %xmm6 + movq %xmm0, %xmm7 + addpd %xmm1, %xmm4 + shufpd $0, %xmm5, %xmm7 + subpd %xmm5, %xmm0 + mulpd %xmm7, %xmm2 + addpd %xmm6, %xmm4 + subsd %xmm0, %xmm7 + mulpd %xmm2, %xmm4 + pshufd $238, %xmm0, %xmm6 + subsd %xmm5, %xmm7 + addpd %xmm2, %xmm4 + addsd %xmm6, %xmm7 + pshufd $238, %xmm4, %xmm2 + addsd %xmm7, %xmm2 + addsd %xmm4, %xmm2 + addsd %xmm2, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_1.0.2: + subl $16352, %eax + movl %eax, %ecx + andl $32752, %eax + shrl $1, %eax + andl $65520, %eax + subl %eax, %ecx + addl $16352, %eax + pinsrw $3, %eax, %xmm0 + pshufd $68, %xmm0, %xmm0 + lea T2f(%rip), %r8 + mulpd (%r8,%rdx,8), %xmm0 + pshufd $68, %xmm2, %xmm3 + movsd 48+cv(%rip), %xmm7 + mulsd %xmm3, %xmm3 + mulsd %xmm2, %xmm4 + mulsd %xmm2, %xmm6 + mulsd 64+cv(%rip), %xmm2 + mulsd %xmm3, %xmm1 + mulsd %xmm3, %xmm7 + mulsd %xmm3, %xmm4 + addl $16368, %ecx + pinsrw $3, %ecx, %xmm5 + mulsd %xmm3, %xmm1 + addsd %xmm7, %xmm6 + addsd %xmm1, %xmm4 + mulsd %xmm0, %xmm2 + addsd %xmm6, %xmm4 + mulsd %xmm2, %xmm4 + pshufd $238, %xmm0, %xmm6 + addsd %xmm6, %xmm4 + addsd %xmm4, %xmm2 + addsd %xmm2, %xmm0 + mulsd %xmm5, %xmm0 + pextrw $3, %xmm0, %eax + andl $32752, %eax + movl $127, %edx + cmpl $32752, %eax + je .L_2TAG_PACKET_2.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: + addl $16343, %ecx + cmpl $16343, %ecx + ja .L_2TAG_PACKET_3.0.2 + cmpl $15856, %ecx + jb .L_2TAG_PACKET_4.0.2 + movapd pv(%rip), %xmm1 + pshufd $68, %xmm0, %xmm6 + mulpd %xmm5, %xmm5 + movapd 16+pv(%rip), %xmm2 + pshufd $68, %xmm0, %xmm7 + movapd 32+pv(%rip), %xmm3 + pshufd $68, %xmm0, %xmm4 + andpd MASK3(%rip), %xmm6 + mulpd %xmm5, %xmm1 + mulsd %xmm5, %xmm2 + subpd %xmm6, %xmm4 + mulpd %xmm5, %xmm7 + addpd %xmm3, %xmm1 + pshufd $68, %xmm6, %xmm3 + mulpd %xmm5, %xmm5 + mulsd %xmm7, %xmm2 + mulpd %xmm7, %xmm1 + pshufd $68, %xmm0, %xmm7 + mulsd %xmm6, %xmm6 + addsd %xmm7, %xmm7 + mulsd %xmm4, %xmm4 + mulpd %xmm5, %xmm1 + addsd %xmm0, %xmm7 + mulsd %xmm3, %xmm6 + mulsd %xmm3, %xmm7 + pshufd $238, %xmm1, %xmm3 + mulsd %xmm5, %xmm1 + pshufd $238, %xmm4, %xmm5 + addsd %xmm2, %xmm3 + pshufd $238, %xmm2, %xmm2 + addsd %xmm4, %xmm7 + movq %xmm0, %xmm4 + mulsd %xmm2, %xmm6 + mulsd %xmm5, %xmm7 + addsd %xmm6, %xmm0 + mulsd %xmm2, %xmm7 + subsd %xmm0, %xmm4 + addsd %xmm7, %xmm1 + addsd %xmm4, %xmm6 + addsd %xmm3, %xmm1 + addsd %xmm6, %xmm1 + addsd %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_4.0.2: + cmpl $16, %ecx + jae .L_2TAG_PACKET_5.0.2 + movq %xmm0, %xmm1 + mulsd %xmm1, %xmm1 + jmp ..B1.5 +.L_2TAG_PACKET_5.0.2: + xorpd %xmm2, %xmm2 + movl $17392, %ecx + pinsrw $3, %ecx, %xmm2 + xorpd %xmm3, %xmm3 + movl $15344, %edx + pinsrw $3, %edx, %xmm3 + mulsd %xmm0, %xmm2 + addsd %xmm2, %xmm0 + mulsd %xmm3, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_3.0.2: + cmpl $32752, %ecx + jae .L_2TAG_PACKET_6.0.2 + xorpd %xmm0, %xmm0 + movl $32736, %eax + pinsrw $3, %eax, %xmm0 + orl %edx, %eax + pinsrw $3, %eax, %xmm1 + mulsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_2.0.2 +.L_2TAG_PACKET_6.0.2: + xorpd %xmm1, %xmm1 + movl $32768, %eax + pinsrw $3, %eax, %xmm1 + andnpd %xmm0, %xmm1 + mulsd %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_2.0.2: + movq %xmm0, (%rsp) +..B1.3: + movq (%rsp), %xmm0 +.L_2TAG_PACKET_7.0.2: +..B1.5: + popq %rcx +..___tag_value_sinh.4: + ret +..___tag_value_sinh.5: +END(sinh) +# -- End sinh + .section .rodata, "a" + .align 16 + .align 16 +L2E: + .long 1610612736 + .long 1080497479 + .long 4166901572 + .long 1053077003 + .type L2E,@object + .size L2E,16 + .align 16 +Shifter: + .long 0 + .long 1127743488 + .long 0 + .long 3275227136 + .type Shifter,@object + .size Shifter,16 + .align 16 +cv: + .long 3607404736 + .long 1044146952 + .long 3607404736 + .long 3191630600 + .long 4277811695 + .long 1063661122 + .long 4277811695 + .long 3211144770 + .long 2140175755 + .long 1033864261 + .long 2140175755 + .long 1033864261 + .long 4289495988 + .long 1054113747 + .long 4289495988 + .long 1054113747 + .long 4277811695 + .long 1064709698 + .long 4277811695 + .long 1064709698 + .type cv,@object + .size cv,80 + .align 16 +T2f: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 2851812149 + .long 1072698941 + .long 2595802551 + .long 1016815913 + .long 1048019041 + .long 1072704666 + .long 1398474845 + .long 3161559171 + .long 3899555717 + .long 1072710421 + .long 427280750 + .long 3163595548 + .long 3541402996 + .long 1072716208 + .long 2759177317 + .long 1015903202 + .long 702412510 + .long 1072722027 + .long 3803266087 + .long 3163328991 + .long 410360776 + .long 1072727877 + .long 1269990655 + .long 1013024446 + .long 3402036099 + .long 1072733758 + .long 405889334 + .long 1016154232 + .long 1828292879 + .long 1072739672 + .long 1255956747 + .long 1016636974 + .long 728909815 + .long 1072745618 + .long 383930225 + .long 1016078044 + .long 852742562 + .long 1072751596 + .long 667253586 + .long 1010842135 + .long 2952712987 + .long 1072757606 + .long 3293494651 + .long 3161168877 + .long 3490863953 + .long 1072763649 + .long 960797498 + .long 3163997456 + .long 3228316108 + .long 1072769725 + .long 3010241991 + .long 3159471380 + .long 2930322912 + .long 1072775834 + .long 2599499422 + .long 3163762623 + .long 3366293073 + .long 1072781976 + .long 3119426314 + .long 1015169130 + .long 1014845819 + .long 1072788152 + .long 3117910646 + .long 3162607681 + .long 948735466 + .long 1072794361 + .long 3516338028 + .long 3163623459 + .long 3949972341 + .long 1072800603 + .long 2068408548 + .long 1015962444 + .long 2214878420 + .long 1072806880 + .long 892270087 + .long 3164164998 + .long 828946858 + .long 1072813191 + .long 10642492 + .long 1016988014 + .long 586995997 + .long 1072819536 + .long 41662348 + .long 3163676568 + .long 2288159958 + .long 1072825915 + .long 2169144469 + .long 1015924597 + .long 2440944790 + .long 1072832329 + .long 2492769774 + .long 1015196030 + .long 1853186616 + .long 1072838778 + .long 3066496371 + .long 1016705150 + .long 1337108031 + .long 1072845262 + .long 3203724452 + .long 1015726421 + .long 1709341917 + .long 1072851781 + .long 2571168217 + .long 1015201075 + .long 3790955393 + .long 1072858335 + .long 2352942462 + .long 3164228666 + .long 4112506593 + .long 1072864925 + .long 2947355221 + .long 1015419624 + .long 3504003472 + .long 1072871551 + .long 3594001060 + .long 3158379228 + .long 2799960843 + .long 1072878213 + .long 1423655381 + .long 1016070727 + .long 2839424854 + .long 1072884911 + .long 1171596163 + .long 1014090255 + .long 171030293 + .long 1072891646 + .long 3526460132 + .long 1015477354 + .long 4232894513 + .long 1072898416 + .long 2383938684 + .long 1015717095 + .long 2992903935 + .long 1072905224 + .long 2218154406 + .long 1016276769 + .long 1603444721 + .long 1072912069 + .long 1548633640 + .long 3163249902 + .long 926591435 + .long 1072918951 + .long 3208833762 + .long 3163962090 + .long 1829099622 + .long 1072925870 + .long 1016661181 + .long 3164509581 + .long 887463927 + .long 1072932827 + .long 3596744163 + .long 3161842742 + .long 3272845541 + .long 1072939821 + .long 928852419 + .long 3164536824 + .long 1276261410 + .long 1072946854 + .long 300981948 + .long 1015732745 + .long 78413852 + .long 1072953925 + .long 4183226867 + .long 3164065827 + .long 569847338 + .long 1072961034 + .long 472945272 + .long 3160339305 + .long 3645941911 + .long 1072968181 + .long 3814685081 + .long 3162621917 + .long 1617004845 + .long 1072975368 + .long 82804944 + .long 1011391354 + .long 3978100823 + .long 1072982593 + .long 3513027190 + .long 1016894539 + .long 3049340112 + .long 1072989858 + .long 3062915824 + .long 1014219171 + .long 4040676318 + .long 1072997162 + .long 4090609238 + .long 1016712034 + .long 3577096743 + .long 1073004506 + .long 2951496418 + .long 1014842263 + .long 2583551245 + .long 1073011890 + .long 3161094195 + .long 1016655067 + .long 1990012071 + .long 1073019314 + .long 3529070563 + .long 3163861769 + .long 2731501122 + .long 1073026778 + .long 1774031855 + .long 3163518597 + .long 1453150082 + .long 1073034283 + .long 498154669 + .long 3162536638 + .long 3395129871 + .long 1073041828 + .long 4025345435 + .long 3163383964 + .long 917841882 + .long 1073049415 + .long 18715565 + .long 1016707884 + .long 3566716925 + .long 1073057042 + .long 1536826856 + .long 1015191009 + .long 3712504873 + .long 1073064711 + .long 88491949 + .long 1016476236 + .long 2321106615 + .long 1073072422 + .long 2171176610 + .long 1010584347 + .long 363667784 + .long 1073080175 + .long 813753950 + .long 1016833785 + .long 3111574537 + .long 1073087969 + .long 2606161479 + .long 3163808322 + .long 2956612997 + .long 1073095806 + .long 2118169751 + .long 3163784129 + .long 885834528 + .long 1073103686 + .long 1973258547 + .long 3163310140 + .long 2186617381 + .long 1073111608 + .long 2270764084 + .long 3164321289 + .long 3561793907 + .long 1073119573 + .long 1157054053 + .long 1012938926 + .long 1719614413 + .long 1073127582 + .long 330458198 + .long 3164331316 + .long 1963711167 + .long 1073135634 + .long 1744767757 + .long 3161622870 + .long 1013258799 + .long 1073143730 + .long 1748797611 + .long 3161177658 + .long 4182873220 + .long 1073151869 + .long 629542646 + .long 3163044879 + .long 3907805044 + .long 1073160053 + .long 2257091225 + .long 3162598983 + .long 1218806132 + .long 1073168282 + .long 1818613052 + .long 3163597017 + .long 1447192521 + .long 1073176555 + .long 1462857171 + .long 3163563097 + .long 1339972927 + .long 1073184873 + .long 167908909 + .long 1016620728 + .long 1944781191 + .long 1073193236 + .long 3993278767 + .long 3162772855 + .long 19972402 + .long 1073201645 + .long 3507899862 + .long 1017057868 + .long 919555682 + .long 1073210099 + .long 3121969534 + .long 1013996802 + .long 1413356050 + .long 1073218599 + .long 1651349291 + .long 3163716742 + .long 2571947539 + .long 1073227145 + .long 3558159064 + .long 3164425245 + .long 1176749997 + .long 1073235738 + .long 2738998779 + .long 3163084420 + .long 2604962541 + .long 1073244377 + .long 2614425274 + .long 3164587768 + .long 3649726105 + .long 1073253063 + .long 4085036346 + .long 1016698050 + .long 1110089947 + .long 1073261797 + .long 1451641639 + .long 1016523249 + .long 380978316 + .long 1073270578 + .long 854188970 + .long 3161511262 + .long 2568320822 + .long 1073279406 + .long 2732824428 + .long 1015401491 + .long 194117574 + .long 1073288283 + .long 777528612 + .long 3164460665 + .long 2966275557 + .long 1073297207 + .long 2176155324 + .long 3160891335 + .long 3418903055 + .long 1073306180 + .long 2527457337 + .long 3161869180 + .long 2682146384 + .long 1073315202 + .long 2082178513 + .long 3164411995 + .long 1892288442 + .long 1073324273 + .long 2446255666 + .long 3163648957 + .long 2191782032 + .long 1073333393 + .long 2960257726 + .long 1014791238 + .long 434316067 + .long 1073342563 + .long 2028358766 + .long 1014506698 + .long 2069751141 + .long 1073351782 + .long 1562170675 + .long 3163773257 + .long 3964284211 + .long 1073361051 + .long 2111583915 + .long 1016475740 + .long 2990417245 + .long 1073370371 + .long 3683467745 + .long 3164417902 + .long 321958744 + .long 1073379742 + .long 3401933767 + .long 1016843134 + .long 1434058175 + .long 1073389163 + .long 251133233 + .long 1016134345 + .long 3218338682 + .long 1073398635 + .long 3404164304 + .long 3163525684 + .long 2572866477 + .long 1073408159 + .long 878562433 + .long 1016570317 + .long 697153126 + .long 1073417735 + .long 1283515429 + .long 3164331765 + .long 3092190715 + .long 1073427362 + .long 814012168 + .long 3160571998 + .long 2380618042 + .long 1073437042 + .long 3149557219 + .long 3164369375 + .long 4076559943 + .long 1073446774 + .long 2119478331 + .long 3161806927 + .long 815859274 + .long 1073456560 + .long 240396590 + .long 3164536019 + .long 2420883922 + .long 1073466398 + .long 2049810052 + .long 1015168464 + .long 1540824585 + .long 1073476290 + .long 1064017011 + .long 3164536266 + .long 3716502172 + .long 1073486235 + .long 2303740125 + .long 1015091301 + .long 1610600570 + .long 1073496235 + .long 3766732298 + .long 1016808759 + .long 777507147 + .long 1073506289 + .long 4282924205 + .long 1016236109 + .long 2483480501 + .long 1073516397 + .long 1216371780 + .long 1014082748 + .long 3706687593 + .long 1073526560 + .long 3521726940 + .long 1014301643 + .long 1432208378 + .long 1073536779 + .long 1401068914 + .long 3163412539 + .long 1242007932 + .long 1073547053 + .long 1132034716 + .long 3164388407 + .long 135105010 + .long 1073557383 + .long 1906148728 + .long 3164424315 + .long 3707479175 + .long 1073567768 + .long 3613079303 + .long 1015213314 + .long 382305176 + .long 1073578211 + .long 2347622376 + .long 3163627201 + .long 64696965 + .long 1073588710 + .long 1768797490 + .long 1016865536 + .long 4076975200 + .long 1073599265 + .long 2029000899 + .long 1016257111 + .long 863738719 + .long 1073609879 + .long 1326992220 + .long 3163661773 + .long 351641897 + .long 1073620550 + .long 2172261526 + .long 3164059175 + .long 3884662774 + .long 1073631278 + .long 2158611599 + .long 1015258761 + .long 4224142467 + .long 1073642065 + .long 3389820386 + .long 1016255778 + .long 2728693978 + .long 1073652911 + .long 396109971 + .long 3164511267 + .long 764307441 + .long 1073663816 + .long 3021057420 + .long 3164378099 + .long 3999357479 + .long 1073674779 + .long 2258941616 + .long 1016973300 + .long 929806999 + .long 1073685803 + .long 3205336643 + .long 1016308133 + .long 1533953344 + .long 1073696886 + .long 769171851 + .long 1016714209 + .long 2912730644 + .long 1073708029 + .long 3490067722 + .long 3164453650 + .long 2174652632 + .long 1073719233 + .long 4087714590 + .long 1015498835 + .long 730821105 + .long 1073730498 + .long 2523232743 + .long 1013115764 + .type T2f,@object + .size T2f,2048 + .align 16 +T2_neg_f: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 730821105 + .long 1072681922 + .long 2523232743 + .long 1012067188 + .long 2174652632 + .long 1072670657 + .long 4087714590 + .long 1014450259 + .long 2912730644 + .long 1072659453 + .long 3490067722 + .long 3163405074 + .long 1533953344 + .long 1072648310 + .long 769171851 + .long 1015665633 + .long 929806999 + .long 1072637227 + .long 3205336643 + .long 1015259557 + .long 3999357479 + .long 1072626203 + .long 2258941616 + .long 1015924724 + .long 764307441 + .long 1072615240 + .long 3021057420 + .long 3163329523 + .long 2728693978 + .long 1072604335 + .long 396109971 + .long 3163462691 + .long 4224142467 + .long 1072593489 + .long 3389820386 + .long 1015207202 + .long 3884662774 + .long 1072582702 + .long 2158611599 + .long 1014210185 + .long 351641897 + .long 1072571974 + .long 2172261526 + .long 3163010599 + .long 863738719 + .long 1072561303 + .long 1326992220 + .long 3162613197 + .long 4076975200 + .long 1072550689 + .long 2029000899 + .long 1015208535 + .long 64696965 + .long 1072540134 + .long 1768797490 + .long 1015816960 + .long 382305176 + .long 1072529635 + .long 2347622376 + .long 3162578625 + .long 3707479175 + .long 1072519192 + .long 3613079303 + .long 1014164738 + .long 135105010 + .long 1072508807 + .long 1906148728 + .long 3163375739 + .long 1242007932 + .long 1072498477 + .long 1132034716 + .long 3163339831 + .long 1432208378 + .long 1072488203 + .long 1401068914 + .long 3162363963 + .long 3706687593 + .long 1072477984 + .long 3521726940 + .long 1013253067 + .long 2483480501 + .long 1072467821 + .long 1216371780 + .long 1013034172 + .long 777507147 + .long 1072457713 + .long 4282924205 + .long 1015187533 + .long 1610600570 + .long 1072447659 + .long 3766732298 + .long 1015760183 + .long 3716502172 + .long 1072437659 + .long 2303740125 + .long 1014042725 + .long 1540824585 + .long 1072427714 + .long 1064017011 + .long 3163487690 + .long 2420883922 + .long 1072417822 + .long 2049810052 + .long 1014119888 + .long 815859274 + .long 1072407984 + .long 240396590 + .long 3163487443 + .long 4076559943 + .long 1072398198 + .long 2119478331 + .long 3160758351 + .long 2380618042 + .long 1072388466 + .long 3149557219 + .long 3163320799 + .long 3092190715 + .long 1072378786 + .long 814012168 + .long 3159523422 + .long 697153126 + .long 1072369159 + .long 1283515429 + .long 3163283189 + .long 2572866477 + .long 1072359583 + .long 878562433 + .long 1015521741 + .long 3218338682 + .long 1072350059 + .long 3404164304 + .long 3162477108 + .long 1434058175 + .long 1072340587 + .long 251133233 + .long 1015085769 + .long 321958744 + .long 1072331166 + .long 3401933767 + .long 1015794558 + .long 2990417245 + .long 1072321795 + .long 3683467745 + .long 3163369326 + .long 3964284211 + .long 1072312475 + .long 2111583915 + .long 1015427164 + .long 2069751141 + .long 1072303206 + .long 1562170675 + .long 3162724681 + .long 434316067 + .long 1072293987 + .long 2028358766 + .long 1013458122 + .long 2191782032 + .long 1072284817 + .long 2960257726 + .long 1013742662 + .long 1892288442 + .long 1072275697 + .long 2446255666 + .long 3162600381 + .long 2682146384 + .long 1072266626 + .long 2082178513 + .long 3163363419 + .long 3418903055 + .long 1072257604 + .long 2527457337 + .long 3160820604 + .long 2966275557 + .long 1072248631 + .long 2176155324 + .long 3159842759 + .long 194117574 + .long 1072239707 + .long 777528612 + .long 3163412089 + .long 2568320822 + .long 1072230830 + .long 2732824428 + .long 1014352915 + .long 380978316 + .long 1072222002 + .long 854188970 + .long 3160462686 + .long 1110089947 + .long 1072213221 + .long 1451641639 + .long 1015474673 + .long 3649726105 + .long 1072204487 + .long 4085036346 + .long 1015649474 + .long 2604962541 + .long 1072195801 + .long 2614425274 + .long 3163539192 + .long 1176749997 + .long 1072187162 + .long 2738998779 + .long 3162035844 + .long 2571947539 + .long 1072178569 + .long 3558159064 + .long 3163376669 + .long 1413356050 + .long 1072170023 + .long 1651349291 + .long 3162668166 + .long 919555682 + .long 1072161523 + .long 3121969534 + .long 1012948226 + .long 19972402 + .long 1072153069 + .long 3507899862 + .long 1016009292 + .long 1944781191 + .long 1072144660 + .long 3993278767 + .long 3161724279 + .long 1339972927 + .long 1072136297 + .long 167908909 + .long 1015572152 + .long 1447192521 + .long 1072127979 + .long 1462857171 + .long 3162514521 + .long 1218806132 + .long 1072119706 + .long 1818613052 + .long 3162548441 + .long 3907805044 + .long 1072111477 + .long 2257091225 + .long 3161550407 + .long 4182873220 + .long 1072103293 + .long 629542646 + .long 3161996303 + .long 1013258799 + .long 1072095154 + .long 1748797611 + .long 3160129082 + .long 1963711167 + .long 1072087058 + .long 1744767757 + .long 3160574294 + .long 1719614413 + .long 1072079006 + .long 330458198 + .long 3163282740 + .long 3561793907 + .long 1072070997 + .long 1157054053 + .long 1011890350 + .long 2186617381 + .long 1072063032 + .long 2270764084 + .long 3163272713 + .long 885834528 + .long 1072055110 + .long 1973258547 + .long 3162261564 + .long 2956612997 + .long 1072047230 + .long 2118169751 + .long 3162735553 + .long 3111574537 + .long 1072039393 + .long 2606161479 + .long 3162759746 + .long 363667784 + .long 1072031599 + .long 813753950 + .long 1015785209 + .long 2321106615 + .long 1072023846 + .long 2171176610 + .long 1009535771 + .long 3712504873 + .long 1072016135 + .long 88491949 + .long 1015427660 + .long 3566716925 + .long 1072008466 + .long 1536826856 + .long 1014142433 + .long 917841882 + .long 1072000839 + .long 18715565 + .long 1015659308 + .long 3395129871 + .long 1071993252 + .long 4025345435 + .long 3162335388 + .long 1453150082 + .long 1071985707 + .long 498154669 + .long 3161488062 + .long 2731501122 + .long 1071978202 + .long 1774031855 + .long 3162470021 + .long 1990012071 + .long 1071970738 + .long 3529070563 + .long 3162813193 + .long 2583551245 + .long 1071963314 + .long 3161094195 + .long 1015606491 + .long 3577096743 + .long 1071955930 + .long 2951496418 + .long 1013793687 + .long 4040676318 + .long 1071948586 + .long 4090609238 + .long 1015663458 + .long 3049340112 + .long 1071941282 + .long 3062915824 + .long 1013170595 + .long 3978100823 + .long 1071934017 + .long 3513027190 + .long 1015845963 + .long 1617004845 + .long 1071926792 + .long 82804944 + .long 1010342778 + .long 3645941911 + .long 1071919605 + .long 3814685081 + .long 3161573341 + .long 569847338 + .long 1071912458 + .long 472945272 + .long 3159290729 + .long 78413852 + .long 1071905349 + .long 4183226867 + .long 3163017251 + .long 1276261410 + .long 1071898278 + .long 300981948 + .long 1014684169 + .long 3272845541 + .long 1071891245 + .long 928852419 + .long 3163488248 + .long 887463927 + .long 1071884251 + .long 3596744163 + .long 3160794166 + .long 1829099622 + .long 1071877294 + .long 1016661181 + .long 3163461005 + .long 926591435 + .long 1071870375 + .long 3208833762 + .long 3162913514 + .long 1603444721 + .long 1071863493 + .long 1548633640 + .long 3162201326 + .long 2992903935 + .long 1071856648 + .long 2218154406 + .long 1015228193 + .long 4232894513 + .long 1071849840 + .long 2383938684 + .long 1014668519 + .long 171030293 + .long 1071843070 + .long 3526460132 + .long 1014428778 + .long 2839424854 + .long 1071836335 + .long 1171596163 + .long 1013041679 + .long 2799960843 + .long 1071829637 + .long 1423655381 + .long 1015022151 + .long 3504003472 + .long 1071822975 + .long 3594001060 + .long 3157330652 + .long 4112506593 + .long 1071816349 + .long 2947355221 + .long 1014371048 + .long 3790955393 + .long 1071809759 + .long 2352942462 + .long 3163180090 + .long 1709341917 + .long 1071803205 + .long 2571168217 + .long 1014152499 + .long 1337108031 + .long 1071796686 + .long 3203724452 + .long 1014677845 + .long 1853186616 + .long 1071790202 + .long 3066496371 + .long 1015656574 + .long 2440944790 + .long 1071783753 + .long 2492769774 + .long 1014147454 + .long 2288159958 + .long 1071777339 + .long 2169144469 + .long 1014876021 + .long 586995997 + .long 1071770960 + .long 41662348 + .long 3162627992 + .long 828946858 + .long 1071764615 + .long 10642492 + .long 1015939438 + .long 2214878420 + .long 1071758304 + .long 892270087 + .long 3163116422 + .long 3949972341 + .long 1071752027 + .long 2068408548 + .long 1014913868 + .long 948735466 + .long 1071745785 + .long 3516338028 + .long 3162574883 + .long 1014845819 + .long 1071739576 + .long 3117910646 + .long 3161559105 + .long 3366293073 + .long 1071733400 + .long 3119426314 + .long 1014120554 + .long 2930322912 + .long 1071727258 + .long 2599499422 + .long 3162714047 + .long 3228316108 + .long 1071721149 + .long 3010241991 + .long 3158422804 + .long 3490863953 + .long 1071715073 + .long 960797498 + .long 3162948880 + .long 2952712987 + .long 1071709030 + .long 3293494651 + .long 3160120301 + .long 852742562 + .long 1071703020 + .long 667253586 + .long 1009793559 + .long 728909815 + .long 1071697042 + .long 383930225 + .long 1015029468 + .long 1828292879 + .long 1071691096 + .long 1255956747 + .long 1015588398 + .long 3402036099 + .long 1071685182 + .long 405889334 + .long 1015105656 + .long 410360776 + .long 1071679301 + .long 1269990655 + .long 1011975870 + .long 702412510 + .long 1071673451 + .long 3803266087 + .long 3162280415 + .long 3541402996 + .long 1071667632 + .long 2759177317 + .long 1014854626 + .long 3899555717 + .long 1071661845 + .long 427280750 + .long 3162546972 + .long 1048019041 + .long 1071656090 + .long 1398474845 + .long 3160510595 + .long 2851812149 + .long 1071650365 + .long 2595802551 + .long 1015767337 + .type T2_neg_f,@object + .size T2_neg_f,2048 + .align 16 +pv: + .long 329805064 + .long 1038488134 + .long 2773927730 + .long 1053236707 + .long 286331153 + .long 1065423121 + .long 1431655765 + .long 1069897045 + .long 1744127201 + .long 1046144581 + .long 436314137 + .long 1059717536 + .type pv,@object + .size pv,48 + .align 16 +MASK3: + .long 0 + .long 4294967280 + .long 0 + .long 4294967280 + .type MASK3,@object + .size MASK3,16 + .align 8 +HALFMASK: + .long 4160749568 + .long 2147483647 + .type HALFMASK,@object + .size HALFMASK,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_sinh.1-. + .4byte ..___tag_value_sinh.5-..___tag_value_sinh.1 + .2byte 0x0400 + .4byte ..___tag_value_sinh.3-..___tag_value_sinh.1 + .2byte 0x100e + .byte 0x04 + .4byte ..___tag_value_sinh.4-..___tag_value_sinh.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/floor.S b/libm/x86_64/floor.S new file mode 100644 index 000000000..dc80e88b7 --- /dev/null +++ b/libm/x86_64/floor.S @@ -0,0 +1,36 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(floor) +roundsd $0x1,%xmm0,%xmm0 +retq +END(floor) diff --git a/libm/x86_64/floorf.S b/libm/x86_64/floorf.S new file mode 100644 index 000000000..832f9c5fc --- /dev/null +++ b/libm/x86_64/floorf.S @@ -0,0 +1,36 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(floorf) +roundss $0x1,%xmm0,%xmm0 +retq +END(floorf) diff --git a/libm/x86_64/s_atan.S b/libm/x86_64/s_atan.S new file mode 100644 index 000000000..2453e1002 --- /dev/null +++ b/libm/x86_64/s_atan.S @@ -0,0 +1,927 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// This implementation uses the main path for |x| in [2^{-5},2^65). +// For |x| in [2^{-64},2^{-5}), a secondary path is used. +// For the biased exponent of X within 3FFH-64 and 3FF+64, we use one branch. +// We use the following definition of B and X` so that the formula +// atan(X) = Tau + atan( (X`-B) / (One + BX) ) is correct +// +// X = (-1)^s * 2^k * 1. x1 x2 ... x52 +// +// Define X` = 0 if k >= 5; and X` = |X| otherwise +// Define One = 0 if k >= 5; and One = 1 otherwise +// Define B = 0 if k <= -6; B = 2^k * 1.x1 x2 x3 x4 1 if -5 <= k <= 4 +// Define B = 2^5 * 1.0 0 ... 0 if k >= 5 +// +// Tau is 0 if k <= -6; +// Tau is atan( B ) if -5 <= k <= 4 +// Tau is pi/2 if k >= 5 +// +// Special cases: +// atan(NaN) = quiet NaN +// atan(+/-INF) = +/-Pi/2 +// atan(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin atan +ENTRY(atan) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_atan.1: + pushq %rsi +..___tag_value_atan.3: + movsd %xmm0, (%rsp) +..B1.2: + movq $0xffff000000000000, %r8 + movd %r8, %xmm3 + movq ONEMASK(%rip), %xmm5 + movq $0x800000000000, %r9 + movd %r9, %xmm4 + pextrw $3, %xmm0, %edx + andpd %xmm0, %xmm3 + pshufd $68, %xmm0, %xmm1 + orpd %xmm4, %xmm3 + movl %edx, %eax + andl $32767, %edx + subl $16288, %edx + cmpl $159, %edx + ja .L_2TAG_PACKET_0.0.1 + mulsd %xmm3, %xmm1 + subsd %xmm3, %xmm0 + addsd %xmm5, %xmm1 + divsd %xmm1, %xmm0 + addl $1, %edx + movq a2(%rip), %xmm2 + movq b2(%rip), %xmm4 + andl $32768, %eax + xorpd %xmm7, %xmm7 + pinsrw $3, %eax, %xmm7 + addl %edx, %edx + lea atan_tbl(%rip), %r8 + movq (%r8,%rdx,8), %xmm6 + movq 8(%r8,%rdx,8), %xmm5 + xorpd %xmm7, %xmm5 + xorpd %xmm7, %xmm6 + movq 8+a2(%rip), %xmm7 + movddup %xmm0, %xmm1 + mulsd %xmm0, %xmm0 + movddup %xmm1, %xmm3 + addsd %xmm6, %xmm1 + mulsd %xmm0, %xmm2 + addsd %xmm0, %xmm4 + subsd %xmm1, %xmm6 + mulsd %xmm0, %xmm4 + addsd %xmm7, %xmm2 + mulsd %xmm3, %xmm0 + addsd %xmm3, %xmm6 + mulsd %xmm2, %xmm0 + addsd 8+b2(%rip), %xmm4 + addsd %xmm5, %xmm6 + mulsd %xmm4, %xmm0 + addsd %xmm6, %xmm0 + addsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_1.0.1 +.L_2TAG_PACKET_0.0.1: + addl $944, %edx + cmpl $1103, %edx + ja .L_2TAG_PACKET_2.0.1 + movq a2(%rip), %xmm4 + movq b2(%rip), %xmm7 + movq (%rsp), %xmm0 + mulsd %xmm1, %xmm1 + movq 8+a2(%rip), %xmm2 + movq 8+b2(%rip), %xmm5 + mulsd %xmm1, %xmm4 + addsd %xmm1, %xmm7 + movq %xmm1, %xmm6 + mulsd %xmm0, %xmm1 + addsd %xmm4, %xmm2 + mulsd %xmm6, %xmm7 + mulsd %xmm1, %xmm2 + addsd %xmm5, %xmm7 + mulsd %xmm7, %xmm2 + addsd %xmm2, %xmm0 + jmp .L_2TAG_PACKET_1.0.1 +.L_2TAG_PACKET_2.0.1: + addl $15344, %edx + cmpl $16368, %edx + ja .L_2TAG_PACKET_3.0.1 + movq (%rsp), %xmm0 + movq (%rsp), %xmm1 + cmpl $16, %edx + jae .L_2TAG_PACKET_1.0.1 + mulsd %xmm0, %xmm1 + jmp .L_2TAG_PACKET_1.0.1 +.L_2TAG_PACKET_3.0.1: + cmpl $17392, %edx + jae .L_2TAG_PACKET_4.0.1 + movq $0xbff0000000000000, %r8 + movd %r8, %xmm1 + divsd %xmm0, %xmm1 + movq a2(%rip), %xmm2 + movq b2(%rip), %xmm4 + andl $32768, %eax + xorpd %xmm7, %xmm7 + pinsrw $3, %eax, %xmm7 + addl %edx, %edx + movq pi_table(%rip), %xmm6 + movq 8+pi_table(%rip), %xmm5 + xorpd %xmm7, %xmm5 + xorpd %xmm7, %xmm6 + movq 8+a2(%rip), %xmm7 + movddup %xmm1, %xmm0 + mulsd %xmm1, %xmm1 + movddup %xmm0, %xmm3 + addsd %xmm6, %xmm0 + mulsd %xmm1, %xmm2 + addsd %xmm1, %xmm4 + subsd %xmm0, %xmm6 + mulsd %xmm1, %xmm4 + addsd %xmm7, %xmm2 + mulsd %xmm3, %xmm1 + addsd %xmm3, %xmm6 + mulsd %xmm2, %xmm1 + addsd 8+b2(%rip), %xmm4 + addsd %xmm5, %xmm6 + mulsd %xmm4, %xmm1 + addsd %xmm6, %xmm1 + addsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_1.0.1 +.L_2TAG_PACKET_4.0.1: + movq (%rsp), %xmm4 + movq SGNMASK(%rip), %xmm0 + movq pi_table(%rip), %xmm2 + movq 8+pi_table(%rip), %xmm3 + movd %xmm1, %eax + psrlq $32, %xmm1 + movd %xmm1, %edx + andl $2147483647, %edx + cmpl $2146435072, %edx + jae .L_2TAG_PACKET_5.0.1 +.L_2TAG_PACKET_6.0.1: + andnpd %xmm4, %xmm0 + orpd %xmm0, %xmm2 + orpd %xmm3, %xmm0 + addsd %xmm2, %xmm0 + jmp .L_2TAG_PACKET_1.0.1 +.L_2TAG_PACKET_5.0.1: + subl $2146435072, %edx + orl %edx, %eax + cmpl $0, %eax + je .L_2TAG_PACKET_6.0.1 + movq %xmm4, %xmm0 + addsd %xmm0, %xmm0 +.L_2TAG_PACKET_1.0.1: +..B1.3: + popq %rcx +..___tag_value_atan.4: + ret +..___tag_value_atan.5: +END(atan) +# -- End atan + .section .rodata, "a" + .align 4 + .align 4 +ONEMASK: + .long 0 + .long 1072693248 + .type ONEMASK,@object + .size ONEMASK,8 + .align 4 +a2: + .long 2006262985 + .long 1069310863 + .long 2358449471 + .long 3217342131 + .type a2,@object + .size a2,16 + .align 4 +b2: + .long 3845454352 + .long 1069952297 + .long 2829679149 + .long 1073771565 + .type b2,@object + .size b2,16 + .align 4 +atan_tbl: + .long 0 + .long 0 + .long 0 + .long 0 + .long 3819695742 + .long 1067482761 + .long 2398680355 + .long 3155462074 + .long 2998791009 + .long 1067548225 + .long 3868465248 + .long 3157182472 + .long 3339424991 + .long 1067613680 + .long 3296670360 + .long 1010752543 + .long 2710002256 + .long 1067679126 + .long 3403896007 + .long 1010910768 + .long 3275701428 + .long 1067744562 + .long 119959933 + .long 1011482843 + .long 2908636881 + .long 1067809988 + .long 2464489612 + .long 1011545526 + .long 3777889398 + .long 1067875403 + .long 3262682165 + .long 1009703919 + .long 3759667419 + .long 1067940807 + .long 1838130851 + .long 3157373556 + .long 732369940 + .long 1068006200 + .long 1203428313 + .long 1010055371 + .long 1166616461 + .long 1068071580 + .long 2901274051 + .long 3158549977 + .long 2945472892 + .long 1068136947 + .long 3726120658 + .long 1009762715 + .long 3954480976 + .long 1068202301 + .long 1289173457 + .long 1009429861 + .long 2081752829 + .long 1068267642 + .long 1836909874 + .long 1006212095 + .long 3807999788 + .long 1068332968 + .long 2172459940 + .long 3156162078 + .long 2731789884 + .long 1068398280 + .long 3450718392 + .long 3159216547 + .long 1044477961 + .long 1068463577 + .long 2230553229 + .long 1011424339 + .long 1486930287 + .long 1068530218 + .long 2861547474 + .long 1012041376 + .long 2293016881 + .long 1068595466 + .long 136843272 + .long 1012684797 + .long 201518157 + .long 1068660680 + .long 63231984 + .long 1012427198 + .long 4054234584 + .long 1068725856 + .long 3927006960 + .long 1011878955 + .long 1246477213 + .long 1068790995 + .long 1494265652 + .long 3155219350 + .long 678186699 + .long 1068856093 + .long 1264361424 + .long 3159256693 + .long 2690594995 + .long 1068921148 + .long 3906996379 + .long 1009288267 + .long 3362611517 + .long 1068986159 + .long 1650970041 + .long 3158331771 + .long 3102162111 + .long 1069051124 + .long 365917035 + .long 3160264153 + .long 2352611067 + .long 1069116041 + .long 4008970190 + .long 3159478182 + .long 1594134794 + .long 1069180908 + .long 466690178 + .long 1012526501 + .long 1345079306 + .long 1069245723 + .long 2268273568 + .long 3160164092 + .long 2163300970 + .long 1069310484 + .long 2750834800 + .long 3158113482 + .long 352522716 + .long 1069375190 + .long 1750411372 + .long 1011790845 + .long 848541647 + .long 1069439838 + .long 2164207573 + .long 1011698350 + .long 40647312 + .long 1069504427 + .long 2949165434 + .long 3159107267 + .long 2216766270 + .long 1069574357 + .long 2197920765 + .long 3161055954 + .long 1090914384 + .long 1069638757 + .long 2330454674 + .long 1013365998 + .long 387601244 + .long 1069703022 + .long 3185681168 + .long 1013434071 + .long 3991640484 + .long 1069767144 + .long 1313211590 + .long 3161087959 + .long 3322489502 + .long 1069831118 + .long 3013977995 + .long 1013053011 + .long 3121698570 + .long 1069894936 + .long 4069015667 + .long 1013023362 + .long 4289964660 + .long 1069958591 + .long 1736191156 + .long 3158266731 + .long 3903312386 + .long 1070022077 + .long 1833592413 + .long 3159731471 + .long 3818449864 + .long 1070085387 + .long 851036429 + .long 3159730451 + .long 2097480306 + .long 1070148515 + .long 3506390884 + .long 3160462302 + .long 1611694502 + .long 1070211454 + .long 2785735540 + .long 3160465144 + .long 1464694796 + .long 1070274198 + .long 4229277299 + .long 3159907000 + .long 1299612775 + .long 1070336741 + .long 4116653788 + .long 3160427739 + .long 1310544789 + .long 1070399077 + .long 1064430331 + .long 1013218202 + .long 2253168030 + .long 1070461200 + .long 1405044609 + .long 3157623179 + .long 1159567373 + .long 1070523105 + .long 2353445521 + .long 3159992176 + .long 1359373750 + .long 1070605818 + .long 1748171336 + .long 3161879263 + .long 908341706 + .long 1070667034 + .long 3372710815 + .long 3161775245 + .long 1743027350 + .long 1070727765 + .long 687089934 + .long 3160507171 + .long 2055355646 + .long 1070787992 + .long 2392855242 + .long 1013682469 + .long 690426164 + .long 1070847697 + .long 1103926666 + .long 1014052810 + .long 1483247847 + .long 1070906862 + .long 2082645847 + .long 3161345479 + .long 392040270 + .long 1070965472 + .long 2407720023 + .long 1014053754 + .long 2673846014 + .long 1071023511 + .long 1293605532 + .long 3158464385 + .long 1384215810 + .long 1071080967 + .long 2446095872 + .long 3159216407 + .long 3101660631 + .long 1071137826 + .long 698040758 + .long 1014855328 + .long 2094057058 + .long 1071194078 + .long 2282048339 + .long 1014040385 + .long 1712750594 + .long 1071249712 + .long 1204372378 + .long 3162276464 + .long 1411515787 + .long 1071304719 + .long 949080808 + .long 1015006403 + .long 931538085 + .long 1071359091 + .long 3027127039 + .long 1014307233 + .long 179139065 + .long 1071412821 + .long 4285547492 + .long 3161934731 + .long 3387721259 + .long 1071465902 + .long 373225773 + .long 1013486625 + .long 2132236852 + .long 1071544299 + .long 3250533429 + .long 1014031677 + .long 1942070284 + .long 1071645596 + .long 1237964179 + .long 3163239113 + .long 1532707802 + .long 1071695380 + .long 330645583 + .long 1012495610 + .long 2294184979 + .long 1071743834 + .long 3959472897 + .long 1015833116 + .long 3805060714 + .long 1071790961 + .long 2671256142 + .long 1013727772 + .long 2215037898 + .long 1071836770 + .long 2683359117 + .long 1015831902 + .long 483661594 + .long 1071881273 + .long 836288326 + .long 3162648643 + .long 1534679894 + .long 1071924486 + .long 373258696 + .long 3162470096 + .long 1538714628 + .long 1071966430 + .long 3199433068 + .long 1015325501 + .long 527642555 + .long 1072007128 + .long 3636832592 + .long 3161843145 + .long 291339150 + .long 1072046605 + .long 890169537 + .long 3160586117 + .long 2450210201 + .long 1072084888 + .long 1636353294 + .long 3163193400 + .long 2411367951 + .long 1072122007 + .long 374899873 + .long 1011331750 + .long 681549971 + .long 1072157992 + .long 506411689 + .long 1015373954 + .long 1466745541 + .long 1072192873 + .long 2143860931 + .long 1013364334 + .long 2845622366 + .long 1072226682 + .long 2869178209 + .long 3162423682 + .long 2838871438 + .long 1072275456 + .long 3742223599 + .long 1014338577 + .long 4200275274 + .long 1072337034 + .long 1566539915 + .long 3161839550 + .long 3034733530 + .long 1072394897 + .long 652621408 + .long 3162261964 + .long 3207412993 + .long 1072449290 + .long 3206124665 + .long 1014408733 + .long 624461478 + .long 1072500450 + .long 932437485 + .long 1015204343 + .long 767665908 + .long 1072548600 + .long 1037911952 + .long 3163527627 + .long 1110773639 + .long 1072593952 + .long 2371517912 + .long 3160465741 + .long 1940828530 + .long 1072636704 + .long 2731408428 + .long 3162895795 + .long 1911329388 + .long 1072677041 + .long 1773089615 + .long 3159569267 + .long 1764715788 + .long 1072704191 + .long 691346949 + .long 3164069946 + .long 3332979233 + .long 1072722195 + .long 3550733983 + .long 1014770628 + .long 1321870254 + .long 1072739231 + .long 1415315820 + .long 1016224052 + .long 3657429030 + .long 1072755365 + .long 3910539033 + .long 1015966402 + .long 4197624557 + .long 1072770661 + .long 2333399254 + .long 3164546480 + .long 1512059493 + .long 1072785177 + .long 2701510318 + .long 1016178092 + .long 453379037 + .long 1072798965 + .long 4046344253 + .long 3162814364 + .long 1942345162 + .long 1072818388 + .long 621134147 + .long 1016335195 + .long 4210176273 + .long 1072842164 + .long 2701013387 + .long 3164326619 + .long 4185644010 + .long 1072863795 + .long 4163699341 + .long 1016203112 + .long 679688788 + .long 1072883543 + .long 4147276762 + .long 1014066750 + .long 29432865 + .long 1072901630 + .long 970415797 + .long 1016902063 + .long 4070721092 + .long 1072918247 + .long 2539004411 + .long 3163736096 + .long 2252468843 + .long 1072933561 + .long 3424082887 + .long 3163407177 + .long 2929724825 + .long 1072947712 + .long 3661482235 + .long 3163846989 + .long 1377513368 + .long 1072960824 + .long 3987926680 + .long 1013647908 + .long 1031632908 + .long 1072973003 + .long 3672217151 + .long 1016614619 + .long 2516508130 + .long 1072984342 + .long 545855020 + .long 3162728930 + .long 3792452178 + .long 1072994923 + .long 3420119467 + .long 1016471430 + .long 3147791459 + .long 1073004818 + .long 1342204979 + .long 1013937254 + .long 999189752 + .long 1073014090 + .long 1006335472 + .long 3162850919 + .long 711011011 + .long 1073022794 + .long 4633488 + .long 3162966895 + .long 15640363 + .long 1073030980 + .long 1686389560 + .long 3164376226 + .long 1218463589 + .long 1073042382 + .long 1526837110 + .long 3163533985 + .long 2538470555 + .long 1073056144 + .long 2273304406 + .long 3163784996 + .long 1229720947 + .long 1073068489 + .long 2971628206 + .long 3162356540 + .long 3115427016 + .long 1073079621 + .long 4215132957 + .long 3164282762 + .long 4030612557 + .long 1073089709 + .long 1913251691 + .long 3163671292 + .long 2728521257 + .long 1073098892 + .long 2861089500 + .long 1015454459 + .long 1118696283 + .long 1073107285 + .long 1628948053 + .long 1016179658 + .long 2682711255 + .long 1073114984 + .long 2906306266 + .long 1014142643 + .long 2073898081 + .long 1073122072 + .long 1322740454 + .long 3164497217 + .long 1403700297 + .long 1073128618 + .long 416137895 + .long 3162781466 + .long 2502685617 + .long 1073134681 + .long 3242008732 + .long 1014593495 + .long 1531926851 + .long 1073140313 + .long 1362708094 + .long 1016517604 + .long 3572814411 + .long 1073145557 + .long 3709790527 + .long 1012646874 + .long 1695536111 + .long 1073150453 + .long 3980346340 + .long 1016705136 + .long 2363057203 + .long 1073155033 + .long 2551194792 + .long 1012569695 + .long 2873365682 + .long 1073159327 + .long 3181154748 + .long 1017041450 + .long 1053384691 + .long 1073165288 + .long 3074536879 + .long 1016965660 + .long 3270542712 + .long 1073172451 + .long 2535319415 + .long 3163051778 + .long 1353631484 + .long 1073178850 + .long 1173833755 + .long 1015534537 + .long 3511218460 + .long 1073184599 + .long 1243608109 + .long 3161592122 + .long 4121259284 + .long 1073189793 + .long 398584912 + .long 3163829923 + .long 1193862106 + .long 1073194509 + .long 1873745539 + .long 3163802819 + .long 3861949790 + .long 1073198808 + .long 3841261147 + .long 1015587248 + .long 1486904578 + .long 1073202745 + .long 1634726776 + .long 3163847886 + .long 2879153715 + .long 1073206362 + .long 200456242 + .long 3164138657 + .long 385353253 + .long 1073209698 + .long 1186355517 + .long 1014887155 + .long 1125865839 + .long 1073212783 + .long 203561262 + .long 3161244927 + .long 1221361475 + .long 1073215645 + .long 3382476563 + .long 1014936138 + .long 2077323573 + .long 1073218307 + .long 1005121005 + .long 3164430752 + .long 215611373 + .long 1073220790 + .long 353198764 + .long 3164485137 + .long 2347419265 + .long 1073223110 + .long 1103143360 + .long 1016542137 + .long 1379112765 + .long 1073225284 + .long 381583533 + .long 3162870833 + .long 3891198463 + .long 1073228298 + .long 1771275754 + .long 1014654681 + .long 3395914051 + .long 1073231917 + .long 2350900914 + .long 3164013978 + .long 2799919478 + .long 1073235146 + .long 2893950164 + .long 3163260901 + .long 1138673476 + .long 1073238045 + .long 2622204785 + .long 3164174388 + .long 3408855940 + .long 1073240661 + .long 2800881650 + .long 1016008624 + .long 2044858738 + .long 1073243035 + .long 604544785 + .long 1017022901 + .long 2578795176 + .long 1073245198 + .long 2557332925 + .long 1016135165 + .long 4196285314 + .long 1073247177 + .long 2032365307 + .long 1016194735 + .long 224877747 + .long 1073248996 + .long 497926916 + .long 1016947111 + .long 3271386490 + .long 1073250671 + .long 2689994846 + .long 1016631513 + .long 813635989 + .long 1073252221 + .long 747035277 + .long 3164530136 + .long 369829519 + .long 1073253658 + .long 2182033858 + .long 3163190340 + .long 1187679052 + .long 1073254994 + .long 673954443 + .long 1016149821 + .long 4232586098 + .long 1073256239 + .long 497775200 + .long 3162179015 + .long 426690558 + .long 1073257404 + .long 3063343247 + .long 1016865578 + .long 1624065902 + .long 1073258494 + .long 1354224996 + .long 3163503778 + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .type atan_tbl,@object + .size atan_tbl,2592 + .align 4 +pi_table: + .long 1413754136 + .long 1073291771 + .long 856972295 + .long 1016178214 + .type pi_table,@object + .size pi_table,16 + .align 4 +SGNMASK: + .long 4294967295 + .long 2147483647 + .type SGNMASK,@object + .size SGNMASK,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_atan.1-. + .4byte ..___tag_value_atan.5-..___tag_value_atan.1 + .2byte 0x0400 + .4byte ..___tag_value_atan.3-..___tag_value_atan.1 + .2byte 0x100e + .byte 0x04 + .4byte ..___tag_value_atan.4-..___tag_value_atan.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/s_cbrt.S b/libm/x86_64/s_cbrt.S new file mode 100644 index 000000000..4aa4373e4 --- /dev/null +++ b/libm/x86_64/s_cbrt.S @@ -0,0 +1,754 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Assume x=2^{3*k+j} * 1.b1 b2 ... b5 b6 ... b52, where j = 0,1,2. +// Let r=(x*2^{-3k-j} - 1.b1 b2 ... b5 1)* rcp[b1 b2 ..b5], +// where rcp[b1 b2 .. b5]=1/(1.b1 b2 b3 b4 b5 1) in double precision +// cbrt(2^j * 1. b1 b2 .. b5 1) is approximated as T[j][b1..b5]+D[j][b1..b5] +// (T stores the high 53 bits, D stores the low order bits) +// Result=2^k*T+(2^k*T*r)*P+2^k*D +// where P=p1+p2*r+..+p8*r^7 +// +// Special cases: +// cbrt(NaN) = quiet NaN, and raise invalid exception +// cbrt(INF) = that INF +// cbrt(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin cbrt +ENTRY(cbrt) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_cbrt.1: + subq $24, %rsp +..___tag_value_cbrt.3: + movsd %xmm0, (%rsp) +..B1.2: + movq %xmm0, %xmm7 + movl $524032, %edx + movsd EXP_MSK3(%rip), %xmm5 + movsd EXP_MSK2(%rip), %xmm3 + psrlq $44, %xmm7 + pextrw $0, %xmm7, %ecx + movd %xmm7, %eax + movsd EXP_MASK(%rip), %xmm1 + movsd SIG_MASK(%rip), %xmm2 + andl $248, %ecx + lea rcp_table(%rip), %r8 + movsd (%rcx,%r8), %xmm4 + movq %rax, %r9 + andl %eax, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_0.0.1 + cmpl $524032, %edx + je .L_2TAG_PACKET_1.0.1 + shrl $8, %edx + shrq $8, %r9 + andpd %xmm0, %xmm2 + andpd %xmm5, %xmm0 + orpd %xmm2, %xmm3 + orpd %xmm0, %xmm1 + movapd coeff_table(%rip), %xmm5 + movl $5462, %eax + movapd 16+coeff_table(%rip), %xmm6 + mull %edx + movq %r9, %rdx + andq $2047, %r9 + shrl $14, %eax + andl $2048, %edx + subq %rax, %r9 + subq %rax, %r9 + subq %rax, %r9 + shlq $8, %r9 + addl $682, %eax + orl %edx, %eax + movd %eax, %xmm7 + addq %r9, %rcx + psllq $52, %xmm7 +.L_2TAG_PACKET_2.0.1: + movapd 32+coeff_table(%rip), %xmm2 + movapd 48+coeff_table(%rip), %xmm0 + subsd %xmm3, %xmm1 + movq %xmm7, %xmm3 + lea cbrt_table(%rip), %r8 + mulsd (%rcx,%r8), %xmm7 + mulsd %xmm4, %xmm1 + lea D_table(%rip), %r8 + mulsd (%rcx,%r8), %xmm3 + movapd %xmm1, %xmm4 + unpcklpd %xmm1, %xmm1 + mulpd %xmm1, %xmm5 + mulpd %xmm1, %xmm6 + mulpd %xmm1, %xmm1 + addpd %xmm5, %xmm2 + addpd %xmm6, %xmm0 + mulpd %xmm1, %xmm2 + mulpd %xmm1, %xmm1 + mulsd %xmm7, %xmm4 + addpd %xmm2, %xmm0 + mulsd %xmm0, %xmm1 + unpckhpd %xmm0, %xmm0 + addsd %xmm1, %xmm0 + mulsd %xmm4, %xmm0 + addsd %xmm3, %xmm0 + addsd %xmm7, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_0.0.1: + mulsd SCALE63(%rip), %xmm0 + movq %xmm0, %xmm7 + movl $524032, %edx + psrlq $44, %xmm7 + pextrw $0, %xmm7, %ecx + movd %xmm7, %eax + andl $248, %ecx + lea rcp_table(%rip), %r8 + movsd (%rcx,%r8), %xmm4 + movq %rax, %r9 + andl %eax, %edx + shrl $8, %edx + shrq $8, %r9 + cmpl $0, %edx + je .L_2TAG_PACKET_3.0.1 + andpd %xmm0, %xmm2 + andpd %xmm5, %xmm0 + orpd %xmm2, %xmm3 + orpd %xmm0, %xmm1 + movapd coeff_table(%rip), %xmm5 + movl $5462, %eax + movapd 16+coeff_table(%rip), %xmm6 + mull %edx + movq %r9, %rdx + andq $2047, %r9 + shrl $14, %eax + andl $2048, %edx + subq %rax, %r9 + subq %rax, %r9 + subq %rax, %r9 + shlq $8, %r9 + addl $661, %eax + orl %edx, %eax + movd %eax, %xmm7 + addq %r9, %rcx + psllq $52, %xmm7 + jmp .L_2TAG_PACKET_2.0.1 +.L_2TAG_PACKET_3.0.1: + cmpq $0, %r9 + jne .L_2TAG_PACKET_4.0.1 + xorpd %xmm0, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_4.0.1: + movsd ZERON(%rip), %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_1.0.1: + movl 4(%rsp), %eax + movl (%rsp), %edx + movl %eax, %ecx + andl $2147483647, %ecx + cmpl $2146435072, %ecx + ja .L_2TAG_PACKET_5.0.1 + cmpl $0, %edx + jne .L_2TAG_PACKET_5.0.1 + cmpl $2146435072, %eax + jne .L_2TAG_PACKET_6.0.1 + movsd INF(%rip), %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_6.0.1: + movsd NEG_INF(%rip), %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_5.0.1: + movsd (%rsp), %xmm0 + addsd %xmm0, %xmm0 + movq %xmm0, 8(%rsp) +.L_2TAG_PACKET_7.0.1: +..B1.4: + addq $24, %rsp +..___tag_value_cbrt.4: + ret +..___tag_value_cbrt.5: +END(cbrt) +# -- End cbrt + .section .rodata, "a" + .align 16 + .align 16 +coeff_table: + .long 1553778919 + .long 3213899486 + .long 3534952507 + .long 3215266280 + .long 1646371399 + .long 3214412045 + .long 477218588 + .long 3216798151 + .long 3582521621 + .long 1066628362 + .long 1007461464 + .long 1068473053 + .long 889629714 + .long 1067378449 + .long 1431655765 + .long 1070945621 + .type coeff_table,@object + .size coeff_table,64 + .align 4 +EXP_MSK3: + .long 4294967295 + .long 1048575 + .type EXP_MSK3,@object + .size EXP_MSK3,8 + .align 4 +EXP_MSK2: + .long 0 + .long 3220193280 + .type EXP_MSK2,@object + .size EXP_MSK2,8 + .align 4 +EXP_MASK: + .long 0 + .long 3220176896 + .type EXP_MASK,@object + .size EXP_MASK,8 + .align 4 +SIG_MASK: + .long 0 + .long 1032192 + .type SIG_MASK,@object + .size SIG_MASK,8 + .align 4 +rcp_table: + .long 528611360 + .long 3220144632 + .long 2884679527 + .long 3220082993 + .long 1991868891 + .long 3220024928 + .long 2298714891 + .long 3219970134 + .long 58835168 + .long 3219918343 + .long 3035110223 + .long 3219869313 + .long 1617585086 + .long 3219822831 + .long 2500867033 + .long 3219778702 + .long 4241943008 + .long 3219736752 + .long 258732970 + .long 3219696825 + .long 404232216 + .long 3219658776 + .long 2172167368 + .long 3219622476 + .long 1544257904 + .long 3219587808 + .long 377579543 + .long 3219554664 + .long 1616385542 + .long 3219522945 + .long 813783277 + .long 3219492562 + .long 3940743189 + .long 3219463431 + .long 2689777499 + .long 3219435478 + .long 1700977147 + .long 3219408632 + .long 3169102082 + .long 3219382828 + .long 327235604 + .long 3219358008 + .long 1244336319 + .long 3219334115 + .long 1300311200 + .long 3219311099 + .long 3095471925 + .long 3219288912 + .long 2166487928 + .long 3219267511 + .long 2913108253 + .long 3219246854 + .long 293672978 + .long 3219226904 + .long 288737297 + .long 3219207624 + .long 1810275472 + .long 3219188981 + .long 174592167 + .long 3219170945 + .long 3539053052 + .long 3219153485 + .long 2164392968 + .long 3219136576 + .type rcp_table,@object + .size rcp_table,256 + .align 4 +cbrt_table: + .long 572345495 + .long 1072698681 + .long 1998204467 + .long 1072709382 + .long 3861501553 + .long 1072719872 + .long 2268192434 + .long 1072730162 + .long 2981979308 + .long 1072740260 + .long 270859143 + .long 1072750176 + .long 2958651392 + .long 1072759916 + .long 313113243 + .long 1072769490 + .long 919449400 + .long 1072778903 + .long 2809328903 + .long 1072788162 + .long 2222981587 + .long 1072797274 + .long 2352530781 + .long 1072806244 + .long 594152517 + .long 1072815078 + .long 1555767199 + .long 1072823780 + .long 4282421314 + .long 1072832355 + .long 2355578597 + .long 1072840809 + .long 1162590619 + .long 1072849145 + .long 797864051 + .long 1072857367 + .long 431273680 + .long 1072865479 + .long 2669831148 + .long 1072873484 + .long 733477752 + .long 1072881387 + .long 4280220604 + .long 1072889189 + .long 801961634 + .long 1072896896 + .long 2915370760 + .long 1072904508 + .long 1159613482 + .long 1072912030 + .long 2689944798 + .long 1072919463 + .long 1248687822 + .long 1072926811 + .long 2967951030 + .long 1072934075 + .long 630170432 + .long 1072941259 + .long 3760898254 + .long 1072948363 + .long 0 + .long 1072955392 + .long 2370273294 + .long 1072962345 + .long 1261754802 + .long 1072972640 + .long 546334065 + .long 1072986123 + .long 1054893830 + .long 1072999340 + .long 1571187597 + .long 1073012304 + .long 1107975175 + .long 1073025027 + .long 3606909377 + .long 1073037519 + .long 1113616747 + .long 1073049792 + .long 4154744632 + .long 1073061853 + .long 3358931423 + .long 1073073713 + .long 4060702372 + .long 1073085379 + .long 747576176 + .long 1073096860 + .long 3023138255 + .long 1073108161 + .long 1419988548 + .long 1073119291 + .long 1914185305 + .long 1073130255 + .long 294389948 + .long 1073141060 + .long 3761802570 + .long 1073151710 + .long 978281566 + .long 1073162213 + .long 823148820 + .long 1073172572 + .long 2420954441 + .long 1073182792 + .long 3815449908 + .long 1073192878 + .long 2046058587 + .long 1073202835 + .long 1807524753 + .long 1073212666 + .long 2628681401 + .long 1073222375 + .long 3225667357 + .long 1073231966 + .long 1555307421 + .long 1073241443 + .long 3454043099 + .long 1073250808 + .long 1208137896 + .long 1073260066 + .long 3659916772 + .long 1073269218 + .long 1886261264 + .long 1073278269 + .long 3593647839 + .long 1073287220 + .long 3086012205 + .long 1073296075 + .long 2769796922 + .long 1073304836 + .long 888716057 + .long 1073317807 + .long 2201465623 + .long 1073334794 + .long 164369365 + .long 1073351447 + .long 3462666733 + .long 1073367780 + .long 2773905457 + .long 1073383810 + .long 1342879088 + .long 1073399550 + .long 2543933975 + .long 1073415012 + .long 1684477781 + .long 1073430209 + .long 3532178543 + .long 1073445151 + .long 1147747300 + .long 1073459850 + .long 1928031793 + .long 1073474314 + .long 2079717015 + .long 1073488553 + .long 4016765315 + .long 1073502575 + .long 3670431139 + .long 1073516389 + .long 3549227225 + .long 1073530002 + .long 11637607 + .long 1073543422 + .long 588220169 + .long 1073556654 + .long 2635407503 + .long 1073569705 + .long 2042029317 + .long 1073582582 + .long 1925128962 + .long 1073595290 + .long 4136375664 + .long 1073607834 + .long 759964600 + .long 1073620221 + .long 4257606771 + .long 1073632453 + .long 297278907 + .long 1073644538 + .long 3655053093 + .long 1073656477 + .long 2442253172 + .long 1073668277 + .long 1111876799 + .long 1073679941 + .long 3330973139 + .long 1073691472 + .long 3438879452 + .long 1073702875 + .long 3671565478 + .long 1073714153 + .long 1317849547 + .long 1073725310 + .long 1642364115 + .long 1073736348 + .type cbrt_table,@object + .size cbrt_table,768 + .align 4 +D_table: + .long 4050900474 + .long 1014427190 + .long 1157977860 + .long 1016444461 + .long 1374568199 + .long 1017271387 + .long 2809163288 + .long 1016882676 + .long 3742377377 + .long 1013168191 + .long 3101606597 + .long 1017541672 + .long 65224358 + .long 1017217597 + .long 2691591250 + .long 1017266643 + .long 4020758549 + .long 1017689313 + .long 1316310992 + .long 1018030788 + .long 1031537856 + .long 1014090882 + .long 3261395239 + .long 1016413641 + .long 886424999 + .long 1016313335 + .long 3114776834 + .long 1014195875 + .long 1681120620 + .long 1017825416 + .long 1329600273 + .long 1016625740 + .long 465474623 + .long 1017097119 + .long 4251633980 + .long 1017169077 + .long 1986990133 + .long 1017710645 + .long 752958613 + .long 1017159641 + .long 2216216792 + .long 1018020163 + .long 4282860129 + .long 1015924861 + .long 1557627859 + .long 1016039538 + .long 3889219754 + .long 1018086237 + .long 3684996408 + .long 1017353275 + .long 723532103 + .long 1017717141 + .long 2951149676 + .long 1012528470 + .long 831890937 + .long 1017830553 + .long 1031212645 + .long 1017387331 + .long 2741737450 + .long 1017604974 + .long 2863311531 + .long 1003776682 + .long 4276736099 + .long 1013153088 + .long 4111778382 + .long 1015673686 + .long 1728065769 + .long 1016413986 + .long 2708718031 + .long 1018078833 + .long 1069335005 + .long 1015291224 + .long 700037144 + .long 1016482032 + .long 2904566452 + .long 1017226861 + .long 4074156649 + .long 1017622651 + .long 25019565 + .long 1015245366 + .long 3601952608 + .long 1015771755 + .long 3267129373 + .long 1017904664 + .long 503203103 + .long 1014921629 + .long 2122011730 + .long 1018027866 + .long 3927295461 + .long 1014189456 + .long 2790625147 + .long 1016024251 + .long 1330460186 + .long 1016940346 + .long 4033568463 + .long 1015538390 + .long 3695818227 + .long 1017509621 + .long 257573361 + .long 1017208868 + .long 3227697852 + .long 1017337964 + .long 234118548 + .long 1017169577 + .long 4009025803 + .long 1017278524 + .long 1948343394 + .long 1017749310 + .long 678398162 + .long 1018144239 + .long 3083864863 + .long 1016669086 + .long 2415453452 + .long 1017890370 + .long 175467344 + .long 1017330033 + .long 3197359580 + .long 1010339928 + .long 2071276951 + .long 1015941358 + .long 268372543 + .long 1016737773 + .long 938132959 + .long 1017389108 + .long 1816750559 + .long 1017337448 + .long 4119203749 + .long 1017152174 + .long 2578653878 + .long 1013108497 + .long 2470331096 + .long 1014678606 + .long 123855735 + .long 1016553320 + .long 1265650889 + .long 1014782687 + .long 3414398172 + .long 1017182638 + .long 1040773369 + .long 1016158401 + .long 3483628886 + .long 1016886550 + .long 4140499405 + .long 1016191425 + .long 3893477850 + .long 1016964495 + .long 3935319771 + .long 1009634717 + .long 2978982660 + .long 1015027112 + .long 2452709923 + .long 1017990229 + .long 3190365712 + .long 1015835149 + .long 4237588139 + .long 1015832925 + .long 2610678389 + .long 1017962711 + .long 2127316774 + .long 1017405770 + .long 824267502 + .long 1017959463 + .long 2165924042 + .long 1017912225 + .long 2774007076 + .long 1013257418 + .long 4123916326 + .long 1017582284 + .long 1976417958 + .long 1016959909 + .long 4092806412 + .long 1017711279 + .long 119251817 + .long 1015363631 + .long 3475418768 + .long 1017675415 + .long 1972580503 + .long 1015470684 + .long 815541017 + .long 1017517969 + .long 2429917451 + .long 1017397776 + .long 4062888482 + .long 1016749897 + .long 68284153 + .long 1017925678 + .long 2207779246 + .long 1016320298 + .long 1183466520 + .long 1017408657 + .long 143326427 + .long 1017060403 + .type D_table,@object + .size D_table,768 + .align 4 +SCALE63: + .long 0 + .long 1138753536 + .type SCALE63,@object + .size SCALE63,8 + .align 4 +ZERON: + .long 0 + .long 2147483648 + .type ZERON,@object + .size ZERON,8 + .align 4 +INF: + .long 0 + .long 2146435072 + .type INF,@object + .size INF,8 + .align 4 +NEG_INF: + .long 0 + .long 4293918720 + .type NEG_INF,@object + .size NEG_INF,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_cbrt.1-. + .4byte ..___tag_value_cbrt.5-..___tag_value_cbrt.1 + .2byte 0x0400 + .4byte ..___tag_value_cbrt.3-..___tag_value_cbrt.1 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_cbrt.4-..___tag_value_cbrt.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/s_cos.S b/libm/x86_64/s_cos.S new file mode 100644 index 000000000..ab5a0e1b7 --- /dev/null +++ b/libm/x86_64/s_cos.S @@ -0,0 +1,1275 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// 1. RANGE REDUCTION +// +// We perform an initial range reduction from X to r with +// +// X =~= N * pi/32 + r +// +// so that |r| <= pi/64 + epsilon. We restrict inputs to those +// where |N| <= 932560. Beyond this, the range reduction is +// insufficiently accurate. For extremely small inputs, +// denormalization can occur internally, impacting performance. +// This means that the main path is actually only taken for +// 2^-252 <= |X| < 90112. +// +// To avoid branches, we perform the range reduction to full +// accuracy each time. +// +// X - N * (P_1 + P_2 + P_3) +// +// where P_1 and P_2 are 32-bit numbers (so multiplication by N +// is exact) and P_3 is a 53-bit number. Together, these +// approximate pi well enough for all cases in the restricted +// range. +// +// The main reduction sequence is: +// +// y = 32/pi * x +// N = integer(y) +// (computed by adding and subtracting off SHIFTER) +// +// m_1 = N * P_1 +// m_2 = N * P_2 +// r_1 = x - m_1 +// r = r_1 - m_2 +// (this r can be used for most of the calculation) +// +// c_1 = r_1 - r +// m_3 = N * P_3 +// c_2 = c_1 - m_2 +// c = c_2 - m_3 +// +// 2. MAIN ALGORITHM +// +// The algorithm uses a table lookup based on B = M * pi / 32 +// where M = N mod 64. The stored values are: +// sigma closest power of 2 to cos(B) +// C_hl 53-bit cos(B) - sigma +// S_hi + S_lo 2 * 53-bit sin(B) +// +// The computation is organized as follows: +// +// sin(B + r + c) = [sin(B) + sigma * r] + +// r * (cos(B) - sigma) + +// sin(B) * [cos(r + c) - 1] + +// cos(B) * [sin(r + c) - r] +// +// which is approximately: +// +// [S_hi + sigma * r] + +// C_hl * r + +// S_lo + S_hi * [(cos(r) - 1) - r * c] + +// (C_hl + sigma) * [(sin(r) - r) + c] +// +// and this is what is actually computed. We separate this sum +// into four parts: +// +// hi + med + pols + corr +// +// where +// +// hi = S_hi + sigma r +// med = C_hl * r +// pols = S_hi * (cos(r) - 1) + (C_hl + sigma) * (sin(r) - r) +// corr = S_lo + c * ((C_hl + sigma) - S_hi * r) +// +// 3. POLYNOMIAL +// +// The polynomial S_hi * (cos(r) - 1) + (C_hl + sigma) * +// (sin(r) - r) can be rearranged freely, since it is quite +// small, so we exploit parallelism to the fullest. +// +// psc4 = SC_4 * r_1 +// msc4 = psc4 * r +// r2 = r * r +// msc2 = SC_2 * r2 +// r4 = r2 * r2 +// psc3 = SC_3 + msc4 +// psc1 = SC_1 + msc2 +// msc3 = r4 * psc3 +// sincospols = psc1 + msc3 +// pols = sincospols * +// +// +// 4. CORRECTION TERM +// +// This is where the "c" component of the range reduction is +// taken into account; recall that just "r" is used for most of +// the calculation. +// +// -c = m_3 - c_2 +// -d = S_hi * r - (C_hl + sigma) +// corr = -c * -d + S_lo +// +// 5. COMPENSATED SUMMATIONS +// +// The two successive compensated summations add up the high +// and medium parts, leaving just the low parts to add up at +// the end. +// +// rs = sigma * r +// res_int = S_hi + rs +// k_0 = S_hi - res_int +// k_2 = k_0 + rs +// med = C_hl * r +// res_hi = res_int + med +// k_1 = res_int - res_hi +// k_3 = k_1 + med +// +// 6. FINAL SUMMATION +// +// We now add up all the small parts: +// +// res_lo = pols(hi) + pols(lo) + corr + k_1 + k_3 +// +// Now the overall result is just: +// +// res_hi + res_lo +// +// 7. SMALL ARGUMENTS +// +// Inputs with |X| < 2^-252 are treated specially as +// 1 - |x|. +// +// Special cases: +// cos(NaN) = quiet NaN, and raise invalid exception +// cos(INF) = NaN and raise invalid exception +// cos(0) = 1 +// +/******************************************************************************/ + +#include +# -- Begin cos +ENTRY(cos) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_cos.1: + pushq %rbx +..___tag_value_cos.3: + subq $16, %rsp +..___tag_value_cos.5: + movsd %xmm0, 8(%rsp) +..B1.2: + movl 12(%rsp), %eax + movq PI32INV(%rip), %xmm1 + andl $2147418112, %eax + subl $808452096, %eax + cmpl $281346048, %eax + ja .L_2TAG_PACKET_0.0.1 + mulsd %xmm0, %xmm1 + movapd ONEHALF(%rip), %xmm5 + movq SIGN_MASK(%rip), %xmm4 + andpd %xmm0, %xmm4 + orps %xmm4, %xmm5 + addpd %xmm5, %xmm1 + cvttsd2si %xmm1, %edx + cvtsi2sd %edx, %xmm1 + movapd P_2(%rip), %xmm2 + movq P_1(%rip), %xmm3 + mulsd %xmm1, %xmm3 + unpcklpd %xmm1, %xmm1 + addq $1865232, %rdx + movq %xmm0, %xmm4 + andq $63, %rdx + movapd SC_4(%rip), %xmm5 + lea Ctable(%rip), %rax + shlq $5, %rdx + addq %rdx, %rax + mulpd %xmm1, %xmm2 + subsd %xmm3, %xmm0 + mulsd P_3(%rip), %xmm1 + subsd %xmm3, %xmm4 + movq 8(%rax), %xmm7 + unpcklpd %xmm0, %xmm0 + movq %xmm4, %xmm3 + subsd %xmm2, %xmm4 + mulpd %xmm0, %xmm5 + subpd %xmm2, %xmm0 + movapd SC_2(%rip), %xmm6 + mulsd %xmm4, %xmm7 + subsd %xmm4, %xmm3 + mulpd %xmm0, %xmm5 + mulpd %xmm0, %xmm0 + subsd %xmm2, %xmm3 + movapd (%rax), %xmm2 + subsd %xmm3, %xmm1 + movq 24(%rax), %xmm3 + addsd %xmm3, %xmm2 + subsd %xmm2, %xmm7 + mulsd %xmm4, %xmm2 + mulpd %xmm0, %xmm6 + mulsd %xmm4, %xmm3 + mulpd %xmm0, %xmm2 + mulpd %xmm0, %xmm0 + addpd SC_3(%rip), %xmm5 + mulsd (%rax), %xmm4 + addpd SC_1(%rip), %xmm6 + mulpd %xmm0, %xmm5 + movq %xmm3, %xmm0 + addsd 8(%rax), %xmm3 + mulpd %xmm7, %xmm1 + movq %xmm4, %xmm7 + addsd %xmm3, %xmm4 + addpd %xmm5, %xmm6 + movq 8(%rax), %xmm5 + subsd %xmm3, %xmm5 + subsd %xmm4, %xmm3 + addsd 16(%rax), %xmm1 + mulpd %xmm2, %xmm6 + addsd %xmm5, %xmm0 + addsd %xmm7, %xmm3 + addsd %xmm1, %xmm0 + addsd %xmm3, %xmm0 + addsd %xmm6, %xmm0 + unpckhpd %xmm6, %xmm6 + addsd %xmm6, %xmm0 + addsd %xmm4, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_0.0.1: + jg .L_2TAG_PACKET_1.0.1 + pextrw $3, %xmm0, %eax + andw $32767, %ax + pinsrw $3, %eax, %xmm0 + movq ONE(%rip), %xmm1 + subsd %xmm0, %xmm1 + movq %xmm1, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_1.0.1: + pextrw $3, %xmm0, %eax + andl $32752, %eax + cmpl $32752, %eax + je .L_2TAG_PACKET_2.0.1 + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + subl $16224, %ecx + shrl $7, %ecx + andl $65532, %ecx + lea PI_INV_TABLE(%rip), %r11 + addq %r11, %rcx + movd %xmm0, %rax + movl 20(%rcx), %r10d + movl 24(%rcx), %r8d + movl %eax, %edx + shrq $21, %rax + orl $-2147483648, %eax + shrl $11, %eax + movl %r10d, %r9d + imulq %rdx, %r10 + imulq %rax, %r9 + imulq %rax, %r8 + movl 16(%rcx), %esi + movl 12(%rcx), %edi + movl %r10d, %r11d + shrq $32, %r10 + addq %r10, %r9 + addq %r8, %r11 + movl %r11d, %r8d + shrq $32, %r11 + addq %r11, %r9 + movl %esi, %r10d + imulq %rdx, %rsi + imulq %rax, %r10 + movl %edi, %r11d + imulq %rdx, %rdi + movl %esi, %ebx + shrq $32, %rsi + addq %rbx, %r9 + movl %r9d, %ebx + shrq $32, %r9 + addq %rsi, %r10 + addq %r9, %r10 + shlq $32, %rbx + orq %rbx, %r8 + imulq %rax, %r11 + movl 8(%rcx), %r9d + movl 4(%rcx), %esi + movl %edi, %ebx + shrq $32, %rdi + addq %rbx, %r10 + movl %r10d, %ebx + shrq $32, %r10 + addq %rdi, %r11 + addq %r10, %r11 + movq %r9, %rdi + imulq %rdx, %r9 + imulq %rax, %rdi + movl %r9d, %r10d + shrq $32, %r9 + addq %r10, %r11 + movl %r11d, %r10d + shrq $32, %r11 + addq %r9, %rdi + addq %r11, %rdi + movq %rsi, %r9 + imulq %rdx, %rsi + imulq %rax, %r9 + shlq $32, %r10 + orq %rbx, %r10 + movl (%rcx), %eax + movl %esi, %r11d + shrq $32, %rsi + addq %r11, %rdi + movl %edi, %r11d + shrq $32, %rdi + addq %rsi, %r9 + addq %rdi, %r9 + imulq %rax, %rdx + pextrw $3, %xmm0, %ebx + lea PI_INV_TABLE(%rip), %rdi + subq %rdi, %rcx + addl %ecx, %ecx + addl %ecx, %ecx + addl %ecx, %ecx + addl $19, %ecx + movl $32768, %esi + andl %ebx, %esi + shrl $4, %ebx + andl $2047, %ebx + subl $1023, %ebx + subl %ebx, %ecx + addq %rdx, %r9 + movl %ecx, %edx + addl $32, %edx + cmpl $1, %ecx + jl .L_2TAG_PACKET_3.0.1 + negl %ecx + addl $29, %ecx + shll %cl, %r9d + movl %r9d, %edi + andl $536870911, %r9d + testl $268435456, %r9d + jne .L_2TAG_PACKET_4.0.1 + shrl %cl, %r9d + movl $0, %ebx + shlq $32, %r9 + orq %r11, %r9 +.L_2TAG_PACKET_5.0.1: +.L_2TAG_PACKET_6.0.1: + cmpq $0, %r9 + je .L_2TAG_PACKET_7.0.1 +.L_2TAG_PACKET_8.0.1: + bsr %r9, %r11 + movl $29, %ecx + subl %r11d, %ecx + jle .L_2TAG_PACKET_9.0.1 + shlq %cl, %r9 + movq %r10, %rax + shlq %cl, %r10 + addl %ecx, %edx + negl %ecx + addl $64, %ecx + shrq %cl, %rax + shrq %cl, %r8 + orq %rax, %r9 + orq %r8, %r10 +.L_2TAG_PACKET_10.0.1: + cvtsi2sdq %r9, %xmm0 + shrq $1, %r10 + cvtsi2sdq %r10, %xmm3 + xorpd %xmm4, %xmm4 + shll $4, %edx + negl %edx + addl $16368, %edx + orl %esi, %edx + xorl %ebx, %edx + pinsrw $3, %edx, %xmm4 + movq PI_4(%rip), %xmm2 + movq 8+PI_4(%rip), %xmm6 + xorpd %xmm5, %xmm5 + subl $1008, %edx + pinsrw $3, %edx, %xmm5 + mulsd %xmm4, %xmm0 + shll $16, %esi + sarl $31, %esi + mulsd %xmm5, %xmm3 + movq %xmm0, %xmm1 + mulsd %xmm2, %xmm0 + shrl $29, %edi + addsd %xmm3, %xmm1 + mulsd %xmm2, %xmm3 + addl %esi, %edi + xorl %esi, %edi + mulsd %xmm1, %xmm6 + movl %edi, %eax + addsd %xmm3, %xmm6 + movq %xmm0, %xmm2 + addsd %xmm6, %xmm0 + subsd %xmm0, %xmm2 + addsd %xmm2, %xmm6 +.L_2TAG_PACKET_11.0.1: + movq PI32INV(%rip), %xmm1 + mulsd %xmm0, %xmm1 + movq ONEHALF(%rip), %xmm5 + movq SIGN_MASK(%rip), %xmm4 + andpd %xmm0, %xmm4 + orps %xmm4, %xmm5 + addpd %xmm5, %xmm1 + cvttsd2si %xmm1, %rdx + cvtsi2sdq %rdx, %xmm1 + movq P_1(%rip), %xmm3 + movapd P_2(%rip), %xmm2 + mulsd %xmm1, %xmm3 + unpcklpd %xmm1, %xmm1 + shll $3, %eax + addl $1865232, %edx + movq %xmm0, %xmm4 + addl %eax, %edx + andl $63, %edx + movapd SC_4(%rip), %xmm5 + lea Ctable(%rip), %rax + shll $5, %edx + addq %rdx, %rax + mulpd %xmm1, %xmm2 + subsd %xmm3, %xmm0 + mulsd P_3(%rip), %xmm1 + subsd %xmm3, %xmm4 + movq 8(%rax), %xmm7 + unpcklpd %xmm0, %xmm0 + movq %xmm4, %xmm3 + subsd %xmm2, %xmm4 + mulpd %xmm0, %xmm5 + subpd %xmm2, %xmm0 + mulsd %xmm4, %xmm7 + subsd %xmm4, %xmm3 + mulpd %xmm0, %xmm5 + mulpd %xmm0, %xmm0 + subsd %xmm2, %xmm3 + movapd (%rax), %xmm2 + subsd %xmm3, %xmm1 + movq 24(%rax), %xmm3 + addsd %xmm3, %xmm2 + subsd %xmm2, %xmm7 + subsd %xmm6, %xmm1 + movapd SC_2(%rip), %xmm6 + mulsd %xmm4, %xmm2 + mulpd %xmm0, %xmm6 + mulsd %xmm4, %xmm3 + mulpd %xmm0, %xmm2 + mulpd %xmm0, %xmm0 + addpd SC_3(%rip), %xmm5 + mulsd (%rax), %xmm4 + addpd SC_1(%rip), %xmm6 + mulpd %xmm0, %xmm5 + movq %xmm3, %xmm0 + addsd 8(%rax), %xmm3 + mulpd %xmm7, %xmm1 + movq %xmm4, %xmm7 + addsd %xmm3, %xmm4 + addpd %xmm5, %xmm6 + movq 8(%rax), %xmm5 + subsd %xmm3, %xmm5 + subsd %xmm4, %xmm3 + addsd 16(%rax), %xmm1 + mulpd %xmm2, %xmm6 + addsd %xmm0, %xmm5 + addsd %xmm7, %xmm3 + addsd %xmm5, %xmm1 + addsd %xmm3, %xmm1 + addsd %xmm6, %xmm1 + unpckhpd %xmm6, %xmm6 + movq %xmm4, %xmm0 + addsd %xmm6, %xmm1 + addsd %xmm1, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_7.0.1: + addl $64, %edx + movq %r10, %r9 + movq %r8, %r10 + movq $0, %r8 + cmpq $0, %r9 + jne .L_2TAG_PACKET_8.0.1 + addl $64, %edx + movq %r10, %r9 + movq %r8, %r10 + cmpq $0, %r9 + jne .L_2TAG_PACKET_8.0.1 + xorpd %xmm0, %xmm0 + xorpd %xmm6, %xmm6 + jmp .L_2TAG_PACKET_11.0.1 +.L_2TAG_PACKET_9.0.1: + je .L_2TAG_PACKET_10.0.1 + negl %ecx + shrq %cl, %r10 + movq %r9, %rax + shrq %cl, %r9 + subl %ecx, %edx + negl %ecx + addl $64, %ecx + shlq %cl, %rax + orq %rax, %r10 + jmp .L_2TAG_PACKET_10.0.1 +.L_2TAG_PACKET_3.0.1: + negl %ecx + shlq $32, %r9 + orq %r11, %r9 + shlq %cl, %r9 + movq %r9, %rdi + testl $-2147483648, %r9d + jne .L_2TAG_PACKET_12.0.1 + shrl %cl, %r9d + movl $0, %ebx + shrq $3, %rdi + jmp .L_2TAG_PACKET_6.0.1 +.L_2TAG_PACKET_4.0.1: + shrl %cl, %r9d + movl $536870912, %ebx + shrl %cl, %ebx + shlq $32, %r9 + orq %r11, %r9 + shlq $32, %rbx + addl $536870912, %edi + movq $0, %rcx + movq $0, %r11 + subq %r8, %rcx + sbbq %r10, %r11 + sbbq %r9, %rbx + movq %rcx, %r8 + movq %r11, %r10 + movq %rbx, %r9 + movl $32768, %ebx + jmp .L_2TAG_PACKET_5.0.1 +.L_2TAG_PACKET_12.0.1: + shrl %cl, %r9d + movq $0x100000000, %rbx + shrq %cl, %rbx + movq $0, %rcx + movq $0, %r11 + subq %r8, %rcx + sbbq %r10, %r11 + sbbq %r9, %rbx + movq %rcx, %r8 + movq %r11, %r10 + movq %rbx, %r9 + movl $32768, %ebx + shrq $3, %rdi + addl $536870912, %edi + jmp .L_2TAG_PACKET_6.0.1 +.L_2TAG_PACKET_2.0.1: + movsd 8(%rsp), %xmm0 + mulsd NEG_ZERO(%rip), %xmm0 + movq %xmm0, (%rsp) +.L_2TAG_PACKET_13.0.1: +..B1.4: + addq $16, %rsp +..___tag_value_cos.6: + popq %rbx +..___tag_value_cos.8: + ret +..___tag_value_cos.9: +END(cos) +# -- End cos + .section .rodata, "a" + .align 16 + .align 16 +ONEHALF: + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .type ONEHALF,@object + .size ONEHALF,16 + .align 16 +P_2: + .long 442499072 + .long 1032893537 + .long 442499072 + .long 1032893537 + .type P_2,@object + .size P_2,16 + .align 16 +SC_4: + .long 2773927732 + .long 1053236707 + .long 436314138 + .long 1056571808 + .type SC_4,@object + .size SC_4,16 + .align 16 +Ctable: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 393047345 + .long 3212032302 + .long 3156849708 + .long 1069094822 + .long 3758096384 + .long 3158189848 + .long 0 + .long 1072693248 + .long 18115067 + .long 3214126342 + .long 1013556747 + .long 1070135480 + .long 3221225472 + .long 3160567065 + .long 0 + .long 1072693248 + .long 2476548698 + .long 3215330282 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 0 + .long 1072693248 + .long 2255197647 + .long 3216211105 + .long 2796464483 + .long 1071152610 + .long 3758096384 + .long 3160878317 + .long 0 + .long 1072693248 + .long 1945768569 + .long 3216915048 + .long 939980347 + .long 1071524701 + .long 536870912 + .long 1012796809 + .long 0 + .long 1072693248 + .long 1539668340 + .long 3217396327 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 0 + .long 1072693248 + .long 1403757309 + .long 3217886718 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 0 + .long 1072693248 + .long 2583490354 + .long 1070236281 + .long 1719614413 + .long 1072079006 + .long 536870912 + .long 3163282740 + .long 0 + .long 1071644672 + .long 2485417816 + .long 1069626316 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 0 + .long 1071644672 + .long 2598800519 + .long 1068266419 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 0 + .long 1071644672 + .long 2140183630 + .long 3214756396 + .long 4051746225 + .long 1072445618 + .long 2147483648 + .long 3161907377 + .long 0 + .long 1071644672 + .long 1699043957 + .long 3216902261 + .long 3476196678 + .long 1072533611 + .long 536870912 + .long 1014257638 + .long 0 + .long 1071644672 + .long 1991047213 + .long 1067753521 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 0 + .long 1070596096 + .long 240740309 + .long 3215727903 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 0 + .long 1070596096 + .long 257503056 + .long 3214647653 + .long 2748392742 + .long 1072683149 + .long 1073741824 + .long 3163061750 + .long 0 + .long 1069547520 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 257503056 + .long 1067164005 + .long 2748392742 + .long 1072683149 + .long 1073741824 + .long 3163061750 + .long 0 + .long 3217031168 + .long 240740309 + .long 1068244255 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 0 + .long 3218079744 + .long 1991047213 + .long 3215237169 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 0 + .long 3218079744 + .long 1699043957 + .long 1069418613 + .long 3476196678 + .long 1072533611 + .long 536870912 + .long 1014257638 + .long 0 + .long 3219128320 + .long 2140183630 + .long 1067272748 + .long 4051746225 + .long 1072445618 + .long 2147483648 + .long 3161907377 + .long 0 + .long 3219128320 + .long 2598800519 + .long 3215750067 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 0 + .long 3219128320 + .long 2485417816 + .long 3217109964 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 0 + .long 3219128320 + .long 2583490354 + .long 3217719929 + .long 1719614413 + .long 1072079006 + .long 536870912 + .long 3163282740 + .long 0 + .long 3219128320 + .long 1403757309 + .long 1070403070 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 0 + .long 3220176896 + .long 1539668340 + .long 1069912679 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 0 + .long 3220176896 + .long 1945768569 + .long 1069431400 + .long 939980347 + .long 1071524701 + .long 536870912 + .long 1012796809 + .long 0 + .long 3220176896 + .long 2255197647 + .long 1068727457 + .long 2796464483 + .long 1071152610 + .long 3758096384 + .long 3160878317 + .long 0 + .long 3220176896 + .long 2476548698 + .long 1067846634 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 0 + .long 3220176896 + .long 18115067 + .long 1066642694 + .long 1013556747 + .long 1070135480 + .long 3221225472 + .long 3160567065 + .long 0 + .long 3220176896 + .long 393047345 + .long 1064548654 + .long 3156849708 + .long 1069094822 + .long 3758096384 + .long 3158189848 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 393047345 + .long 1064548654 + .long 3156849708 + .long 3216578470 + .long 3758096384 + .long 1010706200 + .long 0 + .long 3220176896 + .long 18115067 + .long 1066642694 + .long 1013556747 + .long 3217619128 + .long 3221225472 + .long 1013083417 + .long 0 + .long 3220176896 + .long 2476548698 + .long 1067846634 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 0 + .long 3220176896 + .long 2255197647 + .long 1068727457 + .long 2796464483 + .long 3218636258 + .long 3758096384 + .long 1013394669 + .long 0 + .long 3220176896 + .long 1945768569 + .long 1069431400 + .long 939980347 + .long 3219008349 + .long 536870912 + .long 3160280457 + .long 0 + .long 3220176896 + .long 1539668340 + .long 1069912679 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 0 + .long 3220176896 + .long 1403757309 + .long 1070403070 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 0 + .long 3220176896 + .long 2583490354 + .long 3217719929 + .long 1719614413 + .long 3219562654 + .long 536870912 + .long 1015799092 + .long 0 + .long 3219128320 + .long 2485417816 + .long 3217109964 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 0 + .long 3219128320 + .long 2598800519 + .long 3215750067 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 0 + .long 3219128320 + .long 2140183630 + .long 1067272748 + .long 4051746225 + .long 3219929266 + .long 2147483648 + .long 1014423729 + .long 0 + .long 3219128320 + .long 1699043957 + .long 1069418613 + .long 3476196678 + .long 3220017259 + .long 536870912 + .long 3161741286 + .long 0 + .long 3219128320 + .long 1991047213 + .long 3215237169 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 0 + .long 3218079744 + .long 240740309 + .long 1068244255 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 0 + .long 3218079744 + .long 257503056 + .long 1067164005 + .long 2748392742 + .long 3220166797 + .long 1073741824 + .long 1015578102 + .long 0 + .long 3217031168 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 257503056 + .long 3214647653 + .long 2748392742 + .long 3220166797 + .long 1073741824 + .long 1015578102 + .long 0 + .long 1069547520 + .long 240740309 + .long 3215727903 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 0 + .long 1070596096 + .long 1991047213 + .long 1067753521 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 0 + .long 1070596096 + .long 1699043957 + .long 3216902261 + .long 3476196678 + .long 3220017259 + .long 536870912 + .long 3161741286 + .long 0 + .long 1071644672 + .long 2140183630 + .long 3214756396 + .long 4051746225 + .long 3219929266 + .long 2147483648 + .long 1014423729 + .long 0 + .long 1071644672 + .long 2598800519 + .long 1068266419 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 0 + .long 1071644672 + .long 2485417816 + .long 1069626316 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 0 + .long 1071644672 + .long 2583490354 + .long 1070236281 + .long 1719614413 + .long 3219562654 + .long 536870912 + .long 1015799092 + .long 0 + .long 1071644672 + .long 1403757309 + .long 3217886718 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 0 + .long 1072693248 + .long 1539668340 + .long 3217396327 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 0 + .long 1072693248 + .long 1945768569 + .long 3216915048 + .long 939980347 + .long 3219008349 + .long 536870912 + .long 3160280457 + .long 0 + .long 1072693248 + .long 2255197647 + .long 3216211105 + .long 2796464483 + .long 3218636258 + .long 3758096384 + .long 1013394669 + .long 0 + .long 1072693248 + .long 2476548698 + .long 3215330282 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 0 + .long 1072693248 + .long 18115067 + .long 3214126342 + .long 1013556747 + .long 3217619128 + .long 3221225472 + .long 1013083417 + .long 0 + .long 1072693248 + .long 393047345 + .long 3212032302 + .long 3156849708 + .long 3216578470 + .long 3758096384 + .long 1010706200 + .long 0 + .long 1072693248 + .type Ctable,@object + .size Ctable,2048 + .align 16 +SC_2: + .long 286331153 + .long 1065423121 + .long 1431655765 + .long 1067799893 + .type SC_2,@object + .size SC_2,16 + .align 16 +SC_3: + .long 436314138 + .long 3207201184 + .long 381774871 + .long 3210133868 + .type SC_3,@object + .size SC_3,16 + .align 16 +SC_1: + .long 1431655765 + .long 3217380693 + .long 0 + .long 3219128320 + .type SC_1,@object + .size SC_1,16 + .align 16 +PI_INV_TABLE: + .long 0 + .long 0 + .long 2734261102 + .long 1313084713 + .long 4230436817 + .long 4113882560 + .long 3680671129 + .long 1011060801 + .long 4266746795 + .long 3736847713 + .long 3072618042 + .long 1112396512 + .long 105459434 + .long 164729372 + .long 4263373596 + .long 2972297022 + .long 3900847605 + .long 784024708 + .long 3919343654 + .long 3026157121 + .long 965858873 + .long 2203269620 + .long 2625920907 + .long 3187222587 + .long 536385535 + .long 3724908559 + .long 4012839307 + .long 1510632735 + .long 1832287951 + .long 667617719 + .long 1330003814 + .long 2657085997 + .long 1965537991 + .long 3957715323 + .long 1023883767 + .long 2320667370 + .long 1811636145 + .long 529358088 + .long 1443049542 + .long 4235946923 + .long 4040145953 + .type PI_INV_TABLE,@object + .size PI_INV_TABLE,164 + .space 12, 0x00 # pad + .align 16 +PI_4: + .long 1073741824 + .long 1072243195 + .long 407279769 + .long 1046758445 + .type PI_4,@object + .size PI_4,16 + .align 8 +PI32INV: + .long 1841940611 + .long 1076125488 + .type PI32INV,@object + .size PI32INV,8 + .align 8 +SIGN_MASK: + .long 0 + .long 2147483648 + .type SIGN_MASK,@object + .size SIGN_MASK,8 + .align 8 +P_1: + .long 1413480448 + .long 1069097467 + .type P_1,@object + .size P_1,8 + .align 8 +P_3: + .long 771977331 + .long 996350346 + .type P_3,@object + .size P_3,8 + .align 8 +ONE: + .long 0 + .long 1072693248 + .type ONE,@object + .size ONE,8 + .align 8 +NEG_ZERO: + .long 0 + .long 2147483648 + .type NEG_ZERO,@object + .size NEG_ZERO,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000002c + .4byte 0x0000001c + .4byte ..___tag_value_cos.1-. + .4byte ..___tag_value_cos.9-..___tag_value_cos.1 + .2byte 0x0400 + .4byte ..___tag_value_cos.3-..___tag_value_cos.1 + .4byte 0x0283100e + .byte 0x04 + .4byte ..___tag_value_cos.5-..___tag_value_cos.3 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_cos.6-..___tag_value_cos.5 + .4byte 0x04c3100e + .4byte ..___tag_value_cos.8-..___tag_value_cos.6 + .2byte 0x080e +# End diff --git a/libm/x86_64/s_expm1.S b/libm/x86_64/s_expm1.S new file mode 100644 index 000000000..9da1d9dd6 --- /dev/null +++ b/libm/x86_64/s_expm1.S @@ -0,0 +1,727 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Description: +// Let K = 64 (table size). +// +// Four sub-domains: +// 1. |x| < 1/(2*K) +// expm1(x) ~ P(x) +// 2. 1/(2*K) <= |x| <= 56*log(2) +// x x/log(2) n +// e - 1 = 2 = 2 * T[j] * (1 + P(y)) - 1 +// 3. 56*log(2) < x < MAX_LOG +// x x x/log(2) n +// e - 1 ~ e = 2 = 2 * T[j] * (1 + P(y)) +// 4. x < -56*log(2) +// x x +// e - 1 = -1 + e ~ -1 +// where +// x = m*log(2)/K + y, y in [-log(2)/K..log(2)/K] +// m = n*K + j, m,n,j - signed integer, j in [-K/2..K/2] +// j/K +// values of 2 are tabulated as T[j] = T_hi[j] ( 1 + T_lo[j]). +// +// P(y) is a minimax polynomial approximation of exp(x)-1 +// on small interval [-log(2)/K..log(2)/K] (were calculated by Maple V). +// +// In case 3, to avoid problems with arithmetic overflow and underflow, +// n n1 n2 +// value of 2 is safely computed as 2 * 2 where n1 in [-BIAS/2..BIAS/2] +// and BIAS is a value of exponent bias. +// +// Special cases: +// expm1(NaN) is NaN +// expm1(+INF) is +INF +// expm1(-INF) is -1 +// expm1(x) is x for subnormals +// for finite argument, only expm1(0)=0 is exact. +// For IEEE double +// if x > 709.782712893383973096 then expm1(x) overflow +// +/******************************************************************************/ + +#include +# -- Begin expm1 +ENTRY(expm1) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_expm1.1: + subq $56, %rsp +..___tag_value_expm1.3: + movsd %xmm0, 32(%rsp) +..B1.2: + unpcklpd %xmm0, %xmm0 + movapd cv(%rip), %xmm1 + movapd Shifter(%rip), %xmm6 + movapd 16+cv(%rip), %xmm2 + movapd 32+cv(%rip), %xmm3 + pextrw $3, %xmm0, %eax + andl $32767, %eax + movl $16527, %edx + subl %eax, %edx + subl $16304, %eax + orl %eax, %edx + cmpl $-2147483648, %edx + jae .L_2TAG_PACKET_0.0.2 + mulpd %xmm0, %xmm1 + addpd %xmm6, %xmm1 + movapd %xmm1, %xmm7 + subpd %xmm6, %xmm1 + mulpd %xmm1, %xmm2 + movapd 48+cv(%rip), %xmm4 + mulpd %xmm1, %xmm3 + movapd 64+cv(%rip), %xmm5 + subpd %xmm2, %xmm0 + movd %xmm7, %eax + movl %eax, %ecx + andl $63, %ecx + shll $4, %ecx + sarl $6, %eax + movl %eax, %edx + subpd %xmm3, %xmm0 + lea Tbl_addr(%rip), %r11 + movapd (%rcx,%r11), %xmm2 + movq 80+cv(%rip), %xmm3 + mulpd %xmm0, %xmm4 + movapd %xmm0, %xmm1 + mulpd %xmm0, %xmm0 + mulsd %xmm0, %xmm3 + addpd %xmm4, %xmm5 + mulsd %xmm0, %xmm0 + movq %xmm2, %xmm4 + unpckhpd %xmm2, %xmm2 + movdqa mmask(%rip), %xmm6 + pand %xmm6, %xmm7 + movdqa bias(%rip), %xmm6 + paddq %xmm6, %xmm7 + psllq $46, %xmm7 + mulsd %xmm0, %xmm3 + mulpd %xmm5, %xmm0 + addl $894, %edx + cmpl $1916, %edx + ja .L_2TAG_PACKET_1.0.2 + addsd %xmm3, %xmm0 + xorpd %xmm3, %xmm3 + movl $16368, %eax + pinsrw $3, %eax, %xmm3 + orpd %xmm7, %xmm2 + mulsd %xmm4, %xmm7 + movq %xmm3, %xmm6 + addsd %xmm1, %xmm3 + pextrw $3, %xmm2, %edx + pshufd $238, %xmm0, %xmm5 + psrlq $38, %xmm3 + psllq $38, %xmm3 + movq %xmm2, %xmm4 + subsd %xmm3, %xmm6 + addsd %xmm5, %xmm0 + addsd %xmm6, %xmm1 + addsd %xmm7, %xmm4 + mulsd %xmm3, %xmm7 + mulsd %xmm2, %xmm3 + xorpd %xmm5, %xmm5 + movl $16368, %eax + pinsrw $3, %eax, %xmm5 + addsd %xmm1, %xmm0 + movl $17184, %ecx + subl %edx, %ecx + subl $16256, %edx + orl %edx, %ecx + jl .L_2TAG_PACKET_2.0.2 + mulsd %xmm4, %xmm0 + subsd %xmm5, %xmm3 + addsd %xmm7, %xmm0 + addsd %xmm3, %xmm0 +.L_2TAG_PACKET_3.0.2: + jmp ..B1.5 +.L_2TAG_PACKET_2.0.2: + cmpl $0, %edx + jl .L_2TAG_PACKET_4.0.2 + mulsd %xmm4, %xmm0 + subsd %xmm5, %xmm7 + addsd %xmm7, %xmm0 + addsd %xmm3, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_4.0.2: + mulsd %xmm4, %xmm0 + addsd %xmm7, %xmm0 + addsd %xmm3, %xmm0 + subsd %xmm5, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_1.0.2: + movl 36(%rsp), %ecx + addsd %xmm0, %xmm1 + unpckhpd %xmm0, %xmm0 + addsd %xmm1, %xmm0 + cmpl $0, %ecx + jl .L_2TAG_PACKET_5.0.2 + fstcw (%rsp) + movw (%rsp), %dx + orw $768, %dx + movw %dx, 4(%rsp) + fldcw 4(%rsp) + movl %eax, %edx + sarl $1, %eax + subl %eax, %edx + movdqa emask(%rip), %xmm6 + pandn %xmm2, %xmm6 + addl $1023, %eax + movd %eax, %xmm3 + psllq $52, %xmm3 + orpd %xmm3, %xmm6 + mulsd %xmm3, %xmm4 + movsd %xmm0, 16(%rsp) + fldl 16(%rsp) + movsd %xmm6, 24(%rsp) + fldl 24(%rsp) + movsd %xmm4, 16(%rsp) + fldl 16(%rsp) + addl $1023, %edx + movd %edx, %xmm4 + psllq $52, %xmm4 + faddp %st, %st(1) + fmul %st, %st(1) + faddp %st, %st(1) + movsd %xmm4, 24(%rsp) + fldl 24(%rsp) + fmulp %st, %st(1) + fstpl 16(%rsp) + movsd 16(%rsp), %xmm0 + fldcw (%rsp) + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + cmpl $32752, %ecx + jae .L_2TAG_PACKET_6.0.2 + jmp ..B1.5 + cmpl $-2147483648, %ecx + jb .L_2TAG_PACKET_6.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_6.0.2: + movl $41, 8(%rsp) + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_8.0.2: + cmpl $2146435072, %eax + jae .L_2TAG_PACKET_9.0.2 + movsd XMAX(%rip), %xmm0 + mulsd %xmm0, %xmm0 + movl $41, 8(%rsp) + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_9.0.2: + movl 36(%rsp), %eax + movl 32(%rsp), %edx + movl %eax, %ecx + andl $2147483647, %eax + cmpl $2146435072, %eax + ja .L_2TAG_PACKET_10.0.2 + cmpl $0, %edx + jne .L_2TAG_PACKET_10.0.2 + cmpl $0, %ecx + jl .L_2TAG_PACKET_11.0.2 + movq INF(%rip), %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_11.0.2: + jmp .L_2TAG_PACKET_5.0.2 +.L_2TAG_PACKET_10.0.2: + movsd 32(%rsp), %xmm0 + addsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_12.0.2: + addl $16304, %eax + cmpl $15504, %eax + jb .L_2TAG_PACKET_13.0.2 + movapd cvl(%rip), %xmm2 + pshufd $68, %xmm0, %xmm1 + movapd 16+cvl(%rip), %xmm3 + movapd 32+cvl(%rip), %xmm4 + movq 48+cvl(%rip), %xmm5 + mulsd %xmm1, %xmm1 + xorpd %xmm6, %xmm6 + movl $16352, %eax + pinsrw $3, %eax, %xmm6 + mulpd %xmm0, %xmm2 + xorpd %xmm7, %xmm7 + movl $16368, %edx + pinsrw $3, %edx, %xmm7 + addpd %xmm3, %xmm2 + mulsd %xmm1, %xmm5 + pshufd $228, %xmm1, %xmm3 + mulpd %xmm1, %xmm1 + mulsd %xmm0, %xmm6 + mulpd %xmm0, %xmm2 + addpd %xmm4, %xmm2 + movq %xmm7, %xmm4 + addsd %xmm6, %xmm7 + mulpd %xmm3, %xmm1 + psrlq $27, %xmm7 + psllq $27, %xmm7 + movq HIGHMASK(%rip), %xmm3 + subsd %xmm7, %xmm4 + mulpd %xmm1, %xmm2 + addsd %xmm4, %xmm6 + pshufd $238, %xmm2, %xmm1 + addsd %xmm2, %xmm6 + andpd %xmm0, %xmm3 + movq %xmm0, %xmm4 + addsd %xmm6, %xmm1 + subsd %xmm3, %xmm0 + addsd %xmm5, %xmm1 + mulsd %xmm7, %xmm3 + mulsd %xmm7, %xmm0 + mulsd %xmm1, %xmm4 + addsd %xmm4, %xmm0 + addsd %xmm3, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_13.0.2: + cmpl $16, %eax + jae .L_2TAG_PACKET_3.0.2 + movq %xmm0, %xmm2 + movd %xmm0, %eax + psrlq $31, %xmm2 + movd %xmm2, %ecx + orl %ecx, %eax + je .L_2TAG_PACKET_3.0.2 + movl $16, %edx + xorpd %xmm1, %xmm1 + pinsrw $3, %edx, %xmm1 + mulsd %xmm1, %xmm1 + movl $42, 8(%rsp) + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_0.0.2: + cmpl $0, %eax + jl .L_2TAG_PACKET_12.0.2 + movl 36(%rsp), %eax + cmpl $1083179008, %eax + jge .L_2TAG_PACKET_8.0.2 + cmpl $-1048576, %eax + jae .L_2TAG_PACKET_9.0.2 +.L_2TAG_PACKET_5.0.2: + xorpd %xmm0, %xmm0 + movl $49136, %eax + pinsrw $3, %eax, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_7.0.2: + movq %xmm0, 40(%rsp) +..B1.3: + movq 40(%rsp), %xmm0 +.L_2TAG_PACKET_14.0.2: +..B1.5: + addq $56, %rsp +..___tag_value_expm1.4: + ret +..___tag_value_expm1.5: +END(expm1) +# -- End expm1 + .section .rodata, "a" + .align 16 + .align 16 +cv: + .long 1697350398 + .long 1079448903 + .long 1697350398 + .long 1079448903 + .long 4277796864 + .long 1065758274 + .long 4277796864 + .long 1065758274 + .long 3164486458 + .long 1025308570 + .long 3164486458 + .long 1025308570 + .long 1963358694 + .long 1065423121 + .long 1431655765 + .long 1069897045 + .long 1431655765 + .long 1067799893 + .long 0 + .long 1071644672 + .long 381774871 + .long 1062650220 + .long 381774871 + .long 1062650220 + .type cv,@object + .size cv,96 + .align 16 +Shifter: + .long 0 + .long 1127743488 + .long 0 + .long 1127743488 + .type Shifter,@object + .size Shifter,16 + .align 16 +Tbl_addr: + .long 0 + .long 0 + .long 0 + .long 0 + .long 1000070955 + .long 1042145304 + .long 1040187392 + .long 11418 + .long 988267849 + .long 1039500660 + .long 3539992576 + .long 22960 + .long 36755401 + .long 1042114290 + .long 402653184 + .long 34629 + .long 3634769483 + .long 1042178627 + .long 1820327936 + .long 46424 + .long 2155991225 + .long 1041560680 + .long 847249408 + .long 58348 + .long 2766913307 + .long 1039293264 + .long 3489660928 + .long 70401 + .long 3651174602 + .long 1040488175 + .long 2927624192 + .long 82586 + .long 3073892131 + .long 1042240606 + .long 1006632960 + .long 94904 + .long 1328391742 + .long 1042019037 + .long 3942645760 + .long 107355 + .long 2650893825 + .long 1041903210 + .long 822083584 + .long 119943 + .long 2397289153 + .long 1041802037 + .long 2281701376 + .long 132667 + .long 430997175 + .long 1042110606 + .long 1845493760 + .long 145530 + .long 1230936525 + .long 1041801015 + .long 1702887424 + .long 158533 + .long 740675935 + .long 1040178913 + .long 4110417920 + .long 171677 + .long 3489810261 + .long 1041825986 + .long 2793406464 + .long 184965 + .long 2532600530 + .long 1040767882 + .long 167772160 + .long 198398 + .long 3542557060 + .long 1041827263 + .long 2986344448 + .long 211976 + .long 1401563777 + .long 1041061093 + .long 922746880 + .long 225703 + .long 3129406026 + .long 1041852413 + .long 880803840 + .long 239579 + .long 900993572 + .long 1039283234 + .long 1275068416 + .long 253606 + .long 2115029358 + .long 1042140042 + .long 562036736 + .long 267786 + .long 1086643152 + .long 1041785419 + .long 1610612736 + .long 282120 + .long 82864366 + .long 1041256244 + .long 3045064704 + .long 296610 + .long 2392968152 + .long 1040913683 + .long 3573547008 + .long 311258 + .long 2905856183 + .long 1040002214 + .long 1988100096 + .long 326066 + .long 3742008261 + .long 1040011137 + .long 1451229184 + .long 341035 + .long 863393794 + .long 1040880621 + .long 914358272 + .long 356167 + .long 1446136837 + .long 1041372426 + .long 3707764736 + .long 371463 + .long 927855201 + .long 1040617636 + .long 360710144 + .long 386927 + .long 1492679939 + .long 1041050306 + .long 2952790016 + .long 402558 + .long 608827001 + .long 1041582217 + .long 2181038080 + .long 418360 + .long 606260204 + .long 1042271987 + .long 1711276032 + .long 434334 + .long 3163044019 + .long 1041843851 + .long 1006632960 + .long 450482 + .long 4148747325 + .long 1041962972 + .long 3900702720 + .long 466805 + .long 802924201 + .long 1041275378 + .long 1442840576 + .long 483307 + .long 3052749833 + .long 1041940577 + .long 1937768448 + .long 499988 + .long 2216116399 + .long 1041486744 + .long 914358272 + .long 516851 + .long 2729697836 + .long 1041445764 + .long 2566914048 + .long 533897 + .long 540608356 + .long 1041310907 + .long 2600468480 + .long 551129 + .long 2916344493 + .long 1040535661 + .long 1107296256 + .long 568549 + .long 731391814 + .long 1039497014 + .long 2566914048 + .long 586158 + .long 1024722704 + .long 1041461625 + .long 2961178624 + .long 603959 + .long 3806831748 + .long 1041732499 + .long 2675965952 + .long 621954 + .long 238953304 + .long 1040316488 + .long 2189426688 + .long 640145 + .long 749123235 + .long 1041725785 + .long 2063597568 + .long 658534 + .long 1168187977 + .long 1041175214 + .long 2986344448 + .long 677123 + .long 3506096399 + .long 1042186095 + .long 1426063360 + .long 695915 + .long 1470221620 + .long 1041675499 + .long 2566914048 + .long 714911 + .long 3182425146 + .long 1041483134 + .long 3087007744 + .long 734114 + .long 3131698208 + .long 1042208657 + .long 4068474880 + .long 753526 + .long 2300504125 + .long 1041428596 + .long 2415919104 + .long 773150 + .long 2290297931 + .long 1037388400 + .long 3716153344 + .long 792987 + .long 3532148223 + .long 1041626194 + .long 771751936 + .long 813041 + .long 1161884404 + .long 1042015258 + .long 3699376128 + .long 833312 + .long 876383176 + .long 1037968878 + .long 1241513984 + .long 853805 + .long 3379986796 + .long 1042213153 + .long 3699376128 + .long 874520 + .long 1545797737 + .long 1041681569 + .long 58720256 + .long 895462 + .long 2925146801 + .long 1042212567 + .long 855638016 + .long 916631 + .long 1316627971 + .long 1038516204 + .long 3883925504 + .long 938030 + .long 3267869137 + .long 1040337004 + .long 2726297600 + .long 959663 + .long 3720868999 + .long 1041782409 + .long 3992977408 + .long 981531 + .long 433316142 + .long 1041994064 + .long 1526726656 + .long 1003638 + .long 781232103 + .long 1040093400 + .long 2172649472 + .long 1025985 + .type Tbl_addr,@object + .size Tbl_addr,1024 + .align 16 +mmask: + .long 4294967232 + .long 0 + .long 4294967232 + .long 0 + .type mmask,@object + .size mmask,16 + .align 16 +bias: + .long 65472 + .long 0 + .long 65472 + .long 0 + .type bias,@object + .size bias,16 + .align 16 +emask: + .long 0 + .long 4293918720 + .long 0 + .long 4293918720 + .type emask,@object + .size emask,16 + .align 16 +cvl: + .long 2773927732 + .long 1053236707 + .long 381774871 + .long 1062650220 + .long 379653899 + .long 1056571845 + .long 286331153 + .long 1065423121 + .long 436314138 + .long 1059717536 + .long 1431655765 + .long 1067799893 + .long 1431655765 + .long 1069897045 + .long 0 + .long 1071644672 + .type cvl,@object + .size cvl,64 + .align 8 +XMAX: + .long 4294967295 + .long 2146435071 + .type XMAX,@object + .size XMAX,8 + .align 8 +INF: + .long 0 + .long 2146435072 + .type INF,@object + .size INF,8 + .align 8 +HIGHMASK: + .long 4227858432 + .long 4294967295 + .type HIGHMASK,@object + .size HIGHMASK,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_expm1.1-. + .4byte ..___tag_value_expm1.5-..___tag_value_expm1.1 + .2byte 0x0400 + .4byte ..___tag_value_expm1.3-..___tag_value_expm1.1 + .2byte 0x400e + .byte 0x04 + .4byte ..___tag_value_expm1.4-..___tag_value_expm1.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/s_log1p.S b/libm/x86_64/s_log1p.S new file mode 100644 index 000000000..1ff2d3965 --- /dev/null +++ b/libm/x86_64/s_log1p.S @@ -0,0 +1,829 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Let x=2^k * mx, mx in [1,2) +// +// Get B~1/mx based on the output of rcpps instruction (B0) +// B = int((B0*2^7+0.5))/2^7 +// +// Reduced argument: r=B*mx-1.0 (computed accurately in high and low parts) +// +// Result: k*log(2) - log(B) + p(r) +// p(r) is a degree 7 polynomial +// -log(B) read from data table (high, low parts) +// Result is formed from high and low parts +// +// Special cases: +// log1p(NaN) = quiet NaN, and raise invalid exception +// log1p(+INF) = that INF +// log1p(x) = NaN if x < -1 or x = -INF, and raises invalid exception +// log1p(-1) = -INF, and raises divide-by-zero exception +// log1p(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin log1p +ENTRY(log1p) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_log1p.1: + subq $24, %rsp +..___tag_value_log1p.3: + movsd %xmm0, 8(%rsp) +..B1.2: + movq $0x3ff0000000000000, %rax + movd %rax, %xmm2 + xorpd %xmm3, %xmm3 + movl $32768, %ecx + movd %rcx, %xmm4 + movq $0xffffe00000000000, %r8 + movd %r8, %xmm5 + movddup %xmm0, %xmm7 + pshufd $68, %xmm2, %xmm6 + pextrw $3, %xmm0, %ecx + addsd %xmm2, %xmm0 + movq %xmm0, %xmm1 + pextrw $3, %xmm0, %eax + subsd %xmm0, %xmm6 + orpd %xmm2, %xmm0 + psrlq $27, %xmm0 + lea L_tbl(%rip), %r11 + psrld $2, %xmm0 + subl $16, %eax + cmpl $32736, %eax + jae .L_2TAG_PACKET_0.0.2 + addsd %xmm6, %xmm7 + rcpps %xmm0, %xmm0 + psllq $12, %xmm1 + pshufd $228, %xmm5, %xmm6 + psrlq $12, %xmm1 + andl $32752, %ecx + cmpl $16256, %ecx + jb .L_2TAG_PACKET_1.0.2 + andl $32752, %eax + movl $32720, %ecx + subl %eax, %ecx + pinsrw $3, %ecx, %xmm3 +.L_2TAG_PACKET_2.0.2: + mulsd %xmm3, %xmm7 + paddd %xmm4, %xmm0 + movq $0x3800000000000000, %rcx + movd %rcx, %xmm4 + orpd %xmm2, %xmm1 + movd %xmm0, %edx + psllq $29, %xmm0 + andpd %xmm1, %xmm5 + andpd %xmm6, %xmm0 + subsd %xmm5, %xmm1 + paddd %xmm4, %xmm0 + mulsd %xmm0, %xmm5 + movl $16352, %ecx + subl %ecx, %eax + cvtsi2sd %eax, %xmm4 + mulsd %xmm0, %xmm7 + mulsd %xmm0, %xmm1 + movq log2(%rip), %xmm6 + movapd coeff(%rip), %xmm3 + subsd %xmm2, %xmm5 + andl $16711680, %edx + shrl $12, %edx + movapd (%r11,%rdx), %xmm0 + movapd 16+coeff(%rip), %xmm2 + addsd %xmm5, %xmm1 + movq %xmm1, %xmm5 + addsd %xmm7, %xmm1 + subsd %xmm1, %xmm5 + addsd %xmm5, %xmm7 + mulsd %xmm4, %xmm6 + mulsd 8+log2(%rip), %xmm4 + mulsd %xmm1, %xmm3 + movddup %xmm1, %xmm5 + addsd %xmm6, %xmm0 + mulpd %xmm5, %xmm2 + mulpd %xmm5, %xmm5 + movddup %xmm0, %xmm6 + addsd %xmm1, %xmm0 + addpd 32+coeff(%rip), %xmm2 + mulpd %xmm5, %xmm3 + subsd %xmm0, %xmm6 + mulsd %xmm1, %xmm2 + addsd %xmm7, %xmm4 + mulsd %xmm1, %xmm7 + addsd %xmm6, %xmm1 + pshufd $238, %xmm0, %xmm6 + mulsd %xmm5, %xmm5 + addsd %xmm6, %xmm4 + subsd %xmm7, %xmm1 + addpd %xmm3, %xmm2 + addsd %xmm4, %xmm1 + mulpd %xmm5, %xmm2 + addsd %xmm2, %xmm1 + pshufd $238, %xmm2, %xmm5 + addsd %xmm5, %xmm1 + addsd %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_0.0.2: + movq 8(%rsp), %xmm0 + movq 8(%rsp), %xmm1 + addl $16, %eax + cmpl $32768, %eax + jae .L_2TAG_PACKET_3.0.2 + cmpl $0, %eax + je .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_5.0.2: + addsd %xmm0, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_6.0.2: + ja .L_2TAG_PACKET_5.0.2 + cmpl $0, %edx + ja .L_2TAG_PACKET_5.0.2 + jmp .L_2TAG_PACKET_7.0.2 +.L_2TAG_PACKET_3.0.2: + movd %xmm1, %edx + psrlq $32, %xmm1 + movd %xmm1, %ecx + addl %ecx, %ecx + cmpl $-2097152, %ecx + jae .L_2TAG_PACKET_6.0.2 + orl %ecx, %edx + cmpl $0, %edx + je .L_2TAG_PACKET_4.0.2 +.L_2TAG_PACKET_7.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $32752, %eax + pinsrw $3, %eax, %xmm1 + movl $141, (%rsp) + mulsd %xmm1, %xmm0 + jmp .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_4.0.2: + xorpd %xmm1, %xmm1 + xorpd %xmm0, %xmm0 + movl $49136, %eax + pinsrw $3, %eax, %xmm0 + divsd %xmm1, %xmm0 + movl $140, (%rsp) + jmp .L_2TAG_PACKET_8.0.2 +.L_2TAG_PACKET_1.0.2: + movq 8(%rsp), %xmm0 + cmpl $15504, %ecx + jb .L_2TAG_PACKET_9.0.2 + movapd coeff2(%rip), %xmm1 + pshufd $68, %xmm0, %xmm0 + movapd 16+coeff2(%rip), %xmm2 + pshufd $68, %xmm0, %xmm4 + movapd 32+coeff2(%rip), %xmm3 + mulpd %xmm0, %xmm1 + xorpd %xmm6, %xmm6 + mulpd %xmm4, %xmm4 + addpd %xmm2, %xmm1 + pshufd $68, %xmm4, %xmm5 + mulpd %xmm0, %xmm4 + movl $49120, %eax + pinsrw $3, %eax, %xmm6 + mulpd %xmm0, %xmm1 + mulsd %xmm4, %xmm4 + addpd %xmm3, %xmm1 + mulsd %xmm6, %xmm5 + mulpd %xmm4, %xmm1 + pshufd $238, %xmm1, %xmm7 + addsd %xmm7, %xmm1 + addsd %xmm5, %xmm1 + addsd %xmm1, %xmm0 + jmp ..B1.5 +.L_2TAG_PACKET_9.0.2: + cmpl $16, %ecx + jb .L_2TAG_PACKET_10.0.2 + jmp ..B1.5 +.L_2TAG_PACKET_10.0.2: + movq %xmm0, %xmm1 + mulsd %xmm1, %xmm1 + jmp ..B1.5 +.L_2TAG_PACKET_8.0.2: + movq %xmm0, 16(%rsp) +..B1.3: + movq 16(%rsp), %xmm0 +.L_2TAG_PACKET_11.0.2: +..B1.5: + addq $24, %rsp +..___tag_value_log1p.4: + ret +..___tag_value_log1p.5: +END(log1p) +# -- End log1p + .section .rodata, "a" + .align 16 + .align 16 +L_tbl: + .long 4277811200 + .long 1072049730 + .long 2479318832 + .long 1026487127 + .long 2854492160 + .long 1072033410 + .long 215631550 + .long 1025638968 + .long 1547061248 + .long 1072017216 + .long 2886781435 + .long 1026423395 + .long 649825280 + .long 1072001146 + .long 4281533405 + .long 1024038923 + .long 646346752 + .long 1071985198 + .long 1562735921 + .long 1023790276 + .long 2203734016 + .long 1071969370 + .long 1838397691 + .long 3173936209 + .long 1872169984 + .long 1071953661 + .long 3981202460 + .long 1022325013 + .long 669557760 + .long 1071938069 + .long 4182597802 + .long 3173174122 + .long 4076413952 + .long 1071922591 + .long 1209029111 + .long 3170736207 + .long 556125184 + .long 1071907228 + .long 821086028 + .long 3173437049 + .long 204914688 + .long 1071891976 + .long 2097025986 + .long 3171071798 + .long 387545088 + .long 1071876834 + .long 3142936996 + .long 3173092218 + .long 2912783360 + .long 1071861800 + .long 2502420140 + .long 1024505919 + .long 1144260608 + .long 1071846874 + .long 3315658140 + .long 3173469843 + .long 1471209472 + .long 1071832053 + .long 129621009 + .long 3172443877 + .long 1829683200 + .long 1071817336 + .long 3885467693 + .long 1025535275 + .long 288676864 + .long 1071802722 + .long 86139472 + .long 3171639793 + .long 3636378624 + .long 1071788208 + .long 1850238587 + .long 1024654342 + .long 1606817792 + .long 1071773795 + .long 3388899795 + .long 3173675586 + .long 1236164608 + .long 1071759480 + .long 3983599207 + .long 1020046558 + .long 1089616896 + .long 1071745262 + .long 4171974224 + .long 1024773198 + .long 4143093760 + .long 1071731139 + .long 2727587401 + .long 3173965207 + .long 600267776 + .long 1071717112 + .long 3147685042 + .long 3173353031 + .long 2249313280 + .long 1071703177 + .long 125835074 + .long 1025255832 + .long 3805303808 + .long 1071689334 + .long 2289991207 + .long 1025460331 + .long 87278592 + .long 1071675583 + .long 1106114045 + .long 1025933602 + .long 3195405312 + .long 1071661920 + .long 3885316576 + .long 3171206239 + .long 3853649920 + .long 1071648346 + .long 2977069852 + .long 3171236771 + .long 2944026624 + .long 1071625048 + .long 1008093493 + .long 1023444474 + .long 3993180160 + .long 1071598247 + .long 1862355595 + .long 1024642533 + .long 1454641152 + .long 1071571617 + .long 1514603089 + .long 1026500596 + .long 3286085632 + .long 1071545154 + .long 1400028424 + .long 3173279056 + .long 438773760 + .long 1071518858 + .long 120727864 + .long 3172148914 + .long 1212979200 + .long 1071492725 + .long 1625055594 + .long 3172901933 + .long 1189017600 + .long 1071466754 + .long 3920062376 + .long 1025727407 + .long 403064832 + .long 1071440943 + .long 1053271728 + .long 3171391427 + .long 3343210496 + .long 1071415289 + .long 3243395502 + .long 3173627613 + .long 1765777408 + .long 1071389792 + .long 2145968512 + .long 1026354304 + .long 461430784 + .long 1071364449 + .long 4094322285 + .long 1026021467 + .long 71706624 + .long 1071339258 + .long 763632021 + .long 1024496933 + .long 1380503552 + .long 1071314217 + .long 1383547992 + .long 3173088453 + .long 1015732224 + .long 1071289325 + .long 3198646877 + .long 1025390322 + .long 35977216 + .long 1071264580 + .long 2141026805 + .long 1025754693 + .long 3927306240 + .long 1071239979 + .long 282116272 + .long 3173394334 + .long 1125341184 + .long 1071215523 + .long 2768427504 + .long 3172279059 + .long 1666971648 + .long 1071191208 + .long 786837629 + .long 3172427445 + .long 2827694080 + .long 1071167033 + .long 3857122416 + .long 3173014241 + .long 2003683328 + .long 1071142997 + .long 859010954 + .long 1026545007 + .long 1004017664 + .long 1071119098 + .long 3356644970 + .long 3173458064 + .long 1753020416 + .long 1071095334 + .long 788338552 + .long 1026157693 + .long 1992718336 + .long 1071071704 + .long 1239179443 + .long 1026394889 + .long 3870234624 + .long 1071048206 + .long 2082614663 + .long 1024926053 + .long 1050437632 + .long 1071024840 + .long 660007840 + .long 1025548499 + .long 188395520 + .long 1071001603 + .long 3878792704 + .long 3173889571 + .long 3747176448 + .long 1070978493 + .long 144991708 + .long 3171552042 + .long 1405669376 + .long 1070955511 + .long 3999088879 + .long 1025486317 + .long 121151488 + .long 1070932654 + .long 2170865497 + .long 1026473584 + .long 2652319744 + .long 1070909920 + .long 453695652 + .long 3173916809 + .long 3262236672 + .long 1070887309 + .long 157800053 + .long 3173984206 + .long 601221120 + .long 1070864820 + .long 3968917661 + .long 1023992886 + .long 1999843328 + .long 1070842450 + .long 3053895004 + .long 1024998228 + .long 1992167424 + .long 1070820199 + .long 2968614856 + .long 1024552653 + .long 3788726272 + .long 1070798065 + .long 3542170808 + .long 3173573242 + .long 2094829568 + .long 1070776048 + .long 1246758132 + .long 1026202874 + .long 288675840 + .long 1070754146 + .long 3747328950 + .long 1026331585 + .long 1829681152 + .long 1070732357 + .long 3125197546 + .long 1024100318 + .long 1666869248 + .long 1070710681 + .long 1363656119 + .long 1026336493 + .long 3417110528 + .long 1070689116 + .long 4154791553 + .long 1026267853 + .long 2183653376 + .long 1070667662 + .long 1671819292 + .long 3173785870 + .long 1734434816 + .long 1070646317 + .long 373091049 + .long 1025972363 + .long 1615681536 + .long 1070625080 + .long 384650897 + .long 1022926043 + .long 1445382144 + .long 1070603950 + .long 344320330 + .long 3172397196 + .long 1823715328 + .long 1070569756 + .long 3389841200 + .long 1025231852 + .long 3839688704 + .long 1070527917 + .long 1706790417 + .long 3167363349 + .long 4293332992 + .long 1070486286 + .long 1614935088 + .long 1019351591 + .long 2966720512 + .long 1070444861 + .long 4145393717 + .long 3173711658 + .long 4066729984 + .long 1070403639 + .long 1974925028 + .long 3171437182 + .long 3337621504 + .long 1070362619 + .long 3314953170 + .long 3169971314 + .long 943448064 + .long 1070321799 + .long 1498682038 + .long 3173862340 + .long 1465634816 + .long 1070281176 + .long 1319952810 + .long 3171693965 + .long 1015734272 + .long 1070240749 + .long 1347821929 + .long 3173544515 + .long 118001664 + .long 1070200516 + .long 1751482746 + .long 1026134093 + .long 3707174912 + .long 1070160474 + .long 1486946159 + .long 1023930920 + .long 3946381312 + .long 1070120623 + .long 2867408081 + .long 3171368276 + .long 1699848192 + .long 1070080961 + .long 2590187139 + .long 1025379803 + .long 2235846656 + .long 1070041485 + .long 1888568069 + .long 3172754960 + .long 2339729408 + .long 1070002194 + .long 3852214753 + .long 3173323149 + .long 3196850176 + .long 1069963086 + .long 742141560 + .long 1025101707 + .long 1800683520 + .long 1069924160 + .long 3949500444 + .long 3172102179 + .long 3835801600 + .long 1069885413 + .long 3848895943 + .long 1025913832 + .long 2201202688 + .long 1069846845 + .long 1425913464 + .long 1025868665 + .long 2778279936 + .long 1069808453 + .long 2120889677 + .long 3173831128 + .long 2954203136 + .long 1069770236 + .long 592147081 + .long 1019621288 + .long 210141184 + .long 1069732193 + .long 3414275233 + .long 1023647084 + .long 709476352 + .long 1069694321 + .long 2413027164 + .long 1024462115 + .long 2116284416 + .long 1069656619 + .long 1144559924 + .long 1026336654 + .long 2183651328 + .long 1069619086 + .long 3459057650 + .long 1025634168 + .long 3047047168 + .long 1069581720 + .long 1879674924 + .long 3173508573 + .long 970711040 + .long 1069541521 + .long 1335954173 + .long 3173332182 + .long 2198478848 + .long 1069467449 + .long 2951103968 + .long 3173892200 + .long 1669611520 + .long 1069393703 + .long 531044147 + .long 1025149248 + .long 29114368 + .long 1069320280 + .long 3327831251 + .long 1025918673 + .long 2376949760 + .long 1069247176 + .long 737634533 + .long 3172176000 + .long 1085390848 + .long 1069174390 + .long 3108243400 + .long 3171828406 + .long 1566130176 + .long 1069101918 + .long 985483226 + .long 1025708380 + .long 792780800 + .long 1069029758 + .long 4184866295 + .long 1024426204 + .long 183156736 + .long 1068957907 + .long 2845699378 + .long 1022107277 + .long 1301782528 + .long 1068886362 + .long 1012735262 + .long 3173804294 + .long 1562411008 + .long 1068815121 + .long 2197086703 + .long 3170187813 + .long 2815549440 + .long 1068744181 + .long 2782613207 + .long 1026345054 + .long 2756124672 + .long 1068673540 + .long 2929486205 + .long 3173037800 + .long 3511050240 + .long 1068603195 + .long 1443733147 + .long 3173331549 + .long 3047047168 + .long 1068533144 + .long 1879674924 + .long 3172459997 + .long 3221667840 + .long 1068427825 + .long 1338588027 + .long 3171815742 + .long 3453861888 + .long 1068288883 + .long 1205348359 + .long 3172624626 + .long 3506110464 + .long 1068150514 + .long 893105198 + .long 1025571866 + .long 346013696 + .long 1068012714 + .long 3495569021 + .long 3172563349 + .long 4074029056 + .long 1067875476 + .long 3961106338 + .long 3171065595 + .long 3559784448 + .long 1067738798 + .long 1975385384 + .long 3173783155 + .long 797769728 + .long 1067602675 + .long 3760305787 + .long 1026047642 + .long 2313633792 + .long 1067467101 + .long 1559353171 + .long 1023480256 + .long 3960766464 + .long 1067213778 + .long 1067365107 + .long 1025865926 + .long 684261376 + .long 1066944805 + .long 844762164 + .long 3173687482 + .long 630718464 + .long 1066676905 + .long 2458269694 + .long 1024033081 + .long 1486061568 + .long 1066410070 + .long 115537874 + .long 3173243995 + .long 2743664640 + .long 1065886792 + .long 3665098304 + .long 3173471607 + .long 1971912704 + .long 1065357333 + .long 2577214440 + .long 3171993451 + .long 1498939392 + .long 1064306693 + .long 3409036923 + .long 1025599151 + .long 0 + .long 0 + .long 0 + .long 2147483648 + .type L_tbl,@object + .size L_tbl,2064 + .align 16 +log2: + .long 4277811200 + .long 1067855426 + .long 2479318832 + .long 1022292823 + .type log2,@object + .size log2,16 + .align 16 +coeff: + .long 2454267026 + .long 1069697316 + .long 0 + .long 3218079744 + .long 1030730101 + .long 3217380702 + .long 1431655765 + .long 1070945621 + .long 2576980378 + .long 1070176665 + .long 0 + .long 3219128320 + .type coeff,@object + .size coeff,48 + .align 16 +coeff2: + .long 0 + .long 3217031168 + .long 2576980378 + .long 1070176665 + .long 2454267026 + .long 1069697316 + .long 0 + .long 3218079744 + .long 1431655765 + .long 3217380693 + .long 1431655765 + .long 1070945621 + .type coeff2,@object + .size coeff2,48 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_log1p.1-. + .4byte ..___tag_value_log1p.5-..___tag_value_log1p.1 + .2byte 0x0400 + .4byte ..___tag_value_log1p.3-..___tag_value_log1p.1 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_log1p.4-..___tag_value_log1p.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/s_sin.S b/libm/x86_64/s_sin.S new file mode 100644 index 000000000..2f93a34bb --- /dev/null +++ b/libm/x86_64/s_sin.S @@ -0,0 +1,1300 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// 1. RANGE REDUCTION +// +// We perform an initial range reduction from X to r with +// +// X =~= N * pi/32 + r +// +// so that |r| <= pi/64 + epsilon. We restrict inputs to those +// where |N| <= 932560. Beyond this, the range reduction is +// insufficiently accurate. For extremely small inputs, +// denormalization can occur internally, impacting performance. +// This means that the main path is actually only taken for +// 2^-252 <= |X| < 90112. +// +// To avoid branches, we perform the range reduction to full +// accuracy each time. +// +// X - N * (P_1 + P_2 + P_3) +// +// where P_1 and P_2 are 32-bit numbers (so multiplication by N +// is exact) and P_3 is a 53-bit number. Together, these +// approximate pi well enough for all cases in the restricted +// range. +// +// The main reduction sequence is: +// +// y = 32/pi * x +// N = integer(y) +// (computed by adding and subtracting off SHIFTER) +// +// m_1 = N * P_1 +// m_2 = N * P_2 +// r_1 = x - m_1 +// r = r_1 - m_2 +// (this r can be used for most of the calculation) +// +// c_1 = r_1 - r +// m_3 = N * P_3 +// c_2 = c_1 - m_2 +// c = c_2 - m_3 +// +// 2. MAIN ALGORITHM +// +// The algorithm uses a table lookup based on B = M * pi / 32 +// where M = N mod 64. The stored values are: +// sigma closest power of 2 to cos(B) +// C_hl 53-bit cos(B) - sigma +// S_hi + S_lo 2 * 53-bit sin(B) +// +// The computation is organized as follows: +// +// sin(B + r + c) = [sin(B) + sigma * r] + +// r * (cos(B) - sigma) + +// sin(B) * [cos(r + c) - 1] + +// cos(B) * [sin(r + c) - r] +// +// which is approximately: +// +// [S_hi + sigma * r] + +// C_hl * r + +// S_lo + S_hi * [(cos(r) - 1) - r * c] + +// (C_hl + sigma) * [(sin(r) - r) + c] +// +// and this is what is actually computed. We separate this sum +// into four parts: +// +// hi + med + pols + corr +// +// where +// +// hi = S_hi + sigma r +// med = C_hl * r +// pols = S_hi * (cos(r) - 1) + (C_hl + sigma) * (sin(r) - r) +// corr = S_lo + c * ((C_hl + sigma) - S_hi * r) +// +// 3. POLYNOMIAL +// +// The polynomial S_hi * (cos(r) - 1) + (C_hl + sigma) * +// (sin(r) - r) can be rearranged freely, since it is quite +// small, so we exploit parallelism to the fullest. +// +// psc4 = SC_4 * r_1 +// msc4 = psc4 * r +// r2 = r * r +// msc2 = SC_2 * r2 +// r4 = r2 * r2 +// psc3 = SC_3 + msc4 +// psc1 = SC_1 + msc2 +// msc3 = r4 * psc3 +// sincospols = psc1 + msc3 +// pols = sincospols * +// +// +// 4. CORRECTION TERM +// +// This is where the "c" component of the range reduction is +// taken into account; recall that just "r" is used for most of +// the calculation. +// +// -c = m_3 - c_2 +// -d = S_hi * r - (C_hl + sigma) +// corr = -c * -d + S_lo +// +// 5. COMPENSATED SUMMATIONS +// +// The two successive compensated summations add up the high +// and medium parts, leaving just the low parts to add up at +// the end. +// +// rs = sigma * r +// res_int = S_hi + rs +// k_0 = S_hi - res_int +// k_2 = k_0 + rs +// med = C_hl * r +// res_hi = res_int + med +// k_1 = res_int - res_hi +// k_3 = k_1 + med +// +// 6. FINAL SUMMATION +// +// We now add up all the small parts: +// +// res_lo = pols(hi) + pols(lo) + corr + k_1 + k_3 +// +// Now the overall result is just: +// +// res_hi + res_lo +// +// 7. SMALL ARGUMENTS +// +// If |x| < SNN (SNN meaning the smallest normal number), we +// simply perform 0.1111111 cdots 1111 * x. For SNN <= |x|, we +// do 2^-55 * (2^55 * x - x). +// +// Special cases: +// sin(NaN) = quiet NaN, and raise invalid exception +// sin(INF) = NaN and raise invalid exception +// sin(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin sin +ENTRY(sin) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_sin.1: + pushq %rbx +..___tag_value_sin.3: + subq $16, %rsp +..___tag_value_sin.5: + movsd %xmm0, 8(%rsp) +..B1.2: + movl 12(%rsp), %eax + movq PI32INV(%rip), %xmm1 + movq SHIFTER(%rip), %xmm2 + andl $2147418112, %eax + subl $808452096, %eax + cmpl $281346048, %eax + ja .L_2TAG_PACKET_0.0.1 + mulsd %xmm0, %xmm1 + movapd ONEHALF(%rip), %xmm5 + movq SIGN_MASK(%rip), %xmm4 + andpd %xmm0, %xmm4 + orps %xmm4, %xmm5 + addpd %xmm5, %xmm1 + cvttsd2si %xmm1, %edx + cvtsi2sd %edx, %xmm1 + movapd P_2(%rip), %xmm6 + movq $0x3fb921fb54400000, %r8 + movd %r8, %xmm3 + movapd SC_4(%rip), %xmm5 + pshufd $68, %xmm0, %xmm4 + mulsd %xmm1, %xmm3 + movddup %xmm1, %xmm1 + andl $63, %edx + shll $5, %edx + lea Ctable(%rip), %rax + addq %rdx, %rax + mulpd %xmm1, %xmm6 + mulsd P_3(%rip), %xmm1 + subsd %xmm3, %xmm4 + movq 8(%rax), %xmm7 + subsd %xmm3, %xmm0 + movddup %xmm4, %xmm3 + subsd %xmm6, %xmm4 + pshufd $68, %xmm0, %xmm0 + movapd (%rax), %xmm2 + mulpd %xmm0, %xmm5 + subpd %xmm6, %xmm0 + mulsd %xmm4, %xmm7 + subsd %xmm4, %xmm3 + mulpd %xmm0, %xmm5 + mulpd %xmm0, %xmm0 + subsd %xmm6, %xmm3 + movapd SC_2(%rip), %xmm6 + subsd %xmm3, %xmm1 + movq 24(%rax), %xmm3 + addsd %xmm3, %xmm2 + subsd %xmm2, %xmm7 + mulsd %xmm4, %xmm2 + mulpd %xmm0, %xmm6 + mulsd %xmm4, %xmm3 + mulpd %xmm0, %xmm2 + mulpd %xmm0, %xmm0 + addpd SC_3(%rip), %xmm5 + mulsd (%rax), %xmm4 + addpd SC_1(%rip), %xmm6 + mulpd %xmm0, %xmm5 + movq %xmm3, %xmm0 + addsd 8(%rax), %xmm3 + mulpd %xmm7, %xmm1 + movq %xmm4, %xmm7 + addsd %xmm3, %xmm4 + addpd %xmm5, %xmm6 + movq 8(%rax), %xmm5 + subsd %xmm3, %xmm5 + subsd %xmm4, %xmm3 + addsd 16(%rax), %xmm1 + mulpd %xmm2, %xmm6 + addsd %xmm0, %xmm5 + addsd %xmm7, %xmm3 + addsd %xmm5, %xmm1 + addsd %xmm3, %xmm1 + addsd %xmm6, %xmm1 + unpckhpd %xmm6, %xmm6 + movq %xmm4, %xmm0 + addsd %xmm6, %xmm1 + addsd %xmm1, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_0.0.1: + jg .L_2TAG_PACKET_1.0.1 + shrl $20, %eax + cmpw $3325, %ax + jne .L_2TAG_PACKET_2.0.1 + mulsd ALL_ONES(%rip), %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_2.0.1: + movq TWO_POW_55(%rip), %xmm3 + mulsd %xmm0, %xmm3 + subsd %xmm0, %xmm3 + mulsd TWO_POW_M55(%rip), %xmm3 + jmp ..B1.4 +.L_2TAG_PACKET_1.0.1: + pextrw $3, %xmm0, %eax + andl $32752, %eax + cmpl $32752, %eax + je .L_2TAG_PACKET_3.0.1 + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + subl $16224, %ecx + shrl $7, %ecx + andl $65532, %ecx + lea PI_INV_TABLE(%rip), %r11 + addq %r11, %rcx + movd %xmm0, %rax + movl 20(%rcx), %r10d + movl 24(%rcx), %r8d + movl %eax, %edx + shrq $21, %rax + orl $-2147483648, %eax + shrl $11, %eax + movl %r10d, %r9d + imulq %rdx, %r10 + imulq %rax, %r9 + imulq %rax, %r8 + movl 16(%rcx), %esi + movl 12(%rcx), %edi + movl %r10d, %r11d + shrq $32, %r10 + addq %r10, %r9 + addq %r8, %r11 + movl %r11d, %r8d + shrq $32, %r11 + addq %r11, %r9 + movl %esi, %r10d + imulq %rdx, %rsi + imulq %rax, %r10 + movl %edi, %r11d + imulq %rdx, %rdi + movl %esi, %ebx + shrq $32, %rsi + addq %rbx, %r9 + movl %r9d, %ebx + shrq $32, %r9 + addq %rsi, %r10 + addq %r9, %r10 + shlq $32, %rbx + orq %rbx, %r8 + imulq %rax, %r11 + movl 8(%rcx), %r9d + movl 4(%rcx), %esi + movl %edi, %ebx + shrq $32, %rdi + addq %rbx, %r10 + movl %r10d, %ebx + shrq $32, %r10 + addq %rdi, %r11 + addq %r10, %r11 + movq %r9, %rdi + imulq %rdx, %r9 + imulq %rax, %rdi + movl %r9d, %r10d + shrq $32, %r9 + addq %r10, %r11 + movl %r11d, %r10d + shrq $32, %r11 + addq %r9, %rdi + addq %r11, %rdi + movq %rsi, %r9 + imulq %rdx, %rsi + imulq %rax, %r9 + shlq $32, %r10 + orq %rbx, %r10 + movl (%rcx), %eax + movl %esi, %r11d + shrq $32, %rsi + addq %r11, %rdi + movl %edi, %r11d + shrq $32, %rdi + addq %rsi, %r9 + addq %rdi, %r9 + imulq %rax, %rdx + pextrw $3, %xmm0, %ebx + lea PI_INV_TABLE(%rip), %rdi + subq %rdi, %rcx + addl %ecx, %ecx + addl %ecx, %ecx + addl %ecx, %ecx + addl $19, %ecx + movl $32768, %esi + andl %ebx, %esi + shrl $4, %ebx + andl $2047, %ebx + subl $1023, %ebx + subl %ebx, %ecx + addq %rdx, %r9 + movl %ecx, %edx + addl $32, %edx + cmpl $1, %ecx + jl .L_2TAG_PACKET_4.0.1 + negl %ecx + addl $29, %ecx + shll %cl, %r9d + movl %r9d, %edi + andl $536870911, %r9d + testl $268435456, %r9d + jne .L_2TAG_PACKET_5.0.1 + shrl %cl, %r9d + movl $0, %ebx + shlq $32, %r9 + orq %r11, %r9 +.L_2TAG_PACKET_6.0.1: +.L_2TAG_PACKET_7.0.1: + cmpq $0, %r9 + je .L_2TAG_PACKET_8.0.1 +.L_2TAG_PACKET_9.0.1: + bsr %r9, %r11 + movl $29, %ecx + subl %r11d, %ecx + jle .L_2TAG_PACKET_10.0.1 + shlq %cl, %r9 + movq %r10, %rax + shlq %cl, %r10 + addl %ecx, %edx + negl %ecx + addl $64, %ecx + shrq %cl, %rax + shrq %cl, %r8 + orq %rax, %r9 + orq %r8, %r10 +.L_2TAG_PACKET_11.0.1: + cvtsi2sdq %r9, %xmm0 + shrq $1, %r10 + cvtsi2sdq %r10, %xmm3 + xorpd %xmm4, %xmm4 + shll $4, %edx + negl %edx + addl $16368, %edx + orl %esi, %edx + xorl %ebx, %edx + pinsrw $3, %edx, %xmm4 + movq PI_4(%rip), %xmm2 + movq 8+PI_4(%rip), %xmm6 + xorpd %xmm5, %xmm5 + subl $1008, %edx + pinsrw $3, %edx, %xmm5 + mulsd %xmm4, %xmm0 + shll $16, %esi + sarl $31, %esi + mulsd %xmm5, %xmm3 + movq %xmm0, %xmm1 + mulsd %xmm2, %xmm0 + shrl $29, %edi + addsd %xmm3, %xmm1 + mulsd %xmm2, %xmm3 + addl %esi, %edi + xorl %esi, %edi + mulsd %xmm1, %xmm6 + movl %edi, %eax + addsd %xmm3, %xmm6 + movq %xmm0, %xmm2 + addsd %xmm6, %xmm0 + subsd %xmm0, %xmm2 + addsd %xmm2, %xmm6 +.L_2TAG_PACKET_12.0.1: + movq PI32INV(%rip), %xmm1 + mulsd %xmm0, %xmm1 + movq ONEHALF(%rip), %xmm5 + movq SIGN_MASK(%rip), %xmm4 + andpd %xmm0, %xmm4 + orps %xmm4, %xmm5 + addpd %xmm5, %xmm1 + cvttsd2si %xmm1, %edx + cvtsi2sd %edx, %xmm1 + movq P_1(%rip), %xmm3 + movapd P_2(%rip), %xmm2 + mulsd %xmm1, %xmm3 + unpcklpd %xmm1, %xmm1 + shll $3, %eax + addl $1865216, %edx + movq %xmm0, %xmm4 + addl %eax, %edx + andl $63, %edx + movapd SC_4(%rip), %xmm5 + lea Ctable(%rip), %rax + shll $5, %edx + addq %rdx, %rax + mulpd %xmm1, %xmm2 + subsd %xmm3, %xmm0 + mulsd P_3(%rip), %xmm1 + subsd %xmm3, %xmm4 + movq 8(%rax), %xmm7 + unpcklpd %xmm0, %xmm0 + movq %xmm4, %xmm3 + subsd %xmm2, %xmm4 + mulpd %xmm0, %xmm5 + subpd %xmm2, %xmm0 + mulsd %xmm4, %xmm7 + subsd %xmm4, %xmm3 + mulpd %xmm0, %xmm5 + mulpd %xmm0, %xmm0 + subsd %xmm2, %xmm3 + movapd (%rax), %xmm2 + subsd %xmm3, %xmm1 + movq 24(%rax), %xmm3 + addsd %xmm3, %xmm2 + subsd %xmm2, %xmm7 + subsd %xmm6, %xmm1 + movapd SC_2(%rip), %xmm6 + mulsd %xmm4, %xmm2 + mulpd %xmm0, %xmm6 + mulsd %xmm4, %xmm3 + mulpd %xmm0, %xmm2 + mulpd %xmm0, %xmm0 + addpd SC_3(%rip), %xmm5 + mulsd (%rax), %xmm4 + addpd SC_1(%rip), %xmm6 + mulpd %xmm0, %xmm5 + movq %xmm3, %xmm0 + addsd 8(%rax), %xmm3 + mulpd %xmm7, %xmm1 + movq %xmm4, %xmm7 + addsd %xmm3, %xmm4 + addpd %xmm5, %xmm6 + movq 8(%rax), %xmm5 + subsd %xmm3, %xmm5 + subsd %xmm4, %xmm3 + addsd 16(%rax), %xmm1 + mulpd %xmm2, %xmm6 + addsd %xmm0, %xmm5 + addsd %xmm7, %xmm3 + addsd %xmm5, %xmm1 + addsd %xmm3, %xmm1 + addsd %xmm6, %xmm1 + unpckhpd %xmm6, %xmm6 + movq %xmm4, %xmm0 + addsd %xmm6, %xmm1 + addsd %xmm1, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_8.0.1: + addl $64, %edx + movq %r10, %r9 + movq %r8, %r10 + movq $0, %r8 + cmpq $0, %r9 + jne .L_2TAG_PACKET_9.0.1 + addl $64, %edx + movq %r10, %r9 + movq %r8, %r10 + cmpq $0, %r9 + jne .L_2TAG_PACKET_9.0.1 + xorpd %xmm0, %xmm0 + xorpd %xmm6, %xmm6 + jmp .L_2TAG_PACKET_12.0.1 +.L_2TAG_PACKET_10.0.1: + je .L_2TAG_PACKET_11.0.1 + negl %ecx + shrq %cl, %r10 + movq %r9, %rax + shrq %cl, %r9 + subl %ecx, %edx + negl %ecx + addl $64, %ecx + shlq %cl, %rax + orq %rax, %r10 + jmp .L_2TAG_PACKET_11.0.1 +.L_2TAG_PACKET_4.0.1: + negl %ecx + shlq $32, %r9 + orq %r11, %r9 + shlq %cl, %r9 + movq %r9, %rdi + testl $-2147483648, %r9d + jne .L_2TAG_PACKET_13.0.1 + shrl %cl, %r9d + movl $0, %ebx + shrq $3, %rdi + jmp .L_2TAG_PACKET_7.0.1 +.L_2TAG_PACKET_5.0.1: + shrl %cl, %r9d + movl $536870912, %ebx + shrl %cl, %ebx + shlq $32, %r9 + orq %r11, %r9 + shlq $32, %rbx + addl $536870912, %edi + movq $0, %rcx + movq $0, %r11 + subq %r8, %rcx + sbbq %r10, %r11 + sbbq %r9, %rbx + movq %rcx, %r8 + movq %r11, %r10 + movq %rbx, %r9 + movl $32768, %ebx + jmp .L_2TAG_PACKET_6.0.1 +.L_2TAG_PACKET_13.0.1: + shrl %cl, %r9d + movq $0x100000000, %rbx + shrq %cl, %rbx + movq $0, %rcx + movq $0, %r11 + subq %r8, %rcx + sbbq %r10, %r11 + sbbq %r9, %rbx + movq %rcx, %r8 + movq %r11, %r10 + movq %rbx, %r9 + movl $32768, %ebx + shrq $3, %rdi + addl $536870912, %edi + jmp .L_2TAG_PACKET_7.0.1 +.L_2TAG_PACKET_3.0.1: + movq 8(%rsp), %xmm0 + mulsd NEG_ZERO(%rip), %xmm0 + movq %xmm0, (%rsp) +.L_2TAG_PACKET_14.0.1: +..B1.4: + addq $16, %rsp +..___tag_value_sin.6: + popq %rbx +..___tag_value_sin.8: + ret +..___tag_value_sin.9: +END(sin) +# -- End sin + .section .rodata, "a" + .align 16 + .align 16 +ONEHALF: + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .type ONEHALF,@object + .size ONEHALF,16 + .align 16 +P_2: + .long 442499072 + .long 1032893537 + .long 442499072 + .long 1032893537 + .type P_2,@object + .size P_2,16 + .align 16 +SC_4: + .long 2773927732 + .long 1053236707 + .long 436314138 + .long 1056571808 + .type SC_4,@object + .size SC_4,16 + .align 16 +Ctable: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 393047345 + .long 3212032302 + .long 3156849708 + .long 1069094822 + .long 3758096384 + .long 3158189848 + .long 0 + .long 1072693248 + .long 18115067 + .long 3214126342 + .long 1013556747 + .long 1070135480 + .long 3221225472 + .long 3160567065 + .long 0 + .long 1072693248 + .long 2476548698 + .long 3215330282 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 0 + .long 1072693248 + .long 2255197647 + .long 3216211105 + .long 2796464483 + .long 1071152610 + .long 3758096384 + .long 3160878317 + .long 0 + .long 1072693248 + .long 1945768569 + .long 3216915048 + .long 939980347 + .long 1071524701 + .long 536870912 + .long 1012796809 + .long 0 + .long 1072693248 + .long 1539668340 + .long 3217396327 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 0 + .long 1072693248 + .long 1403757309 + .long 3217886718 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 0 + .long 1072693248 + .long 2583490354 + .long 1070236281 + .long 1719614413 + .long 1072079006 + .long 536870912 + .long 3163282740 + .long 0 + .long 1071644672 + .long 2485417816 + .long 1069626316 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 0 + .long 1071644672 + .long 2598800519 + .long 1068266419 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 0 + .long 1071644672 + .long 2140183630 + .long 3214756396 + .long 4051746225 + .long 1072445618 + .long 2147483648 + .long 3161907377 + .long 0 + .long 1071644672 + .long 1699043957 + .long 3216902261 + .long 3476196678 + .long 1072533611 + .long 536870912 + .long 1014257638 + .long 0 + .long 1071644672 + .long 1991047213 + .long 1067753521 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 0 + .long 1070596096 + .long 240740309 + .long 3215727903 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 0 + .long 1070596096 + .long 257503056 + .long 3214647653 + .long 2748392742 + .long 1072683149 + .long 1073741824 + .long 3163061750 + .long 0 + .long 1069547520 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 257503056 + .long 1067164005 + .long 2748392742 + .long 1072683149 + .long 1073741824 + .long 3163061750 + .long 0 + .long 3217031168 + .long 240740309 + .long 1068244255 + .long 3489094832 + .long 1072652951 + .long 536870912 + .long 1014325783 + .long 0 + .long 3218079744 + .long 1991047213 + .long 3215237169 + .long 1455828442 + .long 1072602945 + .long 3758096384 + .long 1015505073 + .long 0 + .long 3218079744 + .long 1699043957 + .long 1069418613 + .long 3476196678 + .long 1072533611 + .long 536870912 + .long 1014257638 + .long 0 + .long 3219128320 + .long 2140183630 + .long 1067272748 + .long 4051746225 + .long 1072445618 + .long 2147483648 + .long 3161907377 + .long 0 + .long 3219128320 + .long 2598800519 + .long 3215750067 + .long 688824739 + .long 1072339814 + .long 3758096384 + .long 1010431536 + .long 0 + .long 3219128320 + .long 2485417816 + .long 3217109964 + .long 1796544321 + .long 1072217216 + .long 536870912 + .long 3162686945 + .long 0 + .long 3219128320 + .long 2583490354 + .long 3217719929 + .long 1719614413 + .long 1072079006 + .long 536870912 + .long 3163282740 + .long 0 + .long 3219128320 + .long 1403757309 + .long 1070403070 + .long 621354454 + .long 1071926515 + .long 536870912 + .long 1013450602 + .long 0 + .long 3220176896 + .long 1539668340 + .long 1069912679 + .long 967731400 + .long 1071761211 + .long 536870912 + .long 1015752157 + .long 0 + .long 3220176896 + .long 1945768569 + .long 1069431400 + .long 939980347 + .long 1071524701 + .long 536870912 + .long 1012796809 + .long 0 + .long 3220176896 + .long 2255197647 + .long 1068727457 + .long 2796464483 + .long 1071152610 + .long 3758096384 + .long 3160878317 + .long 0 + .long 3220176896 + .long 2476548698 + .long 1067846634 + .long 785751814 + .long 1070765062 + .long 2684354560 + .long 3161838221 + .long 0 + .long 3220176896 + .long 18115067 + .long 1066642694 + .long 1013556747 + .long 1070135480 + .long 3221225472 + .long 3160567065 + .long 0 + .long 3220176896 + .long 393047345 + .long 1064548654 + .long 3156849708 + .long 1069094822 + .long 3758096384 + .long 3158189848 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 393047345 + .long 1064548654 + .long 3156849708 + .long 3216578470 + .long 3758096384 + .long 1010706200 + .long 0 + .long 3220176896 + .long 18115067 + .long 1066642694 + .long 1013556747 + .long 3217619128 + .long 3221225472 + .long 1013083417 + .long 0 + .long 3220176896 + .long 2476548698 + .long 1067846634 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 0 + .long 3220176896 + .long 2255197647 + .long 1068727457 + .long 2796464483 + .long 3218636258 + .long 3758096384 + .long 1013394669 + .long 0 + .long 3220176896 + .long 1945768569 + .long 1069431400 + .long 939980347 + .long 3219008349 + .long 536870912 + .long 3160280457 + .long 0 + .long 3220176896 + .long 1539668340 + .long 1069912679 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 0 + .long 3220176896 + .long 1403757309 + .long 1070403070 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 0 + .long 3220176896 + .long 2583490354 + .long 3217719929 + .long 1719614413 + .long 3219562654 + .long 536870912 + .long 1015799092 + .long 0 + .long 3219128320 + .long 2485417816 + .long 3217109964 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 0 + .long 3219128320 + .long 2598800519 + .long 3215750067 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 0 + .long 3219128320 + .long 2140183630 + .long 1067272748 + .long 4051746225 + .long 3219929266 + .long 2147483648 + .long 1014423729 + .long 0 + .long 3219128320 + .long 1699043957 + .long 1069418613 + .long 3476196678 + .long 3220017259 + .long 536870912 + .long 3161741286 + .long 0 + .long 3219128320 + .long 1991047213 + .long 3215237169 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 0 + .long 3218079744 + .long 240740309 + .long 1068244255 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 0 + .long 3218079744 + .long 257503056 + .long 1067164005 + .long 2748392742 + .long 3220166797 + .long 1073741824 + .long 1015578102 + .long 0 + .long 3217031168 + .long 0 + .long 0 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 0 + .long 257503056 + .long 3214647653 + .long 2748392742 + .long 3220166797 + .long 1073741824 + .long 1015578102 + .long 0 + .long 1069547520 + .long 240740309 + .long 3215727903 + .long 3489094832 + .long 3220136599 + .long 536870912 + .long 3161809431 + .long 0 + .long 1070596096 + .long 1991047213 + .long 1067753521 + .long 1455828442 + .long 3220086593 + .long 3758096384 + .long 3162988721 + .long 0 + .long 1070596096 + .long 1699043957 + .long 3216902261 + .long 3476196678 + .long 3220017259 + .long 536870912 + .long 3161741286 + .long 0 + .long 1071644672 + .long 2140183630 + .long 3214756396 + .long 4051746225 + .long 3219929266 + .long 2147483648 + .long 1014423729 + .long 0 + .long 1071644672 + .long 2598800519 + .long 1068266419 + .long 688824739 + .long 3219823462 + .long 3758096384 + .long 3157915184 + .long 0 + .long 1071644672 + .long 2485417816 + .long 1069626316 + .long 1796544321 + .long 3219700864 + .long 536870912 + .long 1015203297 + .long 0 + .long 1071644672 + .long 2583490354 + .long 1070236281 + .long 1719614413 + .long 3219562654 + .long 536870912 + .long 1015799092 + .long 0 + .long 1071644672 + .long 1403757309 + .long 3217886718 + .long 621354454 + .long 3219410163 + .long 536870912 + .long 3160934250 + .long 0 + .long 1072693248 + .long 1539668340 + .long 3217396327 + .long 967731400 + .long 3219244859 + .long 536870912 + .long 3163235805 + .long 0 + .long 1072693248 + .long 1945768569 + .long 3216915048 + .long 939980347 + .long 3219008349 + .long 536870912 + .long 3160280457 + .long 0 + .long 1072693248 + .long 2255197647 + .long 3216211105 + .long 2796464483 + .long 3218636258 + .long 3758096384 + .long 1013394669 + .long 0 + .long 1072693248 + .long 2476548698 + .long 3215330282 + .long 785751814 + .long 3218248710 + .long 2684354560 + .long 1014354573 + .long 0 + .long 1072693248 + .long 18115067 + .long 3214126342 + .long 1013556747 + .long 3217619128 + .long 3221225472 + .long 1013083417 + .long 0 + .long 1072693248 + .long 393047345 + .long 3212032302 + .long 3156849708 + .long 3216578470 + .long 3758096384 + .long 1010706200 + .long 0 + .long 1072693248 + .type Ctable,@object + .size Ctable,2048 + .align 16 +SC_2: + .long 286331153 + .long 1065423121 + .long 1431655765 + .long 1067799893 + .type SC_2,@object + .size SC_2,16 + .align 16 +SC_3: + .long 436314138 + .long 3207201184 + .long 381774871 + .long 3210133868 + .type SC_3,@object + .size SC_3,16 + .align 16 +SC_1: + .long 1431655765 + .long 3217380693 + .long 0 + .long 3219128320 + .type SC_1,@object + .size SC_1,16 + .align 16 +PI_INV_TABLE: + .long 0 + .long 0 + .long 2734261102 + .long 1313084713 + .long 4230436817 + .long 4113882560 + .long 3680671129 + .long 1011060801 + .long 4266746795 + .long 3736847713 + .long 3072618042 + .long 1112396512 + .long 105459434 + .long 164729372 + .long 4263373596 + .long 2972297022 + .long 3900847605 + .long 784024708 + .long 3919343654 + .long 3026157121 + .long 965858873 + .long 2203269620 + .long 2625920907 + .long 3187222587 + .long 536385535 + .long 3724908559 + .long 4012839307 + .long 1510632735 + .long 1832287951 + .long 667617719 + .long 1330003814 + .long 2657085997 + .long 1965537991 + .long 3957715323 + .long 1023883767 + .long 2320667370 + .long 1811636145 + .long 529358088 + .long 1443049542 + .long 4235946923 + .long 4040145953 + .type PI_INV_TABLE,@object + .size PI_INV_TABLE,164 + .space 12, 0x00 # pad + .align 16 +PI_4: + .long 1073741824 + .long 1072243195 + .long 407279769 + .long 1046758445 + .type PI_4,@object + .size PI_4,16 + .align 8 +PI32INV: + .long 1841940611 + .long 1076125488 + .type PI32INV,@object + .size PI32INV,8 + .align 8 +SHIFTER: + .long 0 + .long 1127743488 + .type SHIFTER,@object + .size SHIFTER,8 + .align 8 +SIGN_MASK: + .long 0 + .long 2147483648 + .type SIGN_MASK,@object + .size SIGN_MASK,8 + .align 8 +P_3: + .long 771977331 + .long 996350346 + .type P_3,@object + .size P_3,8 + .align 8 +ALL_ONES: + .long 4294967295 + .long 1072693247 + .type ALL_ONES,@object + .size ALL_ONES,8 + .align 8 +TWO_POW_55: + .long 0 + .long 1130364928 + .type TWO_POW_55,@object + .size TWO_POW_55,8 + .align 8 +TWO_POW_M55: + .long 0 + .long 1015021568 + .type TWO_POW_M55,@object + .size TWO_POW_M55,8 + .align 8 +P_1: + .long 1413480448 + .long 1069097467 + .type P_1,@object + .size P_1,8 + .align 8 +NEG_ZERO: + .long 0 + .long 2147483648 + .type NEG_ZERO,@object + .size NEG_ZERO,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000002c + .4byte 0x0000001c + .4byte ..___tag_value_sin.1-. + .4byte ..___tag_value_sin.9-..___tag_value_sin.1 + .2byte 0x0400 + .4byte ..___tag_value_sin.3-..___tag_value_sin.1 + .4byte 0x0283100e + .byte 0x04 + .4byte ..___tag_value_sin.5-..___tag_value_sin.3 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_sin.6-..___tag_value_sin.5 + .4byte 0x04c3100e + .4byte ..___tag_value_sin.8-..___tag_value_sin.6 + .2byte 0x080e +# End diff --git a/libm/x86_64/s_tan.S b/libm/x86_64/s_tan.S new file mode 100644 index 000000000..74cb04494 --- /dev/null +++ b/libm/x86_64/s_tan.S @@ -0,0 +1,2239 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// Polynomials coefficients and other constants. +// +// Note that in this algorithm, there is a different polynomial for +// each breakpoint, so there are 32 sets of polynomial coefficients +// as well as 32 instances of the other constants. +// +// The polynomial coefficients and constants are offset from the start +// of the main block as follows: +// +// 0: c8 | c0 +// 16: c9 | c1 +// 32: c10 | c2 +// 48: c11 | c3 +// 64: c12 | c4 +// 80: c13 | c5 +// 96: c14 | c6 +// 112: c15 | c7 +// 128: T_hi +// 136: T_lo +// 144: Sigma +// 152: T_hl +// 160: Tau +// 168: Mask +// 176: (end of block) +// +// The total table size is therefore 5632 bytes. +// +// Note that c0 and c1 are always zero. We could try storing +// other constants here, and just loading the low part of the +// SIMD register in these cases, after ensuring the high part +// is zero. +// +// The higher terms of the polynomial are computed in the *low* +// part of the SIMD register. This is so we can overlap the +// multiplication by r^8 and the unpacking of the other part. +// +// The constants are: +// T_hi + T_lo = accurate constant term in power series +// Sigma + T_hl = accurate coefficient of r in power series (Sigma=1 bit) +// Tau = multiplier for the reciprocal, always -1 or 0 +// +// The basic reconstruction formula using these constants is: +// +// High = tau * recip_hi + t_hi +// Med = (sgn * r + t_hl * r)_hi +// Low = (sgn * r + t_hl * r)_lo + +// tau * recip_lo + T_lo + (T_hl + sigma) * c + pol +// +// where pol = c0 + c1 * r + c2 * r^2 + ... + c15 * r^15 +// +// (c0 = c1 = 0, but using them keeps SIMD regularity) +// +// We then do a compensated sum High + Med, add the low parts together +// and then do the final sum. +// +// Here recip_hi + recip_lo is an accurate reciprocal of the remainder +// modulo pi/2 +// +// Special cases: +// tan(NaN) = quiet NaN, and raise invalid exception +// tan(INF) = NaN and raise invalid exception +// tan(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin tan +ENTRY(tan) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_tan.1: + pushq %rbx +..___tag_value_tan.3: + subq $16, %rsp +..___tag_value_tan.5: + movsd %xmm0, 8(%rsp) +..B1.2: + pextrw $3, %xmm0, %eax + andl $32767, %eax + subl $16314, %eax + cmpl $270, %eax + ja .L_2TAG_PACKET_0.0.1 + movapd ONEHALF(%rip), %xmm5 + movapd MUL16(%rip), %xmm6 + unpcklpd %xmm0, %xmm0 + movapd sign_mask(%rip), %xmm4 + andpd %xmm0, %xmm4 + movapd PI32INV(%rip), %xmm1 + mulpd %xmm0, %xmm1 + orps %xmm4, %xmm5 + addpd %xmm5, %xmm1 + movapd %xmm1, %xmm7 + unpckhpd %xmm7, %xmm7 + cvttsd2si %xmm7, %edx + cvttpd2dq %xmm1, %xmm1 + cvtdq2pd %xmm1, %xmm1 + mulpd %xmm6, %xmm1 + movapd P_1(%rip), %xmm3 + movq QQ_2(%rip), %xmm5 + addq $469248, %rdx + movapd P_2(%rip), %xmm4 + mulpd %xmm1, %xmm3 + andq $31, %rdx + mulsd %xmm1, %xmm5 + movq %rdx, %rcx + mulpd %xmm1, %xmm4 + shlq $1, %rcx + subpd %xmm3, %xmm0 + mulpd P_3(%rip), %xmm1 + addq %rcx, %rdx + shlq $2, %rcx + addq %rcx, %rdx + addsd %xmm0, %xmm5 + movapd %xmm0, %xmm2 + subpd %xmm4, %xmm0 + movq ONE(%rip), %xmm6 + shlq $4, %rdx + lea Ctable(%rip), %rax + andpd MASK_35(%rip), %xmm5 + movapd %xmm0, %xmm3 + addq %rdx, %rax + subpd %xmm0, %xmm2 + unpckhpd %xmm0, %xmm0 + divsd %xmm5, %xmm6 + subpd %xmm4, %xmm2 + movapd 16(%rax), %xmm7 + subsd %xmm5, %xmm3 + mulpd %xmm0, %xmm7 + subpd %xmm1, %xmm2 + movapd 48(%rax), %xmm1 + mulpd %xmm0, %xmm1 + movapd 96(%rax), %xmm4 + mulpd %xmm0, %xmm4 + addsd %xmm3, %xmm2 + movapd %xmm0, %xmm3 + mulpd %xmm0, %xmm0 + addpd (%rax), %xmm7 + addpd 32(%rax), %xmm1 + mulpd %xmm0, %xmm1 + addpd 80(%rax), %xmm4 + addpd %xmm1, %xmm7 + movapd 112(%rax), %xmm1 + mulpd %xmm0, %xmm1 + mulpd %xmm0, %xmm0 + addpd %xmm1, %xmm4 + movapd 64(%rax), %xmm1 + mulpd %xmm0, %xmm1 + addpd %xmm1, %xmm7 + movapd %xmm3, %xmm1 + mulpd %xmm0, %xmm3 + mulsd %xmm0, %xmm0 + mulpd 144(%rax), %xmm1 + mulpd %xmm3, %xmm4 + movq %xmm1, %xmm3 + addpd %xmm4, %xmm7 + movq %xmm1, %xmm4 + mulsd %xmm7, %xmm0 + unpckhpd %xmm7, %xmm7 + addsd %xmm7, %xmm0 + unpckhpd %xmm1, %xmm1 + addsd %xmm1, %xmm3 + subsd %xmm3, %xmm4 + addsd %xmm4, %xmm1 + movq %xmm2, %xmm4 + movq 144(%rax), %xmm7 + unpckhpd %xmm2, %xmm2 + addsd 152(%rax), %xmm7 + mulsd %xmm2, %xmm7 + addsd 136(%rax), %xmm7 + addsd %xmm1, %xmm7 + addsd %xmm7, %xmm0 + movq ONE(%rip), %xmm7 + mulsd %xmm6, %xmm4 + movq 168(%rax), %xmm2 + andpd %xmm6, %xmm2 + mulsd %xmm2, %xmm5 + mulsd 160(%rax), %xmm6 + subsd %xmm5, %xmm7 + subsd 128(%rax), %xmm2 + subsd %xmm4, %xmm7 + mulsd %xmm6, %xmm7 + movq %xmm3, %xmm4 + subsd %xmm2, %xmm3 + addsd %xmm3, %xmm2 + subsd %xmm2, %xmm4 + addsd %xmm4, %xmm0 + subsd %xmm7, %xmm0 + addsd %xmm3, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_0.0.1: + jg .L_2TAG_PACKET_1.0.1 + pextrw $3, %xmm0, %eax + movl %eax, %edx + andl $32752, %eax + je .L_2TAG_PACKET_2.0.1 + andl $32767, %edx + cmpl $15904, %edx + jb .L_2TAG_PACKET_3.0.1 + movq %xmm0, %xmm2 + movq %xmm0, %xmm3 + movq Q_11(%rip), %xmm1 + mulsd %xmm0, %xmm2 + mulsd %xmm2, %xmm3 + mulsd %xmm2, %xmm1 + addsd Q_9(%rip), %xmm1 + mulsd %xmm2, %xmm1 + addsd Q_7(%rip), %xmm1 + mulsd %xmm2, %xmm1 + addsd Q_5(%rip), %xmm1 + mulsd %xmm2, %xmm1 + addsd Q_3(%rip), %xmm1 + mulsd %xmm3, %xmm1 + addsd %xmm1, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_3.0.1: + movq TWO_POW_55(%rip), %xmm3 + mulsd %xmm0, %xmm3 + addsd %xmm3, %xmm0 + mulsd TWO_POW_M55(%rip), %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_2.0.1: + movq %xmm0, %xmm1 + mulsd %xmm1, %xmm1 + jmp ..B1.4 +.L_2TAG_PACKET_1.0.1: + pextrw $3, %xmm0, %eax + andl $32752, %eax + cmpl $32752, %eax + je .L_2TAG_PACKET_4.0.1 + pextrw $3, %xmm0, %ecx + andl $32752, %ecx + subl $16224, %ecx + shrl $7, %ecx + andl $65532, %ecx + lea PI_INV_TABLE(%rip), %r11 + addq %r11, %rcx + movd %xmm0, %rax + movl 20(%rcx), %r10d + movl 24(%rcx), %r8d + movl %eax, %edx + shrq $21, %rax + orl $-2147483648, %eax + shrl $11, %eax + movl %r10d, %r9d + imulq %rdx, %r10 + imulq %rax, %r9 + imulq %rax, %r8 + movl 16(%rcx), %esi + movl 12(%rcx), %edi + movl %r10d, %r11d + shrq $32, %r10 + addq %r10, %r9 + addq %r8, %r11 + movl %r11d, %r8d + shrq $32, %r11 + addq %r11, %r9 + movl %esi, %r10d + imulq %rdx, %rsi + imulq %rax, %r10 + movl %edi, %r11d + imulq %rdx, %rdi + movl %esi, %ebx + shrq $32, %rsi + addq %rbx, %r9 + movl %r9d, %ebx + shrq $32, %r9 + addq %rsi, %r10 + addq %r9, %r10 + shlq $32, %rbx + orq %rbx, %r8 + imulq %rax, %r11 + movl 8(%rcx), %r9d + movl 4(%rcx), %esi + movl %edi, %ebx + shrq $32, %rdi + addq %rbx, %r10 + movl %r10d, %ebx + shrq $32, %r10 + addq %rdi, %r11 + addq %r10, %r11 + movq %r9, %rdi + imulq %rdx, %r9 + imulq %rax, %rdi + movl %r9d, %r10d + shrq $32, %r9 + addq %r10, %r11 + movl %r11d, %r10d + shrq $32, %r11 + addq %r9, %rdi + addq %r11, %rdi + movq %rsi, %r9 + imulq %rdx, %rsi + imulq %rax, %r9 + shlq $32, %r10 + orq %rbx, %r10 + movl (%rcx), %eax + movl %esi, %r11d + shrq $32, %rsi + addq %r11, %rdi + movl %edi, %r11d + shrq $32, %rdi + addq %rsi, %r9 + addq %rdi, %r9 + imulq %rax, %rdx + pextrw $3, %xmm0, %ebx + lea PI_INV_TABLE(%rip), %rdi + subq %rdi, %rcx + addl %ecx, %ecx + addl %ecx, %ecx + addl %ecx, %ecx + addl $19, %ecx + movl $32768, %esi + andl %ebx, %esi + shrl $4, %ebx + andl $2047, %ebx + subl $1023, %ebx + subl %ebx, %ecx + addq %rdx, %r9 + movl %ecx, %edx + addl $32, %edx + cmpl $0, %ecx + jl .L_2TAG_PACKET_5.0.1 + negl %ecx + addl $29, %ecx + shll %cl, %r9d + movl %r9d, %edi + andl $1073741823, %r9d + testl $536870912, %r9d + jne .L_2TAG_PACKET_6.0.1 + shrl %cl, %r9d + movl $0, %ebx + shlq $32, %r9 + orq %r11, %r9 +.L_2TAG_PACKET_7.0.1: +.L_2TAG_PACKET_8.0.1: + cmpq $0, %r9 + je .L_2TAG_PACKET_9.0.1 +.L_2TAG_PACKET_10.0.1: + bsr %r9, %r11 + movl $29, %ecx + subl %r11d, %ecx + jle .L_2TAG_PACKET_11.0.1 + shlq %cl, %r9 + movq %r10, %rax + shlq %cl, %r10 + addl %ecx, %edx + negl %ecx + addl $64, %ecx + shrq %cl, %rax + shrq %cl, %r8 + orq %rax, %r9 + orq %r8, %r10 +.L_2TAG_PACKET_12.0.1: + cvtsi2sdq %r9, %xmm0 + shrq $1, %r10 + cvtsi2sdq %r10, %xmm3 + xorpd %xmm4, %xmm4 + shll $4, %edx + negl %edx + addl $16368, %edx + orl %esi, %edx + xorl %ebx, %edx + pinsrw $3, %edx, %xmm4 + movq PI_4(%rip), %xmm2 + movq 8+PI_4(%rip), %xmm7 + xorpd %xmm5, %xmm5 + subl $1008, %edx + pinsrw $3, %edx, %xmm5 + mulsd %xmm4, %xmm0 + shll $16, %esi + sarl $31, %esi + mulsd %xmm5, %xmm3 + movq %xmm0, %xmm1 + mulsd %xmm2, %xmm0 + shrl $30, %edi + addsd %xmm3, %xmm1 + mulsd %xmm2, %xmm3 + addl %esi, %edi + xorl %esi, %edi + mulsd %xmm1, %xmm7 + movl %edi, %eax + addsd %xmm3, %xmm7 + movq %xmm0, %xmm2 + addsd %xmm7, %xmm0 + subsd %xmm0, %xmm2 + addsd %xmm2, %xmm7 + movapd PI32INV(%rip), %xmm1 + movddup %xmm0, %xmm0 + movapd sign_mask(%rip), %xmm4 + andpd %xmm0, %xmm4 + mulpd %xmm0, %xmm1 + movddup %xmm7, %xmm7 + movapd ONEHALF(%rip), %xmm5 + movapd MUL16(%rip), %xmm6 + orps %xmm4, %xmm5 + addpd %xmm5, %xmm1 + movapd %xmm1, %xmm5 + unpckhpd %xmm5, %xmm5 + cvttsd2si %xmm5, %edx + cvttpd2dq %xmm1, %xmm1 + cvtdq2pd %xmm1, %xmm1 + mulpd %xmm6, %xmm1 + movapd P_1(%rip), %xmm3 + movq QQ_2(%rip), %xmm5 + shll $4, %eax + addl $469248, %edx + movapd P_2(%rip), %xmm4 + mulpd %xmm1, %xmm3 + addl %eax, %edx + andl $31, %edx + mulsd %xmm1, %xmm5 + movl %edx, %ecx + mulpd %xmm1, %xmm4 + shll $1, %ecx + subpd %xmm3, %xmm0 + mulpd P_3(%rip), %xmm1 + addl %ecx, %edx + shll $2, %ecx + addl %ecx, %edx + addsd %xmm0, %xmm5 + movapd %xmm0, %xmm2 + subpd %xmm4, %xmm0 + movq ONE(%rip), %xmm6 + shll $4, %edx + lea Ctable(%rip), %rax + andpd MASK_35(%rip), %xmm5 + movapd %xmm0, %xmm3 + addq %rdx, %rax + subpd %xmm0, %xmm2 + unpckhpd %xmm0, %xmm0 + divsd %xmm5, %xmm6 + subpd %xmm4, %xmm2 + subsd %xmm5, %xmm3 + subpd %xmm1, %xmm2 + movapd 48(%rax), %xmm1 + addpd %xmm7, %xmm2 + movapd 16(%rax), %xmm7 + mulpd %xmm0, %xmm7 + movapd 96(%rax), %xmm4 + mulpd %xmm0, %xmm1 + mulpd %xmm0, %xmm4 + addsd %xmm3, %xmm2 + movapd %xmm0, %xmm3 + mulpd %xmm0, %xmm0 + addpd (%rax), %xmm7 + addpd 32(%rax), %xmm1 + mulpd %xmm0, %xmm1 + addpd 80(%rax), %xmm4 + addpd %xmm1, %xmm7 + movapd 112(%rax), %xmm1 + mulpd %xmm0, %xmm1 + mulpd %xmm0, %xmm0 + addpd %xmm1, %xmm4 + movapd 64(%rax), %xmm1 + mulpd %xmm0, %xmm1 + addpd %xmm1, %xmm7 + movapd %xmm3, %xmm1 + mulpd %xmm0, %xmm3 + mulsd %xmm0, %xmm0 + mulpd 144(%rax), %xmm1 + mulpd %xmm3, %xmm4 + movq %xmm1, %xmm3 + addpd %xmm4, %xmm7 + movq %xmm1, %xmm4 + mulsd %xmm7, %xmm0 + unpckhpd %xmm7, %xmm7 + addsd %xmm7, %xmm0 + unpckhpd %xmm1, %xmm1 + addsd %xmm1, %xmm3 + subsd %xmm3, %xmm4 + addsd %xmm4, %xmm1 + movq %xmm2, %xmm4 + movq 144(%rax), %xmm7 + unpckhpd %xmm2, %xmm2 + addsd 152(%rax), %xmm7 + mulsd %xmm2, %xmm7 + addsd 136(%rax), %xmm7 + addsd %xmm1, %xmm7 + addsd %xmm7, %xmm0 + movq ONE(%rip), %xmm7 + mulsd %xmm6, %xmm4 + movq 168(%rax), %xmm2 + andpd %xmm6, %xmm2 + mulsd %xmm2, %xmm5 + mulsd 160(%rax), %xmm6 + subsd %xmm5, %xmm7 + subsd 128(%rax), %xmm2 + subsd %xmm4, %xmm7 + mulsd %xmm6, %xmm7 + movq %xmm3, %xmm4 + subsd %xmm2, %xmm3 + addsd %xmm3, %xmm2 + subsd %xmm2, %xmm4 + addsd %xmm4, %xmm0 + subsd %xmm7, %xmm0 + addsd %xmm3, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_9.0.1: + addl $64, %edx + movq %r10, %r9 + movq %r8, %r10 + movq $0, %r8 + cmpq $0, %r9 + jne .L_2TAG_PACKET_10.0.1 + addl $64, %edx + movq %r10, %r9 + movq %r8, %r10 + cmpq $0, %r9 + jne .L_2TAG_PACKET_10.0.1 + jmp .L_2TAG_PACKET_12.0.1 +.L_2TAG_PACKET_11.0.1: + je .L_2TAG_PACKET_12.0.1 + negl %ecx + shrq %cl, %r10 + movq %r9, %rax + shrq %cl, %r9 + subl %ecx, %edx + negl %ecx + addl $64, %ecx + shlq %cl, %rax + orq %rax, %r10 + jmp .L_2TAG_PACKET_12.0.1 +.L_2TAG_PACKET_5.0.1: + notl %ecx + shlq $32, %r9 + orq %r11, %r9 + shlq %cl, %r9 + movq %r9, %rdi + testl $-2147483648, %r9d + jne .L_2TAG_PACKET_13.0.1 + shrl %cl, %r9d + movl $0, %ebx + shrq $2, %rdi + jmp .L_2TAG_PACKET_8.0.1 +.L_2TAG_PACKET_6.0.1: + shrl %cl, %r9d + movl $1073741824, %ebx + shrl %cl, %ebx + shlq $32, %r9 + orq %r11, %r9 + shlq $32, %rbx + addl $1073741824, %edi + movq $0, %rcx + movq $0, %r11 + subq %r8, %rcx + sbbq %r10, %r11 + sbbq %r9, %rbx + movq %rcx, %r8 + movq %r11, %r10 + movq %rbx, %r9 + movl $32768, %ebx + jmp .L_2TAG_PACKET_7.0.1 +.L_2TAG_PACKET_13.0.1: + shrl %cl, %r9d + movq $0x100000000, %rbx + shrq %cl, %rbx + movq $0, %rcx + movq $0, %r11 + subq %r8, %rcx + sbbq %r10, %r11 + sbbq %r9, %rbx + movq %rcx, %r8 + movq %r11, %r10 + movq %rbx, %r9 + movl $32768, %ebx + shrq $2, %rdi + addl $1073741824, %edi + jmp .L_2TAG_PACKET_8.0.1 +.L_2TAG_PACKET_4.0.1: + movq 8(%rsp), %xmm0 + mulsd NEG_ZERO(%rip), %xmm0 + movq %xmm0, (%rsp) +.L_2TAG_PACKET_14.0.1: +..B1.4: + addq $16, %rsp +..___tag_value_tan.6: + popq %rbx +..___tag_value_tan.8: + ret +..___tag_value_tan.9: +END(tan) +# -- End tan + .section .rodata, "a" + .align 16 + .align 16 +ONEHALF: + .long 0 + .long 1071644672 + .long 0 + .long 1071644672 + .type ONEHALF,@object + .size ONEHALF,16 + .align 16 +MUL16: + .long 0 + .long 1076887552 + .long 0 + .long 1072693248 + .type MUL16,@object + .size MUL16,16 + .align 16 +sign_mask: + .long 0 + .long 2147483648 + .long 0 + .long 2147483648 + .type sign_mask,@object + .size sign_mask,16 + .align 16 +PI32INV: + .long 1841940611 + .long 1071931184 + .long 1841940611 + .long 1076125488 + .type PI32INV,@object + .size PI32INV,16 + .align 16 +P_1: + .long 1413758976 + .long 1069097467 + .long 1413742592 + .long 1069097467 + .type P_1,@object + .size P_1,16 + .align 16 +P_2: + .long 1734819840 + .long 3174229945 + .long 1280049152 + .long 1028033571 + .type P_2,@object + .size P_2,16 + .align 16 +P_3: + .long 923219018 + .long 984130272 + .long 57701189 + .long 988383790 + .type P_3,@object + .size P_3,16 + .align 16 +Ctable: + .long 0 + .long 0 + .long 0 + .long 0 + .long 2284589306 + .long 1066820852 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1441186365 + .long 1065494243 + .long 1431655765 + .long 1070945621 + .long 0 + .long 0 + .long 0 + .long 0 + .long 236289504 + .long 1064135997 + .long 286331153 + .long 1069617425 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1160476131 + .long 1062722102 + .long 463583772 + .long 1068212666 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1313038235 + .long 1066745731 + .long 0 + .long 0 + .long 1013878342 + .long 1067152618 + .long 0 + .long 0 + .long 3663426833 + .long 1065725283 + .long 3693284251 + .long 1069118808 + .long 650852232 + .long 1065882376 + .long 1996245381 + .long 1071000265 + .long 2008746170 + .long 1064664197 + .long 3055842593 + .long 1068578846 + .long 1495406348 + .long 1064652437 + .long 2269530157 + .long 1069711235 + .long 285563696 + .long 1063576465 + .long 1046897440 + .long 1067705865 + .long 233429731 + .long 1063453151 + .long 522045958 + .long 1068476590 + .long 2354785698 + .long 1069102779 + .long 1317599141 + .long 1012432133 + .long 0 + .long 1072693248 + .long 2828230105 + .long 1065606626 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1512545955 + .long 1068119047 + .long 0 + .long 0 + .long 1127048698 + .long 1067909459 + .long 0 + .long 0 + .long 2300200450 + .long 1067254767 + .long 3593250296 + .long 1070233561 + .long 3009365544 + .long 1066902117 + .long 1127373050 + .long 1071173457 + .long 3046103305 + .long 1066371299 + .long 24583402 + .long 1069723988 + .long 4082511758 + .long 1065914199 + .long 3223889699 + .long 1070020367 + .long 548927984 + .long 1065415756 + .long 558065897 + .long 1068949418 + .long 680073315 + .long 1064940726 + .long 388873200 + .long 1068944270 + .long 3763679576 + .long 1070167541 + .long 1497360404 + .long 1009710547 + .long 0 + .long 1072693248 + .long 64931152 + .long 1067729411 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2467582782 + .long 1069256389 + .long 0 + .long 0 + .long 162150096 + .long 1068946420 + .long 0 + .long 0 + .long 3702794237 + .long 1068579152 + .long 3631919291 + .long 1070936926 + .long 3456821413 + .long 1068217218 + .long 2031366438 + .long 1071495745 + .long 1596664020 + .long 1067799281 + .long 1509038701 + .long 1070601643 + .long 583171477 + .long 1067510148 + .long 3785344682 + .long 1070618476 + .long 2402036048 + .long 1067075736 + .long 3233018412 + .long 1069913186 + .long 411280568 + .long 1066710556 + .long 1065584192 + .long 1069747896 + .long 895247324 + .long 1070819848 + .long 500078909 + .long 3161288781 + .long 0 + .long 1072693248 + .long 729983843 + .long 1068994194 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1458794562 + .long 1070398550 + .long 0 + .long 0 + .long 2857777489 + .long 1070137637 + .long 0 + .long 0 + .long 1024359517 + .long 1069876531 + .long 2616040238 + .long 1071582937 + .long 1609024636 + .long 1069675088 + .long 2529240549 + .long 1071836633 + .long 1510128600 + .long 1069440113 + .long 2251697184 + .long 1071253687 + .long 1262761453 + .long 1069142850 + .long 1263091857 + .long 1071190461 + .long 3043383486 + .long 1068885191 + .long 2476932470 + .long 1070842002 + .long 3659995028 + .long 1068669200 + .long 855891755 + .long 1070696894 + .long 2583490354 + .long 1071284857 + .long 3062633575 + .long 1014008623 + .long 0 + .long 1072693248 + .long 2550940471 + .long 1069938201 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3422807297 + .long 1071640847 + .long 0 + .long 0 + .long 1151658053 + .long 1071494715 + .long 0 + .long 0 + .long 929607071 + .long 1071346340 + .long 1037049034 + .long 1072037305 + .long 2786928657 + .long 1071215282 + .long 1447406859 + .long 1072265209 + .long 3490952107 + .long 1071090851 + .long 3205232916 + .long 1071968658 + .long 1297344304 + .long 1070977120 + .long 1066110976 + .long 1071946035 + .long 3803721480 + .long 1070871082 + .long 1496754229 + .long 1071807201 + .long 2982550683 + .long 1070773243 + .long 4014441989 + .long 1071736222 + .long 419968236 + .long 1071717047 + .long 3451266538 + .long 3163444811 + .long 0 + .long 1072693248 + .long 2960267235 + .long 1070745841 + .long 0 + .long 0 + .long 0 + .long 0 + .long 724322768 + .long 1072881308 + .long 0 + .long 0 + .long 643153048 + .long 1072905816 + .long 0 + .long 0 + .long 4285079458 + .long 1072928558 + .long 3912524733 + .long 1072622983 + .long 118362272 + .long 1072952754 + .long 4107767972 + .long 1072827408 + .long 2689502883 + .long 1072976922 + .long 946523347 + .long 1072772766 + .long 573204189 + .long 1073001761 + .long 581531518 + .long 1072826391 + .long 1386236526 + .long 1073026959 + .long 3718905905 + .long 1072832823 + .long 1145558140 + .long 1073052673 + .long 513572637 + .long 1072861969 + .long 716700048 + .long 1071997368 + .long 547126769 + .long 1015523525 + .long 0 + .long 1072693248 + .long 1097907398 + .long 1071420120 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3349892442 + .long 1074290212 + .long 0 + .long 0 + .long 3913197405 + .long 1074501181 + .long 0 + .long 0 + .long 2494034522 + .long 1074739170 + .long 1264738763 + .long 1073084804 + .long 1520293906 + .long 1074899632 + .long 1958936600 + .long 1073411493 + .long 2133649635 + .long 1075052171 + .long 4270740730 + .long 1073574708 + .long 1728930189 + .long 1075224844 + .long 1303998552 + .long 1073799186 + .long 618611933 + .long 1075420255 + .long 1769828046 + .long 1073938542 + .long 2200537986 + .long 1075641421 + .long 433361110 + .long 1074105369 + .long 719595600 + .long 1072317184 + .long 294527206 + .long 3162140088 + .long 0 + .long 1073741824 + .long 3811788216 + .long 3218400550 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1704352102 + .long 1075943001 + .long 0 + .long 0 + .long 2284589306 + .long 1076258036 + .long 0 + .long 0 + .long 2211264291 + .long 1076659010 + .long 0 + .long 1073741824 + .long 1441186365 + .long 1077028579 + .long 1431655765 + .long 1074091349 + .long 876943673 + .long 1077353622 + .long 2863311531 + .long 1074440874 + .long 236289504 + .long 1077767485 + .long 286331153 + .long 1074860305 + .long 2805473311 + .long 1078115278 + .long 95443718 + .long 1075163227 + .long 1160476131 + .long 1078450742 + .long 463583772 + .long 1075552698 + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 0 + .long 1073741824 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1330165971 + .long 3207850745 + .long 0 + .long 0 + .long 217536623 + .long 1059109098 + .long 0 + .long 0 + .long 3492120849 + .long 3205151475 + .long 602185705 + .long 3215678092 + .long 760422958 + .long 1056312597 + .long 555127889 + .long 1067545266 + .long 3139784124 + .long 3202470837 + .long 3690544014 + .long 3213150171 + .long 95707915 + .long 1053635428 + .long 4003114407 + .long 1064581412 + .long 2034926231 + .long 3199711161 + .long 3759536023 + .long 3210559989 + .long 3826928214 + .long 1050893819 + .long 3837960785 + .long 1061790379 + .long 1526325248 + .long 3217967566 + .long 2356426521 + .long 1025423456 + .long 0 + .long 0 + .long 457728975 + .long 1071088276 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1398462608 + .long 3207303968 + .long 0 + .long 0 + .long 26205983 + .long 1058461213 + .long 0 + .long 0 + .long 56226238 + .long 3204528612 + .long 2754706541 + .long 3215359511 + .long 2187799823 + .long 1055634437 + .long 790323742 + .long 1067402587 + .long 1372385848 + .long 3201651479 + .long 4097292716 + .long 3212856302 + .long 3348210357 + .long 1052830099 + .long 2442796466 + .long 1064337602 + .long 862608142 + .long 3198830754 + .long 170296152 + .long 3210060867 + .long 3755571428 + .long 1049933343 + .long 3614866008 + .long 1061361670 + .long 719978496 + .long 3217669096 + .long 1998842465 + .long 3174703977 + .long 0 + .long 0 + .long 3749156607 + .long 1071048258 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 3120498638 + .long 3206749304 + .long 0 + .long 0 + .long 2773578114 + .long 1058009312 + .long 0 + .long 0 + .long 2030783676 + .long 3203817873 + .long 2223654598 + .long 3215071936 + .long 2976134650 + .long 1054987244 + .long 706390066 + .long 1067217386 + .long 4258437615 + .long 3200900378 + .long 1066252975 + .long 3212391267 + .long 815777514 + .long 1051989462 + .long 3202745457 + .long 1064010682 + .long 2493556375 + .long 3198004753 + .long 1046243251 + .long 3209678971 + .long 2593078846 + .long 1049017717 + .long 2763962276 + .long 1060970161 + .long 701480960 + .long 3217377742 + .long 3205862232 + .long 3174660915 + .long 0 + .long 0 + .long 2267016812 + .long 1071015664 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 2107155798 + .long 3206166872 + .long 0 + .long 0 + .long 2642992129 + .long 1057424578 + .long 0 + .long 0 + .long 1936992811 + .long 3203204426 + .long 1485063559 + .long 3214682643 + .long 1432914553 + .long 1054319398 + .long 3996381654 + .long 1067075828 + .long 2833029256 + .long 3200223545 + .long 2866066872 + .long 3211982662 + .long 2432888737 + .long 1051234178 + .long 3669764559 + .long 1063748136 + .long 2458496952 + .long 3197170774 + .long 1948234989 + .long 3209098147 + .long 2843698787 + .long 1048163519 + .long 3398041407 + .long 1060559728 + .long 2829230080 + .long 3217092115 + .long 1034046433 + .long 3174271903 + .long 0 + .long 0 + .long 298675305 + .long 1070989821 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 437603223 + .long 3205589761 + .long 0 + .long 0 + .long 759330352 + .long 1057048511 + .long 0 + .long 0 + .long 3107463368 + .long 3202507988 + .long 3144465176 + .long 3214191500 + .long 2290961810 + .long 1053841035 + .long 1618153340 + .long 1066971547 + .long 3836869393 + .long 3199400272 + .long 584032116 + .long 3211469261 + .long 1245704358 + .long 1050626462 + .long 4247487438 + .long 1063561943 + .long 1669034927 + .long 3196274812 + .long 3844233498 + .long 3208626322 + .long 2706958524 + .long 1047411374 + .long 3857199098 + .long 1060281647 + .long 3593904128 + .long 3216590719 + .long 3267547836 + .long 3172163321 + .long 0 + .long 0 + .long 4076712227 + .long 1070970214 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 3290090340 + .long 3204793485 + .long 0 + .long 0 + .long 3685760367 + .long 1056668370 + .long 0 + .long 0 + .long 2655163949 + .long 3201674917 + .long 628750575 + .long 3213566872 + .long 680140505 + .long 1053299777 + .long 2954464709 + .long 1066900026 + .long 803201619 + .long 3198516435 + .long 1466315631 + .long 3210837162 + .long 1611220163 + .long 1049972438 + .long 2766187256 + .long 1063437894 + .long 1804579484 + .long 3195331491 + .long 3695969289 + .long 3207854418 + .long 2617238373 + .long 1046675948 + .long 3095830084 + .long 1060095334 + .long 3789570048 + .long 3216034914 + .long 23826559 + .long 3172048060 + .long 0 + .long 0 + .long 3870939386 + .long 1070956467 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1571758758 + .long 3203672535 + .long 0 + .long 0 + .long 113026373 + .long 1056416381 + .long 0 + .long 0 + .long 1913766298 + .long 3200523326 + .long 2507068734 + .long 3212502004 + .long 4000648818 + .long 1053003803 + .long 2446607349 + .long 1066858259 + .long 912662124 + .long 3197333001 + .long 1349489537 + .long 3209765608 + .long 3412972607 + .long 1049641401 + .long 1721283327 + .long 1063366855 + .long 1466691883 + .long 3194116746 + .long 3852528092 + .long 3206760861 + .long 285443293 + .long 1046158380 + .long 1758739894 + .long 1059895449 + .long 1858781184 + .long 3214984212 + .long 3447575948 + .long 1024675855 + .long 0 + .long 0 + .long 2242038011 + .long 1070948320 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 0 + .long 0 + .long 0 + .long 0 + .long 737611454 + .long 1056336527 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3594790527 + .long 1052911621 + .long 381774871 + .long 1066844524 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3303051618 + .long 1049456050 + .long 3154187623 + .long 1063343722 + .long 0 + .long 0 + .long 0 + .long 0 + .long 528061788 + .long 1045944910 + .long 2469719819 + .long 1059831159 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1431655765 + .long 1070945621 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1571758758 + .long 1056188887 + .long 0 + .long 0 + .long 113026373 + .long 1056416381 + .long 0 + .long 0 + .long 1913766298 + .long 1053039678 + .long 2507068734 + .long 1065018356 + .long 4000648818 + .long 1053003803 + .long 2446607349 + .long 1066858259 + .long 912662124 + .long 1049849353 + .long 1349489537 + .long 1062281960 + .long 3412972607 + .long 1049641401 + .long 1721283327 + .long 1063366855 + .long 1466691883 + .long 1046633098 + .long 3852528092 + .long 1059277213 + .long 285443293 + .long 1046158380 + .long 1758739894 + .long 1059895449 + .long 1858781184 + .long 1067500564 + .long 3447575948 + .long 3172159503 + .long 0 + .long 0 + .long 2242038011 + .long 1070948320 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 3290090340 + .long 1057309837 + .long 0 + .long 0 + .long 3685760367 + .long 1056668370 + .long 0 + .long 0 + .long 2655163949 + .long 1054191269 + .long 628750575 + .long 1066083224 + .long 680140505 + .long 1053299777 + .long 2954464709 + .long 1066900026 + .long 803201619 + .long 1051032787 + .long 1466315631 + .long 1063353514 + .long 1611220163 + .long 1049972438 + .long 2766187256 + .long 1063437894 + .long 1804579484 + .long 1047847843 + .long 3695969289 + .long 1060370770 + .long 2617238373 + .long 1046675948 + .long 3095830084 + .long 1060095334 + .long 3789570048 + .long 1068551266 + .long 23826559 + .long 1024564412 + .long 0 + .long 0 + .long 3870939386 + .long 1070956467 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 437603223 + .long 1058106113 + .long 0 + .long 0 + .long 759330352 + .long 1057048511 + .long 0 + .long 0 + .long 3107463368 + .long 1055024340 + .long 3144465176 + .long 1066707852 + .long 2290961810 + .long 1053841035 + .long 1618153340 + .long 1066971547 + .long 3836869393 + .long 1051916624 + .long 584032116 + .long 1063985613 + .long 1245704358 + .long 1050626462 + .long 4247487438 + .long 1063561943 + .long 1669034927 + .long 1048791164 + .long 3844233498 + .long 1061142674 + .long 2706958524 + .long 1047411374 + .long 3857199098 + .long 1060281647 + .long 3593904128 + .long 1069107071 + .long 3267547836 + .long 1024679673 + .long 0 + .long 0 + .long 4076712227 + .long 1070970214 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 2107155798 + .long 1058683224 + .long 0 + .long 0 + .long 2642992129 + .long 1057424578 + .long 0 + .long 0 + .long 1936992811 + .long 1055720778 + .long 1485063559 + .long 1067198995 + .long 1432914553 + .long 1054319398 + .long 3996381654 + .long 1067075828 + .long 2833029256 + .long 1052739897 + .long 2866066872 + .long 1064499014 + .long 2432888737 + .long 1051234178 + .long 3669764559 + .long 1063748136 + .long 2458496952 + .long 1049687126 + .long 1948234989 + .long 1061614499 + .long 2843698787 + .long 1048163519 + .long 3398041407 + .long 1060559728 + .long 2829230080 + .long 1069608467 + .long 1034046433 + .long 1026788255 + .long 0 + .long 0 + .long 298675305 + .long 1070989821 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 3120498638 + .long 1059265656 + .long 0 + .long 0 + .long 2773578114 + .long 1058009312 + .long 0 + .long 0 + .long 2030783676 + .long 1056334225 + .long 2223654598 + .long 1067588288 + .long 2976134650 + .long 1054987244 + .long 706390066 + .long 1067217386 + .long 4258437615 + .long 1053416730 + .long 1066252975 + .long 1064907619 + .long 815777514 + .long 1051989462 + .long 3202745457 + .long 1064010682 + .long 2493556375 + .long 1050521105 + .long 1046243251 + .long 1062195323 + .long 2593078846 + .long 1049017717 + .long 2763962276 + .long 1060970161 + .long 701480960 + .long 1069894094 + .long 3205862232 + .long 1027177267 + .long 0 + .long 0 + .long 2267016812 + .long 1071015664 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1398462608 + .long 1059820320 + .long 0 + .long 0 + .long 26205983 + .long 1058461213 + .long 0 + .long 0 + .long 56226238 + .long 1057044964 + .long 2754706541 + .long 1067875863 + .long 2187799823 + .long 1055634437 + .long 790323742 + .long 1067402587 + .long 1372385848 + .long 1054167831 + .long 4097292716 + .long 1065372654 + .long 3348210357 + .long 1052830099 + .long 2442796466 + .long 1064337602 + .long 862608142 + .long 1051347106 + .long 170296152 + .long 1062577219 + .long 3755571428 + .long 1049933343 + .long 3614866008 + .long 1061361670 + .long 719978496 + .long 1070185448 + .long 1998842465 + .long 1027220329 + .long 0 + .long 0 + .long 3749156607 + .long 1071048258 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1330165971 + .long 1060367097 + .long 0 + .long 0 + .long 217536623 + .long 1059109098 + .long 0 + .long 0 + .long 3492120849 + .long 1057667827 + .long 602185705 + .long 1068194444 + .long 760422958 + .long 1056312597 + .long 555127889 + .long 1067545266 + .long 3139784124 + .long 1054987189 + .long 3690544014 + .long 1065666523 + .long 95707915 + .long 1053635428 + .long 4003114407 + .long 1064581412 + .long 2034926231 + .long 1052227513 + .long 3759536023 + .long 1063076341 + .long 3826928214 + .long 1050893819 + .long 3837960785 + .long 1061790379 + .long 1526325248 + .long 1070483918 + .long 2356426521 + .long 3172907104 + .long 0 + .long 0 + .long 457728975 + .long 1071088276 + .long 0 + .long 1072693248 + .long 0 + .long 4294967288 + .long 1704352102 + .long 3223426649 + .long 0 + .long 0 + .long 2284589306 + .long 1076258036 + .long 0 + .long 0 + .long 2211264291 + .long 3224142658 + .long 0 + .long 3221225472 + .long 1441186365 + .long 1077028579 + .long 1431655765 + .long 1074091349 + .long 876943673 + .long 3224837270 + .long 2863311531 + .long 3221924522 + .long 236289504 + .long 1077767485 + .long 286331153 + .long 1074860305 + .long 2805473311 + .long 3225598926 + .long 95443718 + .long 3222646875 + .long 1160476131 + .long 1078450742 + .long 463583772 + .long 1075552698 + .long 0 + .long 3220176896 + .long 0 + .long 0 + .long 0 + .long 1073741824 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3349892442 + .long 3221773860 + .long 0 + .long 0 + .long 3913197405 + .long 1074501181 + .long 0 + .long 0 + .long 2494034522 + .long 3222222818 + .long 1264738763 + .long 3220568452 + .long 1520293906 + .long 1074899632 + .long 1958936600 + .long 1073411493 + .long 2133649635 + .long 3222535819 + .long 4270740730 + .long 3221058356 + .long 1728930189 + .long 1075224844 + .long 1303998552 + .long 1073799186 + .long 618611933 + .long 3222903903 + .long 1769828046 + .long 3221422190 + .long 2200537986 + .long 1075641421 + .long 433361110 + .long 1074105369 + .long 719595600 + .long 3219800832 + .long 294527206 + .long 1014656440 + .long 0 + .long 1073741824 + .long 3811788216 + .long 3218400550 + .long 0 + .long 0 + .long 0 + .long 0 + .long 724322768 + .long 3220364956 + .long 0 + .long 0 + .long 643153048 + .long 1072905816 + .long 0 + .long 0 + .long 4285079458 + .long 3220412206 + .long 3912524733 + .long 3220106631 + .long 118362272 + .long 1072952754 + .long 4107767972 + .long 1072827408 + .long 2689502883 + .long 3220460570 + .long 946523347 + .long 3220256414 + .long 573204189 + .long 1073001761 + .long 581531518 + .long 1072826391 + .long 1386236526 + .long 3220510607 + .long 3718905905 + .long 3220316471 + .long 1145558140 + .long 1073052673 + .long 513572637 + .long 1072861969 + .long 716700048 + .long 3219481016 + .long 547126769 + .long 3163007173 + .long 0 + .long 1072693248 + .long 1097907398 + .long 1071420120 + .long 0 + .long 0 + .long 0 + .long 0 + .long 3422807297 + .long 3219124495 + .long 0 + .long 0 + .long 1151658053 + .long 1071494715 + .long 0 + .long 0 + .long 929607071 + .long 3218829988 + .long 1037049034 + .long 3219520953 + .long 2786928657 + .long 1071215282 + .long 1447406859 + .long 1072265209 + .long 3490952107 + .long 3218574499 + .long 3205232916 + .long 3219452306 + .long 1297344304 + .long 1070977120 + .long 1066110976 + .long 1071946035 + .long 3803721480 + .long 3218354730 + .long 1496754229 + .long 3219290849 + .long 2982550683 + .long 1070773243 + .long 4014441989 + .long 1071736222 + .long 419968236 + .long 3219200695 + .long 3451266538 + .long 1015961163 + .long 0 + .long 1072693248 + .long 2960267235 + .long 1070745841 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1458794562 + .long 3217882198 + .long 0 + .long 0 + .long 2857777489 + .long 1070137637 + .long 0 + .long 0 + .long 1024359517 + .long 3217360179 + .long 2616040238 + .long 3219066585 + .long 1609024636 + .long 1069675088 + .long 2529240549 + .long 1071836633 + .long 1510128600 + .long 3216923761 + .long 2251697184 + .long 3218737335 + .long 1262761453 + .long 1069142850 + .long 1263091857 + .long 1071190461 + .long 3043383486 + .long 3216368839 + .long 2476932470 + .long 3218325650 + .long 3659995028 + .long 1068669200 + .long 855891755 + .long 1070696894 + .long 2583490354 + .long 3218768505 + .long 3062633575 + .long 3161492271 + .long 0 + .long 1072693248 + .long 2550940471 + .long 1069938201 + .long 0 + .long 0 + .long 0 + .long 0 + .long 2467582782 + .long 3216740037 + .long 0 + .long 0 + .long 162150096 + .long 1068946420 + .long 0 + .long 0 + .long 3702794237 + .long 3216062800 + .long 3631919291 + .long 3218420574 + .long 3456821413 + .long 1068217218 + .long 2031366438 + .long 1071495745 + .long 1596664020 + .long 3215282929 + .long 1509038701 + .long 3218085291 + .long 583171477 + .long 1067510148 + .long 3785344682 + .long 1070618476 + .long 2402036048 + .long 3214559384 + .long 3233018412 + .long 3217396834 + .long 411280568 + .long 1066710556 + .long 1065584192 + .long 1069747896 + .long 895247324 + .long 3218303496 + .long 500078909 + .long 1013805133 + .long 0 + .long 1072693248 + .long 729983843 + .long 1068994194 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1512545955 + .long 3215602695 + .long 0 + .long 0 + .long 1127048698 + .long 1067909459 + .long 0 + .long 0 + .long 2300200450 + .long 3214738415 + .long 3593250296 + .long 3217717209 + .long 3009365544 + .long 1066902117 + .long 1127373050 + .long 1071173457 + .long 3046103305 + .long 3213854947 + .long 24583402 + .long 3217207636 + .long 4082511758 + .long 1065914199 + .long 3223889699 + .long 1070020367 + .long 548927984 + .long 3212899404 + .long 558065897 + .long 3216433066 + .long 680073315 + .long 1064940726 + .long 388873200 + .long 1068944270 + .long 3763679576 + .long 3217651189 + .long 1497360404 + .long 3157194195 + .long 0 + .long 1072693248 + .long 64931152 + .long 1067729411 + .long 0 + .long 0 + .long 0 + .long 0 + .long 1313038235 + .long 3214229379 + .long 0 + .long 0 + .long 1013878342 + .long 1067152618 + .long 0 + .long 0 + .long 3663426833 + .long 3213208931 + .long 3693284251 + .long 3216602456 + .long 650852232 + .long 1065882376 + .long 1996245381 + .long 1071000265 + .long 2008746170 + .long 3212147845 + .long 3055842593 + .long 3216062494 + .long 1495406348 + .long 1064652437 + .long 2269530157 + .long 1069711235 + .long 285563696 + .long 3211060113 + .long 1046897440 + .long 3215189513 + .long 233429731 + .long 1063453151 + .long 522045958 + .long 1068476590 + .long 2354785698 + .long 3216586427 + .long 1317599141 + .long 3159915781 + .long 0 + .long 1072693248 + .long 2828230105 + .long 1065606626 + .long 0 + .long 0 + .long 0 + .long 0 + .type Ctable,@object + .size Ctable,5632 + .align 16 +MASK_35: + .long 4294705152 + .long 4294967295 + .long 0 + .long 0 + .type MASK_35,@object + .size MASK_35,16 + .align 16 +Q_11: + .long 3103673719 + .long 1065509018 + .type Q_11,@object + .size Q_11,8 + .space 8, 0x00 # pad + .align 16 +Q_9: + .long 3213130307 + .long 1066820768 + .type Q_9,@object + .size Q_9,8 + .space 8, 0x00 # pad + .align 16 +Q_7: + .long 1388628139 + .long 1068212666 + .type Q_7,@object + .size Q_7,8 + .space 8, 0x00 # pad + .align 16 +Q_5: + .long 285812550 + .long 1069617425 + .type Q_5,@object + .size Q_5,8 + .space 8, 0x00 # pad + .align 16 +Q_3: + .long 1431655954 + .long 1070945621 + .type Q_3,@object + .size Q_3,8 + .space 8, 0x00 # pad + .align 16 +PI_INV_TABLE: + .long 0 + .long 0 + .long 2734261102 + .long 1313084713 + .long 4230436817 + .long 4113882560 + .long 3680671129 + .long 1011060801 + .long 4266746795 + .long 3736847713 + .long 3072618042 + .long 1112396512 + .long 105459434 + .long 164729372 + .long 4263373596 + .long 2972297022 + .long 3900847605 + .long 784024708 + .long 3919343654 + .long 3026157121 + .long 965858873 + .long 2203269620 + .long 2625920907 + .long 3187222587 + .long 536385535 + .long 3724908559 + .long 4012839307 + .long 1510632735 + .long 1832287951 + .long 667617719 + .long 1330003814 + .long 2657085997 + .long 1965537991 + .long 3957715323 + .long 1023883767 + .long 2320667370 + .long 1811636145 + .long 529358088 + .long 1443049542 + .long 4235946923 + .long 4040145953 + .type PI_INV_TABLE,@object + .size PI_INV_TABLE,164 + .space 12, 0x00 # pad + .align 16 +PI_4: + .long 0 + .long 1072243195 + .long 1175561766 + .long 1048908043 + .type PI_4,@object + .size PI_4,16 + .align 8 +QQ_2: + .long 1734816687 + .long 1026746297 + .type QQ_2,@object + .size QQ_2,8 + .align 8 +ONE: + .long 0 + .long 1072693248 + .type ONE,@object + .size ONE,8 + .align 8 +TWO_POW_55: + .long 0 + .long 1130364928 + .type TWO_POW_55,@object + .size TWO_POW_55,8 + .align 8 +TWO_POW_M55: + .long 0 + .long 1015021568 + .type TWO_POW_M55,@object + .size TWO_POW_M55,8 + .align 4 +NEG_ZERO: + .long 0 + .long 2147483648 + .type NEG_ZERO,@object + .size NEG_ZERO,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000002c + .4byte 0x0000001c + .4byte ..___tag_value_tan.1-. + .4byte ..___tag_value_tan.9-..___tag_value_tan.1 + .2byte 0x0400 + .4byte ..___tag_value_tan.3-..___tag_value_tan.1 + .4byte 0x0283100e + .byte 0x04 + .4byte ..___tag_value_tan.5-..___tag_value_tan.3 + .2byte 0x200e + .byte 0x04 + .4byte ..___tag_value_tan.6-..___tag_value_tan.5 + .4byte 0x04c3100e + .4byte ..___tag_value_tan.8-..___tag_value_tan.6 + .2byte 0x080e +# End diff --git a/libm/x86_64/s_tanh.S b/libm/x86_64/s_tanh.S new file mode 100644 index 000000000..2c8f9bfd5 --- /dev/null +++ b/libm/x86_64/s_tanh.S @@ -0,0 +1,1392 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +/******************************************************************************/ +// ALGORITHM DESCRIPTION +// --------------------- +// +// tanh(x)=(exp(x)-exp(-x))/(exp(x)+exp(-x))=(1-exp(-2*x))/(1+exp(-2*x)) +// +// Let |x|=xH+xL (upper 26 bits, lower 27 bits) +// log2(e) rounded to 26 bits (high part) plus a double precision low part is +// L2EH+L2EL (upper 26, lower 53 bits) +// +// Let xH*L2EH=k+f+r`, where (k+f)*2^8*2=int(xH*L2EH*2^9), +// f=0.b1 b2 ... b8, k integer +// 2^{-f} is approximated as Tn[f]+Dn[f] +// Tn stores the high 53 bits, Dn stores (2^{-f}-Tn[f]) rounded to double precision +// +// r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-9}+2^{-14}, +// for |x| in [23/64,3*2^7) +// e^{-2*|x|}=2^{-k-f}*2^{-r} ~ 2^{-k}*(Tn+Dn)*(1+p)=(T0+D0)*(1+p) +// +// For |x| in [2^{-4},2^5): +// 2^{-r}-1 ~ p=c1*r+c2*r^2+..+c5*r^5 +// Let R=1/(1+T0+p*T0), truncated to 35 significant bits +// R=1/(1+T0+D0+p*(T0+D0))*(1+eps), |eps|<2^{-33} +// 1+T0+D0+p*(T0+D0)=KH+KL, where +// KH=(1+T0+c1*r*T0)_high (leading 17 bits) +// KL=T0_low+D0+(c1*r*T0)_low+c1*r*D0+(c2*r^2+..c5*r^5)*T0 +// eps ~ (R*KH-1)+R*KL +// 1/(1+T0+D0+p*(T0+D0)) ~ R-R*eps +// The result is approximated as (1-T0-D0-(T0+D0)*p)*(R-R*eps) +// 1-T0-D0-(T0+D0)*p=-((KH-2)+KL) +// The result is formed as +// (KH-2)*R+(-(KH-2)*R*eps+(KL*R-KL*R*eps)), with the correct sign +// set at the end +// +// For |x| in [2^{-64},2^{-4}): +// A Taylor series expansion is used (x+p3*x^3+..+p13*x^{13}) +// +// For |x|<2^{-64}: x is returned +// +// For |x|>=2^32: return +/-1 +// +// Special cases: +// tanh(NaN) = quiet NaN, and raise invalid exception +// tanh(INF) = that INF +// tanh(+/-0) = +/-0 +// +/******************************************************************************/ + +#include +# -- Begin tanh +ENTRY(tanh) +# parameter 1: %xmm0 +..B1.1: +..___tag_value_tanh.1: + pushq %rsi +..___tag_value_tanh.3: +..B1.2: + movsd HALFMASK(%rip), %xmm3 + xorpd %xmm4, %xmm4 + movsd L2E(%rip), %xmm1 + movsd 8+L2E(%rip), %xmm2 + movl $32768, %eax + pinsrw $3, %eax, %xmm4 + movsd Shifter(%rip), %xmm6 + pextrw $3, %xmm0, %ecx + andpd %xmm0, %xmm3 + andnpd %xmm0, %xmm4 + pshufd $68, %xmm4, %xmm5 + movl $32768, %edx + andl %ecx, %edx + andl $32767, %ecx + subl $16304, %ecx + cmpl $144, %ecx + jae .L_2TAG_PACKET_0.0.1 + subsd %xmm3, %xmm4 + mulsd %xmm1, %xmm3 + mulsd %xmm5, %xmm2 + cvtsd2si %xmm3, %eax + movq %xmm3, %xmm7 + addsd %xmm6, %xmm3 + mulsd %xmm4, %xmm1 + movsd ONEMASK(%rip), %xmm4 + subsd %xmm6, %xmm3 + xorpd %xmm0, %xmm0 + addsd %xmm1, %xmm2 + subsd %xmm3, %xmm7 + movapd cv(%rip), %xmm6 + addsd %xmm7, %xmm2 + movl $255, %ecx + andl %eax, %ecx + addl %ecx, %ecx + lea T2_neg_f(%rip), %r8 + movapd (%r8,%rcx,8), %xmm5 + shrl $4, %eax + andl $65520, %eax + subl $16368, %eax + negl %eax + pinsrw $3, %eax, %xmm0 + movapd 16+cv(%rip), %xmm1 + pshufd $68, %xmm0, %xmm0 + mulpd %xmm5, %xmm0 + movsd 32+cv(%rip), %xmm7 + pshufd $68, %xmm2, %xmm2 + movq %xmm4, %xmm5 + addsd %xmm0, %xmm4 + mulpd %xmm2, %xmm6 + mulsd %xmm2, %xmm7 + mulpd %xmm2, %xmm2 + addpd %xmm6, %xmm1 + mulsd %xmm2, %xmm2 + movsd ONEMASK(%rip), %xmm3 + mulpd %xmm2, %xmm1 + pshufd $78, %xmm1, %xmm6 + addsd %xmm6, %xmm1 + movq %xmm1, %xmm6 + addsd %xmm7, %xmm1 + mulsd %xmm0, %xmm1 + addsd %xmm4, %xmm1 + andpd MASK3(%rip), %xmm4 + divsd %xmm1, %xmm5 + subsd %xmm4, %xmm3 + pshufd $238, %xmm0, %xmm1 + addsd %xmm0, %xmm3 + movq %xmm4, %xmm2 + addsd %xmm1, %xmm3 + mulsd %xmm7, %xmm1 + mulsd %xmm0, %xmm7 + addsd %xmm1, %xmm3 + addsd %xmm7, %xmm4 + movsd RMASK(%rip), %xmm1 + mulsd %xmm0, %xmm6 + andpd MASK3(%rip), %xmm4 + addsd %xmm6, %xmm3 + movq %xmm4, %xmm6 + subsd %xmm4, %xmm2 + addsd %xmm7, %xmm2 + movsd ONEMASK(%rip), %xmm7 + andpd %xmm1, %xmm5 + addsd %xmm2, %xmm3 + mulsd %xmm5, %xmm4 + xorpd %xmm2, %xmm2 + mulsd %xmm5, %xmm3 + subsd TWOMASK(%rip), %xmm6 + subsd %xmm7, %xmm4 + xorl $32768, %edx + pinsrw $3, %edx, %xmm2 + addsd %xmm3, %xmm4 + mulsd %xmm5, %xmm6 + movq %xmm3, %xmm1 + mulsd %xmm4, %xmm3 + movq %xmm6, %xmm0 + mulsd %xmm4, %xmm6 + subsd %xmm3, %xmm1 + subsd %xmm6, %xmm1 + addsd %xmm1, %xmm0 + xorpd %xmm2, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_0.0.1: + addl $960, %ecx + cmpl $1104, %ecx + jae .L_2TAG_PACKET_1.0.1 + movapd pv(%rip), %xmm2 + pshufd $68, %xmm0, %xmm1 + movapd 16+pv(%rip), %xmm3 + mulpd %xmm1, %xmm1 + movapd 32+pv(%rip), %xmm4 + mulpd %xmm1, %xmm2 + pshufd $68, %xmm1, %xmm5 + addpd %xmm3, %xmm2 + mulsd %xmm5, %xmm5 + mulpd %xmm1, %xmm2 + mulsd %xmm5, %xmm5 + addpd %xmm4, %xmm2 + mulpd %xmm5, %xmm2 + pshufd $238, %xmm2, %xmm5 + addsd %xmm5, %xmm2 + mulsd %xmm0, %xmm2 + addsd %xmm2, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_1.0.1: + addl $15344, %ecx + cmpl $16448, %ecx + jae .L_2TAG_PACKET_2.0.1 + cmpl $16, %ecx + jb .L_2TAG_PACKET_3.0.1 + xorpd %xmm2, %xmm2 + movl $17392, %eax + pinsrw $3, %eax, %xmm2 + mulsd %xmm0, %xmm2 + addsd %xmm0, %xmm2 + jmp ..B1.4 +.L_2TAG_PACKET_3.0.1: + movq %xmm0, %xmm2 + mulsd %xmm2, %xmm2 + jmp ..B1.4 +.L_2TAG_PACKET_2.0.1: + cmpl $32752, %ecx + jae .L_2TAG_PACKET_4.0.1 + xorpd %xmm2, %xmm2 + movl $15344, %ecx + pinsrw $3, %ecx, %xmm2 + movq %xmm2, %xmm3 + mulsd %xmm2, %xmm2 + addsd %xmm3, %xmm2 +.L_2TAG_PACKET_5.0.1: + xorpd %xmm0, %xmm0 + orl $16368, %edx + pinsrw $3, %edx, %xmm0 + jmp ..B1.4 +.L_2TAG_PACKET_4.0.1: + movq %xmm0, %xmm2 + movd %xmm0, %eax + psrlq $20, %xmm2 + movd %xmm2, %ecx + orl %eax, %ecx + cmpl $0, %ecx + je .L_2TAG_PACKET_5.0.1 + addsd %xmm0, %xmm0 + movq %xmm0, (%rsp) +.L_2TAG_PACKET_6.0.1: +..B1.4: + popq %rcx +..___tag_value_tanh.4: + ret +..___tag_value_tanh.5: +END(tanh) +# -- End tanh + .section .rodata, "a" + .align 16 + .align 16 +L2E: + .long 1610612736 + .long 1082594631 + .long 4166901572 + .long 1055174155 + .type L2E,@object + .size L2E,16 + .align 16 +Shifter: + .long 0 + .long 1127743488 + .long 0 + .long 3275227136 + .type Shifter,@object + .size Shifter,16 + .align 16 +cv: + .long 3884607281 + .long 3168131199 + .long 3607404735 + .long 3190582024 + .long 1874480759 + .long 1032041131 + .long 4286760334 + .long 1053736893 + .long 4277811695 + .long 3211144770 + .long 0 + .long 0 + .type cv,@object + .size cv,48 + .align 16 +T2_neg_f: + .long 0 + .long 1072693248 + .long 0 + .long 0 + .long 1797923801 + .long 1072687577 + .long 1950547427 + .long 1013229059 + .long 730821105 + .long 1072681922 + .long 2523232743 + .long 1012067188 + .long 915592468 + .long 1072676282 + .long 352947894 + .long 3161024371 + .long 2174652632 + .long 1072670657 + .long 4087714590 + .long 1014450259 + .long 35929225 + .long 1072665048 + .long 2809788041 + .long 3159436968 + .long 2912730644 + .long 1072659453 + .long 3490067722 + .long 3163405074 + .long 2038973688 + .long 1072653874 + .long 892941374 + .long 1016046459 + .long 1533953344 + .long 1072648310 + .long 769171851 + .long 1015665633 + .long 1222472308 + .long 1072642761 + .long 1054357470 + .long 3161021018 + .long 929806999 + .long 1072637227 + .long 3205336643 + .long 1015259557 + .long 481706282 + .long 1072631708 + .long 1696079173 + .long 3162710528 + .long 3999357479 + .long 1072626203 + .long 2258941616 + .long 1015924724 + .long 2719515920 + .long 1072620714 + .long 2760332941 + .long 1015137933 + .long 764307441 + .long 1072615240 + .long 3021057420 + .long 3163329523 + .long 2256325230 + .long 1072609780 + .long 580117746 + .long 1015317295 + .long 2728693978 + .long 1072604335 + .long 396109971 + .long 3163462691 + .long 2009970496 + .long 1072598905 + .long 2159039665 + .long 3162572948 + .long 4224142467 + .long 1072593489 + .long 3389820386 + .long 1015207202 + .long 610758006 + .long 1072588089 + .long 1965209397 + .long 3161866232 + .long 3884662774 + .long 1072582702 + .long 2158611599 + .long 1014210185 + .long 991358482 + .long 1072577331 + .long 838715019 + .long 3163157668 + .long 351641897 + .long 1072571974 + .long 2172261526 + .long 3163010599 + .long 1796832535 + .long 1072566631 + .long 3176955716 + .long 3160585513 + .long 863738719 + .long 1072561303 + .long 1326992220 + .long 3162613197 + .long 1679558232 + .long 1072555989 + .long 2390342287 + .long 3163333970 + .long 4076975200 + .long 1072550689 + .long 2029000899 + .long 1015208535 + .long 3594158869 + .long 1072545404 + .long 2456521700 + .long 3163256561 + .long 64696965 + .long 1072540134 + .long 1768797490 + .long 1015816960 + .long 1912561781 + .long 1072534877 + .long 3147495102 + .long 1015678253 + .long 382305176 + .long 1072529635 + .long 2347622376 + .long 3162578625 + .long 3898795731 + .long 1072524406 + .long 1249994144 + .long 1011869818 + .long 3707479175 + .long 1072519192 + .long 3613079303 + .long 1014164738 + .long 3939148246 + .long 1072513992 + .long 3210352148 + .long 1015274323 + .long 135105010 + .long 1072508807 + .long 1906148728 + .long 3163375739 + .long 721996136 + .long 1072503635 + .long 563754734 + .long 1015371318 + .long 1242007932 + .long 1072498477 + .long 1132034716 + .long 3163339831 + .long 1532734324 + .long 1072493333 + .long 3094216535 + .long 3163162857 + .long 1432208378 + .long 1072488203 + .long 1401068914 + .long 3162363963 + .long 778901109 + .long 1072483087 + .long 2248183955 + .long 3161268751 + .long 3706687593 + .long 1072477984 + .long 3521726940 + .long 1013253067 + .long 1464976603 + .long 1072472896 + .long 3507292405 + .long 3161977534 + .long 2483480501 + .long 1072467821 + .long 1216371780 + .long 1013034172 + .long 2307442995 + .long 1072462760 + .long 3190117721 + .long 3162404539 + .long 777507147 + .long 1072457713 + .long 4282924205 + .long 1015187533 + .long 2029714210 + .long 1072452679 + .long 613660079 + .long 1015099143 + .long 1610600570 + .long 1072447659 + .long 3766732298 + .long 1015760183 + .long 3657065772 + .long 1072442652 + .long 399025623 + .long 3162957078 + .long 3716502172 + .long 1072437659 + .long 2303740125 + .long 1014042725 + .long 1631695677 + .long 1072432680 + .long 2717633076 + .long 3162344026 + .long 1540824585 + .long 1072427714 + .long 1064017011 + .long 3163487690 + .long 3287523847 + .long 1072422761 + .long 1625971539 + .long 3157009955 + .long 2420883922 + .long 1072417822 + .long 2049810052 + .long 1014119888 + .long 3080351519 + .long 1072412896 + .long 3379126788 + .long 3157218001 + .long 815859274 + .long 1072407984 + .long 240396590 + .long 3163487443 + .long 4062661092 + .long 1072403084 + .long 1422616006 + .long 3163255318 + .long 4076559943 + .long 1072398198 + .long 2119478331 + .long 3160758351 + .long 703710506 + .long 1072393326 + .long 1384660846 + .long 1015195891 + .long 2380618042 + .long 1072388466 + .long 3149557219 + .long 3163320799 + .long 364333489 + .long 1072383620 + .long 3923737744 + .long 3161421373 + .long 3092190715 + .long 1072378786 + .long 814012168 + .long 3159523422 + .long 1822067026 + .long 1072373966 + .long 1241994956 + .long 1015340290 + .long 697153126 + .long 1072369159 + .long 1283515429 + .long 3163283189 + .long 3861050111 + .long 1072364364 + .long 254893773 + .long 3162813180 + .long 2572866477 + .long 1072359583 + .long 878562433 + .long 1015521741 + .long 977020788 + .long 1072354815 + .long 3065100517 + .long 1015541563 + .long 3218338682 + .long 1072350059 + .long 3404164304 + .long 3162477108 + .long 557149882 + .long 1072345317 + .long 3672720709 + .long 1014537265 + .long 1434058175 + .long 1072340587 + .long 251133233 + .long 1015085769 + .long 1405169241 + .long 1072335870 + .long 2998539689 + .long 3162830951 + .long 321958744 + .long 1072331166 + .long 3401933767 + .long 1015794558 + .long 2331271250 + .long 1072326474 + .long 812057446 + .long 1012207446 + .long 2990417245 + .long 1072321795 + .long 3683467745 + .long 3163369326 + .long 2152073944 + .long 1072317129 + .long 1486860576 + .long 3163203456 + .long 3964284211 + .long 1072312475 + .long 2111583915 + .long 1015427164 + .long 3985553595 + .long 1072307834 + .long 4002146062 + .long 1015834136 + .long 2069751141 + .long 1072303206 + .long 1562170675 + .long 3162724681 + .long 2366108318 + .long 1072298590 + .long 2867985102 + .long 3161762254 + .long 434316067 + .long 1072293987 + .long 2028358766 + .long 1013458122 + .long 424392917 + .long 1072289396 + .long 2749202995 + .long 3162838718 + .long 2191782032 + .long 1072284817 + .long 2960257726 + .long 1013742662 + .long 1297350157 + .long 1072280251 + .long 1308022040 + .long 3163412558 + .long 1892288442 + .long 1072275697 + .long 2446255666 + .long 3162600381 + .long 3833209506 + .long 1072271155 + .long 2722920684 + .long 1013754842 + .long 2682146384 + .long 1072266626 + .long 2082178513 + .long 3163363419 + .long 2591453363 + .long 1072262109 + .long 2132396182 + .long 3159074198 + .long 3418903055 + .long 1072257604 + .long 2527457337 + .long 3160820604 + .long 727685349 + .long 1072253112 + .long 2038246809 + .long 3162358742 + .long 2966275557 + .long 1072248631 + .long 2176155324 + .long 3159842759 + .long 1403662306 + .long 1072244163 + .long 2788809599 + .long 3161671007 + .long 194117574 + .long 1072239707 + .long 777528612 + .long 3163412089 + .long 3492293770 + .long 1072235262 + .long 2248032210 + .long 1015386826 + .long 2568320822 + .long 1072230830 + .long 2732824428 + .long 1014352915 + .long 1577608921 + .long 1072226410 + .long 1875489510 + .long 3162968394 + .long 380978316 + .long 1072222002 + .long 854188970 + .long 3160462686 + .long 3134592888 + .long 1072217605 + .long 4232266862 + .long 1015991134 + .long 1110089947 + .long 1072213221 + .long 1451641639 + .long 1015474673 + .long 2759350287 + .long 1072208848 + .long 1148526634 + .long 1015894933 + .long 3649726105 + .long 1072204487 + .long 4085036346 + .long 1015649474 + .long 3643909174 + .long 1072200138 + .long 3537586109 + .long 1014354647 + .long 2604962541 + .long 1072195801 + .long 2614425274 + .long 3163539192 + .long 396319521 + .long 1072191476 + .long 4172420816 + .long 3159074632 + .long 1176749997 + .long 1072187162 + .long 2738998779 + .long 3162035844 + .long 515457527 + .long 1072182860 + .long 836709333 + .long 1015651226 + .long 2571947539 + .long 1072178569 + .long 3558159064 + .long 3163376669 + .long 2916157145 + .long 1072174290 + .long 219487565 + .long 1015309367 + .long 1413356050 + .long 1072170023 + .long 1651349291 + .long 3162668166 + .long 2224145553 + .long 1072165767 + .long 3482522030 + .long 3161489169 + .long 919555682 + .long 1072161523 + .long 3121969534 + .long 1012948226 + .long 1660913392 + .long 1072157290 + .long 4218599604 + .long 1015135707 + .long 19972402 + .long 1072153069 + .long 3507899862 + .long 1016009292 + .long 158781403 + .long 1072148859 + .long 2221464712 + .long 3163286453 + .long 1944781191 + .long 1072144660 + .long 3993278767 + .long 3161724279 + .long 950803702 + .long 1072140473 + .long 1655364926 + .long 1015237032 + .long 1339972927 + .long 1072136297 + .long 167908909 + .long 1015572152 + .long 2980802057 + .long 1072132132 + .long 378619896 + .long 1015773303 + .long 1447192521 + .long 1072127979 + .long 1462857171 + .long 3162514521 + .long 903334909 + .long 1072123837 + .long 1636462108 + .long 1015039997 + .long 1218806132 + .long 1072119706 + .long 1818613052 + .long 3162548441 + .long 2263535754 + .long 1072115586 + .long 752233586 + .long 3162639008 + .long 3907805044 + .long 1072111477 + .long 2257091225 + .long 3161550407 + .long 1727278727 + .long 1072107380 + .long 3562710623 + .long 1011471940 + .long 4182873220 + .long 1072103293 + .long 629542646 + .long 3161996303 + .long 2555984613 + .long 1072099218 + .long 2652555442 + .long 3162552692 + .long 1013258799 + .long 1072095154 + .long 1748797611 + .long 3160129082 + .long 3721688645 + .long 1072091100 + .long 3069276937 + .long 1015839401 + .long 1963711167 + .long 1072087058 + .long 1744767757 + .long 3160574294 + .long 4201977662 + .long 1072083026 + .long 748330254 + .long 1013594357 + .long 1719614413 + .long 1072079006 + .long 330458198 + .long 3163282740 + .long 2979960120 + .long 1072074996 + .long 2599109725 + .long 1014498493 + .long 3561793907 + .long 1072070997 + .long 1157054053 + .long 1011890350 + .long 3339203574 + .long 1072067009 + .long 1483497780 + .long 3162408754 + .long 2186617381 + .long 1072063032 + .long 2270764084 + .long 3163272713 + .long 4273770423 + .long 1072059065 + .long 3383180809 + .long 3163218901 + .long 885834528 + .long 1072055110 + .long 1973258547 + .long 3162261564 + .long 488188413 + .long 1072051165 + .long 3199821029 + .long 1015564048 + .long 2956612997 + .long 1072047230 + .long 2118169751 + .long 3162735553 + .long 3872257780 + .long 1072043306 + .long 1253592103 + .long 1015958334 + .long 3111574537 + .long 1072039393 + .long 2606161479 + .long 3162759746 + .long 551349105 + .long 1072035491 + .long 3821916050 + .long 3162106589 + .long 363667784 + .long 1072031599 + .long 813753950 + .long 1015785209 + .long 2425981843 + .long 1072027717 + .long 2830390851 + .long 3163346599 + .long 2321106615 + .long 1072023846 + .long 2171176610 + .long 1009535771 + .long 4222122499 + .long 1072019985 + .long 1277378074 + .long 3163256737 + .long 3712504873 + .long 1072016135 + .long 88491949 + .long 1015427660 + .long 671025100 + .long 1072012296 + .long 3832014351 + .long 3163022030 + .long 3566716925 + .long 1072008466 + .long 1536826856 + .long 1014142433 + .long 3689071823 + .long 1072004647 + .long 2321004996 + .long 3162552716 + .long 917841882 + .long 1072000839 + .long 18715565 + .long 1015659308 + .long 3723038930 + .long 1071997040 + .long 378465264 + .long 3162569582 + .long 3395129871 + .long 1071993252 + .long 4025345435 + .long 3162335388 + .long 4109806887 + .long 1071989474 + .long 422403966 + .long 1014469229 + .long 1453150082 + .long 1071985707 + .long 498154669 + .long 3161488062 + .long 3896463087 + .long 1071981949 + .long 1139797873 + .long 3161233805 + .long 2731501122 + .long 1071978202 + .long 1774031855 + .long 3162470021 + .long 2135241198 + .long 1071974465 + .long 1236747871 + .long 1013589147 + .long 1990012071 + .long 1071970738 + .long 3529070563 + .long 3162813193 + .long 2178460671 + .long 1071967021 + .long 777878098 + .long 3162842493 + .long 2583551245 + .long 1071963314 + .long 3161094195 + .long 1015606491 + .long 3088564500 + .long 1071959617 + .long 1762311517 + .long 1015045673 + .long 3577096743 + .long 1071955930 + .long 2951496418 + .long 1013793687 + .long 3933059031 + .long 1071952253 + .long 2133366768 + .long 3161531832 + .long 4040676318 + .long 1071948586 + .long 4090609238 + .long 1015663458 + .long 3784486610 + .long 1071944929 + .long 1581883040 + .long 3161698953 + .long 3049340112 + .long 1071941282 + .long 3062915824 + .long 1013170595 + .long 1720398391 + .long 1071937645 + .long 3980678963 + .long 3163300080 + .long 3978100823 + .long 1071934017 + .long 3513027190 + .long 1015845963 + .long 1118294578 + .long 1071930400 + .long 2197495694 + .long 3159909401 + .long 1617004845 + .long 1071926792 + .long 82804944 + .long 1010342778 + .long 1065662932 + .long 1071923194 + .long 2533670915 + .long 1014530238 + .long 3645941911 + .long 1071919605 + .long 3814685081 + .long 3161573341 + .long 654919306 + .long 1071916027 + .long 3232961757 + .long 3163047469 + .long 569847338 + .long 1071912458 + .long 472945272 + .long 3159290729 + .long 3278348324 + .long 1071908898 + .long 3069497416 + .long 1014750712 + .long 78413852 + .long 1071905349 + .long 4183226867 + .long 3163017251 + .long 3743175029 + .long 1071901808 + .long 2072812490 + .long 3162175075 + .long 1276261410 + .long 1071898278 + .long 300981948 + .long 1014684169 + .long 1156440435 + .long 1071894757 + .long 2351451249 + .long 1013967056 + .long 3272845541 + .long 1071891245 + .long 928852419 + .long 3163488248 + .long 3219942644 + .long 1071887743 + .long 3798990616 + .long 1015368806 + .long 887463927 + .long 1071884251 + .long 3596744163 + .long 3160794166 + .long 460407023 + .long 1071880768 + .long 4237175092 + .long 3163138469 + .long 1829099622 + .long 1071877294 + .long 1016661181 + .long 3163461005 + .long 589198666 + .long 1071873830 + .long 2664346172 + .long 3163157962 + .long 926591435 + .long 1071870375 + .long 3208833762 + .long 3162913514 + .long 2732492859 + .long 1071866929 + .long 2691479646 + .long 3162255684 + .long 1603444721 + .long 1071863493 + .long 1548633640 + .long 3162201326 + .long 1726216749 + .long 1071860066 + .long 2466808228 + .long 3161676405 + .long 2992903935 + .long 1071856648 + .long 2218154406 + .long 1015228193 + .long 1000925746 + .long 1071853240 + .long 1018491672 + .long 3163309544 + .long 4232894513 + .long 1071849840 + .long 2383938684 + .long 1014668519 + .long 3991843581 + .long 1071846450 + .long 4092853457 + .long 1014585763 + .long 171030293 + .long 1071843070 + .long 3526460132 + .long 1014428778 + .long 1253935211 + .long 1071839698 + .long 1395382931 + .long 3159702613 + .long 2839424854 + .long 1071836335 + .long 1171596163 + .long 1013041679 + .long 526652809 + .long 1071832982 + .long 4223459736 + .long 1015879375 + .long 2799960843 + .long 1071829637 + .long 1423655381 + .long 1015022151 + .long 964107055 + .long 1071826302 + .long 2800439588 + .long 3162833221 + .long 3504003472 + .long 1071822975 + .long 3594001060 + .long 3157330652 + .long 1724976915 + .long 1071819658 + .long 420909223 + .long 3163117379 + .long 4112506593 + .long 1071816349 + .long 2947355221 + .long 1014371048 + .long 1972484976 + .long 1071813050 + .long 675290301 + .long 3161640050 + .long 3790955393 + .long 1071809759 + .long 2352942462 + .long 3163180090 + .long 874372905 + .long 1071806478 + .long 100263788 + .long 1015940732 + .long 1709341917 + .long 1071803205 + .long 2571168217 + .long 1014152499 + .long 1897844341 + .long 1071799941 + .long 1254300460 + .long 1015275938 + .long 1337108031 + .long 1071796686 + .long 3203724452 + .long 1014677845 + .long 4219606026 + .long 1071793439 + .long 2434574742 + .long 1014681548 + .long 1853186616 + .long 1071790202 + .long 3066496371 + .long 1015656574 + .long 2725843665 + .long 1071786973 + .long 1433917087 + .long 1014838523 + .long 2440944790 + .long 1071783753 + .long 2492769774 + .long 1014147454 + .long 897099801 + .long 1071780542 + .long 754756297 + .long 1015241005 + .long 2288159958 + .long 1071777339 + .long 2169144469 + .long 1014876021 + .long 2218315341 + .long 1071774145 + .long 2694295388 + .long 3163288868 + .long 586995997 + .long 1071770960 + .long 41662348 + .long 3162627992 + .long 1588871207 + .long 1071767783 + .long 143439582 + .long 3162963416 + .long 828946858 + .long 1071764615 + .long 10642492 + .long 1015939438 + .long 2502433899 + .long 1071761455 + .long 2148595913 + .long 1015023991 + .long 2214878420 + .long 1071758304 + .long 892270087 + .long 3163116422 + .long 4162030108 + .long 1071755161 + .long 2763428480 + .long 1015529349 + .long 3949972341 + .long 1071752027 + .long 2068408548 + .long 1014913868 + .long 1480023343 + .long 1071748902 + .long 2247196168 + .long 1015327453 + .long 948735466 + .long 1071745785 + .long 3516338028 + .long 3162574883 + .long 2257959872 + .long 1071742676 + .long 3802946148 + .long 1012964927 + .long 1014845819 + .long 1071739576 + .long 3117910646 + .long 3161559105 + .long 1416741826 + .long 1071736484 + .long 2196380210 + .long 1011413563 + .long 3366293073 + .long 1071733400 + .long 3119426314 + .long 1014120554 + .long 2471440686 + .long 1071730325 + .long 968836267 + .long 3162214888 + .long 2930322912 + .long 1071727258 + .long 2599499422 + .long 3162714047 + .long 351405227 + .long 1071724200 + .long 3125337328 + .long 3159822479 + .long 3228316108 + .long 1071721149 + .long 3010241991 + .long 3158422804 + .long 2875075254 + .long 1071718107 + .long 4144233330 + .long 3163333716 + .long 3490863953 + .long 1071715073 + .long 960797498 + .long 3162948880 + .long 685187902 + .long 1071712048 + .long 378731989 + .long 1014843115 + .long 2952712987 + .long 1071709030 + .long 3293494651 + .long 3160120301 + .long 1608493509 + .long 1071706021 + .long 3159622171 + .long 3162807737 + .long 852742562 + .long 1071703020 + .long 667253586 + .long 1009793559 + .long 590962156 + .long 1071700027 + .long 3829346666 + .long 3163275597 + .long 728909815 + .long 1071697042 + .long 383930225 + .long 1015029468 + .long 1172597893 + .long 1071694065 + .long 114433263 + .long 1015347593 + .long 1828292879 + .long 1071691096 + .long 1255956747 + .long 1015588398 + .long 2602514713 + .long 1071688135 + .long 2268929336 + .long 1014354284 + .long 3402036099 + .long 1071685182 + .long 405889334 + .long 1015105656 + .long 4133881824 + .long 1071682237 + .long 2148155345 + .long 3162931299 + .long 410360776 + .long 1071679301 + .long 1269990655 + .long 1011975870 + .long 728934454 + .long 1071676372 + .long 1413842688 + .long 1014178612 + .long 702412510 + .long 1071673451 + .long 3803266087 + .long 3162280415 + .long 238821257 + .long 1071670538 + .long 1469694871 + .long 3162884987 + .long 3541402996 + .long 1071667632 + .long 2759177317 + .long 1014854626 + .long 1928746161 + .long 1071664735 + .long 983617676 + .long 1014285177 + .long 3899555717 + .long 1071661845 + .long 427280750 + .long 3162546972 + .long 772914124 + .long 1071658964 + .long 4004372762 + .long 1012230161 + .long 1048019041 + .long 1071656090 + .long 1398474845 + .long 3160510595 + .long 339411585 + .long 1071653224 + .long 264588982 + .long 3161636657 + .long 2851812149 + .long 1071650365 + .long 2595802551 + .long 1015767337 + .long 4200250559 + .long 1071647514 + .long 2808127345 + .long 3161781938 + .type T2_neg_f,@object + .size T2_neg_f,4096 + .space 512, 0x00 # pad + .align 16 +MASK3: + .long 0 + .long 4294967280 + .long 0 + .long 4294967280 + .type MASK3,@object + .size MASK3,16 + .align 16 +RMASK: + .long 4294705152 + .long 4294967295 + .long 4294705152 + .long 4294967295 + .type RMASK,@object + .size RMASK,16 + .align 16 +pv: + .long 236289503 + .long 1064135997 + .long 463583772 + .long 3215696314 + .long 1441186365 + .long 3212977891 + .long 286331153 + .long 1069617425 + .long 2284589306 + .long 1066820852 + .long 1431655765 + .long 3218429269 + .type pv,@object + .size pv,48 + .align 4 +HALFMASK: + .long 4160749568 + .long 2147483647 + .type HALFMASK,@object + .size HALFMASK,8 + .align 4 +ONEMASK: + .long 0 + .long 1072693248 + .type ONEMASK,@object + .size ONEMASK,8 + .align 4 +TWOMASK: + .long 0 + .long 1073741824 + .type TWOMASK,@object + .size TWOMASK,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 1 + .4byte 0x00000014 + .8byte 0x00527a0100000000 + .8byte 0x08070c1b01107801 + .4byte 0x00000190 + .4byte 0x0000001c + .4byte 0x0000001c + .4byte ..___tag_value_tanh.1-. + .4byte ..___tag_value_tanh.5-..___tag_value_tanh.1 + .2byte 0x0400 + .4byte ..___tag_value_tanh.3-..___tag_value_tanh.1 + .2byte 0x100e + .byte 0x04 + .4byte ..___tag_value_tanh.4-..___tag_value_tanh.3 + .2byte 0x080e + .byte 0x00 +# End diff --git a/libm/x86_64/sqrt.S b/libm/x86_64/sqrt.S new file mode 100644 index 000000000..ee9702655 --- /dev/null +++ b/libm/x86_64/sqrt.S @@ -0,0 +1,36 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(sqrt) +sqrtsd %xmm0,%xmm0 +retq +END(sqrt) diff --git a/libm/x86_64/sqrtf.S b/libm/x86_64/sqrtf.S new file mode 100644 index 000000000..910407f56 --- /dev/null +++ b/libm/x86_64/sqrtf.S @@ -0,0 +1,36 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(sqrtf) +sqrtss %xmm0,%xmm0 +retq +END(sqrtf) diff --git a/libm/x86_64/trunc.S b/libm/x86_64/trunc.S new file mode 100644 index 000000000..fe18b40a6 --- /dev/null +++ b/libm/x86_64/trunc.S @@ -0,0 +1,36 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(trunc) +roundsd $0x3,%xmm0,%xmm0 +retq +END(trunc) diff --git a/libm/x86_64/truncf.S b/libm/x86_64/truncf.S new file mode 100644 index 000000000..eeee1d776 --- /dev/null +++ b/libm/x86_64/truncf.S @@ -0,0 +1,36 @@ +/* +Copyright (c) 2014, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER 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. +*/ + +#include + +ENTRY(truncf) +roundss $0x3,%xmm0,%xmm0 +retq +END(truncf) diff --git a/linker/Android.mk b/linker/Android.mk index 54535fc2b..f78a0257c 100644 --- a/linker/Android.mk +++ b/linker/Android.mk @@ -7,8 +7,10 @@ LOCAL_SRC_FILES:= \ dlfcn.cpp \ linker.cpp \ linker_allocator.cpp \ + linker_block_allocator.cpp \ linker_environ.cpp \ linker_libc_support.c \ + linker_memory.cpp \ linker_phdr.cpp \ rt.cpp \ diff --git a/linker/linker.cpp b/linker/linker.cpp index 39344849e..18f8cdcb4 100644 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -50,11 +50,13 @@ #include "private/UniquePtr.h" #include "linker.h" +#include "linker_block_allocator.h" #include "linker_debug.h" #include "linker_environ.h" +#include "linker_leb128.h" #include "linker_phdr.h" #include "linker_relocs.h" -#include "linker_allocator.h" +#include "linker_reloc_iterators.h" /* >>> IMPORTANT NOTE - READ ME BEFORE MODIFYING <<< * @@ -90,8 +92,8 @@ static const char* get_base_name(const char* name) { static ElfW(Addr) get_elf_exec_load_bias(const ElfW(Ehdr)* elf); -static LinkerAllocator g_soinfo_allocator; -static LinkerAllocator> g_soinfo_links_allocator; +static LinkerTypeAllocator g_soinfo_allocator; +static LinkerTypeAllocator> g_soinfo_links_allocator; static soinfo* solist; static soinfo* sonext; @@ -145,18 +147,6 @@ void count_relocation(RelocationKind) { uint32_t bitmask[4096]; #endif -// You shouldn't try to call memory-allocating functions in the dynamic linker. -// Guard against the most obvious ones. -#define DISALLOW_ALLOCATION(return_type, name, ...) \ - return_type name __VA_ARGS__ \ - { \ - __libc_fatal("ERROR: " #name " called from the dynamic linker!\n"); \ - } -DISALLOW_ALLOCATION(void*, malloc, (size_t u __unused)); -DISALLOW_ALLOCATION(void, free, (void* u __unused)); -DISALLOW_ALLOCATION(void*, realloc, (void* u1 __unused, size_t u2 __unused)); -DISALLOW_ALLOCATION(void*, calloc, (size_t u1 __unused, size_t u2 __unused)); - static char __linker_dl_err_buf[768]; char* linker_get_error_buffer() { @@ -419,26 +409,41 @@ ElfW(Sym)* soinfo::gnu_lookup(SymbolName& symbol_name) { uint32_t word_num = (hash / bloom_mask_bits) & gnu_maskwords_; ElfW(Addr) bloom_word = gnu_bloom_filter_[word_num]; + TRACE_TYPE(LOOKUP, "SEARCH %s in %s@%p (gnu)", + symbol_name.get_name(), name, reinterpret_cast(base)); + // test against bloom filter if ((1 & (bloom_word >> (hash % bloom_mask_bits)) & (bloom_word >> (h2 % bloom_mask_bits))) == 0) { + TRACE_TYPE(LOOKUP, "NOT FOUND %s in %s@%p", + symbol_name.get_name(), name, reinterpret_cast(base)); + return nullptr; } // bloom test says "probably yes"... - uint32_t n = bucket_[hash % nbucket_]; + uint32_t n = gnu_bucket_[hash % gnu_nbucket_]; if (n == 0) { + TRACE_TYPE(LOOKUP, "NOT FOUND %s in %s@%p", + symbol_name.get_name(), name, reinterpret_cast(base)); + return nullptr; } do { ElfW(Sym)* s = symtab_ + n; - if (((chain_[n] ^ hash) >> 1) == 0 && + if (((gnu_chain_[n] ^ hash) >> 1) == 0 && strcmp(get_string(s->st_name), symbol_name.get_name()) == 0 && is_symbol_global_and_defined(this, s)) { + TRACE_TYPE(LOOKUP, "FOUND %s in %s (%p) %zd", + symbol_name.get_name(), name, reinterpret_cast(s->st_value), + static_cast(s->st_size)); return s; } - } while ((chain_[n++] & 1) == 0); + } while ((gnu_chain_[n++] & 1) == 0); + + TRACE_TYPE(LOOKUP, "NOT FOUND %s in %s@%p", + symbol_name.get_name(), name, reinterpret_cast(base)); return nullptr; } @@ -800,8 +805,8 @@ static bool symbol_matches_soaddr(const ElfW(Sym)* sym, ElfW(Addr) soaddr) { ElfW(Sym)* soinfo::gnu_addr_lookup(const void* addr) { ElfW(Addr) soaddr = reinterpret_cast(addr) - load_bias; - for (size_t i = 0; i < nbucket_; ++i) { - uint32_t n = bucket_[i]; + for (size_t i = 0; i < gnu_nbucket_; ++i) { + uint32_t n = gnu_bucket_[i]; if (n == 0) { continue; @@ -812,7 +817,7 @@ ElfW(Sym)* soinfo::gnu_addr_lookup(const void* addr) { if (symbol_matches_soaddr(sym, soaddr)) { return sym; } - } while ((chain_[n++] & 1) == 0); + } while ((gnu_chain_[n++] & 1) == 0); } return nullptr; @@ -1239,9 +1244,7 @@ void do_android_get_LD_LIBRARY_PATH(char* buffer, size_t buffer_size) { } void do_android_update_LD_LIBRARY_PATH(const char* ld_library_path) { - if (!get_AT_SECURE()) { - parse_LD_LIBRARY_PATH(ld_library_path); - } + parse_LD_LIBRARY_PATH(ld_library_path); } soinfo* do_dlopen(const char* name, int flags, const android_dlextinfo* extinfo) { @@ -1297,9 +1300,14 @@ static ElfW(Addr) get_addend(ElfW(Rel)* rel, ElfW(Addr) reloc_addr) { } #endif -template -bool soinfo::relocate(ElfRelT* rel, unsigned count, const soinfo_list_t& global_group, const soinfo_list_t& local_group) { - for (size_t idx = 0; idx < count; ++idx, ++rel) { +template +bool soinfo::relocate(ElfRelIteratorT&& rel_iterator, const soinfo_list_t& global_group, const soinfo_list_t& local_group) { + for (size_t idx = 0; rel_iterator.has_next(); ++idx) { + const auto rel = rel_iterator.next(); + if (rel == nullptr) { + return false; + } + ElfW(Word) type = ELFW(R_TYPE)(rel->r_info); ElfW(Word) sym = ELFW(R_SYM)(rel->r_info); @@ -1405,16 +1413,16 @@ bool soinfo::relocate(ElfRelT* rel, unsigned count, const soinfo_list_t& global_ MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO RELATIVE %16p <- %16p\n", reinterpret_cast(reloc), - reinterpret_cast(base + addend)); - *reinterpret_cast(reloc) = (base + addend); + reinterpret_cast(load_bias + addend)); + *reinterpret_cast(reloc) = (load_bias + addend); break; case R_GENERIC_IRELATIVE: count_relocation(kRelocRelative); MARK(rel->r_offset); TRACE_TYPE(RELO, "RELO IRELATIVE %16p <- %16p\n", reinterpret_cast(reloc), - reinterpret_cast(base + addend)); - *reinterpret_cast(reloc) = call_ifunc_resolver(base + addend); + reinterpret_cast(load_bias + addend)); + *reinterpret_cast(reloc) = call_ifunc_resolver(load_bias + addend); break; #if defined(__aarch64__) @@ -1936,11 +1944,6 @@ bool soinfo::prelink_image() { break; case DT_HASH: - if (nbucket_ != 0) { - // in case of --hash-style=both, we prefer gnu - break; - } - nbucket_ = reinterpret_cast(load_bias + d->d_un.d_ptr)[0]; nchain_ = reinterpret_cast(load_bias + d->d_un.d_ptr)[1]; bucket_ = reinterpret_cast(load_bias + d->d_un.d_ptr + 8); @@ -1948,20 +1951,15 @@ bool soinfo::prelink_image() { break; case DT_GNU_HASH: - if (nbucket_ != 0) { - // in case of --hash-style=both, we prefer gnu - nchain_ = 0; - } - - nbucket_ = reinterpret_cast(load_bias + d->d_un.d_ptr)[0]; + gnu_nbucket_ = reinterpret_cast(load_bias + d->d_un.d_ptr)[0]; // skip symndx gnu_maskwords_ = reinterpret_cast(load_bias + d->d_un.d_ptr)[2]; gnu_shift2_ = reinterpret_cast(load_bias + d->d_un.d_ptr)[3]; gnu_bloom_filter_ = reinterpret_cast(load_bias + d->d_un.d_ptr + 16); - bucket_ = reinterpret_cast(gnu_bloom_filter_ + gnu_maskwords_); + gnu_bucket_ = reinterpret_cast(gnu_bloom_filter_ + gnu_maskwords_); // amend chain for symndx = header[1] - chain_ = bucket_ + nbucket_ - reinterpret_cast(load_bias + d->d_un.d_ptr)[1]; + gnu_chain_ = gnu_bucket_ + gnu_nbucket_ - reinterpret_cast(load_bias + d->d_un.d_ptr)[1]; if (!powerof2(gnu_maskwords_)) { DL_ERR("invalid maskwords for gnu_hash = 0x%x, in \"%s\" expecting power to two", gnu_maskwords_, name); @@ -2040,8 +2038,8 @@ bool soinfo::prelink_image() { if ((dynamic_flags & PF_W) != 0) { d->d_un.d_val = reinterpret_cast(&_r_debug); } - break; #endif + break; #if defined(USE_RELA) case DT_RELA: rela_ = reinterpret_cast(load_bias + d->d_un.d_ptr); @@ -2051,6 +2049,22 @@ bool soinfo::prelink_image() { rela_count_ = d->d_un.d_val / sizeof(ElfW(Rela)); break; + case DT_ANDROID_RELA: + android_relocs_ = reinterpret_cast(load_bias + d->d_un.d_ptr); + break; + + case DT_ANDROID_RELASZ: + android_relocs_size_ = d->d_un.d_val; + break; + + case DT_ANDROID_REL: + DL_ERR("unsupported DT_ANDROID_REL in \"%s\"", name); + return false; + + case DT_ANDROID_RELSZ: + DL_ERR("unsupported DT_ANDROID_RELSZ in \"%s\"", name); + return false; + case DT_RELAENT: if (d->d_un.d_val != sizeof(ElfW(Rela))) { DL_ERR("invalid DT_RELAENT: %zd", static_cast(d->d_un.d_val)); @@ -2069,6 +2083,7 @@ bool soinfo::prelink_image() { case DT_RELSZ: DL_ERR("unsupported DT_RELSZ in \"%s\"", name); return false; + #else case DT_REL: rel_ = reinterpret_cast(load_bias + d->d_un.d_ptr); @@ -2085,6 +2100,22 @@ bool soinfo::prelink_image() { } break; + case DT_ANDROID_REL: + android_relocs_ = reinterpret_cast(load_bias + d->d_un.d_ptr); + break; + + case DT_ANDROID_RELSZ: + android_relocs_size_ = d->d_un.d_val; + break; + + case DT_ANDROID_RELA: + DL_ERR("unsupported DT_ANDROID_RELA in \"%s\"", name); + return false; + + case DT_ANDROID_RELASZ: + DL_ERR("unsupported DT_ANDROID_RELASZ in \"%s\"", name); + return false; + // "Indicates that all RELATIVE relocations have been concatenated together, // and specifies the RELATIVE relocation count." // @@ -2092,9 +2123,15 @@ bool soinfo::prelink_image() { // Not currently used by bionic linker - ignored. case DT_RELCOUNT: break; + case DT_RELA: DL_ERR("unsupported DT_RELA in \"%s\"", name); return false; + + case DT_RELASZ: + DL_ERR("unsupported DT_RELASZ in \"%s\"", name); + return false; + #endif case DT_INIT: init_func_ = reinterpret_cast(load_bias + d->d_un.d_ptr); @@ -2234,7 +2271,7 @@ bool soinfo::prelink_image() { DL_ERR("linker cannot have DT_NEEDED dependencies on other libraries"); return false; } - if (nbucket_ == 0) { + if (nbucket_ == 0 && gnu_nbucket_ == 0) { DL_ERR("empty/missing DT_HASH/DT_GNU_HASH in \"%s\" (new hash type from the future?)", name); return false; } @@ -2249,7 +2286,8 @@ bool soinfo::prelink_image() { return true; } -bool soinfo::link_image(const soinfo_list_t& global_group, const soinfo_list_t& local_group, const android_dlextinfo* extinfo) { +bool soinfo::link_image(const soinfo_list_t& global_group, const soinfo_list_t& local_group, + const android_dlextinfo* extinfo) { local_group_root_ = local_group.front(); if (local_group_root_ == nullptr) { @@ -2270,29 +2308,63 @@ bool soinfo::link_image(const soinfo_list_t& global_group, const soinfo_list_t& } #endif + if (android_relocs_ != nullptr) { + // check signature + if (android_relocs_size_ > 3 && + android_relocs_[0] == 'A' && + android_relocs_[1] == 'P' && + (android_relocs_[2] == 'U' || android_relocs_[2] == 'S') && + android_relocs_[3] == '2') { + DEBUG("[ android relocating %s ]", name); + + bool relocated = false; + const uint8_t* packed_relocs = android_relocs_ + 4; + const size_t packed_relocs_size = android_relocs_size_ - 4; + + if (android_relocs_[2] == 'U') { + relocated = relocate( + packed_reloc_iterator( + leb128_decoder(packed_relocs, packed_relocs_size)), + global_group, local_group); + } else { // android_relocs_[2] == 'S' + relocated = relocate( + packed_reloc_iterator( + sleb128_decoder(packed_relocs, packed_relocs_size)), + global_group, local_group); + } + + if (!relocated) { + return false; + } + } else { + DL_ERR("bad android relocation header."); + return false; + } + } + #if defined(USE_RELA) if (rela_ != nullptr) { DEBUG("[ relocating %s ]", name); - if (!relocate(rela_, rela_count_, global_group, local_group)) { + if (!relocate(plain_reloc_iterator(rela_, rela_count_), global_group, local_group)) { return false; } } if (plt_rela_ != nullptr) { DEBUG("[ relocating %s plt ]", name); - if (!relocate(plt_rela_, plt_rela_count_, global_group, local_group)) { + if (!relocate(plain_reloc_iterator(plt_rela_, plt_rela_count_), global_group, local_group)) { return false; } } #else if (rel_ != nullptr) { DEBUG("[ relocating %s ]", name); - if (!relocate(rel_, rel_count_, global_group, local_group)) { + if (!relocate(plain_reloc_iterator(rel_, rel_count_), global_group, local_group)) { return false; } } if (plt_rel_ != nullptr) { DEBUG("[ relocating %s plt ]", name); - if (!relocate(plt_rel_, plt_rel_count_, global_group, local_group)) { + if (!relocate(plain_reloc_iterator(plt_rel_, plt_rel_count_), global_group, local_group)) { return false; } } diff --git a/linker/linker.h b/linker/linker.h index 2afbaf62f..e4681ebe5 100644 --- a/linker/linker.h +++ b/linker/linker.h @@ -286,8 +286,8 @@ struct soinfo { void call_array(const char* array_name, linker_function_t* functions, size_t count, bool reverse); void call_function(const char* function_name, linker_function_t function); - template - bool relocate(ElfRelT* rel, unsigned count, const soinfo_list_t& global_group, const soinfo_list_t& local_group); + template + bool relocate(ElfRelIteratorT&& rel_iterator, const soinfo_list_t& global_group, const soinfo_list_t& local_group); private: // This part of the structure is only available @@ -309,12 +309,19 @@ struct soinfo { size_t strtab_size_; // version >= 2 + + size_t gnu_nbucket_; + uint32_t* gnu_bucket_; + uint32_t* gnu_chain_; uint32_t gnu_maskwords_; uint32_t gnu_shift2_; ElfW(Addr)* gnu_bloom_filter_; soinfo* local_group_root_; + uint8_t* android_relocs_; + size_t android_relocs_size_; + friend soinfo* get_libdl_info(); }; diff --git a/linker/linker_allocator.cpp b/linker/linker_allocator.cpp index ac11b979a..1b16cf12c 100644 --- a/linker/linker_allocator.cpp +++ b/linker/linker_allocator.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014 The Android Open Source Project + * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,120 +15,332 @@ */ #include "linker_allocator.h" -#include -#include +#include "linker.h" + +#include +#include + +#include #include #include #include "private/bionic_prctl.h" -struct LinkerAllocatorPage { - LinkerAllocatorPage* next; - uint8_t bytes[PAGE_SIZE-sizeof(LinkerAllocatorPage*)]; -}; +// +// LinkerMemeoryAllocator is general purpose allocator +// designed to provide the same functionality as the malloc/free/realloc +// libc functions. +// +// On alloc: +// If size is >= 1k allocator proxies malloc call directly to mmap +// If size < 1k allocator uses SmallObjectAllocator for the size +// rounded up to the nearest power of two. +// +// On free: +// +// For a pointer allocated using proxy-to-mmap allocator unmaps +// the memory. +// +// For a pointer allocated using SmallObjectAllocator it adds +// the block to free_blocks_list_. If the number of free pages reaches 2, +// SmallObjectAllocator munmaps one of the pages keeping the other one +// in reserve. -struct FreeBlockInfo { - void* next_block; - size_t num_free_blocks; -}; +static const char kSignature[4] = {'L', 'M', 'A', 1}; -LinkerBlockAllocator::LinkerBlockAllocator(size_t block_size) - : block_size_(block_size < sizeof(FreeBlockInfo) ? sizeof(FreeBlockInfo) : block_size), - page_list_(nullptr), - free_block_list_(nullptr) -{} +static const size_t kSmallObjectMaxSize = 1 << kSmallObjectMaxSizeLog2; -void* LinkerBlockAllocator::alloc() { - if (free_block_list_ == nullptr) { - create_new_page(); - } +// This type is used for large allocations (with size >1k) +static const uint32_t kLargeObject = 111; - FreeBlockInfo* block_info = reinterpret_cast(free_block_list_); - if (block_info->num_free_blocks > 1) { - FreeBlockInfo* next_block_info = reinterpret_cast( - reinterpret_cast(free_block_list_) + block_size_); - next_block_info->next_block = block_info->next_block; - next_block_info->num_free_blocks = block_info->num_free_blocks - 1; - free_block_list_ = next_block_info; - } else { - free_block_list_ = block_info->next_block; - } - - memset(block_info, 0, block_size_); - - return block_info; +bool operator<(const small_object_page_record& one, const small_object_page_record& two) { + return one.page_addr < two.page_addr; } -void LinkerBlockAllocator::free(void* block) { - if (block == nullptr) { +static inline uint16_t log2(size_t number) { + uint16_t result = 0; + number--; + + while (number != 0) { + result++; + number >>= 1; + } + + return result; +} + +LinkerSmallObjectAllocator::LinkerSmallObjectAllocator() + : type_(0), name_(nullptr), block_size_(0), free_pages_cnt_(0), free_blocks_list_(nullptr) {} + +void* LinkerSmallObjectAllocator::alloc() { + if (free_blocks_list_ == nullptr) { + alloc_page(); + } + + small_object_block_record* block_record = free_blocks_list_; + if (block_record->free_blocks_cnt > 1) { + small_object_block_record* next_free = reinterpret_cast( + reinterpret_cast(block_record) + block_size_); + next_free->next = block_record->next; + next_free->free_blocks_cnt = block_record->free_blocks_cnt - 1; + free_blocks_list_ = next_free; + } else { + free_blocks_list_ = block_record->next; + } + + // bookkeeping... + auto page_record = find_page_record(block_record); + + if (page_record->allocated_blocks_cnt == 0) { + free_pages_cnt_--; + } + + page_record->free_blocks_cnt--; + page_record->allocated_blocks_cnt++; + + memset(block_record, 0, block_size_); + + return block_record; +} + +void LinkerSmallObjectAllocator::free_page(linker_vector_t::iterator page_record) { + void* page_start = reinterpret_cast(page_record->page_addr); + void* page_end = reinterpret_cast(reinterpret_cast(page_start) + PAGE_SIZE); + + while (free_blocks_list_ != nullptr && + free_blocks_list_ > page_start && + free_blocks_list_ < page_end) { + free_blocks_list_ = free_blocks_list_->next; + } + + small_object_block_record* current = free_blocks_list_; + + while (current != nullptr) { + while (current->next > page_start && current->next < page_end) { + current->next = current->next->next; + } + + current = current->next; + } + + munmap(page_start, PAGE_SIZE); + page_records_.erase(page_record); + free_pages_cnt_--; +} + +void LinkerSmallObjectAllocator::free(void* ptr) { + auto page_record = find_page_record(ptr); + + ssize_t offset = reinterpret_cast(ptr) - sizeof(page_info); + + if (offset % block_size_ != 0) { + __libc_fatal("invalid pointer: %p (block_size=%zd)", ptr, block_size_); + } + + memset(ptr, 0, block_size_); + small_object_block_record* block_record = reinterpret_cast(ptr); + + block_record->next = free_blocks_list_; + block_record->free_blocks_cnt = 1; + + free_blocks_list_ = block_record; + + page_record->free_blocks_cnt++; + page_record->allocated_blocks_cnt--; + + if (page_record->allocated_blocks_cnt == 0) { + if (free_pages_cnt_++ > 1) { + // if we already have a free page - unmap this one. + free_page(page_record); + } + } +} + +void LinkerSmallObjectAllocator::init(uint32_t type, size_t block_size, const char* name) { + type_ = type; + block_size_ = block_size; + name_ = name; +} + +linker_vector_t::iterator LinkerSmallObjectAllocator::find_page_record(void* ptr) { + void* addr = reinterpret_cast(PAGE_START(reinterpret_cast(ptr))); + small_object_page_record boundary; + boundary.page_addr = addr; + linker_vector_t::iterator it = std::lower_bound( + page_records_.begin(), page_records_.end(), boundary); + + if (it == page_records_.end() || it->page_addr != addr) { + // not found... + __libc_fatal("page record for %p was not found (block_size=%zd)", ptr, block_size_); + } + + return it; +} + +void LinkerSmallObjectAllocator::create_page_record(void* page_addr, size_t free_blocks_cnt) { + small_object_page_record record; + record.page_addr = page_addr; + record.free_blocks_cnt = free_blocks_cnt; + record.allocated_blocks_cnt = 0; + + linker_vector_t::iterator it = std::lower_bound( + page_records_.begin(), page_records_.end(), record); + page_records_.insert(it, record); +} + +void LinkerSmallObjectAllocator::alloc_page() { + void* map_ptr = mmap(nullptr, PAGE_SIZE, + PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); + if (map_ptr == MAP_FAILED) { + __libc_fatal("mmap failed"); + } + + prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, map_ptr, PAGE_SIZE, name_); + + memset(map_ptr, 0, PAGE_SIZE); + + page_info* info = reinterpret_cast(map_ptr); + memcpy(info->signature, kSignature, sizeof(kSignature)); + info->type = type_; + info->allocator_addr = this; + + size_t free_blocks_cnt = (PAGE_SIZE - sizeof(page_info))/block_size_; + + create_page_record(map_ptr, free_blocks_cnt); + + small_object_block_record* first_block = reinterpret_cast(info + 1); + + first_block->next = free_blocks_list_; + first_block->free_blocks_cnt = free_blocks_cnt; + + free_blocks_list_ = first_block; +} + + +LinkerMemoryAllocator::LinkerMemoryAllocator() { + static const char* allocator_names[kSmallObjectAllocatorsCount] = { + "linker_alloc_16", // 2^4 + "linker_alloc_32", // 2^5 + "linker_alloc_64", // and so on... + "linker_alloc_128", + "linker_alloc_256", + "linker_alloc_512", + "linker_alloc_1024", // 2^10 + }; + + for (size_t i = 0; i < kSmallObjectAllocatorsCount; ++i) { + uint32_t type = i + kSmallObjectMinSizeLog2; + allocators_[i].init(type, 1 << type, allocator_names[i]); + } +} + +void* LinkerMemoryAllocator::alloc_mmap(size_t size) { + size_t allocated_size = PAGE_END(size + sizeof(page_info)); + void* map_ptr = mmap(nullptr, allocated_size, + PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); + + if (map_ptr == MAP_FAILED) { + __libc_fatal("mmap failed"); + } + + prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, map_ptr, allocated_size, "linker_alloc_lob"); + + memset(map_ptr, 0, allocated_size); + + page_info* info = reinterpret_cast(map_ptr); + memcpy(info->signature, kSignature, sizeof(kSignature)); + info->type = kLargeObject; + info->allocated_size = allocated_size; + + return info + 1; +} + +void* LinkerMemoryAllocator::alloc(size_t size) { + // treat alloc(0) as alloc(1) + if (size == 0) { + size = 1; + } + + if (size > kSmallObjectMaxSize) { + return alloc_mmap(size); + } + + uint16_t log2_size = log2(size); + + if (log2_size < kSmallObjectMinSizeLog2) { + log2_size = kSmallObjectMinSizeLog2; + } + + return get_small_object_allocator(log2_size)->alloc(); +} + +page_info* LinkerMemoryAllocator::get_page_info(void* ptr) { + page_info* info = reinterpret_cast(PAGE_START(reinterpret_cast(ptr))); + if (memcmp(info->signature, kSignature, sizeof(kSignature)) != 0) { + __libc_fatal("invalid pointer %p (page signature mismatch)", ptr); + } + + return info; +} + +void* LinkerMemoryAllocator::realloc(void* ptr, size_t size) { + if (ptr == nullptr) { + return alloc(size); + } + + if (size == 0) { + free(ptr); + return nullptr; + } + + page_info* info = get_page_info(ptr); + + size_t old_size = 0; + + if (info->type == kLargeObject) { + old_size = info->allocated_size - sizeof(page_info); + } else { + LinkerSmallObjectAllocator* allocator = get_small_object_allocator(info->type); + if (allocator != info->allocator_addr) { + __libc_fatal("invalid pointer %p (page signature mismatch)", ptr); + } + + old_size = allocator->get_block_size(); + } + + if (old_size < size) { + void *result = alloc(size); + memcpy(result, ptr, old_size); + free(ptr); + return result; + } + + return ptr; +} + +void LinkerMemoryAllocator::free(void* ptr) { + if (ptr == nullptr) { return; } - LinkerAllocatorPage* page = find_page(block); + page_info* info = get_page_info(ptr); - if (page == nullptr) { - abort(); - } - - ssize_t offset = reinterpret_cast(block) - page->bytes; - - if (offset % block_size_ != 0) { - abort(); - } - - memset(block, 0, block_size_); - - FreeBlockInfo* block_info = reinterpret_cast(block); - - block_info->next_block = free_block_list_; - block_info->num_free_blocks = 1; - - free_block_list_ = block_info; -} - -void LinkerBlockAllocator::protect_all(int prot) { - for (LinkerAllocatorPage* page = page_list_; page != nullptr; page = page->next) { - if (mprotect(page, PAGE_SIZE, prot) == -1) { - abort(); - } - } -} - -void LinkerBlockAllocator::create_new_page() { - LinkerAllocatorPage* page = reinterpret_cast(mmap(nullptr, PAGE_SIZE, - PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0)); - if (page == MAP_FAILED) { - abort(); // oom - } - - prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, page, PAGE_SIZE, "linker_alloc"); - - memset(page, 0, PAGE_SIZE); - - FreeBlockInfo* first_block = reinterpret_cast(page->bytes); - first_block->next_block = free_block_list_; - first_block->num_free_blocks = (PAGE_SIZE - sizeof(LinkerAllocatorPage*))/block_size_; - - free_block_list_ = first_block; - - page->next = page_list_; - page_list_ = page; -} - -LinkerAllocatorPage* LinkerBlockAllocator::find_page(void* block) { - if (block == nullptr) { - abort(); - } - - LinkerAllocatorPage* page = page_list_; - while (page != nullptr) { - const uint8_t* page_ptr = reinterpret_cast(page); - if (block >= (page_ptr + sizeof(page->next)) && block < (page_ptr + PAGE_SIZE)) { - return page; + if (info->type == kLargeObject) { + munmap(info, info->allocated_size); + } else { + LinkerSmallObjectAllocator* allocator = get_small_object_allocator(info->type); + if (allocator != info->allocator_addr) { + __libc_fatal("invalid pointer %p (invalid allocator address for the page)", ptr); } - page = page->next; + allocator->free(ptr); + } +} + +LinkerSmallObjectAllocator* LinkerMemoryAllocator::get_small_object_allocator(uint32_t type) { + if (type < kSmallObjectMinSizeLog2 || type > kSmallObjectMaxSizeLog2) { + __libc_fatal("invalid type: %u", type); } - abort(); + return &allocators_[type - kSmallObjectMinSizeLog2]; } diff --git a/linker/linker_allocator.h b/linker/linker_allocator.h index 5d3563fbd..2adad56fe 100644 --- a/linker/linker_allocator.h +++ b/linker/linker_allocator.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014 The Android Open Source Project + * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,53 +18,126 @@ #define __LINKER_ALLOCATOR_H #include -#include -#include "private/bionic_macros.h" +#include +#include +#include +#include -struct LinkerAllocatorPage; +#include -/* - * This class is a non-template version of the LinkerAllocator - * It keeps code inside .cpp file by keeping the interface - * template-free. - * - * Please use LinkerAllocator where possible (everywhere). - */ -class LinkerBlockAllocator { +#include "private/bionic_prctl.h" +#include "private/libc_logging.h" + +const uint32_t kSmallObjectMaxSizeLog2 = 10; +const uint32_t kSmallObjectMinSizeLog2 = 4; +const uint32_t kSmallObjectAllocatorsCount = kSmallObjectMaxSizeLog2 - kSmallObjectMinSizeLog2 + 1; + +class LinkerSmallObjectAllocator; + +// This structure is placed at the beginning of each addressable page +// and has all information we need to find the corresponding memory allocator. +struct page_info { + char signature[4]; + uint32_t type; + union { + // we use allocated_size for large objects allocator + size_t allocated_size; + // and allocator_addr for small ones. + LinkerSmallObjectAllocator* allocator_addr; + }; +}; + +struct small_object_page_record { + void* page_addr; + size_t free_blocks_cnt; + size_t allocated_blocks_cnt; +}; + +// for lower_bound... +bool operator<(const small_object_page_record& one, const small_object_page_record& two); + +struct small_object_block_record { + small_object_block_record* next; + size_t free_blocks_cnt; +}; + +// This is implementation for std::vector allocator +template +class linker_vector_allocator { public: - explicit LinkerBlockAllocator(size_t block_size); + typedef T value_type; + typedef T* pointer; + typedef const T* const_pointer; + typedef T& reference; + typedef const T& const_reference; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + T* allocate(size_t n, const T* hint = nullptr) { + size_t size = n * sizeof(T); + void* ptr = mmap(const_cast(hint), size, + PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); + if (ptr == MAP_FAILED) { + // Spec says we need to throw std::bad_alloc here but because our + // code does not support exception handling anyways - we are going to abort. + __libc_fatal("mmap failed"); + } + + prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, ptr, size, "linker_alloc_vector"); + + return reinterpret_cast(ptr); + } + + void deallocate(T* ptr, size_t n) { + munmap(ptr, n * sizeof(T)); + } +}; + +typedef + std::vector> + linker_vector_t; + + +class LinkerSmallObjectAllocator { + public: + LinkerSmallObjectAllocator(); + void init(uint32_t type, size_t block_size, const char* name); void* alloc(); - void free(void* block); - void protect_all(int prot); + void free(void* ptr); + size_t get_block_size() const { return block_size_; } private: - void create_new_page(); - LinkerAllocatorPage* find_page(void* block); + void alloc_page(); + void free_page(linker_vector_t::iterator page_record); + linker_vector_t::iterator find_page_record(void* ptr); + void create_page_record(void* page_addr, size_t free_blocks_cnt); + uint32_t type_; + const char* name_; size_t block_size_; - LinkerAllocatorPage* page_list_; - void* free_block_list_; - DISALLOW_COPY_AND_ASSIGN(LinkerBlockAllocator); + size_t free_pages_cnt_; + small_object_block_record* free_blocks_list_; + + // sorted vector of page records + linker_vector_t page_records_; }; -/* - * We can't use malloc(3) in the dynamic linker. - * - * A simple allocator for the dynamic linker. An allocator allocates instances - * of a single fixed-size type. Allocations are backed by page-sized private - * anonymous mmaps. - */ -template -class LinkerAllocator { +class LinkerMemoryAllocator { public: - LinkerAllocator() : block_allocator_(sizeof(T)) {} - T* alloc() { return reinterpret_cast(block_allocator_.alloc()); } - void free(T* t) { block_allocator_.free(t); } - void protect_all(int prot) { block_allocator_.protect_all(prot); } + LinkerMemoryAllocator(); + void* alloc(size_t size); + + // Note that this implementation of realloc never shrinks allocation + void* realloc(void* ptr, size_t size); + void free(void* ptr); private: - LinkerBlockAllocator block_allocator_; - DISALLOW_COPY_AND_ASSIGN(LinkerAllocator); + void* alloc_mmap(size_t size); + page_info* get_page_info(void* ptr); + LinkerSmallObjectAllocator* get_small_object_allocator(uint32_t type); + + LinkerSmallObjectAllocator allocators_[kSmallObjectAllocatorsCount]; }; -#endif // __LINKER_ALLOCATOR_H + + +#endif /* __LINKER_ALLOCATOR_H */ diff --git a/linker/linker_block_allocator.cpp b/linker/linker_block_allocator.cpp new file mode 100644 index 000000000..fc9a75b15 --- /dev/null +++ b/linker/linker_block_allocator.cpp @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "linker_block_allocator.h" +#include +#include +#include +#include + +#include "private/bionic_prctl.h" + +struct LinkerBlockAllocatorPage { + LinkerBlockAllocatorPage* next; + uint8_t bytes[PAGE_SIZE-sizeof(LinkerBlockAllocatorPage*)]; +}; + +struct FreeBlockInfo { + void* next_block; + size_t num_free_blocks; +}; + +LinkerBlockAllocator::LinkerBlockAllocator(size_t block_size) + : block_size_(block_size < sizeof(FreeBlockInfo) ? sizeof(FreeBlockInfo) : block_size), + page_list_(nullptr), + free_block_list_(nullptr) +{} + +void* LinkerBlockAllocator::alloc() { + if (free_block_list_ == nullptr) { + create_new_page(); + } + + FreeBlockInfo* block_info = reinterpret_cast(free_block_list_); + if (block_info->num_free_blocks > 1) { + FreeBlockInfo* next_block_info = reinterpret_cast( + reinterpret_cast(free_block_list_) + block_size_); + next_block_info->next_block = block_info->next_block; + next_block_info->num_free_blocks = block_info->num_free_blocks - 1; + free_block_list_ = next_block_info; + } else { + free_block_list_ = block_info->next_block; + } + + memset(block_info, 0, block_size_); + + return block_info; +} + +void LinkerBlockAllocator::free(void* block) { + if (block == nullptr) { + return; + } + + LinkerBlockAllocatorPage* page = find_page(block); + + if (page == nullptr) { + abort(); + } + + ssize_t offset = reinterpret_cast(block) - page->bytes; + + if (offset % block_size_ != 0) { + abort(); + } + + memset(block, 0, block_size_); + + FreeBlockInfo* block_info = reinterpret_cast(block); + + block_info->next_block = free_block_list_; + block_info->num_free_blocks = 1; + + free_block_list_ = block_info; +} + +void LinkerBlockAllocator::protect_all(int prot) { + for (LinkerBlockAllocatorPage* page = page_list_; page != nullptr; page = page->next) { + if (mprotect(page, PAGE_SIZE, prot) == -1) { + abort(); + } + } +} + +void LinkerBlockAllocator::create_new_page() { + LinkerBlockAllocatorPage* page = reinterpret_cast( + mmap(nullptr, PAGE_SIZE, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0)); + + if (page == MAP_FAILED) { + abort(); // oom + } + + prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, page, PAGE_SIZE, "linker_alloc"); + + memset(page, 0, PAGE_SIZE); + + FreeBlockInfo* first_block = reinterpret_cast(page->bytes); + first_block->next_block = free_block_list_; + first_block->num_free_blocks = (PAGE_SIZE - sizeof(LinkerBlockAllocatorPage*))/block_size_; + + free_block_list_ = first_block; + + page->next = page_list_; + page_list_ = page; +} + +LinkerBlockAllocatorPage* LinkerBlockAllocator::find_page(void* block) { + if (block == nullptr) { + abort(); + } + + LinkerBlockAllocatorPage* page = page_list_; + while (page != nullptr) { + const uint8_t* page_ptr = reinterpret_cast(page); + if (block >= (page_ptr + sizeof(page->next)) && block < (page_ptr + PAGE_SIZE)) { + return page; + } + + page = page->next; + } + + abort(); +} diff --git a/linker/linker_block_allocator.h b/linker/linker_block_allocator.h new file mode 100644 index 000000000..4b9b99526 --- /dev/null +++ b/linker/linker_block_allocator.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __LINKER_BLOCK_ALLOCATOR_H +#define __LINKER_BLOCK_ALLOCATOR_H + +#include +#include +#include "private/bionic_macros.h" + +struct LinkerBlockAllocatorPage; + +/* + * This class is a non-template version of the LinkerTypeAllocator + * It keeps code inside .cpp file by keeping the interface + * template-free. + * + * Please use LinkerTypeAllocator where possible (everywhere). + */ +class LinkerBlockAllocator { + public: + explicit LinkerBlockAllocator(size_t block_size); + + void* alloc(); + void free(void* block); + void protect_all(int prot); + + private: + void create_new_page(); + LinkerBlockAllocatorPage* find_page(void* block); + + size_t block_size_; + LinkerBlockAllocatorPage* page_list_; + void* free_block_list_; + + DISALLOW_COPY_AND_ASSIGN(LinkerBlockAllocator); +}; + +/* + * A simple allocator for the dynamic linker. An allocator allocates instances + * of a single fixed-size type. Allocations are backed by page-sized private + * anonymous mmaps. + * + * The differences between this allocator and LinkerMemoryAllocator are: + * 1. This allocator manages space more efficiently. LinkerMemoryAllocator + * operates in power-of-two sized blocks up to 1k, when this implementation + * splits the page to aligned size of structure; For example for structures + * with size 513 this allocator will use 516 (520 for lp64) bytes of data + * where generalized implementation is going to use 1024 sized blocks. + * + * 2. This allocator does not munmap allocated memory, where LinkerMemoryAllocator does. + * + * 3. This allocator provides mprotect services to the user, where LinkerMemoryAllocator + * always treats it's memory as READ|WRITE. + */ +template +class LinkerTypeAllocator { + public: + LinkerTypeAllocator() : block_allocator_(sizeof(T)) {} + T* alloc() { return reinterpret_cast(block_allocator_.alloc()); } + void free(T* t) { block_allocator_.free(t); } + void protect_all(int prot) { block_allocator_.protect_all(prot); } + private: + LinkerBlockAllocator block_allocator_; + DISALLOW_COPY_AND_ASSIGN(LinkerTypeAllocator); +}; + +#endif // __LINKER_BLOCK_ALLOCATOR_H diff --git a/linker/linker_leb128.h b/linker/linker_leb128.h new file mode 100644 index 000000000..d5c6488c0 --- /dev/null +++ b/linker/linker_leb128.h @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _LINKER_LEB128_H +#define _LINKER_LEB128_H + +#include + +// Helper classes for decoding LEB128, used in packed relocation data. +// http://en.wikipedia.org/wiki/LEB128 + +class leb128_decoder { + public: + leb128_decoder(const uint8_t* buffer, size_t count) + : current_(buffer), end_(buffer + count) { } + + size_t pop_front() { + size_t value = 0; + + size_t shift = 0; + uint8_t byte; + + do { + if (current_ >= end_) { + __libc_fatal("leb128_decoder ran out of bounds"); + } + byte = *current_++; + value |= static_cast(byte & 127) << shift; + shift += 7; + } while (byte & 128); + + return value; + } + + private: + const uint8_t* current_; + const uint8_t* const end_; +}; + +class sleb128_decoder { + public: + sleb128_decoder(const uint8_t* buffer, size_t count) + : current_(buffer), end_(buffer+count) { } + + size_t pop_front() { + size_t value = 0; + static const size_t size = CHAR_BIT * sizeof(value); + + size_t shift = 0; + uint8_t byte; + + do { + if (current_ >= end_) { + __libc_fatal("leb128_decoder ran out of bounds"); + } + byte = *current_++; + value |= (static_cast(byte & 127) << shift); + shift += 7; + } while (byte & 128); + + if (shift < size && (byte & 64)) { + value |= -(static_cast(1) << shift); + } + + return value; + } + + private: + const uint8_t* current_; + const uint8_t* const end_; +}; + +#endif // __LINKER_LEB128_H + diff --git a/tests/gtest_ex.h b/linker/linker_memory.cpp similarity index 51% rename from tests/gtest_ex.h rename to linker/linker_memory.cpp index fe1d89434..1892d02ca 100644 --- a/tests/gtest_ex.h +++ b/linker/linker_memory.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014 The Android Open Source Project + * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,27 +14,25 @@ * limitations under the License. */ -#include +#include "linker_allocator.h" -#include -#include +#include -#include -#include -#include +static LinkerMemoryAllocator g_linker_allocator; -template -void test_isolated(F test) { - int pid = fork(); - ASSERT_NE(-1, pid) << strerror(errno); - - if (pid == 0) { - test(); - _exit(testing::Test::HasFailure() ? 1 : 0); - } - - int status; - ASSERT_EQ(pid, waitpid(pid, &status, 0)); - ASSERT_TRUE(WIFEXITED(status)); - ASSERT_EQ(0, WEXITSTATUS(status)) << "Forked test has failed, see above.."; +void* malloc(size_t byte_count) { + return g_linker_allocator.alloc(byte_count); } + +void* calloc(size_t item_count, size_t item_size) { + return g_linker_allocator.alloc(item_count*item_size); +} + +void* realloc(void* p, size_t byte_count) { + return g_linker_allocator.realloc(p, byte_count); +} + +void free(void* ptr) { + g_linker_allocator.free(ptr); +} + diff --git a/linker/linker_mips.cpp b/linker/linker_mips.cpp index 7fbde3d35..f0bde55cd 100644 --- a/linker/linker_mips.cpp +++ b/linker/linker_mips.cpp @@ -29,10 +29,32 @@ #include "linker.h" #include "linker_debug.h" #include "linker_relocs.h" +#include "linker_reloc_iterators.h" +#include "linker_leb128.h" + +template bool soinfo::relocate(plain_reloc_iterator&& rel_iterator, + const soinfo_list_t& global_group, + const soinfo_list_t& local_group); + +template bool soinfo::relocate>( + packed_reloc_iterator&& rel_iterator, + const soinfo_list_t& global_group, + const soinfo_list_t& local_group); + +template bool soinfo::relocate>( + packed_reloc_iterator&& rel_iterator, + const soinfo_list_t& global_group, + const soinfo_list_t& local_group); + +template +bool soinfo::relocate(ElfRelIteratorT&& rel_iterator, const soinfo_list_t& global_group, const soinfo_list_t& local_group) { + for (size_t idx = 0; rel_iterator.has_next(); ++idx) { + const auto rel = rel_iterator.next(); + + if (rel == nullptr) { + return false; + } -template<> -bool soinfo::relocate(ElfW(Rel)* rel, unsigned count, const soinfo_list_t& global_group, const soinfo_list_t& local_group) { - for (size_t idx = 0; idx < count; ++idx, ++rel) { ElfW(Word) type = ELFW(R_TYPE)(rel->r_info); ElfW(Word) sym = ELFW(R_SYM)(rel->r_info); diff --git a/linker/linker_phdr.cpp b/linker/linker_phdr.cpp index 91a2fb80d..38e62627a 100644 --- a/linker/linker_phdr.cpp +++ b/linker/linker_phdr.cpp @@ -332,7 +332,7 @@ bool ElfReader::ReserveAddressSpace(const android_dlextinfo* extinfo) { return false; } int mmap_flags = MAP_PRIVATE | MAP_ANONYMOUS; - start = mmap(addr, load_size_, PROT_NONE, mmap_flags, -1, 0); + start = mmap(nullptr, load_size_, PROT_NONE, mmap_flags, -1, 0); if (start == MAP_FAILED) { DL_ERR("couldn't reserve %zd bytes of address space for \"%s\"", load_size_, name_); return false; diff --git a/linker/linker_reloc_iterators.h b/linker/linker_reloc_iterators.h new file mode 100644 index 000000000..5db31f9f6 --- /dev/null +++ b/linker/linker_reloc_iterators.h @@ -0,0 +1,152 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __LINKER_RELOC_ITERATORS_H +#define __LINKER_RELOC_ITERATORS_H + +#include "linker.h" + +#include + +#define RELOCATION_GROUPED_BY_INFO_FLAG 1 +#define RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG 2 +#define RELOCATION_GROUPED_BY_ADDEND_FLAG 4 +#define RELOCATION_GROUP_HAS_ADDEND_FLAG 8 + +#define RELOCATION_GROUPED_BY_INFO(flags) (((flags) & RELOCATION_GROUPED_BY_INFO_FLAG) != 0) +#define RELOCATION_GROUPED_BY_OFFSET_DELTA(flags) (((flags) & RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG) != 0) +#define RELOCATION_GROUPED_BY_ADDEND(flags) (((flags) & RELOCATION_GROUPED_BY_ADDEND_FLAG) != 0) +#define RELOCATION_GROUP_HAS_ADDEND(flags) (((flags) & RELOCATION_GROUP_HAS_ADDEND_FLAG) != 0) + +class plain_reloc_iterator { +#if defined(USE_RELA) + typedef ElfW(Rela) rel_t; +#else + typedef ElfW(Rel) rel_t; +#endif + public: + plain_reloc_iterator(rel_t* rel_array, size_t count) + : begin_(rel_array), end_(begin_ + count), current_(begin_) {} + + bool has_next() { + return current_ < end_; + } + + rel_t* next() { + return current_++; + } + private: + rel_t* const begin_; + rel_t* const end_; + rel_t* current_; + + DISALLOW_COPY_AND_ASSIGN(plain_reloc_iterator); +}; + +template +class packed_reloc_iterator { +#if defined(USE_RELA) + typedef ElfW(Rela) rel_t; +#else + typedef ElfW(Rel) rel_t; +#endif + public: + explicit packed_reloc_iterator(decoder_t&& decoder) + : decoder_(decoder) { + // initialize fields + memset(&reloc_, 0, sizeof(reloc_)); + relocation_count_ = decoder_.pop_front(); + reloc_.r_offset = decoder_.pop_front(); + relocation_index_ = 0; + relocation_group_index_ = 0; + group_size_ = 0; + } + + bool has_next() const { + return relocation_index_ < relocation_count_; + } + + rel_t* next() { + if (relocation_group_index_ == group_size_) { + if (!read_group_fields()) { + // Iterator is inconsistent state; it should not be called again + // but in case it is let's make sure has_next() returns false. + relocation_index_ = relocation_count_ = 0; + return nullptr; + } + } + + if (RELOCATION_GROUPED_BY_OFFSET_DELTA(group_flags_)) { + reloc_.r_offset += group_r_offset_delta_; + } else { + reloc_.r_offset += decoder_.pop_front(); + } + + if (!RELOCATION_GROUPED_BY_INFO(group_flags_)) { + reloc_.r_info = decoder_.pop_front(); + } + +#if defined(USE_RELA) + if (RELOCATION_GROUP_HAS_ADDEND(group_flags_) && !RELOCATION_GROUPED_BY_ADDEND(group_flags_)) { + reloc_.r_addend += decoder_.pop_front(); + } +#endif + + relocation_index_++; + relocation_group_index_++; + + return &reloc_; + } + private: + bool read_group_fields() { + group_size_ = decoder_.pop_front(); + group_flags_ = decoder_.pop_front(); + + if (RELOCATION_GROUPED_BY_OFFSET_DELTA(group_flags_)) { + group_r_offset_delta_ = decoder_.pop_front(); + } + + if (RELOCATION_GROUPED_BY_INFO(group_flags_)) { + reloc_.r_info = decoder_.pop_front(); + } + + if (RELOCATION_GROUP_HAS_ADDEND(group_flags_) && RELOCATION_GROUPED_BY_ADDEND(group_flags_)) { +#if !defined(USE_RELA) + // This platform does not support rela, and yet we have it encoded in android_rel section. + DL_ERR("unexpected r_addend in android.rel section"); + return false; +#else + reloc_.r_addend += decoder_.pop_front(); + } else if (!RELOCATION_GROUP_HAS_ADDEND(group_flags_)) { + reloc_.r_addend = 0; +#endif + } + + relocation_group_index_ = 0; + return true; + } + + decoder_t decoder_; + size_t relocation_count_; + size_t group_size_; + size_t group_flags_; + size_t group_r_offset_delta_; + size_t relocation_index_; + size_t relocation_group_index_; + rel_t reloc_; +}; + +#endif // __LINKER_RELOC_ITERATORS_H diff --git a/linker/tests/Android.mk b/linker/tests/Android.mk index aa9491ed0..35992c53e 100644 --- a/linker/tests/Android.mk +++ b/linker/tests/Android.mk @@ -28,7 +28,12 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../libc/ LOCAL_SRC_FILES := \ linked_list_test.cpp \ - linker_allocator_test.cpp \ + linker_block_allocator_test.cpp \ + ../linker_block_allocator.cpp \ + linker_memory_allocator_test.cpp \ ../linker_allocator.cpp +# for __libc_fatal +LOCAL_SRC_FILES += ../../libc/bionic/libc_logging.cpp + include $(BUILD_NATIVE_TEST) diff --git a/linker/tests/linker_allocator_test.cpp b/linker/tests/linker_block_allocator_test.cpp similarity index 92% rename from linker/tests/linker_allocator_test.cpp rename to linker/tests/linker_block_allocator_test.cpp index 9292a054d..3ef0f36f8 100644 --- a/linker/tests/linker_allocator_test.cpp +++ b/linker/tests/linker_block_allocator_test.cpp @@ -20,7 +20,7 @@ #include -#include "../linker_allocator.h" +#include "../linker_block_allocator.h" #include @@ -49,7 +49,7 @@ static size_t kPageSize = sysconf(_SC_PAGE_SIZE); }; TEST(linker_allocator, test_nominal) { - LinkerAllocator allocator; + LinkerTypeAllocator allocator; test_struct_nominal* ptr1 = allocator.alloc(); ASSERT_TRUE(ptr1 != nullptr); @@ -65,7 +65,7 @@ TEST(linker_allocator, test_nominal) { } TEST(linker_allocator, test_small) { - LinkerAllocator allocator; + LinkerTypeAllocator allocator; char* ptr1 = reinterpret_cast(allocator.alloc()); char* ptr2 = reinterpret_cast(allocator.alloc()); @@ -76,7 +76,7 @@ TEST(linker_allocator, test_small) { } TEST(linker_allocator, test_larger) { - LinkerAllocator allocator; + LinkerTypeAllocator allocator; test_struct_larger* ptr1 = allocator.alloc(); test_struct_larger* ptr2 = allocator.alloc(); @@ -99,7 +99,7 @@ TEST(linker_allocator, test_larger) { } static void protect_all() { - LinkerAllocator allocator; + LinkerTypeAllocator allocator; // number of allocs to reach the end of first page size_t n = kPageSize/sizeof(test_struct_larger) - 1; diff --git a/linker/tests/linker_memory_allocator_test.cpp b/linker/tests/linker_memory_allocator_test.cpp new file mode 100644 index 000000000..f002a0d50 --- /dev/null +++ b/linker/tests/linker_memory_allocator_test.cpp @@ -0,0 +1,193 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include + +#include "../linker_allocator.h" + +#include + +namespace { + +/* + * this one has size below allocator cap which is 2*sizeof(void*) + */ +struct test_struct_small { + char dummy_str[5]; +}; + +struct test_struct_large { + char dummy_str[1009]; +}; + +struct test_struct_huge { + char dummy_str[73939]; +}; + +struct test_struct_512 { + char dummy_str[503]; +}; + +}; + +static size_t kPageSize = sysconf(_SC_PAGE_SIZE); + +TEST(linker_memory, test_alloc_0) { + LinkerMemoryAllocator allocator; + void* ptr = allocator.alloc(0); + ASSERT_TRUE(ptr != nullptr); + free(ptr); +} + +TEST(linker_memory, test_free_nullptr) { + LinkerMemoryAllocator allocator; + allocator.free(nullptr); +} + +TEST(linker_memory, test_realloc) { + LinkerMemoryAllocator allocator; + uint32_t* array = reinterpret_cast(allocator.alloc(512)); + const size_t array_size = 512 / sizeof(uint32_t); + + uint32_t model[1000]; + + model[0] = 1; + model[1] = 1; + + for (size_t i = 2; i < 1000; ++i) { + model[i] = model[i - 1] + model[i - 2]; + } + + memcpy(array, model, array_size); + + uint32_t* reallocated_ptr = reinterpret_cast(allocator.realloc(array, 1024)); + + ASSERT_TRUE(reallocated_ptr != nullptr); + ASSERT_TRUE(reallocated_ptr != array); + + ASSERT_TRUE(memcmp(reallocated_ptr, model, array_size) == 0); + + array = reallocated_ptr; + + memcpy(array, model, 2*array_size); + + reallocated_ptr = reinterpret_cast(allocator.realloc(array, 62)); + + ASSERT_TRUE(reallocated_ptr == array); + + reallocated_ptr = reinterpret_cast(allocator.realloc(array, 4000)); + + ASSERT_TRUE(reallocated_ptr != nullptr); + ASSERT_TRUE(reallocated_ptr != array); + + ASSERT_TRUE(memcmp(reallocated_ptr, model, array_size * 2) == 0); + + array = reallocated_ptr; + + memcpy(array, model, 4000); + + reallocated_ptr = reinterpret_cast(allocator.realloc(array, 64000)); + + ASSERT_TRUE(reallocated_ptr != nullptr); + ASSERT_TRUE(reallocated_ptr != array); + + ASSERT_TRUE(memcmp(reallocated_ptr, model, 4000) == 0); + + ASSERT_EQ(nullptr, realloc(reallocated_ptr, 0)); +} + +TEST(linker_memory, test_small_smoke) { + LinkerMemoryAllocator allocator; + + uint8_t zeros[16]; + memset(zeros, 0, sizeof(zeros)); + + test_struct_small* ptr1 = + reinterpret_cast(allocator.alloc(sizeof(test_struct_small))); + test_struct_small* ptr2 = + reinterpret_cast(allocator.alloc(sizeof(test_struct_small))); + + ASSERT_TRUE(ptr1 != nullptr); + ASSERT_TRUE(ptr2 != nullptr); + ASSERT_EQ(reinterpret_cast(ptr1)+16, reinterpret_cast(ptr2)); + ASSERT_TRUE(memcmp(ptr1, zeros, 16) == 0); + + allocator.free(ptr1); + allocator.free(ptr2); +} + +TEST(linker_memory, test_huge_smoke) { + LinkerMemoryAllocator allocator; + + // this should trigger proxy-to-mmap + test_struct_huge* ptr1 = + reinterpret_cast(allocator.alloc(sizeof(test_struct_huge))); + test_struct_huge* ptr2 = + reinterpret_cast(allocator.alloc(sizeof(test_struct_huge))); + + ASSERT_TRUE(ptr1 != nullptr); + ASSERT_TRUE(ptr2 != nullptr); + + ASSERT_TRUE( + reinterpret_cast(ptr1)/kPageSize != reinterpret_cast(ptr2)/kPageSize); + allocator.free(ptr2); + allocator.free(ptr1); +} + +TEST(linker_memory, test_large) { + LinkerMemoryAllocator allocator; + + test_struct_large* ptr1 = + reinterpret_cast(allocator.alloc(sizeof(test_struct_large))); + test_struct_large* ptr2 = + reinterpret_cast(allocator.alloc(1024)); + + ASSERT_TRUE(ptr1 != nullptr); + ASSERT_TRUE(ptr2 != nullptr); + + ASSERT_EQ(reinterpret_cast(ptr1) + 1024, reinterpret_cast(ptr2)); + + // let's allocate until we reach the next page. + size_t n = kPageSize / sizeof(test_struct_large) + 1 - 2; + test_struct_large* objects[n]; + + for (size_t i = 0; i < n; ++i) { + test_struct_large* obj_ptr = + reinterpret_cast(allocator.alloc(sizeof(test_struct_large))); + ASSERT_TRUE(obj_ptr != nullptr); + objects[i] = obj_ptr; + } + + test_struct_large* ptr_to_free = + reinterpret_cast(allocator.alloc(sizeof(test_struct_large))); + + ASSERT_TRUE(ptr_to_free != nullptr); + + allocator.free(ptr1); + + for (size_t i=0; i #include -#include "gtest_ex.h" #include "private/ScopeGuard.h" #include @@ -376,33 +375,31 @@ TEST(dlfcn, check_unload_after_reloc) { // Test dlopens parent1 which loads and relocates libtest_two_parents_child.so // as a second step it dlopens parent2 and dlcloses parent1... - test_isolated([] { - void* handle = dlopen("libtest_two_parents_parent1.so", RTLD_NOW | RTLD_LOCAL); - ASSERT_TRUE(handle != nullptr) << dlerror(); + void* handle = dlopen("libtest_two_parents_parent1.so", RTLD_NOW | RTLD_LOCAL); + ASSERT_TRUE(handle != nullptr) << dlerror(); - void* handle2 = dlopen("libtest_two_parents_parent2.so", RTLD_NOW | RTLD_LOCAL); - ASSERT_TRUE(handle2 != nullptr) << dlerror(); + void* handle2 = dlopen("libtest_two_parents_parent2.so", RTLD_NOW | RTLD_LOCAL); + ASSERT_TRUE(handle2 != nullptr) << dlerror(); - typedef int (*fn_t) (void); - fn_t fn = reinterpret_cast(dlsym(handle2, "check_order_reloc_get_answer")); - ASSERT_TRUE(fn != nullptr) << dlerror(); - ASSERT_EQ(42, fn()); + typedef int (*fn_t) (void); + fn_t fn = reinterpret_cast(dlsym(handle2, "check_order_reloc_get_answer")); + ASSERT_TRUE(fn != nullptr) << dlerror(); + ASSERT_EQ(42, fn()); - ASSERT_EQ(0, dlclose(handle)); + ASSERT_EQ(0, dlclose(handle)); - handle = dlopen("libtest_two_parents_parent1.so", RTLD_NOW | RTLD_LOCAL | RTLD_NOLOAD); - ASSERT_TRUE(handle != nullptr); - ASSERT_EQ(0, dlclose(handle)); + handle = dlopen("libtest_two_parents_parent1.so", RTLD_NOW | RTLD_LOCAL | RTLD_NOLOAD); + ASSERT_TRUE(handle != nullptr); + ASSERT_EQ(0, dlclose(handle)); - fn = reinterpret_cast(dlsym(handle2, "check_order_reloc_get_answer")); - ASSERT_TRUE(fn != nullptr) << dlerror(); - ASSERT_EQ(42, fn()); + fn = reinterpret_cast(dlsym(handle2, "check_order_reloc_get_answer")); + ASSERT_TRUE(fn != nullptr) << dlerror(); + ASSERT_EQ(42, fn()); - ASSERT_EQ(0, dlclose(handle2)); + ASSERT_EQ(0, dlclose(handle2)); - handle = dlopen("libtest_two_parents_parent1.so", RTLD_NOW | RTLD_LOCAL | RTLD_NOLOAD); - ASSERT_TRUE(handle == nullptr); - }); + handle = dlopen("libtest_two_parents_parent1.so", RTLD_NOW | RTLD_LOCAL | RTLD_NOLOAD); + ASSERT_TRUE(handle == nullptr); } extern "C" int check_order_reloc_root_get_answer_impl() { @@ -485,25 +482,23 @@ TEST(dlfcn, dlopen_check_rtld_global) { // libtest_with_dependency_loop_b.so -> libtest_with_dependency_loop_c.so -> // libtest_with_dependency_loop_a.so TEST(dlfcn, dlopen_check_loop) { - test_isolated([] { - void* handle = dlopen("libtest_with_dependency_loop.so", RTLD_NOW); - ASSERT_TRUE(handle != nullptr) << dlerror(); - void* f = dlsym(handle, "dlopen_test_loopy_function"); - ASSERT_TRUE(f != nullptr) << dlerror(); - EXPECT_TRUE(reinterpret_cast(f)()); - ASSERT_EQ(0, dlclose(handle)); + void* handle = dlopen("libtest_with_dependency_loop.so", RTLD_NOW); + ASSERT_TRUE(handle != nullptr) << dlerror(); + void* f = dlsym(handle, "dlopen_test_loopy_function"); + ASSERT_TRUE(f != nullptr) << dlerror(); + EXPECT_TRUE(reinterpret_cast(f)()); + ASSERT_EQ(0, dlclose(handle)); - // dlopen second time to make sure that the library was unloaded correctly - handle = dlopen("libtest_with_dependency_loop.so", RTLD_NOW | RTLD_NOLOAD); - ASSERT_TRUE(handle == nullptr); + // dlopen second time to make sure that the library was unloaded correctly + handle = dlopen("libtest_with_dependency_loop.so", RTLD_NOW | RTLD_NOLOAD); + ASSERT_TRUE(handle == nullptr); #ifdef __BIONIC__ - // TODO: glibc returns nullptr on dlerror() here. Is it bug? - ASSERT_STREQ("dlopen failed: library \"libtest_with_dependency_loop.so\" wasn't loaded and RTLD_NOLOAD prevented it", dlerror()); + // TODO: glibc returns nullptr on dlerror() here. Is it bug? + ASSERT_STREQ("dlopen failed: library \"libtest_with_dependency_loop.so\" wasn't loaded and RTLD_NOLOAD prevented it", dlerror()); #endif - handle = dlopen("libtest_with_dependency_a.so", RTLD_NOW | RTLD_NOLOAD); - ASSERT_TRUE(handle == nullptr); - }); + handle = dlopen("libtest_with_dependency_a.so", RTLD_NOW | RTLD_NOLOAD); + ASSERT_TRUE(handle == nullptr); } TEST(dlfcn, dlopen_nodelete) { @@ -830,15 +825,13 @@ TEST(dlfcn, dlsym_weak_func) { } TEST(dlfcn, dlopen_undefined_weak_func) { - test_isolated([] { - void* handle = dlopen("libtest_dlopen_weak_undefined_func.so", RTLD_NOW); - ASSERT_TRUE(handle != nullptr) << dlerror(); - int (*weak_func)(); - weak_func = reinterpret_cast(dlsym(handle, "use_weak_undefined_func")); - ASSERT_TRUE(weak_func != nullptr) << dlerror(); - EXPECT_EQ(6551, weak_func()); - dlclose(handle); - }); + void* handle = dlopen("libtest_dlopen_weak_undefined_func.so", RTLD_NOW); + ASSERT_TRUE(handle != nullptr) << dlerror(); + int (*weak_func)(); + weak_func = reinterpret_cast(dlsym(handle, "use_weak_undefined_func")); + ASSERT_TRUE(weak_func != nullptr) << dlerror(); + EXPECT_EQ(6551, weak_func()); + dlclose(handle); } TEST(dlfcn, dlopen_symlink) { diff --git a/tests/fortify_compilation_test.cpp b/tests/fortify_compilation_test.cpp new file mode 100644 index 000000000..537b341b9 --- /dev/null +++ b/tests/fortify_compilation_test.cpp @@ -0,0 +1,232 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#undef _FORTIFY_SOURCE +#define _FORTIFY_SOURCE 2 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void test_sprintf() { + char buf[4]; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to int __builtin___sprintf_chk(char*, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer + // clang should emit a warning, but doesn't + sprintf(buf, "foobar"); // NOLINT(runtime/printf) + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to int __builtin___sprintf_chk(char*, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer + // clang should emit a warning, but doesn't + sprintf(buf, "%s", "foobar"); // NOLINT(runtime/printf) +} + +void test_snprintf() { + char buf[4]; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to int __builtin___snprintf_chk(char*, {{(long )?}}unsigned int, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer + // clang should emit a warning, but doesn't + snprintf(buf, 5, "foobar"); // NOLINT(runtime/printf) + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to int __builtin___snprintf_chk(char*, {{(long )?}}unsigned int, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer + // clang should emit a warning, but doesn't + snprintf(buf, 5, "%s", "foobar"); // NOLINT(runtime/printf) + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to int __builtin___snprintf_chk(char*, {{(long )?}}unsigned int, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer + // clang should emit a warning, but doesn't + snprintf(buf, 5, " %s ", "foobar"); // NOLINT(runtime/printf) + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to int __builtin___snprintf_chk(char*, {{(long )?}}unsigned int, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer + // clang should emit a warning, but doesn't + snprintf(buf, 5, "%d", 100000); // NOLINT(runtime/printf) +} + +void test_memcpy() { + char buf[4]; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to void* __builtin___memcpy_chk(void*, const void*, {{(long )?}}unsigned int, {{(long )?}}unsigned int) will always overflow destination buffer + // clang should emit a warning, but doesn't + memcpy(buf, "foobar", sizeof("foobar")); +} + +void test_memmove() { + char buf[4]; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to void* __builtin___memmove_chk(void*, const void*, {{(long )?}}unsigned int, {{(long )?}}unsigned int) will always overflow destination buffer + // clang should emit a warning, but doesn't + memmove(buf, "foobar", sizeof("foobar")); +} + +void test_memset() { + char buf[4]; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to void* __builtin___memset_chk(void*, int, {{(long )?}}unsigned int, {{(long )?}}unsigned int) will always overflow destination buffer + // clang should emit a warning, but doesn't + memset(buf, 0, 6); +} + +void test_strcpy() { + char buf[4]; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to {{(char\* __builtin___strcpy_chk\(char\*, const char\*, unsigned int\))|(void\* __builtin___memcpy_chk\(void\*, const void\*, (long )?unsigned int, (long )?unsigned int\))}} will always overflow destination buffer + // clang should emit a warning, but doesn't + strcpy(buf, "foobar"); // NOLINT(runtime/printf) +} + +void test_stpcpy() { + char buf[4]; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to char* __builtin___stpcpy_chk(char*, const char*, {{(long )?}}unsigned int) will always overflow destination buffer + // clang should emit a warning, but doesn't + stpcpy(buf, "foobar"); +} + +void test_strncpy() { + char buf[4]; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to char* __builtin___strncpy_chk(char*, const char*, {{(long )?}}unsigned int, {{(long )?}}unsigned int) will always overflow destination buffer + // clang should emit a warning, but doesn't + strncpy(buf, "foobar", sizeof("foobar")); +} + +void test_strcat() { + char buf[4] = ""; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to {{(char\* __builtin___strcat_chk\(char\*, const char\*, unsigned int\))|(void\* __builtin___memcpy_chk\(void\*, const void\*, (long )?unsigned int, (long )?unsigned int\))}} will always overflow destination buffer + // clang should emit a warning, but doesn't + strcat(buf, "foobar"); // NOLINT(runtime/printf) +} + +void test_strncat() { + char buf[4] = ""; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to {{(char\* __builtin___strcat_chk\(char\*, const char\*, unsigned int\))|(void\* __builtin___memcpy_chk\(void\*, const void\*, (long )?unsigned int, (long )?unsigned int\))}} will always overflow destination buffer + // gcc output warning with __builtin___strcat_chk for __builtin___strncat_chk. + // clang should emit a warning, but doesn't + strncat(buf, "foobar", sizeof("foobar")); +} + +void test_vsprintf(const char* fmt, ...) { + va_list va; + char buf[4]; + va_start(va, fmt); + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to int __builtin___vsprintf_chk(char*, int, {{(long )?}}unsigned int, const char*, {{(__va_list)|(void\*)|(char\*)|(__va_list_tag\*)}}) will always overflow destination buffer + // clang should emit a warning, but doesn't + vsprintf(buf, "foobar", va); + va_end(va); +} + +void test_vsnprintf(const char* fmt, ...) { + va_list va; + char buf[4]; + va_start(va, fmt); + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: warning: call to int __builtin___vsnprintf_chk(char*, {{(long )?}}unsigned int, int, {{(long )?}}unsigned int, const char*, {{(__va_list)|(void\*)|(char\*)|(__va_list_tag\*)}}) will always overflow destination buffer + // clang should emit a warning, but doesn't + vsnprintf(buf, 5, "foobar", va); // NOLINT(runtime/printf) + + va_end(va); +} + +void test_fgets() { + char buf[4]; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: error: call to '__fgets_too_small_error' declared with attribute error: fgets called with size less than zero + // clang should emit a warning, but doesn't + fgets(buf, -1, stdin); + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: error: call to '__fgets_too_big_error' declared with attribute error: fgets called with size bigger than buffer + // clang should emit a warning, but doesn't + fgets(buf, 6, stdin); +} + +void test_recvfrom() { + char buf[4]; + sockaddr_in addr; + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: error: call to '__recvfrom_error' declared with attribute error: recvfrom called with size bigger than buffer + // clang should emit a warning, but doesn't + recvfrom(0, buf, 6, 0, reinterpret_cast(&addr), NULL); +} + +void test_umask() { + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: error: call to '__umask_invalid_mode' declared with attribute error: umask called with invalid mode + // clang should emit a warning, but doesn't + umask(01777); +} + +void test_read() { + char buf[4]; + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: error: call to '__read_dest_size_error' declared with attribute error: read called with size bigger than destination + // clang should emit a warning, but doesn't + read(0, buf, 6); +} + +void test_open() { + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: error: call to '__creat_missing_mode' declared with attribute error: called with O_CREAT, but missing mode + // clang should emit a warning, but doesn't + open("/dev/null", O_CREAT); + + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: error: call to '__creat_too_many_args' declared with attribute error: too many arguments + // clang should emit a warning, but doesn't + open("/dev/null", O_CREAT, 0, 0); +} + +void test_poll() { + pollfd fds[1]; + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: error: call to '__poll_too_small_error' declared with attribute error: poll: pollfd array smaller than fd count + // clang should emit a warning, but doesn't + poll(fds, 2, 0); +} + +void test_ppoll() { + pollfd fds[1]; + timespec timeout; + // NOLINTNEXTLINE(whitespace/line_length) + // GCC: error: call to '__ppoll_too_small_error' declared with attribute error: ppoll: pollfd array smaller than fd count + // clang should emit a warning, but doesn't + ppoll(fds, 2, &timeout, NULL); +} diff --git a/tests/fortify_sprintf_warnings.cpp b/tests/fortify_sprintf_warnings.cpp deleted file mode 100644 index 3a2d3c4c1..000000000 --- a/tests/fortify_sprintf_warnings.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#undef _FORTIFY_SOURCE -#define _FORTIFY_SOURCE 2 -#include - -void test_sprintf() { - char buf[4]; - - // NOLINTNEXTLINE(whitespace/line_length) - // GCC: warning: call to int __builtin___sprintf_chk(char*, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer - // clang should emit a warning, but doesn't - sprintf(buf, "foobar"); // NOLINT(runtime/printf) - - // NOLINTNEXTLINE(whitespace/line_length) - // GCC: warning: call to int __builtin___sprintf_chk(char*, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer - // clang should emit a warning, but doesn't - sprintf(buf, "%s", "foobar"); // NOLINT(runtime/printf) -} - -void test_snprintf() { - char buf[4]; - - // NOLINTNEXTLINE(whitespace/line_length) - // GCC: warning: call to int __builtin___snprintf_chk(char*, {{(long )?}}unsigned int, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer - // clang should emit a warning, but doesn't - snprintf(buf, 5, "foobar"); // NOLINT(runtime/printf) - - // NOLINTNEXTLINE(whitespace/line_length) - // GCC: warning: call to int __builtin___snprintf_chk(char*, {{(long )?}}unsigned int, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer - // clang should emit a warning, but doesn't - snprintf(buf, 5, "%s", "foobar"); // NOLINT(runtime/printf) - - // NOLINTNEXTLINE(whitespace/line_length) - // GCC: warning: call to int __builtin___snprintf_chk(char*, {{(long )?}}unsigned int, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer - // clang should emit a warning, but doesn't - snprintf(buf, 5, " %s ", "foobar"); // NOLINT(runtime/printf) - - // NOLINTNEXTLINE(whitespace/line_length) - // GCC: warning: call to int __builtin___snprintf_chk(char*, {{(long )?}}unsigned int, int, {{(long )?}}unsigned int, const char*, ...) will always overflow destination buffer - // clang should emit a warning, but doesn't - snprintf(buf, 5, "%d", 100000); // NOLINT(runtime/printf) -} diff --git a/tests/gtest_main.cpp b/tests/gtest_main.cpp index 86d64660d..bf2b69578 100644 --- a/tests/gtest_main.cpp +++ b/tests/gtest_main.cpp @@ -124,15 +124,15 @@ class Test { int64_t GetTestTime() const { return elapsed_time_ns_; } - void AppendFailureMessage(const std::string& s) { failure_message_ += s; } + void AppendTestOutput(const std::string& s) { output_ += s; } - const std::string& GetFailureMessage() const { return failure_message_; } + const std::string& GetTestOutput() const { return output_; } private: const std::string name_; TestResult result_; int64_t elapsed_time_ns_; - std::string failure_message_; + std::string output_; }; class TestCase { @@ -196,10 +196,6 @@ class TestCase { std::vector test_list_; }; -// This is the file descriptor used by the child process to write failure message. -// The parent process will collect the information and dump to stdout / xml file. -static int child_output_fd; - class TestResultPrinter : public testing::EmptyTestEventListener { public: TestResultPrinter() : pinfo_(NULL) {} @@ -219,25 +215,9 @@ void TestResultPrinter::OnTestPartResult(const testing::TestPartResult& result) return; // Print failure message from the assertion (e.g. expected this and got that). - char buf[1024]; - snprintf(buf, sizeof(buf), "%s:(%d) Failure in test %s.%s\n%s\n", result.file_name(), - result.line_number(), - pinfo_->test_case_name(), - pinfo_->name(), - result.message()); - - int towrite = strlen(buf); - char* p = buf; - while (towrite > 0) { - ssize_t bytes_written = TEMP_FAILURE_RETRY(write(child_output_fd, p, towrite)); - if (bytes_written == -1) { - fprintf(stderr, "failed to write child_output_fd: %s\n", strerror(errno)); - exit(1); - } else { - towrite -= bytes_written; - p += bytes_written; - } - } + printf("%s:(%d) Failure in test %s.%s\n%s\n", result.file_name(), result.line_number(), + pinfo_->test_case_name(), pinfo_->name(), result.message()); + fflush(stdout); } static int64_t NanoTime() { @@ -315,6 +295,32 @@ static void OnTestIterationStartPrint(const std::vector& testcase_list fflush(stdout); } +// bionic cts test needs gtest output format. +#if defined(USING_GTEST_OUTPUT_FORMAT) + +static void OnTestEndPrint(const TestCase& testcase, size_t test_id) { + ColoredPrintf(COLOR_GREEN, "[ RUN ] "); + printf("%s\n", testcase.GetTestName(test_id).c_str()); + + const std::string& test_output = testcase.GetTest(test_id).GetTestOutput(); + printf("%s", test_output.c_str()); + + TestResult result = testcase.GetTestResult(test_id); + if (result == TEST_SUCCESS) { + ColoredPrintf(COLOR_GREEN, "[ OK ] "); + } else { + ColoredPrintf(COLOR_RED, "[ FAILED ] "); + } + printf("%s", testcase.GetTestName(test_id).c_str()); + if (testing::GTEST_FLAG(print_time)) { + printf(" (%" PRId64 " ms)", testcase.GetTestTime(test_id) / 1000000); + } + printf("\n"); + fflush(stdout); +} + +#else // !defined(USING_GTEST_OUTPUT_FORMAT) + static void OnTestEndPrint(const TestCase& testcase, size_t test_id) { TestResult result = testcase.GetTestResult(test_id); if (result == TEST_SUCCESS) { @@ -327,16 +333,17 @@ static void OnTestEndPrint(const TestCase& testcase, size_t test_id) { printf("%s", testcase.GetTestName(test_id).c_str()); if (testing::GTEST_FLAG(print_time)) { - printf(" (%" PRId64 " ms)\n", testcase.GetTestTime(test_id) / 1000000); - } else { - printf("\n"); + printf(" (%" PRId64 " ms)", testcase.GetTestTime(test_id) / 1000000); } + printf("\n"); - const std::string& failure_message = testcase.GetTest(test_id).GetFailureMessage(); - printf("%s", failure_message.c_str()); + const std::string& test_output = testcase.GetTest(test_id).GetTestOutput(); + printf("%s", test_output.c_str()); fflush(stdout); } +#endif // !defined(USING_GTEST_OUTPUT_FORMAT) + static void OnTestIterationEndPrint(const std::vector& testcase_list, size_t /*iteration*/, int64_t elapsed_time_ns) { @@ -481,8 +488,8 @@ void OnTestIterationEndXmlPrint(const std::string& xml_output_filename, fputs(" />\n", fp); } else { fputs(">\n", fp); - const std::string& failure_message = testcase.GetTest(j).GetFailureMessage(); - fprintf(fp, " \n", failure_message.c_str()); + const std::string& test_output = testcase.GetTest(j).GetTestOutput(); + fprintf(fp, " \n", test_output.c_str()); fputs(" \n", fp); fputs(" \n", fp); } @@ -538,7 +545,10 @@ static ChildProcInfo RunChildProcess(const std::string& test_name, int testcase_ } else if (pid == 0) { // In child process, run a single test. close(pipefd[0]); - child_output_fd = pipefd[1]; + close(STDOUT_FILENO); + close(STDERR_FILENO); + dup2(pipefd[1], STDOUT_FILENO); + dup2(pipefd[1], STDERR_FILENO); if (sigprocmask(SIG_SETMASK, &sigmask, NULL) == -1) { perror("sigprocmask SIG_SETMASK"); @@ -692,7 +702,7 @@ static void CollectChildTestResult(const ChildProcInfo& child_proc, TestCase& te ssize_t bytes_read = TEMP_FAILURE_RETRY(read(child_proc.child_read_fd, buf, sizeof(buf) - 1)); if (bytes_read > 0) { buf[bytes_read] = '\0'; - testcase.GetTest(test_id).AppendFailureMessage(buf); + testcase.GetTest(test_id).AppendTestOutput(buf); } else if (bytes_read == 0) { break; // Read end. } else { @@ -713,7 +723,7 @@ static void CollectChildTestResult(const ChildProcInfo& child_proc, TestCase& te char buf[1024]; snprintf(buf, sizeof(buf), "%s killed because of timeout at %" PRId64 " ms.\n", testcase.GetTestName(test_id).c_str(), testcase.GetTestTime(test_id) / 1000000); - testcase.GetTest(test_id).AppendFailureMessage(buf); + testcase.GetTest(test_id).AppendTestOutput(buf); } else if (WIFSIGNALED(child_proc.exit_status)) { // Record signal terminated test as failed. @@ -721,7 +731,7 @@ static void CollectChildTestResult(const ChildProcInfo& child_proc, TestCase& te char buf[1024]; snprintf(buf, sizeof(buf), "%s terminated by signal: %s.\n", testcase.GetTestName(test_id).c_str(), strsignal(WTERMSIG(child_proc.exit_status))); - testcase.GetTest(test_id).AppendFailureMessage(buf); + testcase.GetTest(test_id).AppendTestOutput(buf); } else { testcase.SetTestResult(test_id, WEXITSTATUS(child_proc.exit_status) == 0 ? @@ -731,7 +741,8 @@ static void CollectChildTestResult(const ChildProcInfo& child_proc, TestCase& te // We choose to use multi-fork and multi-wait here instead of multi-thread, because it always // makes deadlock to use fork in multi-thread. -static void RunTestInSeparateProc(int argc, char** argv, std::vector& testcase_list, +// Returns true if all tests run successfully, otherwise return false. +static bool RunTestInSeparateProc(int argc, char** argv, std::vector& testcase_list, size_t iteration_count, size_t job_count, const std::string& xml_output_filename) { // Stop default result printer to avoid environment setup/teardown information for each test. @@ -749,6 +760,8 @@ static void RunTestInSeparateProc(int argc, char** argv, std::vector& exit(1); } + bool all_tests_passed = true; + for (size_t iteration = 1; iteration <= iteration_count; ++iteration) { OnTestIterationStartPrint(testcase_list, iteration, iteration_count); int64_t iteration_start_time_ns = NanoTime(); @@ -796,6 +809,9 @@ static void RunTestInSeparateProc(int argc, char** argv, std::vector& if (++finished_test_count_list[testcase_id] == testcase.TestCount()) { ++finished_testcase_count; } + if (testcase.GetTestResult(test_id) != TEST_SUCCESS) { + all_tests_passed = false; + } it = child_proc_list.erase(it); } else { @@ -817,6 +833,8 @@ static void RunTestInSeparateProc(int argc, char** argv, std::vector& perror("sigprocmask SIG_SETMASK"); exit(1); } + + return all_tests_passed; } static size_t GetProcessorCount() { @@ -1051,15 +1069,15 @@ int main(int argc, char** argv) { if (EnumerateTests(argc, arg_list.data(), testcase_list) == false) { return 1; } - RunTestInSeparateProc(argc, arg_list.data(), testcase_list, options.gtest_repeat, - options.job_count, options.gtest_output); + bool all_test_passed = RunTestInSeparateProc(argc, arg_list.data(), testcase_list, + options.gtest_repeat, options.job_count, options.gtest_output); + return all_test_passed ? 0 : 1; } else { argc = static_cast(arg_list.size()); arg_list.push_back(NULL); testing::InitGoogleTest(&argc, arg_list.data()); return RUN_ALL_TESTS(); } - return 0; } //################################################################################ diff --git a/tests/math_data/acos_intel_data.h b/tests/math_data/acos_intel_data.h new file mode 100644 index 000000000..5c177ce5c --- /dev/null +++ b/tests/math_data/acos_intel_data.h @@ -0,0 +1,1314 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_acos_intel_data[] = { + { // Entry 0 + 0x1.c8a538ae83d1f7ffffffffffffcef091p-1, + 0x1.4182199998587p-1 + }, + { // Entry 1 + 0x1.520dc553f6b23800000000000226b93cp-2, + 0x1.e45a1c93651ecp-1 + }, + { // Entry 2 + 0x1.91e006d41d8d8fffffffffffffffe4aep0, + 0x1.fd737be914578p-11 + }, + { // Entry 3 + 0x1.efeef61d39ac1ffffffffffff8244904p-3, + 0x1.f10fc61e2c78fp-1 + }, + { // Entry 4 + 0x1.0c152382d8f1bff4e139b41e4025d0fcp1, + -0x1.00000000060p-1 + }, + { // Entry 5 + 0x1.0c152382e0732be923fe009ea0c7355dp1, + -0x1.000000002p-1 + }, + { // Entry 6 + 0x1.d2cf5cbe8a4768000d63bae9c7297bcfp0, + -0x1.00000100001p-2 + }, + { // Entry 7 + 0x1.0c164c45aca25370b59ffdf4a18d65a1p1, + -0x1.0004040p-1 + }, + { // Entry 8 + 0x1.a222e1630a32c8001e3ce23da074be9bp0, + -0x1.0007ffffffffep-4 + }, + { // Entry 9 + 0x1.0c75b731b9c0ceed0fc3f7c5f98c5e1bp1, + -0x1.014e445bdcf7dp-1 + }, + { // Entry 10 + 0x1.0c8df00b6a96b44b4bbb209fc767369fp1, + -0x1.01a2037b1bac4p-1 + }, + { // Entry 11 + 0x1.0de4edea718bd2db5b8f1e8d95da11f5p1, + -0x1.064p-1 + }, + { // Entry 12 + 0x1.0e4b7c84d10ff2cdc09d8629c37c6bf9p1, + -0x1.07ap-1 + }, + { // Entry 13 + 0x1.0f2e40d09060f1a3d94731a6ca70a8ddp1, + -0x1.0aa7f71e6e71cp-1 + }, + { // Entry 14 + 0x1.0f43445ef5606fffa32df1d88ff691efp1, + -0x1.0aefb502023b6p-1 + }, + { // Entry 15 + 0x1.101adb881a80b24d6b78dbda9f109728p1, + -0x1.0dce1b9c37387p-1 + }, + { // Entry 16 + 0x1.10e62fa769e6534e688c4e0e33eca505p1, + -0x1.108p-1 + }, + { // Entry 17 + 0x1.11c33797afddabbea24dc3547594c5c0p1, + -0x1.136ae890a0b29p-1 + }, + { // Entry 18 + 0x1.1bae2535eaee0c1296c6eab12d27114ap1, + -0x1.340p-1 + }, + { // Entry 19 + 0x1.238d4f63c0137461ca7c6635fd0225bcp1, + -0x1.4c8df30e0f9f9p-1 + }, + { // Entry 20 + 0x1.bd4c060e9d4fa8000ae2414e49c449dep0, + -0x1.57cp-3 + }, + { // Entry 21 + 0x1.f3739df16d5810008dbb8f86206274e3p0, + -0x1.7c0p-2 + }, + { // Entry 22 + 0x1.359d26f93b6c08001b822971ead56e4cp1, + -0x1.7fffffffffff9p-1 + }, + { // Entry 23 + 0x1.f4aa0ecbe9ca07ff5383e6cbdeda0e6fp0, + -0x1.808p-2 + }, + { // Entry 24 + 0x1.3f176283f912f4d5c7129ad9f5141c1dp1, + -0x1.980p-1 + }, + { // Entry 25 + 0x1.92398cd07734cfff8e4658afba76b963p0, + -0x1.9d78c29270c37p-12 + }, + { // Entry 26 + 0x1.0241ccc7797b28001d8b3ed530288167p1, + -0x1.ba7c5af7cd988p-2 + }, + { // Entry 27 + 0x1.a0fad7a0ff6ff7ff77e44ec7b5ef9ba3p0, + -0x1.db2p-5 + }, + { // Entry 28 + 0x1.921fb54442d18469898cc51711854bddp0, + -0x1.f9a2475d37a04p-101 + }, + { // Entry 29 + 0x1.921fb54442d18469898cc517119368e5p0, + -0x1.fb65e86dc7e52p-101 + }, + { // Entry 30 + 0x1.821f3cbecf0a577f98d9122b4f7b3737p1, + -0x1.fc01190c5f1d4p-1 + }, + { // Entry 31 + 0x1.931eb46e6d8fd80019cf2ec002d1ea6ep0, + -0x1.fdfdfffffffffp-9 + }, + { // Entry 32 + 0x1.d2bdcdea4bbff28ee1513ce0581e6b80p0, + -0x1.ff77fffffffffp-3 + }, + { // Entry 33 + 0x1.b235294c376f9ffbe3cda85efb67c658p0, + -0x1.ffff7ffffffffp-4 + }, + { // Entry 34 + 0x1.0c1523808801280001696015d499795fp1, + -0x1.ffffffeffffe1p-2 + }, + { // Entry 35 + 0x1.9a200aa3332ca8002dd33eda52daa3b5p0, + -0x1.ffffffffff8ffp-6 + }, + { // Entry 36 + 0x1.0c152382d7340fff11bb3dc1f95c2689p1, + -0x1.fffffffffff03p-2 + }, + { // Entry 37 + 0x1.9a200aa3332e67f83053ef04d0a4eb45p0, + -0x1.ffffffffffffep-6 + }, + { // Entry 38 + 0x1.921fb54442d18869898cc517019839a2p0, + -0x1.fffffffffffffp-55 + }, + { // Entry 39 + 0x1.720a392c1d8527f0766bdc231b390704p0, + 0x1.00000000008p-3 + }, + { // Entry 40 + 0x1.51700e0c1325b800d16de8911c74de7dp0, + 0x1.00000000060p-2 + }, + { // Entry 41 + 0x1.720a392c198d30009edc2a4283eae411p0, + 0x1.000000002p-3 + }, + { // Entry 42 + 0x1.0c1523804a159000007341c4be8459a3p0, + 0x1.000000046b404p-1 + }, + { // Entry 43 + 0x1.0c15235de3e7cb9bd2348617696fafccp0, + 0x1.0000004p-1 + }, + { // Entry 44 + 0x1.51700cf3291357ffa4ca332eb644f0f6p0, + 0x1.0000044p-2 + }, + { // Entry 45 + 0x1.911fb1199613980023854405784aadecp0, + 0x1.0004000000050p-8 + }, + { // Entry 46 + 0x1.512df2849c580e80a384e0df8f8e5a29p0, + 0x1.010p-2 + }, + { // Entry 47 + 0x1.0a2f22b4aaf4137fd551484ed58a9734p0, + 0x1.0347f8edc9a96p-1 + }, + { // Entry 48 + 0x1.4e34727b36618e7b44a67aa702c53623p0, + 0x1.0c8p-2 + }, + { // Entry 49 + 0x1.04bc2567dc9f8cd86255dcf4fafa7693p0, + 0x1.0c9e8916420b6p-1 + }, + { // Entry 50 + 0x1.04014982d9ce73c468c55eb187532cd7p0, + 0x1.0ddc68b675658p-1 + }, + { // Entry 51 + 0x1.81385760faf0f7fe7fd9d1f793eb6e9bp0, + 0x1.0e4390e4390e1p-4 + }, + { // Entry 52 + 0x1.4d7407811e5f8f522dfdeb46952e8762p0, + 0x1.0f6671d3cee5ep-2 + }, + { // Entry 53 + 0x1.4d4c369ec6516bd075addb99a8f1fdc7p0, + 0x1.0ffffffe0p-2 + }, + { // Entry 54 + 0x1.899f4edc942ce80055c005582a9d9f5fp0, + 0x1.100000004p-5 + }, + { // Entry 55 + 0x1.02bb48da5f7b9308fc7983b9f555bdf9p0, + 0x1.1005a3ac6f054p-1 + }, + { // Entry 56 + 0x1.028b1af46d959324ee19f46a706b7d35p0, + 0x1.1057411e5735ap-1 + }, + { // Entry 57 + 0x1.020b51b1f72a8c2e4de9ec5488de7857p0, + 0x1.112f8a27ba5d5p-1 + }, + { // Entry 58 + 0x1.01e697d61109f3bbb99fe25e8efaf83fp0, + 0x1.116da6bf8b495p-1 + }, + { // Entry 59 + 0x1.017d9b789233f3964f1c62e3d1f18bb8p0, + 0x1.121f157cb6c0ap-1 + }, + { // Entry 60 + 0x1.0176c4d6b5631326381f276a1cf5aff2p0, + 0x1.122aa2913636cp-1 + }, + { // Entry 61 + 0x1.00d2160daa60f2dc9c5d2070d90ff117p0, + 0x1.134093e8f975bp-1 + }, + { // Entry 62 + 0x1.0067819bc0a6131b2515e089e5ffead6p0, + 0x1.13f438738f770p-1 + }, + { // Entry 63 + 0x1.005af0d670a69300326d1f919e90e37ep0, + 0x1.1409633da0018p-1 + }, + { // Entry 64 + 0x1.0006aaab22f953446798783c17afa73ap0, + 0x1.149748a9f1e12p-1 + }, + { // Entry 65 + 0x1.8dc1a761fc3e27ffddbace0c08f7d931p0, + 0x1.178p-6 + }, + { // Entry 66 + 0x1.faedbe5d362f77e0e37df0ba380d6bf2p-1, + 0x1.18e37509b64bfp-1 + }, + { // Entry 67 + 0x1.f723c85457f23e048017ebac9828f74ap-1, + 0x1.1c0c71b0d77b4p-1 + }, + { // Entry 68 + 0x1.f40045aa068255be54395b26191ca6ecp-1, + 0x1.1ea7972fc8124p-1 + }, + { // Entry 69 + 0x1.f3e4a7973ba9f5bc588023272bfd8fefp-1, + 0x1.1ebe78e20b1c4p-1 + }, + { // Entry 70 + 0x1.f35b18d9133df5c3286ad7c7f3a599ebp-1, + 0x1.1f306490c5782p-1 + }, + { // Entry 71 + 0x1.edf06e518f1d7e7d6318864553757b63p-1, + 0x1.23a83d7649788p-1 + }, + { // Entry 72 + 0x1.edae9bcb630d4d2d95081b152b6797a3p-1, + 0x1.23de545deeef6p-1 + }, + { // Entry 73 + 0x1.eb59d70c979f2da8249d5a4f58755b8fp-1, + 0x1.25c7dcb26a9cap-1 + }, + { // Entry 74 + 0x1.ea55cf128780505242c68838513032e7p-1, + 0x1.269cae16c3f63p-1 + }, + { // Entry 75 + 0x1.e0c7b682b6a8581abfbc77e99954db72p-1, + 0x1.2e6p-1 + }, + { // Entry 76 + 0x1.d9b299bbb4e537ac6ff62206d2da36b3p-1, + 0x1.340fb2423c6b3p-1 + }, + { // Entry 77 + 0x1.d538889085d30e4ca3abe981c9888d22p-1, + 0x1.37a0130f68f6ap-1 + }, + { // Entry 78 + 0x1.8d4034388cd22fff892e9180c4337f63p0, + 0x1.37db709c37bf5p-6 + }, + { // Entry 79 + 0x1.c8a538ae83d1f7ffffffffffffcef091p-1, + 0x1.4182199998587p-1 + }, + { // Entry 80 + 0x1.3ea71520cf3d37faeb955cf605d0a7dbp0, + 0x1.480p-2 + }, + { // Entry 81 + 0x1.be76e54ddede3ffe867c8817e7c6e06fp-1, + 0x1.495e1625f7b6fp-1 + }, + { // Entry 82 + 0x1.921562b09cf0e8004c5a81cf221a6e56p0, + 0x1.4a5274a529496p-13 + }, + { // Entry 83 + 0x1.af9fdabd59d9e658ff0e5e8c0c145370p-1, + 0x1.5496e087b338fp-1 + }, + { // Entry 84 + 0x1.91f48e0a5cec37ffff970d899abc38d6p0, + 0x1.5939cd8c9fbedp-11 + }, + { // Entry 85 + 0x1.a5282161b01857fa74d0820197a14f5ep-1, + 0x1.5c55572447fb8p-1 + }, + { // Entry 86 + 0x1.9c0c4195064df7ffd3c667633bf7a651p-1, + 0x1.62f42a09bce1dp-1 + }, + { // Entry 87 + 0x1.91c4c20a0ea7f800004eb45095fd191ap0, + 0x1.6bcce1297373ep-10 + }, + { // Entry 88 + 0x1.339d18f59afb880000d2fbce3d9c08c2p0, + 0x1.7182fc23eb316p-2 + }, + { // Entry 89 + 0x1.7ad4c5762d7b6800001a3adffeded5f4p0, + 0x1.742b66dcd4308p-4 + }, + { // Entry 90 + 0x1.32882c24236038000cd47b0b46bba64ep0, + 0x1.758b345cb9f3ep-2 + }, + { // Entry 91 + 0x1.7f46927c463a28062e3b1b0c16ac1bdbp-1, + 0x1.771e38e0af4fcp-1 + }, + { // Entry 92 + 0x1.782ebe246cbe37e3fb6a1ef678b064bfp-1, + 0x1.7be8d3908cb27p-1 + }, + { // Entry 93 + 0x1.7a40db57e99637fea04162825b2bc181p0, + 0x1.7d6p-4 + }, + { // Entry 94 + 0x1.720a392c1d9517f0970e86dd5de5b635p-1, + 0x1.8000000000002p-1 + }, + { // Entry 95 + 0x1.2e038f4737dfb7f94f31df896ea0ac7ap0, + 0x1.864fbb7b12ad6p-2 + }, + { // Entry 96 + 0x1.657df1f3a0bc08338a7af19c234dfc3ap-1, + 0x1.882efd2dd4220p-1 + }, + { // Entry 97 + 0x1.85cea1911701e80000bca0371b899679p0, + 0x1.89fb8a6df15e2p-5 + }, + { // Entry 98 + 0x1.2a202393ed2377fd5857f95af8665161p0, + 0x1.94a5294a52948p-2 + }, + { // Entry 99 + 0x1.781e4389c0b36fff9c101747cda30edcp0, + 0x1.9f6p-4 + }, + { // Entry 100 + 0x1.5d318bf3e390e7fff88af7a5da604d3ap0, + 0x1.a46e97f496ea3p-3 + }, + { // Entry 101 + 0x1.1b5148dd9e1bd7b01791138f3f325580p-1, + 0x1.b397a5f961839p-1 + }, + { // Entry 102 + 0x1.1a583fd138fb37a3f6d2f07dbf3ec7b3p-1, + 0x1.b41a53773a4e3p-1 + }, + { // Entry 103 + 0x1.14823c2657c87f555ecd15bb19387e6bp-1, + 0x1.b721cf87383f3p-1 + }, + { // Entry 104 + 0x1.1301fd2ab34e480181c3a283011497c5p-1, + 0x1.b7e6e68840de9p-1 + }, + { // Entry 105 + 0x1.12e096afcb7de8799b39619a4d425055p-1, + 0x1.b7f7fc997bfe3p-1 + }, + { // Entry 106 + 0x1.05b944cc4600b7f611b44550901f0ceep-1, + 0x1.be8cd7678f521p-1 + }, + { // Entry 107 + 0x1.8e9f6e1d3decc7fff55630ea5ccfd289p0, + 0x1.c01ffffffffffp-7 + }, + { // Entry 108 + 0x1.ffc7ad9153ff2fd7a788766680d9a358p-2, + 0x1.c16p-1 + }, + { // Entry 109 + 0x1.1dc2cb388dc96800004b1ca5a21af6b0p0, + 0x1.c196ba7c38699p-2 + }, + { // Entry 110 + 0x1.fb29d815d149880a7b959c1fb8374fd0p-2, + 0x1.c27a04ea38cddp-1 + }, + { // Entry 111 + 0x1.fb0f38754a0cf7f96b7417b739fd6712p-2, + 0x1.c280586977fd3p-1 + }, + { // Entry 112 + 0x1.f1884288008e97f81e1bbdd955287e5bp-2, + 0x1.c4bed345ea41ap-1 + }, + { // Entry 113 + 0x1.eb974d89e1c136026c6858b963f4f0d2p-2, + 0x1.c62p-1 + }, + { // Entry 114 + 0x1.e297da83df05f62c3022324c50ec1611p-2, + 0x1.c82f6b1c3d906p-1 + }, + { // Entry 115 + 0x1.589c2963846ca801074a478b55f6b7cap0, + 0x1.c84p-3 + }, + { // Entry 116 + 0x1.cdd9f8d6e777f7ffff853f09a06b5911p-2, + 0x1.ccccccd442bf9p-1 + }, + { // Entry 117 + 0x1.c42907c37d1b27cc0fa3350a28179421p-2, + 0x1.cee437c4d6115p-1 + }, + { // Entry 118 + 0x1.bf05da450c97f7f8826c8bfaa9e0af95p-2, + 0x1.cffbbf702a732p-1 + }, + { // Entry 119 + 0x1.bedf70d3703617fac6520f0337bf4a56p-2, + 0x1.d003ddf5923bap-1 + }, + { // Entry 120 + 0x1.b5d5824cd5a5b7f84e927113df50ca1dp-2, + 0x1.d1e84213079a0p-1 + }, + { // Entry 121 + 0x1.a858c231190e17fa9b20a3d037ec0e43p-2, + 0x1.d4a9c16b6b42ep-1 + }, + { // Entry 122 + 0x1.9f6c7fe8723777fb3d256621194eb6f1p-2, + 0x1.d6711059b2ce3p-1 + }, + { // Entry 123 + 0x1.9d5978ef2047b7f97b093ad7540b39b8p-2, + 0x1.d6d99a0c90a6ap-1 + }, + { // Entry 124 + 0x1.9cb189645b2df7f79b30cb75dff78e0bp-2, + 0x1.d6fa8f01023cfp-1 + }, + { // Entry 125 + 0x1.97b574226c7d77fd9b3bd3bc8ba77dd9p-2, + 0x1.d7f35e4f0e194p-1 + }, + { // Entry 126 + 0x1.9613e250da73e8056bef22e9fe299078p-2, + 0x1.d8442a16f8a05p-1 + }, + { // Entry 127 + 0x1.95e4749133f2a806cc1561ec93381a09p-2, + 0x1.d84d5271eccedp-1 + }, + { // Entry 128 + 0x1.858c8c0e0f34bf9b87be908d0e8cd365p-2, + 0x1.db658d47a4f02p-1 + }, + { // Entry 129 + 0x1.6bf38913626aa7ff1b8b15b0481456e5p-2, + 0x1.e00000007ffffp-1 + }, + { // Entry 130 + 0x1.3c2328dda8571001f1fa3a4b1b738ab2p-2, + 0x1.e7cb07ba8097ap-1 + }, + { // Entry 131 + 0x1.37fa7f88bd54d0023b864b207af0307cp-2, + 0x1.e86bbf35007dfp-1 + }, + { // Entry 132 + 0x1.29ce7191cc2fe7ff1aee4a298866fa12p-2, + 0x1.ea7feaf29d558p-1 + }, + { // Entry 133 + 0x1.1cedf22edfdaee581a28423c374a63e9p-2, + 0x1.ec4e9a59613acp-1 + }, + { // Entry 134 + 0x1.110e9a3d93e5d3b661dc886b7dfc0145p0, + 0x1.eeac200629b5dp-2 + }, + { // Entry 135 + 0x1.ffd3bf06ed2642f1bf646de4dfb90f14p-3, + 0x1.f018068f84bdep-1 + }, + { // Entry 136 + 0x1.106ef026ab7e73cb6256ab29382a05f3p0, + 0x1.f0daf154de72cp-2 + }, + { // Entry 137 + 0x1.ecd91ecf5a9e8000fcf0fe2a481676b9p-3, + 0x1.f13efac234068p-1 + }, + { // Entry 138 + 0x1.d75772546bfc7f3d87511ce008b8b8c3p-3, + 0x1.f28p-1 + }, + { // Entry 139 + 0x1.d5b9693237ace821fe875ccefd4cc418p-3, + 0x1.f297929fe63cap-1 + }, + { // Entry 140 + 0x1.af6c2d4b59de08016fcef2f0148a746dp-3, + 0x1.f4ae875c6bacbp-1 + }, + { // Entry 141 + 0x1.a6be0361001ee8060af2ba4dd0c50aa9p-3, + 0x1.f5218a91baa07p-1 + }, + { // Entry 142 + 0x1.0ee85baa5eb7f3fbe1fccd08bc3b4492p0, + 0x1.f62ec3b97b60cp-2 + }, + { // Entry 143 + 0x1.0e9a941b232133fa63772cc6a091171bp0, + 0x1.f73dcf73dcf70p-2 + }, + { // Entry 144 + 0x1.6c424b343238b7c44b51bd77c7190160p-3, + 0x1.f7ec434d201d1p-1 + }, + { // Entry 145 + 0x1.6a83017dfb54de59e9192470188662cfp-3, + 0x1.f80p-1 + }, + { // Entry 146 + 0x1.90252d2c42cd97ffe9be50f9322516ccp0, + 0x1.fa86cd7cf3513p-8 + }, + { // Entry 147 + 0x1.0d58a360c87c4bbf3d29d0f4a82169bbp0, + 0x1.fb9dc5ca73720p-2 + }, + { // Entry 148 + 0x1.fa6c651bf32d78660fb62ba8468a8cc0p-4, + 0x1.fc1775dbef1abp-1 + }, + { // Entry 149 + 0x1.f7c328cf834cd87de2b639509dda5de1p-4, + 0x1.fc21ef3b98990p-1 + }, + { // Entry 150 + 0x1.f3c8ed27ef9f283f2ac70ec9d6098d19p-4, + 0x1.fc317cd691f52p-1 + }, + { // Entry 151 + 0x1.eea6e96b75ead807baca906e58bb8059p-4, + 0x1.fc4560a02d712p-1 + }, + { // Entry 152 + 0x1.0d1a4cf1b1fd73b9c4a8b5017d645f3bp0, + 0x1.fc76453e6bae8p-2 + }, + { // Entry 153 + 0x1.df3494c7556a03ecf756bf4c5c1d24b7p-4, + 0x1.fc7ffffffffffp-1 + }, + { // Entry 154 + 0x1.0d05103b42c9940e6e6c705d65e17858p0, + 0x1.fccp-2 + }, + { // Entry 155 + 0x1.9c9bb5b4c94c8001b817fedb0eaca0ecp-4, + 0x1.fd678a5a7385ep-1 + }, + { // Entry 156 + 0x1.f4f3987cd68ff86900930a2b99148f4fp-5, + 0x1.ff0b016f7cb8bp-1 + }, + { // Entry 157 + 0x1.b96fe9afa4c148152f48dd9ea74565d6p-5, + 0x1.ff41bf1886212p-1 + }, + { // Entry 158 + 0x1.a38189360e584c2c315c37b74a8de324p-5, + 0x1.ff542d4af33e4p-1 + }, + { // Entry 159 + 0x1.def2feb427f5869945b1e63446daac8ep-6, + 0x1.ffc7fffffffffp-1 + }, + { // Entry 160 + 0x1.911fb919aa13a80003dab66eeb93af47p0, + 0x1.fff7ffep-9 + }, + { // Entry 161 + 0x1.7bb96d689be7ca1030e43bc3fecb819ap-8, + 0x1.fffdccc1d701fp-1 + }, + { // Entry 162 + 0x1.b95e54541a071ffcc559e575e1c45d84p-9, + 0x1.ffff41c283750p-1 + }, + { // Entry 163 + 0x1.9464bc1fea5e476fc7c730847ef2072cp-9, + 0x1.ffff604c81f35p-1 + }, + { // Entry 164 + 0x1.2380ce33ccc5d81a1da42a66818b51f4p-9, + 0x1.ffffad047cd7bp-1 + }, + { // Entry 165 + 0x1.0c1524bceb518c3bb68d2d3c320fc558p0, + 0x1.fffffbbffffffp-2 + }, + { // Entry 166 + 0x1.feffc038c368f967261955172b2d21e2p-12, + 0x1.fffffc03fffffp-1 + }, + { // Entry 167 + 0x1.821d0973b4a0b0016c6b1edfcc06b6ffp0, + 0x1.fffffe3ffffffp-5 + }, + { // Entry 168 + 0x1.9eb04d49b225986a90691720b967589ap-13, + 0x1.ffffff5810533p-1 + }, + { // Entry 169 + 0x1.3988e15f98f3dd3665a7a72d97547617p-13, + 0x1.ffffff9ffffffp-1 + }, + { // Entry 170 + 0x1.bb67aed2e237162c8ad96b5482f602bep-14, + 0x1.ffffffcffffffp-1 + }, + { // Entry 171 + 0x1.6514ba909fbbf3226dfd735dfdf42191p-14, + 0x1.ffffffe0ded2ep-1 + }, + { // Entry 172 + 0x1.911fb519a01327ffffaff63cfe51a6ffp0, + 0x1.fffffff001050p-9 + }, + { // Entry 173 + 0x1.0c152386e1d2f41799a6b289b1db9e6cp0, + 0x1.fffffff1fffffp-2 + }, + { // Entry 174 + 0x1.3988e7c8d4f60f003e750e7129eb31cdp-16, + 0x1.fffffffe7ffffp-1 + }, + { // Entry 175 + 0x1.deeeb2316401cb2cb77ada03ca8dd431p-17, + 0x1.ffffffff1ffffp-1 + }, + { // Entry 176 + 0x1.752ea8a9db933d7df1d6cffb00007a5ap-18, + 0x1.ffffffffddfffp-1 + }, + { // Entry 177 + 0x1.deefb2c32530bab30cf8bbb0a6928f4cp-19, + 0x1.fffffffff1fffp-1 + }, + { // Entry 178 + 0x1.0c152382daad2c41d08ab091f9f43ac6p0, + 0x1.fffffffff3fffp-2 + }, + { // Entry 179 + 0x1.b000000000cd0800000106bc80666823p-19, + 0x1.fffffffff49c0p-1 + }, + { // Entry 180 + 0x1.0c152382d7c177dbb5c7b51c4e876e71p0, + 0x1.fffffffffe1e1p-2 + }, + { // Entry 181 + 0x1.911fb5199813a8003eb04539417cd403p0, + 0x1.fffffffffffd0p-9 + }, + { // Entry 182 + 0x1.0c152382d736ab69cc6c36f54e0a958bp0, + 0x1.fffffffffffeep-2 + }, + { // Entry 183 + 0x1.8000000000000900000000000091ccccp-25, + 0x1.ffffffffffff7p-1 + }, + { // Entry 184 + 0x1.0c152382d73673fcd69b865c0010cf96p0, + 0x1.ffffffffffffap-2 + }, + { // Entry 185 + 0x1.4d5341b00be8a7fed4c5dfdc2eee1ccbp-2, + 0x1.e51cfe3b1ba8bp-1 + }, + { // Entry 186 + 0x1.0c152382d73658465bb32e0f567ad116p0, + 0x1.0p-1 + }, + { // Entry 187 + 0x1.0c152382d73658465bb32e0f567ad116p0, + 0x1.0p-1 + }, + { // Entry 188 + 0x1.da22859b2d5c27c2d45ce750728c8805p-1, + 0x1.33b645a1cac08p-1 + }, + { // Entry 189 + 0x1.921fb54442d1913030139541b9b839a2p-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 190 + 0x1.921fb54442d1913030139541b9b839a2p-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 191 + 0x1.359d26f93b6c32551ad5cf63b6549b57p1, + -0x1.8p-1 + }, + { // Entry 192 + 0x1.0c152382d73666bca69b88f04790b76cp-1, + 0x1.bb67ae8584caap-1 + }, + { // Entry 193 + 0x1.0c152382d73666bca69b88f04790b76cp-1, + 0x1.bb67ae8584caap-1 + }, + { // Entry 194 + 0x1.9e7c9b89260e3bcb44d14a8fdac1fd70p-8, + 0x1.fffd60e94ee39p-1 + }, + { // Entry 195 + 0x1.921fb54442d18469898c851701b839a2p0, + 0x1.0p-82 + }, + { // Entry 196 + 0x1.921fb54442d18461898cc51701b839a2p0, + 0x1.0p-61 + }, + { // Entry 197 + 0x1.921fb54442918469898cc51701b839a1p0, + 0x1.0p-42 + }, + { // Entry 198 + 0x1.921fb14442d184697ee21a6c570d422ap0, + 0x1.0p-22 + }, + { // Entry 199 + 0x1.916ab041f915522c7a634527690e82a5p0, + 0x1.6a09e667f3bcbp-9 + }, + { // Entry 200 + 0x1.916ab041f91552247a614526a90e32a5p0, + 0x1.6a09e667f3bccp-9 + }, + { // Entry 201 + 0x1.916ab041f915521c7a5f4525e90de2a5p0, + 0x1.6a09e667f3bcdp-9 + }, + { // Entry 202 + 0x1.90b5aae52c79b2aa66b36d577b951ab5p0, + 0x1.6a09e667f3bcbp-8 + }, + { // Entry 203 + 0x1.90b5aae52c79b29a66a36d3f7b6d1a70p0, + 0x1.6a09e667f3bccp-8 + }, + { // Entry 204 + 0x1.90b5aae52c79b28a66936d277b451a2ap0, + 0x1.6a09e667f3bcdp-8 + }, + { // Entry 205 + 0x1.8f4b9db1f59a78450728d07fcec82844p0, + 0x1.6a09e667f3bcbp-7 + }, + { // Entry 206 + 0x1.8f4b9db1f59a782506a8cd7fbac79c4cp0, + 0x1.6a09e667f3bccp-7 + }, + { // Entry 207 + 0x1.8f4b9db1f59a78050628ca7fa6c71049p0, + 0x1.6a09e667f3bcdp-7 + }, + { // Entry 208 + 0x1.8c776f7d7291f51392f5b98b4f9ef640p0, + 0x1.6a09e667f3bcbp-6 + }, + { // Entry 209 + 0x1.8c776f7d7291f4d38ef559814e86d71dp0, + 0x1.6a09e667f3bccp-6 + }, + { // Entry 210 + 0x1.8c776f7d7291f4938af4f9774d6eb79fp0, + 0x1.6a09e667f3bcdp-6 + }, + { // Entry 211 + 0x1.86ce747eb5cb996caf44709717fef092p0, + 0x1.6a09e667f3bcbp-5 + }, + { // Entry 212 + 0x1.86ce747eb5cb98ec8f386b94e7027fe1p0, + 0x1.6a09e667f3bccp-5 + }, + { // Entry 213 + 0x1.86ce747eb5cb986c6f2c6692b6060c5ap0, + 0x1.6a09e667f3bcdp-5 + }, + { // Entry 214 + 0x1.7b77852c631c38160912d4bff04e41e2p0, + 0x1.6a09e667f3bcbp-4 + }, + { // Entry 215 + 0x1.7b77852c631c37150790505801c3579cp0, + 0x1.6a09e667f3bccp-4 + }, + { // Entry 216 + 0x1.7b77852c631c3614060dcbf013385671p0, + 0x1.6a09e667f3bcdp-4 + }, + { // Entry 217 + 0x1.64a144217a8f043112de5f55544e1c28p0, + 0x1.6a09e667f3bcbp-3 + }, + { // Entry 218 + 0x1.64a144217a8f0228e1955e7984b3f71bp0, + 0x1.6a09e667f3bccp-3 + }, + { // Entry 219 + 0x1.64a144217a8f0020b04c5d9db5191435p0, + 0x1.6a09e667f3bcdp-3 + }, + { // Entry 220 + 0x1.359d26f93b6c3905e6d6ef5eb0f574adp0, + 0x1.6a09e667f3bcbp-2 + }, + { // Entry 221 + 0x1.359d26f93b6c34bf331d9755a68a7afcp0, + 0x1.6a09e667f3bccp-2 + }, + { // Entry 222 + 0x1.359d26f93b6c30787f643f4c9c1897fdp0, + 0x1.6a09e667f3bcdp-2 + }, + { // Entry 223 + 0x1.91420151498adc61fb274f09e54f1937p0, + 0x1.bb67ae8584ca9p-9 + }, + { // Entry 224 + 0x1.91420151498adc59fb244f08354e0b37p0, + 0x1.bb67ae8584caap-9 + }, + { // Entry 225 + 0x1.91420151498adc51fb214f06854cfd36p0, + 0x1.bb67ae8584cabp-9 + }, + { // Entry 226 + 0x1.90644cb8084a289e0fdaf319a3d72d0bp0, + 0x1.bb67ae8584ca9p-8 + }, + { // Entry 227 + 0x1.90644cb8084a288e0fc2f2e3a3502baap0, + 0x1.bb67ae8584caap-8 + }, + { // Entry 228 + 0x1.90644cb8084a287e0faaf2ada2c92a48p0, + 0x1.bb67ae8584cabp-8 + }, + { // Entry 229 + 0x1.8ea8def973a3419f8672de627481cc16p0, + 0x1.bb67ae8584ca9p-7 + }, + { // Entry 230 + 0x1.8ea8def973a3417f85b2d7a230ff0745p0, + 0x1.bb67ae8584caap-7 + }, + { // Entry 231 + 0x1.8ea8def973a3415f84f2d0e1ed7c4267p0, + 0x1.bb67ae8584cabp-7 + }, + { // Entry 232 + 0x1.8b31df18893670912b1c1be4889884efp0, + 0x1.bb67ae8584ca9p-6 + }, + { // Entry 233 + 0x1.8b31df1889367051251b43c2c30e15fcp0, + 0x1.bb67ae8584caap-6 + }, + { // Entry 234 + 0x1.8b31df18893670111f1a6ba0fd83a699p0, + 0x1.bb67ae8584cabp-6 + }, + { // Entry 235 + 0x1.8442bbd27f036dec946a1fbdbfe07d8fp0, + 0x1.bb67ae8584ca9p-5 + }, + { // Entry 236 + 0x1.8442bbd27f036d6c644f0ed2a561b9aap0, + 0x1.bb67ae8584caap-5 + }, + { // Entry 237 + 0x1.8442bbd27f036cec3433fde78ae2f24bp0, + 0x1.bb67ae8584cabp-5 + }, + { // Entry 238 + 0x1.765b4c48040219666b2fef59fcb0d2d4p0, + 0x1.bb67ae8584ca9p-4 + }, + { // Entry 239 + 0x1.765b4c4804021864e7c768f7896df8efp0, + 0x1.bb67ae8584caap-4 + }, + { // Entry 240 + 0x1.765b4c4804021763645ee295162b02d4p0, + 0x1.bb67ae8584cabp-4 + }, + { // Entry 241 + 0x1.5a417dae31bf8205988e1afc294b93e7p0, + 0x1.bb67ae8584ca9p-3 + }, + { // Entry 242 + 0x1.5a417dae31bf7ff92827db161a0e0411p0, + 0x1.bb67ae8584caap-3 + }, + { // Entry 243 + 0x1.5a417dae31bf7decb7c19b300acf85f9p0, + 0x1.bb67ae8584cabp-3 + }, + { // Entry 244 + 0x1.1f7a90695ca9046f7f711f3c5271788dp0, + 0x1.bb67ae8584ca9p-2 + }, + { // Entry 245 + 0x1.1f7a90695ca8ffff78c910422d09179bp0, + 0x1.bb67ae8584caap-2 + }, + { // Entry 246 + 0x1.1f7a90695ca8fb8f72210148079740eep0, + 0x1.bb67ae8584cabp-2 + }, + { // Entry 247 + 0x1.921fb54442d18469898cc51701b839a0p0, + 0x1.fffffffffffffp-128 + }, + { // Entry 248 + 0x1.921fb54442d18469898cc51701b839a0p0, + 0x1.0p-127 + }, + { // Entry 249 + 0x1.921fb54442d18469898cc51701b839a0p0, + 0x1.0000000000001p-127 + }, + { // Entry 250 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.fffffffffffffp-127 + }, + { // Entry 251 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.0p-126 + }, + { // Entry 252 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.0000000000001p-126 + }, + { // Entry 253 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000001p-1022 + }, + { // Entry 254 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1022 + }, + { // Entry 255 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 256 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1074 + }, + { // Entry 257 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0.0 + }, + { // Entry 258 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1074 + }, + { // Entry 259 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 260 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1022 + }, + { // Entry 261 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000001p-1022 + }, + { // Entry 262 + 0x1.921fb54042d18469898ce50c570d8ef7p0, + 0x1.fffffffffffffp-31 + }, + { // Entry 263 + 0x1.921fb54042d18469898cc50c570d8ef7p0, + 0x1.0p-30 + }, + { // Entry 264 + 0x1.921fb54042d18469898c850c570d8ef7p0, + 0x1.0000000000001p-30 + }, + { // Entry 265 + 0x1.921fb52442d18469898dafc1ac62e44cp0, + 0x1.fffffffffffffp-28 + }, + { // Entry 266 + 0x1.921fb52442d18469898cafc1ac62e44cp0, + 0x1.0p-27 + }, + { // Entry 267 + 0x1.921fb52442d18469898aafc1ac62e44cp0, + 0x1.0000000000001p-27 + }, + { // Entry 268 + 0x1.921fb4c442d18469898b6fc1ac62e44cp0, + 0x1.fffffffffffffp-26 + }, + { // Entry 269 + 0x1.921fb4c442d1846989876fc1ac62e44cp0, + 0x1.0p-25 + }, + { // Entry 270 + 0x1.921fb4c442d18469897f6fc1ac62e44bp0, + 0x1.0000000000001p-25 + }, + { // Entry 271 + 0x1.921bb54442c6d9befe954da08765547fp0, + 0x1.fffffffffffffp-15 + }, + { // Entry 272 + 0x1.921bb54442c6d9bede954d9f87655473p0, + 0x1.0p-14 + }, + { // Entry 273 + 0x1.921bb54442c6d9be9e954d9d8765545bp0, + 0x1.0000000000001p-14 + }, + { // Entry 274 + 0x1.8e1faa994b5731853e59876423331a32p0, + 0x1.fffffffffffffp-7 + }, + { // Entry 275 + 0x1.8e1faa994b5731653d597b63832a59bcp0, + 0x1.0p-6 + }, + { // Entry 276 + 0x1.8e1faa994b5731253b5963624318d8a0p0, + 0x1.0000000000001p-6 + }, + { // Entry 277 + 0x1.8a1f5fe55274a09adac41ad9214797d8p0, + 0x1.fffffffffffffp-6 + }, + { // Entry 278 + 0x1.8a1f5fe55274a05ad2c29a890fc3a730p0, + 0x1.0p-5 + }, + { // Entry 279 + 0x1.8a1f5fe552749fdac2bf99e8ecbbc462p0, + 0x1.0000000000001p-5 + }, + { // Entry 280 + 0x1.821d0965ad9b6ba3be317b82a5a09c93p0, + 0x1.fffffffffffffp-5 + }, + { // Entry 281 + 0x1.821d0965ad9b6b237e01535f8603a3acp0, + 0x1.0p-4 + }, + { // Entry 282 + 0x1.821d0965ad9b6a22fda1031946c9a5cep0, + 0x1.0000000000001p-4 + }, + { // Entry 283 + 0x1.720a392c1d954953c0f01dccd7296f92p0, + 0x1.fffffffffffffp-4 + }, + { // Entry 284 + 0x1.720a392c1d954851badbd6cd2d8e792cp0, + 0x1.0p-3 + }, + { // Entry 285 + 0x1.720a392c1d95464daeb348cdda582a13p0, + 0x1.0000000000001p-3 + }, + { // Entry 286 + 0x1.51700e0c14b25200dff9b6fda0f736e3p0, + 0x1.fffffffffffffp-3 + }, + { // Entry 287 + 0x1.51700e0c14b24ff015655c5ec5a7aaa3p0, + 0x1.0p-2 + }, + { // Entry 288 + 0x1.51700e0c14b24bce803ca7210f054413p0, + 0x1.0000000000001p-2 + }, + { // Entry 289 + 0x1.0c152382d7365ce4c584921c1d87f0edp0, + 0x1.fffffffffffffp-2 + }, + { // Entry 290 + 0x1.0c152382d73658465bb32e0f567ad116p0, + 0x1.0p-1 + }, + { // Entry 291 + 0x1.0c152382d7364f09881065f5c83b9e1ap0, + 0x1.0000000000001p-1 + }, + { // Entry 292 + 0x1.00000000000000aaaaaaaaaaaaabddddp-26, + 0x1.fffffffffffffp-1 + }, + { // Entry 293 + 0.0, + 0x1.0p0 + }, + { // Entry 294 + 0x1.921fb54442d1be716ce093b94fb839a2p-1, + 0x1.6a09e667f3bcap-1 + }, + { // Entry 295 + 0x1.921fb54442d1a7d0ce7a147d853839a2p-1, + 0x1.6a09e667f3bcbp-1 + }, + { // Entry 296 + 0x1.921fb54442d1913030139541b9b839a2p-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 297 + 0x1.921fb54442d17a8f91ad1605ed3839a2p-1, + 0x1.6a09e667f3bcdp-1 + }, + { // Entry 298 + 0x1.921fb54442d163eef34696ca1fb839a2p-1, + 0x1.6a09e667f3bcep-1 + }, + { // Entry 299 + 0x1.0c152382d736a6bca69b88f03d8186d0p-1, + 0x1.bb67ae8584ca8p-1 + }, + { // Entry 300 + 0x1.0c152382d73686bca69b88f0444486cdp-1, + 0x1.bb67ae8584ca9p-1 + }, + { // Entry 301 + 0x1.0c152382d73666bca69b88f04790b76cp-1, + 0x1.bb67ae8584caap-1 + }, + { // Entry 302 + 0x1.0c152382d73646bca69b88f0476618afp-1, + 0x1.bb67ae8584cabp-1 + }, + { // Entry 303 + 0x1.0c152382d73626bca69b88f043c4aa95p-1, + 0x1.bb67ae8584cacp-1 + }, + { // Entry 304 + 0.0, + 0x1.0p0 + }, + { // Entry 305 + 0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.0p0 + }, + { // Entry 306 + 0x1.00000000000000aaaaaaaaaaaaabddddp-26, + 0x1.fffffffffffffp-1 + }, + { // Entry 307 + 0x1.921fb52442d18469898cafc1ac62e44cp1, + -0x1.fffffffffffffp-1 + }, + { // Entry 308 + 0x1.55bcf3c4a46940e467961a6926261188p-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 309 + 0x1.3cb0785319b734306fa73e7cb82eb540p1, + -0x1.921fb54442d18p-1 + }, + { // Entry 310 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000001p-1022 + }, + { // Entry 311 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000001p-1022 + }, + { // Entry 312 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1022 + }, + { // Entry 313 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1022 + }, + { // Entry 314 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 315 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 316 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 317 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 318 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1073 + }, + { // Entry 319 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1073 + }, + { // Entry 320 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1074 + }, + { // Entry 321 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1074 + }, + { // Entry 322 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0.0 + }, + { // Entry 323 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0.0 + } +}; diff --git a/tests/math_data/acosf_intel_data.h b/tests/math_data/acosf_intel_data.h new file mode 100644 index 000000000..1dca9a6a2 --- /dev/null +++ b/tests/math_data/acosf_intel_data.h @@ -0,0 +1,982 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_acosf_intel_data[] = { + { // Entry 0 + 0x1.0c257a7050fc3cea24f3029a2ad2e815p1, + -0x1.003898p-1 + }, + { // Entry 1 + 0x1.0c5f16794284a814e57dd1aeaff2935dp1, + -0x1.01p-1 + }, + { // Entry 2 + 0x1.0c8b0a779009c3775eee358be153ba65p1, + -0x1.0198p-1 + }, + { // Entry 3 + 0x1.0c9c667630ac1465b612be91f8800305p1, + -0x1.01d4p-1 + }, + { // Entry 4 + 0x1.0ca922436a0ff902c6cea7bee39f2164p1, + -0x1.02p-1 + }, + { // Entry 5 + 0x1.0cb2657e0dce844aad10d5211ad1439cp1, + -0x1.0220p-1 + }, + { // Entry 6 + 0x1.0df8b9ffd527aa217e668eed5b98130dp1, + -0x1.0684p-1 + }, + { // Entry 7 + 0x1.0e677d6ca16a0aa3a9d0e12324b56b7fp1, + -0x1.08p-1 + }, + { // Entry 8 + 0x1.b3374800692e62ccb28232cf124403efp0, + -0x1.08p-3 + }, + { // Entry 9 + 0x1.0f93197d31106d9f9dba9ce88846e520p1, + -0x1.0cp-1 + }, + { // Entry 10 + 0x1.1123e56d1de1347426f6fa3a25b95c8cp1, + -0x1.1150dap-1 + }, + { // Entry 11 + 0x1.112abd8e560b61295f76c37854cc404dp1, + -0x1.1168p-1 + }, + { // Entry 12 + 0x1.e678d3006dfeea8466508e9c6fee67a4p0, + -0x1.4b5228p-2 + }, + { // Entry 13 + 0x1.979fd100670d576688cfaa662e894818p0, + -0x1.60p-6 + }, + { // Entry 14 + 0x1.921fb60042d08469899dab0c12058f59p0, + -0x1.77fffep-25 + }, + { // Entry 15 + 0x1.07828bffbd26a9f5425b3c7691d1145fp1, + -0x1.e0p-2 + }, + { // Entry 16 + 0x1.821faef0618143c8461491fc02984220p1, + -0x1.fc0152p-1 + }, + { // Entry 17 + 0x1.854911067d00b04f895724d24d2830a4p1, + -0x1.fd6d40p-1 + }, + { // Entry 18 + 0x1.892b29068f5ed60cbc8141ceb1ff1701p1, + -0x1.febf58p-1 + }, + { // Entry 19 + 0x1.892d7afb015ab37d6eccc7ff7772b447p1, + -0x1.febffep-1 + }, + { // Entry 20 + 0x1.922fb500357c0d0df814593ed0d8a6f6p0, + -0x1.fff77ep-13 + }, + { // Entry 21 + 0x1.d2cf54ff929e2d5be1416c50d9d79662p0, + -0x1.ffffc6p-3 + }, + { // Entry 22 + 0x1.516fecff6adfa313f251aed1e1a22f51p0, + 0x1.000080p-2 + }, + { // Entry 23 + 0x1.720a22ff97b83535612cba12029c626cp0, + 0x1.0000b0p-3 + }, + { // Entry 24 + 0x1.920fb5000026b79d1a03feae60b3ad18p0, + 0x1.000444p-12 + }, + { // Entry 25 + 0x1.0c0296fe93cb8e2df049d07fc1f71573p0, + 0x1.002020p-1 + }, + { // Entry 26 + 0x1.0becac0001ed95caabc8aaf7ac71baadp0, + 0x1.004614p-1 + }, + { // Entry 27 + 0x1.821444fffa502058fee64d29443f6673p0, + 0x1.008cp-4 + }, + { // Entry 28 + 0x1.921fa50002d18466bc2fbaf2dfbfe5c0p0, + 0x1.0444p-20 + }, + { // Entry 29 + 0x1.89fc5200006860d664f1779f6433bb6bp0, + 0x1.04612ep-5 + }, + { // Entry 30 + 0x1.066d06ff24cb086507a3136cbe17f53bp0, + 0x1.09bcp-1 + }, + { // Entry 31 + 0x1.004b2400184a6783cce37c77124fbad7p0, + 0x1.1424p-1 + }, + { // Entry 32 + 0x1.8dce2b0000002047ed2091cba08e645dp0, + 0x1.145f36p-6 + }, + { // Entry 33 + 0x1.ff4e43161f8e1568e3cef5ea955e27aep-1, + 0x1.1538p-1 + }, + { // Entry 34 + 0x1.fbfd9c80230bbece7389c23697ccf2fbp-1, + 0x1.18p-1 + }, + { // Entry 35 + 0x1.fb5652006b924c37b98c87daeb1d82ecp-1, + 0x1.188cp-1 + }, + { // Entry 36 + 0x1.fb42a430e00edbd5da24f337e1d23079p-1, + 0x1.189c76p-1 + }, + { // Entry 37 + 0x1.fa6f4f234b75986db2db5b5dc5c48cecp-1, + 0x1.194d22p-1 + }, + { // Entry 38 + 0x1.f77a1830c13bdad867d6c4b90616f090p-1, + 0x1.1bc49ep-1 + }, + { // Entry 39 + 0x1.f573250e683e3fad23db66c319161854p-1, + 0x1.1d74p-1 + }, + { // Entry 40 + 0x1.f265000c4bfabe772e7612fd97fed272p-1, + 0x1.1ffcp-1 + }, + { // Entry 41 + 0x1.f2602bf7f44f7de8784eb95d1beba89bp-1, + 0x1.1ffffep-1 + }, + { // Entry 42 + 0x1.f25de4fe24f7cf27cd316d2820678f2fp-1, + 0x1.2001e0p-1 + }, + { // Entry 43 + 0x1.f196d900045457fd3b54c3489c7c98bep-1, + 0x1.20a65cp-1 + }, + { // Entry 44 + 0x1.ecaf3b0005b758518583cf278db2ae82p-1, + 0x1.24b002p-1 + }, + { // Entry 45 + 0x1.6d695dffff9b6175c1d6960d5402e86cp0, + 0x1.24b148p-3 + }, + { // Entry 46 + 0x1.e9e3edfe52297b7e3bda43edcec28af5p-1, + 0x1.26f9cap-1 + }, + { // Entry 47 + 0x1.e8e04cff129c3819b1047ff1f1783828p-1, + 0x1.27cddap-1 + }, + { // Entry 48 + 0x1.e859c30003395e0da55cc100bf66122ep-1, + 0x1.283ba0p-1 + }, + { // Entry 49 + 0x1.e0c1d61d78cd94b9d9e6ec7562ec236fp-1, + 0x1.2e64bep-1 + }, + { // Entry 50 + 0x1.ddff723813e38a441c78c70496a65788p-1, + 0x1.309da4p-1 + }, + { // Entry 51 + 0x1.886e55001396e3f47532d8a787794f14p0, + 0x1.361910p-5 + }, + { // Entry 52 + 0x1.d4121631cf7cf3b517f471b456bebde0p-1, + 0x1.388980p-1 + }, + { // Entry 53 + 0x1.ca9495fb7b2ac583f7b612b659bb4d75p-1, + 0x1.3ffffep-1 + }, + { // Entry 54 + 0x1.c4957352aa82e9e602a75716c087d355p-1, + 0x1.44a8b6p-1 + }, + { // Entry 55 + 0x1.baa309030f555d66a64a3c50d49ca0e4p-1, + 0x1.4c49ecp-1 + }, + { // Entry 56 + 0x1.aea132fb898a11ba65de612cf32c7f6cp-1, + 0x1.5554dap-1 + }, + { // Entry 57 + 0x1.668f1f001255d1b8844c2bf7d8b804dep0, + 0x1.5ad6b0p-3 + }, + { // Entry 58 + 0x1.a633baf67d350b07cd61c177ab058a1ep-1, + 0x1.5b9108p-1 + }, + { // Entry 59 + 0x1.a37262f499382b280c29295c80043ef3p-1, + 0x1.5d95aap-1 + }, + { // Entry 60 + 0x1.a1945af39258c47400a7049b0fa1ced0p-1, + 0x1.5ef254p-1 + }, + { // Entry 61 + 0x1.a022c6f49c36ad7986e19f087aa933d9p-1, + 0x1.5fff12p-1 + }, + { // Entry 62 + 0x1.37fab2ffff9477b036f349972197c2bep0, + 0x1.612c3ap-2 + }, + { // Entry 63 + 0x1.65b292ffffcc939788e4b6d487fe8cdfp0, + 0x1.61a112p-3 + }, + { // Entry 64 + 0x1.9b8ff4fe183afaa47464c07e624d4445p-1, + 0x1.634db4p-1 + }, + { // Entry 65 + 0x1.96dc1701b6e0eb4ea1fcf021a2c3d38ap-1, + 0x1.66acaap-1 + }, + { // Entry 66 + 0x1.8e32af0006512524b5cd8aeb6e63c791p-1, + 0x1.6ccdd4p-1 + }, + { // Entry 67 + 0x1.804bbd016ca13c18200362deaa59fed2p-1, + 0x1.766c48p-1 + }, + { // Entry 68 + 0x1.4fd532ffffd0b23ae975cddd912591b4p-1, + 0x1.95c09ap-1 + }, + { // Entry 69 + 0x1.788c1b00007236e7c664a0714def797bp0, + 0x1.988b72p-4 + }, + { // Entry 70 + 0x1.426b63ffff75484d98afbacb71fd1a5ap-1, + 0x1.9dcaf8p-1 + }, + { // Entry 71 + 0x1.39de4eff95f8ac0807aca0b9cdd04a1dp-1, + 0x1.a2c556p-1 + }, + { // Entry 72 + 0x1.38f16effff9e4e67514d5d63a0a6557dp-1, + 0x1.a34d72p-1 + }, + { // Entry 73 + 0x1.1a76cb056f41ba8d9cd68713a9c2b0a3p-1, + 0x1.b40a52p-1 + }, + { // Entry 74 + 0x1.1ee3e8000050338f0fc9efe7ffb60bdcp0, + 0x1.bd8696p-2 + }, + { // Entry 75 + 0x1.02bedad86f18596f026ada4944e9c33dp-1, + 0x1.bfffe2p-1 + }, + { // Entry 76 + 0x1.02be9ce0b87cd1e5d09da2e0f0423bfap-1, + 0x1.c0p-1 + }, + { // Entry 77 + 0x1.ff8307c1ec4e07784126d1b4edd06823p-2, + 0x1.c17072p-1 + }, + { // Entry 78 + 0x1.fe02b6529120aa515e1832349a662dfep-2, + 0x1.c1cc5ep-1 + }, + { // Entry 79 + 0x1.759edd0162a92b1a62937275448bb090p0, + 0x1.c71c72p-4 + }, + { // Entry 80 + 0x1.e3689a62e92c874e13f58948bcfc3f8ep-2, + 0x1.c7fffep-1 + }, + { // Entry 81 + 0x1.5840c3ffff9a16c02ea4a0bc7608d63cp0, + 0x1.cb08aep-3 + }, + { // Entry 82 + 0x1.75490d00012add014fd20781cfa59149p0, + 0x1.cc70d8p-4 + }, + { // Entry 83 + 0x1.c2d789028d1b6bc4445359a77b66b22cp-2, + 0x1.cf2c3cp-1 + }, + { // Entry 84 + 0x1.befee4fdeaa4df1ce9fca3988ffc256fp-2, + 0x1.cffd38p-1 + }, + { // Entry 85 + 0x1.15851afc2ea1823412c4566b9741155ap0, + 0x1.def7b0p-2 + }, + { // Entry 86 + 0x1.54cf89ffff9b35c2d6f0eec1cdddd7fcp0, + 0x1.e5d44cp-3 + }, + { // Entry 87 + 0x1.736f86ffff8f1c8e0754f45ce46de0f0p0, + 0x1.e9d60ep-4 + }, + { // Entry 88 + 0x1.11bd758662c5b5d2186c1d298cf7f0b2p0, + 0x1.ec4746p-2 + }, + { // Entry 89 + 0x1.e0f8c30892663dadc7f43b5a93088423p-3, + 0x1.f1f1fep-1 + }, + { // Entry 90 + 0x1.e007dfb3698110ebd1dc3d45233e2c73p-3, + 0x1.f1fffep-1 + }, + { // Entry 91 + 0x1.d1fa8b029886129544d943c684a8ceb5p-3, + 0x1.f2cddcp-1 + }, + { // Entry 92 + 0x1.b4df86024b58e8e96534a6e26d324fa2p-3, + 0x1.f46522p-1 + }, + { // Entry 93 + 0x1.39d7acf9d6e48f39ad2962a89d3a8b86p-3, + 0x1.f9fffep-1 + }, + { // Entry 94 + 0x1.0d6dbe7f2e341b18c74019a99120f59cp0, + 0x1.fb5472p-2 + }, + { // Entry 95 + 0x1.0c5eb8f7ab8c9e685b9d22e45d04f3a2p0, + 0x1.ff0104p-2 + }, + { // Entry 96 + 0x1.0c55c92a56134b333fbf4af2c68a3854p0, + 0x1.ff1ffep-2 + }, + { // Entry 97 + 0x1.0c4e426ce9414f08c194150bdcbcf176p0, + 0x1.ff3a14p-2 + }, + { // Entry 98 + 0x1.8220dcff801a88159a8ca341c9eec793p0, + 0x1.ff85cap-5 + }, + { // Entry 99 + 0x1.0c17983d1def4e82b953bdfc7dff0dfbp0, + 0x1.fff77ep-2 + }, + { // Entry 100 + 0x1.0c159a71ec12c92e12b2592f98c68b03p0, + 0x1.fffe64p-2 + }, + { // Entry 101 + 0x1.800009000091ccd901171c6034e7b4d3p-9, + 0x1.ffff70p-1 + }, + { // Entry 102 + 0x1.901fb3feeb35c355e40ef2b73166eccep0, + 0x1.fffff0p-8 + }, + { // Entry 103 + 0x1.0c152382d73658465bb32e0f567ad116p0, + 0x1.p-1 + }, + { // Entry 104 + 0x1.0c152382d73658465bb32e0f567ad116p0, + 0x1.p-1 + }, + { // Entry 105 + 0x1.da2285254e79544ff70a5c48f856e1e2p-1, + 0x1.33b646p-1 + }, + { // Entry 106 + 0x1.921fb5d7457f84698994d9949c77055ep-1, + 0x1.6a09e6p-1 + }, + { // Entry 107 + 0x1.921fb5d7457f84698994d9949c77055ep-1, + 0x1.6a09e6p-1 + }, + { // Entry 108 + 0x1.359d26f93b6c32551ad5cf63b6549b57p1, + -0x1.80p-1 + }, + { // Entry 109 + 0x1.0c15248de0cb2e1ef42023dc8eb80020p-1, + 0x1.bb67aep-1 + }, + { // Entry 110 + 0x1.0c15248de0cb2e1ef42023dc8eb80020p-1, + 0x1.bb67aep-1 + }, + { // Entry 111 + 0x1.9ec4a1ffeb4da0d834c0a89f94a8e3d5p-8, + 0x1.fffd60p-1 + }, + { // Entry 112 + 0x1.921fb54442d18469898c851701b839a2p0, + 0x1.p-82 + }, + { // Entry 113 + 0x1.921fb54442d18461898cc51701b839a2p0, + 0x1.p-61 + }, + { // Entry 114 + 0x1.921fb54442918469898cc51701b839a1p0, + 0x1.p-42 + }, + { // Entry 115 + 0x1.921fb14442d184697ee21a6c570d422ap0, + 0x1.p-22 + }, + { // Entry 116 + 0x1.916ab0432d0f7d830e55bf5f9d23ea06p0, + 0x1.6a09e4p-9 + }, + { // Entry 117 + 0x1.916ab0422d0f3d82f6d4f8e3e0b0161ap0, + 0x1.6a09e6p-9 + }, + { // Entry 118 + 0x1.916ab0412d0efd82de9f2ced603175a1p0, + 0x1.6a09e8p-9 + }, + { // Entry 119 + 0x1.90b5aae7946fd751bb3f0dd6bd9c3a5fp0, + 0x1.6a09e4p-8 + }, + { // Entry 120 + 0x1.90b5aae5946dd74ebf3432e311714a32p0, + 0x1.6a09e6p-8 + }, + { // Entry 121 + 0x1.90b5aae3946bd74bbd811f5ec41a8d1cp0, + 0x1.6a09e8p-8 + }, + { // Entry 122 + 0x1.8f4b9db6c59531b64c9d1cca72a60098p0, + 0x1.6a09e4p-7 + }, + { // Entry 123 + 0x1.8f4b9db2c585315669ef5257a125885ep0, + 0x1.6a09e6p-7 + }, + { // Entry 124 + 0x1.8f4b9daec57530f659fe2c00c0828556p0, + 0x1.6a09e8p-7 + }, + { // Entry 125 + 0x1.8c776f8712faf332f0569d2e2b1c8af2p0, + 0x1.6a09e4p-6 + }, + { // Entry 126 + 0x1.8c776f7f127ae732aee9a38c00683c31p0, + 0x1.6a09e6p-6 + }, + { // Entry 127 + 0x1.8c776f7711fadb31032ed772064bfaa2p0, + 0x1.6a09e8p-6 + }, + { // Entry 128 + 0x1.86ce7491fa3b3515774393cc5a2ac8d1p0, + 0x1.6a09e4p-5 + }, + { // Entry 129 + 0x1.86ce7481f639b47d2b513503952d36b3p0, + 0x1.6a09e6p-5 + }, + { // Entry 130 + 0x1.86ce7471f23833d9868e1a1ce3223d95p0, + 0x1.6a09e8p-5 + }, + { // Entry 131 + 0x1.7b77855309115e60277dd0adb2d211ecp0, + 0x1.6a09e4p-4 + }, + { // Entry 132 + 0x1.7b778532e8e10e138c0530964bec6a45p0, + 0x1.6a09e6p-4 + }, + { // Entry 133 + 0x1.7b778512c8b0bd6b5bde9418a60c5362p0, + 0x1.6a09e8p-4 + }, + { // Entry 134 + 0x1.64a1446fb469cb3e8129d8af56970d03p0, + 0x1.6a09e4p-3 + }, + { // Entry 135 + 0x1.64a1442eae40ad38e802ab2319096ca4p0, + 0x1.6a09e6p-3 + }, + { // Entry 136 + 0x1.64a143eda8178c3be9e58f8805a8cd99p0, + 0x1.6a09e8p-3 + }, + { // Entry 137 + 0x1.359d279dda2c8084c57122774bedccd7p0, + 0x1.6a09e4p-2 + }, + { // Entry 138 + 0x1.359d271503b568f326aba2ee1163aa56p0, + 0x1.6a09e6p-2 + }, + { // Entry 139 + 0x1.359d268c2d3e35bc4ee9def9a883b8e9p0, + 0x1.6a09e8p-2 + }, + { // Entry 140 + 0x1.914201528c4dbab3248745b01274284cp0, + 0x1.bb67acp-9 + }, + { // Entry 141 + 0x1.914201518c4d5ab2ef2fcf50924bc48fp0, + 0x1.bb67aep-9 + }, + { // Entry 142 + 0x1.914201508c4cfab2b8faa420a6e84290p0, + 0x1.bb67b0p-9 + }, + { // Entry 143 + 0x1.90644cba8dd2bb7dbce6a8d00d628b45p0, + 0x1.bb67acp-8 + }, + { // Entry 144 + 0x1.90644cb88dcfbb77021b3572c356f712p0, + 0x1.bb67aep-8 + }, + { // Entry 145 + 0x1.90644cb68dccbb704062042fba36ba7fp0, + 0x1.bb67b0p-8 + }, + { // Entry 146 + 0x1.8ea8defe7ecb1a0937cbd2748d94a22cp0, + 0x1.bb67acp-7 + }, + { // Entry 147 + 0x1.8ea8defa7eb31931598919ba7b226aebp0, + 0x1.bb67aep-7 + }, + { // Entry 148 + 0x1.8ea8def67e9b185943d5855cab6b8f1ep0, + 0x1.bb67b0p-7 + }, + { // Entry 149 + 0x1.8b31df22a03bceab93822903a64e5616p0, + 0x1.bb67acp-6 + }, + { // Entry 150 + 0x1.8b31df1a9f7bb3a8ac8516ff422b02efp0, + 0x1.bb67aep-6 + }, + { // Entry 151 + 0x1.8b31df129ebb98a409a384915d8a1e46p0, + 0x1.bb67b0p-6 + }, + { // Entry 152 + 0x1.8442bbe6b2be94bbdc8bc8ce90846342p0, + 0x1.bb67acp-5 + }, + { // Entry 153 + 0x1.8442bbd6acbb32a90fcd44a67b9dbfa7p0, + 0x1.bb67aep-5 + }, + { // Entry 154 + 0x1.8442bbc6a6b7d088582c015aa929c60bp0, + 0x1.bb67b0p-5 + }, + { // Entry 155 + 0x1.765b4c70995cb6fd1a5785f37349503ep0, + 0x1.bb67acp-4 + }, + { // Entry 156 + 0x1.765b4c5068efa686a263561080ef83d3p0, + 0x1.bb67aep-4 + }, + { // Entry 157 + 0x1.765b4c303882959f56467ba4dca02931p0, + 0x1.bb67b0p-4 + }, + { // Entry 158 + 0x1.5a417e00d83327c69d7b1be72667fb7ap0, + 0x1.bb67acp-3 + }, + { // Entry 159 + 0x1.5a417dbf4a26629ee6bfd4a919213520p0, + 0x1.bb67aep-3 + }, + { // Entry 160 + 0x1.5a417d7dbc1999be28c737a49a8b1a97p0, + 0x1.bb67b0p-3 + }, + { // Entry 161 + 0x1.1f7a911c6589a2670979ee4bbce207acp0, + 0x1.bb67acp-2 + }, + { // Entry 162 + 0x1.1f7a908e64b4bd515e30fcb0d207f55cp0, + 0x1.bb67aep-2 + }, + { // Entry 163 + 0x1.1f7a900063dfb264c88f3cfb5460a189p0, + 0x1.bb67b0p-2 + }, + { // Entry 164 + 0x1.921fb54442d18469898cc51701b839a0p0, + 0x1.fffff8p-128 + }, + { // Entry 165 + 0x1.921fb54442d18469898cc51701b839a0p0, + 0x1.p-127 + }, + { // Entry 166 + 0x1.921fb54442d18469898cc51701b839a0p0, + 0x1.000004p-127 + }, + { // Entry 167 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.fffffcp-127 + }, + { // Entry 168 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.p-126 + }, + { // Entry 169 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.000002p-126 + }, + { // Entry 170 + 0x1.921fb54442d18469898cc51701b839a6p0, + -0x1.000002p-126 + }, + { // Entry 171 + 0x1.921fb54442d18469898cc51701b839a6p0, + -0x1.p-126 + }, + { // Entry 172 + 0x1.921fb54442d18469898cc51701b839a6p0, + -0x1.fffffcp-127 + }, + { // Entry 173 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p-149 + }, + { // Entry 174 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0.0 + }, + { // Entry 175 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p-149 + }, + { // Entry 176 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.fffffcp-127 + }, + { // Entry 177 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.p-126 + }, + { // Entry 178 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.000002p-126 + }, + { // Entry 179 + 0x1.921fb54042d18869898cc50c570daef7p0, + 0x1.fffffep-31 + }, + { // Entry 180 + 0x1.921fb54042d18469898cc50c570d8ef7p0, + 0x1.p-30 + }, + { // Entry 181 + 0x1.921fb54042d17c69898cc50c570d4ef7p0, + 0x1.000002p-30 + }, + { // Entry 182 + 0x1.921fb52442d1a469898cafc1aca2e44cp0, + 0x1.fffffep-28 + }, + { // Entry 183 + 0x1.921fb52442d18469898cafc1ac62e44cp0, + 0x1.p-27 + }, + { // Entry 184 + 0x1.921fb52442d14469898cafc1abe2e44bp0, + 0x1.000002p-27 + }, + { // Entry 185 + 0x1.921fb4c442d2046989876fc1bc62e43cp0, + 0x1.fffffep-26 + }, + { // Entry 186 + 0x1.921fb4c442d1846989876fc1ac62e44cp0, + 0x1.p-25 + }, + { // Entry 187 + 0x1.921fb4c442d0846989876fc18c62e40cp0, + 0x1.000002p-25 + }, + { // Entry 188 + 0x1.921bb54446c6d9befe954d8107655c32p0, + 0x1.fffffep-15 + }, + { // Entry 189 + 0x1.921bb54442c6d9bede954d9f87655473p0, + 0x1.p-14 + }, + { // Entry 190 + 0x1.921bb5443ac6d9be9e954d1c8764f2f6p0, + 0x1.000002p-14 + }, + { // Entry 191 + 0x1.8e1faa9d4b7732e531579341ed5c2713p0, + 0x1.fffffep-7 + }, + { // Entry 192 + 0x1.8e1faa994b5731653d597b63832a59bcp0, + 0x1.p-6 + }, + { // Entry 193 + 0x1.8e1faa914b172e64954b49fe82828e16p0, + 0x1.000002p-6 + }, + { // Entry 194 + 0x1.8a1f5fed5374d063d492faf2e989f5e8p0, + 0x1.fffffep-6 + }, + { // Entry 195 + 0x1.8a1f5fe55274a05ad2c29a890fc3a730p0, + 0x1.p-5 + }, + { // Entry 196 + 0x1.8a1f5fd550744042cce1237e8c427b18p0, + 0x1.000002p-5 + }, + { // Entry 197 + 0x1.821d0975b5a1701fd5e5e3dfab724e1dp0, + 0x1.fffffep-5 + }, + { // Entry 198 + 0x1.821d0965ad9b6b237e01535f8603a3acp0, + 0x1.p-4 + }, + { // Entry 199 + 0x1.821d09459d8f60fa85ddb8a001b22154p0, + 0x1.000002p-4 + }, + { // Entry 200 + 0x1.720a394c5e57d0f0286bae477c8095f1p0, + 0x1.fffffep-4 + }, + { // Entry 201 + 0x1.720a392c1d954851badbd6cd2d8e792cp0, + 0x1.p-3 + }, + { // Entry 202 + 0x1.720a38eb9c10358bb1e5dd06059098b3p0, + 0x1.000002p-3 + }, + { // Entry 203 + 0x1.51700e4e2e04d90fe58757f33d17c63ep0, + 0x1.fffffep-3 + }, + { // Entry 204 + 0x1.51700e0c14b24ff015655c5ec5a7aaa3p0, + 0x1.p-2 + }, + { // Entry 205 + 0x1.51700d87e20d30783166a45543964e85p0, + 0x1.000002p-2 + }, + { // Entry 206 + 0x1.0c152416a4706c25c04942fa8bb98d98p0, + 0x1.fffffep-2 + }, + { // Entry 207 + 0x1.0c152382d73658465bb32e0f567ad116p0, + 0x1.p-1 + }, + { // Entry 208 + 0x1.0c15225b3cc19cba57f7f9cdea23cba7p0, + 0x1.000002p-1 + }, + { // Entry 209 + 0x1.6a09e6861f3aadd17681ee6db029b4c0p-12, + 0x1.fffffep-1 + }, + { // Entry 210 + 0.0, + 0x1.p0 + }, + { // Entry 211 + 0x1.921fbb7f6d0f8469b1df49c77c9d4d49p-1, + 0x1.6a09e2p-1 + }, + { // Entry 212 + 0x1.921fb8ab59498469901db80ff0ba49ecp-1, + 0x1.6a09e4p-1 + }, + { // Entry 213 + 0x1.921fb5d7457f84698994d9949c77055ep-1, + 0x1.6a09e6p-1 + }, + { // Entry 214 + 0x1.921fb30331b1846987a41075fbfb2392p-1, + 0x1.6a09e8p-1 + }, + { // Entry 215 + 0x1.921fb02f1ddf846973aabe148b701d17p-1, + 0x1.6a09eap-1 + }, + { // Entry 216 + 0x1.0c152c8de0a83d8e4e5b1362f47a87c2p-1, + 0x1.bb67aap-1 + }, + { // Entry 217 + 0x1.0c15288de0c0a374f676f4425482c282p-1, + 0x1.bb67acp-1 + }, + { // Entry 218 + 0x1.0c15248de0cb2e1ef42023dc8eb80020p-1, + 0x1.bb67aep-1 + }, + { // Entry 219 + 0x1.0c15208de0c7dd8ba756ab16a2362af4p-1, + 0x1.bb67b0p-1 + }, + { // Entry 220 + 0x1.0c151c8de0b6b1ba701a8724928ef46ap-1, + 0x1.bb67b2p-1 + }, + { // Entry 221 + 0.0, + 0x1.p0 + }, + { // Entry 222 + 0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.p0 + }, + { // Entry 223 + 0x1.6a09e6861f3aadd17681ee6db029b4c0p-12, + 0x1.fffffep-1 + }, + { // Entry 224 + 0x1.921464f50ea08a941b0111078e4ab854p1, + -0x1.fffffep-1 + }, + { // Entry 225 + 0x1.55bcf295580042e4947664b4c398a672p-1, + 0x1.921fb6p-1 + }, + { // Entry 226 + 0x1.3cb0789eecd173b0646f2be9d0d21005p1, + -0x1.921fb6p-1 + }, + { // Entry 227 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.000002p-126 + }, + { // Entry 228 + 0x1.921fb54442d18469898cc51701b839a6p0, + -0x1.000002p-126 + }, + { // Entry 229 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.p-126 + }, + { // Entry 230 + 0x1.921fb54442d18469898cc51701b839a6p0, + -0x1.p-126 + }, + { // Entry 231 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.fffffcp-127 + }, + { // Entry 232 + 0x1.921fb54442d18469898cc51701b839a6p0, + -0x1.fffffcp-127 + }, + { // Entry 233 + 0x1.921fb54442d18469898cc51701b8399ep0, + 0x1.fffff8p-127 + }, + { // Entry 234 + 0x1.921fb54442d18469898cc51701b839a6p0, + -0x1.fffff8p-127 + }, + { // Entry 235 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p-148 + }, + { // Entry 236 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p-148 + }, + { // Entry 237 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p-149 + }, + { // Entry 238 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p-149 + }, + { // Entry 239 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0.0f + }, + { // Entry 240 + 0x1.921fb54442d18469898cc51701b839a2p0, + -0.0f + } +}; diff --git a/tests/math_data/acosh_intel_data.h b/tests/math_data/acosh_intel_data.h new file mode 100644 index 000000000..69552f8ac --- /dev/null +++ b/tests/math_data/acosh_intel_data.h @@ -0,0 +1,958 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_acosh_intel_data[] = { + { // Entry 0 + 0x1.52417db067f37fff78da0e59c786a63ep8, + 0x1.0000000000001p487 + }, + { // Entry 1 + 0x1.132def2b505ebfb768161d82be1f888dp9, + 0x1.0000000000001p793 + }, + { // Entry 2 + 0x1.0979b1dbc2e56800030ba9b06cf83f10p9, + 0x1.000000000001fp765 + }, + { // Entry 3 + 0x1.2c2fc595456a2807214d0087f4432d47p-23, + 0x1.000000000002cp0 + }, + { // Entry 4 + 0x1.7fffffffffff70000000000091ccccccp-23, + 0x1.0000000000048p0 + }, + { // Entry 5 + 0x1.fffffffffffaaaaaaaaaaad111111111p-22, + 0x1.00000000002p0 + }, + { // Entry 6 + 0x1.bb67ae854d5db16a878f9eb2adb06a0bp-16, + 0x1.000000018p0 + }, + { // Entry 7 + 0x1.69dca2563fe028021e9094ed47ed04ecp-15, + 0x1.00000003ff0p0 + }, + { // Entry 8 + 0x1.30fc1934f09c97ff42ffecad467897fdp6, + 0x1.000000cp109 + }, + { // Entry 9 + 0x1.6c275e69b28b4441b5463b5476d53758p-10, + 0x1.0000103p0 + }, + { // Entry 10 + 0x1.b1e5d906d5ed79cefcae2668c5f67c8ap-10, + 0x1.000016fb5b0c4p0 + }, + { // Entry 11 + 0x1.deee9cb901ed887353ce5684cd29c83ep-10, + 0x1.00001c0p0 + }, + { // Entry 12 + 0x1.deee5b3e7d4c333cbcba1f16d8473a1ep-8, + 0x1.0001cp0 + }, + { // Entry 13 + 0x1.ffffaaaad110fa35b2e863129439b017p-8, + 0x1.00020p0 + }, + { // Entry 14 + 0x1.338a7b0a9bbf4515d91fc94b631d949bp-7, + 0x1.0002e2ec3f80cp0 + }, + { // Entry 15 + 0x1.398892de8eab46dddf895e6b2df71e14p-7, + 0x1.00030p0 + }, + { // Entry 16 + 0x1.bb66d0d2d8d230fe173d0d972c5321a0p-7, + 0x1.00060p0 + }, + { // Entry 17 + 0x1.ffdea9ecfe4a23fd37592420dd1e4aecp-7, + 0x1.0007ff0p0 + }, + { // Entry 18 + 0x1.6a0803b6df85a5a6a28a7d24344fd7bcp-6, + 0x1.001p0 + }, + { // Entry 19 + 0x1.13b744b6fc24081df6488fc0a0521447p-5, + 0x1.00251f4dbf0f3p0 + }, + { // Entry 20 + 0x1.5164c776eb38b7a1b4e392209f7cd76cp0, + 0x1.00380p1 + }, + { // Entry 21 + 0x1.74927a59064b972c627d0f8dbf3a208bp-5, + 0x1.0043ca3ea0570p0 + }, + { // Entry 22 + 0x1.e9b61fa83327114a9499c4386197f7ecp-5, + 0x1.007522166b864p0 + }, + { // Entry 23 + 0x1.4a6b504ae30bf818ff58df731784a2e5p-4, + 0x1.00d55a07e7d7dp0 + }, + { // Entry 24 + 0x1.6e48df1bd304d83259b7350ef19d654ap-4, + 0x1.010636f08d98cp0 + }, + { // Entry 25 + 0x1.86cc84485647b80c608bfc977c465c3ep-4, + 0x1.012a83d511968p0 + }, + { // Entry 26 + 0x1.8c96a62f43fda829f2c6aa64fc7c3f52p-4, + 0x1.01336eaa27065p0 + }, + { // Entry 27 + 0x1.c96ae158c261681aae2f1ac5b1e7b53dp-4, + 0x1.01991427286a7p0 + }, + { // Entry 28 + 0x1.fd303bdcd51d207b38fd033ccca4ebe0p-4, + 0x1.01fb0b7471c13p0 + }, + { // Entry 29 + 0x1.01fbf091ad42880b50591ac5a3c25a55p-3, + 0x1.0208a7bec3ef6p0 + }, + { // Entry 30 + 0x1.2142780a5b4da80572f1f1e417c281e0p-3, + 0x1.028ec4a860985p0 + }, + { // Entry 31 + 0x1.c6f3debc6b9baf8fd4952d3e75007116p4, + 0x1.040p40 + }, + { // Entry 32 + 0x1.b776eaca67a8d81470ca11e3c19618f4p-3, + 0x1.05ea9e87359f0p0 + }, + { // Entry 33 + 0x1.c738f388674bbffeab4246796640039ap-3, + 0x1.0659a435f099fp0 + }, + { // Entry 34 + 0x1.f33d4f7790f6982e3cae58a8f5a4c85cp-3, + 0x1.07a4d97d8d94cp0 + }, + { // Entry 35 + 0x1.f6ac7bad8b4ac7489787663c51fd8389p-3, + 0x1.07cp0 + }, + { // Entry 36 + 0x1.fc25c7d91809f80c15ad7b8a098904e9p-3, + 0x1.07ebaac665ee8p0 + }, + { // Entry 37 + 0x1.14d72e562b86f80b92db76914c1a8483p-2, + 0x1.0969a517e7390p0 + }, + { // Entry 38 + 0x1.3724eb536abd17f3549fde7c0a8bcc78p4, + 0x1.0a05028140ap27 + }, + { // Entry 39 + 0x1.424e1a83309277fc74e6252f9ccff51ep4, + 0x1.0b31d5526e304p28 + }, + { // Entry 40 + 0x1.42dc24aefea4a00000f4c4c42f7676bdp-2, + 0x1.0cd48770c2348p0 + }, + { // Entry 41 + 0x1.aa3dbe48def817845faa61fd5cb0449ap-2, + 0x1.168p0 + }, + { // Entry 42 + 0x1.6c0ff5895036d14a54136cb97458c3a1p0, + 0x1.18c6318c6318cp1 + }, + { // Entry 43 + 0x1.14aeaf2cf882b800017816b0634a51c7p1, + 0x1.1999999a7f91bp2 + }, + { // Entry 44 + 0x1.c636c1b2700c78000114e5846e56f02ap-2, + 0x1.1999999abcb84p0 + }, + { // Entry 45 + 0x1.c636c1b55e89800000206f2d5b63746ep-2, + 0x1.1999999b12b2fp0 + }, + { // Entry 46 + 0x1.c636c1b787628800007e1a95058e28f9p-2, + 0x1.1999999b52092p0 + }, + { // Entry 47 + 0x1.c636c1bc867dc0000156a1eae635a35ep-2, + 0x1.1999999be4936p0 + }, + { // Entry 48 + 0x1.c636c1c7da2afffffeb98fc860cd7ceep-2, + 0x1.1999999d30c68p0 + }, + { // Entry 49 + 0x1.c6d30f1d087751157fa51c32440dd291p-2, + 0x1.19ab84ff770f9p0 + }, + { // Entry 50 + 0x1.38138021525b17f5a7d79c6787045fbap4, + 0x1.19f9842cbe9dap27 + }, + { // Entry 51 + 0x1.cff8efdd68b8b000088f99302f13fd55p-2, + 0x1.1abb14934c112p0 + }, + { // Entry 52 + 0x1.4345ce06726eeffd3deec654e93bb704p4, + 0x1.1bd9ff3818250p28 + }, + { // Entry 53 + 0x1.da627b574124041f55d0b8534c07caa2p-2, + 0x1.1bf734206562ep0 + }, + { // Entry 54 + 0x1.dcfa110e4d2be4e60f4c2c7b792aa979p-2, + 0x1.1c4711c4711c4p0 + }, + { // Entry 55 + 0x1.e4f600bca9b43c7505820f34625aedf8p-2, + 0x1.1d4p0 + }, + { // Entry 56 + 0x1.435af0cd8723f7fc0f030744eaf5e4f3p4, + 0x1.1d51ee6904f05p28 + }, + { // Entry 57 + 0x1.f66cd8a589f9e801dcbbaba95fa2db1bp-2, + 0x1.1f7p0 + }, + { // Entry 58 + 0x1.fb04da24bd3263c3c19595829f887623p-2, + 0x1.2006d9ba6b627p0 + }, + { // Entry 59 + 0x1.fb4d685e13d1738553151c2a08436513p-2, + 0x1.201034be9b997p0 + }, + { // Entry 60 + 0x1.fd9747d199d9e34b5ee5a758b3a33b2ep-2, + 0x1.205bf510b5de4p0 + }, + { // Entry 61 + 0x1.fde64921f2be26d349af15c65d2baec8p-2, + 0x1.206633589fb42p0 + }, + { // Entry 62 + 0x1.ff88ab5b57988a62645ec106c4097863p-2, + 0x1.209c8ea824394p0 + }, + { // Entry 63 + 0x1.ffaa5d190b3e38a2f5978b0cbdef37c0p-2, + 0x1.20a0f16a1f3a8p0 + }, + { // Entry 64 + 0x1.43d0ccb7eaf817fbfc58bb2d606c246ap4, + 0x1.25a62ecd4ac96p28 + }, + { // Entry 65 + 0x1.25942d7ea38d3037fdf235c374a0a10ap-1, + 0x1.2b4p0 + }, + { // Entry 66 + 0x1.1eb90fcb975c97e99a03cd4e9ecf7efep1, + 0x1.30000000e4cffp2 + }, + { // Entry 67 + 0x1.1ed61acd1cef37f72ebe2150d786654ap1, + 0x1.304376382bfc1p2 + }, + { // Entry 68 + 0x1.1f962e5c168007edbcf9aaa8334a7be8p1, + 0x1.32032a240af45p2 + }, + { // Entry 69 + 0x1.1fda546800eb981039b042c0a6205a51p1, + 0x1.32a2a7cec80a3p2 + }, + { // Entry 70 + 0x1.1ff53fa69f9f6813df120c0fc9a7c82fp1, + 0x1.32e1bf98770d2p2 + }, + { // Entry 71 + 0x1.85a6fe5151e877fffe89df73281dac1ep0, + 0x1.333333335c4e7p1 + }, + { // Entry 72 + 0x1.203dae008f42281336198904d353a9d3p1, + 0x1.338bc6d217390p2 + }, + { // Entry 73 + 0x1.204200d0ad3cb80822eaaf1a8fd400eep1, + 0x1.3395f01ec30aep2 + }, + { // Entry 74 + 0x1.2180ae42458557f160869fa88bfdd767p1, + 0x1.3686b30ec28f9p2 + }, + { // Entry 75 + 0x1.22824d7775d127ed6249aedcd653a683p1, + 0x1.38ecbb448bb60p2 + }, + { // Entry 76 + 0x1.24d7aa57e09e200f0fa51b8e122a50d1p1, + 0x1.3e8fa3e8fa3e8p2 + }, + { // Entry 77 + 0x1.24ead0998b45e80c15775fe412fa3476p1, + 0x1.3ebe5740abf57p2 + }, + { // Entry 78 + 0x1.9119c13a31baffe46835ab2266588de9p0, + 0x1.4p1 + }, + { // Entry 79 + 0x1.638eab49216f8ee9217f986540739282p-1, + 0x1.404p0 + }, + { // Entry 80 + 0x1.663100c2a4fe2251bc802e040c21517cp-1, + 0x1.413e827d04fa0p0 + }, + { // Entry 81 + 0x1.2a8a45eb147ce80084d5dc0629061b72p1, + 0x1.4cc5baf5c8392p2 + }, + { // Entry 82 + 0x1.834b2cacec9cf00000bf6612e57cbe8fp-1, + 0x1.4ccccccd6481ap0 + }, + { // Entry 83 + 0x1.834b2cb510a9c7fffe91256bde54bbddp-1, + 0x1.4cccccd0c613dp0 + }, + { // Entry 84 + 0x1.869f689d41e5ae1cbc4db884da78fec0p-1, + 0x1.4e309016165fcp0 + }, + { // Entry 85 + 0x1.dfcd5df1bc2707ffd5ca5383f4cce6e7p1, + 0x1.53d4f53d4f53cp4 + }, + { // Entry 86 + 0x1.2e3bb6dd0b0ae0067c5f911faaaa78ddp1, + 0x1.5655956559564p2 + }, + { // Entry 87 + 0x1.30af83c42c157ff130f6bbdfb23ca759p1, + 0x1.5cd735cd735ccp2 + }, + { // Entry 88 + 0x1.af87977409910c12e8a8802fd87c6abfp-1, + 0x1.6070381c0e040p0 + }, + { // Entry 89 + 0x1.3bacc53061f3b7f7d9035c57315345fbp4, + 0x1.6118461184610p27 + }, + { // Entry 90 + 0x1.b2066fe0952af7fd5b1a52e397d20b42p-1, + 0x1.619f89771feaap0 + }, + { // Entry 91 + 0x1.b243d68391f9d80c17216d59e4919bafp-1, + 0x1.61bccd7f349c4p0 + }, + { // Entry 92 + 0x1.bbe95ab6d25078000176eb5757518ce0p-1, + 0x1.6666666a4d8cap0 + }, + { // Entry 93 + 0x1.bce47c50e597e80168ea6ea197b7c5fbp-1, + 0x1.66e198e40a07cp0 + }, + { // Entry 94 + 0x1.c4b434e7858417fe5522bdc24515e3abp-1, + 0x1.6ac2abcce660fp0 + }, + { // Entry 95 + 0x1.b4b0591fab93e80c344916601f3f98fep0, + 0x1.6c0p1 + }, + { // Entry 96 + 0x1.c9e777034bed37fc519e004af23c57ecp-1, + 0x1.6d63c0cb542d6p0 + }, + { // Entry 97 + 0x1.cda9310b784e5000aeae7baa2dcc4cfcp-1, + 0x1.6f5p0 + }, + { // Entry 98 + 0x1.d169426b135d0bbab276664d9f830c71p-1, + 0x1.7140727bb4fa3p0 + }, + { // Entry 99 + 0x1.d740fdf53668a1bcea81609db9e0db68p-1, + 0x1.745p0 + }, + { // Entry 100 + 0x1.bc01207bd25b6801df8e788fb5f41357p0, + 0x1.75e32cf383997p1 + }, + { // Entry 101 + 0x1.ecc2caec5160436e6ef0c4dfd37de905p-1, + 0x1.7fffffffffffdp0 + }, + { // Entry 102 + 0x1.ecc2caf0a75cdffffe93419822098956p-1, + 0x1.800000026c803p0 + }, + { // Entry 103 + 0x1.ee3b06ecea5ed564406442d07861a73fp-1, + 0x1.80d2ba083b446p0 + }, + { // Entry 104 + 0x1.f314c9cb875be7f25915ef6fe8147ea7p-1, + 0x1.839p0 + }, + { // Entry 105 + 0x1.f4ba2f1cad8f475dfb4fa048b5cece75p-1, + 0x1.848p0 + }, + { // Entry 106 + 0x1.fbd18e6aa534eed05007aee3d66b990ap-1, + 0x1.8895b461da6c6p0 + }, + { // Entry 107 + 0x1.9bdb225dace4b0005714c41371dff0c4p1, + 0x1.90240902409p3 + }, + { // Entry 108 + 0x1.0c0616dbd301e000016d7f0d89731675p0, + 0x1.9999999ac11f3p0 + }, + { // Entry 109 + 0x1.d4d19d0a825927fe1b0973d8b461e8edp0, + 0x1.99cp1 + }, + { // Entry 110 + 0x1.4c703d5db8586802badfb82b797d3dc0p1, + 0x1.b0020p2 + }, + { // Entry 111 + 0x1.1efb699cdcd33801fb03b9466fdd60fap0, + 0x1.b26c9b26c9b26p0 + }, + { // Entry 112 + 0x1.2d72a3ace48437fde986eb51409ae273p0, + 0x1.c6f61e8a542a8p0 + }, + { // Entry 113 + 0x1.f1b4656fac2777ff0b0732f4ed9eaaf0p0, + 0x1.c86p1 + }, + { // Entry 114 + 0x1.5550540d3de547fce11196feb22aa2e1p1, + 0x1.ceb1dd915e476p2 + }, + { // Entry 115 + 0x1.e4db571e008197fe9e09c3aa26aa7fccp3, + 0x1.d0741d0741d04p20 + }, + { // Entry 116 + 0x1.07eac9f6dafa57ff028d331cb48f9038p3, + 0x1.dd374dd374dd0p10 + }, + { // Entry 117 + 0x1.e784c2b3e554f800004d96919f791652p5, + 0x1.e3920fcba08c5p86 + }, + { // Entry 118 + 0x1.e4bcd2d77ead3ffffa7087c93f5678b5p2, + 0x1.e6bd865d59181p9 + }, + { // Entry 119 + 0x1.09ba252166ce8800003aa2a95746a4aap3, + 0x1.f8fc7e3f1f880p10 + }, + { // Entry 120 + 0x1.4e6b108abebaefffc5c616605660da14p0, + 0x1.fb5p0 + }, + { // Entry 121 + 0x1.2a66594f2e5b0fffff7ff379f5e243a7p9, + 0x1.fff003fffffffp859 + }, + { // Entry 122 + 0x1.081ca3e524daf5a4d1e9e6092a37c659p1, + 0x1.fff7fffffffffp1 + }, + { // Entry 123 + 0x1.081ce5ff7fcfd7ff29362493ef56165fp1, + 0x1.fff8fffffffffp1 + }, + { // Entry 124 + 0x1.6262acbb698ca80507700d5ef3d0c5adp1, + 0x1.fffcfffffffffp2 + }, + { // Entry 125 + 0x1.8e8f43d38040fffeda732c8d164c1eb5p8, + 0x1.fffffbbffffffp573 + }, + { // Entry 126 + 0x1.c55179395a000800ddc334790469d4dep7, + 0x1.fffffe3ffffffp325 + }, + { // Entry 127 + 0x1.27a094edef0c27ffb3d9ba9f6d2910a5p9, + 0x1.fffffe3ffffffp851 + }, + { // Entry 128 + 0x1.27f94df9eaf50fbc89beac79392b0a20p9, + 0x1.fffffe3ffffffp852 + }, + { // Entry 129 + 0x1.bb7d2fe3dbf7f7fee03edebc7a01d599p1, + 0x1.fffffffbfbfffp3 + }, + { // Entry 130 + 0x1.62e3efef359dffffb4e2975678a61bf4p2, + 0x1.ffffffff8ffffp6 + }, + { // Entry 131 + 0x1.86ef5ccdfa1b17fe78c886a9d8b2faaep7, + 0x1.ffffffffddfffp280 + }, + { // Entry 132 + 0x1.62e3efef419e17fffe6390b9f02bcc28p2, + 0x1.ffffffffeffffp6 + }, + { // Entry 133 + 0x1.62e3efef439dffffd26b10f8467623p2, + 0x1.ffffffffffff1p6 + }, + { // Entry 134 + 0x1.419ecb712c4808035decb58386841d9dp4, + 0x1.ffffffffffff7p27 + }, + { // Entry 135 + 0x1.633ce8fb9f87dafc69ac5909d3e5a6d9p9, + 0x1.ffffffffffffap1023 + }, + { // Entry 136 + 0x1.62e3efef439e1800026ba0fa2d3cdb98p2, + 0x1.ffffffffffffdp6 + }, + { // Entry 137 + 0x1.5ca72d17ed3ea80089ae65dfafc1e2b2p8, + 0x1.ffffffffffffep501 + }, + { // Entry 138 + 0.0, + 0x1.0p0 + }, + { // Entry 139 + 0x1.9f323ecbf9848bf835a433c0ce9aed17p-2, + 0x1.1555555555555p0 + }, + { // Entry 140 + 0x1.23a4fbcdbc0835819feea2ceae6532bdp-1, + 0x1.2aaaaaaaaaaaap0 + }, + { // Entry 141 + 0x1.62e42fefa39ec8ace91cbc855a44bdf6p-1, + 0x1.3ffffffffffffp0 + }, + { // Entry 142 + 0x1.973a2448a635d2473522e0e7015d28f1p-1, + 0x1.5555555555554p0 + }, + { // Entry 143 + 0x1.c484603eb09c0970ffa86254d6babfa5p-1, + 0x1.6aaaaaaaaaaa9p0 + }, + { // Entry 144 + 0x1.ecc2caec5160600d94b684cdb2112543p-1, + 0x1.7fffffffffffep0 + }, + { // Entry 145 + 0.0, + 0x1.0p0 + }, + { // Entry 146 + 0x1.79072028586b73758a4f622cafb07d48p-1, + 0x1.489a5796de0b2p0 + }, + { // Entry 147 + 0x1.94d80f30e93e5e29997af8fe4481c88cp-1, + 0x1.54494203c1934p0 + }, + { // Entry 148 + 0x1.cddcc71de32ab5ac57c13ba40ec7963bp-1, + 0x1.6f6a8be981db0p0 + }, + { // Entry 149 + 0x1.8fcb9d874c026f2c12450971bb1bddfcp-1, + 0x1.521792ea7d26ep0 + }, + { // Entry 150 + 0x1.8ca5043b79263a06aa0f70d7d0bda22bp-2, + 0x1.13723f2585da2p0 + }, + { // Entry 151 + 0x1.ecc2caec5160994be04204a968c7020dp-1, + 0x1.8p0 + }, + { // Entry 152 + 0x1.ecc2caec5160994be04204a968c7020dp-1, + 0x1.8p0 + }, + { // Entry 153 + 0x1.0893ff7cee46eb16015477f9b6695819p0, + 0x1.9555555555555p0 + }, + { // Entry 154 + 0x1.193ea7aad030a176a4198d5505137cb5p0, + 0x1.aaaaaaaaaaaaap0 + }, + { // Entry 155 + 0x1.28a7cbb850061ed8cb452c64c52218c9p0, + 0x1.bffffffffffffp0 + }, + { // Entry 156 + 0x1.37030b8cc93542ccc38cca9157b0f26dp0, + 0x1.d555555555554p0 + }, + { // Entry 157 + 0x1.44779e1ebd847257f6c077cb3350b457p0, + 0x1.eaaaaaaaaaaa9p0 + }, + { // Entry 158 + 0x1.5124271980433744c1063fe570409b9ap0, + 0x1.ffffffffffffep0 + }, + { // Entry 159 + 0x1.ecc2caec5160994be04204a968c7020dp-1, + 0x1.8p0 + }, + { // Entry 160 + 0x1.0c2423fc001c38dcbc9cd1946000f563p0, + 0x1.99bf25234bccap0 + }, + { // Entry 161 + 0x1.197e89ca48809b3746de418fbf0ee383p0, + 0x1.aaffe573bd7bbp0 + }, + { // Entry 162 + 0x1.261b72900d136b90cbef8fa9a3bbd85ap0, + 0x1.bc5ccd71976cbp0 + }, + { // Entry 163 + 0x1.fbbfb95324eb186f3d677aed30c35884p-1, + 0x1.888b56d86b26ep0 + }, + { // Entry 164 + 0x1.4cf1a48b4bdba9043707a45b35f0d529p0, + 0x1.f8cc6db1bbcb4p0 + }, + { // Entry 165 + 0x1.51242719804349be684bd0188d52ceccp0, + 0x1.0p1 + }, + { // Entry 166 + 0x1.18080dd3171b6c031a9b576be63b6d4cp6, + 0x1.0p100 + }, + { // Entry 167 + 0x1.1869a6d0fc0c8734cff5be4c994a623cp6, + 0x1.199999999999ap100 + }, + { // Entry 168 + 0x1.18c2c053a6401fdf8f801885ecec896ep6, + 0x1.3333333333334p100 + }, + { // Entry 169 + 0x1.1914b70ad53709fc02e60c9931465d1cp6, + 0x1.4cccccccccccep100 + }, + { // Entry 170 + 0x1.19609a00a84eb5469b8a14575cfcffdcp6, + 0x1.6666666666668p100 + }, + { // Entry 171 + 0x1.19a74011e314f1179b5984282f925681p6, + 0x1.8000000000002p100 + }, + { // Entry 172 + 0x1.19e95674b98dd93c68942542ae48ec14p6, + 0x1.999999999999cp100 + }, + { // Entry 173 + 0x1.1a276ad639b09e9294f7218ef587ce6cp6, + 0x1.b333333333336p100 + }, + { // Entry 174 + 0x1.1a61f2927239a4e5d75ab70952b3595ap6, + 0x1.cccccccccccd0p100 + }, + { // Entry 175 + 0x1.1a994ff83eca77f3ef91866a7b8540e2p6, + 0x1.e66666666666ap100 + }, + { // Entry 176 + 0x1.1acdd632f662a9e9c9c2e63a464b3927p6, + 0x1.0p101 + }, + { // Entry 177 + 0x1.16a529a32777cd0fc3079004b633875fp7, + 0x1.0p200 + }, + { // Entry 178 + 0x1.16d5f62219f05aa89db4c3750fbb01d6p7, + 0x1.199999999999ap200 + }, + { // Entry 179 + 0x1.170282e36f0a26fdfd79f091b98c1570p7, + 0x1.3333333333334p200 + }, + { // Entry 180 + 0x1.172b7e3f06859c0c372cea9b5bb8ff47p7, + 0x1.4cccccccccccep200 + }, + { // Entry 181 + 0x1.17516fb9f01171b1837eee7a719450a6p7, + 0x1.6666666666668p200 + }, + { // Entry 182 + 0x1.1774c2c28d748f9a0366a662dadefbf9p7, + 0x1.8000000000002p200 + }, + { // Entry 183 + 0x1.1795cdf3f8b103ac6a03f6f01a3a46c3p7, + 0x1.999999999999cp200 + }, + { // Entry 184 + 0x1.17b4d824b8c26657803575163dd9b7efp7, + 0x1.b333333333336p200 + }, + { // Entry 185 + 0x1.17d21c02d506e98121673fd36c6f7d66p7, + 0x1.cccccccccccd0p200 + }, + { // Entry 186 + 0x1.17edcab5bb4f53082d82a78400d8712ap7, + 0x1.e66666666666ap200 + }, + { // Entry 187 + 0x1.18080dd3171b6c031a9b576be63b6d4cp7, + 0x1.0p201 + }, + { // Entry 188 + 0x1.5aeb8fdc01b221605c35ac9eb3b88349p9, + 0x1.0p1000 + }, + { // Entry 189 + 0x1.5af7c2fbbe5044c692e0f97aca1a61e7p9, + 0x1.199999999999ap1000 + }, + { // Entry 190 + 0x1.5b02e62c1396b7dbead244c1f48ea6cdp9, + 0x1.3333333333334p1000 + }, + { // Entry 191 + 0x1.5b0d2502f975951f793f03445d19e143p9, + 0x1.4cccccccccccep1000 + }, + { // Entry 192 + 0x1.5b16a161b3d88a88cc53843c2290b59bp9, + 0x1.6666666666668p1000 + }, + { // Entry 193 + 0x1.5b1f7623db315202ec4d72363ce36070p9, + 0x1.8000000000002p1000 + }, + { // Entry 194 + 0x1.5b27b8f036006f0785f4c6598cba3322p9, + 0x1.999999999999cp1000 + }, + { // Entry 195 + 0x1.5b2f7b7c6604c7b24b8125e315a20f6dp9, + 0x1.b333333333336p1000 + }, + { // Entry 196 + 0x1.5b36cc73ed15e87cb3cd9892614780cbp9, + 0x1.cccccccccccd0p1000 + }, + { // Entry 197 + 0x1.5b3db820a6a802de76d4727e8661bdbcp9, + 0x1.e66666666666ap1000 + }, + { // Entry 198 + 0x1.5b4448e7fd9b091d321a9e787fba7cc4p9, + 0x1.0p1001 + }, + { // Entry 199 + 0.0, + 0x1.0p0 + }, + { // Entry 200 + 0x1.ecc2caec51607cacba7c44bb8e7ed846p-1, + 0x1.7ffffffffffffp0 + }, + { // Entry 201 + 0x1.ecc2caec5160994be04204a968c7020dp-1, + 0x1.8p0 + }, + { // Entry 202 + 0x1.ecc2caec5160b5eb0607c49740e9a298p-1, + 0x1.8000000000001p0 + }, + { // Entry 203 + 0x1.512427198043408194a907fefefaf99cp0, + 0x1.fffffffffffffp0 + }, + { // Entry 204 + 0x1.51242719804349be684bd0188d52ceccp0, + 0x1.0p1 + }, + { // Entry 205 + 0x1.5124271980435c380f91604ba8dadeb9p0, + 0x1.0000000000001p1 + }, + { // Entry 206 + 0x1.081eb4b42159138d780ef9da45476c93p1, + 0x1.fffffffffffffp1 + }, + { // Entry 207 + 0x1.081eb4b4215917af0d37af17fbf93f73p1, + 0x1.0p2 + }, + { // Entry 208 + 0x1.081eb4b421591ff23789199368f32314p1, + 0x1.0000000000001p2 + }, + { // Entry 209 + 0x1.1542457337d4299c6b73c89d8469a171p4, + 0x1.fffffffffffffp23 + }, + { // Entry 210 + 0x1.1542457337d42a1c6b73c89d84aba171p4, + 0x1.0p24 + }, + { // Entry 211 + 0x1.1542457337d42b1c6b73c89d8523a171p4, + 0x1.0000000000001p24 + }, + { // Entry 212 + 0x1.3687a9f1af2b145ca14e7a4a06e617b2p4, + 0x1.fffffffffffffp26 + }, + { // Entry 213 + 0x1.3687a9f1af2b14dca14e7a4a06e917b2p4, + 0x1.0p27 + }, + { // Entry 214 + 0x1.3687a9f1af2b15dca14e7a4a06e317b2p4, + 0x1.0000000000001p27 + }, + { // Entry 215 + 0x1.419ecb712c480c035decb58387261d9dp4, + 0x1.fffffffffffffp27 + }, + { // Entry 216 + 0x1.419ecb712c480c835decb58387285d9dp4, + 0x1.0p28 + }, + { // Entry 217 + 0x1.419ecb712c480d835decb5838720dd9dp4, + 0x1.0000000000001p28 + }, + { // Entry 218 + 0x1.62e42fefa39ef31793c7673007e4ed5ep5, + 0x1.fffffffffffffp62 + }, + { // Entry 219 + 0x1.62e42fefa39ef35793c7673007e5ed5ep5, + 0x1.0p63 + }, + { // Entry 220 + 0x1.62e42fefa39ef3d793c7673007e1ed5ep5, + 0x1.0000000000001p63 + }, + { // Entry 221 + 0x1.601e678fc457b550e49fd861a7d5a183p6, + 0x1.fffffffffffffp125 + }, + { // Entry 222 + 0x1.601e678fc457b570e49fd861a7d62183p6, + 0x1.0p126 + }, + { // Entry 223 + 0x1.601e678fc457b5b0e49fd861a7d42183p6, + 0x1.0000000000001p126 + }, + { // Entry 224 + 0x1.628b76e3a7b60b96bde275563be3e3e3p9, + 0x1.fffffffffffffp1021 + }, + { // Entry 225 + 0x1.628b76e3a7b60b9abde275563be3f3e3p9, + 0x1.0p1022 + }, + { // Entry 226 + 0x1.628b76e3a7b60ba2bde275563be3b3e3p9, + 0x1.0000000000001p1022 + }, + { // Entry 227 + 0x1.633ce8fb9f87db1069ac5909d3e7d6d9p9, + 0x1.fffffffffffffp1023 + }, + { // Entry 228 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 229 + 0x1.633ce8fb9f87db1069ac5909d3e7d6d9p9, + 0x1.fffffffffffffp1023 + }, + { // Entry 230 + 0x1.633ce8fb9f87db0c69ac5909d3e7a6d9p9, + 0x1.ffffffffffffep1023 + }, + { // Entry 231 + 0x1.cfc02f90106c17a3fd778845de3494b4p0, + 0x1.921fb54442d18p1 + }, + { // Entry 232 + 0x1.05f23c6cbaf30c042e32011989ade594p0, + 0x1.921fb54442d18p0 + }, + { // Entry 233 + 0x1.6a09e667f3bcc725fb1d3377443ae618p-26, + 0x1.0000000000001p0 + }, + { // Entry 234 + 0.0, + 0x1.0p0 + } +}; diff --git a/tests/math_data/acoshf_intel_data.h b/tests/math_data/acoshf_intel_data.h new file mode 100644 index 000000000..2541aee54 --- /dev/null +++ b/tests/math_data/acoshf_intel_data.h @@ -0,0 +1,662 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_acoshf_intel_data[] = { + { // Entry 0 + 0x1.51242719804349be684bd0188d52ceccp0, + 0x1.p1 + }, + { // Entry 1 + 0x1.7912730e9dd8c28d0c2e8851730eeb45p4, + 0x1.000002p33 + }, + { // Entry 2 + 0x1.62e42fffa39ee35793dcbc853d3b42e7p5, + 0x1.000002p63 + }, + { // Entry 3 + 0x1.6a09dedd14b1e5d3f0a7b66fb7978e52p-9, + 0x1.000040p0 + }, + { // Entry 4 + 0x1.5124710011087370bef8ff29334f0588p0, + 0x1.000040p1 + }, + { // Entry 5 + 0x1.7ffff7000091ccc09884d33b64b1eb87p-9, + 0x1.000048p0 + }, + { // Entry 6 + 0x1.686fc30f61d32f36cebd3556647e6d85p5, + 0x1.00004cp64 + }, + { // Entry 7 + 0x1.5125e27f7363b91a4d3149cf50666ecap0, + 0x1.000180p1 + }, + { // Entry 8 + 0x1.e330350c572f333162767c36dce61564p-8, + 0x1.0001c8p0 + }, + { // Entry 9 + 0x1.52a797d729941823c44aae94a78e8d74p-7, + 0x1.000380p0 + }, + { // Entry 10 + 0x1.94c4db06c1e84a221d39f0a3cee05599p-7, + 0x1.0005p0 + }, + { // Entry 11 + 0x1.deed89b7b3535ce83319a83454260bf8p-7, + 0x1.0007p0 + }, + { // Entry 12 + 0x1.52a1ce85b747431168d159e69c1ef56ep-5, + 0x1.0038p0 + }, + { // Entry 13 + 0x1.67d67454b91b1d46567f99ba2e2e100cp-5, + 0x1.003f3cp0 + }, + { // Entry 14 + 0x1.deff5d6d7e77e9ef89d533cd1b4674c0p-5, + 0x1.007010p0 + }, + { // Entry 15 + 0x1.03ecf505a34cdb22e926c22dafdcba93p-4, + 0x1.0084p0 + }, + { // Entry 16 + 0x1.522637e146375db3d5e54da506a6da8ap0, + 0x1.00e0p1 + }, + { // Entry 17 + 0x1.74d0fb045fad2bb6a0e3f2f93c3dbcc4p-4, + 0x1.010fa8p0 + }, + { // Entry 18 + 0x1.90b591058df058eb707359449093e7d5p-4, + 0x1.0139dcp0 + }, + { // Entry 19 + 0x1.bb67a8fd17fb152d1c73ebdb092cac1dp-4, + 0x1.018060p0 + }, + { // Entry 20 + 0x1.e71f530f94e947158a386b336cdec658p-4, + 0x1.01d0p0 + }, + { // Entry 21 + 0x1.ffaad0fa452627976ff366b9d3840fd1p-4, + 0x1.02p0 + }, + { // Entry 22 + 0x1.5530ccfff7ae8f7c70f1590984ee044fp0, + 0x1.038ap1 + }, + { // Entry 23 + 0x1.5e4fd4ffff5dbe26d4ed5650c003b86ap0, + 0x1.0bc0p1 + }, + { // Entry 24 + 0x1.5fab1f780d388e9cc57b36be3c3141c7p0, + 0x1.0dp1 + }, + { // Entry 25 + 0x1.763bdf002ea17936e0bfcfe7b6511bcbp-2, + 0x1.114986p0 + }, + { // Entry 26 + 0x1.a00911010f93abee028e302008964513p-2, + 0x1.156bbcp0 + }, + { // Entry 27 + 0x1.94e9050d7f9b05eaab2ab578f9f7c8a9p2, + 0x1.17a93cp8 + }, + { // Entry 28 + 0x1.b6c931c025238ebcf98ef12eb28d8307p5, + 0x1.18p78 + }, + { // Entry 29 + 0x1.bb6f05ffddc8a6d7ec01df7072e6e0f0p-2, + 0x1.18616cp0 + }, + { // Entry 30 + 0x1.6d74ee000195eb1aa7d81dd17a217ffap0, + 0x1.1a23bap1 + }, + { // Entry 31 + 0x1.ca976f7083fa74fb28b04fb16943e348p1, + 0x1.20p4 + }, + { // Entry 32 + 0x1.efbe20ff9b93b8c1be0904c4167348d7p2, + 0x1.210840p10 + }, + { // Entry 33 + 0x1.76b1c30001e25f3c8bf59f51e1345b89p0, + 0x1.2365e8p1 + }, + { // Entry 34 + 0x1.14d7f7fffe2fabae91a11982e4e616c8p-1, + 0x1.2658p0 + }, + { // Entry 35 + 0x1.2693990483fd8eeb51271e2e585b684dp-1, + 0x1.2b8d74p0 + }, + { // Entry 36 + 0x1.5c4e960001d47445bae41369dbff3bebp-1, + 0x1.3d8ea8p0 + }, + { // Entry 37 + 0x1.6aae7300008fa4d9f021ed601c65f965p-1, + 0x1.42f55cp0 + }, + { // Entry 38 + 0x1.9e86a6000ecf0210e4a6a5b7423d0413p0, + 0x1.4fd3f0p1 + }, + { // Entry 39 + 0x1.8e05b6fd5d1b8aec832f758abac8fe89p-1, + 0x1.515450p0 + }, + { // Entry 40 + 0x1.df328b0ba47a77279fd4ced3f49c93eap1, + 0x1.523b56p4 + }, + { // Entry 41 + 0x1.9eb7a2fc5b6aa4ff59b8601984b72a68p-1, + 0x1.58ac40p0 + }, + { // Entry 42 + 0x1.abc47a73960e8473135511220cc16ca9p0, + 0x1.6058p1 + }, + { // Entry 43 + 0x1.83ceeb0e93a6e047b70a3145b22d0855p3, + 0x1.660dd6p16 + }, + { // Entry 44 + 0x1.e7306f0ae25f79290292e6e2e6fa8ca0p1, + 0x1.67ffc0p4 + }, + { // Entry 45 + 0x1.c3bf8400023ca827c6741d7e90c625f4p-1, + 0x1.6a48p0 + }, + { // Entry 46 + 0x1.9036310001a25b1ccef0f5035d136dc3p1, + 0x1.6d7680p3 + }, + { // Entry 47 + 0x1.cb7077ffffb491dd760b7538a02c6e3ep-1, + 0x1.6e2c4cp0 + }, + { // Entry 48 + 0x1.d466eb047d3274c3f8e4ad57ff764ea1p-1, + 0x1.72d0p0 + }, + { // Entry 49 + 0x1.d53c6fc6f92e0ba23b31c22d8cc254cfp-1, + 0x1.7340p0 + }, + { // Entry 50 + 0x1.ec49d25fbb6766d39e90829e6e2e250cp1, + 0x1.769da0p4 + }, + { // Entry 51 + 0x1.dc679d017683946d78e2a9cc803cf6c7p-1, + 0x1.770d10p0 + }, + { // Entry 52 + 0x1.e8c0b0fffe1ddf6adf3d4c2f7dd95d58p-1, + 0x1.7dc566p0 + }, + { // Entry 53 + 0x1.e9609b000000a0eda71092f93ae128abp-1, + 0x1.7e1deep0 + }, + { // Entry 54 + 0x1.ecc2c030a30fcdab9ac241b66cd30c25p-1, + 0x1.7ffffap0 + }, + { // Entry 55 + 0x1.ecc35a07f3682dbaa360587c559ccbd3p-1, + 0x1.800050p0 + }, + { // Entry 56 + 0x1.ecc6dc03c34154354f855c6bd517af5dp-1, + 0x1.800246p0 + }, + { // Entry 57 + 0x1.f0192f00019712eb97524c0bc702be17p-1, + 0x1.81dfb6p0 + }, + { // Entry 58 + 0x1.f284540001b93c8ebe3f4affe21905a6p-1, + 0x1.833df6p0 + }, + { // Entry 59 + 0x1.f4d44c1caf6cd216b634d3097e9011f1p-1, + 0x1.848ee8p0 + }, + { // Entry 60 + 0x1.f4ff87d0159c59ba0482602abe442ae8p-1, + 0x1.84a798p0 + }, + { // Entry 61 + 0x1.fbd18dc250d3324af75f978654b26cdfp-1, + 0x1.8895b4p0 + }, + { // Entry 62 + 0x1.fc5d43a0453c54315cc3647a30e4ed2bp-1, + 0x1.88e6fap0 + }, + { // Entry 63 + 0x1.feb4430000ee8977e14ac962c3ef7706p-1, + 0x1.8a44bap0 + }, + { // Entry 64 + 0x1.ce51f9f47895ee807158da16a38ca157p0, + 0x1.8ffffep1 + }, + { // Entry 65 + 0x1.6c02870f43f412f2facda9c71af64d9ap5, + 0x1.9026f4p64 + }, + { // Entry 66 + 0x1.47533d0000264c4cbb7c2fab58133240p1, + 0x1.9f47e2p2 + }, + { // Entry 67 + 0x1.1a30b200001c3de79bc0f29982af5fc1p0, + 0x1.abee22p0 + }, + { // Entry 68 + 0x1.3f6350ffda1d235a4490f7aa2ce26ae7p4, + 0x1.bd531cp27 + }, + { // Entry 69 + 0x1.50eb6d04542893111cfd374dfd3d214fp1, + 0x1.bf3baap2 + }, + { // Entry 70 + 0x1.2dfa93ff2c6700d1d90825d37183dcd9p2, + 0x1.bffffep5 + }, + { // Entry 71 + 0x1.ecf4c21af95787266aac99616d63af21p0, + 0x1.c053d4p1 + }, + { // Entry 72 + 0x1.ee596e252c01641fd16160b80bc6afe6p0, + 0x1.c2ac2ap1 + }, + { // Entry 73 + 0x1.52826efff379e591193fb977ff4e6bb1p1, + 0x1.c4c3fcp2 + }, + { // Entry 74 + 0x1.cb605d0b0f66c2ac5857cda13901790bp5, + 0x1.cb0d08p81 + }, + { // Entry 75 + 0x1.f38fc1e25f10f5fb2271b50edba446b8p0, + 0x1.cb9080p1 + }, + { // Entry 76 + 0x1.3940a3ffff65e12ff76d6976a25254bfp0, + 0x1.d8cb54p0 + }, + { // Entry 77 + 0x1.40889effd28e277ad840d7466abad6ecp4, + 0x1.de61fcp27 + }, + { // Entry 78 + 0x1.09aa20ff6df329fc6965c5157042b44ap3, + 0x1.f7fffep10 + }, + { // Entry 79 + 0x1.dca21f00608c1d5dfa8c6e2db5abd9c0p4, + 0x1.f7fffep41 + }, + { // Entry 80 + 0x1.62636e000aae80a748dcd7555caf8e89p2, + 0x1.fbfffep6 + }, + { // Entry 81 + 0x1.50a2ac95684b68fdc508df40cc73323dp0, + 0x1.ff1ffep0 + }, + { // Entry 82 + 0x1.50b9c8d9ac3d9fed6029492e2946e89cp0, + 0x1.ff47f0p0 + }, + { // Entry 83 + 0x1.b6102affc7f74638c6d979799db2bfaap5, + 0x1.ff9ffep77 + }, + { // Entry 84 + 0x1.50f6250001e11ede297c4b3f4b76e264p0, + 0x1.ffb058p0 + }, + { // Entry 85 + 0x1.510a08ffff3a5b971fb41b757c6603ecp0, + 0x1.ffd2c6p0 + }, + { // Entry 86 + 0x1.419ecb012c46848356c72808ab86361cp4, + 0x1.fffff2p27 + }, + { // Entry 87 + 0x1.55074600473a9dd627ac47d1d2419990p6, + 0x1.fffff8p121 + }, + { // Entry 88 + 0x1.640e90fffe1db3e4bbbe3d2c1b08c229p0, + 0x1.111874p1 + }, + { // Entry 89 + 0.0, + 0x1.p0 + }, + { // Entry 90 + 0x1.9f3245325fddd5b2c87f249c5271c1cdp-2, + 0x1.155556p0 + }, + { // Entry 91 + 0x1.23a5003dc2a6d928dd921e808a9011e8p-1, + 0x1.2aaaacp0 + }, + { // Entry 92 + 0x1.62e43544f8e86e9a20f297ce4a2bc5d8p-1, + 0x1.400002p0 + }, + { // Entry 93 + 0x1.973a2a54caa1da0a04be159db5cae8abp-1, + 0x1.555558p0 + }, + { // Entry 94 + 0x1.c48466e37608eec558429434454efbc0p-1, + 0x1.6aaaaep0 + }, + { // Entry 95 + 0x1.ecc2caec5160994be04204a968c7020dp-1, + 0x1.80p0 + }, + { // Entry 96 + 0.0, + 0x1.p0 + }, + { // Entry 97 + 0x1.7907212d9f29112f246e3e48d17cb877p-1, + 0x1.489a58p0 + }, + { // Entry 98 + 0x1.94d80f28552a7960dbd361ef8d997239p-1, + 0x1.544942p0 + }, + { // Entry 99 + 0x1.cddcc749958a508d272c8af1d7f4ee9fp-1, + 0x1.6f6a8cp0 + }, + { // Entry 100 + 0x1.8fcba00aaf47e796d01724c28df0a8c3p-1, + 0x1.521794p0 + }, + { // Entry 101 + 0x1.8ca50cd428a176f539205f3add783b57p-2, + 0x1.137240p0 + }, + { // Entry 102 + 0x1.ecc2caec5160994be04204a968c7020dp-1, + 0x1.80p0 + }, + { // Entry 103 + 0x1.ecc2caec5160994be04204a968c7020dp-1, + 0x1.80p0 + }, + { // Entry 104 + 0x1.08940007f543cfa0adae2e6229dce7e2p0, + 0x1.955556p0 + }, + { // Entry 105 + 0x1.193ea8aad0300976a4b6e2a99a10d315p0, + 0x1.aaaaacp0 + }, + { // Entry 106 + 0x1.28a7cd1cd2d875d89ba32eb5d574ffa4p0, + 0x1.c00002p0 + }, + { // Entry 107 + 0x1.37030d490f3cb36dda8e8436280f6666p0, + 0x1.d55558p0 + }, + { // Entry 108 + 0x1.4477a0289e7622001965214199d0661bp0, + 0x1.eaaaaep0 + }, + { // Entry 109 + 0x1.51242719804349be684bd0188d52ceccp0, + 0x1.p1 + }, + { // Entry 110 + 0x1.ecc2caec5160994be04204a968c7020dp-1, + 0x1.80p0 + }, + { // Entry 111 + 0x1.0c242312e9f147c72de6f878eed5f263p0, + 0x1.99bf24p0 + }, + { // Entry 112 + 0x1.197e88b3d1486826e7557849fa8702f9p0, + 0x1.aaffe4p0 + }, + { // Entry 113 + 0x1.261b718b8dc24a39a77a013459187eabp0, + 0x1.bc5cccp0 + }, + { // Entry 114 + 0x1.fbbfbb4fb3c51a1a693b8538d12b2528p-1, + 0x1.888b58p0 + }, + { // Entry 115 + 0x1.4cf1a4b95964bc7af475a1628b613d0bp0, + 0x1.f8cc6ep0 + }, + { // Entry 116 + 0x1.51242719804349be684bd0188d52ceccp0, + 0x1.p1 + }, + { // Entry 117 + 0x1.18080dd3171b6c031a9b576be63b6d4cp6, + 0x1.p100 + }, + { // Entry 118 + 0x1.1869a6d270699e1fa7c307d5fdbce864p6, + 0x1.19999ap100 + }, + { // Entry 119 + 0x1.18c2c05650eac97c01479a1a77caa909p6, + 0x1.333334p100 + }, + { // Entry 120 + 0x1.1914b70e86721bbde7a2eea6f077d548p6, + 0x1.4ccccep100 + }, + { // Entry 121 + 0x1.19609a053a97d6f30409751e6281de59p6, + 0x1.666668p100 + }, + { // Entry 122 + 0x1.19a74017386a428962791f05687972f6p6, + 0x1.800002p100 + }, + { // Entry 123 + 0x1.19e9567ab98dd45c6898a542a93d6c1bp6, + 0x1.99999cp100 + }, + { // Entry 124 + 0x1.1a276adcd0472f52cdae405190f05814p6, + 0x1.b33336p100 + }, + { // Entry 125 + 0x1.1a61f2998eab653e55cda9cf1b8d9e50p6, + 0x1.ccccd0p100 + }, + { // Entry 126 + 0x1.1a994fffd300555a0d63481601d36422p6, + 0x1.e6666ap100 + }, + { // Entry 127 + 0x1.1acdd632f662a9e9c9c2e63a464b3927p6, + 0x1.p101 + }, + { // Entry 128 + 0.0, + 0x1.p0 + }, + { // Entry 129 + 0x1.ecc2c7586ca3963ba572db868c3947eep-1, + 0x1.7ffffep0 + }, + { // Entry 130 + 0x1.ecc2caec5160994be04204a968c7020dp-1, + 0x1.80p0 + }, + { // Entry 131 + 0x1.ecc2ce80361506372c8accaeb16b83abp-1, + 0x1.800002p0 + }, + { // Entry 132 + 0x1.512425f1e5ce2ba992dbea3a907450b6p0, + 0x1.fffffep0 + }, + { // Entry 133 + 0x1.51242719804349be684bd0188d52ceccp0, + 0x1.p1 + }, + { // Entry 134 + 0x1.51242968b528e77e4665f8cde850553dp0, + 0x1.000002p1 + }, + { // Entry 135 + 0x1.081eb42feeb3ba85ed12ce4bc0fcf1eep1, + 0x1.fffffep1 + }, + { // Entry 136 + 0x1.081eb4b4215917af0d37af17fbf93f73p1, + 0x1.p2 + }, + { // Entry 137 + 0x1.081eb5bc86a22af8d808c499360fc118p1, + 0x1.000002p2 + }, + { // Entry 138 + 0x1.1542456337d4221c6b6673481f564c03p4, + 0x1.fffffep23 + }, + { // Entry 139 + 0x1.1542457337d42a1c6b73c89d84aba171p4, + 0x1.p24 + }, + { // Entry 140 + 0x1.1542459337d40a1c6bae7347bf564d0ep4, + 0x1.000002p24 + }, + { // Entry 141 + 0x1.3687a9e1af2b0cdca14904f4ad63c259p4, + 0x1.fffffep26 + }, + { // Entry 142 + 0x1.3687a9f1af2b14dca14e7a4a06e917b2p4, + 0x1.p27 + }, + { // Entry 143 + 0x1.3687aa11af2af4dca17964f470d3c2c5p4, + 0x1.000002p27 + }, + { // Entry 144 + 0x1.419ecb612c4804835de7582e2dc70845p4, + 0x1.fffffep27 + }, + { // Entry 145 + 0x1.419ecb712c480c835decb58387285d9dp4, + 0x1.p28 + }, + { // Entry 146 + 0x1.419ecb912c47ec835e17702df1a308afp4, + 0x1.000002p28 + }, + { // Entry 147 + 0x1.62e42fe7a39eef5793c4bc855b3b42b2p5, + 0x1.fffffep62 + }, + { // Entry 148 + 0x1.62e42fefa39ef35793c7673007e5ed5ep5, + 0x1.p63 + }, + { // Entry 149 + 0x1.62e42fffa39ee35793dcbc853d3b42e7p5, + 0x1.000002p63 + }, + { // Entry 150 + 0x1.601e678bc457b370e49e830c5180cc2dp6, + 0x1.fffffep125 + }, + { // Entry 151 + 0x1.601e678fc457b570e49fd861a7d62183p6, + 0x1.p126 + }, + { // Entry 152 + 0x1.601e6797c457ad70e4aa830c4280cc48p6, + 0x1.000002p126 + }, + { // Entry 153 + 0x1.65a9f84b82e62f3e42eda0a911a063e3p6, + 0x1.fffffep127 + }, + { // Entry 154 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 155 + 0x1.65a9f84b82e62f3e42eda0a911a063e3p6, + 0x1.fffffep127 + }, + { // Entry 156 + 0x1.65a9f84782e6293e42e44b53ad4b0e74p6, + 0x1.fffffcp127 + }, + { // Entry 157 + 0x1.cfc0300e23df54cd908a25ac434e488cp0, + 0x1.921fb6p1 + }, + { // Entry 158 + 0x1.05f23d07b63b0afafa9ad8203dad69f2p0, + 0x1.921fb6p0 + }, + { // Entry 159 + 0x1.ffffffaaaaaad11110fa35a369c3dc32p-12, + 0x1.000002p0 + }, + { // Entry 160 + 0.0, + 0x1.p0 + } +}; diff --git a/tests/math_data/asin_intel_data.h b/tests/math_data/asin_intel_data.h new file mode 100644 index 000000000..7d16a4ba4 --- /dev/null +++ b/tests/math_data/asin_intel_data.h @@ -0,0 +1,2774 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_asin_intel_data[] = { + { // Entry 0 + 0x1.9283586503fe000000000000000e46aap-5, + 0x1.9259e3708bd3ap-5 + }, + { // Entry 1 + -0x1.9283586503fe000000000000000e46aap-5, + -0x1.9259e3708bd3ap-5 + }, + { // Entry 2 + 0x1.d7bdcd778049f00000000000000d57e1p-5, + 0x1.d77b117f230d6p-5 + }, + { // Entry 3 + -0x1.d7bdcd778049f00000000000000d57e1p-5, + -0x1.d77b117f230d6p-5 + }, + { // Entry 4 + 0x1.a202b3fb84788000000000000056edb7p-4, + 0x1.a1490c8c06ba7p-4 + }, + { // Entry 5 + -0x1.a202b3fb84788000000000000056edb7p-4, + -0x1.a1490c8c06ba7p-4 + }, + { // Entry 6 + 0x1.994ffb5daf0f97ffffffffffffa81adap-3, + 0x1.9697cb602c582p-3 + }, + { // Entry 7 + -0x1.994ffb5daf0f97ffffffffffffa81adap-3, + -0x1.9697cb602c582p-3 + }, + { // Entry 8 + 0x1.d5064e6fe82c4fffffffffffff9ed184p-3, + 0x1.d0ef799001ba9p-3 + }, + { // Entry 9 + -0x1.d5064e6fe82c4fffffffffffff9ed184p-3, + -0x1.d0ef799001ba9p-3 + }, + { // Entry 10 + 0x1.fe767739d0f6d0000000000000000458p-2, + 0x1.e9950730c4696p-2 + }, + { // Entry 11 + -0x1.fe767739d0f6d0000000000000000458p-2, + -0x1.e9950730c4696p-2 + }, + { // Entry 12 + 0x1.30706f699466d7ffffffffffff5f2011p-1, + 0x1.1ed06d50f7e88p-1 + }, + { // Entry 13 + -0x1.30706f699466d7ffffffffffff5f2011p-1, + -0x1.1ed06d50f7e88p-1 + }, + { // Entry 14 + 0x1.29517ab4c132a800000000000089db56p0, + 0x1.d5b05a89d3e77p-1 + }, + { // Entry 15 + -0x1.29517ab4c132a800000000000089db56p0, + -0x1.d5b05a89d3e77p-1 + }, + { // Entry 16 + 0x1.3aa301f6ebb1dfffffffffffff16c28cp0, + 0x1.e264357ea0e29p-1 + }, + { // Entry 17 + -0x1.3aa301f6ebb1dfffffffffffff16c28cp0, + -0x1.e264357ea0e29p-1 + }, + { // Entry 18 + -0x1.0c152382d73658465bb32e0f567ad116p-1, + -0x1.0p-1 + }, + { // Entry 19 + 0x1.0c152382d73658465bb32e0f567ad116p-1, + 0x1.0p-1 + }, + { // Entry 20 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 21 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 22 + -0x1.0000000000001002aaaaaaaaaaab2abdp-30, + -0x1.0000000000001p-30 + }, + { // Entry 23 + 0x1.0000000000001002aaaaaaaaaaab2abdp-30, + 0x1.0000000000001p-30 + }, + { // Entry 24 + -0x1.1fc5e19315892ffd69defb731e5b723ap-2, + -0x1.1c0p-2 + }, + { // Entry 25 + 0x1.1fc5e19315892ffd69defb731e5b723ap-2, + 0x1.1c0p-2 + }, + { // Entry 26 + -0x1.322f6d8e910113592ff4014f403aad06p-1, + -0x1.20424621202acp-1 + }, + { // Entry 27 + 0x1.322f6d8e910113592ff4014f403aad06p-1, + 0x1.20424621202acp-1 + }, + { // Entry 28 + -0x1.57c8d32d4c7a763ab677a006ae66467fp-1, + -0x1.3e872c7cba096p-1 + }, + { // Entry 29 + 0x1.57c8d32d4c7a763ab677a006ae66467fp-1, + 0x1.3e872c7cba096p-1 + }, + { // Entry 30 + -0x1.759edd04f68e48001bb07775889fc8a5p-1, + -0x1.555555555555ap-1 + }, + { // Entry 31 + 0x1.759edd04f68e48001bb07775889fc8a5p-1, + 0x1.555555555555ap-1 + }, + { // Entry 32 + -0x1.782333f928813ffec11dba3a89d05c6cp-1, + -0x1.573489b9ae5adp-1 + }, + { // Entry 33 + 0x1.782333f928813ffec11dba3a89d05c6cp-1, + 0x1.573489b9ae5adp-1 + }, + { // Entry 34 + -0x1.94d8b4c7808fb7a87e757b5f42035aacp-1, + -0x1.6bf5707aa0f6bp-1 + }, + { // Entry 35 + 0x1.94d8b4c7808fb7a87e757b5f42035aacp-1, + 0x1.6bf5707aa0f6bp-1 + }, + { // Entry 36 + -0x1.b235315cc8d0081c027b42e63e305a66p-1, + -0x1.800000004p-1 + }, + { // Entry 37 + 0x1.b235315cc8d0081c027b42e63e305a66p-1, + 0x1.800000004p-1 + }, + { // Entry 38 + -0x1.96b6e8a201871000f870b24841c05f73p-4, + -0x1.960be5db7a892p-4 + }, + { // Entry 39 + 0x1.96b6e8a201871000f870b24841c05f73p-4, + 0x1.960be5db7a892p-4 + }, + { // Entry 40 + -0x1.98ad7f9954c2c000dda10069f24bfb9fp-4, + -0x1.980p-4 + }, + { // Entry 41 + 0x1.98ad7f9954c2c000dda10069f24bfb9fp-4, + 0x1.980p-4 + }, + { // Entry 42 + -0x1.aa371ee73bd1c8079ffffa36ba5e5d8cp-2, + -0x1.9e03d2f534734p-2 + }, + { // Entry 43 + 0x1.aa371ee73bd1c8079ffffa36ba5e5d8cp-2, + 0x1.9e03d2f534734p-2 + }, + { // Entry 44 + -0x1.ed27cb01adedd7ae3d6cfc08b5b1ca73p-1, + -0x1.a45ca57a33fcdp-1 + }, + { // Entry 45 + 0x1.ed27cb01adedd7ae3d6cfc08b5b1ca73p-1, + 0x1.a45ca57a33fcdp-1 + }, + { // Entry 46 + -0x1.b34d1c29d5ccbffecdc2bdebc095bf13p-6, + -0x1.b34p-6 + }, + { // Entry 47 + 0x1.b34d1c29d5ccbffecdc2bdebc095bf13p-6, + 0x1.b34p-6 + }, + { // Entry 48 + -0x1.bf79714a2c1567fffff9585f49069adbp-15, + -0x1.bf7971469ca1fp-15 + }, + { // Entry 49 + 0x1.bf79714a2c1567fffff9585f49069adbp-15, + 0x1.bf7971469ca1fp-15 + }, + { // Entry 50 + -0x1.bf79714a2c19b8000013b283b77d9f82p-15, + -0x1.bf7971469ca64p-15 + }, + { // Entry 51 + 0x1.bf79714a2c19b8000013b283b77d9f82p-15, + 0x1.bf7971469ca64p-15 + }, + { // Entry 52 + -0x1.cfaf2746103107617c4b6b2c15223d0dp-2, + -0x1.c0000000003ffp-2 + }, + { // Entry 53 + 0x1.cfaf2746103107617c4b6b2c15223d0dp-2, + 0x1.c0000000003ffp-2 + }, + { // Entry 54 + -0x1.0129be4949aae7feec564fbe5489c78ep-1, + -0x1.ecf8cad745f54p-2 + }, + { // Entry 55 + 0x1.0129be4949aae7feec564fbe5489c78ep-1, + 0x1.ecf8cad745f54p-2 + }, + { // Entry 56 + -0x1.5047d77b0f8938000011f5af41f72c88p0, + -0x1.ef28841197292p-1 + }, + { // Entry 57 + 0x1.5047d77b0f8938000011f5af41f72c88p0, + 0x1.ef28841197292p-1 + }, + { // Entry 58 + -0x1.fb9f1177a8157880070f3ad2a1f9422ep-6, + -0x1.fb8a474fa66d0p-6 + }, + { // Entry 59 + 0x1.fb9f1177a8157880070f3ad2a1f9422ep-6, + 0x1.fb8a474fa66d0p-6 + }, + { // Entry 60 + -0x1.7b9033edad533793d172bb5d680b97b4p0, + -0x1.fe0359a2193f8p-1 + }, + { // Entry 61 + 0x1.7b9033edad533793d172bb5d680b97b4p0, + 0x1.fe0359a2193f8p-1 + }, + { // Entry 62 + -0x1.7b9033f17fe8b7728028f04d5b42dfa4p0, + -0x1.fe0359a2c5813p-1 + }, + { // Entry 63 + 0x1.7b9033f17fe8b7728028f04d5b42dfa4p0, + 0x1.fe0359a2c5813p-1 + }, + { // Entry 64 + -0x1.7da665f5fe592780850c1bef60fac479p0, + -0x1.fe5d0b4f2f569p-1 + }, + { // Entry 65 + 0x1.7da665f5fe592780850c1bef60fac479p0, + 0x1.fe5d0b4f2f569p-1 + }, + { // Entry 66 + -0x1.ff348201393248a795686f3f0d307c5ap-6, + -0x1.ff1f4655459b6p-6 + }, + { // Entry 67 + 0x1.ff348201393248a795686f3f0d307c5ap-6, + 0x1.ff1f4655459b6p-6 + }, + { // Entry 68 + 0x1.0000000000001002aaaaaaaaaaab2abdp-30, + 0x1.0000000000001p-30 + }, + { // Entry 69 + -0x1.0000000000001002aaaaaaaaaaab2abdp-30, + -0x1.0000000000001p-30 + }, + { // Entry 70 + 0x1.0c152382d736d999ee9a1f752604d40ep-1, + 0x1.0000000000007p-1 + }, + { // Entry 71 + -0x1.0c152382d736d999ee9a1f752604d40ep-1, + -0x1.0000000000007p-1 + }, + { // Entry 72 + 0x1.0c152382d7495341342a52c5694cd736p-1, + 0x1.0000000000107p-1 + }, + { // Entry 73 + -0x1.0c152382d7495341342a52c5694cd736p-1, + -0x1.0000000000107p-1 + }, + { // Entry 74 + 0x1.0c152382d74c92a39b64abd4b3dd08c3p-1, + 0x1.0000000000134p-1 + }, + { // Entry 75 + -0x1.0c152382d74c92a39b64abd4b3dd08c3p-1, + -0x1.0000000000134p-1 + }, + { // Entry 76 + 0x1.000aabde0bba85978d6ad9f48828ec86p-5, + 0x1.00000000001e0p-5 + }, + { // Entry 77 + -0x1.000aabde0bba85978d6ad9f48828ec86p-5, + -0x1.00000000001e0p-5 + }, + { // Entry 78 + 0x1.000aabde0bbc75d5990d467c55b9ae34p-5, + 0x1.00000000001ffp-5 + }, + { // Entry 79 + -0x1.000aabde0bbc75d5990d467c55b9ae34p-5, + -0x1.00000000001ffp-5 + }, + { // Entry 80 + 0x1.000aabde0c8daffe80d2e7d3e14097d7p-5, + 0x1.0000000000f11p-5 + }, + { // Entry 81 + -0x1.000aabde0c8daffe80d2e7d3e14097d7p-5, + -0x1.0000000000f11p-5 + }, + { // Entry 82 + 0x1.02be9ce0ba0b280001c151672b571466p-2, + 0x1.000000000181bp-2 + }, + { // Entry 83 + -0x1.02be9ce0ba0b280001c151672b571466p-2, + -0x1.000000000181bp-2 + }, + { // Entry 84 + 0x1.0c152382de23f70071cd464afd26d0adp-1, + 0x1.00000000060p-1 + }, + { // Entry 85 + -0x1.0c152382de23f70071cd464afd26d0adp-1, + -0x1.00000000060p-1 + }, + { // Entry 86 + 0x1.0c152382f2ecd32eb46eb26eaa3a3436p-1, + 0x1.00000000180p-1 + }, + { // Entry 87 + -0x1.0c152382f2ecd32eb46eb26eaa3a3436p-1, + -0x1.00000000180p-1 + }, + { // Entry 88 + 0x1.0c1523836b039272e99d2aa6c733fbd4p-1, + 0x1.000000008p-1 + }, + { // Entry 89 + -0x1.0c1523836b039272e99d2aa6c733fbd4p-1, + -0x1.000000008p-1 + }, + { // Entry 90 + 0x1.0c15258825828aed7433be734fa034e0p-1, + 0x1.000001cp-1 + }, + { // Entry 91 + -0x1.0c15258825828aed7433be734fa034e0p-1, + -0x1.000001cp-1 + }, + { // Entry 92 + 0x1.0c15258d2e27e114dc33e19be219a967p-1, + 0x1.000001c45c0p-1 + }, + { // Entry 93 + -0x1.0c15258d2e27e114dc33e19be219a967p-1, + -0x1.000001c45c0p-1 + }, + { // Entry 94 + 0x1.02c23a43a81227fff55e30293b8669cfp-2, + 0x1.00038p-2 + }, + { // Entry 95 + -0x1.02c23a43a81227fff55e30293b8669cfp-2, + -0x1.00038p-2 + }, + { // Entry 96 + 0x1.0032c1ec76116800257dc6de53c0616ep-4, + 0x1.0007fffffffd1p-4 + }, + { // Entry 97 + -0x1.0032c1ec76116800257dc6de53c0616ep-4, + -0x1.0007fffffffd1p-4 + }, + { // Entry 98 + 0x1.0c279d5b633cdc69f2775e85622dc4a2p-1, + 0x1.001p-1 + }, + { // Entry 99 + -0x1.0c279d5b633cdc69f2775e85622dc4a2p-1, + -0x1.001p-1 + }, + { // Entry 100 + 0x1.0c4c923447087dae5cae7c825ed2a0ccp-1, + 0x1.003p-1 + }, + { // Entry 101 + -0x1.0c4c923447087dae5cae7c825ed2a0ccp-1, + -0x1.003p-1 + }, + { // Entry 102 + 0x1.0c55cfa828c0b38becd1409b658d6950p-1, + 0x1.00380p-1 + }, + { // Entry 103 + -0x1.0c55cfa828c0b38becd1409b658d6950p-1, + -0x1.00380p-1 + }, + { // Entry 104 + 0x1.0062da048ea0d7efd536d5c643e9f215p-4, + 0x1.00380p-4 + }, + { // Entry 105 + -0x1.0062da048ea0d7efd536d5c643e9f215p-4, + -0x1.00380p-4 + }, + { // Entry 106 + 0x1.00402aaac5e698004c94e39262202714p-8, + 0x1.003fffep-8 + }, + { // Entry 107 + -0x1.00402aaac5e698004c94e39262202714p-8, + -0x1.003fffep-8 + }, + { // Entry 108 + 0x1.0c9720590ac37fd593221825ec3a084bp-1, + 0x1.00708a54b2c67p-1 + }, + { // Entry 109 + -0x1.0c9720590ac37fd593221825ec3a084bp-1, + -0x1.00708a54b2c67p-1 + }, + { // Entry 110 + 0x1.00c00000000000000000000ac2bcaf2ap-45, + 0x1.00cp-45 + }, + { // Entry 111 + -0x1.00c00000000000000000000ac2bcaf2ap-45, + -0x1.00cp-45 + }, + { // Entry 112 + 0x1.0d96e57290c3f1c3681bab8c1f00b39cp-1, + 0x1.014dcaa237970p-1 + }, + { // Entry 113 + -0x1.0d96e57290c3f1c3681bab8c1f00b39cp-1, + -0x1.014dcaa237970p-1 + }, + { // Entry 114 + 0x1.0dabf55dce937f7558a8b531d459f15ep-1, + 0x1.016p-1 + }, + { // Entry 115 + -0x1.0dabf55dce937f7558a8b531d459f15ep-1, + -0x1.016p-1 + }, + { // Entry 116 + 0x1.0dc2ef671d6c33eaa546ddae05d5e453p-1, + 0x1.0173dc94b6306p-1 + }, + { // Entry 117 + -0x1.0dc2ef671d6c33eaa546ddae05d5e453p-1, + -0x1.0173dc94b6306p-1 + }, + { // Entry 118 + 0x1.0f1e6ec54eea2c73401f62badd2976acp-1, + 0x1.02ap-1 + }, + { // Entry 119 + -0x1.0f1e6ec54eea2c73401f62badd2976acp-1, + -0x1.02ap-1 + }, + { // Entry 120 + 0x1.0f4da9229cffec0c3743997491f11d56p-1, + 0x1.02c8c16dc1934p-1 + }, + { // Entry 121 + -0x1.0f4da9229cffec0c3743997491f11d56p-1, + -0x1.02c8c16dc1934p-1 + }, + { // Entry 122 + 0x1.0f6899dc73e34a54ad3cce806ce29011p-1, + 0x1.02ep-1 + }, + { // Entry 123 + -0x1.0f6899dc73e34a54ad3cce806ce29011p-1, + -0x1.02ep-1 + }, + { // Entry 124 + 0x1.0f838e30479aba67ec652b632028fefap-1, + 0x1.02f740f61e37ap-1 + }, + { // Entry 125 + -0x1.0f838e30479aba67ec652b632028fefap-1, + -0x1.02f740f61e37ap-1 + }, + { // Entry 126 + 0x1.0fe301c2f5be2a63ef5b2626fe19c78ap-1, + 0x1.034993ee3b8dap-1 + }, + { // Entry 127 + -0x1.0fe301c2f5be2a63ef5b2626fe19c78ap-1, + -0x1.034993ee3b8dap-1 + }, + { // Entry 128 + 0x1.1022212ba23069c4a937494d32fea558p-1, + 0x1.038p-1 + }, + { // Entry 129 + -0x1.1022212ba23069c4a937494d32fea558p-1, + -0x1.038p-1 + }, + { // Entry 130 + 0x1.10282996f9883a58886ba1799ed5dd8ep-1, + 0x1.038533564d2f6p-1 + }, + { // Entry 131 + -0x1.10282996f9883a58886ba1799ed5dd8ep-1, + -0x1.038533564d2f6p-1 + }, + { // Entry 132 + 0x1.1066e87eac0fa20763c3465fae49f6f3p-1, + 0x1.03bb47eba27acp-1 + }, + { // Entry 133 + -0x1.1066e87eac0fa20763c3465fae49f6f3p-1, + -0x1.03bb47eba27acp-1 + }, + { // Entry 134 + 0x1.10cbb4c8656620d5e25de954cc196a15p-1, + 0x1.04122069afab2p-1 + }, + { // Entry 135 + -0x1.10cbb4c8656620d5e25de954cc196a15p-1, + -0x1.04122069afab2p-1 + }, + { // Entry 136 + 0x1.116717f96556ee4420b909b7fa6b63dfp-1, + 0x1.0497edab6ede1p-1 + }, + { // Entry 137 + -0x1.116717f96556ee4420b909b7fa6b63dfp-1, + -0x1.0497edab6ede1p-1 + }, + { // Entry 138 + 0x1.1179dbb27e582d73878c014b8e3e1cc0p-1, + 0x1.04a814758e0f8p-1 + }, + { // Entry 139 + -0x1.1179dbb27e582d73878c014b8e3e1cc0p-1, + -0x1.04a814758e0f8p-1 + }, + { // Entry 140 + 0x1.1198c0d79289b2f9f277c2f3a7a05d25p-1, + 0x1.04c2ab77cf474p-1 + }, + { // Entry 141 + -0x1.1198c0d79289b2f9f277c2f3a7a05d25p-1, + -0x1.04c2ab77cf474p-1 + }, + { // Entry 142 + 0x1.196875557f2137d39d74d174f529db4bp-1, + 0x1.0b73c2dcdc2b8p-1 + }, + { // Entry 143 + -0x1.196875557f2137d39d74d174f529db4bp-1, + -0x1.0b73c2dcdc2b8p-1 + }, + { // Entry 144 + 0x1.1b553e4436fee055d4d2c67c601a0212p-1, + 0x1.0d177bea3f610p-1 + }, + { // Entry 145 + -0x1.1b553e4436fee055d4d2c67c601a0212p-1, + -0x1.0d177bea3f610p-1 + }, + { // Entry 146 + 0x1.1c38449a61c9580d6859380e343d833cp-1, + 0x1.0dd885a3ef4fcp-1 + }, + { // Entry 147 + -0x1.1c38449a61c9580d6859380e343d833cp-1, + -0x1.0dd885a3ef4fcp-1 + }, + { // Entry 148 + 0x1.1cc4b3c079836265872b7d492044d616p-1, + 0x1.0e4fd42b1d0e6p-1 + }, + { // Entry 149 + -0x1.1cc4b3c079836265872b7d492044d616p-1, + -0x1.0e4fd42b1d0e6p-1 + }, + { // Entry 150 + 0x1.1cfd6e266de95f1bf48764f46577e309p-1, + 0x1.0e8p-1 + }, + { // Entry 151 + -0x1.1cfd6e266de95f1bf48764f46577e309p-1, + -0x1.0e8p-1 + }, + { // Entry 152 + 0x1.21cdcf52000c220a966befeb62e640f6p-1, + 0x1.129345051b29dp-1 + }, + { // Entry 153 + -0x1.21cdcf52000c220a966befeb62e640f6p-1, + -0x1.129345051b29dp-1 + }, + { // Entry 154 + 0x1.130d3aa02dac280175032d7dcd901029p-5, + 0x1.130p-5 + }, + { // Entry 155 + -0x1.130d3aa02dac280175032d7dcd901029p-5, + -0x1.130p-5 + }, + { // Entry 156 + 0x1.140000000d5df80001bf7913cb80995cp-17, + 0x1.140p-17 + }, + { // Entry 157 + -0x1.140000000d5df80001bf7913cb80995cp-17, + -0x1.140p-17 + }, + { // Entry 158 + 0x1.2775c4b617d654588958a178dea861bap-1, + 0x1.1755174d62823p-1 + }, + { // Entry 159 + -0x1.2775c4b617d654588958a178dea861bap-1, + -0x1.1755174d62823p-1 + }, + { // Entry 160 + 0x1.199af8e5ca4257fcd763543b8f3fce81p-5, + 0x1.198cc66331980p-5 + }, + { // Entry 161 + -0x1.199af8e5ca4257fcd763543b8f3fce81p-5, + -0x1.198cc66331980p-5 + }, + { // Entry 162 + 0x1.2c5ab8264bdbb3e1bc65214317759a09p-1, + 0x1.1b6bdc91e8ed8p-1 + }, + { // Entry 163 + -0x1.2c5ab8264bdbb3e1bc65214317759a09p-1, + -0x1.1b6bdc91e8ed8p-1 + }, + { // Entry 164 + 0x1.2cee00a870ba528fbe6b9f3cda1408b3p-1, + 0x1.1be67991de2d4p-1 + }, + { // Entry 165 + -0x1.2cee00a870ba528fbe6b9f3cda1408b3p-1, + -0x1.1be67991de2d4p-1 + }, + { // Entry 166 + 0x1.1fc5e19315892ffd69defb731e5b723ap-2, + 0x1.1c0p-2 + }, + { // Entry 167 + -0x1.1fc5e19315892ffd69defb731e5b723ap-2, + -0x1.1c0p-2 + }, + { // Entry 168 + 0x1.2febc655185c99c444ff04c55bfb6d66p-1, + 0x1.1e627f69af588p-1 + }, + { // Entry 169 + -0x1.2febc655185c99c444ff04c55bfb6d66p-1, + -0x1.1e627f69af588p-1 + }, + { // Entry 170 + 0x1.30d8a981b9948a394e1467470cfad235p-1, + 0x1.1f26bdf8a0343p-1 + }, + { // Entry 171 + -0x1.30d8a981b9948a394e1467470cfad235p-1, + -0x1.1f26bdf8a0343p-1 + }, + { // Entry 172 + 0x1.30f8d6bccdf217fff8c0dda31391974fp-1, + 0x1.1f41613172746p-1 + }, + { // Entry 173 + -0x1.30f8d6bccdf217fff8c0dda31391974fp-1, + -0x1.1f41613172746p-1 + }, + { // Entry 174 + 0x1.3110249047eaf30fc3ba6988a43b8ccbp-1, + 0x1.1f54ab50e347ep-1 + }, + { // Entry 175 + -0x1.3110249047eaf30fc3ba6988a43b8ccbp-1, + -0x1.1f54ab50e347ep-1 + }, + { // Entry 176 + 0x1.31462f20d3145a25898cd5561126dbefp-1, + 0x1.1f816460b6e0dp-1 + }, + { // Entry 177 + -0x1.31462f20d3145a25898cd5561126dbefp-1, + -0x1.1f816460b6e0dp-1 + }, + { // Entry 178 + 0x1.31ef197bde35531a915e264fef2305e8p-1, + 0x1.200d19c3f0b0bp-1 + }, + { // Entry 179 + -0x1.31ef197bde35531a915e264fef2305e8p-1, + -0x1.200d19c3f0b0bp-1 + }, + { // Entry 180 + 0x1.321d12e54f83b31627f80c3fa62b7ca1p-1, + 0x1.20331ab8a7458p-1 + }, + { // Entry 181 + -0x1.321d12e54f83b31627f80c3fa62b7ca1p-1, + -0x1.20331ab8a7458p-1 + }, + { // Entry 182 + 0x1.2177521a338b07fff0d9c9957c5a6cebp-16, + 0x1.21775219f5dc5p-16 + }, + { // Entry 183 + -0x1.2177521a338b07fff0d9c9957c5a6cebp-16, + -0x1.21775219f5dc5p-16 + }, + { // Entry 184 + 0x1.3e67925d0e6f8bcbb21a79d27ecca7d2p-1, + 0x1.2a46471805efdp-1 + }, + { // Entry 185 + -0x1.3e67925d0e6f8bcbb21a79d27ecca7d2p-1, + -0x1.2a46471805efdp-1 + }, + { // Entry 186 + 0x1.2bb1862a568148015c0bf4a2a7154dc1p-3, + 0x1.2aap-3 + }, + { // Entry 187 + -0x1.2bb1862a568148015c0bf4a2a7154dc1p-3, + -0x1.2aap-3 + }, + { // Entry 188 + 0x1.3f6fd0f27823d7fefc74a71eccd96298p-1, + 0x1.2b1ce548833aep-1 + }, + { // Entry 189 + -0x1.3f6fd0f27823d7fefc74a71eccd96298p-1, + -0x1.2b1ce548833aep-1 + }, + { // Entry 190 + 0x1.411bb49364c5ea4184bb3805a893e054p-1, + 0x1.2c77c3b7fadbcp-1 + }, + { // Entry 191 + -0x1.411bb49364c5ea4184bb3805a893e054p-1, + -0x1.2c77c3b7fadbcp-1 + }, + { // Entry 192 + 0x1.442ff6c0f5d4d7fe7775e70c3e4e8219p-1, + 0x1.2ef49e5511ddfp-1 + }, + { // Entry 193 + -0x1.442ff6c0f5d4d7fe7775e70c3e4e8219p-1, + -0x1.2ef49e5511ddfp-1 + }, + { // Entry 194 + 0x1.443fecfebc1df7de68052624a8b1d61dp-1, + 0x1.2f017c4fe3544p-1 + }, + { // Entry 195 + -0x1.443fecfebc1df7de68052624a8b1d61dp-1, + -0x1.2f017c4fe3544p-1 + }, + { // Entry 196 + 0x1.457bf318fe516a79da6f4a61af7a7fa5p-1, + 0x1.3p-1 + }, + { // Entry 197 + -0x1.457bf318fe516a79da6f4a61af7a7fa5p-1, + -0x1.3p-1 + }, + { // Entry 198 + 0x1.5ccd5c05e68fb800000849ddd0fe2ca5p-1, + 0x1.4270ed4aad70ep-1 + }, + { // Entry 199 + -0x1.5ccd5c05e68fb800000849ddd0fe2ca5p-1, + -0x1.4270ed4aad70ep-1 + }, + { // Entry 200 + 0x1.44000000159fd80003e593b785ba9626p-17, + 0x1.440p-17 + }, + { // Entry 201 + -0x1.44000000159fd80003e593b785ba9626p-17, + -0x1.440p-17 + }, + { // Entry 202 + 0x1.63b1cbb66b8a17ae1fd76035d949e2b7p-1, + 0x1.47c3fdc9bf433p-1 + }, + { // Entry 203 + -0x1.63b1cbb66b8a17ae1fd76035d949e2b7p-1, + -0x1.47c3fdc9bf433p-1 + }, + { // Entry 204 + 0x1.65fc8f66ba692e01a5afda7ace8deae2p-1, + 0x1.4985ec22e7bf6p-1 + }, + { // Entry 205 + -0x1.65fc8f66ba692e01a5afda7ace8deae2p-1, + -0x1.4985ec22e7bf6p-1 + }, + { // Entry 206 + 0x1.4d78bac08656681847462467555e549bp-3, + 0x1.4c0p-3 + }, + { // Entry 207 + -0x1.4d78bac08656681847462467555e549bp-3, + -0x1.4c0p-3 + }, + { // Entry 208 + 0x1.6d59bfe3f2224f6000acc00b769ed440p-1, + 0x1.4f2p-1 + }, + { // Entry 209 + -0x1.6d59bfe3f2224f6000acc00b769ed440p-1, + -0x1.4f2p-1 + }, + { // Entry 210 + 0x1.5000000000207800000013a839333343p-20, + 0x1.4fffffffffcp-20 + }, + { // Entry 211 + -0x1.5000000000207800000013a839333343p-20, + -0x1.4fffffffffcp-20 + }, + { // Entry 212 + 0x1.500000000060780000004ac83933337fp-20, + 0x1.5p-20 + }, + { // Entry 213 + -0x1.500000000060780000004ac83933337fp-20, + -0x1.5p-20 + }, + { // Entry 214 + 0x1.55277b9f38d027ffff30112bed0c9f0fp-4, + 0x1.54c28a8e4f3e2p-4 + }, + { // Entry 215 + -0x1.55277b9f38d027ffff30112bed0c9f0fp-4, + -0x1.54c28a8e4f3e2p-4 + }, + { // Entry 216 + 0x1.5ed2a392bb50f7fad69db4d959b3510ap-2, + 0x1.580p-2 + }, + { // Entry 217 + -0x1.5ed2a392bb50f7fad69db4d959b3510ap-2, + -0x1.580p-2 + }, + { // Entry 218 + 0x1.7f1f4917c72b6003b55c8200e8dcecc0p-1, + 0x1.5c5b3407f55e1p-1 + }, + { // Entry 219 + -0x1.7f1f4917c72b6003b55c8200e8dcecc0p-1, + -0x1.5c5b3407f55e1p-1 + }, + { // Entry 220 + 0x1.8b6201c0f179080000d81b7964ae4654p-1, + 0x1.653da5baf7440p-1 + }, + { // Entry 221 + -0x1.8b6201c0f179080000d81b7964ae4654p-1, + -0x1.653da5baf7440p-1 + }, + { // Entry 222 + 0x1.7250952ca29c0813f4e50a0ad18f3648p-2, + 0x1.6a4bb63c82129p-2 + }, + { // Entry 223 + -0x1.7250952ca29c0813f4e50a0ad18f3648p-2, + -0x1.6a4bb63c82129p-2 + }, + { // Entry 224 + 0x1.77b27e3a4418480d8c0062be11693e16p-2, + 0x1.6f533603e2320p-2 + }, + { // Entry 225 + -0x1.77b27e3a4418480d8c0062be11693e16p-2, + -0x1.6f533603e2320p-2 + }, + { // Entry 226 + 0x1.9e149bad9649280000eb9dad7440c574p-1, + 0x1.7264d0bec49b2p-1 + }, + { // Entry 227 + -0x1.9e149bad9649280000eb9dad7440c574p-1, + -0x1.7264d0bec49b2p-1 + }, + { // Entry 228 + 0x1.7cc0ee7ed8ad48137e185fb9156bae4cp-2, + 0x1.740a59647d7a5p-2 + }, + { // Entry 229 + -0x1.7cc0ee7ed8ad48137e185fb9156bae4cp-2, + -0x1.740a59647d7a5p-2 + }, + { // Entry 230 + 0x1.a207566488fc97fcadc30933e3392d3dp-1, + 0x1.751bcca851309p-1 + }, + { // Entry 231 + -0x1.a207566488fc97fcadc30933e3392d3dp-1, + -0x1.751bcca851309p-1 + }, + { // Entry 232 + 0x1.7e693c113d4a4814c150d8ac5b0c8d53p-2, + 0x1.7595883b67f16p-2 + }, + { // Entry 233 + -0x1.7e693c113d4a4814c150d8ac5b0c8d53p-2, + -0x1.7595883b67f16p-2 + }, + { // Entry 234 + 0x1.7ee6be5058d0201a24d137f52ff6909ep-2, + 0x1.760a6116c7198p-2 + }, + { // Entry 235 + -0x1.7ee6be5058d0201a24d137f52ff6909ep-2, + -0x1.760a6116c7198p-2 + }, + { // Entry 236 + 0x1.a6a1bef361a7d7f9c2816e02dbac1bf5p-1, + 0x1.783ee81831665p-1 + }, + { // Entry 237 + -0x1.a6a1bef361a7d7f9c2816e02dbac1bf5p-1, + -0x1.783ee81831665p-1 + }, + { // Entry 238 + 0x1.86618612c359e81481d9a7341d6a2a51p-2, + 0x1.7cfe473430fc6p-2 + }, + { // Entry 239 + -0x1.86618612c359e81481d9a7341d6a2a51p-2, + -0x1.7cfe473430fc6p-2 + }, + { // Entry 240 + 0x1.88d8a3b14d9e1ff14bbde3d33d157530p-2, + 0x1.7f47cd10de0e8p-2 + }, + { // Entry 241 + -0x1.88d8a3b14d9e1ff14bbde3d33d157530p-2, + -0x1.7f47cd10de0e8p-2 + }, + { // Entry 242 + 0x1.8988868fc564c81982b2db8ce8bc0625p-2, + 0x1.7feae137d5ddep-2 + }, + { // Entry 243 + -0x1.8988868fc564c81982b2db8ce8bc0625p-2, + -0x1.7feae137d5ddep-2 + }, + { // Entry 244 + 0x1.899fd8f017515812de14f44be98d055cp-2, + 0x1.80007ffffffffp-2 + }, + { // Entry 245 + -0x1.899fd8f017515812de14f44be98d055cp-2, + -0x1.80007ffffffffp-2 + }, + { // Entry 246 + 0x1.b27ae0f5ee6e67fffb44fb3a0cb3c215p-1, + 0x1.802e143a91c4ep-1 + }, + { // Entry 247 + -0x1.b27ae0f5ee6e67fffb44fb3a0cb3c215p-1, + -0x1.802e143a91c4ep-1 + }, + { // Entry 248 + 0x1.8b7809bb86ae17ec6c24da984138f419p-2, + 0x1.81b612840dbaep-2 + }, + { // Entry 249 + -0x1.8b7809bb86ae17ec6c24da984138f419p-2, + -0x1.81b612840dbaep-2 + }, + { // Entry 250 + 0x1.8f91c0fb8e2e97ef847eab1159f00cc6p-2, + 0x1.8581ade28355fp-2 + }, + { // Entry 251 + -0x1.8f91c0fb8e2e97ef847eab1159f00cc6p-2, + -0x1.8581ade28355fp-2 + }, + { // Entry 252 + 0x1.8c16f3fc4a5840013187c62d948aa003p-3, + 0x1.89ap-3 + }, + { // Entry 253 + -0x1.8c16f3fc4a5840013187c62d948aa003p-3, + -0x1.89ap-3 + }, + { // Entry 254 + 0x1.c1e120b980b3cf3fbf17268200fc8ffbp-1, + 0x1.8a2f2f54d849ep-1 + }, + { // Entry 255 + -0x1.c1e120b980b3cf3fbf17268200fc8ffbp-1, + -0x1.8a2f2f54d849ep-1 + }, + { // Entry 256 + 0x1.95b5a93656211806335e5300e251533cp-2, + 0x1.8b2da077338c2p-2 + }, + { // Entry 257 + -0x1.95b5a93656211806335e5300e251533cp-2, + -0x1.8b2da077338c2p-2 + }, + { // Entry 258 + 0x1.90cc7766b33bd000fff143442b4e2043p-4, + 0x1.9028ceb4afd2cp-4 + }, + { // Entry 259 + -0x1.90cc7766b33bd000fff143442b4e2043p-4, + -0x1.9028ceb4afd2cp-4 + }, + { // Entry 260 + 0x1.cbe2739ce56927fbb7d0777fc5057965p-1, + 0x1.907e632b1000ep-1 + }, + { // Entry 261 + -0x1.cbe2739ce56927fbb7d0777fc5057965p-1, + -0x1.907e632b1000ep-1 + }, + { // Entry 262 + 0x1.9eff7d224a10cffd0ccc2eea39c4ecacp-2, + 0x1.93bb0fc0700b7p-2 + }, + { // Entry 263 + -0x1.9eff7d224a10cffd0ccc2eea39c4ecacp-2, + -0x1.93bb0fc0700b7p-2 + }, + { // Entry 264 + 0x1.a0552aa49b7117fa53b105630024fe49p-2, + 0x1.94f4f95477d9ep-2 + }, + { // Entry 265 + -0x1.a0552aa49b7117fa53b105630024fe49p-2, + -0x1.94f4f95477d9ep-2 + }, + { // Entry 266 + 0x1.994ffb5daf0f97ffffffffffffa81adap-3, + 0x1.9697cb602c582p-3 + }, + { // Entry 267 + -0x1.994ffb5daf0f97ffffffffffffa81adap-3, + -0x1.9697cb602c582p-3 + }, + { // Entry 268 + 0x1.98ad7f9954c2c000dda10069f24bfb9fp-4, + 0x1.980p-4 + }, + { // Entry 269 + -0x1.98ad7f9954c2c000dda10069f24bfb9fp-4, + -0x1.980p-4 + }, + { // Entry 270 + 0x1.9c618aafabed50000080bb9d9c6d602ep-3, + 0x1.999999a45e898p-3 + }, + { // Entry 271 + -0x1.9c618aafabed50000080bb9d9c6d602ep-3, + -0x1.999999a45e898p-3 + }, + { // Entry 272 + 0x1.9c618aafac061003732b347dbb6bf610p-3, + 0x1.999999a45ea1cp-3 + }, + { // Entry 273 + -0x1.9c618aafac061003732b347dbb6bf610p-3, + -0x1.999999a45ea1cp-3 + }, + { // Entry 274 + 0x1.9c618ab54a7b2ffe4628191f82391647p-3, + 0x1.999999a9e006dp-3 + }, + { // Entry 275 + -0x1.9c618ab54a7b2ffe4628191f82391647p-3, + -0x1.999999a9e006dp-3 + }, + { // Entry 276 + 0x1.9c618ab55b092ffd804a3f4bc32f43c6p-3, + 0x1.999999a9f03f3p-3 + }, + { // Entry 277 + -0x1.9c618ab55b092ffd804a3f4bc32f43c6p-3, + -0x1.999999a9f03f3p-3 + }, + { // Entry 278 + 0x1.ddedf400713097ce31df0888bcde8d69p-1, + 0x1.9b7c1d9445413p-1 + }, + { // Entry 279 + -0x1.ddedf400713097ce31df0888bcde8d69p-1, + -0x1.9b7c1d9445413p-1 + }, + { // Entry 280 + 0x1.eca34562d4a0d79516186d1c200eae46p-1, + 0x1.a410ef3ffe9b1p-1 + }, + { // Entry 281 + -0x1.eca34562d4a0d79516186d1c200eae46p-1, + -0x1.a410ef3ffe9b1p-1 + }, + { // Entry 282 + 0x1.f90469438f616801edb23ef0fcf7a322p-1, + 0x1.ab053825fa3c7p-1 + }, + { // Entry 283 + -0x1.f90469438f616801edb23ef0fcf7a322p-1, + -0x1.ab053825fa3c7p-1 + }, + { // Entry 284 + 0x1.b000000000cd0800000106bc80666823p-20, + 0x1.bp-20 + }, + { // Entry 285 + -0x1.b000000000cd0800000106bc80666823p-20, + -0x1.bp-20 + }, + { // Entry 286 + 0x1.b3b0da67543b3807834a8feb1c1eba94p-3, + 0x1.b0696dec2c0a1p-3 + }, + { // Entry 287 + -0x1.b3b0da67543b3807834a8feb1c1eba94p-3, + -0x1.b0696dec2c0a1p-3 + }, + { // Entry 288 + 0x1.04179cbe1e5c1fffff818794e482d547p0, + 0x1.b333333761245p-1 + }, + { // Entry 289 + -0x1.04179cbe1e5c1fffff818794e482d547p0, + -0x1.b333333761245p-1 + }, + { // Entry 290 + 0x1.b34d1c29d5ccbffecdc2bdebc095bf13p-6, + 0x1.b34p-6 + }, + { // Entry 291 + -0x1.b34d1c29d5ccbffecdc2bdebc095bf13p-6, + -0x1.b34p-6 + }, + { // Entry 292 + 0x1.0554bb3242a2a800df4cee49ca092177p0, + 0x1.b48p-1 + }, + { // Entry 293 + -0x1.0554bb3242a2a800df4cee49ca092177p0, + -0x1.b48p-1 + }, + { // Entry 294 + 0x1.b8a88f38bc5ac8137e8c7eb54443675ep-3, + 0x1.b54423c1483e2p-3 + }, + { // Entry 295 + -0x1.b8a88f38bc5ac8137e8c7eb54443675ep-3, + -0x1.b54423c1483e2p-3 + }, + { // Entry 296 + 0x1.07d8cdf7eeee880fbc5277faa149e24ap0, + 0x1.b71bdc2c4ecf6p-1 + }, + { // Entry 297 + -0x1.07d8cdf7eeee880fbc5277faa149e24ap0, + -0x1.b71bdc2c4ecf6p-1 + }, + { // Entry 298 + 0x1.bf06ca3159a247fffd949acbf7190141p-6, + 0x1.bef89775b5e88p-6 + }, + { // Entry 299 + -0x1.bf06ca3159a247fffd949acbf7190141p-6, + -0x1.bef89775b5e88p-6 + }, + { // Entry 300 + 0x1.ce8c7a50bddbaffeae205209c4b290fcp-2, + 0x1.befa8c764e35dp-2 + }, + { // Entry 301 + -0x1.ce8c7a50bddbaffeae205209c4b290fcp-2, + -0x1.befa8c764e35dp-2 + }, + { // Entry 302 + 0x1.cf79cf3c63f057d0885a264fa7e14a24p-2, + 0x1.bfd007a1b1a48p-2 + }, + { // Entry 303 + -0x1.cf79cf3c63f057d0885a264fa7e14a24p-2, + -0x1.bfd007a1b1a48p-2 + }, + { // Entry 304 + 0x1.c0e0d42a150f980e71b5f03eded5070fp-23, + 0x1.c0e0d42a150c0p-23 + }, + { // Entry 305 + -0x1.c0e0d42a150f980e71b5f03eded5070fp-23, + -0x1.c0e0d42a150c0p-23 + }, + { // Entry 306 + 0x1.c14a6c452bfa080160389f80233eca63p-6, + 0x1.c13c020751a78p-6 + }, + { // Entry 307 + -0x1.c14a6c452bfa080160389f80233eca63p-6, + -0x1.c13c020751a78p-6 + }, + { // Entry 308 + 0x1.d11a7b81b1c1e79cf616ad2e273afb43p-2, + 0x1.c1469a15e68f5p-2 + }, + { // Entry 309 + -0x1.d11a7b81b1c1e79cf616ad2e273afb43p-2, + -0x1.c1469a15e68f5p-2 + }, + { // Entry 310 + 0x1.16f4bb864adfc800008fd38fd1e04261p0, + 0x1.c5e01019009efp-1 + }, + { // Entry 311 + -0x1.16f4bb864adfc800008fd38fd1e04261p0, + -0x1.c5e01019009efp-1 + }, + { // Entry 312 + 0x1.c678548c22ba90p-115, + 0x1.c678548c22ba9p-115 + }, + { // Entry 313 + -0x1.c678548c22ba90p-115, + -0x1.c678548c22ba9p-115 + }, + { // Entry 314 + 0x1.d7efd0e20d07d8013801e962e317e549p-2, + 0x1.c767fffffffffp-2 + }, + { // Entry 315 + -0x1.d7efd0e20d07d8013801e962e317e549p-2, + -0x1.c767fffffffffp-2 + }, + { // Entry 316 + 0x1.c9e63f1fe0f0e821b29667bc4eb4d50bp-4, + 0x1.c8f23c8f23c8cp-4 + }, + { // Entry 317 + -0x1.c9e63f1fe0f0e821b29667bc4eb4d50bp-4, + -0x1.c8f23c8f23c8cp-4 + }, + { // Entry 318 + 0x1.1ea9370e567be7ffffffe01e15866a33p0, + 0x1.ccccccd416c08p-1 + }, + { // Entry 319 + -0x1.1ea9370e567be7ffffffe01e15866a33p0, + -0x1.ccccccd416c08p-1 + }, + { // Entry 320 + 0x1.22927e6073b4c80000d27967f2a7a4f7p0, + 0x1.d027e48f2c2bap-1 + }, + { // Entry 321 + -0x1.22927e6073b4c80000d27967f2a7a4f7p0, + -0x1.d027e48f2c2bap-1 + }, + { // Entry 322 + 0x1.d2e000000102cdc6eb418359d0682dedp-20, + 0x1.d2ep-20 + }, + { // Entry 323 + -0x1.d2e000000102cdc6eb418359d0682dedp-20, + -0x1.d2ep-20 + }, + { // Entry 324 + 0x1.281b4c2fcafe57fe16b4679be76d29f5p0, + 0x1.d4b81182fe13bp-1 + }, + { // Entry 325 + -0x1.281b4c2fcafe57fe16b4679be76d29f5p0, + -0x1.d4b81182fe13bp-1 + }, + { // Entry 326 + 0x1.e70a08011eeb97fb46e212681fd509f0p-2, + 0x1.d4e205cadb381p-2 + }, + { // Entry 327 + -0x1.e70a08011eeb97fb46e212681fd509f0p-2, + -0x1.d4e205cadb381p-2 + }, + { // Entry 328 + 0x1.d90d0803393b9819fec9e92bfd414223p-4, + 0x1.d80p-4 + }, + { // Entry 329 + -0x1.d90d0803393b9819fec9e92bfd414223p-4, + -0x1.d80p-4 + }, + { // Entry 330 + 0x1.3172527a00f7e8002439c6d9f1d3590dp0, + 0x1.dbec0e2ae5bdbp-1 + }, + { // Entry 331 + -0x1.3172527a00f7e8002439c6d9f1d3590dp0, + -0x1.dbec0e2ae5bdbp-1 + }, + { // Entry 332 + 0x1.dd2bf488d4241c11bf324d508cfacbeap-11, + 0x1.dd2bf03799278p-11 + }, + { // Entry 333 + -0x1.dd2bf488d4241c11bf324d508cfacbeap-11, + -0x1.dd2bf03799278p-11 + }, + { // Entry 334 + 0x1.f192112f19e6f7fc311ba78ec60abb13p-2, + 0x1.de386d60903a5p-2 + }, + { // Entry 335 + -0x1.f192112f19e6f7fc311ba78ec60abb13p-2, + -0x1.de386d60903a5p-2 + }, + { // Entry 336 + 0x1.f408515902f777fad5cb629690c96e8cp-2, + 0x1.e0655f628fcc4p-2 + }, + { // Entry 337 + -0x1.f408515902f777fad5cb629690c96e8cp-2, + -0x1.e0655f628fcc4p-2 + }, + { // Entry 338 + 0x1.f425d0cdf031d78d14e47ef92c30410dp-2, + 0x1.e07f6c11f3ad7p-2 + }, + { // Entry 339 + -0x1.f425d0cdf031d78d14e47ef92c30410dp-2, + -0x1.e07f6c11f3ad7p-2 + }, + { // Entry 340 + 0x1.e4c86c3587e888034c71e60a370d6263p-5, + 0x1.e48p-5 + }, + { // Entry 341 + -0x1.e4c86c3587e888034c71e60a370d6263p-5, + -0x1.e48p-5 + }, + { // Entry 342 + 0x1.e6c2ee85159eeffd05dd82882578d1d4p-5, + 0x1.e6799e6799e64p-5 + }, + { // Entry 343 + -0x1.e6c2ee85159eeffd05dd82882578d1d4p-5, + -0x1.e6799e6799e64p-5 + }, + { // Entry 344 + 0x1.e92973bd05fb21d34afdf692cee7c5d5p-4, + 0x1.e80p-4 + }, + { // Entry 345 + -0x1.e92973bd05fb21d34afdf692cee7c5d5p-4, + -0x1.e80p-4 + }, + { // Entry 346 + 0x1.eb3228982dcb8aaa55776e8b9ba3cd25p-4, + 0x1.ea04fb75153f7p-4 + }, + { // Entry 347 + -0x1.eb3228982dcb8aaa55776e8b9ba3cd25p-4, + -0x1.ea04fb75153f7p-4 + }, + { // Entry 348 + 0x1.f026f488662fc51b1e6d97371bb4f957p-3, + 0x1.eb50295fad425p-3 + }, + { // Entry 349 + -0x1.f026f488662fc51b1e6d97371bb4f957p-3, + -0x1.eb50295fad425p-3 + }, + { // Entry 350 + 0x1.eb63051149d3b7822ba54208fc03580ep-6, + 0x1.eb50295fad425p-6 + }, + { // Entry 351 + -0x1.eb63051149d3b7822ba54208fc03580ep-6, + -0x1.eb50295fad425p-6 + }, + { // Entry 352 + 0x1.4a55ae332c7a4c09ea98e7d59d9872dfp0, + 0x1.ec0p-1 + }, + { // Entry 353 + -0x1.4a55ae332c7a4c09ea98e7d59d9872dfp0, + -0x1.ec0p-1 + }, + { // Entry 354 + 0x1.4c655babcbe0b41389bc82e9f12e67c7p0, + 0x1.ed2p-1 + }, + { // Entry 355 + -0x1.4c655babcbe0b41389bc82e9f12e67c7p0, + -0x1.ed2p-1 + }, + { // Entry 356 + 0x1.4ff93f191d3694ab593de5dd6371b96fp0, + 0x1.ef00708a54b2cp-1 + }, + { // Entry 357 + -0x1.4ff93f191d3694ab593de5dd6371b96fp0, + -0x1.ef00708a54b2cp-1 + }, + { // Entry 358 + 0x1.ef77ab8e8feff4c39e94fa09320902abp-21, + 0x1.ef77ab8e8fa2ap-21 + }, + { // Entry 359 + -0x1.ef77ab8e8feff4c39e94fa09320902abp-21, + -0x1.ef77ab8e8fa2ap-21 + }, + { // Entry 360 + 0x1.efe5d9610962p-114, + 0x1.efe5d96109620p-114 + }, + { // Entry 361 + -0x1.efe5d9610962p-114, + -0x1.efe5d96109620p-114 + }, + { // Entry 362 + 0x1.51f4bd13f858ebf929a2088e2df34c72p0, + 0x1.effffffffffffp-1 + }, + { // Entry 363 + -0x1.51f4bd13f858ebf929a2088e2df34c72p0, + -0x1.effffffffffffp-1 + }, + { // Entry 364 + 0x1.52f8c72726a5343c6b1f75919edb5695p0, + 0x1.f08p-1 + }, + { // Entry 365 + -0x1.52f8c72726a5343c6b1f75919edb5695p0, + -0x1.f08p-1 + }, + { // Entry 366 + 0x1.54a5553221e80bf87bdb823192526176p0, + 0x1.f14e94d8d2e1ep-1 + }, + { // Entry 367 + -0x1.54a5553221e80bf87bdb823192526176p0, + -0x1.f14e94d8d2e1ep-1 + }, + { // Entry 368 + 0x1.5587523c7468b4173cf688f3219a184bp0, + 0x1.f1b9535b4f194p-1 + }, + { // Entry 369 + -0x1.5587523c7468b4173cf688f3219a184bp0, + -0x1.f1b9535b4f194p-1 + }, + { // Entry 370 + 0x1.56f4285735ecd7fe51444aebf353c0fbp0, + 0x1.f26274adac979p-1 + }, + { // Entry 371 + -0x1.56f4285735ecd7fe51444aebf353c0fbp0, + -0x1.f26274adac979p-1 + }, + { // Entry 372 + 0x1.6a45631fc69f340139208a9ea48fe11ap0, + 0x1.f9cef541d5e40p-1 + }, + { // Entry 373 + -0x1.6a45631fc69f340139208a9ea48fe11ap0, + -0x1.f9cef541d5e40p-1 + }, + { // Entry 374 + 0x1.fa639fc0adc0454cb19c822984da84edp-10, + 0x1.fa638b1ceed60p-10 + }, + { // Entry 375 + -0x1.fa639fc0adc0454cb19c822984da84edp-10, + -0x1.fa638b1ceed60p-10 + }, + { // Entry 376 + 0x1.fbf655a75453f895b93ae4abf4622da1p-5, + 0x1.fba3053043e65p-5 + }, + { // Entry 377 + -0x1.fbf655a75453f895b93ae4abf4622da1p-5, + -0x1.fba3053043e65p-5 + }, + { // Entry 378 + 0x1.7b802087557af76d96f304c0322df996p0, + 0x1.fe0084356e6d3p-1 + }, + { // Entry 379 + -0x1.7b802087557af76d96f304c0322df996p0, + -0x1.fe0084356e6d3p-1 + }, + { // Entry 380 + 0x1.7b8020890cf9e76f8fbc0fabd64eff53p0, + 0x1.fe008435bc011p-1 + }, + { // Entry 381 + -0x1.7b8020890cf9e76f8fbc0fabd64eff53p0, + -0x1.fe008435bc011p-1 + }, + { // Entry 382 + 0x1.7e1781bb355ec7803ff31d5be8def463p0, + 0x1.fe6eec178dfcbp-1 + }, + { // Entry 383 + -0x1.7e1781bb355ec7803ff31d5be8def463p0, + -0x1.fe6eec178dfcbp-1 + }, + { // Entry 384 + 0x1.7e2f2046c07b287fa8dea80ba23ad32dp0, + 0x1.fe729b3d76af8p-1 + }, + { // Entry 385 + -0x1.7e2f2046c07b287fa8dea80ba23ad32dp0, + -0x1.fe729b3d76af8p-1 + }, + { // Entry 386 + 0x1.7e2f2de8b8a817806d1670be6f754d6dp0, + 0x1.fe729d5c93ad0p-1 + }, + { // Entry 387 + -0x1.7e2f2de8b8a817806d1670be6f754d6dp0, + -0x1.fe729d5c93ad0p-1 + }, + { // Entry 388 + 0x1.ff49880d5a20aac3e3526e6cf9e09cb8p-10, + 0x1.ff4972cecbed8p-10 + }, + { // Entry 389 + -0x1.ff49880d5a20aac3e3526e6cf9e09cb8p-10, + -0x1.ff4972cecbed8p-10 + }, + { // Entry 390 + 0x1.ff87e144b3d5285c831c0483be2e06a7p-6, + 0x1.ff729b33a450ap-6 + }, + { // Entry 391 + -0x1.ff87e144b3d5285c831c0483be2e06a7p-6, + -0x1.ff729b33a450ap-6 + }, + { // Entry 392 + 0x1.027c7bd81acdf7fffe09c8613b3ac04ap-2, + 0x1.ff7feffffffffp-3 + }, + { // Entry 393 + -0x1.027c7bd81acdf7fffe09c8613b3ac04ap-2, + -0x1.ff7feffffffffp-3 + }, + { // Entry 394 + 0x1.ff8ffffffffff0000000551d619470aap-41, + 0x1.ff8ffffffffffp-41 + }, + { // Entry 395 + -0x1.ff8ffffffffff0000000551d619470aap-41, + -0x1.ff8ffffffffffp-41 + }, + { // Entry 396 + 0x1.0bf4cf34f3faeff2e4c6b885b77bb549p-1, + 0x1.ffc7fffffffffp-2 + }, + { // Entry 397 + -0x1.0bf4cf34f3faeff2e4c6b885b77bb549p-1, + -0x1.ffc7fffffffffp-2 + }, + { // Entry 398 + 0x1.8ab0d642e4c54804398ead7dd2453377p0, + 0x1.ffc8c0c7e6e1ap-1 + }, + { // Entry 399 + -0x1.8ab0d642e4c54804398ead7dd2453377p0, + -0x1.ffc8c0c7e6e1ap-1 + }, + { // Entry 400 + 0x1.8bbc3fa798db6800007c1f9be356a554p0, + 0x1.ffd730634939cp-1 + }, + { // Entry 401 + -0x1.8bbc3fa798db6800007c1f9be356a554p0, + -0x1.ffd730634939cp-1 + }, + { // Entry 402 + 0x1.8bc09a510098b804dee9939611959c0ep0, + 0x1.ffd767f0eb014p-1 + }, + { // Entry 403 + -0x1.8bc09a510098b804dee9939611959c0ep0, + -0x1.ffd767f0eb014p-1 + }, + { // Entry 404 + 0x1.0022b9e6710f97fcdf56a91cace59e6dp-4, + 0x1.fff000000000ap-5 + }, + { // Entry 405 + -0x1.0022b9e6710f97fcdf56a91cace59e6dp-4, + -0x1.fff000000000ap-5 + }, + { // Entry 406 + 0x1.fff1065375e97dcce338cf6e9331a5d9p-10, + 0x1.fff0f0fffffffp-10 + }, + { // Entry 407 + -0x1.fff1065375e97dcce338cf6e9331a5d9p-10, + -0x1.fff0f0fffffffp-10 + }, + { // Entry 408 + 0x1.0c10851c1a1097dc3df97865c5caec5bp-1, + 0x1.fff7fffffffffp-2 + }, + { // Entry 409 + -0x1.0c10851c1a1097dc3df97865c5caec5bp-1, + -0x1.fff7fffffffffp-2 + }, + { // Entry 410 + 0x1.02be94db85e837fffd06abd4bb6eb065p-2, + 0x1.fffff077fffaep-3 + }, + { // Entry 411 + -0x1.02be94db85e837fffd06abd4bb6eb065p-2, + -0x1.fffff077fffaep-3 + }, + { // Entry 412 + 0x1.ffffff4555553f7bbbbd352972db79p-15, + 0x1.ffffff3ffffffp-15 + }, + { // Entry 413 + -0x1.ffffff4555553f7bbbbd352972db79p-15, + -0x1.ffffff3ffffffp-15 + }, + { // Entry 414 + 0x1.00abe0c026d6980000ee7b5b3c750ee4p-3, + 0x1.fffffffdfdf9bp-4 + }, + { // Entry 415 + -0x1.00abe0c026d6980000ee7b5b3c750ee4p-3, + -0x1.fffffffdfdf9bp-4 + }, + { // Entry 416 + 0x1.921e7bbb5b08af737a8c86a1f3470fb7p0, + 0x1.fffffffe7ffffp-1 + }, + { // Entry 417 + -0x1.921e7bbb5b08af737a8c86a1f3470fb7p0, + -0x1.fffffffe7ffffp-1 + }, + { // Entry 418 + 0x1.921e91836230570dcee4fe03756f458cp0, + 0x1.fffffffeb37ffp-1 + }, + { // Entry 419 + -0x1.921e91836230570dcee4fe03756f458cp0, + -0x1.fffffffeb37ffp-1 + }, + { // Entry 420 + 0x1.0002aabdac7327ffffd50d8db1e7238cp-6, + 0x1.ffffffff9bbffp-7 + }, + { // Entry 421 + -0x1.0002aabdac7327ffffd50d8db1e7238cp-6, + -0x1.ffffffff9bbffp-7 + }, + { // Entry 422 + 0x1.00abe0c121d1a80c0ce870896b905389p-3, + 0x1.ffffffffeffffp-4 + }, + { // Entry 423 + -0x1.00abe0c121d1a80c0ce870896b905389p-3, + -0x1.ffffffffeffffp-4 + }, + { // Entry 424 + 0x1.0002aabdde7237febfdec02e5706bab1p-6, + 0x1.ffffffffffbafp-7 + }, + { // Entry 425 + -0x1.0002aabdde7237febfdec02e5706bab1p-6, + -0x1.ffffffffffbafp-7 + }, + { // Entry 426 + 0x1.002abde95358d80170fb3700a02d872dp-4, + 0x1.ffffffffffee9p-5 + }, + { // Entry 427 + -0x1.002abde95358d80170fb3700a02d872dp-4, + -0x1.ffffffffffee9p-5 + }, + { // Entry 428 + 0x1.921fb2cdef21d7febc9f3f1b1d1683b0p0, + 0x1.fffffffffff9fp-1 + }, + { // Entry 429 + -0x1.921fb2cdef21d7febc9f3f1b1d1683b0p0, + -0x1.fffffffffff9fp-1 + }, + { // Entry 430 + 0x1.921fb48f3dde506fab247b4dc86ea6e0p0, + 0x1.ffffffffffff8p-1 + }, + { // Entry 431 + -0x1.921fb48f3dde506fab247b4dc86ea6e0p0, + -0x1.ffffffffffff8p-1 + }, + { // Entry 432 + 0x1.02be9ce0b87c980fa863b980f3eb6ed8p-2, + 0x1.ffffffffffff9p-3 + }, + { // Entry 433 + -0x1.02be9ce0b87c980fa863b980f3eb6ed8p-2, + -0x1.ffffffffffff9p-3 + }, + { // Entry 434 + 0x1.0c152382d73658465bb32e0f567ad116p-1, + 0x1.0p-1 + }, + { // Entry 435 + -0x1.0c152382d73658465bb32e0f567ad116p-1, + -0x1.0p-1 + }, + { // Entry 436 + 0x1.0c152382d73658465bb32e0f567ad116p-1, + 0x1.0p-1 + }, + { // Entry 437 + -0x1.0c152382d73658465bb32e0f567ad116p-1, + -0x1.0p-1 + }, + { // Entry 438 + 0x1.4a1ce4ed5846e1103ebca2dd90e3eb3fp-1, + 0x1.33b645a1cac08p-1 + }, + { // Entry 439 + -0x1.4a1ce4ed5846e1103ebca2dd90e3eb3fp-1, + -0x1.33b645a1cac08p-1 + }, + { // Entry 440 + 0x1.921fb54442d177a2e305f4ec49b839a2p-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 441 + -0x1.921fb54442d177a2e305f4ec49b839a2p-1, + -0x1.6a09e667f3bccp-1 + }, + { // Entry 442 + 0x1.921fb54442d177a2e305f4ec49b839a2p-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 443 + -0x1.921fb54442d177a2e305f4ec49b839a2p-1, + -0x1.6a09e667f3bccp-1 + }, + { // Entry 444 + -0x1.b235315c680dc081583db360d5e1fa18p-1, + -0x1.8p-1 + }, + { // Entry 445 + 0x1.b235315c680dc081583db360d5e1fa18p-1, + 0x1.8p-1 + }, + { // Entry 446 + 0x1.0c152382d736510b363f009eddefddebp0, + 0x1.bb67ae8584caap-1 + }, + { // Entry 447 + -0x1.0c152382d736510b363f009eddefddebp0, + -0x1.bb67ae8584caap-1 + }, + { // Entry 448 + 0x1.0c152382d736510b363f009eddefddebp0, + 0x1.bb67ae8584caap-1 + }, + { // Entry 449 + -0x1.0c152382d736510b363f009eddefddebp0, + -0x1.bb67ae8584caap-1 + }, + { // Entry 450 + 0x1.908138a8b9ab762dbe47f3cc71dd77a4p0, + 0x1.fffd60e94ee39p-1 + }, + { // Entry 451 + -0x1.908138a8b9ab762dbe47f3cc71dd77a4p0, + -0x1.fffd60e94ee39p-1 + }, + { // Entry 452 + 0x1.p-82, + 0x1.0p-82 + }, + { // Entry 453 + -0x1.p-82, + -0x1.0p-82 + }, + { // Entry 454 + 0x1.0000000000000000000000000000000ap-61, + 0x1.0p-61 + }, + { // Entry 455 + -0x1.0000000000000000000000000000000ap-61, + -0x1.0p-61 + }, + { // Entry 456 + 0x1.0000000000000000000002aaaaaaaaaap-42, + 0x1.0p-42 + }, + { // Entry 457 + -0x1.0000000000000000000002aaaaaaaaaap-42, + -0x1.0p-42 + }, + { // Entry 458 + 0x1.000000000002aaaaaaaaaabdddddddddp-22, + 0x1.0p-22 + }, + { // Entry 459 + -0x1.000000000002aaaaaaaaaabdddddddddp-22, + -0x1.0p-22 + }, + { // Entry 460 + 0x1.6a0a049378647a1e52ffdf31536df951p-9, + 0x1.6a09e667f3bcbp-9 + }, + { // Entry 461 + -0x1.6a0a049378647a1e52ffdf31536df951p-9, + -0x1.6a09e667f3bcbp-9 + }, + { // Entry 462 + 0x1.6a0a049378648a1e56ffe0b1540df936p-9, + 0x1.6a09e667f3bccp-9 + }, + { // Entry 463 + -0x1.6a0a049378648a1e56ffe0b1540df936p-9, + -0x1.6a09e667f3bccp-9 + }, + { // Entry 464 + 0x1.6a0a049378649a1e5affe23154adf976p-9, + 0x1.6a09e667f3bcdp-9 + }, + { // Entry 465 + -0x1.6a0a049378649a1e5affe23154adf976p-9, + -0x1.6a09e667f3bcdp-9 + }, + { // Entry 466 + 0x1.6a0a5f1657d1bf22d957bf86231eed1ap-8, + 0x1.6a09e667f3bcbp-8 + }, + { // Entry 467 + -0x1.6a0a5f1657d1bf22d957bf86231eed1ap-8, + -0x1.6a09e667f3bcbp-8 + }, + { // Entry 468 + 0x1.6a0a5f1657d1cf22e957d7864b1f3199p-8, + 0x1.6a09e667f3bccp-8 + }, + { // Entry 469 + -0x1.6a0a5f1657d1cf22e957d7864b1f3199p-8, + -0x1.6a09e667f3bccp-8 + }, + { // Entry 470 + 0x1.6a0a5f1657d1df22f957ef86731f7782p-8, + 0x1.6a09e667f3bcdp-8 + }, + { // Entry 471 + -0x1.6a0a5f1657d1df22f957ef86731f7782p-8, + -0x1.6a09e667f3bcdp-8 + }, + { // Entry 472 + 0x1.6a0bc9269b86124131fa4b997808aec8p-7, + 0x1.6a09e667f3bcbp-7 + }, + { // Entry 473 + -0x1.6a0bc9269b86124131fa4b997808aec8p-7, + -0x1.6a09e667f3bcbp-7 + }, + { // Entry 474 + 0x1.6a0bc9269b86224171fbcba3784eaabap-7, + 0x1.6a09e667f3bccp-7 + }, + { // Entry 475 + -0x1.6a0bc9269b86224171fbcba3784eaabap-7, + -0x1.6a09e667f3bccp-7 + }, + { // Entry 476 + 0x1.6a0bc9269b863241b1fd4bad7894ac55p-7, + 0x1.6a09e667f3bcdp-7 + }, + { // Entry 477 + -0x1.6a0bc9269b863241b1fd4bad7894ac55p-7, + -0x1.6a09e667f3bcdp-7 + }, + { // Entry 478 + 0x1.6a1171b40fe3d57da5c2e2ec8650d873p-6, + 0x1.6a09e667f3bcbp-6 + }, + { // Entry 479 + -0x1.6a1171b40fe3d57da5c2e2ec8650d873p-6, + -0x1.6a09e667f3bcbp-6 + }, + { // Entry 480 + 0x1.6a1171b40fe3e57ea5dae56ccc58a13ep-6, + 0x1.6a09e667f3bccp-6 + }, + { // Entry 481 + -0x1.6a1171b40fe3e57ea5dae56ccc58a13ep-6, + -0x1.6a09e667f3bccp-6 + }, + { // Entry 482 + 0x1.6a1171b40fe3f57fa5f2e7ed126080afp-6, + 0x1.6a09e667f3bcdp-6 + }, + { // Entry 483 + -0x1.6a1171b40fe3f57fa5f2e7ed126080afp-6, + -0x1.6a09e667f3bcdp-6 + }, + { // Entry 484 + 0x1.6a2818b1a0bd5f9b490a8ffd372921ffp-5, + 0x1.6a09e667f3bcbp-5 + }, + { // Entry 485 + -0x1.6a2818b1a0bd5f9b490a8ffd372921ffp-5, + -0x1.6a09e667f3bcbp-5 + }, + { // Entry 486 + 0x1.6a2818b1a0bd6f9f4a8b304356b73812p-5, + 0x1.6a09e667f3bccp-5 + }, + { // Entry 487 + -0x1.6a2818b1a0bd6f9f4a8b304356b73812p-5, + -0x1.6a09e667f3bccp-5 + }, + { // Entry 488 + 0x1.6a2818b1a0bd7fa34c0bd0897645a8ebp-5, + 0x1.6a09e667f3bcdp-5 + }, + { // Entry 489 + -0x1.6a2818b1a0bd7fa34c0bd0897645a8ebp-5, + -0x1.6a09e667f3bcdp-5 + }, + { // Entry 490 + 0x1.6a83017dfb54c538079f0571169f7c03p-4, + 0x1.6a09e667f3bcbp-4 + }, + { // Entry 491 + -0x1.6a83017dfb54c538079f0571169f7c03p-4, + -0x1.6a09e667f3bcbp-4 + }, + { // Entry 492 + 0x1.6a83017dfb54d5481fc74befff4e205fp-4, + 0x1.6a09e667f3bccp-4 + }, + { // Entry 493 + -0x1.6a83017dfb54d5481fc74befff4e205fp-4, + -0x1.6a09e667f3bccp-4 + }, + { // Entry 494 + 0x1.6a83017dfb54e55837ef926ee7fe330dp-4, + 0x1.6a09e667f3bcdp-4 + }, + { // Entry 495 + -0x1.6a83017dfb54e55837ef926ee7fe330dp-4, + -0x1.6a09e667f3bcdp-4 + }, + { // Entry 496 + 0x1.6bf38916421401c3b5732e0d6b50ebd0p-3, + 0x1.6a09e667f3bcbp-3 + }, + { // Entry 497 + -0x1.6bf38916421401c3b5732e0d6b50ebd0p-3, + -0x1.6a09e667f3bcbp-3 + }, + { // Entry 498 + 0x1.6bf38916421412053fbb34ebe8221436p-3, + 0x1.6a09e667f3bccp-3 + }, + { // Entry 499 + -0x1.6bf38916421412053fbb34ebe8221436p-3, + -0x1.6a09e667f3bccp-3 + }, + { // Entry 500 + 0x1.6bf3891642142246ca033bca64f92b66p-3, + 0x1.6a09e667f3bcdp-3 + }, + { // Entry 501 + -0x1.6bf3891642142246ca033bca64f92b66p-3, + -0x1.6a09e667f3bcdp-3 + }, + { // Entry 502 + 0x1.720a392c1d952d8e8ad756e1430b13d1p-2, + 0x1.6a09e667f3bcbp-2 + }, + { // Entry 503 + -0x1.720a392c1d952d8e8ad756e1430b13d1p-2, + -0x1.6a09e667f3bcbp-2 + }, + { // Entry 504 + 0x1.720a392c1d953ea959bcb7056cb6fa96p-2, + 0x1.6a09e667f3bccp-2 + }, + { // Entry 505 + -0x1.720a392c1d953ea959bcb7056cb6fa96p-2, + -0x1.6a09e667f3bccp-2 + }, + { // Entry 506 + 0x1.720a392c1d954fc428a21729967e8694p-2, + 0x1.6a09e667f3bcdp-2 + }, + { // Entry 507 + -0x1.720a392c1d954fc428a21729967e8694p-2, + -0x1.6a09e667f3bcdp-2 + }, + { // Entry 508 + 0x1.bb67e5f28d500f1ccaec1a38d240d53fp-9, + 0x1.bb67ae8584ca9p-9 + }, + { // Entry 509 + -0x1.bb67e5f28d500f1ccaec1a38d240d53fp-9, + -0x1.bb67ae8584ca9p-9 + }, + { // Entry 510 + 0x1.bb67e5f28d501f1cd0ec1d98d45cd638p-9, + 0x1.bb67ae8584caap-9 + }, + { // Entry 511 + -0x1.bb67e5f28d501f1cd0ec1d98d45cd638p-9, + -0x1.bb67ae8584caap-9 + }, + { // Entry 512 + 0x1.bb67e5f28d502f1cd6ec20f8d678d7a0p-9, + 0x1.bb67ae8584cabp-9 + }, + { // Entry 513 + -0x1.bb67e5f28d502f1cd6ec20f8d678d7a0p-9, + -0x1.bb67ae8584cabp-9 + }, + { // Entry 514 + 0x1.bb688c3a875bcb79b1d1fd5de10c96d1p-8, + 0x1.bb67ae8584ca9p-8 + }, + { // Entry 515 + -0x1.bb688c3a875bcb79b1d1fd5de10c96d1p-8, + -0x1.bb67ae8584ca9p-8 + }, + { // Entry 516 + 0x1.bb688c3a875bdb79c9d2335e680df78fp-8, + 0x1.bb67ae8584caap-8 + }, + { // Entry 517 + -0x1.bb688c3a875bdb79c9d2335e680df78fp-8, + -0x1.bb67ae8584caap-8 + }, + { // Entry 518 + 0x1.bb688c3a875beb79e1d2695eef0f5a08p-8, + 0x1.bb67ae8584cabp-8 + }, + { // Entry 519 + -0x1.bb688c3a875beb79e1d2695eef0f5a08p-8, + -0x1.bb67ae8584cabp-8 + }, + { // Entry 520 + 0x1.bb6b2567972165018cf35a469b36c5e6p-7, + 0x1.bb67ae8584ca9p-7 + }, + { // Entry 521 + -0x1.bb6b2567972165018cf35a469b36c5e6p-7, + -0x1.bb67ae8584ca9p-7 + }, + { // Entry 522 + 0x1.bb6b256797217501ecf6ba685c992e41p-7, + 0x1.bb67ae8584caap-7 + }, + { // Entry 523 + -0x1.bb6b256797217501ecf6ba685c992e41p-7, + -0x1.bb67ae8584caap-7 + }, + { // Entry 524 + 0x1.bb6b2567972185024cfa1a8a1dfb9d8ap-7, + 0x1.bb67ae8584cabp-7 + }, + { // Entry 525 + -0x1.bb6b2567972185024cfa1a8a1dfb9d8ap-7, + -0x1.bb67ae8584cabp-7 + }, + { // Entry 526 + 0x1.bb758aee66c4f6179c2a4c9e47ed2c98p-6, + 0x1.bb67ae8584ca9p-6 + }, + { // Entry 527 + -0x1.bb758aee66c4f6179c2a4c9e47ed2c98p-6, + -0x1.bb67ae8584ca9p-6 + }, + { // Entry 528 + 0x1.bb758aee66c506191c60550faa88e978p-6, + 0x1.bb67ae8584caap-6 + }, + { // Entry 529 + -0x1.bb758aee66c506191c60550faa88e978p-6, + -0x1.bb67ae8584caap-6 + }, + { // Entry 530 + 0x1.bb758aee66c5161a9c965d810d24c216p-6, + 0x1.bb67ae8584cabp-6 + }, + { // Entry 531 + -0x1.bb758aee66c5161a9c965d810d24c216p-6, + -0x1.bb67ae8584cabp-6 + }, + { // Entry 532 + 0x1.bb9f2e3879c2cf9ea454ab283af7825ap-5, + 0x1.bb67ae8584ca9p-5 + }, + { // Entry 533 + -0x1.bb9f2e3879c2cf9ea454ab283af7825ap-5, + -0x1.bb67ae8584ca9p-5 + }, + { // Entry 534 + 0x1.bb9f2e3879c2dfa4a7b6c88b8acffef5p-5, + 0x1.bb67ae8584caap-5 + }, + { // Entry 535 + -0x1.bb9f2e3879c2dfa4a7b6c88b8acffef5p-5, + -0x1.bb67ae8584caap-5 + }, + { // Entry 536 + 0x1.bb9f2e3879c2efaaab18e5eedaa8eae8p-5, + 0x1.bb67ae8584cabp-5 + }, + { // Entry 537 + -0x1.bb9f2e3879c2efaaab18e5eedaa8eae8p-5, + -0x1.bb67ae8584cabp-5 + }, + { // Entry 538 + 0x1.bc468fc3ecf6b031e5cd5bd050766cd7p-4, + 0x1.bb67ae8584ca9p-4 + }, + { // Entry 539 + -0x1.bc468fc3ecf6b031e5cd5bd050766cd7p-4, + -0x1.bb67ae8584ca9p-4 + }, + { // Entry 540 + 0x1.bc468fc3ecf6c04a1c55c1f784a40b33p-4, + 0x1.bb67ae8584caap-4 + }, + { // Entry 541 + -0x1.bc468fc3ecf6c04a1c55c1f784a40b33p-4, + -0x1.bb67ae8584caap-4 + }, + { // Entry 542 + 0x1.bc468fc3ecf6d06252de281eb8d36cdfp-4, + 0x1.bb67ae8584cabp-4 + }, + { // Entry 543 + -0x1.bc468fc3ecf6d06252de281eb8d36cdfp-4, + -0x1.bb67ae8584cabp-4 + }, + { // Entry 544 + 0x1.bef1bcb08890131f87f550d6c3652dd7p-3, + 0x1.bb67ae8584ca9p-3 + }, + { // Entry 545 + -0x1.bef1bcb08890131f87f550d6c3652dd7p-3, + -0x1.bb67ae8584ca9p-3 + }, + { // Entry 546 + 0x1.bef1bcb0889023830b2750073d51ac87p-3, + 0x1.bb67ae8584caap-3 + }, + { // Entry 547 + -0x1.bef1bcb0889023830b2750073d51ac87p-3, + -0x1.bb67ae8584caap-3 + }, + { // Entry 548 + 0x1.bef1bcb0889033e68e594f37b7459d46p-3, + 0x1.bb67ae8584cabp-3 + }, + { // Entry 549 + -0x1.bef1bcb0889033e68e594f37b7459d46p-3, + -0x1.bb67ae8584cabp-3 + }, + { // Entry 550 + 0x1.ca94936b98a1ffe8286e976abd1b0451p-2, + 0x1.bb67ae8584ca9p-2 + }, + { // Entry 551 + -0x1.ca94936b98a1ffe8286e976abd1b0451p-2, + -0x1.bb67ae8584ca9p-2 + }, + { // Entry 552 + 0x1.ca94936b98a211a8430ed35352bc881bp-2, + 0x1.bb67ae8584caap-2 + }, + { // Entry 553 + -0x1.ca94936b98a211a8430ed35352bc881bp-2, + -0x1.bb67ae8584caap-2 + }, + { // Entry 554 + 0x1.ca94936b98a223685daf0f3be883e2d0p-2, + 0x1.bb67ae8584cabp-2 + }, + { // Entry 555 + -0x1.ca94936b98a223685daf0f3be883e2d0p-2, + -0x1.bb67ae8584cabp-2 + }, + { // Entry 556 + 0x1.fffffffffffff0p-128, + 0x1.fffffffffffffp-128 + }, + { // Entry 557 + -0x1.fffffffffffff0p-128, + -0x1.fffffffffffffp-128 + }, + { // Entry 558 + 0x1.p-127, + 0x1.0p-127 + }, + { // Entry 559 + -0x1.p-127, + -0x1.0p-127 + }, + { // Entry 560 + 0x1.00000000000010p-127, + 0x1.0000000000001p-127 + }, + { // Entry 561 + -0x1.00000000000010p-127, + -0x1.0000000000001p-127 + }, + { // Entry 562 + 0x1.fffffffffffff0p-127, + 0x1.fffffffffffffp-127 + }, + { // Entry 563 + -0x1.fffffffffffff0p-127, + -0x1.fffffffffffffp-127 + }, + { // Entry 564 + 0x1.p-126, + 0x1.0p-126 + }, + { // Entry 565 + -0x1.p-126, + -0x1.0p-126 + }, + { // Entry 566 + 0x1.00000000000010p-126, + 0x1.0000000000001p-126 + }, + { // Entry 567 + -0x1.00000000000010p-126, + -0x1.0000000000001p-126 + }, + { // Entry 568 + -0x1.00000000000010p-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 569 + 0x1.00000000000010p-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 570 + -0x1.p-1022, + -0x1.0p-1022 + }, + { // Entry 571 + 0x1.p-1022, + 0x1.0p-1022 + }, + { // Entry 572 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 573 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 574 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 575 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 576 + -0.0, + -0.0 + }, + { // Entry 577 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 578 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 579 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 580 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 581 + 0x1.p-1022, + 0x1.0p-1022 + }, + { // Entry 582 + -0x1.p-1022, + -0x1.0p-1022 + }, + { // Entry 583 + 0x1.00000000000010p-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 584 + -0x1.00000000000010p-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 585 + 0x1.fffffffffffff005555555555554d57bp-31, + 0x1.fffffffffffffp-31 + }, + { // Entry 586 + -0x1.fffffffffffff005555555555554d57bp-31, + -0x1.fffffffffffffp-31 + }, + { // Entry 587 + 0x1.0000000000000002aaaaaaaaaaaaaabdp-30, + 0x1.0p-30 + }, + { // Entry 588 + -0x1.0000000000000002aaaaaaaaaaaaaabdp-30, + -0x1.0p-30 + }, + { // Entry 589 + 0x1.0000000000001002aaaaaaaaaaab2abdp-30, + 0x1.0000000000001p-30 + }, + { // Entry 590 + -0x1.0000000000001002aaaaaaaaaaab2abdp-30, + -0x1.0000000000001p-30 + }, + { // Entry 591 + 0x1.fffffffffffff155555555555537bbbbp-28, + 0x1.fffffffffffffp-28 + }, + { // Entry 592 + -0x1.fffffffffffff155555555555537bbbbp-28, + -0x1.fffffffffffffp-28 + }, + { // Entry 593 + 0x1.00000000000000aaaaaaaaaaaaabddddp-27, + 0x1.0p-27 + }, + { // Entry 594 + -0x1.00000000000000aaaaaaaaaaaaabddddp-27, + -0x1.0p-27 + }, + { // Entry 595 + 0x1.00000000000010aaaaaaaaaaaacbddddp-27, + 0x1.0000000000001p-27 + }, + { // Entry 596 + -0x1.00000000000010aaaaaaaaaaaacbddddp-27, + -0x1.0000000000001p-27 + }, + { // Entry 597 + 0x1.00000000000002aaaaaaaaaaaaddddddp-25, + 0x1.fffffffffffffp-26 + }, + { // Entry 598 + -0x1.00000000000002aaaaaaaaaaaaddddddp-25, + -0x1.fffffffffffffp-26 + }, + { // Entry 599 + 0x1.0000000000000aaaaaaaaaaaabddddddp-25, + 0x1.0p-25 + }, + { // Entry 600 + -0x1.0000000000000aaaaaaaaaaaabddddddp-25, + -0x1.0p-25 + }, + { // Entry 601 + 0x1.0000000000001aaaaaaaaaaaadddddddp-25, + 0x1.0000000000001p-25 + }, + { // Entry 602 + -0x1.0000000000001aaaaaaaaaaaadddddddp-25, + -0x1.0000000000001p-25 + }, + { // Entry 603 + 0x1.00000002aaaaa2bddddd9e94b9489c80p-14, + 0x1.fffffffffffffp-15 + }, + { // Entry 604 + -0x1.00000002aaaaa2bddddd9e94b9489c80p-14, + -0x1.fffffffffffffp-15 + }, + { // Entry 605 + 0x1.00000002aaaaaabdddddde94b94b9c80p-14, + 0x1.0p-14 + }, + { // Entry 606 + -0x1.00000002aaaaaabdddddde94b94b9c80p-14, + -0x1.0p-14 + }, + { // Entry 607 + 0x1.00000002aaaababdddde5e94b9519c80p-14, + 0x1.0000000000001p-14 + }, + { // Entry 608 + -0x1.00000002aaaababdddde5e94b9519c80p-14, + -0x1.0000000000001p-14 + }, + { // Entry 609 + 0x1.0002aabdde94b912cccf6cb7a147dbe6p-6, + 0x1.fffffffffffffp-7 + }, + { // Entry 610 + -0x1.0002aabdde94b912cccf6cb7a147dbe6p-6, + -0x1.fffffffffffffp-7 + }, + { // Entry 611 + 0x1.0002aabdde94c1130cd26cdfa377f967p-6, + 0x1.0p-6 + }, + { // Entry 612 + -0x1.0002aabdde94c1130cd26cdfa377f967p-6, + -0x1.0p-6 + }, + { // Entry 613 + 0x1.0002aabdde94d1138cd86d2fa7d8406cp-6, + 0x1.0000000000001p-6 + }, + { // Entry 614 + -0x1.0002aabdde94d1138cd86d2fa7d8406cp-6, + -0x1.0000000000001p-6 + }, + { // Entry 615 + 0x1.000aabde0b9c79d5d91547bc0e143946p-5, + 0x1.fffffffffffffp-6 + }, + { // Entry 616 + -0x1.000aabde0b9c79d5d91547bc0e143946p-5, + -0x1.fffffffffffffp-6 + }, + { // Entry 617 + 0x1.000aabde0b9c81d6d94551be3e924e2ap-5, + 0x1.0p-5 + }, + { // Entry 618 + -0x1.000aabde0b9c81d6d94551be3e924e2ap-5, + -0x1.0p-5 + }, + { // Entry 619 + 0x1.000aabde0b9c91d8d9a565c29f8ea804p-5, + 0x1.0000000000001p-5 + }, + { // Entry 620 + -0x1.000aabde0b9c91d8d9a565c29f8ea804p-5, + -0x1.0000000000001p-5 + }, + { // Entry 621 + 0x1.002abde953618c5cb5b49945c179d0f3p-4, + 0x1.fffffffffffffp-5 + }, + { // Entry 622 + -0x1.002abde953618c5cb5b49945c179d0f3p-4, + -0x1.fffffffffffffp-5 + }, + { // Entry 623 + 0x1.002abde953619460b8b71b77bb495f57p-4, + 0x1.0p-4 + }, + { // Entry 624 + -0x1.002abde953619460b8b71b77bb495f57p-4, + -0x1.0p-4 + }, + { // Entry 625 + 0x1.002abde95361a468bebc1fdbaee93d3fp-4, + 0x1.0000000000001p-4 + }, + { // Entry 626 + -0x1.002abde95361a468bebc1fdbaee93d3fp-4, + -0x1.0000000000001p-4 + }, + { // Entry 627 + 0x1.00abe0c129e1d8ae44e53a515476507cp-3, + 0x1.fffffffffffffp-4 + }, + { // Entry 628 + -0x1.00abe0c129e1d8ae44e53a515476507cp-3, + -0x1.fffffffffffffp-4 + }, + { // Entry 629 + 0x1.00abe0c129e1e0be7587724ea14e03b1p-3, + 0x1.0p-3 + }, + { // Entry 630 + -0x1.00abe0c129e1e0be7587724ea14e03b1p-3, + -0x1.0p-3 + }, + { // Entry 631 + 0x1.00abe0c129e1f0ded6cbe2493b007c79p-3, + 0x1.0000000000001p-3 + }, + { // Entry 632 + -0x1.00abe0c129e1f0ded6cbe2493b007c79p-3, + -0x1.0000000000001p-3 + }, + { // Entry 633 + 0x1.02be9ce0b87cc9a2a64c386583040afap-2, + 0x1.fffffffffffffp-3 + }, + { // Entry 634 + -0x1.02be9ce0b87cc9a2a64c386583040afap-2, + -0x1.fffffffffffffp-3 + }, + { // Entry 635 + 0x1.02be9ce0b87cd1e5d09da2e0f0423bfap-2, + 0x1.0p-2 + }, + { // Entry 636 + -0x1.02be9ce0b87cd1e5d09da2e0f0423bfap-2, + -0x1.0p-2 + }, + { // Entry 637 + 0x1.02be9ce0b87ce26c254077d7cacbd63cp-2, + 0x1.0000000000001p-2 + }, + { // Entry 638 + -0x1.02be9ce0b87ce26c254077d7cacbd63cp-2, + -0x1.0000000000001p-2 + }, + { // Entry 639 + 0x1.0c152382d7364f09881065f5c8609169p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 640 + -0x1.0c152382d7364f09881065f5c8609169p-1, + -0x1.fffffffffffffp-2 + }, + { // Entry 641 + 0x1.0c152382d73658465bb32e0f567ad116p-1, + 0x1.0p-1 + }, + { // Entry 642 + -0x1.0c152382d73658465bb32e0f567ad116p-1, + -0x1.0p-1 + }, + { // Entry 643 + 0x1.0c152382d7366ac002f8be4272f9370fp-1, + 0x1.0000000000001p-1 + }, + { // Entry 644 + -0x1.0c152382d7366ac002f8be4272f9370fp-1, + -0x1.0000000000001p-1 + }, + { // Entry 645 + 0x1.921fb50442d18469898c9a6c570d8ef7p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 646 + -0x1.921fb50442d18469898c9a6c570d8ef7p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 647 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p0 + }, + { // Entry 648 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p0 + }, + { // Entry 649 + 0x1.921fb54442d14a61a638f674b3b839a2p-1, + 0x1.6a09e667f3bcap-1 + }, + { // Entry 650 + -0x1.921fb54442d14a61a638f674b3b839a2p-1, + -0x1.6a09e667f3bcap-1 + }, + { // Entry 651 + 0x1.921fb54442d16102449f75b07e3839a2p-1, + 0x1.6a09e667f3bcbp-1 + }, + { // Entry 652 + -0x1.921fb54442d16102449f75b07e3839a2p-1, + -0x1.6a09e667f3bcbp-1 + }, + { // Entry 653 + 0x1.921fb54442d177a2e305f4ec49b839a2p-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 654 + -0x1.921fb54442d177a2e305f4ec49b839a2p-1, + -0x1.6a09e667f3bccp-1 + }, + { // Entry 655 + 0x1.921fb54442d18e43816c7428163839a2p-1, + 0x1.6a09e667f3bcdp-1 + }, + { // Entry 656 + -0x1.921fb54442d18e43816c7428163839a2p-1, + -0x1.6a09e667f3bcdp-1 + }, + { // Entry 657 + 0x1.921fb54442d1a4e41fd2f363e3b839a2p-1, + 0x1.6a09e667f3bcep-1 + }, + { // Entry 658 + -0x1.921fb54442d1a4e41fd2f363e3b839a2p-1, + -0x1.6a09e667f3bcep-1 + }, + { // Entry 659 + 0x1.0c152382d736310b363f009ee2f7763ap0, + 0x1.bb67ae8584ca8p-1 + }, + { // Entry 660 + -0x1.0c152382d736310b363f009ee2f7763ap0, + -0x1.bb67ae8584ca8p-1 + }, + { // Entry 661 + 0x1.0c152382d736410b363f009edf95f63bp0, + 0x1.bb67ae8584ca9p-1 + }, + { // Entry 662 + -0x1.0c152382d736410b363f009edf95f63bp0, + -0x1.bb67ae8584ca9p-1 + }, + { // Entry 663 + 0x1.0c152382d736510b363f009eddefddebp0, + 0x1.bb67ae8584caap-1 + }, + { // Entry 664 + -0x1.0c152382d736510b363f009eddefddebp0, + -0x1.bb67ae8584caap-1 + }, + { // Entry 665 + 0x1.0c152382d736610b363f009ede052d4ap0, + 0x1.bb67ae8584cabp-1 + }, + { // Entry 666 + -0x1.0c152382d736610b363f009ede052d4ap0, + -0x1.bb67ae8584cabp-1 + }, + { // Entry 667 + 0x1.0c152382d736710b363f009edfd5e457p0, + 0x1.bb67ae8584cacp-1 + }, + { // Entry 668 + -0x1.0c152382d736710b363f009edfd5e457p0, + -0x1.bb67ae8584cacp-1 + }, + { // Entry 669 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p0 + }, + { // Entry 670 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p0 + }, + { // Entry 671 + 0x1.921fb50442d18469898c9a6c570d8ef7p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 672 + -0x1.921fb50442d18469898c9a6c570d8ef7p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 673 + 0x1.ce8276c3e139c7eeab836fc4dd4a61bcp-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 674 + -0x1.ce8276c3e139c7eeab836fc4dd4a61bcp-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 675 + 0x1.00000000000010p-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 676 + -0x1.00000000000010p-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 677 + 0x1.p-1022, + 0x1.0p-1022 + }, + { // Entry 678 + -0x1.p-1022, + -0x1.0p-1022 + }, + { // Entry 679 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 680 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 681 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 682 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 683 + 0x1.p-1073, + 0x1.0p-1073 + }, + { // Entry 684 + -0x1.p-1073, + -0x1.0p-1073 + }, + { // Entry 685 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 686 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 687 + 0.0, + 0.0 + }, + { // Entry 688 + -0.0, + -0.0 + } +}; diff --git a/tests/math_data/asinf_intel_data.h b/tests/math_data/asinf_intel_data.h new file mode 100644 index 000000000..6979a6b4e --- /dev/null +++ b/tests/math_data/asinf_intel_data.h @@ -0,0 +1,1934 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_asinf_intel_data[] = { + { // Entry 0 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 1 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 2 + -0x1.0cad8e66f6fb487cf1df9ed091e4a72ep-1, + -0x1.0083f4p-1 + }, + { // Entry 3 + 0x1.0cad8e66f6fb487cf1df9ed091e4a72ep-1, + 0x1.0083f4p-1 + }, + { // Entry 4 + -0x1.103565dad7e2002283a3fac2b1d6311dp-1, + -0x1.03909cp-1 + }, + { // Entry 5 + 0x1.103565dad7e2002283a3fac2b1d6311dp-1, + 0x1.03909cp-1 + }, + { // Entry 6 + -0x1.1c66b9ffd666cc7518f5aeee38193508p-1, + -0x1.0ep-1 + }, + { // Entry 7 + 0x1.1c66b9ffd666cc7518f5aeee38193508p-1, + 0x1.0ep-1 + }, + { // Entry 8 + -0x1.311900012958ac30f09a111b838a00c4p-1, + -0x1.1f5cp-1 + }, + { // Entry 9 + 0x1.311900012958ac30f09a111b838a00c4p-1, + 0x1.1f5cp-1 + }, + { // Entry 10 + -0x1.246f5c0000a72022c39c255ede1512d3p-3, + -0x1.237138p-3 + }, + { // Entry 11 + 0x1.246f5c0000a72022c39c255ede1512d3p-3, + 0x1.237138p-3 + }, + { // Entry 12 + -0x1.3db0900000395b4211afefffc6915c36p-3, + -0x1.3c6acap-3 + }, + { // Entry 13 + 0x1.3db0900000395b4211afefffc6915c36p-3, + 0x1.3c6acap-3 + }, + { // Entry 14 + -0x1.5e2e4b551d68af4d88152d62976726c4p-1, + -0x1.4382c8p-1 + }, + { // Entry 15 + 0x1.5e2e4b551d68af4d88152d62976726c4p-1, + 0x1.4382c8p-1 + }, + { // Entry 16 + -0x1.7be252f6f0a776a93608351ae10eb974p0, + -0x1.fe11b4p-1 + }, + { // Entry 17 + 0x1.7be252f6f0a776a93608351ae10eb974p0, + 0x1.fe11b4p-1 + }, + { // Entry 18 + -0x1.00ab00ffe5d68ab742fd93647ec0a67bp-3, + -0x1.fffe44p-4 + }, + { // Entry 19 + 0x1.00ab00ffe5d68ab742fd93647ec0a67bp-3, + 0x1.fffe44p-4 + }, + { // Entry 20 + -0x1.0c15110930220c79eb624ae419c8836cp-1, + -0x1.ffffe0p-2 + }, + { // Entry 21 + 0x1.0c15110930220c79eb624ae419c8836cp-1, + 0x1.ffffe0p-2 + }, + { // Entry 22 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 23 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 24 + 0x1.02be9ef183114fc560988306f887ac74p-2, + 0x1.000002p-2 + }, + { // Entry 25 + -0x1.02be9ef183114fc560988306f887ac74p-2, + -0x1.000002p-2 + }, + { // Entry 26 + 0x1.02bea1024da614265a59c002ae0c56a0p-2, + 0x1.000004p-2 + }, + { // Entry 27 + -0x1.02bea1024da614265a59c002ae0c56a0p-2, + -0x1.000004p-2 + }, + { // Entry 28 + 0x1.0c152a7075f75bf85c1ca9191b19a5afp-1, + 0x1.000006p-1 + }, + { // Entry 29 + -0x1.0c152a7075f75bf85c1ca9191b19a5afp-1, + -0x1.000006p-1 + }, + { // Entry 30 + 0x1.0c15315e14c63ae876f9313819157a92p-1, + 0x1.00000cp-1 + }, + { // Entry 31 + -0x1.0c15315e14c63ae876f9313819157a92p-1, + -0x1.00000cp-1 + }, + { // Entry 32 + 0x1.00ac0101ec72f1a878790d17bb281556p-3, + 0x1.000020p-3 + }, + { // Entry 33 + -0x1.00ac0101ec72f1a878790d17bb281556p-3, + -0x1.000020p-3 + }, + { // Entry 34 + 0x1.0c154ac55b88a3af9035a28322fdd9a3p-1, + 0x1.000022p-1 + }, + { // Entry 35 + -0x1.0c154ac55b88a3af9035a28322fdd9a3p-1, + -0x1.000022p-1 + }, + { // Entry 36 + 0x1.02bebffe2c7ea2805320dec66ca7844cp-2, + 0x1.000022p-2 + }, + { // Entry 37 + -0x1.02bebffe2c7ea2805320dec66ca7844cp-2, + -0x1.000022p-2 + }, + { // Entry 38 + 0x1.0c15565164aa3a55958458405a1c1e98p-1, + 0x1.00002cp-1 + }, + { // Entry 39 + -0x1.0c15565164aa3a55958458405a1c1e98p-1, + -0x1.00002cp-1 + }, + { // Entry 40 + 0x1.0c155aefcec270c5a31b3e016614b676p-1, + 0x1.000030p-1 + }, + { // Entry 41 + -0x1.0c155aefcec270c5a31b3e016614b676p-1, + -0x1.000030p-1 + }, + { // Entry 42 + 0x1.0c15667bd819ea5190d64e1eecd9d3ffp-1, + 0x1.00003ap-1 + }, + { // Entry 43 + -0x1.0c15667bd819ea5190d64e1eecd9d3ffp-1, + -0x1.00003ap-1 + }, + { // Entry 44 + 0x1.0c16deeaf496378cb0c17601a82b3ef7p-1, + 0x1.000180p-1 + }, + { // Entry 45 + -0x1.0c16deeaf496378cb0c17601a82b3ef7p-1, + -0x1.000180p-1 + }, + { // Entry 46 + 0x1.0c1772b884fb0853488f82c8eab22f06p-1, + 0x1.0002p-1 + }, + { // Entry 47 + -0x1.0c1772b884fb0853488f82c8eab22f06p-1, + -0x1.0002p-1 + }, + { // Entry 48 + 0x1.0c189a53efac87369bf73699b02aa09ep-1, + 0x1.0003p-1 + }, + { // Entry 49 + -0x1.0c189a53efac87369bf73699b02aa09ep-1, + -0x1.0003p-1 + }, + { // Entry 50 + 0x1.00aefcfffff563634fb095cc9e40dda3p-3, + 0x1.000316p-3 + }, + { // Entry 51 + -0x1.00aefcfffff563634fb095cc9e40dda3p-3, + -0x1.000316p-3 + }, + { // Entry 52 + 0x1.0c190240aa98557da9d4fe206ae66279p-1, + 0x1.00035ap-1 + }, + { // Entry 53 + -0x1.0c190240aa98557da9d4fe206ae66279p-1, + -0x1.00035ap-1 + }, + { // Entry 54 + 0x1.0c19c1efbce926ca14cb3e0b0fcfe46cp-1, + 0x1.0004p-1 + }, + { // Entry 55 + -0x1.0c19c1efbce926ca14cb3e0b0fcfe46cp-1, + -0x1.0004p-1 + }, + { // Entry 56 + 0x1.000b2b01e4072831138943d51020c3f5p-6, + 0x1.000880p-6 + }, + { // Entry 57 + -0x1.000b2b01e4072831138943d51020c3f5p-6, + -0x1.000880p-6 + }, + { // Entry 58 + 0x1.0c30da6ca06846115bb5e8040cd163a5p-1, + 0x1.0018p-1 + }, + { // Entry 59 + -0x1.0c30da6ca06846115bb5e8040cd163a5p-1, + -0x1.0018p-1 + }, + { // Entry 60 + 0x1.0c3578fe7d748ef467902185b57079a1p-1, + 0x1.001cp-1 + }, + { // Entry 61 + -0x1.0c3578fe7d748ef467902185b57079a1p-1, + -0x1.001cp-1 + }, + { // Entry 62 + 0x1.0c3a17968466fa128c82b047d29e1a81p-1, + 0x1.0020p-1 + }, + { // Entry 63 + -0x1.0c3a17968466fa128c82b047d29e1a81p-1, + -0x1.0020p-1 + }, + { // Entry 64 + 0x1.0c3b1a489846ab8835c530f3c925e48dp-1, + 0x1.0020e0p-1 + }, + { // Entry 65 + -0x1.0c3b1a489846ab8835c530f3c925e48dp-1, + -0x1.0020e0p-1 + }, + { // Entry 66 + 0x1.0c3c8bd9c9f36a99f8039f99249719a7p-1, + 0x1.002220p-1 + }, + { // Entry 67 + -0x1.0c3c8bd9c9f36a99f8039f99249719a7p-1, + -0x1.002220p-1 + }, + { // Entry 68 + 0x1.0c3eb634b570d95017c1efd1196f0188p-1, + 0x1.0024p-1 + }, + { // Entry 69 + -0x1.0c3eb634b570d95017c1efd1196f0188p-1, + -0x1.0024p-1 + }, + { // Entry 70 + 0x1.0c502e329b76cbc90d2bc2d8a46fd894p-1, + 0x1.003320p-1 + }, + { // Entry 71 + -0x1.0c502e329b76cbc90d2bc2d8a46fd894p-1, + -0x1.003320p-1 + }, + { // Entry 72 + 0x1.0c7f6563138d8ff3289425afc29cf2e4p-1, + 0x1.005cp-1 + }, + { // Entry 73 + -0x1.0c7f6563138d8ff3289425afc29cf2e4p-1, + -0x1.005cp-1 + }, + { // Entry 74 + 0x1.0c8d4265d9ee207b3dc21f1db76ede7cp-1, + 0x1.0068p-1 + }, + { // Entry 75 + -0x1.0c8d4265d9ee207b3dc21f1db76ede7cp-1, + -0x1.0068p-1 + }, + { // Entry 76 + 0x1.0c91e1732197e2a5d4dca63deb68090ap-1, + 0x1.006cp-1 + }, + { // Entry 77 + -0x1.0c91e1732197e2a5d4dca63deb68090ap-1, + -0x1.006cp-1 + }, + { // Entry 78 + 0x1.035dad0091daa5df1fc0e0e0a9fe4ed4p-2, + 0x1.009ap-2 + }, + { // Entry 79 + -0x1.035dad0091daa5df1fc0e0e0a9fe4ed4p-2, + -0x1.009ap-2 + }, + { // Entry 80 + 0x1.0d403226a827880e2ff8226ddebdcb2bp-1, + 0x1.0102d2p-1 + }, + { // Entry 81 + -0x1.0d403226a827880e2ff8226ddebdcb2bp-1, + -0x1.0102d2p-1 + }, + { // Entry 82 + 0x1.0d9488ef7d93f71e126a87e6a4df2604p-1, + 0x1.014bc0p-1 + }, + { // Entry 83 + -0x1.0d9488ef7d93f71e126a87e6a4df2604p-1, + -0x1.014bc0p-1 + }, + { // Entry 84 + 0x1.0db5367f9e64f3f50a2f70dbcc5b7254p-1, + 0x1.0168p-1 + }, + { // Entry 85 + -0x1.0db5367f9e64f3f50a2f70dbcc5b7254p-1, + -0x1.0168p-1 + }, + { // Entry 86 + 0x1.0de005001105becff3be2f022c424727p-1, + 0x1.018dp-1 + }, + { // Entry 87 + -0x1.0de005001105becff3be2f022c424727p-1, + -0x1.018dp-1 + }, + { // Entry 88 + 0x1.0f8db1c47d54f959ab0145145c67ac7cp-1, + 0x1.03p-1 + }, + { // Entry 89 + -0x1.0f8db1c47d54f959ab0145145c67ac7cp-1, + -0x1.03p-1 + }, + { // Entry 90 + 0x1.17df11023b00b60e566bcc34452d8efcp-1, + 0x1.0a24p-1 + }, + { // Entry 91 + -0x1.17df11023b00b60e566bcc34452d8efcp-1, + -0x1.0a24p-1 + }, + { // Entry 92 + 0x1.188a13003e2d6673f8b1137ddefa7ff6p-1, + 0x1.0ab608p-1 + }, + { // Entry 93 + -0x1.188a13003e2d6673f8b1137ddefa7ff6p-1, + -0x1.0ab608p-1 + }, + { // Entry 94 + 0x1.0c310bfed8146bab3eccd1f36ad598dfp-4, + 0x1.0cp-4 + }, + { // Entry 95 + -0x1.0c310bfed8146bab3eccd1f36ad598dfp-4, + -0x1.0cp-4 + }, + { // Entry 96 + 0x1.1ab071a6a6495483fb202832876267b1p-1, + 0x1.0c8b3ap-1 + }, + { // Entry 97 + -0x1.1ab071a6a6495483fb202832876267b1p-1, + -0x1.0c8b3ap-1 + }, + { // Entry 98 + 0x1.1ae03117af7650c7036eeb7f258539aep-1, + 0x1.0cb3e0p-1 + }, + { // Entry 99 + -0x1.1ae03117af7650c7036eeb7f258539aep-1, + -0x1.0cb3e0p-1 + }, + { // Entry 100 + 0x1.1c66b9ffd666cc7518f5aeee38193508p-1, + 0x1.0ep-1 + }, + { // Entry 101 + -0x1.1c66b9ffd666cc7518f5aeee38193508p-1, + -0x1.0ep-1 + }, + { // Entry 102 + 0x1.0e0321004f7f95de7df856f46276d32cp-6, + 0x1.0ep-6 + }, + { // Entry 103 + -0x1.0e0321004f7f95de7df856f46276d32cp-6, + -0x1.0ep-6 + }, + { // Entry 104 + 0x1.1d19b3000a8c63dbb9cd3aa26cb93af8p-1, + 0x1.0e98p-1 + }, + { // Entry 105 + -0x1.1d19b3000a8c63dbb9cd3aa26cb93af8p-1, + -0x1.0e98p-1 + }, + { // Entry 106 + 0x1.0f37e6ffffffcadf5403653d968a2680p-5, + 0x1.0f2b38p-5 + }, + { // Entry 107 + -0x1.0f37e6ffffffcadf5403653d968a2680p-5, + -0x1.0f2b38p-5 + }, + { // Entry 108 + 0x1.1ecf67bb91057e1a4092f0d0eaea1701p-1, + 0x1.100b32p-1 + }, + { // Entry 109 + -0x1.1ecf67bb91057e1a4092f0d0eaea1701p-1, + -0x1.100b32p-1 + }, + { // Entry 110 + 0x1.1f4b64fffffffa0c91291e1431281f37p-1, + 0x1.107434p-1 + }, + { // Entry 111 + -0x1.1f4b64fffffffa0c91291e1431281f37p-1, + -0x1.107434p-1 + }, + { // Entry 112 + 0x1.1903930006f8309241827585b2c80661p-2, + 0x1.1580p-2 + }, + { // Entry 113 + -0x1.1903930006f8309241827585b2c80661p-2, + -0x1.1580p-2 + }, + { // Entry 114 + 0x1.172493fffee5a2507f132613cadeccccp-5, + 0x1.1716c0p-5 + }, + { // Entry 115 + -0x1.172493fffee5a2507f132613cadeccccp-5, + -0x1.1716c0p-5 + }, + { // Entry 116 + 0x1.1c7d46fd7b1ac4ded1655c5206e6e630p-2, + 0x1.18d8p-2 + }, + { // Entry 117 + -0x1.1c7d46fd7b1ac4ded1655c5206e6e630p-2, + -0x1.18d8p-2 + }, + { // Entry 118 + 0x1.29647a7e646f32008c8601ac04967bfcp-1, + 0x1.18f32ep-1 + }, + { // Entry 119 + -0x1.29647a7e646f32008c8601ac04967bfcp-1, + -0x1.18f32ep-1 + }, + { // Entry 120 + 0x1.311900012958ac30f09a111b838a00c4p-1, + 0x1.1f5cp-1 + }, + { // Entry 121 + -0x1.311900012958ac30f09a111b838a00c4p-1, + -0x1.1f5cp-1 + }, + { // Entry 122 + 0x1.23fee9057a799bd52740b1ae1d1e9685p-2, + 0x1.200ep-2 + }, + { // Entry 123 + -0x1.23fee9057a799bd52740b1ae1d1e9685p-2, + -0x1.200ep-2 + }, + { // Entry 124 + 0x1.3cdf26fdd7f39ef9b6df17e306cf9247p-1, + 0x1.2906fcp-1 + }, + { // Entry 125 + -0x1.3cdf26fdd7f39ef9b6df17e306cf9247p-1, + -0x1.2906fcp-1 + }, + { // Entry 126 + 0x1.45311906dbb495a038edf78f3481fba9p-1, + 0x1.2fc3c2p-1 + }, + { // Entry 127 + -0x1.45311906dbb495a038edf78f3481fba9p-1, + -0x1.2fc3c2p-1 + }, + { // Entry 128 + 0x1.3644eaffff7a7a503708b5792101243fp-2, + 0x1.318b20p-2 + }, + { // Entry 129 + -0x1.3644eaffff7a7a503708b5792101243fp-2, + -0x1.318b20p-2 + }, + { // Entry 130 + 0x1.34360affff7ab0ac1a44f15312908de9p-5, + 0x1.34236ep-5 + }, + { // Entry 131 + -0x1.34360affff7ab0ac1a44f15312908de9p-5, + -0x1.34236ep-5 + }, + { // Entry 132 + 0x1.380134f73a1260de2e6015aa3c882e11p-7, + 0x1.38p-7 + }, + { // Entry 133 + -0x1.380134f73a1260de2e6015aa3c882e11p-7, + -0x1.38p-7 + }, + { // Entry 134 + 0x1.4014d8ffaf8aeb3dbd2dcdaae835ffefp-5, + 0x1.40p-5 + }, + { // Entry 135 + -0x1.4014d8ffaf8aeb3dbd2dcdaae835ffefp-5, + -0x1.40p-5 + }, + { // Entry 136 + 0x1.59ad15042743d036220b033a43e33a33p-1, + 0x1.4001c0p-1 + }, + { // Entry 137 + -0x1.59ad15042743d036220b033a43e33a33p-1, + -0x1.4001c0p-1 + }, + { // Entry 138 + 0x1.5ff1acffefe1ce301daaa4f72cee5d3ap-1, + 0x1.44e026p-1 + }, + { // Entry 139 + -0x1.5ff1acffefe1ce301daaa4f72cee5d3ap-1, + -0x1.44e026p-1 + }, + { // Entry 140 + 0x1.6eafa6f9f2763aaeabf6311f88ed3ce1p-1, + 0x1.502232p-1 + }, + { // Entry 141 + -0x1.6eafa6f9f2763aaeabf6311f88ed3ce1p-1, + -0x1.502232p-1 + }, + { // Entry 142 + 0x1.7423d70007f86d1c5c92cd2399d33f4cp-1, + 0x1.543a76p-1 + }, + { // Entry 143 + -0x1.7423d70007f86d1c5c92cd2399d33f4cp-1, + -0x1.543a76p-1 + }, + { // Entry 144 + 0x1.583dff000083fab9afb8092f68183a9fp-5, + 0x1.582410p-5 + }, + { // Entry 145 + -0x1.583dff000083fab9afb8092f68183a9fp-5, + -0x1.582410p-5 + }, + { // Entry 146 + 0x1.8f10290841d65bfd313e02877a87a22ep-1, + 0x1.67de32p-1 + }, + { // Entry 147 + -0x1.8f10290841d65bfd313e02877a87a22ep-1, + -0x1.67de32p-1 + }, + { // Entry 148 + 0x1.68ab6efc047d3ad046bd8183ec5c4d46p-4, + 0x1.68342ap-4 + }, + { // Entry 149 + -0x1.68ab6efc047d3ad046bd8183ec5c4d46p-4, + -0x1.68342ap-4 + }, + { // Entry 150 + 0x1.958d3affedd648f35110cf87a747e43dp-1, + 0x1.6c7452p-1 + }, + { // Entry 151 + -0x1.958d3affedd648f35110cf87a747e43dp-1, + -0x1.6c7452p-1 + }, + { // Entry 152 + 0x1.980272fff139547fa5ad822694b7159fp-1, + 0x1.6e2d2ep-1 + }, + { // Entry 153 + -0x1.980272fff139547fa5ad822694b7159fp-1, + -0x1.6e2d2ep-1 + }, + { // Entry 154 + 0x1.8101cefb4b74963084b66c2235b48567p-2, + 0x1.77fffep-2 + }, + { // Entry 155 + -0x1.8101cefb4b74963084b66c2235b48567p-2, + -0x1.77fffep-2 + }, + { // Entry 156 + 0x1.800001000001ccccd115f16ac09c2c1dp-10, + 0x1.7ffff8p-10 + }, + { // Entry 157 + -0x1.800001000001ccccd115f16ac09c2c1dp-10, + -0x1.7ffff8p-10 + }, + { // Entry 158 + 0x1.81f272fdf7b31c16d324f90717ad9849p-4, + 0x1.816050p-4 + }, + { // Entry 159 + -0x1.81f272fdf7b31c16d324f90717ad9849p-4, + -0x1.816050p-4 + }, + { // Entry 160 + 0x1.bce4ceffee2656af653f471f22502ccbp-1, + 0x1.86fbe6p-1 + }, + { // Entry 161 + -0x1.bce4ceffee2656af653f471f22502ccbp-1, + -0x1.86fbe6p-1 + }, + { // Entry 162 + 0x1.bd56d0ffebe6415a921b526b10cc09edp-1, + 0x1.874578p-1 + }, + { // Entry 163 + -0x1.bd56d0ffebe6415a921b526b10cc09edp-1, + -0x1.874578p-1 + }, + { // Entry 164 + 0x1.bd866affeb83a8ebf25b7e0c9b453091p-1, + 0x1.87642ap-1 + }, + { // Entry 165 + -0x1.bd866affeb83a8ebf25b7e0c9b453091p-1, + -0x1.87642ap-1 + }, + { // Entry 166 + 0x1.bdeae8ffefe79fe29894af8440b888bdp-1, + 0x1.87a4ecp-1 + }, + { // Entry 167 + -0x1.bdeae8ffefe79fe29894af8440b888bdp-1, + -0x1.87a4ecp-1 + }, + { // Entry 168 + 0x1.c0ffa2ffef29ead18ae6ab673811f725p-1, + 0x1.899f22p-1 + }, + { // Entry 169 + -0x1.c0ffa2ffef29ead18ae6ab673811f725p-1, + -0x1.899f22p-1 + }, + { // Entry 170 + 0x1.c257fb0004ddb2849076737a53acb2a8p-1, + 0x1.8a7afep-1 + }, + { // Entry 171 + -0x1.c257fb0004ddb2849076737a53acb2a8p-1, + -0x1.8a7afep-1 + }, + { // Entry 172 + 0x1.cc9d2b00116cbcf4625a1bbb3b5b4e78p-1, + 0x1.90f29cp-1 + }, + { // Entry 173 + -0x1.cc9d2b00116cbcf4625a1bbb3b5b4e78p-1, + -0x1.90f29cp-1 + }, + { // Entry 174 + 0x1.cdddf100135cb2e8716e639bb3b5249fp-1, + 0x1.91b9cap-1 + }, + { // Entry 175 + -0x1.cdddf100135cb2e8716e639bb3b5249fp-1, + -0x1.91b9cap-1 + }, + { // Entry 176 + 0x1.9dd80f000084e0c3df1946aed6d959bfp-7, + 0x1.9dd53ep-7 + }, + { // Entry 177 + -0x1.9dd80f000084e0c3df1946aed6d959bfp-7, + -0x1.9dd53ep-7 + }, + { // Entry 178 + 0x1.e5e6ecedd795023dfa3c7dc241f10438p-1, + 0x1.a02dccp-1 + }, + { // Entry 179 + -0x1.e5e6ecedd795023dfa3c7dc241f10438p-1, + -0x1.a02dccp-1 + }, + { // Entry 180 + 0x1.aa8363fe050a48c7238e23364d019995p-4, + 0x1.a9be2ep-4 + }, + { // Entry 181 + -0x1.aa8363fe050a48c7238e23364d019995p-4, + -0x1.a9be2ep-4 + }, + { // Entry 182 + 0x1.bf42d6021ad1ba9c3760e8c7cccdb6a5p-2, + 0x1.b12cd0p-2 + }, + { // Entry 183 + -0x1.bf42d6021ad1ba9c3760e8c7cccdb6a5p-2, + -0x1.b12cd0p-2 + }, + { // Entry 184 + 0x1.c43c42fc467765267b2bce544d70b0edp-2, + 0x1.b5ad60p-2 + }, + { // Entry 185 + -0x1.c43c42fc467765267b2bce544d70b0edp-2, + -0x1.b5ad60p-2 + }, + { // Entry 186 + 0x1.1094910e7fcd16c9764b4e1b76b737f6p0, + 0x1.bfd588p-1 + }, + { // Entry 187 + -0x1.1094910e7fcd16c9764b4e1b76b737f6p0, + -0x1.bfd588p-1 + }, + { // Entry 188 + 0x1.10c02f0e93e8632e646d67e9015374c9p0, + 0x1.bfffcap-1 + }, + { // Entry 189 + -0x1.10c02f0e93e8632e646d67e9015374c9p0, + -0x1.bfffcap-1 + }, + { // Entry 190 + 0x1.10c066d3e6931b76a13df3a689971ba5p0, + 0x1.c0p-1 + }, + { // Entry 191 + -0x1.10c066d3e6931b76a13df3a689971ba5p0, + -0x1.c0p-1 + }, + { // Entry 192 + 0x1.c7006b02966adf6a3df6650579596d38p-3, + 0x1.c3448ep-3 + }, + { // Entry 193 + -0x1.c7006b02966adf6a3df6650579596d38p-3, + -0x1.c3448ep-3 + }, + { // Entry 194 + 0x1.cced1cffffffead2e67aff2ed34f68fbp-4, + 0x1.cbf43cp-4 + }, + { // Entry 195 + -0x1.cced1cffffffead2e67aff2ed34f68fbp-4, + -0x1.cbf43cp-4 + }, + { // Entry 196 + 0x1.d194fd0297f56d654d767460f12bbd70p-3, + 0x1.cd95p-3 + }, + { // Entry 197 + -0x1.d194fd0297f56d654d767460f12bbd70p-3, + -0x1.cd95p-3 + }, + { // Entry 198 + 0x1.2d46e9003819962ec438e47416ebe356p0, + 0x1.d8c8c0p-1 + }, + { // Entry 199 + -0x1.2d46e9003819962ec438e47416ebe356p0, + -0x1.d8c8c0p-1 + }, + { // Entry 200 + 0x1.de1b0901f98eac7553f0e8195ad077fcp-3, + 0x1.d9c654p-3 + }, + { // Entry 201 + -0x1.de1b0901f98eac7553f0e8195ad077fcp-3, + -0x1.d9c654p-3 + }, + { // Entry 202 + 0x1.3722d2feb24c7d9ccc847f53a3a4ee80p0, + 0x1.e0p-1 + }, + { // Entry 203 + -0x1.3722d2feb24c7d9ccc847f53a3a4ee80p0, + -0x1.e0p-1 + }, + { // Entry 204 + 0x1.e481c0fce71340393796f56e26562981p-3, + 0x1.e0p-3 + }, + { // Entry 205 + -0x1.e481c0fce71340393796f56e26562981p-3, + -0x1.e0p-3 + }, + { // Entry 206 + 0x1.e2579e00010e16a23389c5d2d04cb016p-6, + 0x1.e245c8p-6 + }, + { // Entry 207 + -0x1.e2579e00010e16a23389c5d2d04cb016p-6, + -0x1.e245c8p-6 + }, + { // Entry 208 + 0x1.ebf1570082616eec6d62ca4bbe98a80ep-3, + 0x1.e739c0p-3 + }, + { // Entry 209 + -0x1.ebf1570082616eec6d62ca4bbe98a80ep-3, + -0x1.e739c0p-3 + }, + { // Entry 210 + 0x1.ec0b2efe45213aa2a5913be53fba2675p-3, + 0x1.e752dap-3 + }, + { // Entry 211 + -0x1.ec0b2efe45213aa2a5913be53fba2675p-3, + -0x1.e752dap-3 + }, + { // Entry 212 + 0x1.ed3b16ffff7cb9709229934808bd086bp-3, + 0x1.e87a02p-3 + }, + { // Entry 213 + -0x1.ed3b16ffff7cb9709229934808bd086bp-3, + -0x1.e87a02p-3 + }, + { // Entry 214 + 0x1.ffeaecffff817ca1af5df7aff71f98c6p-3, + 0x1.fa9a82p-3 + }, + { // Entry 215 + -0x1.ffeaecffff817ca1af5df7aff71f98c6p-3, + -0x1.fa9a82p-3 + }, + { // Entry 216 + 0x1.7d60c2f47c8167d9affdf68d4fdbc5d9p0, + 0x1.fe51d8p-1 + }, + { // Entry 217 + -0x1.7d60c2f47c8167d9affdf68d4fdbc5d9p0, + -0x1.fe51d8p-1 + }, + { // Entry 218 + 0x1.901f34fea94ed8bf7d5ce1e00256bec5p0, + 0x1.fffbfep-1 + }, + { // Entry 219 + -0x1.901f34fea94ed8bf7d5ce1e00256bec5p0, + -0x1.fffbfep-1 + }, + { // Entry 220 + 0x1.00ab7efcdc7e3da7637e617c6307c133p-3, + 0x1.ffff3ep-4 + }, + { // Entry 221 + -0x1.00ab7efcdc7e3da7637e617c6307c133p-3, + -0x1.ffff3ep-4 + }, + { // Entry 222 + 0x1.0c15110930220c79eb624ae419c8836cp-1, + 0x1.ffffe0p-2 + }, + { // Entry 223 + -0x1.0c15110930220c79eb624ae419c8836cp-1, + -0x1.ffffe0p-2 + }, + { // Entry 224 + 0x1.0c152382d73658465bb32e0f567ad116p-1, + 0x1.p-1 + }, + { // Entry 225 + -0x1.0c152382d73658465bb32e0f567ad116p-1, + -0x1.p-1 + }, + { // Entry 226 + 0x1.0c152382d73658465bb32e0f567ad116p-1, + 0x1.p-1 + }, + { // Entry 227 + -0x1.0c152382d73658465bb32e0f567ad116p-1, + -0x1.p-1 + }, + { // Entry 228 + 0x1.4a1ce5633729b4831c0f2de50b199161p-1, + 0x1.33b646p-1 + }, + { // Entry 229 + -0x1.4a1ce5633729b4831c0f2de50b199161p-1, + -0x1.33b646p-1 + }, + { // Entry 230 + 0x1.921fb4b1402384698984b09966f96de6p-1, + 0x1.6a09e6p-1 + }, + { // Entry 231 + -0x1.921fb4b1402384698984b09966f96de6p-1, + -0x1.6a09e6p-1 + }, + { // Entry 232 + 0x1.921fb4b1402384698984b09966f96de6p-1, + 0x1.6a09e6p-1 + }, + { // Entry 233 + -0x1.921fb4b1402384698984b09966f96de6p-1, + -0x1.6a09e6p-1 + }, + { // Entry 234 + -0x1.b235315c680dc081583db360d5e1fa18p-1, + -0x1.80p-1 + }, + { // Entry 235 + 0x1.b235315c680dc081583db360d5e1fa18p-1, + 0x1.80p-1 + }, + { // Entry 236 + 0x1.0c1522fd526bed5a0f7cb328ba5c3991p0, + 0x1.bb67aep-1 + }, + { // Entry 237 + -0x1.0c1522fd526bed5a0f7cb328ba5c3991p0, + -0x1.bb67aep-1 + }, + { // Entry 238 + 0x1.0c1522fd526bed5a0f7cb328ba5c3991p0, + 0x1.bb67aep-1 + }, + { // Entry 239 + -0x1.0c1522fd526bed5a0f7cb328ba5c3991p0, + -0x1.bb67aep-1 + }, + { // Entry 240 + 0x1.9080f0a242e636c8b158046e622390bep0, + 0x1.fffd60p-1 + }, + { // Entry 241 + -0x1.9080f0a242e636c8b158046e622390bep0, + -0x1.fffd60p-1 + }, + { // Entry 242 + 0x1.p-82, + 0x1.p-82 + }, + { // Entry 243 + -0x1.p-82, + -0x1.p-82 + }, + { // Entry 244 + 0x1.0000000000000000000000000000000ap-61, + 0x1.p-61 + }, + { // Entry 245 + -0x1.0000000000000000000000000000000ap-61, + -0x1.p-61 + }, + { // Entry 246 + 0x1.0000000000000000000002aaaaaaaaaap-42, + 0x1.p-42 + }, + { // Entry 247 + -0x1.0000000000000000000002aaaaaaaaaap-42, + -0x1.p-42 + }, + { // Entry 248 + 0x1.000000000002aaaaaaaaaabdddddddddp-22, + 0x1.p-22 + }, + { // Entry 249 + -0x1.000000000002aaaaaaaaaabdddddddddp-22, + -0x1.p-22 + }, + { // Entry 250 + 0x1.6a0a022b840dccf66e0b6ec9289f36b5p-9, + 0x1.6a09e4p-9 + }, + { // Entry 251 + -0x1.6a0a022b840dccf66e0b6ec9289f36b5p-9, + -0x1.6a09e4p-9 + }, + { // Entry 252 + 0x1.6a0a042b848dcd256f98664210471010p-9, + 0x1.6a09e6p-9 + }, + { // Entry 253 + -0x1.6a0a042b848dcd256f98664210471010p-9, + -0x1.6a09e6p-9 + }, + { // Entry 254 + 0x1.6a0a062b850dcd55db3053430d8801dep-9, + 0x1.6a09e8p-9 + }, + { // Entry 255 + -0x1.6a0a062b850dcd55db3053430d8801dep-9, + -0x1.6a09e8p-9 + }, + { // Entry 256 + 0x1.6a0a5cae61ad17ce4db740441bff4264p-8, + 0x1.6a09e4p-8 + }, + { // Entry 257 + -0x1.6a0a5cae61ad17ce4db740441bff4264p-8, + -0x1.6a09e4p-8 + }, + { // Entry 258 + 0x1.6a0a5eae63ad1aca589233f046ef6f98p-8, + 0x1.6a09e6p-8 + }, + { // Entry 259 + -0x1.6a0a5eae63ad1aca589233f046ef6f98p-8, + -0x1.6a09e6p-8 + }, + { // Entry 260 + 0x1.6a0a60ae65ad1dcc0ba5b83d9dac8608p-8, + 0x1.6a09e8p-8 + }, + { // Entry 261 + -0x1.6a0a60ae65ad1dcc0ba5b83d9dac8608p-8, + -0x1.6a09e8p-8 + }, + { // Entry 262 + 0x1.6a0bc6be9e29599e77d42647891c84e9p-7, + 0x1.6a09e4p-7 + }, + { // Entry 263 + -0x1.6a0bc6be9e29599e77d42647891c84e9p-7, + -0x1.6a09e4p-7 + }, + { // Entry 264 + 0x1.6a0bc8bea629898fceb95fb04958a217p-7, + 0x1.6a09e6p-7 + }, + { // Entry 265 + -0x1.6a0bc8bea629898fceb95fb04958a217p-7, + -0x1.6a09e6p-7 + }, + { // Entry 266 + 0x1.6a0bcabeae29b997c74c8b209ada2625p-7, + 0x1.6a09e8p-7 + }, + { // Entry 267 + -0x1.6a0bcabeae29b997c74c8b209ada2625p-7, + -0x1.6a09e8p-7 + }, + { // Entry 268 + 0x1.6a116f4bf5a44da64d89fa35a6ebac04p-6, + 0x1.6a09e4p-6 + }, + { // Entry 269 + -0x1.6a116f4bf5a44da64d89fa35a6ebac04p-6, + -0x1.6a09e4p-6 + }, + { // Entry 270 + 0x1.6a11714c15a74db6a8c862c053ff5c47p-6, + 0x1.6a09e6p-6 + }, + { // Entry 271 + -0x1.6a11714c15a74db6a8c862c053ff5c47p-6, + -0x1.6a09e6p-6 + }, + { // Entry 272 + 0x1.6a11734c35aa4e21977b693edb0fbfedp-6, + 0x1.6a09e8p-6 + }, + { // Entry 273 + -0x1.6a11734c35aa4e21977b693edb0fbfedp-6, + -0x1.6a09e8p-6 + }, + { // Entry 274 + 0x1.6a28164912c9ea8249262954f1ae1a22p-5, + 0x1.6a09e4p-5 + }, + { // Entry 275 + -0x1.6a28164912c9ea8249262954f1ae1a22p-5, + -0x1.6a09e4p-5 + }, + { // Entry 276 + 0x1.6a28184992f9fd8bc772026d91605dcap-5, + 0x1.6a09e6p-5 + }, + { // Entry 277 + -0x1.6a28184992f9fd8bc772026d91605dcap-5, + -0x1.6a09e6p-5 + }, + { // Entry 278 + 0x1.6a281a4a132a12005fd55f43d2bf81a6p-5, + 0x1.6a09e8p-5 + }, + { // Entry 279 + -0x1.6a281a4a132a12005fd55f43d2bf81a6p-5, + -0x1.6a09e8p-5 + }, + { // Entry 280 + 0x1.6a82ff139c02609620ef4694ee627b57p-4, + 0x1.6a09e4p-4 + }, + { // Entry 281 + -0x1.6a82ff139c02609620ef4694ee627b57p-4, + -0x1.6a09e4p-4 + }, + { // Entry 282 + 0x1.6a8301159f07655fd879480b5cbcf5cbp-4, + 0x1.6a09e6p-4 + }, + { // Entry 283 + -0x1.6a8301159f07655fd879480b5cbcf5cbp-4, + -0x1.6a09e6p-4 + }, + { // Entry 284 + 0x1.6a830317a20c6fe2dae30fe5babe63f8p-4, + 0x1.6a09e8p-4 + }, + { // Entry 285 + -0x1.6a830317a20c6fe2dae30fe5babe63f8p-4, + -0x1.6a09e8p-4 + }, + { // Entry 286 + 0x1.6bf386a4733dc9584317633d590964f4p-3, + 0x1.6a09e4p-3 + }, + { // Entry 287 + -0x1.6bf386a4733dc9584317633d590964f4p-3, + -0x1.6a09e4p-3 + }, + { // Entry 288 + 0x1.6bf388aca486b9850c50cf9f457667f2p-3, + 0x1.6a09e6p-3 + }, + { // Entry 289 + -0x1.6bf388aca486b9850c50cf9f457667f2p-3, + -0x1.6a09e6p-3 + }, + { // Entry 290 + 0x1.6bf38ab4d5cfc16cfd39ac77e07b6048p-3, + 0x1.6a09e8p-3 + }, + { // Entry 291 + -0x1.6bf38ab4d5cfc16cfd39ac77e07b6048p-3, + -0x1.6a09e8p-3 + }, + { // Entry 292 + 0x1.720a3699a2940f93106e8a7ed729b32ap-2, + 0x1.6a09e4p-2 + }, + { // Entry 293 + -0x1.720a3699a2940f93106e8a7ed729b32ap-2, + -0x1.6a09e4p-2 + }, + { // Entry 294 + 0x1.720a38bcfc706dd98b8488a3c1523d31p-2, + 0x1.6a09e6p-2 + }, + { // Entry 295 + -0x1.720a38bcfc706dd98b8488a3c1523d31p-2, + -0x1.6a09e6p-2 + }, + { // Entry 296 + 0x1.720a3ae0564d3ab4ea8b987564d202e2p-2, + 0x1.6a09e8p-2 + }, + { // Entry 297 + -0x1.720a3ae0564d3ab4ea8b987564d202e2p-2, + -0x1.6a09e8p-2 + }, + { // Entry 298 + 0x1.bb67e36d07936cca0afecdde8822ac92p-9, + 0x1.bb67acp-9 + }, + { // Entry 299 + -0x1.bb67e36d07936cca0afecdde8822ac92p-9, + -0x1.bb67acp-9 + }, + { // Entry 300 + 0x1.bb67e56d08536d34b9eb8cded8ea25b3p-9, + 0x1.bb67aep-9 + }, + { // Entry 301 + -0x1.bb67e56d08536d34b9eb8cded8ea25b3p-9, + -0x1.bb67aep-9 + }, + { // Entry 302 + 0x1.bb67e76d09136da12441ecb59fee2493p-9, + 0x1.bb67b0p-9 + }, + { // Entry 303 + -0x1.bb67e76d09136da12441ecb59fee2493p-9, + -0x1.bb67b0p-9 + }, + { // Entry 304 + 0x1.bb6889b4fec8ebcca61c46f455ae5d4fp-8, + 0x1.bb67acp-8 + }, + { // Entry 305 + -0x1.bb6889b4fec8ebcca61c46f455ae5d4fp-8, + -0x1.bb67acp-8 + }, + { // Entry 306 + 0x1.bb688bb501c8f287718fa43e6142902dp-8, + 0x1.bb67aep-8 + }, + { // Entry 307 + -0x1.bb688bb501c8f287718fa43e6142902dp-8, + -0x1.bb67aep-8 + }, + { // Entry 308 + 0x1.bb688db504c8f9492ac0e747817f22a8p-8, + 0x1.bb67b0p-8 + }, + { // Entry 309 + -0x1.bb688db504c8f9492ac0e747817f22a8p-8, + -0x1.bb67b0p-8 + }, + { // Entry 310 + 0x1.bb6b22e203353028e079513a11cbbab3p-7, + 0x1.bb67acp-7 + }, + { // Entry 311 + -0x1.bb6b22e203353028e079513a11cbbab3p-7, + -0x1.bb67acp-7 + }, + { // Entry 312 + 0x1.bb6b24e20f359c1801d5ae434ae75b2dp-7, + 0x1.bb67aep-7 + }, + { // Entry 313 + -0x1.bb6b24e20f359c1801d5ae434ae75b2dp-7, + -0x1.bb67aep-7 + }, + { // Entry 314 + 0x1.bb6b26e21b360822db9fdd2b265541b5p-7, + 0x1.bb67b0p-7 + }, + { // Entry 315 + -0x1.bb6b26e21b360822db9fdd2b265541b5p-7, + -0x1.bb67b0p-7 + }, + { // Entry 316 + 0x1.bb758868a56d6f7d82a704d6da78e2fdp-6, + 0x1.bb67acp-6 + }, + { // Entry 317 + -0x1.bb758868a56d6f7d82a704d6da78e2fdp-6, + -0x1.bb67acp-6 + }, + { // Entry 318 + 0x1.bb758a68d574303741eb85efe34dac9ap-6, + 0x1.bb67aep-6 + }, + { // Entry 319 + -0x1.bb758a68d574303741eb85efe34dac9ap-6, + -0x1.bb67aep-6 + }, + { // Entry 320 + 0x1.bb758c69057af15ffa5021690b86d6e5p-6, + 0x1.bb67b0p-6 + }, + { // Entry 321 + -0x1.bb758c69057af15ffa5021690b86d6e5p-6, + -0x1.bb67b0p-6 + }, + { // Entry 322 + 0x1.bb9f2bb2025df5b5a01f890e267acbf6p-5, + 0x1.bb67acp-5 + }, + { // Entry 323 + -0x1.bb9f2bb2025df5b5a01f890e267acbf6p-5, + -0x1.bb67acp-5 + }, + { // Entry 324 + 0x1.bb9f2db2c2ca380f37f00e10c34f3f4ep-5, + 0x1.bb67aep-5 + }, + { // Entry 325 + -0x1.bb9f2db2c2ca380f37f00e10c34f3f4ep-5, + -0x1.bb67aep-5 + }, + { // Entry 326 + 0x1.bb9f2fb383367c262c18778b11ce72cap-5, + 0x1.bb67b0p-5 + }, + { // Entry 327 + -0x1.bb9f2fb383367c262c18778b11ce72cap-5, + -0x1.bb67b0p-5 + }, + { // Entry 328 + 0x1.bc468d3a974cd6c6f353f238e6ee9635p-4, + 0x1.bb67acp-4 + }, + { // Entry 329 + -0x1.bc468d3a974cd6c6f353f238e6ee9635p-4, + -0x1.bb67acp-4 + }, + { // Entry 330 + 0x1.bc468f3d9e1dde2e7296f0680c8b5cf1p-4, + 0x1.bb67aep-4 + }, + { // Entry 331 + -0x1.bc468f3d9e1dde2e7296f0680c8b5cf1p-4, + -0x1.bb67aep-4 + }, + { // Entry 332 + 0x1.bc469140a4eeeca3346497225181070ep-4, + 0x1.bb67b0p-4 + }, + { // Entry 333 + -0x1.bc469140a4eeeca3346497225181070ep-4, + -0x1.bb67b0p-4 + }, + { // Entry 334 + 0x1.bef1ba1b54f2e517608d497eda81f13ep-3, + 0x1.bb67acp-3 + }, + { // Entry 335 + -0x1.bef1ba1b54f2e517608d497eda81f13ep-3, + -0x1.bb67acp-3 + }, + { // Entry 336 + 0x1.bef1bc27c5590e551667836f44b8240bp-3, + 0x1.bb67aep-3 + }, + { // Entry 337 + -0x1.bef1bc27c5590e551667836f44b8240bp-3, + -0x1.bb67aep-3 + }, + { // Entry 338 + 0x1.bef1be3435bf555b062c6b933968f858p-3, + 0x1.bb67b0p-3 + }, + { // Entry 339 + -0x1.bef1be3435bf555b062c6b933968f858p-3, + -0x1.bb67b0p-3 + }, + { // Entry 340 + 0x1.ca94909f751f880a004b5b2d1358c7d8p-2, + 0x1.bb67acp-2 + }, + { // Entry 341 + -0x1.ca94909f751f880a004b5b2d1358c7d8p-2, + -0x1.bb67acp-2 + }, + { // Entry 342 + 0x1.ca9492d778731c60ad6f2198bec11118p-2, + 0x1.bb67aep-2 + }, + { // Entry 343 + -0x1.ca9492d778731c60ad6f2198bec11118p-2, + -0x1.bb67aep-2 + }, + { // Entry 344 + 0x1.ca94950f7bc7481303f6206eb55e6063p-2, + 0x1.bb67b0p-2 + }, + { // Entry 345 + -0x1.ca94950f7bc7481303f6206eb55e6063p-2, + -0x1.bb67b0p-2 + }, + { // Entry 346 + 0x1.fffff8p-128, + 0x1.fffff8p-128 + }, + { // Entry 347 + -0x1.fffff8p-128, + -0x1.fffff8p-128 + }, + { // Entry 348 + 0x1.p-127, + 0x1.p-127 + }, + { // Entry 349 + -0x1.p-127, + -0x1.p-127 + }, + { // Entry 350 + 0x1.000004p-127, + 0x1.000004p-127 + }, + { // Entry 351 + -0x1.000004p-127, + -0x1.000004p-127 + }, + { // Entry 352 + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 353 + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 354 + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 355 + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 356 + 0x1.000002p-126, + 0x1.000002p-126 + }, + { // Entry 357 + -0x1.000002p-126, + -0x1.000002p-126 + }, + { // Entry 358 + -0x1.000002p-126, + -0x1.000002p-126 + }, + { // Entry 359 + 0x1.000002p-126, + 0x1.000002p-126 + }, + { // Entry 360 + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 361 + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 362 + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 363 + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 364 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 365 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 366 + 0.0, + 0.0 + }, + { // Entry 367 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 368 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 369 + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 370 + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 371 + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 372 + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 373 + 0x1.000002p-126, + 0x1.000002p-126 + }, + { // Entry 374 + -0x1.000002p-126, + -0x1.000002p-126 + }, + { // Entry 375 + 0x1.fffffe0000000005555545555565557bp-31, + 0x1.fffffep-31 + }, + { // Entry 376 + -0x1.fffffe0000000005555545555565557bp-31, + -0x1.fffffep-31 + }, + { // Entry 377 + 0x1.0000000000000002aaaaaaaaaaaaaabdp-30, + 0x1.p-30 + }, + { // Entry 378 + -0x1.0000000000000002aaaaaaaaaaaaaabdp-30, + -0x1.p-30 + }, + { // Entry 379 + 0x1.0000020000000002aaaabaaaaacaaabdp-30, + 0x1.000002p-30 + }, + { // Entry 380 + -0x1.0000020000000002aaaabaaaaacaaabdp-30, + -0x1.000002p-30 + }, + { // Entry 381 + 0x1.fffffe0000000155555155555957bbbap-28, + 0x1.fffffep-28 + }, + { // Entry 382 + -0x1.fffffe0000000155555155555957bbbap-28, + -0x1.fffffep-28 + }, + { // Entry 383 + 0x1.00000000000000aaaaaaaaaaaaabddddp-27, + 0x1.p-27 + }, + { // Entry 384 + -0x1.00000000000000aaaaaaaaaaaaabddddp-27, + -0x1.p-27 + }, + { // Entry 385 + 0x1.00000200000000aaaaaeaaaab2abdde3p-27, + 0x1.000002p-27 + }, + { // Entry 386 + -0x1.00000200000000aaaaaeaaaab2abdde3p-27, + -0x1.000002p-27 + }, + { // Entry 387 + 0x1.fffffe00000015555515555597bbbb9ap-26, + 0x1.fffffep-26 + }, + { // Entry 388 + -0x1.fffffe00000015555515555597bbbb9ap-26, + -0x1.fffffep-26 + }, + { // Entry 389 + 0x1.0000000000000aaaaaaaaaaaabddddddp-25, + 0x1.p-25 + }, + { // Entry 390 + -0x1.0000000000000aaaaaaaaaaaabddddddp-25, + -0x1.p-25 + }, + { // Entry 391 + 0x1.0000020000000aaaaaeaaaab2bddde3fp-25, + 0x1.000002p-25 + }, + { // Entry 392 + -0x1.0000020000000aaaaaeaaaab2bddde3fp-25, + -0x1.000002p-25 + }, + { // Entry 393 + 0x1.fffffe055555457bbbcafd296eb7e3aap-15, + 0x1.fffffep-15 + }, + { // Entry 394 + -0x1.fffffe055555457bbbcafd296eb7e3aap-15, + -0x1.fffffep-15 + }, + { // Entry 395 + 0x1.00000002aaaaaabdddddde94b94b9c80p-14, + 0x1.p-14 + }, + { // Entry 396 + -0x1.00000002aaaaaabdddddde94b94b9c80p-14, + -0x1.p-14 + }, + { // Entry 397 + 0x1.00000202aaaababdddfe9e94d1aaf1dbp-14, + 0x1.000002p-14 + }, + { // Entry 398 + -0x1.00000202aaaababdddfe9e94d1aaf1dbp-14, + -0x1.000002p-14 + }, + { // Entry 399 + 0x1.0002a9bdd69461160d4c75451704a3b7p-6, + 0x1.fffffep-7 + }, + { // Entry 400 + -0x1.0002a9bdd69461160d4c75451704a3b7p-6, + -0x1.fffffep-7 + }, + { // Entry 401 + 0x1.0002aabdde94c1130cd26cdfa377f967p-6, + 0x1.p-6 + }, + { // Entry 402 + -0x1.0002aabdde94c1130cd26cdfa377f967p-6, + -0x1.p-6 + }, + { // Entry 403 + 0x1.0002acbdee95813d105ec61fcd6ae2fap-6, + 0x1.000002p-6 + }, + { // Entry 404 + -0x1.0002acbdee95813d105ec61fcd6ae2fap-6, + -0x1.000002p-6 + }, + { // Entry 405 + 0x1.000aaaddeb9680b69f39448305c87741p-5, + 0x1.fffffep-6 + }, + { // Entry 406 + -0x1.000aaaddeb9680b69f39448305c87741p-5, + -0x1.fffffep-6 + }, + { // Entry 407 + 0x1.000aabde0b9c81d6d94551be3e924e2ap-5, + 0x1.p-5 + }, + { // Entry 408 + -0x1.000aabde0b9c81d6d94551be3e924e2ap-5, + -0x1.p-5 + }, + { // Entry 409 + 0x1.000aadde4ba884d79574330eaeb7d132p-5, + 0x1.000002p-5 + }, + { // Entry 410 + -0x1.000aadde4ba884d79574330eaeb7d132p-5, + -0x1.000002p-5 + }, + { // Entry 411 + 0x1.002abce8d301449b3a6e1375645eb853p-4, + 0x1.fffffep-5 + }, + { // Entry 412 + -0x1.002abce8d301449b3a6e1375645eb853p-4, + -0x1.fffffep-5 + }, + { // Entry 413 + 0x1.002abde953619460b8b71b77bb495f57p-4, + 0x1.p-4 + }, + { // Entry 414 + -0x1.002abde953619460b8b71b77bb495f57p-4, + -0x1.p-4 + }, + { // Entry 415 + 0x1.002abfea542236f03af0c770006184e0p-4, + 0x1.000002p-4 + }, + { // Entry 416 + -0x1.002abfea542236f03af0c770006184e0p-4, + -0x1.000002p-4 + }, + { // Entry 417 + 0x1.00abdfbf23cd9bcb0908b67c29bd1d84p-3, + 0x1.fffffep-4 + }, + { // Entry 418 + -0x1.00abdfbf23cd9bcb0908b67c29bd1d84p-3, + -0x1.fffffep-4 + }, + { // Entry 419 + 0x1.00abe0c129e1e0be7587724ea14e03b1p-3, + 0x1.p-3 + }, + { // Entry 420 + -0x1.00abe0c129e1e0be7587724ea14e03b1p-3, + -0x1.p-3 + }, + { // Entry 421 + 0x1.00abe2c5360a76eebd374087e13d0778p-3, + 0x1.000002p-3 + }, + { // Entry 422 + -0x1.00abe2c5360a76eebd374087e13d0778p-3, + -0x1.000002p-3 + }, + { // Entry 423 + 0x1.02be9bd85332ad669015b48f1281cd8ep-2, + 0x1.fffffep-3 + }, + { // Entry 424 + -0x1.02be9bd85332ad669015b48f1281cd8ep-2, + -0x1.fffffep-3 + }, + { // Entry 425 + 0x1.02be9ce0b87cd1e5d09da2e0f0423bfap-2, + 0x1.p-2 + }, + { // Entry 426 + -0x1.02be9ce0b87cd1e5d09da2e0f0423bfap-2, + -0x1.p-2 + }, + { // Entry 427 + 0x1.02be9ef183114fc560988306f887ac74p-2, + 0x1.000002p-2 + }, + { // Entry 428 + -0x1.02be9ef183114fc560988306f887ac74p-2, + -0x1.000002p-2 + }, + { // Entry 429 + 0x1.0c15225b3cc2308792870438ebfd5814p-1, + 0x1.fffffep-2 + }, + { // Entry 430 + -0x1.0c15225b3cc2308792870438ebfd5814p-1, + -0x1.fffffep-2 + }, + { // Entry 431 + 0x1.0c152382d73658465bb32e0f567ad116p-1, + 0x1.p-1 + }, + { // Entry 432 + -0x1.0c152382d73658465bb32e0f567ad116p-1, + -0x1.p-1 + }, + { // Entry 433 + 0x1.0c1525d20c1fcf5e632996922f28dbf4p-1, + 0x1.000002p-1 + }, + { // Entry 434 + -0x1.0c1525d20c1fcf5e632996922f28dbf4p-1, + -0x1.000002p-1 + }, + { // Entry 435 + 0x1.920914a5da6f90beac755cf81add3707p0, + 0x1.fffffep-1 + }, + { // Entry 436 + -0x1.920914a5da6f90beac755cf81add3707p0, + -0x1.fffffep-1 + }, + { // Entry 437 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p0 + }, + { // Entry 438 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p0 + }, + { // Entry 439 + 0x1.921faf0918938469613a406686d325fbp-1, + 0x1.6a09e2p-1 + }, + { // Entry 440 + -0x1.921faf0918938469613a406686d325fbp-1, + -0x1.6a09e2p-1 + }, + { // Entry 441 + 0x1.921fb1dd2c59846982fbd21e12b62957p-1, + 0x1.6a09e4p-1 + }, + { // Entry 442 + -0x1.921fb1dd2c59846982fbd21e12b62957p-1, + -0x1.6a09e4p-1 + }, + { // Entry 443 + 0x1.921fb4b1402384698984b09966f96de6p-1, + 0x1.6a09e6p-1 + }, + { // Entry 444 + -0x1.921fb4b1402384698984b09966f96de6p-1, + -0x1.6a09e6p-1 + }, + { // Entry 445 + 0x1.921fb78553f184698b7579b807754fb1p-1, + 0x1.6a09e8p-1 + }, + { // Entry 446 + -0x1.921fb78553f184698b7579b807754fb1p-1, + -0x1.6a09e8p-1 + }, + { // Entry 447 + 0x1.921fba5967c384699f6ecc197800562dp-1, + 0x1.6a09eap-1 + }, + { // Entry 448 + -0x1.921fba5967c384699f6ecc197800562dp-1, + -0x1.6a09eap-1 + }, + { // Entry 449 + 0x1.0c151efd527d65a2625f3b65877af5c1p0, + 0x1.bb67aap-1 + }, + { // Entry 450 + -0x1.0c151efd527d65a2625f3b65877af5c1p0, + -0x1.bb67aap-1 + }, + { // Entry 451 + 0x1.0c1520fd527132af0e514af5d776d861p0, + 0x1.bb67acp-1 + }, + { // Entry 452 + -0x1.0c1520fd527132af0e514af5d776d861p0, + -0x1.bb67acp-1 + }, + { // Entry 453 + 0x1.0c1522fd526bed5a0f7cb328ba5c3991p0, + 0x1.bb67aep-1 + }, + { // Entry 454 + -0x1.0c1522fd526bed5a0f7cb328ba5c3991p0, + -0x1.bb67aep-1 + }, + { // Entry 455 + 0x1.0c1524fd526d95a3b5e16f8bb09d2428p0, + 0x1.bb67b0p-1 + }, + { // Entry 456 + -0x1.0c1524fd526d95a3b5e16f8bb09d2428p0, + -0x1.bb67b0p-1 + }, + { // Entry 457 + 0x1.0c1526fd52762b8c517f8184b870bf6dp0, + 0x1.bb67b2p-1 + }, + { // Entry 458 + -0x1.0c1526fd52762b8c517f8184b870bf6dp0, + -0x1.bb67b2p-1 + }, + { // Entry 459 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p0 + }, + { // Entry 460 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p0 + }, + { // Entry 461 + 0x1.920914a5da6f90beac755cf81add3707p0, + 0x1.fffffep-1 + }, + { // Entry 462 + -0x1.920914a5da6f90beac755cf81add3707p0, + -0x1.fffffep-1 + }, + { // Entry 463 + 0x1.ce8277f32da2c5ee7ea325793fd7ccd1p-1, + 0x1.921fb6p-1 + }, + { // Entry 464 + -0x1.ce8277f32da2c5ee7ea325793fd7ccd1p-1, + -0x1.921fb6p-1 + }, + { // Entry 465 + 0x1.000002p-126, + 0x1.000002p-126 + }, + { // Entry 466 + -0x1.000002p-126, + -0x1.000002p-126 + }, + { // Entry 467 + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 468 + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 469 + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 470 + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 471 + 0x1.fffff8p-127, + 0x1.fffff8p-127 + }, + { // Entry 472 + -0x1.fffff8p-127, + -0x1.fffff8p-127 + }, + { // Entry 473 + 0x1.p-148, + 0x1.p-148 + }, + { // Entry 474 + -0x1.p-148, + -0x1.p-148 + }, + { // Entry 475 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 476 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 477 + 0.0, + 0.0f + }, + { // Entry 478 + -0.0, + -0.0f + } +}; diff --git a/tests/math_data/asinh_intel_data.h b/tests/math_data/asinh_intel_data.h new file mode 100644 index 000000000..98eff8674 --- /dev/null +++ b/tests/math_data/asinh_intel_data.h @@ -0,0 +1,2042 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_asinh_intel_data[] = { + { // Entry 0 + -0x1.0000000000000fffffffffffffffffffp-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 1 + 0x1.0000000000000fffffffffffffffffffp-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 2 + -0x1.f2eba5eb5b53c803301c0f8279efd38cp-2, + -0x1.0372ae11c5a53p-1 + }, + { // Entry 3 + 0x1.f2eba5eb5b53c803301c0f8279efd38cp-2, + 0x1.0372ae11c5a53p-1 + }, + { // Entry 4 + -0x1.f8df023d2021bc3d400b315a5494d006p-2, + -0x1.06c9b26c9b268p-1 + }, + { // Entry 5 + 0x1.f8df023d2021bc3d400b315a5494d006p-2, + 0x1.06c9b26c9b268p-1 + }, + { // Entry 6 + -0x1.fb25d3a760a193706b3228440829ee8fp-2, + -0x1.08116a27c1078p-1 + }, + { // Entry 7 + 0x1.fb25d3a760a193706b3228440829ee8fp-2, + 0x1.08116a27c1078p-1 + }, + { // Entry 8 + -0x1.fec35b3e7215a3724feecdb2518899cep-2, + -0x1.0a1a86a1a87p-1 + }, + { // Entry 9 + 0x1.fec35b3e7215a3724feecdb2518899cep-2, + 0x1.0a1a86a1a87p-1 + }, + { // Entry 10 + -0x1.ff951bb7ee7f7a1d9dcf30fb1f47bad6p-2, + -0x1.0a90be1c15949p-1 + }, + { // Entry 11 + 0x1.ff951bb7ee7f7a1d9dcf30fb1f47bad6p-2, + 0x1.0a90be1c15949p-1 + }, + { // Entry 12 + -0x1.3b60a4460a2d2800883eb5ded3be4df0p2, + -0x1.1421084210848p6 + }, + { // Entry 13 + 0x1.3b60a4460a2d2800883eb5ded3be4df0p2, + 0x1.1421084210848p6 + }, + { // Entry 14 + -0x1.138aeab017488804b338e9ac099ab687p-2, + -0x1.16e1400db88a8p-2 + }, + { // Entry 15 + 0x1.138aeab017488804b338e9ac099ab687p-2, + 0x1.16e1400db88a8p-2 + }, + { // Entry 16 + -0x1.fdbacdc8a66437ff0c93d9767a45cb0cp-1, + -0x1.2b1a532971568p0 + }, + { // Entry 17 + 0x1.fdbacdc8a66437ff0c93d9767a45cb0cp-1, + 0x1.2b1a532971568p0 + }, + { // Entry 18 + -0x1.24501dcbce83f8126c61bacbb8a27cedp1, + -0x1.36c03904a8e4ep2 + }, + { // Entry 19 + 0x1.24501dcbce83f8126c61bacbb8a27cedp1, + 0x1.36c03904a8e4ep2 + }, + { // Entry 20 + -0x1.5d36f22f9d342ff8da6ba2b17b474db8p-3, + -0x1.5ee8cb3c781c0p-3 + }, + { // Entry 21 + 0x1.5d36f22f9d342ff8da6ba2b17b474db8p-3, + 0x1.5ee8cb3c781c0p-3 + }, + { // Entry 22 + -0x1.52b6672b024fe000ae144fc9afaeaf51p-1, + -0x1.6bf6fdbf6fd24p-1 + }, + { // Entry 23 + 0x1.52b6672b024fe000ae144fc9afaeaf51p-1, + 0x1.6bf6fdbf6fd24p-1 + }, + { // Entry 24 + -0x1.3993d63acc4ba8035d2b420b1158f993p1, + -0x1.70000000000ffp2 + }, + { // Entry 25 + 0x1.3993d63acc4ba8035d2b420b1158f993p1, + 0x1.70000000000ffp2 + }, + { // Entry 26 + -0x1.97580351103362867acce504fee4245dp-9, + -0x1.97582e4a115p-9 + }, + { // Entry 27 + 0x1.97580351103362867acce504fee4245dp-9, + 0x1.97582e4a115p-9 + }, + { // Entry 28 + -0x1.97b3da2c985dc7e04ebe6b0d62a5513ap-3, + -0x1.9a6699a6699b0p-3 + }, + { // Entry 29 + 0x1.97b3da2c985dc7e04ebe6b0d62a5513ap-3, + 0x1.9a6699a6699b0p-3 + }, + { // Entry 30 + -0x1.92a338ada07c1b531a9867c9a235d502p-2, + -0x1.9d17d9fcad768p-2 + }, + { // Entry 31 + 0x1.92a338ada07c1b531a9867c9a235d502p-2, + 0x1.9d17d9fcad768p-2 + }, + { // Entry 32 + -0x1.4c76858b980217a240a5c74a2588e630p1, + -0x1.ab52dd08f34f4p2 + }, + { // Entry 33 + 0x1.4c76858b980217a240a5c74a2588e630p1, + 0x1.ab52dd08f34f4p2 + }, + { // Entry 34 + -0x1.c06f36b1bdfbf6638d2d6cdc9bc63083p-8, + -0x1.c0701c0701ep-8 + }, + { // Entry 35 + 0x1.c06f36b1bdfbf6638d2d6cdc9bc63083p-8, + 0x1.c0701c0701ep-8 + }, + { // Entry 36 + 0.0, + 0x1.0p-1074 + }, + { // Entry 37 + -0.0, + -0x1.0p-1074 + }, + { // Entry 38 + 0x1.0000000000000fffffffffffffffffffp-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 39 + -0x1.0000000000000fffffffffffffffffffp-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 40 + 0x1.419ecb712c480f8b5decb58386dedd9dp4, + 0x1.0000000000003p28 + }, + { // Entry 41 + -0x1.419ecb712c480f8b5decb58386dedd9dp4, + -0x1.0000000000003p28 + }, + { // Entry 42 + 0x1.ecc2caec516161a5e8aa442a5078d5cfp-2, + 0x1.0000000000007p-1 + }, + { // Entry 43 + -0x1.ecc2caec516161a5e8aa442a5078d5cfp-2, + -0x1.0000000000007p-1 + }, + { // Entry 44 + 0x1.facfb2399e674ffa702bb3c88b513063p-3, + 0x1.0000000000020p-2 + }, + { // Entry 45 + -0x1.facfb2399e674ffa702bb3c88b513063p-3, + -0x1.0000000000020p-2 + }, + { // Entry 46 + 0x1.fffaaad10fbf68e32f80487342e56091p-7, + 0x1.00000000000e0p-6 + }, + { // Entry 47 + -0x1.fffaaad10fbf68e32f80487342e56091p-7, + -0x1.00000000000e0p-6 + }, + { // Entry 48 + 0x1.ffeaad10b5eade934d677b23c2b7f1f1p-6, + 0x1.00000000001c0p-5 + }, + { // Entry 49 + -0x1.ffeaad10b5eade934d677b23c2b7f1f1p-6, + -0x1.00000000001c0p-5 + }, + { // Entry 50 + 0x1.c3436617a1808a74e9cb44e078522310p-1, + 0x1.00000000030p0 + }, + { // Entry 51 + -0x1.c3436617a1808a74e9cb44e078522310p-1, + -0x1.00000000030p0 + }, + { // Entry 52 + 0x1.ffffeaaacb7b0ce864203f798c0ce39dp-10, + 0x1.000000000f350p-9 + }, + { // Entry 53 + -0x1.ffffeaaacb7b0ce864203f798c0ce39dp-10, + -0x1.000000000f350p-9 + }, + { // Entry 54 + 0x1.ffffeaaacd310cb1a42a8370b88e1d60p-10, + 0x1.00000000101p-9 + }, + { // Entry 55 + -0x1.ffffeaaacd310cb1a42a8370b88e1d60p-10, + -0x1.00000000101p-9 + }, + { // Entry 56 + 0x1.fead0b69d618a81747624f3c7ca38382p-4, + 0x1.000000002p-3 + }, + { // Entry 57 + -0x1.fead0b69d618a81747624f3c7ca38382p-4, + -0x1.000000002p-3 + }, + { // Entry 58 + 0x1.ffeaad1131a3687962cb8ca0a64f4c60p-6, + 0x1.000000003e0p-5 + }, + { // Entry 59 + -0x1.ffeaad1131a3687962cb8ca0a64f4c60p-6, + -0x1.000000003e0p-5 + }, + { // Entry 60 + 0x1.ffeaad1135a2e8915dcc65794d5c1216p-6, + 0x1.000000004p-5 + }, + { // Entry 61 + -0x1.ffeaad1135a2e8915dcc65794d5c1216p-6, + -0x1.000000004p-5 + }, + { // Entry 62 + 0x1.fead0b6d0fabe7f7940a172c81b216a2p-4, + 0x1.00000001cp-3 + }, + { // Entry 63 + -0x1.fead0b6d0fabe7f7940a172c81b216a2p-4, + -0x1.00000001cp-3 + }, + { // Entry 64 + 0x1.719218369adf88000392d7dc8518a18fp0, + 0x1.000000060p1 + }, + { // Entry 65 + -0x1.719218369adf88000392d7dc8518a18fp0, + -0x1.000000060p1 + }, + { // Entry 66 + 0x1.ecc2cafab28f10000058d757d62be0f2p-2, + 0x1.0000000809d7dp-1 + }, + { // Entry 67 + -0x1.ecc2cafab28f10000058d757d62be0f2p-2, + -0x1.0000000809d7dp-1 + }, + { // Entry 68 + 0x1.ffeabb0ef606c7da67459428149adbadp-6, + 0x1.0000070p-5 + }, + { // Entry 69 + -0x1.ffeabb0ef606c7da67459428149adbadp-6, + -0x1.0000070p-5 + }, + { // Entry 70 + 0x1.0c1f98037ddb97ff3c5068b316a00165p1, + 0x1.00001c0p2 + }, + { // Entry 71 + -0x1.0c1f98037ddb97ff3c5068b316a00165p1, + -0x1.00001c0p2 + }, + { // Entry 72 + 0x1.fad06c7e0e0a7003b1140bc95ab405ffp-3, + 0x1.00006p-2 + }, + { // Entry 73 + -0x1.fad06c7e0e0a7003b1140bc95ab405ffp-3, + -0x1.00006p-2 + }, + { // Entry 74 + 0x1.c344d0212927f5fa42a3dd90c845aafep-1, + 0x1.00010p0 + }, + { // Entry 75 + -0x1.c344d0212927f5fa42a3dd90c845aafep-1, + -0x1.00010p0 + }, + { // Entry 76 + 0x1.5507660f47456800d91258e8755bd5f4p7, + 0x1.001p245 + }, + { // Entry 77 + -0x1.5507660f47456800d91258e8755bd5f4p7, + -0x1.001p245 + }, + { // Entry 78 + 0x1.210ae10a6cc59fbb8020167ab1dffccap9, + 0x1.001p833 + }, + { // Entry 79 + -0x1.210ae10a6cc59fbb8020167ab1dffccap9, + -0x1.001p833 + }, + { // Entry 80 + 0x1.d5f45b75d63b680001d13ac1dbe562bcp8, + 0x1.003p677 + }, + { // Entry 81 + -0x1.d5f45b75d63b680001d13ac1dbe562bcp8, + -0x1.003p677 + }, + { // Entry 82 + 0x1.ffb3c044157318449812a557bcf1706ap-4, + 0x1.008460a44ffc1p-3 + }, + { // Entry 83 + -0x1.ffb3c044157318449812a557bcf1706ap-4, + -0x1.008460a44ffc1p-3 + }, + { // Entry 84 + 0x1.edb50436723d4759390d6456c2e8adf5p-2, + 0x1.00876f69ec52fp-1 + }, + { // Entry 85 + -0x1.edb50436723d4759390d6456c2e8adf5p-2, + -0x1.00876f69ec52fp-1 + }, + { // Entry 86 + 0x1.41bb41c3f17da804e9ad14f4bd75bacep4, + 0x1.01c8fb2951ca4p28 + }, + { // Entry 87 + -0x1.41bb41c3f17da804e9ad14f4bd75bacep4, + -0x1.01c8fb2951ca4p28 + }, + { // Entry 88 + 0x1.c6dfe797565f57ffff7a8713d032c096p-1, + 0x1.028f5c2a30342p0 + }, + { // Entry 89 + -0x1.c6dfe797565f57ffff7a8713d032c096p-1, + -0x1.028f5c2a30342p0 + }, + { // Entry 90 + 0x1.c6dfe79afae7afffffa3117d3818eeecp-1, + 0x1.028f5c2cc6e8bp0 + }, + { // Entry 91 + -0x1.c6dfe79afae7afffffa3117d3818eeecp-1, + -0x1.028f5c2cc6e8bp0 + }, + { // Entry 92 + 0x1.f15897705c5497fd072c467ee385c7a0p-2, + 0x1.0290d52c6e91cp-1 + }, + { // Entry 93 + -0x1.f15897705c5497fd072c467ee385c7a0p-2, + -0x1.0290d52c6e91cp-1 + }, + { // Entry 94 + 0x1.f1760421743425feec4439805ecd1fc5p-2, + 0x1.02a150a8542a0p-1 + }, + { // Entry 95 + -0x1.f1760421743425feec4439805ecd1fc5p-2, + -0x1.02a150a8542a0p-1 + }, + { // Entry 96 + 0x1.f6bc79c87c02ec261ae70361810513bfp-2, + 0x1.0596af363ee5ap-1 + }, + { // Entry 97 + -0x1.f6bc79c87c02ec261ae70361810513bfp-2, + -0x1.0596af363ee5ap-1 + }, + { // Entry 98 + 0x1.78a6cf7b3035bce4e063abd1ab00c432p0, + 0x1.08040201008p1 + }, + { // Entry 99 + -0x1.78a6cf7b3035bce4e063abd1ab00c432p0, + -0x1.08040201008p1 + }, + { // Entry 100 + 0x1.fb18e232de8cd7fb0a7c7d40c2100415p-2, + 0x1.080a2213c5d7fp-1 + }, + { // Entry 101 + -0x1.fb18e232de8cd7fb0a7c7d40c2100415p-2, + -0x1.080a2213c5d7fp-1 + }, + { // Entry 102 + 0x1.fc36c248c852a7ffddc9062d9e764f4bp-2, + 0x1.08aaffb099863p-1 + }, + { // Entry 103 + -0x1.fc36c248c852a7ffddc9062d9e764f4bp-2, + -0x1.08aaffb099863p-1 + }, + { // Entry 104 + 0x1.0f28edd4476116d66ca78dc309cf80f9p-9, + 0x1.0f28fa815b6c8p-9 + }, + { // Entry 105 + -0x1.0f28edd4476116d66ca78dc309cf80f9p-9, + -0x1.0f28fa815b6c8p-9 + }, + { // Entry 106 + 0x1.151f44f2b4f427ffff7a41c02c5cf355p1, + 0x1.133333335479ap2 + }, + { // Entry 107 + -0x1.151f44f2b4f427ffff7a41c02c5cf355p1, + -0x1.133333335479ap2 + }, + { // Entry 108 + 0x1.e46bf608630f17f3183a7d1db5529144p-1, + 0x1.180p0 + }, + { // Entry 109 + -0x1.e46bf608630f17f3183a7d1db5529144p-1, + -0x1.180p0 + }, + { // Entry 110 + 0x1.434264c6fc6708034a24c8e524f5687dp4, + 0x1.1b9d819ebf8cep28 + }, + { // Entry 111 + -0x1.434264c6fc6708034a24c8e524f5687dp4, + -0x1.1b9d819ebf8cep28 + }, + { // Entry 112 + 0x1.101ff8a713880a351f47c974f12ce55ep-1, + 0x1.1d1e74e330911p-1 + }, + { // Entry 113 + -0x1.101ff8a713880a351f47c974f12ce55ep-1, + -0x1.1d1e74e330911p-1 + }, + { // Entry 114 + 0x1.1a493ab88461d7fd3beeba172ff9a7f0p-2, + 0x1.1dep-2 + }, + { // Entry 115 + -0x1.1a493ab88461d7fd3beeba172ff9a7f0p-2, + -0x1.1dep-2 + }, + { // Entry 116 + 0x1.12e044c3ab17180beb67fd37dde3818ep-1, + 0x1.2045a703c2358p-1 + }, + { // Entry 117 + -0x1.12e044c3ab17180beb67fd37dde3818ep-1, + -0x1.2045a703c2358p-1 + }, + { // Entry 118 + 0x1.134f8303f8e7d7792a8cfcae2ab188a3p-1, + 0x1.20c557b1da1d0p-1 + }, + { // Entry 119 + -0x1.134f8303f8e7d7792a8cfcae2ab188a3p-1, + -0x1.20c557b1da1d0p-1 + }, + { // Entry 120 + 0x1.13a88f92f15df43236c0af1f8703f1e3p-1, + 0x1.212b987b85034p-1 + }, + { // Entry 121 + -0x1.13a88f92f15df43236c0af1f8703f1e3p-1, + -0x1.212b987b85034p-1 + }, + { // Entry 122 + 0x1.16805e66deb3cf0b1c0ec9b60fdb7894p-1, + 0x1.24709b4a7de54p-1 + }, + { // Entry 123 + -0x1.16805e66deb3cf0b1c0ec9b60fdb7894p-1, + -0x1.24709b4a7de54p-1 + }, + { // Entry 124 + 0x1.265195db6355dfff0127bbf1e5e11703p-6, + 0x1.2655a343af923p-6 + }, + { // Entry 125 + -0x1.265195db6355dfff0127bbf1e5e11703p-6, + -0x1.2655a343af923p-6 + }, + { // Entry 126 + 0x1.43fe1550dc5730023455469bb4ddb63fp4, + 0x1.28e9e3033b2d0p28 + }, + { // Entry 127 + -0x1.43fe1550dc5730023455469bb4ddb63fp4, + -0x1.28e9e3033b2d0p28 + }, + { // Entry 128 + 0x1.218f8513eb4d27ec00b1291cfdc18d67p1, + 0x1.300000036bf99p2 + }, + { // Entry 129 + -0x1.218f8513eb4d27ec00b1291cfdc18d67p1, + -0x1.300000036bf99p2 + }, + { // Entry 130 + 0x1.22a54301136de7ee5ce85eb01455a4eep1, + 0x1.32a4e674697e7p2 + }, + { // Entry 131 + -0x1.22a54301136de7ee5ce85eb01455a4eep1, + -0x1.32a4e674697e7p2 + }, + { // Entry 132 + 0x1.24292ef03128080ed3d9b08df44f6fb7p1, + 0x1.365fc696fa5b0p2 + }, + { // Entry 133 + -0x1.24292ef03128080ed3d9b08df44f6fb7p1, + -0x1.365fc696fa5b0p2 + }, + { // Entry 134 + 0x1.2575169c887057ffff7a5b19ee86a3d5p1, + 0x1.3999999a1ab8cp2 + }, + { // Entry 135 + -0x1.2575169c887057ffff7a5b19ee86a3d5p1, + -0x1.3999999a1ab8cp2 + }, + { // Entry 136 + 0x1.25dc8638bdb2f80ff1668031438c9765p1, + 0x1.3a9ca45e66e91p2 + }, + { // Entry 137 + -0x1.25dc8638bdb2f80ff1668031438c9765p1, + -0x1.3a9ca45e66e91p2 + }, + { // Entry 138 + 0x1.26409faea12417fd5ca4674254142d91p1, + 0x1.3b9817a24777ep2 + }, + { // Entry 139 + -0x1.26409faea12417fd5ca4674254142d91p1, + -0x1.3b9817a24777ep2 + }, + { // Entry 140 + 0x1.4fffffffff9f880000004ac8393332e6p-20, + 0x1.5p-20 + }, + { // Entry 141 + -0x1.4fffffffff9f880000004ac8393332e6p-20, + -0x1.5p-20 + }, + { // Entry 142 + 0x1.2ee78375a21e580b5728c038fb225c9fp1, + 0x1.52191d255a790p2 + }, + { // Entry 143 + -0x1.2ee78375a21e580b5728c038fb225c9fp1, + -0x1.52191d255a790p2 + }, + { // Entry 144 + 0x1.3185d0f16e6b6807a095bb392a3382b4p1, + 0x1.593552a340f40p2 + }, + { // Entry 145 + -0x1.3185d0f16e6b6807a095bb392a3382b4p1, + -0x1.593552a340f40p2 + }, + { // Entry 146 + 0x1.5aa83c174d0747d7431c3ae246f0a0c0p-5, + 0x1.5ac2b9013fba0p-5 + }, + { // Entry 147 + -0x1.5aa83c174d0747d7431c3ae246f0a0c0p-5, + -0x1.5ac2b9013fba0p-5 + }, + { // Entry 148 + 0x1.339f4c2a909867fb9c10e43011125aa5p1, + 0x1.5f03888dbf20fp2 + }, + { // Entry 149 + -0x1.339f4c2a909867fb9c10e43011125aa5p1, + -0x1.5f03888dbf20fp2 + }, + { // Entry 150 + 0x1.bd38dfe35d1acaae5c9501194270a136p0, + 0x1.6113b497290a0p1 + }, + { // Entry 151 + -0x1.bd38dfe35d1acaae5c9501194270a136p0, + -0x1.6113b497290a0p1 + }, + { // Entry 152 + 0x1.c1075a363e410a8f98845c743ba3787ap0, + 0x1.66b359acd6680p1 + }, + { // Entry 153 + -0x1.c1075a363e410a8f98845c743ba3787ap0, + -0x1.66b359acd6680p1 + }, + { // Entry 154 + 0x1.c262c12766e32579979b9555c11e1726p0, + 0x1.68b97a389b46cp1 + }, + { // Entry 155 + -0x1.c262c12766e32579979b9555c11e1726p0, + -0x1.68b97a389b46cp1 + }, + { // Entry 156 + 0x1.747df23f098e1ea8bfc81fa5be8e0998p-7, + 0x1.748p-7 + }, + { // Entry 157 + -0x1.747df23f098e1ea8bfc81fa5be8e0998p-7, + -0x1.748p-7 + }, + { // Entry 158 + 0x1.734f39e590ff4c558714ce06a3e0ce12p-2, + 0x1.7b8p-2 + }, + { // Entry 159 + -0x1.734f39e590ff4c558714ce06a3e0ce12p-2, + -0x1.7b8p-2 + }, + { // Entry 160 + 0x1.84ea54e95b79d80052d4496a3b257037p-4, + 0x1.858p-4 + }, + { // Entry 161 + -0x1.84ea54e95b79d80052d4496a3b257037p-4, + -0x1.858p-4 + }, + { // Entry 162 + 0x1.8c3d8723afa7d7fe5aac8c67302c2016p-7, + 0x1.8c4p-7 + }, + { // Entry 163 + -0x1.8c3d8723afa7d7fe5aac8c67302c2016p-7, + -0x1.8c4p-7 + }, + { // Entry 164 + 0x1.6fdab10671bdb04ee0b9e2255ea89ee4p-1, + 0x1.905415054158cp-1 + }, + { // Entry 165 + -0x1.6fdab10671bdb04ee0b9e2255ea89ee4p-1, + -0x1.905415054158cp-1 + }, + { // Entry 166 + 0x1.77204b30761997ffff9f14bcadd5050ep-1, + 0x1.9999999df31f2p-1 + }, + { // Entry 167 + -0x1.77204b30761997ffff9f14bcadd5050ep-1, + -0x1.9999999df31f2p-1 + }, + { // Entry 168 + 0x1.8f656b48fdbb8800007fb53bc7f22857p-2, + 0x1.999999a8e2404p-2 + }, + { // Entry 169 + -0x1.8f656b48fdbb8800007fb53bc7f22857p-2, + -0x1.999999a8e2404p-2 + }, + { // Entry 170 + 0x1.98eb9ea8504947ffff97daef209016f0p-4, + 0x1.999999c3bfab9p-4 + }, + { // Entry 171 + -0x1.98eb9ea8504947ffff97daef209016f0p-4, + -0x1.999999c3bfab9p-4 + }, + { // Entry 172 + 0x1.98eb9eaddfeba000008e0f13b5b376e8p-4, + 0x1.999999c95667ap-4 + }, + { // Entry 173 + -0x1.98eb9eaddfeba000008e0f13b5b376e8p-4, + -0x1.999999c95667ap-4 + }, + { // Entry 174 + 0x1.796335ca772c2274edcfef9c0d7aea2ap-1, + 0x1.9c8p-1 + }, + { // Entry 175 + -0x1.796335ca772c2274edcfef9c0d7aea2ap-1, + -0x1.9c8p-1 + }, + { // Entry 176 + 0x1.a3fc70e78b72affea798fb1ed9e01b11p-7, + 0x1.a3ff627f789p-7 + }, + { // Entry 177 + -0x1.a3fc70e78b72affea798fb1ed9e01b11p-7, + -0x1.a3ff627f789p-7 + }, + { // Entry 178 + 0x1.4f0a85b0ad4857ff001b414064939016p9, + 0x1.a6edff7a583f8p965 + }, + { // Entry 179 + -0x1.4f0a85b0ad4857ff001b414064939016p9, + -0x1.a6edff7a583f8p965 + }, + { // Entry 180 + 0x1.4c2b484bc41907fe51fbf0db7eb6c058p1, + 0x1.aa552a954aap2 + }, + { // Entry 181 + -0x1.4c2b484bc41907fe51fbf0db7eb6c058p1, + -0x1.aa552a954aap2 + }, + { // Entry 182 + 0x1.8964d070b42ff2d026071f870e311b26p-1, + 0x1.b1427cd988b8cp-1 + }, + { // Entry 183 + -0x1.8964d070b42ff2d026071f870e311b26p-1, + -0x1.b1427cd988b8cp-1 + }, + { // Entry 184 + 0x1.4d02914955d62fffff71df03043350f4p0, + 0x1.b3333337506cap0 + }, + { // Entry 185 + -0x1.4d02914955d62fffff71df03043350f4p0, + -0x1.b3333337506cap0 + }, + { // Entry 186 + 0x1.b010ad38a80b2ae0fc455f9f136e746dp-2, + 0x1.bd0p-2 + }, + { // Entry 187 + -0x1.b010ad38a80b2ae0fc455f9f136e746dp-2, + -0x1.bd0p-2 + }, + { // Entry 188 + 0x1.c8543a9a9c24311233a315255f5c4651p-9, + 0x1.c8547704cc94ap-9 + }, + { // Entry 189 + -0x1.c8543a9a9c24311233a315255f5c4651p-9, + -0x1.c8547704cc94ap-9 + }, + { // Entry 190 + 0x1.c9ac0c777fff8ff9d8ee7153627176abp-4, + 0x1.caap-4 + }, + { // Entry 191 + -0x1.c9ac0c777fff8ff9d8ee7153627176abp-4, + -0x1.caap-4 + }, + { // Entry 192 + 0x1.ca6adaba65efe7f20f871de10947cd5cp-4, + 0x1.cb5fffffe7a06p-4 + }, + { // Entry 193 + -0x1.ca6adaba65efe7f20f871de10947cd5cp-4, + -0x1.cb5fffffe7a06p-4 + }, + { // Entry 194 + 0x1.ca6adaba7e28a7f59fa07b692a9fe0f9p-4, + 0x1.cb6p-4 + }, + { // Entry 195 + -0x1.ca6adaba7e28a7f59fa07b692a9fe0f9p-4, + -0x1.cb6p-4 + }, + { // Entry 196 + 0x1.e1c5c0ca279f77ff07f31b933b58d12ap2, + 0x1.d0b42d0b42d08p9 + }, + { // Entry 197 + -0x1.e1c5c0ca279f77ff07f31b933b58d12ap2, + -0x1.d0b42d0b42d08p9 + }, + { // Entry 198 + 0x1.a3e8b71cba28d7fec3d1c6454bbba99dp-1, + 0x1.d4974eca333c3p-1 + }, + { // Entry 199 + -0x1.a3e8b71cba28d7fec3d1c6454bbba99dp-1, + -0x1.d4974eca333c3p-1 + }, + { // Entry 200 + 0x1.d4ede01f10ab67b211c278274a3c64eap-5, + 0x1.d52f71e93cb21p-5 + }, + { // Entry 201 + -0x1.d4ede01f10ab67b211c278274a3c64eap-5, + -0x1.d52f71e93cb21p-5 + }, + { // Entry 202 + 0x1.a66b6c181a57eec89a856dab88260c85p-1, + 0x1.d80p-1 + }, + { // Entry 203 + -0x1.a66b6c181a57eec89a856dab88260c85p-1, + -0x1.d80p-1 + }, + { // Entry 204 + 0x1.da493afa5f7b1834c0ac9129ea3f8481p-5, + 0x1.da8d12b111853p-5 + }, + { // Entry 205 + -0x1.da493afa5f7b1834c0ac9129ea3f8481p-5, + -0x1.da8d12b111853p-5 + }, + { // Entry 206 + 0x1.d86c93088bcd89c3a7ea69e10bebc834p-3, + 0x1.dcap-3 + }, + { // Entry 207 + -0x1.d86c93088bcd89c3a7ea69e10bebc834p-3, + -0x1.dcap-3 + }, + { // Entry 208 + 0x1.5b210231129f7801b2df8c036bedd614p1, + 0x1.dfbf7efdfbf78p2 + }, + { // Entry 209 + -0x1.5b210231129f7801b2df8c036bedd614p1, + -0x1.dfbf7efdfbf78p2 + }, + { // Entry 210 + 0x1.e743ce73d923d00856cbaafe09163cdfp-3, + 0x1.ebep-3 + }, + { // Entry 211 + -0x1.e743ce73d923d00856cbaafe09163cdfp-3, + -0x1.ebep-3 + }, + { // Entry 212 + 0x1.de596b4f4d5018eb85e6571011c15683p-2, + 0x1.efeffffffffffp-2 + }, + { // Entry 213 + -0x1.de596b4f4d5018eb85e6571011c15683p-2, + -0x1.efeffffffffffp-2 + }, + { // Entry 214 + 0x1.6a6eb2ffee2edafd7fed403ad2c6d203p0, + 0x1.f03c3f9d576bcp0 + }, + { // Entry 215 + -0x1.6a6eb2ffee2edafd7fed403ad2c6d203p0, + -0x1.f03c3f9d576bcp0 + }, + { // Entry 216 + 0x1.f3df6e88a792e801ff70692e5a789f21p-5, + 0x1.f42edbd85d9f8p-5 + }, + { // Entry 217 + -0x1.f3df6e88a792e801ff70692e5a789f21p-5, + -0x1.f42edbd85d9f8p-5 + }, + { // Entry 218 + 0x1.6c59a446d1b78b1c9b74684b78b10b0fp0, + 0x1.f46ea5f8f54e8p0 + }, + { // Entry 219 + -0x1.6c59a446d1b78b1c9b74684b78b10b0fp0, + -0x1.f46ea5f8f54e8p0 + }, + { // Entry 220 + 0x1.f55afe0cccf0971d810065fd8ca51746p-7, + 0x1.f56p-7 + }, + { // Entry 221 + -0x1.f55afe0cccf0971d810065fd8ca51746p-7, + -0x1.f56p-7 + }, + { // Entry 222 + 0x1.f72c28bf439cf823462f9436177c0f68p-3, + 0x1.fc4p-3 + }, + { // Entry 223 + -0x1.f72c28bf439cf823462f9436177c0f68p-3, + -0x1.fc4p-3 + }, + { // Entry 224 + 0x1.fe3de8a25c148ff37ff3fff4ea96b0c5p-4, + 0x1.ff8ffffffffffp-4 + }, + { // Entry 225 + -0x1.fe3de8a25c148ff37ff3fff4ea96b0c5p-4, + -0x1.ff8ffffffffffp-4 + }, + { // Entry 226 + 0x1.ff7abb0b079d45b8c077c138812ef785p-6, + 0x1.ff8ffffffffffp-6 + }, + { // Entry 227 + -0x1.ff7abb0b079d45b8c077c138812ef785p-6, + -0x1.ff8ffffffffffp-6 + }, + { // Entry 228 + 0x1.ff8faae2c4a7e15f49f1e7fd10226df8p-9, + 0x1.ff8ffffffffffp-9 + }, + { // Entry 229 + -0x1.ff8faae2c4a7e15f49f1e7fd10226df8p-9, + -0x1.ff8ffffffffffp-9 + }, + { // Entry 230 + 0x1.6363716659a0d6ec9a4d1673a0c1caf9p1, + 0x1.ffffff3ffffffp2 + }, + { // Entry 231 + -0x1.6363716659a0d6ec9a4d1673a0c1caf9p1, + -0x1.ffffff3ffffffp2 + }, + { // Entry 232 + 0x1.fffaaab70073cffe1ca7af59dea383bdp-7, + 0x1.ffffffe5effffp-7 + }, + { // Entry 233 + -0x1.fffaaab70073cffe1ca7af59dea383bdp-7, + -0x1.ffffffe5effffp-7 + }, + { // Entry 234 + 0x1.ffeaad091c25f7fe78be0efb91393b35p-6, + 0x1.fffffff8657ffp-6 + }, + { // Entry 235 + -0x1.ffeaad091c25f7fe78be0efb91393b35p-6, + -0x1.fffffff8657ffp-6 + }, + { // Entry 236 + 0x1.fffaaacd0fc35843b8b9c2c8eaaf170dp-7, + 0x1.fffffffbfffffp-7 + }, + { // Entry 237 + -0x1.fffaaacd0fc35843b8b9c2c8eaaf170dp-7, + -0x1.fffffffbfffffp-7 + }, + { // Entry 238 + 0x1.c34366179ac8d01e2cd45de4745e134ap-1, + 0x1.fffffffffc7ffp-1 + }, + { // Entry 239 + -0x1.c34366179ac8d01e2cd45de4745e134ap-1, + -0x1.fffffffffc7ffp-1 + }, + { // Entry 240 + 0x1.fead0b6996797834b43bac6b0f3fe20fp-4, + 0x1.ffffffffffe21p-4 + }, + { // Entry 241 + -0x1.fead0b6996797834b43bac6b0f3fe20fp-4, + -0x1.ffffffffffe21p-4 + }, + { // Entry 242 + 0x1.c34366179d41a11c2058c40156eae780p-1, + 0x1.fffffffffffeep-1 + }, + { // Entry 243 + -0x1.c34366179d41a11c2058c40156eae780p-1, + -0x1.fffffffffffeep-1 + }, + { // Entry 244 + 0x1.ffffaaaad10fda3642e7f712ee391058p-9, + 0x1.fffffffffffeep-9 + }, + { // Entry 245 + -0x1.ffffaaaad10fda3642e7f712ee391058p-9, + -0x1.fffffffffffeep-9 + }, + { // Entry 246 + 0x1.30fc1931f09c97ff42ff5cad467897fdp7, + 0x1.fffffffffffeep218 + }, + { // Entry 247 + -0x1.30fc1931f09c97ff42ff5cad467897fdp7, + -0x1.fffffffffffeep218 + }, + { // Entry 248 + 0x1.ffaad0fa452557ff22342e0cd4997830p-5, + 0x1.ffffffffffff3p-5 + }, + { // Entry 249 + -0x1.ffaad0fa452557ff22342e0cd4997830p-5, + -0x1.ffffffffffff3p-5 + }, + { // Entry 250 + 0x1.5ca72d17ed3ea80089ae65dfafc1e2b2p8, + 0x1.ffffffffffffep501 + }, + { // Entry 251 + -0x1.5ca72d17ed3ea80089ae65dfafc1e2b2p8, + -0x1.ffffffffffffep501 + }, + { // Entry 252 + -0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + -0x1.0p0 + }, + { // Entry 253 + 0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + 0x1.0p0 + }, + { // Entry 254 + -0x1.9490fec3efbe5988497c1478565aa446p-1, + -0x1.cp-1 + }, + { // Entry 255 + 0x1.9490fec3efbe5988497c1478565aa446p-1, + 0x1.cp-1 + }, + { // Entry 256 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.8p-1 + }, + { // Entry 257 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.8p-1 + }, + { // Entry 258 + -0x1.2e27502cbfb3347f6bcbf84eb95ca4a3p-1, + -0x1.4p-1 + }, + { // Entry 259 + 0x1.2e27502cbfb3347f6bcbf84eb95ca4a3p-1, + 0x1.4p-1 + }, + { // Entry 260 + -0x1.ecc2caec5160994be04204a968c7020dp-2, + -0x1.0p-1 + }, + { // Entry 261 + 0x1.ecc2caec5160994be04204a968c7020dp-2, + 0x1.0p-1 + }, + { // Entry 262 + -0x1.7786a7973a5923b96eef2610c25e841ap-2, + -0x1.8p-2 + }, + { // Entry 263 + 0x1.7786a7973a5923b96eef2610c25e841ap-2, + 0x1.8p-2 + }, + { // Entry 264 + -0x1.facfb2399e636e8d67115de540a778acp-3, + -0x1.0p-2 + }, + { // Entry 265 + 0x1.facfb2399e636e8d67115de540a778acp-3, + 0x1.0p-2 + }, + { // Entry 266 + -0x1.fead0b6996972d06058e3eb12c938140p-4, + -0x1.0p-3 + }, + { // Entry 267 + 0x1.fead0b6996972d06058e3eb12c938140p-4, + 0x1.0p-3 + }, + { // Entry 268 + 0.0, + 0.0 + }, + { // Entry 269 + 0x1.fead0b6996972d06058e3eb12c938140p-4, + 0x1.0p-3 + }, + { // Entry 270 + -0x1.fead0b6996972d06058e3eb12c938140p-4, + -0x1.0p-3 + }, + { // Entry 271 + 0x1.facfb2399e636e8d67115de540a778acp-3, + 0x1.0p-2 + }, + { // Entry 272 + -0x1.facfb2399e636e8d67115de540a778acp-3, + -0x1.0p-2 + }, + { // Entry 273 + 0x1.7786a7973a5923b96eef2610c25e841ap-2, + 0x1.8p-2 + }, + { // Entry 274 + -0x1.7786a7973a5923b96eef2610c25e841ap-2, + -0x1.8p-2 + }, + { // Entry 275 + 0x1.ecc2caec5160994be04204a968c7020dp-2, + 0x1.0p-1 + }, + { // Entry 276 + -0x1.ecc2caec5160994be04204a968c7020dp-2, + -0x1.0p-1 + }, + { // Entry 277 + 0x1.2e27502cbfb3347f6bcbf84eb95ca4a3p-1, + 0x1.4p-1 + }, + { // Entry 278 + -0x1.2e27502cbfb3347f6bcbf84eb95ca4a3p-1, + -0x1.4p-1 + }, + { // Entry 279 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.8p-1 + }, + { // Entry 280 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.8p-1 + }, + { // Entry 281 + 0x1.9490fec3efbe5988497c1478565aa446p-1, + 0x1.cp-1 + }, + { // Entry 282 + -0x1.9490fec3efbe5988497c1478565aa446p-1, + -0x1.cp-1 + }, + { // Entry 283 + 0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + 0x1.0p0 + }, + { // Entry 284 + -0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + -0x1.0p0 + }, + { // Entry 285 + 0x1.18080dd3171b6c031a9b576be63b6d4cp6, + 0x1.0p100 + }, + { // Entry 286 + -0x1.18080dd3171b6c031a9b576be63b6d4cp6, + -0x1.0p100 + }, + { // Entry 287 + 0x1.1869a6d0fc0c8734cff5be4c994a623cp6, + 0x1.199999999999ap100 + }, + { // Entry 288 + -0x1.1869a6d0fc0c8734cff5be4c994a623cp6, + -0x1.199999999999ap100 + }, + { // Entry 289 + 0x1.18c2c053a6401fdf8f801885ecec896ep6, + 0x1.3333333333334p100 + }, + { // Entry 290 + -0x1.18c2c053a6401fdf8f801885ecec896ep6, + -0x1.3333333333334p100 + }, + { // Entry 291 + 0x1.1914b70ad53709fc02e60c9931465d1cp6, + 0x1.4cccccccccccep100 + }, + { // Entry 292 + -0x1.1914b70ad53709fc02e60c9931465d1cp6, + -0x1.4cccccccccccep100 + }, + { // Entry 293 + 0x1.19609a00a84eb5469b8a14575cfcffdcp6, + 0x1.6666666666668p100 + }, + { // Entry 294 + -0x1.19609a00a84eb5469b8a14575cfcffdcp6, + -0x1.6666666666668p100 + }, + { // Entry 295 + 0x1.19a74011e314f1179b5984282f925681p6, + 0x1.8000000000002p100 + }, + { // Entry 296 + -0x1.19a74011e314f1179b5984282f925681p6, + -0x1.8000000000002p100 + }, + { // Entry 297 + 0x1.19e95674b98dd93c68942542ae48ec14p6, + 0x1.999999999999cp100 + }, + { // Entry 298 + -0x1.19e95674b98dd93c68942542ae48ec14p6, + -0x1.999999999999cp100 + }, + { // Entry 299 + 0x1.1a276ad639b09e9294f7218ef587ce6cp6, + 0x1.b333333333336p100 + }, + { // Entry 300 + -0x1.1a276ad639b09e9294f7218ef587ce6cp6, + -0x1.b333333333336p100 + }, + { // Entry 301 + 0x1.1a61f2927239a4e5d75ab70952b3595ap6, + 0x1.cccccccccccd0p100 + }, + { // Entry 302 + -0x1.1a61f2927239a4e5d75ab70952b3595ap6, + -0x1.cccccccccccd0p100 + }, + { // Entry 303 + 0x1.1a994ff83eca77f3ef91866a7b8540e2p6, + 0x1.e66666666666ap100 + }, + { // Entry 304 + -0x1.1a994ff83eca77f3ef91866a7b8540e2p6, + -0x1.e66666666666ap100 + }, + { // Entry 305 + 0x1.1acdd632f662a9e9c9c2e63a464b3927p6, + 0x1.0p101 + }, + { // Entry 306 + -0x1.1acdd632f662a9e9c9c2e63a464b3927p6, + -0x1.0p101 + }, + { // Entry 307 + 0x1.16a529a32777cd0fc3079004b633875fp7, + 0x1.0p200 + }, + { // Entry 308 + -0x1.16a529a32777cd0fc3079004b633875fp7, + -0x1.0p200 + }, + { // Entry 309 + 0x1.16d5f62219f05aa89db4c3750fbb01d6p7, + 0x1.199999999999ap200 + }, + { // Entry 310 + -0x1.16d5f62219f05aa89db4c3750fbb01d6p7, + -0x1.199999999999ap200 + }, + { // Entry 311 + 0x1.170282e36f0a26fdfd79f091b98c1570p7, + 0x1.3333333333334p200 + }, + { // Entry 312 + -0x1.170282e36f0a26fdfd79f091b98c1570p7, + -0x1.3333333333334p200 + }, + { // Entry 313 + 0x1.172b7e3f06859c0c372cea9b5bb8ff47p7, + 0x1.4cccccccccccep200 + }, + { // Entry 314 + -0x1.172b7e3f06859c0c372cea9b5bb8ff47p7, + -0x1.4cccccccccccep200 + }, + { // Entry 315 + 0x1.17516fb9f01171b1837eee7a719450a6p7, + 0x1.6666666666668p200 + }, + { // Entry 316 + -0x1.17516fb9f01171b1837eee7a719450a6p7, + -0x1.6666666666668p200 + }, + { // Entry 317 + 0x1.1774c2c28d748f9a0366a662dadefbf9p7, + 0x1.8000000000002p200 + }, + { // Entry 318 + -0x1.1774c2c28d748f9a0366a662dadefbf9p7, + -0x1.8000000000002p200 + }, + { // Entry 319 + 0x1.1795cdf3f8b103ac6a03f6f01a3a46c3p7, + 0x1.999999999999cp200 + }, + { // Entry 320 + -0x1.1795cdf3f8b103ac6a03f6f01a3a46c3p7, + -0x1.999999999999cp200 + }, + { // Entry 321 + 0x1.17b4d824b8c26657803575163dd9b7efp7, + 0x1.b333333333336p200 + }, + { // Entry 322 + -0x1.17b4d824b8c26657803575163dd9b7efp7, + -0x1.b333333333336p200 + }, + { // Entry 323 + 0x1.17d21c02d506e98121673fd36c6f7d66p7, + 0x1.cccccccccccd0p200 + }, + { // Entry 324 + -0x1.17d21c02d506e98121673fd36c6f7d66p7, + -0x1.cccccccccccd0p200 + }, + { // Entry 325 + 0x1.17edcab5bb4f53082d82a78400d8712ap7, + 0x1.e66666666666ap200 + }, + { // Entry 326 + -0x1.17edcab5bb4f53082d82a78400d8712ap7, + -0x1.e66666666666ap200 + }, + { // Entry 327 + 0x1.18080dd3171b6c031a9b576be63b6d4cp7, + 0x1.0p201 + }, + { // Entry 328 + -0x1.18080dd3171b6c031a9b576be63b6d4cp7, + -0x1.0p201 + }, + { // Entry 329 + 0x1.5aeb8fdc01b221605c35ac9eb3b88349p9, + 0x1.0p1000 + }, + { // Entry 330 + -0x1.5aeb8fdc01b221605c35ac9eb3b88349p9, + -0x1.0p1000 + }, + { // Entry 331 + 0x1.5af7c2fbbe5044c692e0f97aca1a61e7p9, + 0x1.199999999999ap1000 + }, + { // Entry 332 + -0x1.5af7c2fbbe5044c692e0f97aca1a61e7p9, + -0x1.199999999999ap1000 + }, + { // Entry 333 + 0x1.5b02e62c1396b7dbead244c1f48ea6cdp9, + 0x1.3333333333334p1000 + }, + { // Entry 334 + -0x1.5b02e62c1396b7dbead244c1f48ea6cdp9, + -0x1.3333333333334p1000 + }, + { // Entry 335 + 0x1.5b0d2502f975951f793f03445d19e143p9, + 0x1.4cccccccccccep1000 + }, + { // Entry 336 + -0x1.5b0d2502f975951f793f03445d19e143p9, + -0x1.4cccccccccccep1000 + }, + { // Entry 337 + 0x1.5b16a161b3d88a88cc53843c2290b59bp9, + 0x1.6666666666668p1000 + }, + { // Entry 338 + -0x1.5b16a161b3d88a88cc53843c2290b59bp9, + -0x1.6666666666668p1000 + }, + { // Entry 339 + 0x1.5b1f7623db315202ec4d72363ce36070p9, + 0x1.8000000000002p1000 + }, + { // Entry 340 + -0x1.5b1f7623db315202ec4d72363ce36070p9, + -0x1.8000000000002p1000 + }, + { // Entry 341 + 0x1.5b27b8f036006f0785f4c6598cba3322p9, + 0x1.999999999999cp1000 + }, + { // Entry 342 + -0x1.5b27b8f036006f0785f4c6598cba3322p9, + -0x1.999999999999cp1000 + }, + { // Entry 343 + 0x1.5b2f7b7c6604c7b24b8125e315a20f6dp9, + 0x1.b333333333336p1000 + }, + { // Entry 344 + -0x1.5b2f7b7c6604c7b24b8125e315a20f6dp9, + -0x1.b333333333336p1000 + }, + { // Entry 345 + 0x1.5b36cc73ed15e87cb3cd9892614780cbp9, + 0x1.cccccccccccd0p1000 + }, + { // Entry 346 + -0x1.5b36cc73ed15e87cb3cd9892614780cbp9, + -0x1.cccccccccccd0p1000 + }, + { // Entry 347 + 0x1.5b3db820a6a802de76d4727e8661bdbcp9, + 0x1.e66666666666ap1000 + }, + { // Entry 348 + -0x1.5b3db820a6a802de76d4727e8661bdbcp9, + -0x1.e66666666666ap1000 + }, + { // Entry 349 + 0x1.5b4448e7fd9b091d321a9e787fba7cc4p9, + 0x1.0p1001 + }, + { // Entry 350 + -0x1.5b4448e7fd9b091d321a9e787fba7cc4p9, + -0x1.0p1001 + }, + { // Entry 351 + -0x1.633ce8fb9f87db1069ac5909d3e7d6d9p9, + -0x1.fffffffffffffp1023 + }, + { // Entry 352 + 0x1.633ce8fb9f87db1069ac5909d3e7d6d9p9, + 0x1.fffffffffffffp1023 + }, + { // Entry 353 + 0x1.633ce8fb9f87db1069ac5909d3e7d6d9p9, + 0x1.fffffffffffffp1023 + }, + { // Entry 354 + -0x1.633ce8fb9f87db1069ac5909d3e7d6d9p9, + -0x1.fffffffffffffp1023 + }, + { // Entry 355 + -0.0, + -0x1.0p-1074 + }, + { // Entry 356 + 0.0, + 0x1.0p-1074 + }, + { // Entry 357 + -0.0, + -0.0 + }, + { // Entry 358 + 0.0, + 0x1.0p-1074 + }, + { // Entry 359 + -0.0, + -0x1.0p-1074 + }, + { // Entry 360 + -0x1.0499e40c65ff571c4214191e409f886cp-1, + -0x1.1000000000001p-1 + }, + { // Entry 361 + 0x1.0499e40c65ff571c4214191e409f886cp-1, + 0x1.1000000000001p-1 + }, + { // Entry 362 + -0x1.0499e40c65ff48fb04213eab32faa345p-1, + -0x1.1p-1 + }, + { // Entry 363 + 0x1.0499e40c65ff48fb04213eab32faa345p-1, + 0x1.1p-1 + }, + { // Entry 364 + -0x1.0499e40c65ff3ad9c62e64382526e89ap-1, + -0x1.0ffffffffffffp-1 + }, + { // Entry 365 + 0x1.0499e40c65ff3ad9c62e64382526e89ap-1, + 0x1.0ffffffffffffp-1 + }, + { // Entry 366 + 0x1.0499e40c65ff3ad9c62e64382526e89ap-1, + 0x1.0ffffffffffffp-1 + }, + { // Entry 367 + -0x1.0499e40c65ff3ad9c62e64382526e89ap-1, + -0x1.0ffffffffffffp-1 + }, + { // Entry 368 + 0x1.0499e40c65ff48fb04213eab32faa345p-1, + 0x1.1p-1 + }, + { // Entry 369 + -0x1.0499e40c65ff48fb04213eab32faa345p-1, + -0x1.1p-1 + }, + { // Entry 370 + 0x1.0499e40c65ff571c4214191e409f886cp-1, + 0x1.1000000000001p-1 + }, + { // Entry 371 + -0x1.0499e40c65ff571c4214191e409f886cp-1, + -0x1.1000000000001p-1 + }, + { // Entry 372 + 0x1.62e42fefa39ef31793c7673007e4ed5ep5, + 0x1.fffffffffffffp62 + }, + { // Entry 373 + -0x1.62e42fefa39ef31793c7673007e4ed5ep5, + -0x1.fffffffffffffp62 + }, + { // Entry 374 + 0x1.62e42fefa39ef35793c7673007e5ed5ep5, + 0x1.0p63 + }, + { // Entry 375 + -0x1.62e42fefa39ef35793c7673007e5ed5ep5, + -0x1.0p63 + }, + { // Entry 376 + 0x1.62e42fefa39ef3d793c7673007e1ed5ep5, + 0x1.0000000000001p63 + }, + { // Entry 377 + -0x1.62e42fefa39ef3d793c7673007e1ed5ep5, + -0x1.0000000000001p63 + }, + { // Entry 378 + 0x1.419ecb712c480c0b5decb58387269d9dp4, + 0x1.fffffffffffffp27 + }, + { // Entry 379 + -0x1.419ecb712c480c0b5decb58387269d9dp4, + -0x1.fffffffffffffp27 + }, + { // Entry 380 + 0x1.419ecb712c480c8b5decb58387285d9dp4, + 0x1.0p28 + }, + { // Entry 381 + -0x1.419ecb712c480c8b5decb58387285d9dp4, + -0x1.0p28 + }, + { // Entry 382 + 0x1.419ecb712c480d8b5decb583871fdd9dp4, + 0x1.0000000000001p28 + }, + { // Entry 383 + -0x1.419ecb712c480d8b5decb583871fdd9dp4, + -0x1.0000000000001p28 + }, + { // Entry 384 + 0x1.3687a9f1af2b147ca14e7a4a06e817b2p4, + 0x1.fffffffffffffp26 + }, + { // Entry 385 + -0x1.3687a9f1af2b147ca14e7a4a06e817b2p4, + -0x1.fffffffffffffp26 + }, + { // Entry 386 + 0x1.3687a9f1af2b14fca14e7a4a06e917b2p4, + 0x1.0p27 + }, + { // Entry 387 + -0x1.3687a9f1af2b14fca14e7a4a06e917b2p4, + -0x1.0p27 + }, + { // Entry 388 + 0x1.3687a9f1af2b15fca14e7a4a06df17b2p4, + 0x1.0000000000001p27 + }, + { // Entry 389 + -0x1.3687a9f1af2b15fca14e7a4a06df17b2p4, + -0x1.0000000000001p27 + }, + { // Entry 390 + 0x1.1542457337d4319c6b73c89d84e9a171p4, + 0x1.fffffffffffffp23 + }, + { // Entry 391 + -0x1.1542457337d4319c6b73c89d84e9a171p4, + -0x1.fffffffffffffp23 + }, + { // Entry 392 + 0x1.1542457337d4321c6b73c89d84aba171p4, + 0x1.0p24 + }, + { // Entry 393 + -0x1.1542457337d4321c6b73c89d84aba171p4, + -0x1.0p24 + }, + { // Entry 394 + 0x1.1542457337d4331c6b73c89d8423a171p4, + 0x1.0000000000001p24 + }, + { // Entry 395 + -0x1.1542457337d4331c6b73c89d8423a171p4, + -0x1.0000000000001p24 + }, + { // Entry 396 + 0x1.0c1f8a6e80eeae5c96894f2bffb535afp1, + 0x1.fffffffffffffp1 + }, + { // Entry 397 + -0x1.0c1f8a6e80eeae5c96894f2bffb535afp1, + -0x1.fffffffffffffp1 + }, + { // Entry 398 + 0x1.0c1f8a6e80eeb23e03926981e348eb2ep1, + 0x1.0p2 + }, + { // Entry 399 + -0x1.0c1f8a6e80eeb23e03926981e348eb2ep1, + -0x1.0p2 + }, + { // Entry 400 + 0x1.0c1f8a6e80eeba00dda49e2daa18ae71p1, + 0x1.0000000000001p2 + }, + { // Entry 401 + -0x1.0c1f8a6e80eeba00dda49e2daa18ae71p1, + -0x1.0000000000001p2 + }, + { // Entry 402 + 0x1.719218313d086bd11ec0138398310287p0, + 0x1.fffffffffffffp0 + }, + { // Entry 403 + -0x1.719218313d086bd11ec0138398310287p0, + -0x1.fffffffffffffp0 + }, + { // Entry 404 + 0x1.719218313d0872f8e831837f0e954189p0, + 0x1.0p1 + }, + { // Entry 405 + -0x1.719218313d0872f8e831837f0e954189p0, + -0x1.0p1 + }, + { // Entry 406 + 0x1.719218313d0881487b146375fad45d3fp0, + 0x1.0000000000001p1 + }, + { // Entry 407 + -0x1.719218313d0881487b146375fad45d3fp0, + -0x1.0000000000001p1 + }, + { // Entry 408 + 0x1.c34366179d42617162bffd7dbe442e71p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 409 + -0x1.c34366179d42617162bffd7dbe442e71p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 410 + 0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + 0x1.0p0 + }, + { // Entry 411 + -0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + -0x1.0p0 + }, + { // Entry 412 + 0x1.c34366179d4283625059bc5770d91d5dp-1, + 0x1.0000000000001p0 + }, + { // Entry 413 + -0x1.c34366179d4283625059bc5770d91d5dp-1, + -0x1.0000000000001p0 + }, + { // Entry 414 + 0x1.ecc2caec51608afc4d5f24b27c20dc9cp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 415 + -0x1.ecc2caec51608afc4d5f24b27c20dc9cp-2, + -0x1.fffffffffffffp-2 + }, + { // Entry 416 + 0x1.ecc2caec5160994be04204a968c7020dp-2, + 0x1.0p-1 + }, + { // Entry 417 + -0x1.ecc2caec5160994be04204a968c7020dp-2, + -0x1.0p-1 + }, + { // Entry 418 + 0x1.ecc2caec5160b5eb0607c49741ce9bc6p-2, + 0x1.0000000000001p-1 + }, + { // Entry 419 + -0x1.ecc2caec5160b5eb0607c49741ce9bc6p-2, + -0x1.0000000000001p-1 + }, + { // Entry 420 + 0x1.facfb2399e635f07b2ecf48db28f6b82p-3, + 0x1.fffffffffffffp-3 + }, + { // Entry 421 + -0x1.facfb2399e635f07b2ecf48db28f6b82p-3, + -0x1.fffffffffffffp-3 + }, + { // Entry 422 + 0x1.facfb2399e636e8d67115de540a778acp-3, + 0x1.0p-2 + }, + { // Entry 423 + -0x1.facfb2399e636e8d67115de540a778acp-3, + -0x1.0p-2 + }, + { // Entry 424 + 0x1.facfb2399e638d98cf5a30945cc1a910p-3, + 0x1.0000000000001p-2 + }, + { // Entry 425 + -0x1.facfb2399e638d98cf5a30945cc1a910p-3, + -0x1.0000000000001p-2 + }, + { // Entry 426 + 0x1.fead0b6996971d25a6c9ee383ff9d971p-4, + 0x1.fffffffffffffp-4 + }, + { // Entry 427 + -0x1.fead0b6996971d25a6c9ee383ff9d971p-4, + -0x1.fffffffffffffp-4 + }, + { // Entry 428 + 0x1.fead0b6996972d06058e3eb12c938140p-4, + 0x1.0p-3 + }, + { // Entry 429 + -0x1.fead0b6996972d06058e3eb12c938140p-4, + -0x1.0p-3 + }, + { // Entry 430 + 0x1.fead0b6996974cc6c316dfa305c0f42dp-4, + 0x1.0000000000001p-3 + }, + { // Entry 431 + -0x1.fead0b6996974cc6c316dfa305c0f42dp-4, + -0x1.0000000000001p-3 + }, + { // Entry 432 + 0x1.ffaad0fa4526179f69f8625dbfeb270fp-5, + 0x1.fffffffffffffp-5 + }, + { // Entry 433 + -0x1.ffaad0fa4526179f69f8625dbfeb270fp-5, + -0x1.fffffffffffffp-5 + }, + { // Entry 434 + 0x1.ffaad0fa452627976ff366b9d3840fd1p-5, + 0x1.0p-4 + }, + { // Entry 435 + -0x1.ffaad0fa452627976ff366b9d3840fd1p-5, + -0x1.0p-4 + }, + { // Entry 436 + 0x1.ffaad0fa452647877be96f71fab46392p-5, + 0x1.0000000000001p-4 + }, + { // Entry 437 + -0x1.ffaad0fa452647877be96f71fab46392p-5, + -0x1.0000000000001p-4 + }, + { // Entry 438 + 0x1.ffeaad10b5b2d593fd4d7fd398a04e17p-6, + 0x1.fffffffffffffp-6 + }, + { // Entry 439 + -0x1.ffeaad10b5b2d593fd4d7fd398a04e17p-6, + -0x1.fffffffffffffp-6 + }, + { // Entry 440 + 0x1.ffeaad10b5b2e591fdad6bd7f7a497c3p-6, + 0x1.0p-5 + }, + { // Entry 441 + -0x1.ffeaad10b5b2e591fdad6bd7f7a497c3p-6, + -0x1.0p-5 + }, + { // Entry 442 + 0x1.ffeaad10b5b3058dfe6d43e0b5accb41p-6, + 0x1.0000000000001p-5 + }, + { // Entry 443 + -0x1.ffeaad10b5b3058dfe6d43e0b5accb41p-6, + -0x1.0000000000001p-5 + }, + { // Entry 444 + 0x1.fffaaad10fa359c3a4fad4bba332af54p-7, + 0x1.fffffffffffffp-7 + }, + { // Entry 445 + -0x1.fffaaad10fa359c3a4fad4bba332af54p-7, + -0x1.fffffffffffffp-7 + }, + { // Entry 446 + 0x1.fffaaad10fa369c32500d46ba7927458p-7, + 0x1.0p-6 + }, + { // Entry 447 + -0x1.fffaaad10fa369c32500d46ba7927458p-7, + -0x1.0p-6 + }, + { // Entry 448 + 0x1.fffaaad10fa389c2250cd3cbb051e660p-7, + 0x1.0000000000001p-6 + }, + { // Entry 449 + -0x1.fffaaad10fa389c2250cd3cbb051e660p-7, + -0x1.0000000000001p-6 + }, + { // Entry 450 + 0x1.fffffffaaaaa9ad111118fa35a2fb2e8p-15, + 0x1.fffffffffffffp-15 + }, + { // Entry 451 + -0x1.fffffffaaaaa9ad111118fa35a2fb2e8p-15, + -0x1.fffffffffffffp-15 + }, + { // Entry 452 + 0x1.fffffffaaaaaaad111110fa35a35b2e8p-15, + 0x1.0p-14 + }, + { // Entry 453 + -0x1.fffffffaaaaaaad111110fa35a35b2e8p-15, + -0x1.0p-14 + }, + { // Entry 454 + 0x1.fffffffaaaaacad111100fa35a41b2e8p-15, + 0x1.0000000000001p-14 + }, + { // Entry 455 + -0x1.fffffffaaaaacad111100fa35a41b2e8p-15, + -0x1.0000000000001p-14 + }, + { // Entry 456 + 0x1.ffffffffffffeeaaaaaaaaaaaacd1111p-28, + 0x1.fffffffffffffp-28 + }, + { // Entry 457 + -0x1.ffffffffffffeeaaaaaaaaaaaacd1111p-28, + -0x1.fffffffffffffp-28 + }, + { // Entry 458 + 0x1.fffffffffffffeaaaaaaaaaaaaad1111p-28, + 0x1.0p-27 + }, + { // Entry 459 + -0x1.fffffffffffffeaaaaaaaaaaaaad1111p-28, + -0x1.0p-27 + }, + { // Entry 460 + 0x1.0000000000000f555555555555368888p-27, + 0x1.0000000000001p-27 + }, + { // Entry 461 + -0x1.0000000000000f555555555555368888p-27, + -0x1.0000000000001p-27 + }, + { // Entry 462 + 0x1.ffffffffffffefaaaaaaaaaaaab2d111p-29, + 0x1.fffffffffffffp-29 + }, + { // Entry 463 + -0x1.ffffffffffffefaaaaaaaaaaaab2d111p-29, + -0x1.fffffffffffffp-29 + }, + { // Entry 464 + 0x1.ffffffffffffffaaaaaaaaaaaaaad111p-29, + 0x1.0p-28 + }, + { // Entry 465 + -0x1.ffffffffffffffaaaaaaaaaaaaaad111p-29, + -0x1.0p-28 + }, + { // Entry 466 + 0x1.0000000000000fd555555555554d6888p-28, + 0x1.0000000000001p-28 + }, + { // Entry 467 + -0x1.0000000000000fd555555555554d6888p-28, + -0x1.0000000000001p-28 + }, + { // Entry 468 + 0x1.ffffffffffffeffaaaaaaaaaaaab2ad1p-31, + 0x1.fffffffffffffp-31 + }, + { // Entry 469 + -0x1.ffffffffffffeffaaaaaaaaaaaab2ad1p-31, + -0x1.fffffffffffffp-31 + }, + { // Entry 470 + 0x1.fffffffffffffffaaaaaaaaaaaaaaad1p-31, + 0x1.0p-30 + }, + { // Entry 471 + -0x1.fffffffffffffffaaaaaaaaaaaaaaad1p-31, + -0x1.0p-30 + }, + { // Entry 472 + 0x1.0000000000000ffd555555555554d568p-30, + 0x1.0000000000001p-30 + }, + { // Entry 473 + -0x1.0000000000000ffd555555555554d568p-30, + -0x1.0000000000001p-30 + }, + { // Entry 474 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 475 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 476 + 0x1.633ce8fb9f87db1069ac5909d3e7d6d9p9, + 0x1.fffffffffffffp1023 + }, + { // Entry 477 + -0x1.633ce8fb9f87db1069ac5909d3e7d6d9p9, + -0x1.fffffffffffffp1023 + }, + { // Entry 478 + 0x1.633ce8fb9f87db0c69ac5909d3e7a6d9p9, + 0x1.ffffffffffffep1023 + }, + { // Entry 479 + -0x1.633ce8fb9f87db0c69ac5909d3e7a6d9p9, + -0x1.ffffffffffffep1023 + }, + { // Entry 480 + 0x1.dcbf69f10006cbe9c11ca9a5d76ab0c1p0, + 0x1.921fb54442d18p1 + }, + { // Entry 481 + -0x1.dcbf69f10006cbe9c11ca9a5d76ab0c1p0, + -0x1.921fb54442d18p1 + }, + { // Entry 482 + 0x1.3bc04e847ec0514731ddcb476d407d39p0, + 0x1.921fb54442d18p0 + }, + { // Entry 483 + -0x1.3bc04e847ec0514731ddcb476d407d39p0, + -0x1.921fb54442d18p0 + }, + { // Entry 484 + 0x1.c34366179d4283625059bc5770d91d5dp-1, + 0x1.0000000000001p0 + }, + { // Entry 485 + -0x1.c34366179d4283625059bc5770d91d5dp-1, + -0x1.0000000000001p0 + }, + { // Entry 486 + 0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + 0x1.0p0 + }, + { // Entry 487 + -0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + -0x1.0p0 + }, + { // Entry 488 + 0x1.c34366179d42617162bffd7dbe442e71p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 489 + -0x1.c34366179d42617162bffd7dbe442e71p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 490 + 0x1.7144779e3f0ba7a6bf77ae922933a297p-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 491 + -0x1.7144779e3f0ba7a6bf77ae922933a297p-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 492 + 0x1.0000000000000fffffffffffffffffffp-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 493 + -0x1.0000000000000fffffffffffffffffffp-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 494 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022 + }, + { // Entry 495 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022 + }, + { // Entry 496 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 497 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 498 + 0x1.ffffffffffffbfffffffffffffffffffp-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 499 + -0x1.ffffffffffffbfffffffffffffffffffp-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 500 + 0x1.ffffffffffffffffffffffffffffffffp-1074, + 0x1.0p-1073 + }, + { // Entry 501 + -0x1.ffffffffffffffffffffffffffffffffp-1074, + -0x1.0p-1073 + }, + { // Entry 502 + 0.0, + 0x1.0p-1074 + }, + { // Entry 503 + -0.0, + -0x1.0p-1074 + }, + { // Entry 504 + 0.0, + 0.0 + }, + { // Entry 505 + -0.0, + -0.0 + } +}; diff --git a/tests/math_data/asinhf_intel_data.h b/tests/math_data/asinhf_intel_data.h new file mode 100644 index 000000000..e09b2f1a0 --- /dev/null +++ b/tests/math_data/asinhf_intel_data.h @@ -0,0 +1,1650 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_asinhf_intel_data[] = { + { // Entry 0 + -0x1.0f1feafffe3d1154765de9942446abdfp-2, + -0x1.124db8p-2 + }, + { // Entry 1 + 0x1.0f1feafffe3d1154765de9942446abdfp-2, + 0x1.124db8p-2 + }, + { // Entry 2 + -0x1.250abb00034e7ff129bd35187e5a90a8p-11, + -0x1.250abcp-11 + }, + { // Entry 3 + 0x1.250abb00034e7ff129bd35187e5a90a8p-11, + 0x1.250abcp-11 + }, + { // Entry 4 + -0x1.544e70ffffe14ccbadab97b65580f0f7p-5, + -0x1.546780p-5 + }, + { // Entry 5 + 0x1.544e70ffffe14ccbadab97b65580f0f7p-5, + 0x1.546780p-5 + }, + { // Entry 6 + -0x1.e4713d0abf552bdbc167e2422c33c9cbp1, + -0x1.60p4 + }, + { // Entry 7 + 0x1.e4713d0abf552bdbc167e2422c33c9cbp1, + 0x1.60p4 + }, + { // Entry 8 + -0x1.5fe9a00168f4b6cc1a76f27bb6acd88bp-4, + -0x1.605880p-4 + }, + { // Entry 9 + 0x1.5fe9a00168f4b6cc1a76f27bb6acd88bp-4, + 0x1.605880p-4 + }, + { // Entry 10 + -0x1.dade546facd5dc06721c3a76f2fa6a4cp0, + -0x1.8f096ep1 + }, + { // Entry 11 + 0x1.dade546facd5dc06721c3a76f2fa6a4cp0, + 0x1.8f096ep1 + }, + { // Entry 12 + -0x1.d4982b0c930dad1b48293ef31d693cecp-6, + -0x1.d4a886p-6 + }, + { // Entry 13 + 0x1.d4982b0c930dad1b48293ef31d693cecp-6, + 0x1.d4a886p-6 + }, + { // Entry 14 + -0x1.d9ecbcfff8be129cc3cf7bf216da5f46p-4, + -0x1.dafba0p-4 + }, + { // Entry 15 + 0x1.d9ecbcfff8be129cc3cf7bf216da5f46p-4, + 0x1.dafba0p-4 + }, + { // Entry 16 + -0x1.f95ae3069ee6ea46106060615b04d1b9p-3, + -0x1.fe7fc0p-3 + }, + { // Entry 17 + 0x1.f95ae3069ee6ea46106060615b04d1b9p-3, + 0x1.fe7fc0p-3 + }, + { // Entry 18 + 0x1.ffeaad10b5b2e591fdad6bd7f7a497c3p-6, + 0x1.p-5 + }, + { // Entry 19 + -0x1.ffeaad10b5b2e591fdad6bd7f7a497c3p-6, + -0x1.p-5 + }, + { // Entry 20 + 0x1.ffffffffffffffffffffffffffffffffp-144, + 0x1.p-143 + }, + { // Entry 21 + -0x1.ffffffffffffffffffffffffffffffffp-144, + -0x1.p-143 + }, + { // Entry 22 + 0x1.ffeab11035cadf93754fd9171a996c98p-6, + 0x1.000002p-5 + }, + { // Entry 23 + -0x1.ffeab11035cadf93754fd9171a996c98p-6, + -0x1.000002p-5 + }, + { // Entry 24 + 0x1.000001fffffffffffffff55555155554p-41, + 0x1.000002p-41 + }, + { // Entry 25 + -0x1.000001fffffffffffffff55555155554p-41, + -0x1.000002p-41 + }, + { // Entry 26 + 0x1.000001ffffffffffffffffffffffffffp-126, + 0x1.000002p-126 + }, + { // Entry 27 + -0x1.000001ffffffffffffffffffffffffffp-126, + -0x1.000002p-126 + }, + { // Entry 28 + 0x1.7912730e9dd8c28d0e2e8849730f0345p4, + 0x1.000002p33 + }, + { // Entry 29 + -0x1.7912730e9dd8c28d0e2e8849730f0345p4, + -0x1.000002p33 + }, + { // Entry 30 + 0x1.fead3b0ab2db53675e78fa2d41047d4ap-4, + 0x1.000018p-3 + }, + { // Entry 31 + -0x1.fead3b0ab2db53675e78fa2d41047d4ap-4, + -0x1.000018p-3 + }, + { // Entry 32 + 0x1.fead42fae23a4ec3ec74e75d7e6a8e01p-4, + 0x1.00001cp-3 + }, + { // Entry 33 + -0x1.fead42fae23a4ec3ec74e75d7e6a8e01p-4, + -0x1.00001cp-3 + }, + { // Entry 34 + 0x1.686fc30f61d32f36cebd3556647e6d85p5, + 0x1.00004cp64 + }, + { // Entry 35 + -0x1.686fc30f61d32f36cebd3556647e6d85p5, + -0x1.00004cp64 + }, + { // Entry 36 + 0x1.0c1fb8ff9524366b4770e679f3d2be09p1, + 0x1.000060p2 + }, + { // Entry 37 + -0x1.0c1fb8ff9524366b4770e679f3d2be09p1, + -0x1.000060p2 + }, + { // Entry 38 + 0x1.ecc43f011e3008670443b4fad065f492p-2, + 0x1.0000d0p-1 + }, + { // Entry 39 + -0x1.ecc43f011e3008670443b4fad065f492p-2, + -0x1.0000d0p-1 + }, + { // Entry 40 + 0x1.feafbe09a9ba162c9d72e1d6bf7564a3p-4, + 0x1.00015cp-3 + }, + { // Entry 41 + -0x1.feafbe09a9ba162c9d72e1d6bf7564a3p-4, + -0x1.00015cp-3 + }, + { // Entry 42 + 0x1.c3458525ab38fbabe76fc767cf7a5730p-1, + 0x1.000180p0 + }, + { // Entry 43 + -0x1.c3458525ab38fbabe76fc767cf7a5730p-1, + -0x1.000180p0 + }, + { // Entry 44 + 0x1.fad2e50655314fc4b2c8f27b0fc674ddp-3, + 0x1.0001a6p-2 + }, + { // Entry 45 + -0x1.fad2e50655314fc4b2c8f27b0fc674ddp-3, + -0x1.0001a6p-2 + }, + { // Entry 46 + 0x1.fff8d74b7e204f81827216900ed8543fp-6, + 0x1.000716p-5 + }, + { // Entry 47 + -0x1.fff8d74b7e204f81827216900ed8543fp-6, + -0x1.000716p-5 + }, + { // Entry 48 + 0x1.ffbac9000089648597139384da627d36p-5, + 0x1.0008p-4 + }, + { // Entry 49 + -0x1.ffbac9000089648597139384da627d36p-5, + -0x1.0008p-4 + }, + { // Entry 50 + 0x1.fffb13040741e3467cc63b91d9b9d8c7p-6, + 0x1.000834p-5 + }, + { // Entry 51 + -0x1.fffb13040741e3467cc63b91d9b9d8c7p-6, + -0x1.000834p-5 + }, + { // Entry 52 + 0x1.fec8d40c701c746cf9bdcc066cc0c5bbp-4, + 0x1.000ep-3 + }, + { // Entry 53 + -0x1.fec8d40c701c746cf9bdcc066cc0c5bbp-4, + -0x1.000ep-3 + }, + { // Entry 54 + 0x1.0c3ab19e45eb29d7ac3cb690b07f2c76p1, + 0x1.0038p2 + }, + { // Entry 55 + -0x1.0c3ab19e45eb29d7ac3cb690b07f2c76p1, + -0x1.0038p2 + }, + { // Entry 56 + 0x1.c3b5a37f910bfbf8ba8ffc861755f387p-1, + 0x1.0050cep0 + }, + { // Entry 57 + -0x1.c3b5a37f910bfbf8ba8ffc861755f387p-1, + -0x1.0050cep0 + }, + { // Entry 58 + 0x1.ff9b301b22a673c34515e6fb85810f60p-4, + 0x1.0078p-3 + }, + { // Entry 59 + -0x1.ff9b301b22a673c34515e6fb85810f60p-4, + -0x1.0078p-3 + }, + { // Entry 60 + 0x1.c4bc4cfeab01d553217d775dafbe1e54p-1, + 0x1.010ac8p0 + }, + { // Entry 61 + -0x1.c4bc4cfeab01d553217d775dafbe1e54p-1, + -0x1.010ac8p0 + }, + { // Entry 62 + 0x1.fe5b8ef85ffc7ee05a4f3f96b6e60554p-3, + 0x1.01d4p-2 + }, + { // Entry 63 + -0x1.fe5b8ef85ffc7ee05a4f3f96b6e60554p-3, + -0x1.01d4p-2 + }, + { // Entry 64 + 0x1.795233437bda10a17c9819cb13d288e3p3, + 0x1.02p16 + }, + { // Entry 65 + -0x1.795233437bda10a17c9819cb13d288e3p3, + -0x1.02p16 + }, + { // Entry 66 + 0x1.7952350002c01bfe0af7d7457dbf20dap3, + 0x1.02000ep16 + }, + { // Entry 67 + -0x1.7952350002c01bfe0af7d7457dbf20dap3, + -0x1.02000ep16 + }, + { // Entry 68 + 0x1.f1abad0010bc92fb3c926eb5ded61431p-2, + 0x1.02bf60p-1 + }, + { // Entry 69 + -0x1.f1abad0010bc92fb3c926eb5ded61431p-2, + -0x1.02bf60p-1 + }, + { // Entry 70 + 0x1.ca35e4554c95b4f73f96234be8db5a0cp-1, + 0x1.04efa8p0 + }, + { // Entry 71 + -0x1.ca35e4554c95b4f73f96234be8db5a0cp-1, + -0x1.04efa8p0 + }, + { // Entry 72 + 0x1.f62556ffff16c63d4ba67855548e7a1ap-2, + 0x1.0541d6p-1 + }, + { // Entry 73 + -0x1.f62556ffff16c63d4ba67855548e7a1ap-2, + -0x1.0541d6p-1 + }, + { // Entry 74 + 0x1.cc0aec88d32a2ccff738ff8f5e116de3p-1, + 0x1.063ef4p0 + }, + { // Entry 75 + -0x1.cc0aec88d32a2ccff738ff8f5e116de3p-1, + -0x1.063ef4p0 + }, + { // Entry 76 + 0x1.06ac7a01a2b93dd343117d62da00efe9p-5, + 0x1.06b8p-5 + }, + { // Entry 77 + -0x1.06ac7a01a2b93dd343117d62da00efe9p-5, + -0x1.06b8p-5 + }, + { // Entry 78 + 0x1.78a50f013838dd4ba303180ecb0af32fp0, + 0x1.0802p1 + }, + { // Entry 79 + -0x1.78a50f013838dd4ba303180ecb0af32fp0, + -0x1.0802p1 + }, + { // Entry 80 + 0x1.104e01af3396534a594bd72c365a3eedp1, + 0x1.08c230p2 + }, + { // Entry 81 + -0x1.104e01af3396534a594bd72c365a3eedp1, + -0x1.08c230p2 + }, + { // Entry 82 + 0x1.d0517f0001a7d9a1e6f44c6bab1469eep-1, + 0x1.0950c8p0 + }, + { // Entry 83 + -0x1.d0517f0001a7d9a1e6f44c6bab1469eep-1, + -0x1.0950c8p0 + }, + { // Entry 84 + 0x1.fe0a030fb46d45fb1c02b3272bcd1914p-2, + 0x1.09b21ap-1 + }, + { // Entry 85 + -0x1.fe0a030fb46d45fb1c02b3272bcd1914p-2, + -0x1.09b21ap-1 + }, + { // Entry 86 + 0x1.fea6bc4743366aeba868336ffac3acbdp-2, + 0x1.0a0a66p-1 + }, + { // Entry 87 + -0x1.fea6bc4743366aeba868336ffac3acbdp-2, + -0x1.0a0a66p-1 + }, + { // Entry 88 + 0x1.d822f300019612b0ea114300b20b6d9dp-1, + 0x1.0ef9fap0 + }, + { // Entry 89 + -0x1.d822f300019612b0ea114300b20b6d9dp-1, + -0x1.0ef9fap0 + }, + { // Entry 90 + 0x1.d98a7896e162415f9165e41af5e889cbp-1, + 0x1.10p0 + }, + { // Entry 91 + -0x1.d98a7896e162415f9165e41af5e889cbp-1, + -0x1.10p0 + }, + { // Entry 92 + 0x1.1034b2000a6d7c1400fd184bdac732ffp-4, + 0x1.1068p-4 + }, + { // Entry 93 + -0x1.1034b2000a6d7c1400fd184bdac732ffp-4, + -0x1.1068p-4 + }, + { // Entry 94 + 0x1.de5c70fffea7cdc7698c00ca7b57f914p-1, + 0x1.138754p0 + }, + { // Entry 95 + -0x1.de5c70fffea7cdc7698c00ca7b57f914p-1, + -0x1.138754p0 + }, + { // Entry 96 + 0x1.16a7b0fce815d17a58d940605c85f9cfp-3, + 0x1.1784p-3 + }, + { // Entry 97 + -0x1.16a7b0fce815d17a58d940605c85f9cfp-3, + -0x1.1784p-3 + }, + { // Entry 98 + 0x1.e46bf608630f17f3183a7d1db5529144p-1, + 0x1.18p0 + }, + { // Entry 99 + -0x1.e46bf608630f17f3183a7d1db5529144p-1, + -0x1.18p0 + }, + { // Entry 100 + 0x1.b6c931c025238ebcf98ef12eb28d8307p5, + 0x1.18p78 + }, + { // Entry 101 + -0x1.b6c931c025238ebcf98ef12eb28d8307p5, + -0x1.18p78 + }, + { // Entry 102 + 0x1.7bf48d0006896bad6b7e5e69afbdc70bp3, + 0x1.1823p16 + }, + { // Entry 103 + -0x1.7bf48d0006896bad6b7e5e69afbdc70bp3, + -0x1.1823p16 + }, + { // Entry 104 + 0x1.e681682e3230779582a57284cdf10552p-1, + 0x1.198be0p0 + }, + { // Entry 105 + -0x1.e681682e3230779582a57284cdf10552p-1, + -0x1.198be0p0 + }, + { // Entry 106 + 0x1.e7ff47ef1be499dbdb2d4c2dab7144d2p-1, + 0x1.1aa8p0 + }, + { // Entry 107 + -0x1.e7ff47ef1be499dbdb2d4c2dab7144d2p-1, + -0x1.1aa8p0 + }, + { // Entry 108 + 0x1.19ffa8fffcaa5a70836fe5869d6f3e64p-3, + 0x1.1ae4p-3 + }, + { // Entry 109 + -0x1.19ffa8fffcaa5a70836fe5869d6f3e64p-3, + -0x1.1ae4p-3 + }, + { // Entry 110 + 0x1.e8d45f38a22bc64723c44174227b6055p-1, + 0x1.1b46d0p0 + }, + { // Entry 111 + -0x1.e8d45f38a22bc64723c44174227b6055p-1, + -0x1.1b46d0p0 + }, + { // Entry 112 + 0x1.e8db53fe01cb2f1941b1e02656828b71p-1, + 0x1.1b4cp0 + }, + { // Entry 113 + -0x1.e8db53fe01cb2f1941b1e02656828b71p-1, + -0x1.1b4cp0 + }, + { // Entry 114 + 0x1.e93d1fffffc916cac5df6685ccfb9a95p-1, + 0x1.1b94f4p0 + }, + { // Entry 115 + -0x1.e93d1fffffc916cac5df6685ccfb9a95p-1, + -0x1.1b94f4p0 + }, + { // Entry 116 + 0x1.e9cc87321d1ed3ec8130e9128585214cp-1, + 0x1.1cp0 + }, + { // Entry 117 + -0x1.e9cc87321d1ed3ec8130e9128585214cp-1, + -0x1.1cp0 + }, + { // Entry 118 + 0x1.18760b00045eb313cf2650593887e2bep6, + 0x1.1d0740p100 + }, + { // Entry 119 + -0x1.18760b00045eb313cf2650593887e2bep6, + -0x1.1d0740p100 + }, + { // Entry 120 + 0x1.ed98b1f64a808793ae088a13d43da9c2p-1, + 0x1.1ed8p0 + }, + { // Entry 121 + -0x1.ed98b1f64a808793ae088a13d43da9c2p-1, + -0x1.1ed8p0 + }, + { // Entry 122 + 0x1.24f53378690fc7ab8aafbeb62b1c3badp-5, + 0x1.250530p-5 + }, + { // Entry 123 + -0x1.24f53378690fc7ab8aafbeb62b1c3badp-5, + -0x1.250530p-5 + }, + { // Entry 124 + 0x1.4a5b157658bb51fe2cd170c897ff9227p-5, + 0x1.4a7202p-5 + }, + { // Entry 125 + -0x1.4a5b157658bb51fe2cd170c897ff9227p-5, + -0x1.4a7202p-5 + }, + { // Entry 126 + 0x1.b736e800018136bc46678d296cd029bdp0, + 0x1.585c20p1 + }, + { // Entry 127 + -0x1.b736e800018136bc46678d296cd029bdp0, + -0x1.585c20p1 + }, + { // Entry 128 + 0x1.220b35fffea45ca3a7091d0d1dd0328dp0, + 0x1.6433f4p0 + }, + { // Entry 129 + -0x1.220b35fffea45ca3a7091d0d1dd0328dp0, + -0x1.6433f4p0 + }, + { // Entry 130 + 0x1.6b88e10b317c9c2d54079667c212fd16p-6, + 0x1.6b9084p-6 + }, + { // Entry 131 + -0x1.6b88e10b317c9c2d54079667c212fd16p-6, + -0x1.6b9084p-6 + }, + { // Entry 132 + 0x1.c570240000129c3304aa0b9915097b93p0, + 0x1.6d505ep1 + }, + { // Entry 133 + -0x1.c570240000129c3304aa0b9915097b93p0, + -0x1.6d505ep1 + }, + { // Entry 134 + 0x1.71f3de02331239b851f896c8c251b36fp-4, + 0x1.7274b0p-4 + }, + { // Entry 135 + -0x1.71f3de02331239b851f896c8c251b36fp-4, + -0x1.7274b0p-4 + }, + { // Entry 136 + 0x1.7fffff000001ccccc883a8462e52c2d1p-10, + 0x1.800008p-10 + }, + { // Entry 137 + -0x1.7fffff000001ccccc883a8462e52c2d1p-10, + -0x1.800008p-10 + }, + { // Entry 138 + 0x1.d2c365a2367e0a0f342a944b8fe912adp0, + 0x1.81f778p1 + }, + { // Entry 139 + -0x1.d2c365a2367e0a0f342a944b8fe912adp0, + -0x1.81f778p1 + }, + { // Entry 140 + 0x1.7042f9000343b85d0080af58e6ce2a5bp3, + 0x1.84c61ep15 + }, + { // Entry 141 + -0x1.7042f9000343b85d0080af58e6ce2a5bp3, + -0x1.84c61ep15 + }, + { // Entry 142 + 0x1.ca328b0b0732378d71b2ed8f94926b5cp5, + 0x1.8c25e4p81 + }, + { // Entry 143 + -0x1.ca328b0b0732378d71b2ed8f94926b5cp5, + -0x1.8c25e4p81 + }, + { // Entry 144 + 0x1.6c02870f43f412f2facda9c71af64d9ap5, + 0x1.9026f4p64 + }, + { // Entry 145 + -0x1.6c02870f43f412f2facda9c71af64d9ap5, + -0x1.9026f4p64 + }, + { // Entry 146 + 0x1.dc29a21d978c49d5ef40e243da93e547p0, + 0x1.912912p1 + }, + { // Entry 147 + -0x1.dc29a21d978c49d5ef40e243da93e547p0, + -0x1.912912p1 + }, + { // Entry 148 + 0x1.e87da9ce17176d9508dd14c470c83b98p0, + 0x1.a5e970p1 + }, + { // Entry 149 + -0x1.e87da9ce17176d9508dd14c470c83b98p0, + -0x1.a5e970p1 + }, + { // Entry 150 + 0x1.52728c00e52ef07d6e0a17848d326ee2p1, + 0x1.bffffep2 + }, + { // Entry 151 + -0x1.52728c00e52ef07d6e0a17848d326ee2p1, + -0x1.bffffep2 + }, + { // Entry 152 + 0x1.5512b2ffffffdc9663a38b72b6dcdf6fp0, + 0x1.c3523ep0 + }, + { // Entry 153 + -0x1.5512b2ffffffdc9663a38b72b6dcdf6fp0, + -0x1.c3523ep0 + }, + { // Entry 154 + 0x1.c52b7d0f27e70062b6eeb63fbfbccb96p-6, + 0x1.c53a48p-6 + }, + { // Entry 155 + -0x1.c52b7d0f27e70062b6eeb63fbfbccb96p-6, + -0x1.c53a48p-6 + }, + { // Entry 156 + 0x1.a89b32fff40d30fcb4988c656e03af82p-1, + 0x1.dafa74p-1 + }, + { // Entry 157 + -0x1.a89b32fff40d30fcb4988c656e03af82p-1, + -0x1.dafa74p-1 + }, + { // Entry 158 + 0x1.6274b2fffe689d7abb667b3f8ab66e94p0, + 0x1.df1344p0 + }, + { // Entry 159 + -0x1.6274b2fffe689d7abb667b3f8ab66e94p0, + -0x1.df1344p0 + }, + { // Entry 160 + 0x1.e9d89afff66699a3a0a0107eec7292b8p-4, + 0x1.eb03bcp-4 + }, + { // Entry 161 + -0x1.e9d89afff66699a3a0a0107eec7292b8p-4, + -0x1.eb03bcp-4 + }, + { // Entry 162 + 0x1.baba624cf203c38bfc585ab19463e81bp-1, + 0x1.f3fffep-1 + }, + { // Entry 163 + -0x1.baba624cf203c38bfc585ab19463e81bp-1, + -0x1.f3fffep-1 + }, + { // Entry 164 + 0x1.bcc66ead9bdc7bae10b705739ce6273ap-1, + 0x1.f6dd80p-1 + }, + { // Entry 165 + -0x1.bcc66ead9bdc7bae10b705739ce6273ap-1, + -0x1.f6dd80p-1 + }, + { // Entry 166 + 0x1.dca21f00608c1d5dfa8c6eb1ce2f725cp4, + 0x1.f7fffep41 + }, + { // Entry 167 + -0x1.dca21f00608c1d5dfa8c6eb1ce2f725cp4, + -0x1.f7fffep41 + }, + { // Entry 168 + 0x1.0a2f1d0000074b9fe1702b2e3f079a3bp1, + 0x1.f81024p1 + }, + { // Entry 169 + -0x1.0a2f1d0000074b9fe1702b2e3f079a3bp1, + -0x1.f81024p1 + }, + { // Entry 170 + 0x1.f8b8c2d940b76e1cca1ebf54f4195d20p-4, + 0x1.f9fffep-4 + }, + { // Entry 171 + -0x1.f8b8c2d940b76e1cca1ebf54f4195d20p-4, + -0x1.f9fffep-4 + }, + { // Entry 172 + 0x1.fa6d06fff6691e956f3207b0a5ca4eeap-4, + 0x1.fbb796p-4 + }, + { // Entry 173 + -0x1.fa6d06fff6691e956f3207b0a5ca4eeap-4, + -0x1.fbb796p-4 + }, + { // Entry 174 + 0x1.fd26a51202d84047f50c18a4c4235d86p-6, + 0x1.fd3ba0p-6 + }, + { // Entry 175 + -0x1.fd26a51202d84047f50c18a4c4235d86p-6, + -0x1.fd3ba0p-6 + }, + { // Entry 176 + 0x1.eaf8a9005792f097e006d070ec6e7538p-2, + 0x1.fdfffep-2 + }, + { // Entry 177 + -0x1.eaf8a9005792f097e006d070ec6e7538p-2, + -0x1.fdfffep-2 + }, + { // Entry 178 + 0x1.ff322f1260d5d5168ca6d76975246012p-7, + 0x1.ff377ep-7 + }, + { // Entry 179 + -0x1.ff322f1260d5d5168ca6d76975246012p-7, + -0x1.ff377ep-7 + }, + { // Entry 180 + 0x1.b6102affc7f74638c6d979799db2bfaap5, + 0x1.ff9ffep77 + }, + { // Entry 181 + -0x1.b6102affc7f74638c6d979799db2bfaap5, + -0x1.ff9ffep77 + }, + { // Entry 182 + 0x1.ffb29911437bb58cb151e304b1fad9a8p-7, + 0x1.ffb7ecp-7 + }, + { // Entry 183 + -0x1.ffb29911437bb58cb151e304b1fad9a8p-7, + -0x1.ffb7ecp-7 + }, + { // Entry 184 + 0x1.fe8d48ac193eaa17e2bb8b9342791f2dp-4, + 0x1.ffdffep-4 + }, + { // Entry 185 + -0x1.fe8d48ac193eaa17e2bb8b9342791f2dp-4, + -0x1.ffdffep-4 + }, + { // Entry 186 + 0x1.ffdfa8bad104e0551f02b0530cfad4f8p-9, + 0x1.ffdffep-9 + }, + { // Entry 187 + -0x1.ffdfa8bad104e0551f02b0530cfad4f8p-9, + -0x1.ffdffep-9 + }, + { // Entry 188 + 0x1.fea49a3aebbc35e17238eea29547caf8p-4, + 0x1.fff77ep-4 + }, + { // Entry 189 + -0x1.fea49a3aebbc35e17238eea29547caf8p-4, + -0x1.fff77ep-4 + }, + { // Entry 190 + 0x1.facf9900599e9e6aa0b023811476fee8p-3, + 0x1.ffffe6p-3 + }, + { // Entry 191 + -0x1.facf9900599e9e6aa0b023811476fee8p-3, + -0x1.ffffe6p-3 + }, + { // Entry 192 + 0x1.ffaac50040a9c0881e560e4889792087p-5, + 0x1.fffff4p-5 + }, + { // Entry 193 + -0x1.ffaac50040a9c0881e560e4889792087p-5, + -0x1.fffff4p-5 + }, + { // Entry 194 + 0x1.ffaac8fe42289581485ee110507837f6p-5, + 0x1.fffff8p-5 + }, + { // Entry 195 + -0x1.ffaac8fe42289581485ee110507837f6p-5, + -0x1.fffff8p-5 + }, + { // Entry 196 + 0x1.c9d926ffffec577f549c952aff8ea67ep-1, + 0x1.04ad76p0 + }, + { // Entry 197 + -0x1.c9d926ffffec577f549c952aff8ea67ep-1, + -0x1.04ad76p0 + }, + { // Entry 198 + -0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + -0x1.p0 + }, + { // Entry 199 + 0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + 0x1.p0 + }, + { // Entry 200 + -0x1.9490fec3efbe5988497c1478565aa446p-1, + -0x1.c0p-1 + }, + { // Entry 201 + 0x1.9490fec3efbe5988497c1478565aa446p-1, + 0x1.c0p-1 + }, + { // Entry 202 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.80p-1 + }, + { // Entry 203 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.80p-1 + }, + { // Entry 204 + -0x1.2e27502cbfb3347f6bcbf84eb95ca4a3p-1, + -0x1.40p-1 + }, + { // Entry 205 + 0x1.2e27502cbfb3347f6bcbf84eb95ca4a3p-1, + 0x1.40p-1 + }, + { // Entry 206 + -0x1.ecc2caec5160994be04204a968c7020dp-2, + -0x1.p-1 + }, + { // Entry 207 + 0x1.ecc2caec5160994be04204a968c7020dp-2, + 0x1.p-1 + }, + { // Entry 208 + -0x1.7786a7973a5923b96eef2610c25e841ap-2, + -0x1.80p-2 + }, + { // Entry 209 + 0x1.7786a7973a5923b96eef2610c25e841ap-2, + 0x1.80p-2 + }, + { // Entry 210 + -0x1.facfb2399e636e8d67115de540a778acp-3, + -0x1.p-2 + }, + { // Entry 211 + 0x1.facfb2399e636e8d67115de540a778acp-3, + 0x1.p-2 + }, + { // Entry 212 + -0x1.fead0b6996972d06058e3eb12c938140p-4, + -0x1.p-3 + }, + { // Entry 213 + 0x1.fead0b6996972d06058e3eb12c938140p-4, + 0x1.p-3 + }, + { // Entry 214 + 0.0, + 0.0 + }, + { // Entry 215 + 0x1.fead0b6996972d06058e3eb12c938140p-4, + 0x1.p-3 + }, + { // Entry 216 + -0x1.fead0b6996972d06058e3eb12c938140p-4, + -0x1.p-3 + }, + { // Entry 217 + 0x1.facfb2399e636e8d67115de540a778acp-3, + 0x1.p-2 + }, + { // Entry 218 + -0x1.facfb2399e636e8d67115de540a778acp-3, + -0x1.p-2 + }, + { // Entry 219 + 0x1.7786a7973a5923b96eef2610c25e841ap-2, + 0x1.80p-2 + }, + { // Entry 220 + -0x1.7786a7973a5923b96eef2610c25e841ap-2, + -0x1.80p-2 + }, + { // Entry 221 + 0x1.ecc2caec5160994be04204a968c7020dp-2, + 0x1.p-1 + }, + { // Entry 222 + -0x1.ecc2caec5160994be04204a968c7020dp-2, + -0x1.p-1 + }, + { // Entry 223 + 0x1.2e27502cbfb3347f6bcbf84eb95ca4a3p-1, + 0x1.40p-1 + }, + { // Entry 224 + -0x1.2e27502cbfb3347f6bcbf84eb95ca4a3p-1, + -0x1.40p-1 + }, + { // Entry 225 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.80p-1 + }, + { // Entry 226 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.80p-1 + }, + { // Entry 227 + 0x1.9490fec3efbe5988497c1478565aa446p-1, + 0x1.c0p-1 + }, + { // Entry 228 + -0x1.9490fec3efbe5988497c1478565aa446p-1, + -0x1.c0p-1 + }, + { // Entry 229 + 0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + 0x1.p0 + }, + { // Entry 230 + -0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + -0x1.p0 + }, + { // Entry 231 + 0x1.18080dd3171b6c031a9b576be63b6d4cp6, + 0x1.p100 + }, + { // Entry 232 + -0x1.18080dd3171b6c031a9b576be63b6d4cp6, + -0x1.p100 + }, + { // Entry 233 + 0x1.1869a6d270699e1fa7c307d5fdbce864p6, + 0x1.19999ap100 + }, + { // Entry 234 + -0x1.1869a6d270699e1fa7c307d5fdbce864p6, + -0x1.19999ap100 + }, + { // Entry 235 + 0x1.18c2c05650eac97c01479a1a77caa909p6, + 0x1.333334p100 + }, + { // Entry 236 + -0x1.18c2c05650eac97c01479a1a77caa909p6, + -0x1.333334p100 + }, + { // Entry 237 + 0x1.1914b70e86721bbde7a2eea6f077d548p6, + 0x1.4ccccep100 + }, + { // Entry 238 + -0x1.1914b70e86721bbde7a2eea6f077d548p6, + -0x1.4ccccep100 + }, + { // Entry 239 + 0x1.19609a053a97d6f30409751e6281de59p6, + 0x1.666668p100 + }, + { // Entry 240 + -0x1.19609a053a97d6f30409751e6281de59p6, + -0x1.666668p100 + }, + { // Entry 241 + 0x1.19a74017386a428962791f05687972f6p6, + 0x1.800002p100 + }, + { // Entry 242 + -0x1.19a74017386a428962791f05687972f6p6, + -0x1.800002p100 + }, + { // Entry 243 + 0x1.19e9567ab98dd45c6898a542a93d6c1bp6, + 0x1.99999cp100 + }, + { // Entry 244 + -0x1.19e9567ab98dd45c6898a542a93d6c1bp6, + -0x1.99999cp100 + }, + { // Entry 245 + 0x1.1a276adcd0472f52cdae405190f05814p6, + 0x1.b33336p100 + }, + { // Entry 246 + -0x1.1a276adcd0472f52cdae405190f05814p6, + -0x1.b33336p100 + }, + { // Entry 247 + 0x1.1a61f2998eab653e55cda9cf1b8d9e50p6, + 0x1.ccccd0p100 + }, + { // Entry 248 + -0x1.1a61f2998eab653e55cda9cf1b8d9e50p6, + -0x1.ccccd0p100 + }, + { // Entry 249 + 0x1.1a994fffd300555a0d63481601d36422p6, + 0x1.e6666ap100 + }, + { // Entry 250 + -0x1.1a994fffd300555a0d63481601d36422p6, + -0x1.e6666ap100 + }, + { // Entry 251 + 0x1.1acdd632f662a9e9c9c2e63a464b3927p6, + 0x1.p101 + }, + { // Entry 252 + -0x1.1acdd632f662a9e9c9c2e63a464b3927p6, + -0x1.p101 + }, + { // Entry 253 + -0x1.65a9f84b82e62f3e42eda0a911a063e3p6, + -0x1.fffffep127 + }, + { // Entry 254 + 0x1.65a9f84b82e62f3e42eda0a911a063e3p6, + 0x1.fffffep127 + }, + { // Entry 255 + 0x1.65a9f84b82e62f3e42eda0a911a063e3p6, + 0x1.fffffep127 + }, + { // Entry 256 + -0x1.65a9f84b82e62f3e42eda0a911a063e3p6, + -0x1.fffffep127 + }, + { // Entry 257 + -0.0f, + -0x1.p-149 + }, + { // Entry 258 + 0.0f, + 0x1.p-149 + }, + { // Entry 259 + 0.0, + 0.0 + }, + { // Entry 260 + 0.0f, + 0x1.p-149 + }, + { // Entry 261 + -0.0f, + -0x1.p-149 + }, + { // Entry 262 + -0x1.0499e5d08dbd469e5c8e399d3fdaf2bap-1, + -0x1.100002p-1 + }, + { // Entry 263 + 0x1.0499e5d08dbd469e5c8e399d3fdaf2bap-1, + 0x1.100002p-1 + }, + { // Entry 264 + -0x1.0499e40c65ff48fb04213eab32faa345p-1, + -0x1.10p-1 + }, + { // Entry 265 + 0x1.0499e40c65ff48fb04213eab32faa345p-1, + 0x1.10p-1 + }, + { // Entry 266 + -0x1.0499e2483e40900199471311080aa3efp-1, + -0x1.0ffffep-1 + }, + { // Entry 267 + 0x1.0499e2483e40900199471311080aa3efp-1, + 0x1.0ffffep-1 + }, + { // Entry 268 + 0x1.0499e2483e40900199471311080aa3efp-1, + 0x1.0ffffep-1 + }, + { // Entry 269 + -0x1.0499e2483e40900199471311080aa3efp-1, + -0x1.0ffffep-1 + }, + { // Entry 270 + 0x1.0499e40c65ff48fb04213eab32faa345p-1, + 0x1.10p-1 + }, + { // Entry 271 + -0x1.0499e40c65ff48fb04213eab32faa345p-1, + -0x1.10p-1 + }, + { // Entry 272 + 0x1.0499e5d08dbd469e5c8e399d3fdaf2bap-1, + 0x1.100002p-1 + }, + { // Entry 273 + -0x1.0499e5d08dbd469e5c8e399d3fdaf2bap-1, + -0x1.100002p-1 + }, + { // Entry 274 + 0x1.62e42fe7a39eef5793c4bc855b3b42b2p5, + 0x1.fffffep62 + }, + { // Entry 275 + -0x1.62e42fe7a39eef5793c4bc855b3b42b2p5, + -0x1.fffffep62 + }, + { // Entry 276 + 0x1.62e42fefa39ef35793c7673007e5ed5ep5, + 0x1.p63 + }, + { // Entry 277 + -0x1.62e42fefa39ef35793c7673007e5ed5ep5, + -0x1.p63 + }, + { // Entry 278 + 0x1.62e42fffa39ee35793dcbc853d3b42e7p5, + 0x1.000002p63 + }, + { // Entry 279 + -0x1.62e42fffa39ee35793dcbc853d3b42e7p5, + -0x1.000002p63 + }, + { // Entry 280 + 0x1.419ecb612c48048b5de7682e2ddf0845p4, + 0x1.fffffep27 + }, + { // Entry 281 + -0x1.419ecb612c48048b5de7682e2ddf0845p4, + -0x1.fffffep27 + }, + { // Entry 282 + 0x1.419ecb712c480c8b5decb58387285d9dp4, + 0x1.p28 + }, + { // Entry 283 + -0x1.419ecb712c480c8b5decb58387285d9dp4, + -0x1.p28 + }, + { // Entry 284 + 0x1.419ecb912c47ec8b5e17502df20308aep4, + 0x1.000002p28 + }, + { // Entry 285 + -0x1.419ecb912c47ec8b5e17502df20308aep4, + -0x1.000002p28 + }, + { // Entry 286 + 0x1.3687a9e1af2b0cfca14944f4adc3c25ap4, + 0x1.fffffep26 + }, + { // Entry 287 + -0x1.3687a9e1af2b0cfca14944f4adc3c25ap4, + -0x1.fffffep26 + }, + { // Entry 288 + 0x1.3687a9f1af2b14fca14e7a4a06e917b2p4, + 0x1.p27 + }, + { // Entry 289 + -0x1.3687a9f1af2b14fca14e7a4a06e917b2p4, + -0x1.p27 + }, + { // Entry 290 + 0x1.3687aa11af2af4fca178e4f47253c2c1p4, + 0x1.000002p27 + }, + { // Entry 291 + -0x1.3687aa11af2af4fca178e4f47253c2c1p4, + -0x1.000002p27 + }, + { // Entry 292 + 0x1.1542456337d42a1c6b76734837564c23p4, + 0x1.fffffep23 + }, + { // Entry 293 + -0x1.1542456337d42a1c6b76734837564c23p4, + -0x1.fffffep23 + }, + { // Entry 294 + 0x1.1542457337d4321c6b73c89d84aba171p4, + 0x1.p24 + }, + { // Entry 295 + -0x1.1542457337d4321c6b73c89d84aba171p4, + -0x1.p24 + }, + { // Entry 296 + 0x1.1542459337d4121c6b8e73481f564c0ep4, + 0x1.000002p24 + }, + { // Entry 297 + -0x1.1542459337d4121c6b8e73481f564c0ep4, + -0x1.000002p24 + }, + { // Entry 298 + 0x1.0c1f89f2534d548373a25a26f285c8e4p1, + 0x1.fffffep1 + }, + { // Entry 299 + -0x1.0c1f89f2534d548373a25a26f285c8e4p1, + -0x1.fffffep1 + }, + { // Entry 300 + 0x1.0c1f8a6e80eeb23e03926981e348eb2ep1, + 0x1.p2 + }, + { // Entry 301 + -0x1.0c1f8a6e80eeb23e03926981e348eb2ep1, + -0x1.p2 + }, + { // Entry 302 + 0x1.0c1f8b66dc300f1430203df7b7466063p1, + 0x1.000002p2 + }, + { // Entry 303 + -0x1.0c1f8b66dc300f1430203df7b7466063p1, + -0x1.000002p2 + }, + { // Entry 304 + 0x1.7192174c43d9e96299f78116852f0226p0, + 0x1.fffffep0 + }, + { // Entry 305 + -0x1.7192174c43d9e96299f78116852f0226p0, + -0x1.fffffep0 + }, + { // Entry 306 + 0x1.719218313d0872f8e831837f0e954189p0, + 0x1.p1 + }, + { // Entry 307 + -0x1.719218313d0872f8e831837f0e954189p0, + -0x1.p1 + }, + { // Entry 308 + 0x1.719219fb2f63609c4a04634fb68878aep0, + 0x1.000002p1 + }, + { // Entry 309 + -0x1.719219fb2f63609c4a04634fb68878aep0, + -0x1.000002p1 + }, + { // Entry 310 + 0x1.c34364ad935baa4b7b8121ba8df62b6cp-1, + 0x1.fffffep-1 + }, + { // Entry 311 + -0x1.c34364ad935baa4b7b8121ba8df62b6cp-1, + -0x1.fffffep-1 + }, + { // Entry 312 + 0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + 0x1.p0 + }, + { // Entry 313 + -0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + -0x1.p0 + }, + { // Entry 314 + 0x1.c34368ebb10dd29f459608bca43f91c8p-1, + 0x1.000002p0 + }, + { // Entry 315 + -0x1.c34368ebb10dd29f459608bca43f91c8p-1, + -0x1.000002p0 + }, + { // Entry 316 + 0x1.ecc2c9225f040f819311fcc70a981347p-2, + 0x1.fffffep-2 + }, + { // Entry 317 + -0x1.ecc2c9225f040f819311fcc70a981347p-2, + -0x1.fffffep-2 + }, + { // Entry 318 + 0x1.ecc2caec5160994be04204a968c7020dp-2, + 0x1.p-1 + }, + { // Entry 319 + -0x1.ecc2caec5160994be04204a968c7020dp-2, + -0x1.p-1 + }, + { // Entry 320 + 0x1.ecc2ce8036189a1bdcaca590368850b2p-2, + 0x1.000002p-1 + }, + { // Entry 321 + -0x1.ecc2ce8036189a1bdcaca590368850b2p-2, + -0x1.000002p-1 + }, + { // Entry 322 + 0x1.facfb048e7ded2c6807bda0b8101be5ep-3, + 0x1.fffffep-3 + }, + { // Entry 323 + -0x1.facfb048e7ded2c6807bda0b8101be5ep-3, + -0x1.fffffep-3 + }, + { // Entry 324 + 0x1.facfb2399e636e8d67115de540a778acp-3, + 0x1.p-2 + }, + { // Entry 325 + -0x1.facfb2399e636e8d67115de540a778acp-3, + -0x1.p-2 + }, + { // Entry 326 + 0x1.facfb61b0b6c4e73771a7b444600d862p-3, + 0x1.000002p-2 + }, + { // Entry 327 + -0x1.facfb61b0b6c4e73771a7b444600d862p-3, + -0x1.000002p-2 + }, + { // Entry 328 + 0x1.fead096d8abe9f0e7222b9aab95512f1p-4, + 0x1.fffffep-4 + }, + { // Entry 329 + -0x1.fead096d8abe9f0e7222b9aab95512f1p-4, + -0x1.fffffep-4 + }, + { // Entry 330 + 0x1.fead0b6996972d06058e3eb12c938140p-4, + 0x1.p-3 + }, + { // Entry 331 + -0x1.fead0b6996972d06058e3eb12c938140p-4, + -0x1.p-3 + }, + { // Entry 332 + 0x1.fead0f61ae4831826943c3b871be46a4p-4, + 0x1.000002p-3 + }, + { // Entry 333 + -0x1.fead0f61ae4831826943c3b871be46a4p-4, + -0x1.000002p-3 + }, + { // Entry 334 + 0x1.ffaacefb4466c60d6ba2d2fac8774fdap-5, + 0x1.fffffep-5 + }, + { // Entry 335 + -0x1.ffaacefb4466c60d6ba2d2fac8774fdap-5, + -0x1.fffffep-5 + }, + { // Entry 336 + 0x1.ffaad0fa452627976ff366b9d3840fd1p-5, + 0x1.p-4 + }, + { // Entry 337 + -0x1.ffaad0fa452627976ff366b9d3840fd1p-5, + -0x1.p-4 + }, + { // Entry 338 + 0x1.ffaad4f846a4e4b46d5fa87174990d96p-5, + 0x1.000002p-4 + }, + { // Entry 339 + -0x1.ffaad4f846a4e4b46d5fa87174990d96p-5, + -0x1.000002p-4 + }, + { // Entry 340 + 0x1.ffeaab10f5a6e7d189c57c0e68bbb03ap-6, + 0x1.fffffep-6 + }, + { // Entry 341 + -0x1.ffeaab10f5a6e7d189c57c0e68bbb03ap-6, + -0x1.fffffep-6 + }, + { // Entry 342 + 0x1.ffeaad10b5b2e591fdad6bd7f7a497c3p-6, + 0x1.p-5 + }, + { // Entry 343 + -0x1.ffeaad10b5b2e591fdad6bd7f7a497c3p-6, + -0x1.p-5 + }, + { // Entry 344 + 0x1.ffeab11035cadf93754fd9171a996c98p-6, + 0x1.000002p-5 + }, + { // Entry 345 + -0x1.ffeab11035cadf93754fd9171a996c98p-6, + -0x1.000002p-5 + }, + { // Entry 346 + 0x1.fffaa8d11fa2a9bd25f4c3a139791ba3p-7, + 0x1.fffffep-7 + }, + { // Entry 347 + -0x1.fffaa8d11fa2a9bd25f4c3a139791ba3p-7, + -0x1.fffffep-7 + }, + { // Entry 348 + 0x1.fffaaad10fa369c32500d46ba7927458p-7, + 0x1.p-6 + }, + { // Entry 349 + -0x1.fffaaad10fa369c32500d46ba7927458p-7, + -0x1.p-6 + }, + { // Entry 350 + 0x1.fffaaed0efa4e96f2c182216a1ad2218p-7, + 0x1.000002p-6 + }, + { // Entry 351 + -0x1.fffaaed0efa4e96f2c182216a1ad2218p-7, + -0x1.000002p-6 + }, + { // Entry 352 + 0x1.fffffdfaaaaabad111004fa36115083cp-15, + 0x1.fffffep-15 + }, + { // Entry 353 + -0x1.fffffdfaaaaabad111004fa36115083cp-15, + -0x1.fffffep-15 + }, + { // Entry 354 + 0x1.fffffffaaaaaaad111110fa35a35b2e8p-15, + 0x1.p-14 + }, + { // Entry 355 + -0x1.fffffffaaaaaaad111110fa35a35b2e8p-15, + -0x1.p-14 + }, + { // Entry 356 + 0x1.000001fd55554568886947d19abb8424p-14, + 0x1.000002p-14 + }, + { // Entry 357 + -0x1.000001fd55554568886947d19abb8424p-14, + -0x1.000002p-14 + }, + { // Entry 358 + 0x1.fffffdfffffffeaaaaaeaaaaa6ad1112p-28, + 0x1.fffffep-28 + }, + { // Entry 359 + -0x1.fffffdfffffffeaaaaaeaaaaa6ad1112p-28, + -0x1.fffffep-28 + }, + { // Entry 360 + 0x1.fffffffffffffeaaaaaaaaaaaaad1111p-28, + 0x1.p-27 + }, + { // Entry 361 + -0x1.fffffffffffffeaaaaaaaaaaaaad1111p-28, + -0x1.p-27 + }, + { // Entry 362 + 0x1.000001ffffffff55555155554d568883p-27, + 0x1.000002p-27 + }, + { // Entry 363 + -0x1.000001ffffffff55555155554d568883p-27, + -0x1.000002p-27 + }, + { // Entry 364 + 0x1.fffffdffffffffaaaaabaaaaa9aad111p-29, + 0x1.fffffep-29 + }, + { // Entry 365 + -0x1.fffffdffffffffaaaaabaaaaa9aad111p-29, + -0x1.fffffep-29 + }, + { // Entry 366 + 0x1.ffffffffffffffaaaaaaaaaaaaaad111p-29, + 0x1.p-28 + }, + { // Entry 367 + -0x1.ffffffffffffffaaaaaaaaaaaaaad111p-29, + -0x1.p-28 + }, + { // Entry 368 + 0x1.000001ffffffffd55554555553556887p-28, + 0x1.000002p-28 + }, + { // Entry 369 + -0x1.000001ffffffffd55554555553556887p-28, + -0x1.000002p-28 + }, + { // Entry 370 + 0x1.fffffdfffffffffaaaaabaaaaa9aaad1p-31, + 0x1.fffffep-31 + }, + { // Entry 371 + -0x1.fffffdfffffffffaaaaabaaaaa9aaad1p-31, + -0x1.fffffep-31 + }, + { // Entry 372 + 0x1.fffffffffffffffaaaaaaaaaaaaaaad1p-31, + 0x1.p-30 + }, + { // Entry 373 + -0x1.fffffffffffffffaaaaaaaaaaaaaaad1p-31, + -0x1.p-30 + }, + { // Entry 374 + 0x1.000001fffffffffd5555455555355568p-30, + 0x1.000002p-30 + }, + { // Entry 375 + -0x1.000001fffffffffd5555455555355568p-30, + -0x1.000002p-30 + }, + { // Entry 376 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 377 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 378 + 0x1.65a9f84b82e62f3e42eda0a911a063e3p6, + 0x1.fffffep127 + }, + { // Entry 379 + -0x1.65a9f84b82e62f3e42eda0a911a063e3p6, + -0x1.fffffep127 + }, + { // Entry 380 + 0x1.65a9f84782e6293e42e44b53ad4b0e74p6, + 0x1.fffffcp127 + }, + { // Entry 381 + -0x1.65a9f84782e6293e42e44b53ad4b0e74p6, + -0x1.fffffcp127 + }, + { // Entry 382 + 0x1.dcbf6a62e35477f9ae79be71ed97620bp0, + 0x1.921fb6p1 + }, + { // Entry 383 + -0x1.dcbf6a62e35477f9ae79be71ed97620bp0, + -0x1.921fb6p1 + }, + { // Entry 384 + 0x1.3bc04ee951032b4f7509b3b2e0f0715ap0, + 0x1.921fb6p0 + }, + { // Entry 385 + -0x1.3bc04ee951032b4f7509b3b2e0f0715ap0, + -0x1.921fb6p0 + }, + { // Entry 386 + 0x1.c34368ebb10dd29f459608bca43f91c8p-1, + 0x1.000002p0 + }, + { // Entry 387 + -0x1.c34368ebb10dd29f459608bca43f91c8p-1, + -0x1.000002p0 + }, + { // Entry 388 + 0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + 0x1.p0 + }, + { // Entry 389 + -0x1.c34366179d426cc1b1f33d1ba4a314a7p-1, + -0x1.p0 + }, + { // Entry 390 + 0x1.c34364ad935baa4b7b8121ba8df62b6cp-1, + 0x1.fffffep-1 + }, + { // Entry 391 + -0x1.c34364ad935baa4b7b8121ba8df62b6cp-1, + -0x1.fffffep-1 + }, + { // Entry 392 + 0x1.71447831e43cde2ed30650428c5a8410p-1, + 0x1.921fb6p-1 + }, + { // Entry 393 + -0x1.71447831e43cde2ed30650428c5a8410p-1, + -0x1.921fb6p-1 + }, + { // Entry 394 + 0x1.000001ffffffffffffffffffffffffffp-126, + 0x1.000002p-126 + }, + { // Entry 395 + -0x1.000001ffffffffffffffffffffffffffp-126, + -0x1.000002p-126 + }, + { // Entry 396 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-126 + }, + { // Entry 397 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-126 + }, + { // Entry 398 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.fffffcp-127 + }, + { // Entry 399 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.fffffcp-127 + }, + { // Entry 400 + 0x1.fffff7ffffffffffffffffffffffffffp-127, + 0x1.fffff8p-127 + }, + { // Entry 401 + -0x1.fffff7ffffffffffffffffffffffffffp-127, + -0x1.fffff8p-127 + }, + { // Entry 402 + 0x1.ffffffffffffffffffffffffffffffffp-149, + 0x1.p-148 + }, + { // Entry 403 + -0x1.ffffffffffffffffffffffffffffffffp-149, + -0x1.p-148 + }, + { // Entry 404 + 0.0f, + 0x1.p-149 + }, + { // Entry 405 + -0.0f, + -0x1.p-149 + }, + { // Entry 406 + 0.0, + 0.0f + }, + { // Entry 407 + -0.0, + -0.0f + } +}; diff --git a/tests/math_data/atan2_intel_data.h b/tests/math_data/atan2_intel_data.h new file mode 100644 index 000000000..5d9eb44d1 --- /dev/null +++ b/tests/math_data/atan2_intel_data.h @@ -0,0 +1,5348 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_atan2_intel_data[] = { + { // Entry 0 + -0x1.ffffffffffff20000000000061fffd55p-60, + -0x1.0p-100, + 0x1.0000000000007p-41 + }, + { // Entry 1 + 0x1.ffffffffffff20000000000061fffd55p-60, + 0x1.0p-100, + 0x1.0000000000007p-41 + }, + { // Entry 2 + -0.0, + -0x1.0p-1073, + 0x1.0000000000001p1 + }, + { // Entry 3 + 0.0, + 0x1.0p-1073, + 0x1.0000000000001p1 + }, + { // Entry 4 + -0x1.cd648010e76317fd25f197c89894a747p-1, + -0x1.0p10, + 0x1.955555555555ep9 + }, + { // Entry 5 + 0x1.cd648010e76317fd25f197c89894a747p-1, + 0x1.0p10, + 0x1.955555555555ep9 + }, + { // Entry 6 + -0x1.0000000000000800000000000040p-924, + -0x1.0p100, + 0x1.fffffffffffffp1023 + }, + { // Entry 7 + 0x1.0000000000000800000000000040p-924, + 0x1.0p100, + 0x1.fffffffffffffp1023 + }, + { // Entry 8 + -0x1.0945ca475762680110c86c82f4007bdap1, + -0x1.0000000000001p0, + -0x1.18cd584e6112bp-1 + }, + { // Entry 9 + 0x1.0945ca475762680110c86c82f4007bdap1, + 0x1.0000000000001p0, + -0x1.18cd584e6112bp-1 + }, + { // Entry 10 + -0x1.f9ca0e1dd954324b96732f0ae9c1c8ffp-3, + -0x1.0222222222222p0, + 0x1.ffeffffffffffp1 + }, + { // Entry 11 + 0x1.f9ca0e1dd954324b96732f0ae9c1c8ffp-3, + 0x1.0222222222222p0, + 0x1.ffeffffffffffp1 + }, + { // Entry 12 + -0x1.fff9653e6201f888937cfc2d716b4d44p-2, + -0x1.14171f06bfb89p-2, + 0x1.f96902dccd29ap-2 + }, + { // Entry 13 + 0x1.fff9653e6201f888937cfc2d716b4d44p-2, + 0x1.14171f06bfb89p-2, + 0x1.f96902dccd29ap-2 + }, + { // Entry 14 + -0x1.ff572aded0be932feeb4707dcb65336dp0, + -0x1.1999999999998p-2, + -0x1.0000000000001p-3 + }, + { // Entry 15 + 0x1.ff572aded0be932feeb4707dcb65336dp0, + 0x1.1999999999998p-2, + -0x1.0000000000001p-3 + }, + { // Entry 16 + -0x1.ff542758ef05b8e7de0d70e2d341ed67p0, + -0x1.1999999999999p-1, + -0x1.ffeffffffffffp-3 + }, + { // Entry 17 + 0x1.ff542758ef05b8e7de0d70e2d341ed67p0, + 0x1.1999999999999p-1, + -0x1.ffeffffffffffp-3 + }, + { // Entry 18 + -0x1.2fffffffffffffffffffffffffffffffp-1071, + -0x1.3p-1070, + 0x1.0p1 + }, + { // Entry 19 + 0x1.2fffffffffffffffffffffffffffffffp-1071, + 0x1.3p-1070, + 0x1.0p1 + }, + { // Entry 20 + -0x1.85539729ef1727fed15784b60b91b2ecp-1, + -0x1.3cf3cf3cf3cf4p9, + 0x1.4d34d34d34d34p9 + }, + { // Entry 21 + 0x1.85539729ef1727fed15784b60b91b2ecp-1, + 0x1.3cf3cf3cf3cf4p9, + 0x1.4d34d34d34d34p9 + }, + { // Entry 22 + -0x1.40000000000008000000000000fffd65p-59, + -0x1.3fffffffffffep42, + 0x1.ffffffffffffcp100 + }, + { // Entry 23 + 0x1.40000000000008000000000000fffd65p-59, + 0x1.3fffffffffffep42, + 0x1.ffffffffffffcp100 + }, + { // Entry 24 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.4p-1072, + -0x1.fffffffffffffp1023 + }, + { // Entry 25 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.4p-1072, + -0x1.fffffffffffffp1023 + }, + { // Entry 26 + -0x1.3fffffffffffffffffffffffffffffffp-1073, + -0x1.4p-1072, + 0x1.0p1 + }, + { // Entry 27 + 0x1.3fffffffffffffffffffffffffffffffp-1073, + 0x1.4p-1072, + 0x1.0p1 + }, + { // Entry 28 + -0x1.5ffe7c27a5cf37fef15668ed8bfdc92cp-1, + -0x1.6477c84a032cep-1, + 0x1.b21f69ae030b0p-1 + }, + { // Entry 29 + 0x1.5ffe7c27a5cf37fef15668ed8bfdc92cp-1, + 0x1.6477c84a032cep-1, + 0x1.b21f69ae030b0p-1 + }, + { // Entry 30 + -0x1.66719908f7c3b796d84184977c923894p-12, + -0x1.6666666665b64p-1, + 0x1.ffeffffffffffp10 + }, + { // Entry 31 + 0x1.66719908f7c3b796d84184977c923894p-12, + 0x1.6666666665b64p-1, + 0x1.ffeffffffffffp10 + }, + { // Entry 32 + -0x1.667199f33acd08010011a82e9838500dp-52, + -0x1.6666666666668p-1, + 0x1.ffeffffff924fp50 + }, + { // Entry 33 + 0x1.667199f33acd08010011a82e9838500dp-52, + 0x1.6666666666668p-1, + 0x1.ffeffffff924fp50 + }, + { // Entry 34 + -0x1.48ef86a5d674e7fe626345caa6dea1adp0, + -0x1.6e589292a58a8p3, + 0x1.aebd9564499f0p1 + }, + { // Entry 35 + 0x1.48ef86a5d674e7fe626345caa6dea1adp0, + 0x1.6e589292a58a8p3, + 0x1.aebd9564499f0p1 + }, + { // Entry 36 + -0x1.69412651b663880102057ffe2b6916e7p-2, + -0x1.7906fe92593dcp-2, + 0x1.0p0 + }, + { // Entry 37 + 0x1.69412651b663880102057ffe2b6916e7p-2, + 0x1.7906fe92593dcp-2, + 0x1.0p0 + }, + { // Entry 38 + -0x1.7fffffffffff97ffb800000013803a80p-33, + -0x1.7fffffffffffep0, + 0x1.0000000000003p33 + }, + { // Entry 39 + 0x1.7fffffffffff97ffb800000013803a80p-33, + 0x1.7fffffffffffep0, + 0x1.0000000000003p33 + }, + { // Entry 40 + -0x1.7fffffffee0020000184c84cd0a5bfb7p-18, + -0x1.7ffffffffffffp0, + 0x1.ffffffffffffcp17 + }, + { // Entry 41 + 0x1.7fffffffee0020000184c84cd0a5bfb7p-18, + 0x1.7ffffffffffffp0, + 0x1.ffffffffffffcp17 + }, + { // Entry 42 + -0x1.01b7ead625912801099d55f3bb6d9b74p0, + -0x1.8e38e38e38e39p9, + 0x1.f7df7df7df7dep8 + }, + { // Entry 43 + 0x1.01b7ead625912801099d55f3bb6d9b74p0, + 0x1.8e38e38e38e39p9, + 0x1.f7df7df7df7dep8 + }, + { // Entry 44 + -0x1.119e0f7084d96bc18bbf2e7a08cfe5adp1, + -0x1.9249249249246p-2, + -0x1.001p-2 + }, + { // Entry 45 + 0x1.119e0f7084d96bc18bbf2e7a08cfe5adp1, + 0x1.9249249249246p-2, + -0x1.001p-2 + }, + { // Entry 46 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.99999999999a8p-4, + 0x1.0p-1074 + }, + { // Entry 47 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.99999999999a8p-4, + 0x1.0p-1074 + }, + { // Entry 48 + -0x1.37626c23803aec7d7a70f700585852f4p-1, + -0x1.a77569dd5a776p8, + 0x1.301ecc07b301ep9 + }, + { // Entry 49 + 0x1.37626c23803aec7d7a70f700585852f4p-1, + 0x1.a77569dd5a776p8, + 0x1.301ecc07b301ep9 + }, + { // Entry 50 + -0x1.0ca7cc2d0d7fd03164ee3af269e6bf79p1, + -0x1.b6db6db6db6e0p-1, + -0x1.0000000000003p-1 + }, + { // Entry 51 + 0x1.0ca7cc2d0d7fd03164ee3af269e6bf79p1, + 0x1.b6db6db6db6e0p-1, + -0x1.0000000000003p-1 + }, + { // Entry 52 + -0x1.a271f63e34fb2fff42b98e7a5ab17eafp-2, + -0x1.bb67ae8584c96p-1, + 0x1.0000000000008p1 + }, + { // Entry 53 + 0x1.a271f63e34fb2fff42b98e7a5ab17eafp-2, + 0x1.bb67ae8584c96p-1, + 0x1.0000000000008p1 + }, + { // Entry 54 + -0x1.f0845de317dae782ac3e8a7eb1fadd63p-2, + -0x1.bed61bed61be4p7, + 0x1.a814afd6a053bp8 + }, + { // Entry 55 + 0x1.f0845de317dae782ac3e8a7eb1fadd63p-2, + 0x1.bed61bed61be4p7, + 0x1.a814afd6a053bp8 + }, + { // Entry 56 + -0x1.3a51f5f0cb5d33de07ac24a32621878dp-1, + -0x1.c18f9c18f9c3ep7, + 0x1.3ef368eb04334p8 + }, + { // Entry 57 + 0x1.3a51f5f0cb5d33de07ac24a32621878dp-1, + 0x1.c18f9c18f9c3ep7, + 0x1.3ef368eb04334p8 + }, + { // Entry 58 + -0x1.fcb510cd5b6bbb8cde13f46dbeeb3110p-3, + -0x1.d26a2bad98d68p-2, + 0x1.cbbd407a7a5b0p0 + }, + { // Entry 59 + 0x1.fcb510cd5b6bbb8cde13f46dbeeb3110p-3, + 0x1.d26a2bad98d68p-2, + 0x1.cbbd407a7a5b0p0 + }, + { // Entry 60 + -0x1.cd5de97a2e3e1859fc3e2517de7a0880p-3, + -0x1.d555555555555p0, + 0x1.0000000000003p3 + }, + { // Entry 61 + 0x1.cd5de97a2e3e1859fc3e2517de7a0880p-3, + 0x1.d555555555555p0, + 0x1.0000000000003p3 + }, + { // Entry 62 + -0x1.337d175e088fb7fa32fafca382768a15p-3, + -0x1.db8a874640569p-3, + 0x1.88eed10e75135p0 + }, + { // Entry 63 + 0x1.337d175e088fb7fa32fafca382768a15p-3, + 0x1.db8a874640569p-3, + 0x1.88eed10e75135p0 + }, + { // Entry 64 + -0x1.f9d28f3da09c8864390cd924ac658d33p0, + -0x1.ddddddddddde0p-2, + -0x1.99ce075f6fd27p-3 + }, + { // Entry 65 + 0x1.f9d28f3da09c8864390cd924ac658d33p0, + 0x1.ddddddddddde0p-2, + -0x1.99ce075f6fd27p-3 + }, + { // Entry 66 + -0x1.ae127b4fb5a7e81cc14c8d0627d18c73p-8, + -0x1.eccd7fdf96454p10, + 0x1.255608e135d80p18 + }, + { // Entry 67 + 0x1.ae127b4fb5a7e81cc14c8d0627d18c73p-8, + 0x1.eccd7fdf96454p10, + 0x1.255608e135d80p18 + }, + { // Entry 68 + -0x1.09121b4b0fb15403f902f2d06a8f1034p1, + -0x1.f5a814afd6a05p9, + -0x1.1219dbcc48673p9 + }, + { // Entry 69 + 0x1.09121b4b0fb15403f902f2d06a8f1034p1, + 0x1.f5a814afd6a05p9, + -0x1.1219dbcc48673p9 + }, + { // Entry 70 + -0x1.ffd55bba97625a80f03aaeebb3192417p-6, + -0x1.ffffffffffffdp-1, + 0x1.ffffffffffffcp4 + }, + { // Entry 71 + 0x1.ffd55bba97625a80f03aaeebb3192417p-6, + 0x1.ffffffffffffdp-1, + 0x1.ffffffffffffcp4 + }, + { // Entry 72 + 0x1.ffffffffffffe0000000000001fffffdp-64, + 0x1.0p-53, + 0x1.0000000000001p10 + }, + { // Entry 73 + -0x1.ffffffffffffe0000000000001fffffdp-64, + -0x1.0p-53, + 0x1.0000000000001p10 + }, + { // Entry 74 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.0p-1074, + -0x1.745d1745d173cp-3 + }, + { // Entry 75 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.0p-1074, + -0x1.745d1745d173cp-3 + }, + { // Entry 76 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.0p-1074, + -0x1.99999999999a8p-4 + }, + { // Entry 77 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.0p-1074, + -0x1.99999999999a8p-4 + }, + { // Entry 78 + 0.0, + 0x1.0p-1074, + 0x1.0p1 + }, + { // Entry 79 + -0.0, + -0x1.0p-1074, + 0x1.0p1 + }, + { // Entry 80 + 0x1.ffffffffffffe0000000000001ffffffp-1074, + 0x1.0p-1074, + 0x1.0000000000001p-1 + }, + { // Entry 81 + -0x1.ffffffffffffe0000000000001ffffffp-1074, + -0x1.0p-1074, + 0x1.0000000000001p-1 + }, + { // Entry 82 + 0.0, + 0x1.0p-1074, + 0x1.0222222222223p0 + }, + { // Entry 83 + -0.0, + -0x1.0p-1074, + 0x1.0222222222223p0 + }, + { // Entry 84 + 0.0, + 0x1.0p-1074, + 0x1.03126e978d4fep0 + }, + { // Entry 85 + -0.0, + -0x1.0p-1074, + 0x1.03126e978d4fep0 + }, + { // Entry 86 + 0.0, + 0x1.0p-1074, + 0x1.0a3d70a3d70a3p0 + }, + { // Entry 87 + -0.0, + -0x1.0p-1074, + 0x1.0a3d70a3d70a3p0 + }, + { // Entry 88 + 0x1.0b833be165ccd3f3660d385792d30b1fp1, + 0x1.0000000000001p-2, + -0x1.24924924924aap-3 + }, + { // Entry 89 + -0x1.0b833be165ccd3f3660d385792d30b1fp1, + -0x1.0000000000001p-2, + -0x1.24924924924aap-3 + }, + { // Entry 90 + 0x1.5522d16b2f5a7d52fbf6dd4ea12734c4p-5, + 0x1.0000000000001p-4, + 0x1.8000000000001p0 + }, + { // Entry 91 + -0x1.5522d16b2f5a7d52fbf6dd4ea12734c4p-5, + -0x1.0000000000001p-4, + 0x1.8000000000001p0 + }, + { // Entry 92 + 0x1.7ffffffedfffe80184cd02ca5ef0e59ap-16, + 0x1.0000000000001p-17, + 0x1.5555555555558p-2 + }, + { // Entry 93 + -0x1.7ffffffedfffe80184cd02ca5ef0e59ap-16, + -0x1.0000000000001p-17, + 0x1.5555555555558p-2 + }, + { // Entry 94 + 0x1.00000000000017ffaaaaaaaaab6a92aap-32, + 0x1.0000000000001p-31, + 0x1.fffffffffffffp0 + }, + { // Entry 95 + -0x1.00000000000017ffaaaaaaaaab6a92aap-32, + -0x1.0000000000001p-31, + 0x1.fffffffffffffp0 + }, + { // Entry 96 + 0x1.00000000000027ffffffaaaaae6aaaaap-40, + 0x1.0000000000001p-41, + 0x1.ffffffffffffdp-2 + }, + { // Entry 97 + -0x1.00000000000027ffffffaaaaae6aaaaap-40, + -0x1.0000000000001p-41, + 0x1.ffffffffffffdp-2 + }, + { // Entry 98 + 0x1.000000000000680000000000103faaaap-56, + 0x1.0000000000004p1, + 0x1.ffffffffffffbp56 + }, + { // Entry 99 + -0x1.000000000000680000000000103faaaap-56, + -0x1.0000000000004p1, + 0x1.ffffffffffffbp56 + }, + { // Entry 100 + 0x1.fd5ba9aac2f7c8b4561b80036f0e165cp-4, + 0x1.0000000000007p3, + 0x1.fffffffffffffp5 + }, + { // Entry 101 + -0x1.fd5ba9aac2f7c8b4561b80036f0e165cp-4, + -0x1.0000000000007p3, + 0x1.fffffffffffffp5 + }, + { // Entry 102 + 0x1.ff55bb72cfe2e821e203716e1d97a257p-5, + 0x1.000000000001cp-3, + 0x1.ffffffffffff3p0 + }, + { // Entry 103 + -0x1.ff55bb72cfe2e821e203716e1d97a257p-5, + -0x1.000000000001cp-3, + 0x1.ffffffffffff3p0 + }, + { // Entry 104 + 0x1.38e36745aef6d7ab02058b0c0c876fc8p-9, + 0x1.00000000004d6p-8, + 0x1.a2e8ba2e8ba30p0 + }, + { // Entry 105 + -0x1.38e36745aef6d7ab02058b0c0c876fc8p-9, + -0x1.00000000004d6p-8, + 0x1.a2e8ba2e8ba30p0 + }, + { // Entry 106 + 0x1.3ff4325a8437500000286dff86bc02adp-1, + 0x1.00000009f0205p-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 107 + -0x1.3ff4325a8437500000286dff86bc02adp-1, + -0x1.00000009f0205p-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 108 + 0x1.b4f5f236308b48037fe229608c1d81fbp-2, + 0x1.001p-1, + 0x1.199999999999ap0 + }, + { // Entry 109 + -0x1.b4f5f236308b48037fe229608c1d81fbp-2, + -0x1.001p-1, + 0x1.199999999999ap0 + }, + { // Entry 110 + 0x1.9242e6442d4317ff2531ceafca8af0f4p0, + 0x1.001p10, + -0x1.1999999999999p-1 + }, + { // Entry 111 + -0x1.9242e6442d4317ff2531ceafca8af0f4p0, + -0x1.001p10, + -0x1.1999999999999p-1 + }, + { // Entry 112 + 0x1.046862a40cbe6ab9070021df9e1e411bp1, + 0x1.0175fcd4ab261p1, + -0x1.01749ca942943p0 + }, + { // Entry 113 + -0x1.046862a40cbe6ab9070021df9e1e411bp1, + -0x1.0175fcd4ab261p1, + -0x1.01749ca942943p0 + }, + { // Entry 114 + 0x1.9b2bb7e10b2677febb378df81a94d587p-1, + 0x1.066b3f39ae7a1p0, + 0x1.fa9c4b9f46842p-1 + }, + { // Entry 115 + -0x1.9b2bb7e10b2677febb378df81a94d587p-1, + -0x1.066b3f39ae7a1p0, + 0x1.fa9c4b9f46842p-1 + }, + { // Entry 116 + 0x1.e897850a716e4889a143afe6cdae77d1p-2, + 0x1.08b1d3b97c955p-2, + 0x1.0p-1 + }, + { // Entry 117 + -0x1.e897850a716e4889a143afe6cdae77d1p-2, + -0x1.08b1d3b97c955p-2, + 0x1.0p-1 + }, + { // Entry 118 + 0x1.13e7bb06113d680135e98e8c2e9c9628p-92, + 0x1.09d89d89d89d8p9, + 0x1.ed55555555573p100 + }, + { // Entry 119 + -0x1.13e7bb06113d680135e98e8c2e9c9628p-92, + -0x1.09d89d89d89d8p9, + 0x1.ed55555555573p100 + }, + { // Entry 120 + 0x1.ff572aded0be7136f236315e3c9eccb7p0, + 0x1.199999999999cp-1, + -0x1.ffffffffffffep-3 + }, + { // Entry 121 + -0x1.ff572aded0be7136f236315e3c9eccb7p0, + -0x1.199999999999cp-1, + -0x1.ffffffffffffep-3 + }, + { // Entry 122 + 0x1.196ba6878b92680ebe4a5666ff18a384p-5, + 0x1.199999999999cp-2, + 0x1.001p3 + }, + { // Entry 123 + -0x1.196ba6878b92680ebe4a5666ff18a384p-5, + -0x1.199999999999cp-2, + 0x1.001p3 + }, + { // Entry 124 + 0x1.1b4a29a02a9c87fffdb48e539399967ap-3, + 0x1.1adec7d06a010p-2, + 0x1.fbfa204c8234cp0 + }, + { // Entry 125 + -0x1.1b4a29a02a9c87fffdb48e539399967ap-3, + -0x1.1adec7d06a010p-2, + 0x1.fbfa204c8234cp0 + }, + { // Entry 126 + 0x1.19dcd054169247fffd4cc05900e64848p-2, + 0x1.213422ec61f53p-3, + 0x1.0p-1 + }, + { // Entry 127 + -0x1.19dcd054169247fffd4cc05900e64848p-2, + -0x1.213422ec61f53p-3, + 0x1.0p-1 + }, + { // Entry 128 + 0x1.b3b95bdcb30277fec23bb4be90b63531p-1, + 0x1.2776fe2145bd5p0, + 0x1.0306216790738p0 + }, + { // Entry 129 + -0x1.b3b95bdcb30277fec23bb4be90b63531p-1, + -0x1.2776fe2145bd5p0, + 0x1.0306216790738p0 + }, + { // Entry 130 + 0x1.ee0c54984cb15edcdcb239dbfffd57dep-4, + 0x1.27fb7de0e57c8p12, + 0x1.313f9061390p15 + }, + { // Entry 131 + -0x1.ee0c54984cb15edcdcb239dbfffd57dep-4, + -0x1.27fb7de0e57c8p12, + 0x1.313f9061390p15 + }, + { // Entry 132 + 0x1.27ff4834766d779860765d14b68788cep-8, + 0x1.27fb7de0e57c8p12, + 0x1.fff88d6e2d934p19 + }, + { // Entry 133 + -0x1.27ff4834766d779860765d14b68788cep-8, + -0x1.27fb7de0e57c8p12, + 0x1.fff88d6e2d934p19 + }, + { // Entry 134 + 0x1.f9c6b238c6435777790ced0df81049e2p0, + 0x1.2aaaaaaaaaaabp0, + -0x1.0000000000003p-1 + }, + { // Entry 135 + -0x1.f9c6b238c6435777790ced0df81049e2p0, + -0x1.2aaaaaaaaaaabp0, + -0x1.0000000000003p-1 + }, + { // Entry 136 + 0x1.2aaaaaaaaaaa77ff787e6b74f9b2d658p-32, + 0x1.2aaaaaaaaaaabp0, + 0x1.0000000000003p32 + }, + { // Entry 137 + -0x1.2aaaaaaaaaaa77ff787e6b74f9b2d658p-32, + -0x1.2aaaaaaaaaaabp0, + 0x1.0000000000003p32 + }, + { // Entry 138 + 0x1.edae91ebbfb8780006f7e9144583c7b3p0, + 0x1.2d66ca857bf9ap0, + -0x1.c28f5c28f5c28p-2 + }, + { // Entry 139 + -0x1.edae91ebbfb8780006f7e9144583c7b3p0, + -0x1.2d66ca857bf9ap0, + -0x1.c28f5c28f5c28p-2 + }, + { // Entry 140 + 0x1.9d5a77d67cf1d7febab338e68f258f5ap-1, + 0x1.2e12530a85951p2, + 0x1.211a7b9611a7bp2 + }, + { // Entry 141 + -0x1.9d5a77d67cf1d7febab338e68f258f5ap-1, + -0x1.2e12530a85951p2, + 0x1.211a7b9611a7bp2 + }, + { // Entry 142 + 0x1.a244e21ebefa8fffffbfabeaba9e67acp-2, + 0x1.3333333d813abp-2, + 0x1.62e42fefa39efp-1 + }, + { // Entry 143 + -0x1.a244e21ebefa8fffffbfabeaba9e67acp-2, + -0x1.3333333d813abp-2, + 0x1.62e42fefa39efp-1 + }, + { // Entry 144 + 0x1.90a08b292067f00094284270c3b75547p-4, + 0x1.3deb308a9c960p-4, + 0x1.9500a27c6a82ep-1 + }, + { // Entry 145 + -0x1.90a08b292067f00094284270c3b75547p-4, + -0x1.3deb308a9c960p-4, + 0x1.9500a27c6a82ep-1 + }, + { // Entry 146 + 0x1.a896592d6fdb57b63fa6ed728b91fe47p-5, + 0x1.420bc59c42c7cp2, + 0x1.83fffffffffffp6 + }, + { // Entry 147 + -0x1.a896592d6fdb57b63fa6ed728b91fe47p-5, + -0x1.420bc59c42c7cp2, + 0x1.83fffffffffffp6 + }, + { // Entry 148 + 0x1.25e3010ff1ed37fe769fa76dea43608cp1, + 0x1.494b48acbe5b0p-9, + -0x1.23da61f087530p-9 + }, + { // Entry 149 + -0x1.25e3010ff1ed37fe769fa76dea43608cp1, + -0x1.494b48acbe5b0p-9, + -0x1.23da61f087530p-9 + }, + { // Entry 150 + 0x1.6d0d1984633eb80e098b6dc91f083a06p-3, + 0x1.51ff85f2ba468p0, + 0x1.d50692986b95dp2 + }, + { // Entry 151 + -0x1.6d0d1984633eb80e098b6dc91f083a06p-3, + -0x1.51ff85f2ba468p0, + 0x1.d50692986b95dp2 + }, + { // Entry 152 + 0x1.ccadda48d08027ff92d1bd814812ce8cp-1, + 0x1.5412e00233d75p-1, + 0x1.0dff2d1714940p-1 + }, + { // Entry 153 + -0x1.ccadda48d08027ff92d1bd814812ce8cp-1, + -0x1.5412e00233d75p-1, + 0x1.0dff2d1714940p-1 + }, + { // Entry 154 + 0x1.3f2496d84ac34801117f6f830c0fb201p-90, + 0x1.5555555554c2ep8, + 0x1.11ccccccccccdp98 + }, + { // Entry 155 + -0x1.3f2496d84ac34801117f6f830c0fb201p-90, + -0x1.5555555554c2ep8, + 0x1.11ccccccccccdp98 + }, + { // Entry 156 + 0x1.555555555555aaaaaaaaaaaab5555555p-1021, + 0x1.5555555555558p-2, + 0x1.ffffffffffffcp1018 + }, + { // Entry 157 + -0x1.555555555555aaaaaaaaaaaab5555555p-1021, + -0x1.5555555555558p-2, + 0x1.ffffffffffffcp1018 + }, + { // Entry 158 + 0x1.88134cb8d04e88985007b92a62b1fd1ap-8, + 0x1.5711ef5ee1eecp-5, + 0x1.c000000000302p2 + }, + { // Entry 159 + -0x1.88134cb8d04e88985007b92a62b1fd1ap-8, + -0x1.5711ef5ee1eecp-5, + 0x1.c000000000302p2 + }, + { // Entry 160 + 0x1.94a470782907f800006a4822bc94bc23p-1, + 0x1.666666688d411p-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 161 + -0x1.94a470782907f800006a4822bc94bc23p-1, + -0x1.666666688d411p-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 162 + 0x1.d7d7b672ee30c85d01819b25305f3230p-10, + 0x1.6c9b26c9b26cap0, + 0x1.8ba2e8ba2e8cap9 + }, + { // Entry 163 + -0x1.d7d7b672ee30c85d01819b25305f3230p-10, + -0x1.6c9b26c9b26cap0, + 0x1.8ba2e8ba2e8cap9 + }, + { // Entry 164 + 0x1.7fffffffee0030000184c60cd2a5c008p-18, + 0x1.8p-53, + 0x1.ffffffffffffcp-36 + }, + { // Entry 165 + -0x1.7fffffffee0030000184c60cd2a5c008p-18, + -0x1.8p-53, + 0x1.ffffffffffffcp-36 + }, + { // Entry 166 + 0x1.e7c8952cb26158012b54b9a61c08f431p-2, + 0x1.8c46231188cp0, + 0x1.8p1 + }, + { // Entry 167 + -0x1.e7c8952cb26158012b54b9a61c08f431p-2, + -0x1.8c46231188cp0, + 0x1.8p1 + }, + { // Entry 168 + 0x1.2b854f022de7a93cb621cb2462f86074p0, + 0x1.8d79435e50d71p2, + 0x1.50d79435e50d9p1 + }, + { // Entry 169 + -0x1.2b854f022de7a93cb621cb2462f86074p0, + -0x1.8d79435e50d71p2, + 0x1.50d79435e50d9p1 + }, + { // Entry 170 + 0x1.42a76a164c39c800e4405027c490bdfbp-1, + 0x1.8dd3d2235ad60p-1, + 0x1.10b5d1e78459cp0 + }, + { // Entry 171 + -0x1.42a76a164c39c800e4405027c490bdfbp-1, + -0x1.8dd3d2235ad60p-1, + 0x1.10b5d1e78459cp0 + }, + { // Entry 172 + 0x1.e3240e993ab957f9d76dde4a50896826p-3, + 0x1.9p0, + 0x1.9fffffffffffbp2 + }, + { // Entry 173 + -0x1.e3240e993ab957f9d76dde4a50896826p-3, + -0x1.9p0, + 0x1.9fffffffffffbp2 + }, + { // Entry 174 + 0x1.a335efd4da90a804f7a6dad4434f5ba0p-2, + 0x1.920d799fda713p-3, + 0x1.cf4cdc48f3536p-2 + }, + { // Entry 175 + -0x1.a335efd4da90a804f7a6dad4434f5ba0p-2, + -0x1.920d799fda713p-3, + 0x1.cf4cdc48f3536p-2 + }, + { // Entry 176 + 0x1.ed87f9c729d17ffe9d2f47e2fe9ecb40p-1, + 0x1.95fad40a57ec6p9, + 0x1.19dbcc48676f6p9 + }, + { // Entry 177 + -0x1.ed87f9c729d17ffe9d2f47e2fe9ecb40p-1, + -0x1.95fad40a57ec6p9, + 0x1.19dbcc48676f6p9 + }, + { // Entry 178 + 0x1.0bfa5f3f099e68000068d82232dc4cc7p-1, + 0x1.9999999e37c24p-2, + 0x1.62e42fefa39efp-1 + }, + { // Entry 179 + -0x1.0bfa5f3f099e68000068d82232dc4cc7p-1, + -0x1.9999999e37c24p-2, + 0x1.62e42fefa39efp-1 + }, + { // Entry 180 + 0x1.1fa6ac30d066d800006a5c239e5188f2p-2, + 0x1.999999bb09140p-3, + 0x1.62e42fefa39efp-1 + }, + { // Entry 181 + -0x1.1fa6ac30d066d800006a5c239e5188f2p-2, + -0x1.999999bb09140p-3, + 0x1.62e42fefa39efp-1 + }, + { // Entry 182 + 0x1.2570742fa4989fffff9e946c986117d9p-3, + 0x1.999999c2f3b55p-4, + 0x1.62e42fefa39efp-1 + }, + { // Entry 183 + -0x1.2570742fa4989fffff9e946c986117d9p-3, + -0x1.999999c2f3b55p-4, + 0x1.62e42fefa39efp-1 + }, + { // Entry 184 + 0x1.257074378653a7ffffffb78db995aafcp-3, + 0x1.999999ce1b18ap-4, + 0x1.62e42fefa39efp-1 + }, + { // Entry 185 + -0x1.257074378653a7ffffffb78db995aafcp-3, + -0x1.999999ce1b18ap-4, + 0x1.62e42fefa39efp-1 + }, + { // Entry 186 + 0x1.25707437a1476000006169ddb5dabdd7p-3, + 0x1.999999ce413ccp-4, + 0x1.62e42fefa39efp-1 + }, + { // Entry 187 + -0x1.25707437a1476000006169ddb5dabdd7p-3, + -0x1.999999ce413ccp-4, + 0x1.62e42fefa39efp-1 + }, + { // Entry 188 + 0x1.b6a03b0f1ff0d7fd08e9f5846ec5a75bp-1, + 0x1.9c5c97530cc21p0, + 0x1.6563fa1d6f518p0 + }, + { // Entry 189 + -0x1.b6a03b0f1ff0d7fd08e9f5846ec5a75bp-1, + -0x1.9c5c97530cc21p0, + 0x1.6563fa1d6f518p0 + }, + { // Entry 190 + 0x1.b80aa068167f97558972ecfed6777774p-19, + 0x1.9f5aeae03799dp-18, + 0x1.e346d9b2ad73ep0 + }, + { // Entry 191 + -0x1.b80aa068167f97558972ecfed6777774p-19, + -0x1.9f5aeae03799dp-18, + 0x1.e346d9b2ad73ep0 + }, + { // Entry 192 + 0x1.e5ef7b22c83b27ad34bbfda6c2383d23p-2, + 0x1.a4d269349b66cp-3, + 0x1.999999999999ap-2 + }, + { // Entry 193 + -0x1.e5ef7b22c83b27ad34bbfda6c2383d23p-2, + -0x1.a4d269349b66cp-3, + 0x1.999999999999ap-2 + }, + { // Entry 194 + 0x1.5e82cb51676728011e1c6ba75f3339a7p-91, + 0x1.ad5aa6ff6335ep9, + 0x1.3995880de757ap100 + }, + { // Entry 195 + -0x1.5e82cb51676728011e1c6ba75f3339a7p-91, + -0x1.ad5aa6ff6335ep9, + 0x1.3995880de757ap100 + }, + { // Entry 196 + 0x1.95ac93504f319fefb1b5148792dab412p-1, + 0x1.b1427cd988b8cp-2, + 0x1.ab4adeaf1a3eap-2 + }, + { // Entry 197 + -0x1.95ac93504f319fefb1b5148792dab412p-1, + -0x1.b1427cd988b8cp-2, + 0x1.ab4adeaf1a3eap-2 + }, + { // Entry 198 + 0x1.921fd1f09f928801088a93fc7dbba1cap0, + 0x1.bbd49acc58d98p10, + -0x1.8db0a4ab22e7ep-9 + }, + { // Entry 199 + -0x1.921fd1f09f928801088a93fc7dbba1cap0, + -0x1.bbd49acc58d98p10, + -0x1.8db0a4ab22e7ep-9 + }, + { // Entry 200 + 0x1.43e54975fb8bc8012953e9ef023f67b3p-100, + 0x1.c37dac37dac3cp0, + 0x1.64d9364d93659p100 + }, + { // Entry 201 + -0x1.43e54975fb8bc8012953e9ef023f67b3p-100, + -0x1.c37dac37dac3cp0, + 0x1.64d9364d93659p100 + }, + { // Entry 202 + 0x1.ab78c13521cfc80117f7fae57836356ep-98, + 0x1.c9b26c9b26ca0p2, + 0x1.1219dbcc48679p100 + }, + { // Entry 203 + -0x1.ab78c13521cfc80117f7fae57836356ep-98, + -0x1.c9b26c9b26ca0p2, + 0x1.1219dbcc48679p100 + }, + { // Entry 204 + 0x1.77e467d5ff6337f84f880eb86f426f87p-1, + 0x1.ce0d5078ae3d0p0, + 0x1.0p1 + }, + { // Entry 205 + -0x1.77e467d5ff6337f84f880eb86f426f87p-1, + -0x1.ce0d5078ae3d0p0, + 0x1.0p1 + }, + { // Entry 206 + 0x1.7ccd882d8fdbe8010d0be61f023186a5p-1, + 0x1.dbcc48676f32ap7, + 0x1.0295fad40a58bp8 + }, + { // Entry 207 + -0x1.7ccd882d8fdbe8010d0be61f023186a5p-1, + -0x1.dbcc48676f32ap7, + 0x1.0295fad40a58bp8 + }, + { // Entry 208 + 0x1.2d3a87e24eb319156ef615caa7abe128p0, + 0x1.e052bf5a814b6p2, + 0x1.8f83e0f83e0f1p1 + }, + { // Entry 209 + -0x1.2d3a87e24eb319156ef615caa7abe128p0, + -0x1.e052bf5a814b6p2, + 0x1.8f83e0f83e0f1p1 + }, + { // Entry 210 + 0x1.eb0df42c36a5f7fe1df8c86bed0a28a0p-1, + 0x1.e0547e40e4cc8p-2, + 0x1.50eebc195bb24p-2 + }, + { // Entry 211 + -0x1.eb0df42c36a5f7fe1df8c86bed0a28a0p-1, + -0x1.e0547e40e4cc8p-2, + 0x1.50eebc195bb24p-2 + }, + { // Entry 212 + 0x1.c7fe1dbd95349778458697fe195e4a58p-8, + 0x1.e666666666668p1, + 0x1.111111111196dp9 + }, + { // Entry 213 + -0x1.c7fe1dbd95349778458697fe195e4a58p-8, + -0x1.e666666666668p1, + 0x1.111111111196dp9 + }, + { // Entry 214 + 0x1.38927ede67216800006a39bb49e9c0f4p0, + 0x1.e666666b987f5p0, + 0x1.62e42fefa39efp-1 + }, + { // Entry 215 + -0x1.38927ede67216800006a39bb49e9c0f4p0, + -0x1.e666666b987f5p0, + 0x1.62e42fefa39efp-1 + }, + { // Entry 216 + 0x1.39fed5699428b3b69a7339d36bb044abp-1, + 0x1.e91ee78afd1e6p-3, + 0x1.5b7c32b32bde0p-2 + }, + { // Entry 217 + -0x1.39fed5699428b3b69a7339d36bb044abp-1, + -0x1.e91ee78afd1e6p-3, + 0x1.5b7c32b32bde0p-2 + }, + { // Entry 218 + 0x1.a127224010cba803945f315e1d0ee4b5p-1, + 0x1.f166e1dc4499bp2, + 0x1.d50692986b98fp2 + }, + { // Entry 219 + -0x1.a127224010cba803945f315e1d0ee4b5p-1, + -0x1.f166e1dc4499bp2, + 0x1.d50692986b98fp2 + }, + { // Entry 220 + 0x1.f1f32aa6acb70801dd4349d43d3d4c25p-3, + 0x1.fbfffffffffffp-2, + 0x1.ffffffffe7fffp0 + }, + { // Entry 221 + -0x1.f1f32aa6acb70801dd4349d43d3d4c25p-3, + -0x1.fbfffffffffffp-2, + 0x1.ffffffffe7fffp0 + }, + { // Entry 222 + 0x1.079c41361b6ab8115015e4f32dcfe4b3p1, + 0x1.ff4b7c848cde6p-1, + -0x1.0fd6c7f44f588p-1 + }, + { // Entry 223 + -0x1.079c41361b6ab8115015e4f32dcfe4b3p1, + -0x1.ff4b7c848cde6p-1, + -0x1.0fd6c7f44f588p-1 + }, + { // Entry 224 + 0x1.da4c6912789968011f1b516f595d868ep-2, + 0x1.ff677ffffffffp-6, + 0x1.ffffffff19fffp-5 + }, + { // Entry 225 + -0x1.da4c6912789968011f1b516f595d868ep-2, + -0x1.ff677ffffffffp-6, + 0x1.ffffffff19fffp-5 + }, + { // Entry 226 + 0x1.fffc80021ffc480225fc1d822a9bc5e0p-58, + 0x1.fffc7ffffffffp-50, + 0x1.fffffffddffffp7 + }, + { // Entry 227 + -0x1.fffc80021ffc480225fc1d822a9bc5e0p-58, + -0x1.fffc7ffffffffp-50, + 0x1.fffffffddffffp7 + }, + { // Entry 228 + 0x1.66666666666617fffffffffff8b72015p-50, + 0x1.ffffffffffffcp50, + 0x1.6db6db6db6db9p100 + }, + { // Entry 229 + -0x1.66666666666617fffffffffff8b72015p-50, + -0x1.ffffffffffffcp50, + 0x1.6db6db6db6db9p100 + }, + { // Entry 230 + 0x1.ff55d35ae8e467ce77407069ad013ab5p-5, + 0x1.ffffffffffffep-3, + 0x1.ffffe7fffffffp1 + }, + { // Entry 231 + -0x1.ff55d35ae8e467ce77407069ad013ab5p-5, + -0x1.ffffffffffffep-3, + 0x1.ffffe7fffffffp1 + }, + { // Entry 232 + 0x1.b4ddd66a37b3b335a2a5b11ceb9a4c56p-2, + 0x1.ffffffffffffep-4, + 0x1.199999999999cp-2 + }, + { // Entry 233 + -0x1.b4ddd66a37b3b335a2a5b11ceb9a4c56p-2, + -0x1.ffffffffffffep-4, + 0x1.199999999999cp-2 + }, + { // Entry 234 + 0x1.90e6d4253517c8010321aeae887990a9p1, + 0x1.ffffffffffffep-7, + -0x1.a2e8ba2e97a22p0 + }, + { // Entry 235 + -0x1.90e6d4253517c8010321aeae887990a9p1, + -0x1.ffffffffffffep-7, + -0x1.a2e8ba2e97a22p0 + }, + { // Entry 236 + 0x1.b6db6db6db6d281ddaaea5b12cced2a1p-25, + 0x1.ffffffffffffep-25, + 0x1.2aaaaaaaaaaabp0 + }, + { // Entry 237 + -0x1.b6db6db6db6d281ddaaea5b12cced2a1p-25, + -0x1.ffffffffffffep-25, + 0x1.2aaaaaaaaaaabp0 + }, + { // Entry 238 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.ffffffffffffep-807, + -0x1.745d1745d173cp-3 + }, + { // Entry 239 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.ffffffffffffep-807, + -0x1.745d1745d173cp-3 + }, + { // Entry 240 + 0x1.096d05371b1c54c40f9a06c6cf2db981p1, + 0x1.ffffffffffffep0, + -0x1.199999999999ap0 + }, + { // Entry 241 + -0x1.096d05371b1c54c40f9a06c6cf2db981p1, + -0x1.ffffffffffffep0, + -0x1.199999999999ap0 + }, + { // Entry 242 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + 0x1.4p-1072 + }, + { // Entry 243 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + 0x1.4p-1072 + }, + { // Entry 244 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 245 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 246 + -0x1.f4f3b198c0f168030e9490be1ea559e8p-4, + -0x1.08de20fafe4a2p0, + 0x1.0d5ba77adf969p3 + }, + { // Entry 247 + 0x1.f4f3b198c0f168030e9490be1ea559e8p-4, + 0x1.08de20fafe4a2p0, + 0x1.0d5ba77adf969p3 + }, + { // Entry 248 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 249 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 250 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 251 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 252 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 253 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 254 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 255 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 256 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 257 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 258 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.0p0, + 0x1.0p3 + }, + { // Entry 259 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.0p0, + 0x1.0p3 + }, + { // Entry 260 + 0x1.7249faa996a216a33079d20319e727c3p0, + 0x1.0p3, + 0x1.0p0 + }, + { // Entry 261 + -0x1.7249faa996a216a33079d20319e727c3p0, + -0x1.0p3, + 0x1.0p0 + }, + { // Entry 262 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p3, + 0x1.0p3 + }, + { // Entry 263 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p3, + 0x1.0p3 + }, + { // Entry 264 + 0x1.ffffd5555bbbba9729ab7aac089473a3p-10, + 0x1.0p0, + 0x1.0p9 + }, + { // Entry 265 + -0x1.ffffd5555bbbba9729ab7aac089473a3p-10, + -0x1.0p0, + 0x1.0p9 + }, + { // Entry 266 + 0x1.fffff55555bbbbb72972d00cfde752f9p-11, + 0x1.0p0, + 0x1.0p10 + }, + { // Entry 267 + -0x1.fffff55555bbbbb72972d00cfde752f9p-11, + -0x1.0p0, + 0x1.0p10 + }, + { // Entry 268 + 0x1.fff555bbb729ab77cf18ac802beec090p-7, + 0x1.0p3, + 0x1.0p9 + }, + { // Entry 269 + -0x1.fff555bbb729ab77cf18ac802beec090p-7, + -0x1.0p3, + 0x1.0p9 + }, + { // Entry 270 + 0x1.fffd555bbba972d00c46a3f77cc15e8ep-8, + 0x1.0p3, + 0x1.0p10 + }, + { // Entry 271 + -0x1.fffd555bbba972d00c46a3f77cc15e8ep-8, + -0x1.0p3, + 0x1.0p10 + }, + { // Entry 272 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.0p0, + 0x1.0p100 + }, + { // Entry 273 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.0p0, + 0x1.0p100 + }, + { // Entry 274 + 0x1.ffffffffffffffffffffffffffffffffp-102, + 0x1.0p0, + 0x1.0p101 + }, + { // Entry 275 + -0x1.ffffffffffffffffffffffffffffffffp-102, + -0x1.0p0, + 0x1.0p101 + }, + { // Entry 276 + 0x1.ffffffffffffffffffffffffffffffffp-98, + 0x1.0p3, + 0x1.0p100 + }, + { // Entry 277 + -0x1.ffffffffffffffffffffffffffffffffp-98, + -0x1.0p3, + 0x1.0p100 + }, + { // Entry 278 + 0x1.ffffffffffffffffffffffffffffffffp-99, + 0x1.0p3, + 0x1.0p101 + }, + { // Entry 279 + -0x1.ffffffffffffffffffffffffffffffffp-99, + -0x1.0p3, + 0x1.0p101 + }, + { // Entry 280 + 0x1.919fb54eed7a957ae3c25a3856b61485p0, + 0x1.0p9, + 0x1.0p0 + }, + { // Entry 281 + -0x1.919fb54eed7a957ae3c25a3856b61485p0, + -0x1.0p9, + 0x1.0p0 + }, + { // Entry 282 + 0x1.8e1fca98cb63311299ee93be01605c21p0, + 0x1.0p9, + 0x1.0p3 + }, + { // Entry 283 + -0x1.8e1fca98cb63311299ee93be01605c21p0, + -0x1.0p9, + 0x1.0p3 + }, + { // Entry 284 + 0x1.91dfb5459826ccf212a796bd00187cb7p0, + 0x1.0p10, + 0x1.0p0 + }, + { // Entry 285 + -0x1.91dfb5459826ccf212a796bd00187cb7p0, + -0x1.0p10, + 0x1.0p0 + }, + { // Entry 286 + 0x1.901fb7eee715daf6b9807e730a3b7843p0, + 0x1.0p10, + 0x1.0p3 + }, + { // Entry 287 + -0x1.901fb7eee715daf6b9807e730a3b7843p0, + -0x1.0p10, + 0x1.0p3 + }, + { // Entry 288 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p9, + 0x1.0p9 + }, + { // Entry 289 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p9, + 0x1.0p9 + }, + { // Entry 290 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.0p9, + 0x1.0p10 + }, + { // Entry 291 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.0p9, + 0x1.0p10 + }, + { // Entry 292 + 0x1.1b6e192ebbe446c6d19aa220a39af320p0, + 0x1.0p10, + 0x1.0p9 + }, + { // Entry 293 + -0x1.1b6e192ebbe446c6d19aa220a39af320p0, + -0x1.0p10, + 0x1.0p9 + }, + { // Entry 294 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 295 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p10, + 0x1.0p10 + }, + { // Entry 296 + 0x1.ffffffffffffffffffffffffffffffffp-92, + 0x1.0p9, + 0x1.0p100 + }, + { // Entry 297 + -0x1.ffffffffffffffffffffffffffffffffp-92, + -0x1.0p9, + 0x1.0p100 + }, + { // Entry 298 + 0x1.ffffffffffffffffffffffffffffffffp-93, + 0x1.0p9, + 0x1.0p101 + }, + { // Entry 299 + -0x1.ffffffffffffffffffffffffffffffffp-93, + -0x1.0p9, + 0x1.0p101 + }, + { // Entry 300 + 0x1.ffffffffffffffffffffffffffffffffp-91, + 0x1.0p10, + 0x1.0p100 + }, + { // Entry 301 + -0x1.ffffffffffffffffffffffffffffffffp-91, + -0x1.0p10, + 0x1.0p100 + }, + { // Entry 302 + 0x1.ffffffffffffffffffffffffffffffffp-92, + 0x1.0p10, + 0x1.0p101 + }, + { // Entry 303 + -0x1.ffffffffffffffffffffffffffffffffp-92, + -0x1.0p10, + 0x1.0p101 + }, + { // Entry 304 + 0x1.921fb54442d18469898cc516f1b839a2p0, + 0x1.0p100, + 0x1.0p0 + }, + { // Entry 305 + -0x1.921fb54442d18469898cc516f1b839a2p0, + -0x1.0p100, + 0x1.0p0 + }, + { // Entry 306 + 0x1.921fb54442d18469898cc51681b839a2p0, + 0x1.0p100, + 0x1.0p3 + }, + { // Entry 307 + -0x1.921fb54442d18469898cc51681b839a2p0, + -0x1.0p100, + 0x1.0p3 + }, + { // Entry 308 + 0x1.921fb54442d18469898cc516f9b839a2p0, + 0x1.0p101, + 0x1.0p0 + }, + { // Entry 309 + -0x1.921fb54442d18469898cc516f9b839a2p0, + -0x1.0p101, + 0x1.0p0 + }, + { // Entry 310 + 0x1.921fb54442d18469898cc516c1b839a2p0, + 0x1.0p101, + 0x1.0p3 + }, + { // Entry 311 + -0x1.921fb54442d18469898cc516c1b839a2p0, + -0x1.0p101, + 0x1.0p3 + }, + { // Entry 312 + 0x1.921fb54442d18469898cc4f701b839a2p0, + 0x1.0p100, + 0x1.0p9 + }, + { // Entry 313 + -0x1.921fb54442d18469898cc4f701b839a2p0, + -0x1.0p100, + 0x1.0p9 + }, + { // Entry 314 + 0x1.921fb54442d18469898cc4d701b839a2p0, + 0x1.0p100, + 0x1.0p10 + }, + { // Entry 315 + -0x1.921fb54442d18469898cc4d701b839a2p0, + -0x1.0p100, + 0x1.0p10 + }, + { // Entry 316 + 0x1.921fb54442d18469898cc50701b839a2p0, + 0x1.0p101, + 0x1.0p9 + }, + { // Entry 317 + -0x1.921fb54442d18469898cc50701b839a2p0, + -0x1.0p101, + 0x1.0p9 + }, + { // Entry 318 + 0x1.921fb54442d18469898cc4f701b839a2p0, + 0x1.0p101, + 0x1.0p10 + }, + { // Entry 319 + -0x1.921fb54442d18469898cc4f701b839a2p0, + -0x1.0p101, + 0x1.0p10 + }, + { // Entry 320 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p100, + 0x1.0p100 + }, + { // Entry 321 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p100, + 0x1.0p100 + }, + { // Entry 322 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.0p100, + 0x1.0p101 + }, + { // Entry 323 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.0p100, + 0x1.0p101 + }, + { // Entry 324 + 0x1.1b6e192ebbe446c6d19aa220a39af320p0, + 0x1.0p101, + 0x1.0p100 + }, + { // Entry 325 + -0x1.1b6e192ebbe446c6d19aa220a39af320p0, + -0x1.0p101, + 0x1.0p100 + }, + { // Entry 326 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p101, + 0x1.0p101 + }, + { // Entry 327 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p101, + 0x1.0p101 + }, + { // Entry 328 + -0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp0 + }, + { // Entry 329 + 0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp0 + }, + { // Entry 330 + -0.0, + -0x1.0p-1074, + 0x1.0p1 + }, + { // Entry 331 + 0.0, + 0x1.0p-1074, + 0x1.0p1 + }, + { // Entry 332 + -0.0, + -0x1.0p-1074, + 0x1.0000000000001p1 + }, + { // Entry 333 + 0.0, + 0x1.0p-1074, + 0x1.0000000000001p1 + }, + { // Entry 334 + -0.0, + -0.0, + 0x1.fffffffffffffp0 + }, + { // Entry 335 + -0.0, + -0.0, + 0x1.0p1 + }, + { // Entry 336 + -0.0, + -0.0, + 0x1.0000000000001p1 + }, + { // Entry 337 + 0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp0 + }, + { // Entry 338 + -0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp0 + }, + { // Entry 339 + 0.0, + 0x1.0p-1074, + 0x1.0p1 + }, + { // Entry 340 + -0.0, + -0x1.0p-1074, + 0x1.0p1 + }, + { // Entry 341 + 0.0, + 0x1.0p-1074, + 0x1.0000000000001p1 + }, + { // Entry 342 + -0.0, + -0x1.0p-1074, + 0x1.0000000000001p1 + }, + { // Entry 343 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.fffffffffffffp-4, + 0x1.fffffffffffffp0 + }, + { // Entry 344 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.fffffffffffffp-4, + 0x1.fffffffffffffp0 + }, + { // Entry 345 + 0x1.ff55bb72cfde8c7d865f15c80c6b8bb0p-5, + 0x1.fffffffffffffp-4, + 0x1.0p1 + }, + { // Entry 346 + -0x1.ff55bb72cfde8c7d865f15c80c6b8bb0p-5, + -0x1.fffffffffffffp-4, + 0x1.0p1 + }, + { // Entry 347 + 0x1.ff55bb72cfde6c9d667ef5e7ef8476c1p-5, + 0x1.fffffffffffffp-4, + 0x1.0000000000001p1 + }, + { // Entry 348 + -0x1.ff55bb72cfde6c9d667ef5e7ef8476c1p-5, + -0x1.fffffffffffffp-4, + 0x1.0000000000001p1 + }, + { // Entry 349 + 0x1.ff55bb72cfdeac5da63f35a82ccb2c10p-5, + 0x1.0p-3, + 0x1.fffffffffffffp0 + }, + { // Entry 350 + -0x1.ff55bb72cfdeac5da63f35a82ccb2c10p-5, + -0x1.0p-3, + 0x1.fffffffffffffp0 + }, + { // Entry 351 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.0p-3, + 0x1.0p1 + }, + { // Entry 352 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.0p-3, + 0x1.0p1 + }, + { // Entry 353 + 0x1.ff55bb72cfde7c8d766f05d7fe7800bap-5, + 0x1.0p-3, + 0x1.0000000000001p1 + }, + { // Entry 354 + -0x1.ff55bb72cfde7c8d766f05d7fe7800bap-5, + -0x1.0p-3, + 0x1.0000000000001p1 + }, + { // Entry 355 + 0x1.ff55bb72cfdecc3dc61f55884da654e3p-5, + 0x1.0000000000001p-3, + 0x1.fffffffffffffp0 + }, + { // Entry 356 + -0x1.ff55bb72cfdecc3dc61f55884da654e3p-5, + -0x1.0000000000001p-3, + 0x1.fffffffffffffp0 + }, + { // Entry 357 + 0x1.ff55bb72cfdebc4db62f45983c3a3e7cp-5, + 0x1.0000000000001p-3, + 0x1.0p1 + }, + { // Entry 358 + -0x1.ff55bb72cfdebc4db62f45983c3a3e7cp-5, + -0x1.0000000000001p-3, + 0x1.0p1 + }, + { // Entry 359 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.0000000000001p-3, + 0x1.0000000000001p1 + }, + { // Entry 360 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.0000000000001p-3, + 0x1.0000000000001p1 + }, + { // Entry 361 + -0x1.ff55bb72cfdecc3dc61f55884da654e3p-5, + -0x1.0000000000001p-3, + 0x1.fffffffffffffp0 + }, + { // Entry 362 + 0x1.ff55bb72cfdecc3dc61f55884da654e3p-5, + 0x1.0000000000001p-3, + 0x1.fffffffffffffp0 + }, + { // Entry 363 + -0x1.ff55bb72cfdebc4db62f45983c3a3e7cp-5, + -0x1.0000000000001p-3, + 0x1.0p1 + }, + { // Entry 364 + 0x1.ff55bb72cfdebc4db62f45983c3a3e7cp-5, + 0x1.0000000000001p-3, + 0x1.0p1 + }, + { // Entry 365 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.0000000000001p-3, + 0x1.0000000000001p1 + }, + { // Entry 366 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.0000000000001p-3, + 0x1.0000000000001p1 + }, + { // Entry 367 + -0x1.ff55bb72cfdeac5da63f35a82ccb2c10p-5, + -0x1.0p-3, + 0x1.fffffffffffffp0 + }, + { // Entry 368 + 0x1.ff55bb72cfdeac5da63f35a82ccb2c10p-5, + 0x1.0p-3, + 0x1.fffffffffffffp0 + }, + { // Entry 369 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.0p-3, + 0x1.0p1 + }, + { // Entry 370 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.0p-3, + 0x1.0p1 + }, + { // Entry 371 + -0x1.ff55bb72cfde7c8d766f05d7fe7800bap-5, + -0x1.0p-3, + 0x1.0000000000001p1 + }, + { // Entry 372 + 0x1.ff55bb72cfde7c8d766f05d7fe7800bap-5, + 0x1.0p-3, + 0x1.0000000000001p1 + }, + { // Entry 373 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.fffffffffffffp-4, + 0x1.fffffffffffffp0 + }, + { // Entry 374 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.fffffffffffffp-4, + 0x1.fffffffffffffp0 + }, + { // Entry 375 + -0x1.ff55bb72cfde8c7d865f15c80c6b8bb0p-5, + -0x1.fffffffffffffp-4, + 0x1.0p1 + }, + { // Entry 376 + 0x1.ff55bb72cfde8c7d865f15c80c6b8bb0p-5, + 0x1.fffffffffffffp-4, + 0x1.0p1 + }, + { // Entry 377 + -0x1.ff55bb72cfde6c9d667ef5e7ef8476c1p-5, + -0x1.fffffffffffffp-4, + 0x1.0000000000001p1 + }, + { // Entry 378 + 0x1.ff55bb72cfde6c9d667ef5e7ef8476c1p-5, + 0x1.fffffffffffffp-4, + 0x1.0000000000001p1 + }, + { // Entry 379 + 0x1.a271f63e34fcf65ccd6e8d4040e2778cp-2, + 0x1.bb67ae8584ca9p-1, + 0x1.fffffffffffffp0 + }, + { // Entry 380 + -0x1.a271f63e34fcf65ccd6e8d4040e2778cp-2, + -0x1.bb67ae8584ca9p-1, + 0x1.fffffffffffffp0 + }, + { // Entry 381 + 0x1.a271f63e34fceab1a727ab70d0ce3998p-2, + 0x1.bb67ae8584ca9p-1, + 0x1.0p1 + }, + { // Entry 382 + -0x1.a271f63e34fceab1a727ab70d0ce3998p-2, + -0x1.bb67ae8584ca9p-1, + 0x1.0p1 + }, + { // Entry 383 + 0x1.a271f63e34fcd35b5a99e7d1f27d656cp-2, + 0x1.bb67ae8584ca9p-1, + 0x1.0000000000001p1 + }, + { // Entry 384 + -0x1.a271f63e34fcd35b5a99e7d1f27d656cp-2, + -0x1.bb67ae8584ca9p-1, + 0x1.0000000000001p1 + }, + { // Entry 385 + 0x1.a271f63e34fd03d610ccde17d587872dp-2, + 0x1.bb67ae8584caap-1, + 0x1.fffffffffffffp0 + }, + { // Entry 386 + -0x1.a271f63e34fd03d610ccde17d587872dp-2, + -0x1.bb67ae8584caap-1, + 0x1.fffffffffffffp0 + }, + { // Entry 387 + 0x1.a271f63e34fcf82aea85fc486529890cp-2, + 0x1.bb67ae8584caap-1, + 0x1.0p1 + }, + { // Entry 388 + -0x1.a271f63e34fcf82aea85fc486529890cp-2, + -0x1.bb67ae8584caap-1, + 0x1.0p1 + }, + { // Entry 389 + 0x1.a271f63e34fce0d49df838a986453485p-2, + 0x1.bb67ae8584caap-1, + 0x1.0000000000001p1 + }, + { // Entry 390 + -0x1.a271f63e34fce0d49df838a986453485p-2, + -0x1.bb67ae8584caap-1, + 0x1.0000000000001p1 + }, + { // Entry 391 + 0x1.a271f63e34fd114f542b2eef6a0548d3p-2, + 0x1.bb67ae8584cabp-1, + 0x1.fffffffffffffp0 + }, + { // Entry 392 + -0x1.a271f63e34fd114f542b2eef6a0548d3p-2, + -0x1.bb67ae8584cabp-1, + 0x1.fffffffffffffp0 + }, + { // Entry 393 + 0x1.a271f63e34fd05a42de44d1ff95d8a85p-2, + 0x1.bb67ae8584cabp-1, + 0x1.0p1 + }, + { // Entry 394 + -0x1.a271f63e34fd05a42de44d1ff95d8a85p-2, + -0x1.bb67ae8584cabp-1, + 0x1.0p1 + }, + { // Entry 395 + 0x1.a271f63e34fcee4de156898119e5b5a4p-2, + 0x1.bb67ae8584cabp-1, + 0x1.0000000000001p1 + }, + { // Entry 396 + -0x1.a271f63e34fcee4de156898119e5b5a4p-2, + -0x1.bb67ae8584cabp-1, + 0x1.0000000000001p1 + }, + { // Entry 397 + -0x1.a271f63e34fd114f542b2eef6a0548d3p-2, + -0x1.bb67ae8584cabp-1, + 0x1.fffffffffffffp0 + }, + { // Entry 398 + 0x1.a271f63e34fd114f542b2eef6a0548d3p-2, + 0x1.bb67ae8584cabp-1, + 0x1.fffffffffffffp0 + }, + { // Entry 399 + -0x1.a271f63e34fd05a42de44d1ff95d8a85p-2, + -0x1.bb67ae8584cabp-1, + 0x1.0p1 + }, + { // Entry 400 + 0x1.a271f63e34fd05a42de44d1ff95d8a85p-2, + 0x1.bb67ae8584cabp-1, + 0x1.0p1 + }, + { // Entry 401 + -0x1.a271f63e34fcee4de156898119e5b5a4p-2, + -0x1.bb67ae8584cabp-1, + 0x1.0000000000001p1 + }, + { // Entry 402 + 0x1.a271f63e34fcee4de156898119e5b5a4p-2, + 0x1.bb67ae8584cabp-1, + 0x1.0000000000001p1 + }, + { // Entry 403 + -0x1.a271f63e34fd03d610ccde17d587872dp-2, + -0x1.bb67ae8584caap-1, + 0x1.fffffffffffffp0 + }, + { // Entry 404 + 0x1.a271f63e34fd03d610ccde17d587872dp-2, + 0x1.bb67ae8584caap-1, + 0x1.fffffffffffffp0 + }, + { // Entry 405 + -0x1.a271f63e34fcf82aea85fc486529890cp-2, + -0x1.bb67ae8584caap-1, + 0x1.0p1 + }, + { // Entry 406 + 0x1.a271f63e34fcf82aea85fc486529890cp-2, + 0x1.bb67ae8584caap-1, + 0x1.0p1 + }, + { // Entry 407 + -0x1.a271f63e34fce0d49df838a986453485p-2, + -0x1.bb67ae8584caap-1, + 0x1.0000000000001p1 + }, + { // Entry 408 + 0x1.a271f63e34fce0d49df838a986453485p-2, + 0x1.bb67ae8584caap-1, + 0x1.0000000000001p1 + }, + { // Entry 409 + -0x1.a271f63e34fcf65ccd6e8d4040e2778cp-2, + -0x1.bb67ae8584ca9p-1, + 0x1.fffffffffffffp0 + }, + { // Entry 410 + 0x1.a271f63e34fcf65ccd6e8d4040e2778cp-2, + 0x1.bb67ae8584ca9p-1, + 0x1.fffffffffffffp0 + }, + { // Entry 411 + -0x1.a271f63e34fceab1a727ab70d0ce3998p-2, + -0x1.bb67ae8584ca9p-1, + 0x1.0p1 + }, + { // Entry 412 + 0x1.a271f63e34fceab1a727ab70d0ce3998p-2, + 0x1.bb67ae8584ca9p-1, + 0x1.0p1 + }, + { // Entry 413 + -0x1.a271f63e34fcd35b5a99e7d1f27d656cp-2, + -0x1.bb67ae8584ca9p-1, + 0x1.0000000000001p1 + }, + { // Entry 414 + 0x1.a271f63e34fcd35b5a99e7d1f27d656cp-2, + 0x1.bb67ae8584ca9p-1, + 0x1.0000000000001p1 + }, + { // Entry 415 + 0x1.e1fc084cd761a3aa77e521b9a803b2f2p-1, + 0x1.5f89e11a0441cp1, + 0x1.fffffffffffffp0 + }, + { // Entry 416 + -0x1.e1fc084cd761a3aa77e521b9a803b2f2p-1, + -0x1.5f89e11a0441cp1, + 0x1.fffffffffffffp0 + }, + { // Entry 417 + 0x1.e1fc084cd7619c0d50916d35af40b669p-1, + 0x1.5f89e11a0441cp1, + 0x1.0p1 + }, + { // Entry 418 + -0x1.e1fc084cd7619c0d50916d35af40b669p-1, + -0x1.5f89e11a0441cp1, + 0x1.0p1 + }, + { // Entry 419 + 0x1.e1fc084cd7618cd301ea042dbe396361p-1, + 0x1.5f89e11a0441cp1, + 0x1.0000000000001p1 + }, + { // Entry 420 + -0x1.e1fc084cd7618cd301ea042dbe396361p-1, + -0x1.5f89e11a0441cp1, + 0x1.0000000000001p1 + }, + { // Entry 421 + 0x1.e1fc084cd761aec15275b5d29ba21a09p-1, + 0x1.5f89e11a0441dp1, + 0x1.fffffffffffffp0 + }, + { // Entry 422 + -0x1.e1fc084cd761aec15275b5d29ba21a09p-1, + -0x1.5f89e11a0441dp1, + 0x1.fffffffffffffp0 + }, + { // Entry 423 + 0x1.e1fc084cd761a7242b22014ea2fa57ebp-1, + 0x1.5f89e11a0441dp1, + 0x1.0p1 + }, + { // Entry 424 + -0x1.e1fc084cd761a7242b22014ea2fa57ebp-1, + -0x1.5f89e11a0441dp1, + 0x1.0p1 + }, + { // Entry 425 + 0x1.e1fc084cd76197e9dc7a9846b22979b9p-1, + 0x1.5f89e11a0441dp1, + 0x1.0000000000001p1 + }, + { // Entry 426 + -0x1.e1fc084cd76197e9dc7a9846b22979b9p-1, + -0x1.5f89e11a0441dp1, + 0x1.0000000000001p1 + }, + { // Entry 427 + 0x1.e1fc084cd761b9d82d0649eb8e97a3bcp-1, + 0x1.5f89e11a0441ep1, + 0x1.fffffffffffffp0 + }, + { // Entry 428 + -0x1.e1fc084cd761b9d82d0649eb8e97a3bcp-1, + -0x1.5f89e11a0441ep1, + 0x1.fffffffffffffp0 + }, + { // Entry 429 + 0x1.e1fc084cd761b23b05b29567960b1c09p-1, + 0x1.5f89e11a0441ep1, + 0x1.0p1 + }, + { // Entry 430 + -0x1.e1fc084cd761b23b05b29567960b1c09p-1, + -0x1.5f89e11a0441ep1, + 0x1.0p1 + }, + { // Entry 431 + 0x1.e1fc084cd761a300b70b2c5fa570b2aep-1, + 0x1.5f89e11a0441ep1, + 0x1.0000000000001p1 + }, + { // Entry 432 + -0x1.e1fc084cd761a300b70b2c5fa570b2aep-1, + -0x1.5f89e11a0441ep1, + 0x1.0000000000001p1 + }, + { // Entry 433 + -0x1.e1fc084cd761b9d82d0649eb8e97a3bcp-1, + -0x1.5f89e11a0441ep1, + 0x1.fffffffffffffp0 + }, + { // Entry 434 + 0x1.e1fc084cd761b9d82d0649eb8e97a3bcp-1, + 0x1.5f89e11a0441ep1, + 0x1.fffffffffffffp0 + }, + { // Entry 435 + -0x1.e1fc084cd761b23b05b29567960b1c09p-1, + -0x1.5f89e11a0441ep1, + 0x1.0p1 + }, + { // Entry 436 + 0x1.e1fc084cd761b23b05b29567960b1c09p-1, + 0x1.5f89e11a0441ep1, + 0x1.0p1 + }, + { // Entry 437 + -0x1.e1fc084cd761a300b70b2c5fa570b2aep-1, + -0x1.5f89e11a0441ep1, + 0x1.0000000000001p1 + }, + { // Entry 438 + 0x1.e1fc084cd761a300b70b2c5fa570b2aep-1, + 0x1.5f89e11a0441ep1, + 0x1.0000000000001p1 + }, + { // Entry 439 + -0x1.e1fc084cd761aec15275b5d29ba21a09p-1, + -0x1.5f89e11a0441dp1, + 0x1.fffffffffffffp0 + }, + { // Entry 440 + 0x1.e1fc084cd761aec15275b5d29ba21a09p-1, + 0x1.5f89e11a0441dp1, + 0x1.fffffffffffffp0 + }, + { // Entry 441 + -0x1.e1fc084cd761a7242b22014ea2fa57ebp-1, + -0x1.5f89e11a0441dp1, + 0x1.0p1 + }, + { // Entry 442 + 0x1.e1fc084cd761a7242b22014ea2fa57ebp-1, + 0x1.5f89e11a0441dp1, + 0x1.0p1 + }, + { // Entry 443 + -0x1.e1fc084cd76197e9dc7a9846b22979b9p-1, + -0x1.5f89e11a0441dp1, + 0x1.0000000000001p1 + }, + { // Entry 444 + 0x1.e1fc084cd76197e9dc7a9846b22979b9p-1, + 0x1.5f89e11a0441dp1, + 0x1.0000000000001p1 + }, + { // Entry 445 + -0x1.e1fc084cd761a3aa77e521b9a803b2f2p-1, + -0x1.5f89e11a0441cp1, + 0x1.fffffffffffffp0 + }, + { // Entry 446 + 0x1.e1fc084cd761a3aa77e521b9a803b2f2p-1, + 0x1.5f89e11a0441cp1, + 0x1.fffffffffffffp0 + }, + { // Entry 447 + -0x1.e1fc084cd7619c0d50916d35af40b669p-1, + -0x1.5f89e11a0441cp1, + 0x1.0p1 + }, + { // Entry 448 + 0x1.e1fc084cd7619c0d50916d35af40b669p-1, + 0x1.5f89e11a0441cp1, + 0x1.0p1 + }, + { // Entry 449 + -0x1.e1fc084cd7618cd301ea042dbe396361p-1, + -0x1.5f89e11a0441cp1, + 0x1.0000000000001p1 + }, + { // Entry 450 + 0x1.e1fc084cd7618cd301ea042dbe396361p-1, + 0x1.5f89e11a0441cp1, + 0x1.0000000000001p1 + }, + { // Entry 451 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp0 + }, + { // Entry 452 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp0 + }, + { // Entry 453 + 0x1.921fb54442d17c69898cc517019839a2p-1, + 0x1.fffffffffffffp0, + 0x1.0p1 + }, + { // Entry 454 + -0x1.921fb54442d17c69898cc517019839a2p-1, + -0x1.fffffffffffffp0, + 0x1.0p1 + }, + { // Entry 455 + 0x1.921fb54442d16c69898cc517021839a2p-1, + 0x1.fffffffffffffp0, + 0x1.0000000000001p1 + }, + { // Entry 456 + -0x1.921fb54442d16c69898cc517021839a2p-1, + -0x1.fffffffffffffp0, + 0x1.0000000000001p1 + }, + { // Entry 457 + 0x1.921fb54442d18c69898cc51701d839a2p-1, + 0x1.0p1, + 0x1.fffffffffffffp0 + }, + { // Entry 458 + -0x1.921fb54442d18c69898cc51701d839a2p-1, + -0x1.0p1, + 0x1.fffffffffffffp0 + }, + { // Entry 459 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p1, + 0x1.0p1 + }, + { // Entry 460 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p1, + 0x1.0p1 + }, + { // Entry 461 + 0x1.921fb54442d17469898cc517023839a2p-1, + 0x1.0p1, + 0x1.0000000000001p1 + }, + { // Entry 462 + -0x1.921fb54442d17469898cc517023839a2p-1, + -0x1.0p1, + 0x1.0000000000001p1 + }, + { // Entry 463 + 0x1.921fb54442d19c69898cc517015839a2p-1, + 0x1.0000000000001p1, + 0x1.fffffffffffffp0 + }, + { // Entry 464 + -0x1.921fb54442d19c69898cc517015839a2p-1, + -0x1.0000000000001p1, + 0x1.fffffffffffffp0 + }, + { // Entry 465 + 0x1.921fb54442d19469898cc517013839a2p-1, + 0x1.0000000000001p1, + 0x1.0p1 + }, + { // Entry 466 + -0x1.921fb54442d19469898cc517013839a2p-1, + -0x1.0000000000001p1, + 0x1.0p1 + }, + { // Entry 467 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0000000000001p1, + 0x1.0000000000001p1 + }, + { // Entry 468 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0000000000001p1, + 0x1.0000000000001p1 + }, + { // Entry 469 + 0x1.fffffffffffffd5555555555555bbbbbp-28, + 0x1.fffffffffffffp-27, + 0x1.fffffffffffffp0 + }, + { // Entry 470 + -0x1.fffffffffffffd5555555555555bbbbbp-28, + -0x1.fffffffffffffp-27, + 0x1.fffffffffffffp0 + }, + { // Entry 471 + 0x1.ffffffffffffed5555555555559bbbbbp-28, + 0x1.fffffffffffffp-27, + 0x1.0p1 + }, + { // Entry 472 + -0x1.ffffffffffffed5555555555559bbbbbp-28, + -0x1.fffffffffffffp-27, + 0x1.0p1 + }, + { // Entry 473 + 0x1.ffffffffffffcd5555555555591bbbbbp-28, + 0x1.fffffffffffffp-27, + 0x1.0000000000001p1 + }, + { // Entry 474 + -0x1.ffffffffffffcd5555555555591bbbbbp-28, + -0x1.fffffffffffffp-27, + 0x1.0000000000001p1 + }, + { // Entry 475 + 0x1.00000000000006aaaaaaaaaaaacdddddp-27, + 0x1.0p-26, + 0x1.fffffffffffffp0 + }, + { // Entry 476 + -0x1.00000000000006aaaaaaaaaaaacdddddp-27, + -0x1.0p-26, + 0x1.fffffffffffffp0 + }, + { // Entry 477 + 0x1.fffffffffffffd5555555555555bbbbbp-28, + 0x1.0p-26, + 0x1.0p1 + }, + { // Entry 478 + -0x1.fffffffffffffd5555555555555bbbbbp-28, + -0x1.0p-26, + 0x1.0p1 + }, + { // Entry 479 + 0x1.ffffffffffffdd555555555557dbbbbbp-28, + 0x1.0p-26, + 0x1.0000000000001p1 + }, + { // Entry 480 + -0x1.ffffffffffffdd555555555557dbbbbbp-28, + -0x1.0p-26, + 0x1.0000000000001p1 + }, + { // Entry 481 + 0x1.00000000000016aaaaaaaaaaab0dddddp-27, + 0x1.0000000000001p-26, + 0x1.fffffffffffffp0 + }, + { // Entry 482 + -0x1.00000000000016aaaaaaaaaaab0dddddp-27, + -0x1.0000000000001p-26, + 0x1.fffffffffffffp0 + }, + { // Entry 483 + 0x1.0000000000000eaaaaaaaaaaaa6dddddp-27, + 0x1.0000000000001p-26, + 0x1.0p1 + }, + { // Entry 484 + -0x1.0000000000000eaaaaaaaaaaaa6dddddp-27, + -0x1.0000000000001p-26, + 0x1.0p1 + }, + { // Entry 485 + 0x1.fffffffffffffd5555555555555bbbbbp-28, + 0x1.0000000000001p-26, + 0x1.0000000000001p1 + }, + { // Entry 486 + -0x1.fffffffffffffd5555555555555bbbbbp-28, + -0x1.0000000000001p-26, + 0x1.0000000000001p1 + }, + { // Entry 487 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 488 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 489 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 490 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1074, + -0.0 + }, + { // Entry 491 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 492 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 493 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0, + -0x1.0p-1074 + }, + { // Entry 494 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0, + -0.0 + }, + { // Entry 495 + -0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 496 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 497 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 498 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1074, + -0.0 + }, + { // Entry 499 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 500 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 501 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 502 + -0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 503 + 0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 504 + -0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 505 + 0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 506 + -0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 507 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 508 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 509 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 510 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 511 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 512 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 513 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 514 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 515 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 516 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 517 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 518 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 519 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 520 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 521 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 522 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 523 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 524 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 525 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 526 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 527 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 528 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp56 + }, + { // Entry 529 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp56 + }, + { // Entry 530 + 0x1.ffffffffffffefffffffffffffff5555p-57, + 0x1.fffffffffffffp0, + 0x1.0p57 + }, + { // Entry 531 + -0x1.ffffffffffffefffffffffffffff5555p-57, + -0x1.fffffffffffffp0, + 0x1.0p57 + }, + { // Entry 532 + 0x1.ffffffffffffd0000000000002ff5555p-57, + 0x1.fffffffffffffp0, + 0x1.0000000000001p57 + }, + { // Entry 533 + -0x1.ffffffffffffd0000000000002ff5555p-57, + -0x1.fffffffffffffp0, + 0x1.0000000000001p57 + }, + { // Entry 534 + 0x1.000000000000080000000000003faaaap-56, + 0x1.0p1, + 0x1.fffffffffffffp56 + }, + { // Entry 535 + -0x1.000000000000080000000000003faaaap-56, + -0x1.0p1, + 0x1.fffffffffffffp56 + }, + { // Entry 536 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.0p1, + 0x1.0p57 + }, + { // Entry 537 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.0p1, + 0x1.0p57 + }, + { // Entry 538 + 0x1.ffffffffffffe0000000000001ff5555p-57, + 0x1.0p1, + 0x1.0000000000001p57 + }, + { // Entry 539 + -0x1.ffffffffffffe0000000000001ff5555p-57, + -0x1.0p1, + 0x1.0000000000001p57 + }, + { // Entry 540 + 0x1.00000000000018000000000000bfaaaap-56, + 0x1.0000000000001p1, + 0x1.fffffffffffffp56 + }, + { // Entry 541 + -0x1.00000000000018000000000000bfaaaap-56, + -0x1.0000000000001p1, + 0x1.fffffffffffffp56 + }, + { // Entry 542 + 0x1.0000000000000fffffffffffffffaaaap-56, + 0x1.0000000000001p1, + 0x1.0p57 + }, + { // Entry 543 + -0x1.0000000000000fffffffffffffffaaaap-56, + -0x1.0000000000001p1, + 0x1.0p57 + }, + { // Entry 544 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.0000000000001p1, + 0x1.0000000000001p57 + }, + { // Entry 545 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.0000000000001p1, + 0x1.0000000000001p57 + }, + { // Entry 546 + -0x1.00000000000018000000000000bfaaaap-56, + -0x1.0000000000001p1, + 0x1.fffffffffffffp56 + }, + { // Entry 547 + 0x1.00000000000018000000000000bfaaaap-56, + 0x1.0000000000001p1, + 0x1.fffffffffffffp56 + }, + { // Entry 548 + -0x1.0000000000000fffffffffffffffaaaap-56, + -0x1.0000000000001p1, + 0x1.0p57 + }, + { // Entry 549 + 0x1.0000000000000fffffffffffffffaaaap-56, + 0x1.0000000000001p1, + 0x1.0p57 + }, + { // Entry 550 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.0000000000001p1, + 0x1.0000000000001p57 + }, + { // Entry 551 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.0000000000001p1, + 0x1.0000000000001p57 + }, + { // Entry 552 + -0x1.000000000000080000000000003faaaap-56, + -0x1.0p1, + 0x1.fffffffffffffp56 + }, + { // Entry 553 + 0x1.000000000000080000000000003faaaap-56, + 0x1.0p1, + 0x1.fffffffffffffp56 + }, + { // Entry 554 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.0p1, + 0x1.0p57 + }, + { // Entry 555 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.0p1, + 0x1.0p57 + }, + { // Entry 556 + -0x1.ffffffffffffe0000000000001ff5555p-57, + -0x1.0p1, + 0x1.0000000000001p57 + }, + { // Entry 557 + 0x1.ffffffffffffe0000000000001ff5555p-57, + 0x1.0p1, + 0x1.0000000000001p57 + }, + { // Entry 558 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp56 + }, + { // Entry 559 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp56 + }, + { // Entry 560 + -0x1.ffffffffffffefffffffffffffff5555p-57, + -0x1.fffffffffffffp0, + 0x1.0p57 + }, + { // Entry 561 + 0x1.ffffffffffffefffffffffffffff5555p-57, + 0x1.fffffffffffffp0, + 0x1.0p57 + }, + { // Entry 562 + -0x1.ffffffffffffd0000000000002ff5555p-57, + -0x1.fffffffffffffp0, + 0x1.0000000000001p57 + }, + { // Entry 563 + 0x1.ffffffffffffd0000000000002ff5555p-57, + 0x1.fffffffffffffp0, + 0x1.0000000000001p57 + }, + { // Entry 564 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.fffffffffffffp1, + 0x1.fffffffffffffp31 + }, + { // Entry 565 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.fffffffffffffp1, + 0x1.fffffffffffffp31 + }, + { // Entry 566 + 0x1.ffffffffffffeff555555555555655bbp-31, + 0x1.fffffffffffffp1, + 0x1.0p32 + }, + { // Entry 567 + -0x1.ffffffffffffeff555555555555655bbp-31, + -0x1.fffffffffffffp1, + 0x1.0p32 + }, + { // Entry 568 + 0x1.ffffffffffffcff555555555585855bbp-31, + 0x1.fffffffffffffp1, + 0x1.0000000000001p32 + }, + { // Entry 569 + -0x1.ffffffffffffcff555555555585855bbp-31, + -0x1.fffffffffffffp1, + 0x1.0000000000001p32 + }, + { // Entry 570 + 0x1.00000000000007faaaaaaaaaaaea2addp-30, + 0x1.0p2, + 0x1.fffffffffffffp31 + }, + { // Entry 571 + -0x1.00000000000007faaaaaaaaaaaea2addp-30, + -0x1.0p2, + 0x1.fffffffffffffp31 + }, + { // Entry 572 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.0p2, + 0x1.0p32 + }, + { // Entry 573 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.0p2, + 0x1.0p32 + }, + { // Entry 574 + 0x1.ffffffffffffdff555555555575755bbp-31, + 0x1.0p2, + 0x1.0000000000001p32 + }, + { // Entry 575 + -0x1.ffffffffffffdff555555555575755bbp-31, + -0x1.0p2, + 0x1.0000000000001p32 + }, + { // Entry 576 + 0x1.00000000000017faaaaaaaaaab692addp-30, + 0x1.0000000000001p2, + 0x1.fffffffffffffp31 + }, + { // Entry 577 + -0x1.00000000000017faaaaaaaaaab692addp-30, + -0x1.0000000000001p2, + 0x1.fffffffffffffp31 + }, + { // Entry 578 + 0x1.0000000000000ffaaaaaaaaaaaa9aaddp-30, + 0x1.0000000000001p2, + 0x1.0p32 + }, + { // Entry 579 + -0x1.0000000000000ffaaaaaaaaaaaa9aaddp-30, + -0x1.0000000000001p2, + 0x1.0p32 + }, + { // Entry 580 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.0000000000001p2, + 0x1.0000000000001p32 + }, + { // Entry 581 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.0000000000001p2, + 0x1.0000000000001p32 + }, + { // Entry 582 + -0x1.00000000000017faaaaaaaaaab692addp-30, + -0x1.0000000000001p-2, + 0x1.fffffffffffffp27 + }, + { // Entry 583 + 0x1.00000000000017faaaaaaaaaab692addp-30, + 0x1.0000000000001p-2, + 0x1.fffffffffffffp27 + }, + { // Entry 584 + -0x1.0000000000000ffaaaaaaaaaaaa9aaddp-30, + -0x1.0000000000001p-2, + 0x1.0p28 + }, + { // Entry 585 + 0x1.0000000000000ffaaaaaaaaaaaa9aaddp-30, + 0x1.0000000000001p-2, + 0x1.0p28 + }, + { // Entry 586 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.0000000000001p-2, + 0x1.0000000000001p28 + }, + { // Entry 587 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.0000000000001p-2, + 0x1.0000000000001p28 + }, + { // Entry 588 + -0x1.00000000000007faaaaaaaaaaaea2addp-30, + -0x1.0p-2, + 0x1.fffffffffffffp27 + }, + { // Entry 589 + 0x1.00000000000007faaaaaaaaaaaea2addp-30, + 0x1.0p-2, + 0x1.fffffffffffffp27 + }, + { // Entry 590 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.0p-2, + 0x1.0p28 + }, + { // Entry 591 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.0p-2, + 0x1.0p28 + }, + { // Entry 592 + -0x1.ffffffffffffdff555555555575755bbp-31, + -0x1.0p-2, + 0x1.0000000000001p28 + }, + { // Entry 593 + 0x1.ffffffffffffdff555555555575755bbp-31, + 0x1.0p-2, + 0x1.0000000000001p28 + }, + { // Entry 594 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.fffffffffffffp-3, + 0x1.fffffffffffffp27 + }, + { // Entry 595 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.fffffffffffffp-3, + 0x1.fffffffffffffp27 + }, + { // Entry 596 + -0x1.ffffffffffffeff555555555555655bbp-31, + -0x1.fffffffffffffp-3, + 0x1.0p28 + }, + { // Entry 597 + 0x1.ffffffffffffeff555555555555655bbp-31, + 0x1.fffffffffffffp-3, + 0x1.0p28 + }, + { // Entry 598 + -0x1.ffffffffffffcff555555555585855bbp-31, + -0x1.fffffffffffffp-3, + 0x1.0000000000001p28 + }, + { // Entry 599 + 0x1.ffffffffffffcff555555555585855bbp-31, + 0x1.fffffffffffffp-3, + 0x1.0000000000001p28 + }, + { // Entry 600 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.fffffffffffffp2, + 0x1.fffffffffffffp2 + }, + { // Entry 601 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.fffffffffffffp2, + 0x1.fffffffffffffp2 + }, + { // Entry 602 + 0x1.921fb54442d17c69898cc517019839a2p-1, + 0x1.fffffffffffffp2, + 0x1.0p3 + }, + { // Entry 603 + -0x1.921fb54442d17c69898cc517019839a2p-1, + -0x1.fffffffffffffp2, + 0x1.0p3 + }, + { // Entry 604 + 0x1.921fb54442d16c69898cc517021839a2p-1, + 0x1.fffffffffffffp2, + 0x1.0000000000001p3 + }, + { // Entry 605 + -0x1.921fb54442d16c69898cc517021839a2p-1, + -0x1.fffffffffffffp2, + 0x1.0000000000001p3 + }, + { // Entry 606 + 0x1.921fb54442d18c69898cc51701d839a2p-1, + 0x1.0p3, + 0x1.fffffffffffffp2 + }, + { // Entry 607 + -0x1.921fb54442d18c69898cc51701d839a2p-1, + -0x1.0p3, + 0x1.fffffffffffffp2 + }, + { // Entry 608 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p3, + 0x1.0p3 + }, + { // Entry 609 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p3, + 0x1.0p3 + }, + { // Entry 610 + 0x1.921fb54442d17469898cc517023839a2p-1, + 0x1.0p3, + 0x1.0000000000001p3 + }, + { // Entry 611 + -0x1.921fb54442d17469898cc517023839a2p-1, + -0x1.0p3, + 0x1.0000000000001p3 + }, + { // Entry 612 + 0x1.921fb54442d19c69898cc517015839a2p-1, + 0x1.0000000000001p3, + 0x1.fffffffffffffp2 + }, + { // Entry 613 + -0x1.921fb54442d19c69898cc517015839a2p-1, + -0x1.0000000000001p3, + 0x1.fffffffffffffp2 + }, + { // Entry 614 + 0x1.921fb54442d19469898cc517013839a2p-1, + 0x1.0000000000001p3, + 0x1.0p3 + }, + { // Entry 615 + -0x1.921fb54442d19469898cc517013839a2p-1, + -0x1.0000000000001p3, + 0x1.0p3 + }, + { // Entry 616 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0000000000001p3, + 0x1.0000000000001p3 + }, + { // Entry 617 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0000000000001p3, + 0x1.0000000000001p3 + }, + { // Entry 618 + -0x1.dac670561bb51cf1462ef23fdf5661b4p-2, + -0x1.0000000000001p3, + 0x1.fffffffffffffp3 + }, + { // Entry 619 + 0x1.dac670561bb51cf1462ef23fdf5661b4p-2, + 0x1.0000000000001p3, + 0x1.fffffffffffffp3 + }, + { // Entry 620 + -0x1.dac670561bb510247962257311bcc81bp-2, + -0x1.0000000000001p3, + 0x1.0p4 + }, + { // Entry 621 + 0x1.dac670561bb510247962257311bcc81bp-2, + 0x1.0000000000001p3, + 0x1.0p4 + }, + { // Entry 622 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.0000000000001p3, + 0x1.0000000000001p4 + }, + { // Entry 623 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.0000000000001p3, + 0x1.0000000000001p4 + }, + { // Entry 624 + -0x1.dac670561bb50357ac9558a64593d258p-2, + -0x1.0p3, + 0x1.fffffffffffffp3 + }, + { // Entry 625 + 0x1.dac670561bb50357ac9558a64593d258p-2, + 0x1.0p3, + 0x1.fffffffffffffp3 + }, + { // Entry 626 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.0p3, + 0x1.0p4 + }, + { // Entry 627 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.0p3, + 0x1.0p4 + }, + { // Entry 628 + -0x1.dac670561bb4dcf1462ef23fe0232e81p-2, + -0x1.0p3, + 0x1.0000000000001p4 + }, + { // Entry 629 + 0x1.dac670561bb4dcf1462ef23fe0232e81p-2, + 0x1.0p3, + 0x1.0000000000001p4 + }, + { // Entry 630 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.fffffffffffffp2, + 0x1.fffffffffffffp3 + }, + { // Entry 631 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.fffffffffffffp2, + 0x1.fffffffffffffp3 + }, + { // Entry 632 + -0x1.dac670561bb4e9be12fbbf0cab93d258p-2, + -0x1.fffffffffffffp2, + 0x1.0p4 + }, + { // Entry 633 + 0x1.dac670561bb4e9be12fbbf0cab93d258p-2, + 0x1.fffffffffffffp2, + 0x1.0p4 + }, + { // Entry 634 + -0x1.dac670561bb4d0247962257313bcc81bp-2, + -0x1.fffffffffffffp2, + 0x1.0000000000001p4 + }, + { // Entry 635 + 0x1.dac670561bb4d0247962257313bcc81bp-2, + 0x1.fffffffffffffp2, + 0x1.0000000000001p4 + }, + { // Entry 636 + 0x1.72c43f4b1650a9d9aea6a40b156d98c0p1, + 0x1.fffffffffffffp2, + -0x1.0000000000001p5 + }, + { // Entry 637 + -0x1.72c43f4b1650a9d9aea6a40b156d98c0p1, + -0x1.fffffffffffffp2, + -0x1.0000000000001p5 + }, + { // Entry 638 + 0x1.72c43f4b1650a7f7ccc4c22933b558f8p1, + 0x1.fffffffffffffp2, + -0x1.0p5 + }, + { // Entry 639 + -0x1.72c43f4b1650a7f7ccc4c22933b558f8p1, + -0x1.fffffffffffffp2, + -0x1.0p5 + }, + { // Entry 640 + 0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + 0x1.fffffffffffffp2, + -0x1.fffffffffffffp4 + }, + { // Entry 641 + -0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + -0x1.fffffffffffffp2, + -0x1.fffffffffffffp4 + }, + { // Entry 642 + 0x1.72c43f4b1650a8e8bdb5b31a24897ff2p1, + 0x1.0p3, + -0x1.0000000000001p5 + }, + { // Entry 643 + -0x1.72c43f4b1650a8e8bdb5b31a24897ff2p1, + -0x1.0p3, + -0x1.0000000000001p5 + }, + { // Entry 644 + 0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + 0x1.0p3, + -0x1.0p5 + }, + { // Entry 645 + -0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + -0x1.0p3, + -0x1.0p5 + }, + { // Entry 646 + 0x1.72c43f4b1650a615eae2e04751cbef8fp1, + 0x1.0p3, + -0x1.fffffffffffffp4 + }, + { // Entry 647 + -0x1.72c43f4b1650a615eae2e04751cbef8fp1, + -0x1.0p3, + -0x1.fffffffffffffp4 + }, + { // Entry 648 + 0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + 0x1.0000000000001p3, + -0x1.0000000000001p5 + }, + { // Entry 649 + -0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + -0x1.0000000000001p3, + -0x1.0000000000001p5 + }, + { // Entry 650 + 0x1.72c43f4b1650a524f9f1ef5660e3da4dp1, + 0x1.0000000000001p3, + -0x1.0p5 + }, + { // Entry 651 + -0x1.72c43f4b1650a524f9f1ef5660e3da4dp1, + -0x1.0000000000001p3, + -0x1.0p5 + }, + { // Entry 652 + 0x1.72c43f4b1650a4340900fe656fde89b1p1, + 0x1.0000000000001p3, + -0x1.fffffffffffffp4 + }, + { // Entry 653 + -0x1.72c43f4b1650a4340900fe656fde89b1p1, + -0x1.0000000000001p3, + -0x1.fffffffffffffp4 + }, + { // Entry 654 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.fffffffffffffp2, + 0x1.fffffffffffffp5 + }, + { // Entry 655 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.fffffffffffffp2, + 0x1.fffffffffffffp5 + }, + { // Entry 656 + 0x1.fd5ba9aac2f6cca4951f70426d4e3181p-4, + 0x1.fffffffffffffp2, + 0x1.0p6 + }, + { // Entry 657 + -0x1.fd5ba9aac2f6cca4951f70426d4e3181p-4, + -0x1.fffffffffffffp2, + 0x1.0p6 + }, + { // Entry 658 + 0x1.fd5ba9aac2f6ad229cffee4a50b0e5b4p-4, + 0x1.fffffffffffffp2, + 0x1.0000000000001p6 + }, + { // Entry 659 + -0x1.fd5ba9aac2f6ad229cffee4a50b0e5b4p-4, + -0x1.fffffffffffffp2, + 0x1.0000000000001p6 + }, + { // Entry 660 + 0x1.fd5ba9aac2f6ec268d3ef23a8d4e3181p-4, + 0x1.0p3, + 0x1.fffffffffffffp5 + }, + { // Entry 661 + -0x1.fd5ba9aac2f6ec268d3ef23a8d4e3181p-4, + -0x1.0p3, + 0x1.fffffffffffffp5 + }, + { // Entry 662 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.0p3, + 0x1.0p6 + }, + { // Entry 663 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.0p3, + 0x1.0p6 + }, + { // Entry 664 + 0x1.fd5ba9aac2f6bce3990faf465f7f83d9p-4, + 0x1.0p3, + 0x1.0000000000001p6 + }, + { // Entry 665 + -0x1.fd5ba9aac2f6bce3990faf465f7f83d9p-4, + -0x1.0p3, + 0x1.0000000000001p6 + }, + { // Entry 666 + 0x1.fd5ba9aac2f70ba8855e7432adbcb671p-4, + 0x1.0000000000001p3, + 0x1.fffffffffffffp5 + }, + { // Entry 667 + -0x1.fd5ba9aac2f70ba8855e7432adbcb671p-4, + -0x1.0000000000001p3, + 0x1.fffffffffffffp5 + }, + { // Entry 668 + 0x1.fd5ba9aac2f6fbe7894eb3369c8b5496p-4, + 0x1.0000000000001p3, + 0x1.0p6 + }, + { // Entry 669 + -0x1.fd5ba9aac2f6fbe7894eb3369c8b5496p-4, + -0x1.0000000000001p3, + 0x1.0p6 + }, + { // Entry 670 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.0000000000001p3, + 0x1.0000000000001p6 + }, + { // Entry 671 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.0000000000001p3, + 0x1.0000000000001p6 + }, + { // Entry 672 + -0x1.ff55bb72cfdecc3dc61f55884da654e3p-5, + -0x1.0000000000001p3, + 0x1.fffffffffffffp6 + }, + { // Entry 673 + 0x1.ff55bb72cfdecc3dc61f55884da654e3p-5, + 0x1.0000000000001p3, + 0x1.fffffffffffffp6 + }, + { // Entry 674 + -0x1.ff55bb72cfdebc4db62f45983c3a3e7cp-5, + -0x1.0000000000001p3, + 0x1.0p7 + }, + { // Entry 675 + 0x1.ff55bb72cfdebc4db62f45983c3a3e7cp-5, + 0x1.0000000000001p3, + 0x1.0p7 + }, + { // Entry 676 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.0000000000001p3, + 0x1.0000000000001p7 + }, + { // Entry 677 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.0000000000001p3, + 0x1.0000000000001p7 + }, + { // Entry 678 + -0x1.ff55bb72cfdeac5da63f35a82ccb2c10p-5, + -0x1.0p3, + 0x1.fffffffffffffp6 + }, + { // Entry 679 + 0x1.ff55bb72cfdeac5da63f35a82ccb2c10p-5, + 0x1.0p3, + 0x1.fffffffffffffp6 + }, + { // Entry 680 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.0p3, + 0x1.0p7 + }, + { // Entry 681 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.0p3, + 0x1.0p7 + }, + { // Entry 682 + -0x1.ff55bb72cfde7c8d766f05d7fe7800bap-5, + -0x1.0p3, + 0x1.0000000000001p7 + }, + { // Entry 683 + 0x1.ff55bb72cfde7c8d766f05d7fe7800bap-5, + 0x1.0p3, + 0x1.0000000000001p7 + }, + { // Entry 684 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.fffffffffffffp2, + 0x1.fffffffffffffp6 + }, + { // Entry 685 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.fffffffffffffp2, + 0x1.fffffffffffffp6 + }, + { // Entry 686 + -0x1.ff55bb72cfde8c7d865f15c80c6b8bb0p-5, + -0x1.fffffffffffffp2, + 0x1.0p7 + }, + { // Entry 687 + 0x1.ff55bb72cfde8c7d865f15c80c6b8bb0p-5, + 0x1.fffffffffffffp2, + 0x1.0p7 + }, + { // Entry 688 + -0x1.ff55bb72cfde6c9d667ef5e7ef8476c1p-5, + -0x1.fffffffffffffp2, + 0x1.0000000000001p7 + }, + { // Entry 689 + 0x1.ff55bb72cfde6c9d667ef5e7ef8476c1p-5, + 0x1.fffffffffffffp2, + 0x1.0000000000001p7 + }, + { // Entry 690 + 0x1.0468a8ace4df65d2ed8c40d37cc6e907p1, + 0x1.fffffffffffffp2, + -0x1.0000000000001p2 + }, + { // Entry 691 + -0x1.0468a8ace4df65d2ed8c40d37cc6e907p1, + -0x1.fffffffffffffp2, + -0x1.0000000000001p2 + }, + { // Entry 692 + 0x1.0468a8ace4df629fba590da0498e971cp1, + 0x1.fffffffffffffp2, + -0x1.0p2 + }, + { // Entry 693 + -0x1.0468a8ace4df629fba590da0498e971cp1, + -0x1.fffffffffffffp2, + -0x1.0p2 + }, + { // Entry 694 + 0x1.0468a8ace4df610620bf7406afeac012p1, + 0x1.fffffffffffffp2, + -0x1.fffffffffffffp1 + }, + { // Entry 695 + -0x1.0468a8ace4df610620bf7406afeac012p1, + -0x1.fffffffffffffp2, + -0x1.fffffffffffffp1 + }, + { // Entry 696 + 0x1.0468a8ace4df643953f2a739e313b5d4p1, + 0x1.0p3, + -0x1.0000000000001p2 + }, + { // Entry 697 + -0x1.0468a8ace4df643953f2a739e313b5d4p1, + -0x1.0p3, + -0x1.0000000000001p2 + }, + { // Entry 698 + 0x1.0468a8ace4df610620bf7406afeac012p1, + 0x1.0p3, + -0x1.0p2 + }, + { // Entry 699 + -0x1.0468a8ace4df610620bf7406afeac012p1, + -0x1.0p3, + -0x1.0p2 + }, + { // Entry 700 + 0x1.0468a8ace4df5f6c8725da6d164e971cp1, + 0x1.0p3, + -0x1.fffffffffffffp1 + }, + { // Entry 701 + -0x1.0468a8ace4df5f6c8725da6d164e971cp1, + -0x1.0p3, + -0x1.fffffffffffffp1 + }, + { // Entry 702 + 0x1.0468a8ace4df610620bf7406afeac012p1, + 0x1.0000000000001p3, + -0x1.0000000000001p2 + }, + { // Entry 703 + -0x1.0468a8ace4df610620bf7406afeac012p1, + -0x1.0000000000001p3, + -0x1.0000000000001p2 + }, + { // Entry 704 + 0x1.0468a8ace4df5dd2ed8c40d37ce082a1p1, + 0x1.0000000000001p3, + -0x1.0p2 + }, + { // Entry 705 + -0x1.0468a8ace4df5dd2ed8c40d37ce082a1p1, + -0x1.0000000000001p3, + -0x1.0p2 + }, + { // Entry 706 + 0x1.0468a8ace4df5c3953f2a739e353b5d4p1, + 0x1.0000000000001p3, + -0x1.fffffffffffffp1 + }, + { // Entry 707 + -0x1.0468a8ace4df5c3953f2a739e353b5d4p1, + -0x1.0000000000001p3, + -0x1.fffffffffffffp1 + }, + { // Entry 708 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.fffffffffffffp-103, + 0x1.fffffffffffffp-3 + }, + { // Entry 709 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.fffffffffffffp-103, + 0x1.fffffffffffffp-3 + }, + { // Entry 710 + 0x1.ffffffffffffefffffffffffffffffffp-101, + 0x1.fffffffffffffp-103, + 0x1.0p-2 + }, + { // Entry 711 + -0x1.ffffffffffffefffffffffffffffffffp-101, + -0x1.fffffffffffffp-103, + 0x1.0p-2 + }, + { // Entry 712 + 0x1.ffffffffffffd0000000000002ffffffp-101, + 0x1.fffffffffffffp-103, + 0x1.0000000000001p-2 + }, + { // Entry 713 + -0x1.ffffffffffffd0000000000002ffffffp-101, + -0x1.fffffffffffffp-103, + 0x1.0000000000001p-2 + }, + { // Entry 714 + 0x1.0000000000000800000000000040p-100, + 0x1.0p-102, + 0x1.fffffffffffffp-3 + }, + { // Entry 715 + -0x1.0000000000000800000000000040p-100, + -0x1.0p-102, + 0x1.fffffffffffffp-3 + }, + { // Entry 716 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.0p-102, + 0x1.0p-2 + }, + { // Entry 717 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.0p-102, + 0x1.0p-2 + }, + { // Entry 718 + 0x1.ffffffffffffe0000000000001ffffffp-101, + 0x1.0p-102, + 0x1.0000000000001p-2 + }, + { // Entry 719 + -0x1.ffffffffffffe0000000000001ffffffp-101, + -0x1.0p-102, + 0x1.0000000000001p-2 + }, + { // Entry 720 + 0x1.00000000000018000000000000c0p-100, + 0x1.0000000000001p-102, + 0x1.fffffffffffffp-3 + }, + { // Entry 721 + -0x1.00000000000018000000000000c0p-100, + -0x1.0000000000001p-102, + 0x1.fffffffffffffp-3 + }, + { // Entry 722 + 0x1.0000000000000fffffffffffffffffffp-100, + 0x1.0000000000001p-102, + 0x1.0p-2 + }, + { // Entry 723 + -0x1.0000000000000fffffffffffffffffffp-100, + -0x1.0000000000001p-102, + 0x1.0p-2 + }, + { // Entry 724 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.0000000000001p-102, + 0x1.0000000000001p-2 + }, + { // Entry 725 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.0000000000001p-102, + 0x1.0000000000001p-2 + }, + { // Entry 726 + 0x1.ffffffffffffffffffffffffffffffffp-201, + 0x1.fffffffffffffp-203, + 0x1.fffffffffffffp-3 + }, + { // Entry 727 + -0x1.ffffffffffffffffffffffffffffffffp-201, + -0x1.fffffffffffffp-203, + 0x1.fffffffffffffp-3 + }, + { // Entry 728 + 0x1.ffffffffffffefffffffffffffffffffp-201, + 0x1.fffffffffffffp-203, + 0x1.0p-2 + }, + { // Entry 729 + -0x1.ffffffffffffefffffffffffffffffffp-201, + -0x1.fffffffffffffp-203, + 0x1.0p-2 + }, + { // Entry 730 + 0x1.ffffffffffffd0000000000002ffffffp-201, + 0x1.fffffffffffffp-203, + 0x1.0000000000001p-2 + }, + { // Entry 731 + -0x1.ffffffffffffd0000000000002ffffffp-201, + -0x1.fffffffffffffp-203, + 0x1.0000000000001p-2 + }, + { // Entry 732 + 0x1.0000000000000800000000000040p-200, + 0x1.0p-202, + 0x1.fffffffffffffp-3 + }, + { // Entry 733 + -0x1.0000000000000800000000000040p-200, + -0x1.0p-202, + 0x1.fffffffffffffp-3 + }, + { // Entry 734 + 0x1.ffffffffffffffffffffffffffffffffp-201, + 0x1.0p-202, + 0x1.0p-2 + }, + { // Entry 735 + -0x1.ffffffffffffffffffffffffffffffffp-201, + -0x1.0p-202, + 0x1.0p-2 + }, + { // Entry 736 + 0x1.ffffffffffffe0000000000001ffffffp-201, + 0x1.0p-202, + 0x1.0000000000001p-2 + }, + { // Entry 737 + -0x1.ffffffffffffe0000000000001ffffffp-201, + -0x1.0p-202, + 0x1.0000000000001p-2 + }, + { // Entry 738 + 0x1.00000000000018000000000000c0p-200, + 0x1.0000000000001p-202, + 0x1.fffffffffffffp-3 + }, + { // Entry 739 + -0x1.00000000000018000000000000c0p-200, + -0x1.0000000000001p-202, + 0x1.fffffffffffffp-3 + }, + { // Entry 740 + 0x1.0000000000000fffffffffffffffffffp-200, + 0x1.0000000000001p-202, + 0x1.0p-2 + }, + { // Entry 741 + -0x1.0000000000000fffffffffffffffffffp-200, + -0x1.0000000000001p-202, + 0x1.0p-2 + }, + { // Entry 742 + 0x1.ffffffffffffffffffffffffffffffffp-201, + 0x1.0000000000001p-202, + 0x1.0000000000001p-2 + }, + { // Entry 743 + -0x1.ffffffffffffffffffffffffffffffffp-201, + -0x1.0000000000001p-202, + 0x1.0000000000001p-2 + }, + { // Entry 744 + 0x1.ffffffffffffffffffffffffffffffffp-1001, + 0x1.fffffffffffffp-1003, + 0x1.fffffffffffffp-3 + }, + { // Entry 745 + -0x1.ffffffffffffffffffffffffffffffffp-1001, + -0x1.fffffffffffffp-1003, + 0x1.fffffffffffffp-3 + }, + { // Entry 746 + 0x1.ffffffffffffefffffffffffffffffffp-1001, + 0x1.fffffffffffffp-1003, + 0x1.0p-2 + }, + { // Entry 747 + -0x1.ffffffffffffefffffffffffffffffffp-1001, + -0x1.fffffffffffffp-1003, + 0x1.0p-2 + }, + { // Entry 748 + 0x1.ffffffffffffd0000000000002ffffffp-1001, + 0x1.fffffffffffffp-1003, + 0x1.0000000000001p-2 + }, + { // Entry 749 + -0x1.ffffffffffffd0000000000002ffffffp-1001, + -0x1.fffffffffffffp-1003, + 0x1.0000000000001p-2 + }, + { // Entry 750 + 0x1.0000000000000800000000000040p-1000, + 0x1.0p-1002, + 0x1.fffffffffffffp-3 + }, + { // Entry 751 + -0x1.0000000000000800000000000040p-1000, + -0x1.0p-1002, + 0x1.fffffffffffffp-3 + }, + { // Entry 752 + 0x1.ffffffffffffffffffffffffffffffffp-1001, + 0x1.0p-1002, + 0x1.0p-2 + }, + { // Entry 753 + -0x1.ffffffffffffffffffffffffffffffffp-1001, + -0x1.0p-1002, + 0x1.0p-2 + }, + { // Entry 754 + 0x1.ffffffffffffe0000000000001ffffffp-1001, + 0x1.0p-1002, + 0x1.0000000000001p-2 + }, + { // Entry 755 + -0x1.ffffffffffffe0000000000001ffffffp-1001, + -0x1.0p-1002, + 0x1.0000000000001p-2 + }, + { // Entry 756 + 0x1.00000000000018000000000000c0p-1000, + 0x1.0000000000001p-1002, + 0x1.fffffffffffffp-3 + }, + { // Entry 757 + -0x1.00000000000018000000000000c0p-1000, + -0x1.0000000000001p-1002, + 0x1.fffffffffffffp-3 + }, + { // Entry 758 + 0x1.0000000000000fffffffffffffffffffp-1000, + 0x1.0000000000001p-1002, + 0x1.0p-2 + }, + { // Entry 759 + -0x1.0000000000000fffffffffffffffffffp-1000, + -0x1.0000000000001p-1002, + 0x1.0p-2 + }, + { // Entry 760 + 0x1.ffffffffffffffffffffffffffffffffp-1001, + 0x1.0000000000001p-1002, + 0x1.0000000000001p-2 + }, + { // Entry 761 + -0x1.ffffffffffffffffffffffffffffffffp-1001, + -0x1.0000000000001p-1002, + 0x1.0000000000001p-2 + }, + { // Entry 762 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.ffffffffffffep2, + 0x1.ffffffffffffep102 + }, + { // Entry 763 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.ffffffffffffep2, + 0x1.ffffffffffffep102 + }, + { // Entry 764 + 0x1.ffffffffffffefffffffffffff7fffffp-101, + 0x1.ffffffffffffep2, + 0x1.fffffffffffffp102 + }, + { // Entry 765 + -0x1.ffffffffffffefffffffffffff7fffffp-101, + -0x1.ffffffffffffep2, + 0x1.fffffffffffffp102 + }, + { // Entry 766 + 0x1.ffffffffffffdfffffffffffffffffffp-101, + 0x1.ffffffffffffep2, + 0x1.0p103 + }, + { // Entry 767 + -0x1.ffffffffffffdfffffffffffffffffffp-101, + -0x1.ffffffffffffep2, + 0x1.0p103 + }, + { // Entry 768 + 0x1.ffffffffffffc0000000000003ffffffp-101, + 0x1.ffffffffffffep2, + 0x1.0000000000001p103 + }, + { // Entry 769 + -0x1.ffffffffffffc0000000000003ffffffp-101, + -0x1.ffffffffffffep2, + 0x1.0000000000001p103 + }, + { // Entry 770 + 0x1.ffffffffffffa000000000000bffffffp-101, + 0x1.ffffffffffffep2, + 0x1.0000000000002p103 + }, + { // Entry 771 + -0x1.ffffffffffffa000000000000bffffffp-101, + -0x1.ffffffffffffep2, + 0x1.0000000000002p103 + }, + { // Entry 772 + 0x1.0000000000000800000000000080p-100, + 0x1.fffffffffffffp2, + 0x1.ffffffffffffep102 + }, + { // Entry 773 + -0x1.0000000000000800000000000080p-100, + -0x1.fffffffffffffp2, + 0x1.ffffffffffffep102 + }, + { // Entry 774 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.fffffffffffffp2, + 0x1.fffffffffffffp102 + }, + { // Entry 775 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.fffffffffffffp2, + 0x1.fffffffffffffp102 + }, + { // Entry 776 + 0x1.ffffffffffffefffffffffffffffffffp-101, + 0x1.fffffffffffffp2, + 0x1.0p103 + }, + { // Entry 777 + -0x1.ffffffffffffefffffffffffffffffffp-101, + -0x1.fffffffffffffp2, + 0x1.0p103 + }, + { // Entry 778 + 0x1.ffffffffffffd0000000000002ffffffp-101, + 0x1.fffffffffffffp2, + 0x1.0000000000001p103 + }, + { // Entry 779 + -0x1.ffffffffffffd0000000000002ffffffp-101, + -0x1.fffffffffffffp2, + 0x1.0000000000001p103 + }, + { // Entry 780 + 0x1.ffffffffffffb0000000000009ffffffp-101, + 0x1.fffffffffffffp2, + 0x1.0000000000002p103 + }, + { // Entry 781 + -0x1.ffffffffffffb0000000000009ffffffp-101, + -0x1.fffffffffffffp2, + 0x1.0000000000002p103 + }, + { // Entry 782 + 0x1.00000000000010000000000001p-100, + 0x1.0p3, + 0x1.ffffffffffffep102 + }, + { // Entry 783 + -0x1.00000000000010000000000001p-100, + -0x1.0p3, + 0x1.ffffffffffffep102 + }, + { // Entry 784 + 0x1.0000000000000800000000000040p-100, + 0x1.0p3, + 0x1.fffffffffffffp102 + }, + { // Entry 785 + -0x1.0000000000000800000000000040p-100, + -0x1.0p3, + 0x1.fffffffffffffp102 + }, + { // Entry 786 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.0p3, + 0x1.0p103 + }, + { // Entry 787 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.0p3, + 0x1.0p103 + }, + { // Entry 788 + 0x1.ffffffffffffe0000000000001ffffffp-101, + 0x1.0p3, + 0x1.0000000000001p103 + }, + { // Entry 789 + -0x1.ffffffffffffe0000000000001ffffffp-101, + -0x1.0p3, + 0x1.0000000000001p103 + }, + { // Entry 790 + 0x1.ffffffffffffc0000000000007ffffffp-101, + 0x1.0p3, + 0x1.0000000000002p103 + }, + { // Entry 791 + -0x1.ffffffffffffc0000000000007ffffffp-101, + -0x1.0p3, + 0x1.0000000000002p103 + }, + { // Entry 792 + 0x1.00000000000020000000000002p-100, + 0x1.0000000000001p3, + 0x1.ffffffffffffep102 + }, + { // Entry 793 + -0x1.00000000000020000000000002p-100, + -0x1.0000000000001p3, + 0x1.ffffffffffffep102 + }, + { // Entry 794 + 0x1.00000000000018000000000000c0p-100, + 0x1.0000000000001p3, + 0x1.fffffffffffffp102 + }, + { // Entry 795 + -0x1.00000000000018000000000000c0p-100, + -0x1.0000000000001p3, + 0x1.fffffffffffffp102 + }, + { // Entry 796 + 0x1.0000000000000fffffffffffffffffffp-100, + 0x1.0000000000001p3, + 0x1.0p103 + }, + { // Entry 797 + -0x1.0000000000000fffffffffffffffffffp-100, + -0x1.0000000000001p3, + 0x1.0p103 + }, + { // Entry 798 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.0000000000001p3, + 0x1.0000000000001p103 + }, + { // Entry 799 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.0000000000001p3, + 0x1.0000000000001p103 + }, + { // Entry 800 + 0x1.ffffffffffffe0000000000003ffffffp-101, + 0x1.0000000000001p3, + 0x1.0000000000002p103 + }, + { // Entry 801 + -0x1.ffffffffffffe0000000000003ffffffp-101, + -0x1.0000000000001p3, + 0x1.0000000000002p103 + }, + { // Entry 802 + 0x1.00000000000030000000000003p-100, + 0x1.0000000000002p3, + 0x1.ffffffffffffep102 + }, + { // Entry 803 + -0x1.00000000000030000000000003p-100, + -0x1.0000000000002p3, + 0x1.ffffffffffffep102 + }, + { // Entry 804 + 0x1.0000000000002800000000000140p-100, + 0x1.0000000000002p3, + 0x1.fffffffffffffp102 + }, + { // Entry 805 + -0x1.0000000000002800000000000140p-100, + -0x1.0000000000002p3, + 0x1.fffffffffffffp102 + }, + { // Entry 806 + 0x1.0000000000001fffffffffffffffffffp-100, + 0x1.0000000000002p3, + 0x1.0p103 + }, + { // Entry 807 + -0x1.0000000000001fffffffffffffffffffp-100, + -0x1.0000000000002p3, + 0x1.0p103 + }, + { // Entry 808 + 0x1.0000000000000fffffffffffffp-100, + 0x1.0000000000002p3, + 0x1.0000000000001p103 + }, + { // Entry 809 + -0x1.0000000000000fffffffffffffp-100, + -0x1.0000000000002p3, + 0x1.0000000000001p103 + }, + { // Entry 810 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.0000000000002p3, + 0x1.0000000000002p103 + }, + { // Entry 811 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.0000000000002p3, + 0x1.0000000000002p103 + }, + { // Entry 812 + 0x1.ffffffffffffffffffffffffffffffffp-1024, + 0x1.ffffffffffffep0, + 0x1.ffffffffffffep1023 + }, + { // Entry 813 + -0x1.ffffffffffffffffffffffffffffffffp-1024, + -0x1.ffffffffffffep0, + 0x1.ffffffffffffep1023 + }, + { // Entry 814 + 0x1.ffffffffffffefffffffffffff7fffffp-1024, + 0x1.ffffffffffffep0, + 0x1.fffffffffffffp1023 + }, + { // Entry 815 + -0x1.ffffffffffffefffffffffffff7fffffp-1024, + -0x1.ffffffffffffep0, + 0x1.fffffffffffffp1023 + }, + { // Entry 816 + 0x1.ffffffffffffefffffffffffff7fffffp-1024, + 0x1.ffffffffffffep0, + 0x1.fffffffffffffp1023 + }, + { // Entry 817 + -0x1.ffffffffffffefffffffffffff7fffffp-1024, + -0x1.ffffffffffffep0, + 0x1.fffffffffffffp1023 + }, + { // Entry 818 + 0x1.ffffffffffffefffffffffffff7fffffp-1024, + 0x1.ffffffffffffep0, + 0x1.fffffffffffffp1023 + }, + { // Entry 819 + -0x1.ffffffffffffefffffffffffff7fffffp-1024, + -0x1.ffffffffffffep0, + 0x1.fffffffffffffp1023 + }, + { // Entry 820 + 0x1.ffffffffffffefffffffffffff7fffffp-1024, + 0x1.ffffffffffffep0, + 0x1.fffffffffffffp1023 + }, + { // Entry 821 + -0x1.ffffffffffffefffffffffffff7fffffp-1024, + -0x1.ffffffffffffep0, + 0x1.fffffffffffffp1023 + }, + { // Entry 822 + 0x1.0000000000000800000000000080p-1023, + 0x1.fffffffffffffp0, + 0x1.ffffffffffffep1023 + }, + { // Entry 823 + -0x1.0000000000000800000000000080p-1023, + -0x1.fffffffffffffp0, + 0x1.ffffffffffffep1023 + }, + { // Entry 824 + 0x1.ffffffffffffffffffffffffffffffffp-1024, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 825 + -0x1.ffffffffffffffffffffffffffffffffp-1024, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 826 + 0x1.ffffffffffffffffffffffffffffffffp-1024, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 827 + -0x1.ffffffffffffffffffffffffffffffffp-1024, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 828 + 0x1.ffffffffffffffffffffffffffffffffp-1024, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 829 + -0x1.ffffffffffffffffffffffffffffffffp-1024, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 830 + 0x1.ffffffffffffffffffffffffffffffffp-1024, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 831 + -0x1.ffffffffffffffffffffffffffffffffp-1024, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 832 + 0x1.00000000000010000000000001p-1023, + 0x1.0p1, + 0x1.ffffffffffffep1023 + }, + { // Entry 833 + -0x1.00000000000010000000000001p-1023, + -0x1.0p1, + 0x1.ffffffffffffep1023 + }, + { // Entry 834 + 0x1.0000000000000800000000000040p-1023, + 0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 835 + -0x1.0000000000000800000000000040p-1023, + -0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 836 + 0x1.0000000000000800000000000040p-1023, + 0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 837 + -0x1.0000000000000800000000000040p-1023, + -0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 838 + 0x1.0000000000000800000000000040p-1023, + 0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 839 + -0x1.0000000000000800000000000040p-1023, + -0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 840 + 0x1.0000000000000800000000000040p-1023, + 0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 841 + -0x1.0000000000000800000000000040p-1023, + -0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 842 + 0x1.00000000000020000000000002p-1023, + 0x1.0000000000001p1, + 0x1.ffffffffffffep1023 + }, + { // Entry 843 + -0x1.00000000000020000000000002p-1023, + -0x1.0000000000001p1, + 0x1.ffffffffffffep1023 + }, + { // Entry 844 + 0x1.00000000000018000000000000c0p-1023, + 0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 845 + -0x1.00000000000018000000000000c0p-1023, + -0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 846 + 0x1.00000000000018000000000000c0p-1023, + 0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 847 + -0x1.00000000000018000000000000c0p-1023, + -0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 848 + 0x1.00000000000018000000000000c0p-1023, + 0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 849 + -0x1.00000000000018000000000000c0p-1023, + -0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 850 + 0x1.00000000000018000000000000c0p-1023, + 0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 851 + -0x1.00000000000018000000000000c0p-1023, + -0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 852 + 0x1.00000000000030000000000003p-1023, + 0x1.0000000000002p1, + 0x1.ffffffffffffep1023 + }, + { // Entry 853 + -0x1.00000000000030000000000003p-1023, + -0x1.0000000000002p1, + 0x1.ffffffffffffep1023 + }, + { // Entry 854 + 0x1.0000000000002800000000000140p-1023, + 0x1.0000000000002p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 855 + -0x1.0000000000002800000000000140p-1023, + -0x1.0000000000002p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 856 + 0x1.0000000000002800000000000140p-1023, + 0x1.0000000000002p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 857 + -0x1.0000000000002800000000000140p-1023, + -0x1.0000000000002p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 858 + 0x1.0000000000002800000000000140p-1023, + 0x1.0000000000002p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 859 + -0x1.0000000000002800000000000140p-1023, + -0x1.0000000000002p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 860 + 0x1.0000000000002800000000000140p-1023, + 0x1.0000000000002p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 861 + -0x1.0000000000002800000000000140p-1023, + -0x1.0000000000002p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 862 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.ffffffffffffep1, + 0x1.ffffffffffffep1023 + }, + { // Entry 863 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.ffffffffffffep1, + 0x1.ffffffffffffep1023 + }, + { // Entry 864 + 0x1.ffffffffffffefffffffffffff7fffffp-1023, + 0x1.ffffffffffffep1, + 0x1.fffffffffffffp1023 + }, + { // Entry 865 + -0x1.ffffffffffffefffffffffffff7fffffp-1023, + -0x1.ffffffffffffep1, + 0x1.fffffffffffffp1023 + }, + { // Entry 866 + 0x1.ffffffffffffefffffffffffff7fffffp-1023, + 0x1.ffffffffffffep1, + 0x1.fffffffffffffp1023 + }, + { // Entry 867 + -0x1.ffffffffffffefffffffffffff7fffffp-1023, + -0x1.ffffffffffffep1, + 0x1.fffffffffffffp1023 + }, + { // Entry 868 + 0x1.ffffffffffffefffffffffffff7fffffp-1023, + 0x1.ffffffffffffep1, + 0x1.fffffffffffffp1023 + }, + { // Entry 869 + -0x1.ffffffffffffefffffffffffff7fffffp-1023, + -0x1.ffffffffffffep1, + 0x1.fffffffffffffp1023 + }, + { // Entry 870 + 0x1.ffffffffffffefffffffffffff7fffffp-1023, + 0x1.ffffffffffffep1, + 0x1.fffffffffffffp1023 + }, + { // Entry 871 + -0x1.ffffffffffffefffffffffffff7fffffp-1023, + -0x1.ffffffffffffep1, + 0x1.fffffffffffffp1023 + }, + { // Entry 872 + 0x1.0000000000000800000000000080p-1022, + 0x1.fffffffffffffp1, + 0x1.ffffffffffffep1023 + }, + { // Entry 873 + -0x1.0000000000000800000000000080p-1022, + -0x1.fffffffffffffp1, + 0x1.ffffffffffffep1023 + }, + { // Entry 874 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.fffffffffffffp1, + 0x1.fffffffffffffp1023 + }, + { // Entry 875 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.fffffffffffffp1, + 0x1.fffffffffffffp1023 + }, + { // Entry 876 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.fffffffffffffp1, + 0x1.fffffffffffffp1023 + }, + { // Entry 877 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.fffffffffffffp1, + 0x1.fffffffffffffp1023 + }, + { // Entry 878 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.fffffffffffffp1, + 0x1.fffffffffffffp1023 + }, + { // Entry 879 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.fffffffffffffp1, + 0x1.fffffffffffffp1023 + }, + { // Entry 880 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.fffffffffffffp1, + 0x1.fffffffffffffp1023 + }, + { // Entry 881 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.fffffffffffffp1, + 0x1.fffffffffffffp1023 + }, + { // Entry 882 + 0x1.00000000000010000000000001p-1022, + 0x1.0p2, + 0x1.ffffffffffffep1023 + }, + { // Entry 883 + -0x1.00000000000010000000000001p-1022, + -0x1.0p2, + 0x1.ffffffffffffep1023 + }, + { // Entry 884 + 0x1.0000000000000800000000000040p-1022, + 0x1.0p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 885 + -0x1.0000000000000800000000000040p-1022, + -0x1.0p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 886 + 0x1.0000000000000800000000000040p-1022, + 0x1.0p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 887 + -0x1.0000000000000800000000000040p-1022, + -0x1.0p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 888 + 0x1.0000000000000800000000000040p-1022, + 0x1.0p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 889 + -0x1.0000000000000800000000000040p-1022, + -0x1.0p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 890 + 0x1.0000000000000800000000000040p-1022, + 0x1.0p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 891 + -0x1.0000000000000800000000000040p-1022, + -0x1.0p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 892 + 0x1.00000000000020000000000002p-1022, + 0x1.0000000000001p2, + 0x1.ffffffffffffep1023 + }, + { // Entry 893 + -0x1.00000000000020000000000002p-1022, + -0x1.0000000000001p2, + 0x1.ffffffffffffep1023 + }, + { // Entry 894 + 0x1.00000000000018000000000000c0p-1022, + 0x1.0000000000001p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 895 + -0x1.00000000000018000000000000c0p-1022, + -0x1.0000000000001p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 896 + 0x1.00000000000018000000000000c0p-1022, + 0x1.0000000000001p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 897 + -0x1.00000000000018000000000000c0p-1022, + -0x1.0000000000001p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 898 + 0x1.00000000000018000000000000c0p-1022, + 0x1.0000000000001p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 899 + -0x1.00000000000018000000000000c0p-1022, + -0x1.0000000000001p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 900 + 0x1.00000000000018000000000000c0p-1022, + 0x1.0000000000001p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 901 + -0x1.00000000000018000000000000c0p-1022, + -0x1.0000000000001p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 902 + 0x1.00000000000030000000000003p-1022, + 0x1.0000000000002p2, + 0x1.ffffffffffffep1023 + }, + { // Entry 903 + -0x1.00000000000030000000000003p-1022, + -0x1.0000000000002p2, + 0x1.ffffffffffffep1023 + }, + { // Entry 904 + 0x1.0000000000002800000000000140p-1022, + 0x1.0000000000002p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 905 + -0x1.0000000000002800000000000140p-1022, + -0x1.0000000000002p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 906 + 0x1.0000000000002800000000000140p-1022, + 0x1.0000000000002p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 907 + -0x1.0000000000002800000000000140p-1022, + -0x1.0000000000002p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 908 + 0x1.0000000000002800000000000140p-1022, + 0x1.0000000000002p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 909 + -0x1.0000000000002800000000000140p-1022, + -0x1.0000000000002p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 910 + 0x1.0000000000002800000000000140p-1022, + 0x1.0000000000002p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 911 + -0x1.0000000000002800000000000140p-1022, + -0x1.0000000000002p2, + 0x1.fffffffffffffp1023 + }, + { // Entry 912 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000002p1023, + -0x1.0000000000002p0 + }, + { // Entry 913 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000002p1023, + -0x1.0000000000002p0 + }, + { // Entry 914 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000002p1023, + -0x1.0000000000001p0 + }, + { // Entry 915 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000002p1023, + -0x1.0000000000001p0 + }, + { // Entry 916 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000002p1023, + -0x1.0p0 + }, + { // Entry 917 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000002p1023, + -0x1.0p0 + }, + { // Entry 918 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000002p1023, + -0x1.fffffffffffffp-1 + }, + { // Entry 919 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000002p1023, + -0x1.fffffffffffffp-1 + }, + { // Entry 920 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000002p1023, + -0x1.ffffffffffffep-1 + }, + { // Entry 921 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000002p1023, + -0x1.ffffffffffffep-1 + }, + { // Entry 922 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000001p1023, + -0x1.0000000000002p0 + }, + { // Entry 923 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000001p1023, + -0x1.0000000000002p0 + }, + { // Entry 924 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000001p1023, + -0x1.0000000000001p0 + }, + { // Entry 925 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000001p1023, + -0x1.0000000000001p0 + }, + { // Entry 926 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000001p1023, + -0x1.0p0 + }, + { // Entry 927 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000001p1023, + -0x1.0p0 + }, + { // Entry 928 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000001p1023, + -0x1.fffffffffffffp-1 + }, + { // Entry 929 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000001p1023, + -0x1.fffffffffffffp-1 + }, + { // Entry 930 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0000000000001p1023, + -0x1.ffffffffffffep-1 + }, + { // Entry 931 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0000000000001p1023, + -0x1.ffffffffffffep-1 + }, + { // Entry 932 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p1023, + -0x1.0000000000002p0 + }, + { // Entry 933 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p1023, + -0x1.0000000000002p0 + }, + { // Entry 934 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p1023, + -0x1.0000000000001p0 + }, + { // Entry 935 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p1023, + -0x1.0000000000001p0 + }, + { // Entry 936 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p1023, + -0x1.0p0 + }, + { // Entry 937 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p1023, + -0x1.0p0 + }, + { // Entry 938 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p1023, + -0x1.fffffffffffffp-1 + }, + { // Entry 939 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p1023, + -0x1.fffffffffffffp-1 + }, + { // Entry 940 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p1023, + -0x1.ffffffffffffep-1 + }, + { // Entry 941 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p1023, + -0x1.ffffffffffffep-1 + }, + { // Entry 942 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1022, + -0x1.0000000000002p0 + }, + { // Entry 943 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1022, + -0x1.0000000000002p0 + }, + { // Entry 944 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1022, + -0x1.0000000000001p0 + }, + { // Entry 945 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1022, + -0x1.0000000000001p0 + }, + { // Entry 946 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1022, + -0x1.0p0 + }, + { // Entry 947 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1022, + -0x1.0p0 + }, + { // Entry 948 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1022, + -0x1.fffffffffffffp-1 + }, + { // Entry 949 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1022, + -0x1.fffffffffffffp-1 + }, + { // Entry 950 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1022, + -0x1.ffffffffffffep-1 + }, + { // Entry 951 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1022, + -0x1.ffffffffffffep-1 + }, + { // Entry 952 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.ffffffffffffep1022, + -0x1.0000000000002p0 + }, + { // Entry 953 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.ffffffffffffep1022, + -0x1.0000000000002p0 + }, + { // Entry 954 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.ffffffffffffep1022, + -0x1.0000000000001p0 + }, + { // Entry 955 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.ffffffffffffep1022, + -0x1.0000000000001p0 + }, + { // Entry 956 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.ffffffffffffep1022, + -0x1.0p0 + }, + { // Entry 957 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.ffffffffffffep1022, + -0x1.0p0 + }, + { // Entry 958 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.ffffffffffffep1022, + -0x1.fffffffffffffp-1 + }, + { // Entry 959 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.ffffffffffffep1022, + -0x1.fffffffffffffp-1 + }, + { // Entry 960 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.ffffffffffffep1022, + -0x1.ffffffffffffep-1 + }, + { // Entry 961 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.ffffffffffffep1022, + -0x1.ffffffffffffep-1 + }, + { // Entry 962 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0, + -0.0 + }, + { // Entry 963 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0, + -0.0 + }, + { // Entry 964 + 0.0, + 0.0, + 0.0 + }, + { // Entry 965 + -0.0, + -0.0, + 0.0 + }, + { // Entry 966 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0, + -0x1.0p-1074 + }, + { // Entry 967 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 968 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0, + -0x1.0p-1022 + }, + { // Entry 969 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 970 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0, + -HUGE_VAL + }, + { // Entry 971 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0, + -0x1.0p-1074 + }, + { // Entry 972 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 973 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0, + -0x1.0p-1022 + }, + { // Entry 974 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 975 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0, + -HUGE_VAL + }, + { // Entry 976 + 0.0, + 0.0, + HUGE_VAL + }, + { // Entry 977 + 0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 978 + 0.0, + 0.0, + 0x1.0p-1022 + }, + { // Entry 979 + 0.0, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 980 + 0.0, + 0.0, + 0x1.0p-1074 + }, + { // Entry 981 + -0.0, + -0.0, + HUGE_VAL + }, + { // Entry 982 + -0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 983 + -0.0, + -0.0, + 0x1.0p-1022 + }, + { // Entry 984 + -0.0, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 985 + -0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 986 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VAL, + 0.0 + }, + { // Entry 987 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 988 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1022, + 0.0 + }, + { // Entry 989 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1074, + 0.0 + }, + { // Entry 990 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VAL, + -0.0 + }, + { // Entry 991 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 992 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1022, + -0.0 + }, + { // Entry 993 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 994 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VAL, + 0.0 + }, + { // Entry 995 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 996 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1022, + 0.0 + }, + { // Entry 997 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1074, + 0.0 + }, + { // Entry 998 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VAL, + -0.0 + }, + { // Entry 999 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1000 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1022, + -0.0 + }, + { // Entry 1001 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.0p-1074, + -0.0 + }, + { // Entry 1002 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1003 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1004 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1005 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1006 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1007 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1008 + 0.0, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1009 + 0.0, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1010 + 0.0, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1011 + -0.0, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1012 + -0.0, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1013 + -0.0, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1014 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1015 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1016 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1017 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1018 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1019 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1020 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1021 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1022 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1023 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1024 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1025 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1026 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 1027 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 1028 + 0x1.921fb54442d18469898cc51701b839a2p-1, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 1029 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 1030 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1031 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1032 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1033 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1034 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1035 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1036 + 0.0, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1037 + 0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1038 + -0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1039 + -0.0, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1040 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1041 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1042 + 0x1.921fb54442d17469898cc51701b839a2p0, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1043 + 0x1.921fb54442d19469898cc51701b839a2p0, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1044 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1045 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1046 + 0x1.ffffffffffffffffffffffffff555555p-53, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1047 + -0x1.ffffffffffffffffffffffffff555555p-53, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1048 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1049 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1050 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1051 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1052 + 0x1.921fb54442d17c69898cc51701b839a2p1, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1053 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1054 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1055 + -0x1.921fb54442d17469898cc51701b839a2p0, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1056 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1057 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1058 + -0x1.921fb54442d17c69898cc51701b839a2p1, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1059 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1060 + -0x1.921fb54442d19469898cc51701b839a2p0, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1061 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1062 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1063 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1064 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1065 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + } +}; diff --git a/tests/math_data/atan2f_intel_data.h b/tests/math_data/atan2f_intel_data.h new file mode 100644 index 000000000..ba9046c84 --- /dev/null +++ b/tests/math_data/atan2f_intel_data.h @@ -0,0 +1,4703 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_atan2f_intel_data[] = { + { // Entry 0 + -0x1.ffffe4000187ffea90012c1fef963e3bp-60, + -0x1.p-100, + 0x1.00000ep-41 + }, + { // Entry 1 + 0x1.ffffe4000187ffea90012c1fef963e3bp-60, + 0x1.p-100, + 0x1.00000ep-41 + }, + { // Entry 2 + -0.0f, + -0x1.p-100, + 0x1.00000ep50 + }, + { // Entry 3 + 0.0f, + 0x1.p-100, + 0x1.00000ep50 + }, + { // Entry 4 + -0x1.7ffffffffff44cccff95f13b15ee40f3p-11, + -0x1.000002p-10, + 0x1.555554p0 + }, + { // Entry 5 + 0x1.7ffffffffff44cccff95f13b15ee40f3p-11, + 0x1.000002p-10, + 0x1.555554p0 + }, + { // Entry 6 + -0x1.fffffc00000d55550555571bbbb2d111p-23, + -0x1.000004p0, + 0x1.000006p22 + }, + { // Entry 7 + 0x1.fffffc00000d55550555571bbbb2d111p-23, + 0x1.000004p0, + 0x1.000006p22 + }, + { // Entry 8 + -0x1.dad20effbd30f4310a58502b0ff3965dp-2, + -0x1.000006p3, + 0x1.fff186p3 + }, + { // Entry 9 + 0x1.dad20effbd30f4310a58502b0ff3965dp-2, + 0x1.000006p3, + 0x1.fff186p3 + }, + { // Entry 10 + -0x1.ff654bdefc197c75159e23b86a1127c1p-5, + -0x1.0008p16, + 0x1.000030p20 + }, + { // Entry 11 + 0x1.ff654bdefc197c75159e23b86a1127c1p-5, + 0x1.0008p16, + 0x1.000030p20 + }, + { // Entry 12 + -0x1.ff9b39e1a4728254bcb91f895e52abc2p-5, + -0x1.002304p3, + 0x1.000022p7 + }, + { // Entry 13 + 0x1.ff9b39e1a4728254bcb91f895e52abc2p-5, + 0x1.002304p3, + 0x1.000022p7 + }, + { // Entry 14 + -0x1.43e6bb010a022abaa97bc92c2bf92b2dp-2, + -0x1.04fd14p-4, + 0x1.8eb358p-3 + }, + { // Entry 15 + 0x1.43e6bb010a022abaa97bc92c2bf92b2dp-2, + 0x1.04fd14p-4, + 0x1.8eb358p-3 + }, + { // Entry 16 + -0x1.905827610aa194066b73a36bcafa2041p-1, + -0x1.0596bcp-3, + 0x1.0769dcp-3 + }, + { // Entry 17 + 0x1.905827610aa194066b73a36bcafa2041p-1, + 0x1.0596bcp-3, + 0x1.0769dcp-3 + }, + { // Entry 18 + -0x1.f5b7710347b9a8b79afdefc31a2185a0p-2, + -0x1.111118p-2, + 0x1.fffff8p-2 + }, + { // Entry 19 + 0x1.f5b7710347b9a8b79afdefc31a2185a0p-2, + 0x1.111118p-2, + 0x1.fffff8p-2 + }, + { // Entry 20 + -0x1.151c477cb91ad4bb4a65e8d3fd3321f4p0, + -0x1.111118p-14, + 0x1.222218p-15 + }, + { // Entry 21 + 0x1.151c477cb91ad4bb4a65e8d3fd3321f4p0, + 0x1.111118p-14, + 0x1.222218p-15 + }, + { // Entry 22 + -0x1.520acb002e18e97cf7bea2ae9290357bp0, + -0x1.199994p-1, + 0x1.20p-3 + }, + { // Entry 23 + 0x1.520acb002e18e97cf7bea2ae9290357bp0, + 0x1.199994p-1, + 0x1.20p-3 + }, + { // Entry 24 + -0x1.d1a1ebad28ca743ee543132b45980d5cp-2, + -0x1.199998p-1, + 0x1.20p0 + }, + { // Entry 25 + 0x1.d1a1ebad28ca743ee543132b45980d5cp-2, + 0x1.199998p-1, + 0x1.20p0 + }, + { // Entry 26 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.19999ap0, + 0x1.p-149 + }, + { // Entry 27 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.19999ap0, + 0x1.p-149 + }, + { // Entry 28 + -0x1.922170fe86dc56969c78b959508174d3p-1, + -0x1.2c0202p9, + 0x1.2bfffap9 + }, + { // Entry 29 + 0x1.922170fe86dc56969c78b959508174d3p-1, + 0x1.2c0202p9, + 0x1.2bfffap9 + }, + { // Entry 30 + -0x1.8ec170fc51bb0a23bd010cc82696f548p0, + -0x1.2ffff0p6, + 0x1.p0 + }, + { // Entry 31 + 0x1.8ec170fc51bb0a23bd010cc82696f548p0, + 0x1.2ffff0p6, + 0x1.p0 + }, + { // Entry 32 + -0x1.2fffffffffffffffffffffffffffffffp-146, + -0x1.30p-145, + 0x1.p1 + }, + { // Entry 33 + 0x1.2fffffffffffffffffffffffffffffffp-146, + 0x1.30p-145, + 0x1.p1 + }, + { // Entry 34 + -0x1.2a73acfced538de0e37fe6b9b0a41ebap-2, + -0x1.333338p-2, + 0x1.fffffcp-1 + }, + { // Entry 35 + 0x1.2a73acfced538de0e37fe6b9b0a41ebap-2, + 0x1.333338p-2, + 0x1.fffffcp-1 + }, + { // Entry 36 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.40p-147, + -0x1.fffffep127 + }, + { // Entry 37 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.40p-147, + -0x1.fffffep127 + }, + { // Entry 38 + -0x1.3fffffffffffffffffffffffffffffffp-148, + -0x1.40p-147, + 0x1.p1 + }, + { // Entry 39 + 0x1.3fffffffffffffffffffffffffffffffp-148, + 0x1.40p-147, + 0x1.p1 + }, + { // Entry 40 + -0x1.ffa33dcc72ce5a24fbffc472e6d8aa54p-5, + -0x1.77fffep-15, + 0x1.77c6e2p-11 + }, + { // Entry 41 + 0x1.ffa33dcc72ce5a24fbffc472e6d8aa54p-5, + 0x1.77fffep-15, + 0x1.77c6e2p-11 + }, + { // Entry 42 + -0x1.72eab640dab3ff16e57acdbe73e804d6p-2, + -0x1.7b4a16p-4, + 0x1.f474d8p-3 + }, + { // Entry 43 + 0x1.72eab640dab3ff16e57acdbe73e804d6p-2, + 0x1.7b4a16p-4, + 0x1.f474d8p-3 + }, + { // Entry 44 + -0x1.7fffad001ebebf3a599c03854b51e597p-9, + -0x1.7ffffep0, + 0x1.000006p9 + }, + { // Entry 45 + 0x1.7fffad001ebebf3a599c03854b51e597p-9, + 0x1.7ffffep0, + 0x1.000006p9 + }, + { // Entry 46 + -0x1.e3539c0f15f7f48eab208803a29a2c7dp0, + -0x1.85e85ep-1, + -0x1.fffffcp-3 + }, + { // Entry 47 + 0x1.e3539c0f15f7f48eab208803a29a2c7dp0, + 0x1.85e85ep-1, + -0x1.fffffcp-3 + }, + { // Entry 48 + -0x1.fff7a95adac43e9c9763981911f0af91p-6, + -0x1.881a4ap5, + 0x1.88p10 + }, + { // Entry 49 + 0x1.fff7a95adac43e9c9763981911f0af91p-6, + 0x1.881a4ap5, + 0x1.88p10 + }, + { // Entry 50 + -0x1.afffffffffffffffffffffffffffffffp-146, + -0x1.b0p-145, + 0x1.p1 + }, + { // Entry 51 + 0x1.afffffffffffffffffffffffffffffffp-146, + 0x1.b0p-145, + 0x1.p1 + }, + { // Entry 52 + -0x1.a5ce8d1a28d5bcb270bc016790eb423ap0, + -0x1.bbbbbcp-1, + -0x1.1179f8p-4 + }, + { // Entry 53 + 0x1.a5ce8d1a28d5bcb270bc016790eb423ap0, + 0x1.bbbbbcp-1, + -0x1.1179f8p-4 + }, + { // Entry 54 + -0x1.eafe7000a5dc264f70fe1dd7f684b160p-3, + -0x1.d55554p-1, + 0x1.dffffep1 + }, + { // Entry 55 + 0x1.eafe7000a5dc264f70fe1dd7f684b160p-3, + 0x1.d55554p-1, + 0x1.dffffep1 + }, + { // Entry 56 + -0x1.eb4a75001deee59a8f1d03f2e725b3aep-2, + -0x1.d5e926p-3, + 0x1.c38dc4p-2 + }, + { // Entry 57 + 0x1.eb4a75001deee59a8f1d03f2e725b3aep-2, + 0x1.d5e926p-3, + 0x1.c38dc4p-2 + }, + { // Entry 58 + -0x1.dfffffffffffffffffffffffffffffffp-147, + -0x1.e0p-146, + 0x1.p1 + }, + { // Entry 59 + 0x1.dfffffffffffffffffffffffffffffffp-147, + 0x1.e0p-146, + 0x1.p1 + }, + { // Entry 60 + -0x1.f12ab8f4f73d14abefa8e36cac1681p-19, + -0x1.f12a96p2, + 0x1.ffffdcp20 + }, + { // Entry 61 + 0x1.f12ab8f4f73d14abefa8e36cac1681p-19, + 0x1.f12a96p2, + 0x1.ffffdcp20 + }, + { // Entry 62 + -0x1.e42b250039e7dca1fe04ee304684c0edp-2, + -0x1.f8732ap-2, + 0x1.ed16e2p-1 + }, + { // Entry 63 + 0x1.e42b250039e7dca1fe04ee304684c0edp-2, + 0x1.f8732ap-2, + 0x1.ed16e2p-1 + }, + { // Entry 64 + -0x1.ff571a1535e84a3ed0617f7c8bd43c9dp-5, + -0x1.ffffdep-3, + 0x1.fffe7ep1 + }, + { // Entry 65 + 0x1.ff571a1535e84a3ed0617f7c8bd43c9dp-5, + 0x1.ffffdep-3, + 0x1.fffe7ep1 + }, + { // Entry 66 + 0.0, + 0.0, + 0.0 + }, + { // Entry 67 + 0.0f, + 0x1.p-149, + 0x1.p1 + }, + { // Entry 68 + -0.0f, + -0x1.p-149, + 0x1.p1 + }, + { // Entry 69 + 0x1.5ffff7c000317ffed70006f5ffd63cp-147, + 0x1.p-149, + 0x1.745d20p-3 + }, + { // Entry 70 + -0x1.5ffff7c000317ffed70006f5ffd63cp-147, + -0x1.p-149, + 0x1.745d20p-3 + }, + { // Entry 71 + 0x1.40000dc0009740067fc0477d431261e1p-146, + 0x1.p-149, + 0x1.999988p-4 + }, + { // Entry 72 + -0x1.40000dc0009740067fc0477d431261e1p-146, + -0x1.p-149, + 0x1.999988p-4 + }, + { // Entry 73 + 0.0f, + 0x1.p-149, + 0x1.fffffep0 + }, + { // Entry 74 + -0.0f, + -0x1.p-149, + 0x1.fffffep0 + }, + { // Entry 75 + 0x1.000001000000fffaabaa9aabaa8aabddp-30, + 0x1.p2, + 0x1.fffffep31 + }, + { // Entry 76 + -0x1.000001000000fffaabaa9aabaa8aabddp-30, + -0x1.p2, + 0x1.fffffep31 + }, + { // Entry 77 + 0x1.03a264fffa8f8262b1fabf7149142cb1p-1, + 0x1.p9, + 0x1.ccccd8p9 + }, + { // Entry 78 + -0x1.03a264fffa8f8262b1fabf7149142cb1p-1, + -0x1.p9, + 0x1.ccccd8p9 + }, + { // Entry 79 + 0x1.096d02910676c2be11dcfe9fe3175278p1, + 0x1.000002p-1, + -0x1.19998ep-2 + }, + { // Entry 80 + -0x1.096d02910676c2be11dcfe9fe3175278p1, + -0x1.000002p-1, + -0x1.19998ep-2 + }, + { // Entry 81 + 0x1.ff54b8d04e797f1463152a327d0b86c4p-2, + 0x1.000002p-1, + 0x1.d55560p-1 + }, + { // Entry 82 + -0x1.ff54b8d04e797f1463152a327d0b86c4p-2, + -0x1.000002p-1, + 0x1.d55560p-1 + }, + { // Entry 83 + 0x1.dac67522e883aedcc9c473438e936964p-2, + 0x1.000002p-1, + 0x1.fffffep-1 + }, + { // Entry 84 + -0x1.dac67522e883aedcc9c473438e936964p-2, + -0x1.000002p-1, + 0x1.fffffep-1 + }, + { // Entry 85 + 0x1.f430999672c04e0df46fd1307191a380p-4, + 0x1.000002p-3, + 0x1.04bd9cp0 + }, + { // Entry 86 + -0x1.f430999672c04e0df46fd1307191a380p-4, + -0x1.000002p-3, + 0x1.04bd9cp0 + }, + { // Entry 87 + 0x1.7fb81eff43d4f24387e27e042d6562dbp-5, + 0x1.000002p-5, + 0x1.555552p-1 + }, + { // Entry 88 + -0x1.7fb81eff43d4f24387e27e042d6562dbp-5, + -0x1.000002p-5, + 0x1.555552p-1 + }, + { // Entry 89 + 0x1.000003000001aaaaa1aaaa80dddd98ddp-23, + 0x1.000002p-23, + 0x1.fffffep-1 + }, + { // Entry 90 + -0x1.000003000001aaaaa1aaaa80dddd98ddp-23, + -0x1.000002p-23, + 0x1.fffffep-1 + }, + { // Entry 91 + 0x1.921fb4fddc6a66f8e54f012a148cac4ep1, + 0x1.000002p-25, + -0x1.d1745cp-1 + }, + { // Entry 92 + -0x1.921fb4fddc6a66f8e54f012a148cac4ep1, + -0x1.000002p-25, + -0x1.d1745cp-1 + }, + { // Entry 93 + 0x1.0468a979b1a9f0624f4c1516d96c6422p1, + 0x1.000002p0, + -0x1.000006p-1 + }, + { // Entry 94 + -0x1.0468a979b1a9f0624f4c1516d96c6422p1, + -0x1.000002p0, + -0x1.000006p-1 + }, + { // Entry 95 + 0x1.b96e57abf90140f894091838c2b8a690p-1, + 0x1.000002p0, + 0x1.b6db76p-1 + }, + { // Entry 96 + -0x1.b96e57abf90140f894091838c2b8a690p-1, + -0x1.000002p0, + 0x1.b6db76p-1 + }, + { // Entry 97 + 0x1.f01ecfda25de70c3e0bfdea229510fd3p0, + 0x1.000002p1, + -0x1.89d8a0p-1 + }, + { // Entry 98 + -0x1.f01ecfda25de70c3e0bfdea229510fd3p0, + -0x1.000002p1, + -0x1.89d8a0p-1 + }, + { // Entry 99 + 0x1.ff5625094d950db0c74144886d91c14cp-5, + 0x1.000004p-3, + 0x1.ffff9ep0 + }, + { // Entry 100 + -0x1.ff5625094d950db0c74144886d91c14cp-5, + -0x1.000004p-3, + 0x1.ffff9ep0 + }, + { // Entry 101 + 0x1.fd5bd4fd7ac8b0cf6006c4414f743ea0p-4, + 0x1.000006p3, + 0x1.ffffe0p5 + }, + { // Entry 102 + -0x1.fd5bd4fd7ac8b0cf6006c4414f743ea0p-4, + -0x1.000006p3, + 0x1.ffffe0p5 + }, + { // Entry 103 + 0x1.8c4f470003e118b76491b0c859d6c053p1, + 0x1.000008p-2, + -0x1.60p2 + }, + { // Entry 104 + -0x1.8c4f470003e118b76491b0c859d6c053p1, + -0x1.000008p-2, + -0x1.60p2 + }, + { // Entry 105 + 0x1.2834603b51b0b1b7ada51badb8c5e787p-1, + 0x1.00000ep-20, + 0x1.88p-20 + }, + { // Entry 106 + -0x1.2834603b51b0b1b7ada51badb8c5e787p-1, + -0x1.00000ep-20, + 0x1.88p-20 + }, + { // Entry 107 + 0x1.f77e7bb64eb5f42395a6d8adcffa6337p-2, + 0x1.00000ep-20, + 0x1.ddfffep-20 + }, + { // Entry 108 + -0x1.f77e7bb64eb5f42395a6d8adcffa6337p-2, + -0x1.00000ep-20, + 0x1.ddfffep-20 + }, + { // Entry 109 + 0x1.ffd87cf6fd38249fc231c5402edbc122p-6, + 0x1.000010p-3, + 0x1.fffcfep1 + }, + { // Entry 110 + -0x1.ffd87cf6fd38249fc231c5402edbc122p-6, + -0x1.000010p-3, + 0x1.fffcfep1 + }, + { // Entry 111 + 0x1.fd5bd4fd76b8efb59210712d88b6e912p-4, + 0x1.00001ep3, + 0x1.000008p6 + }, + { // Entry 112 + -0x1.fd5bd4fd76b8efb59210712d88b6e912p-4, + -0x1.00001ep3, + 0x1.000008p6 + }, + { // Entry 113 + 0x1.fd5c357b879b2fe30dedcd3135cb691bp-4, + 0x1.000038p3, + 0x1.ffffe2p5 + }, + { // Entry 114 + -0x1.fd5c357b879b2fe30dedcd3135cb691bp-4, + -0x1.000038p3, + 0x1.ffffe2p5 + }, + { // Entry 115 + 0x1.99392cffffb1e34431dc0b78592ad27cp0, + 0x1.000262p0, + -0x1.c67ffep-6 + }, + { // Entry 116 + -0x1.99392cffffb1e34431dc0b78592ad27cp0, + -0x1.000262p0, + -0x1.c67ffep-6 + }, + { // Entry 117 + 0x1.ff654bdefc197c75159e23b86a1127c1p-5, + 0x1.0008p16, + 0x1.000030p20 + }, + { // Entry 118 + -0x1.ff654bdefc197c75159e23b86a1127c1p-5, + -0x1.0008p16, + 0x1.000030p20 + }, + { // Entry 119 + 0x1.321a6aeab209211260a57ffa3329874ep-1, + 0x1.000ep-20, + 0x1.77fffep-20 + }, + { // Entry 120 + -0x1.321a6aeab209211260a57ffa3329874ep-1, + -0x1.000ep-20, + 0x1.77fffep-20 + }, + { // Entry 121 + 0x1.ff753bea780e4b6715b12898d26fada0p-5, + 0x1.0010p-3, + 0x1.000030p1 + }, + { // Entry 122 + -0x1.ff753bea780e4b6715b12898d26fada0p-5, + -0x1.0010p-3, + 0x1.000030p1 + }, + { // Entry 123 + 0x1.400ea9fffd0dcf2989a4e76f8aa5db51p-1, + 0x1.001be4p-1, + 0x1.62e42ep-1 + }, + { // Entry 124 + -0x1.400ea9fffd0dcf2989a4e76f8aa5db51p-1, + -0x1.001be4p-1, + 0x1.62e42ep-1 + }, + { // Entry 125 + 0x1.ff9b39e1a4728254bcb91f895e52abc2p-5, + 0x1.002304p3, + 0x1.000022p7 + }, + { // Entry 126 + -0x1.ff9b39e1a4728254bcb91f895e52abc2p-5, + -0x1.002304p3, + 0x1.000022p7 + }, + { // Entry 127 + 0x1.943f9a4b36eb2b8033de5110689ec228p-1, + 0x1.022228p0, + 0x1.fffffcp-1 + }, + { // Entry 128 + -0x1.943f9a4b36eb2b8033de5110689ec228p-1, + -0x1.022228p0, + 0x1.fffffcp-1 + }, + { // Entry 129 + 0x1.c66450ffe905abdcfe0531d5f14c2238p0, + 0x1.0b7778p-21, + -0x1.bb0cp-24 + }, + { // Entry 130 + -0x1.c66450ffe905abdcfe0531d5f14c2238p0, + -0x1.0b7778p-21, + -0x1.bb0cp-24 + }, + { // Entry 131 + 0x1.f759ec36e59bd61b017b6ebaaf148489p-2, + 0x1.0df6b0p9, + 0x1.f83dc0p9 + }, + { // Entry 132 + -0x1.f759ec36e59bd61b017b6ebaaf148489p-2, + -0x1.0df6b0p9, + 0x1.f83dc0p9 + }, + { // Entry 133 + 0x1.0039e2465cf8081fc9c3f6acc6017e31p-1, + 0x1.0f83dap9, + 0x1.f07bd4p9 + }, + { // Entry 134 + -0x1.0039e2465cf8081fc9c3f6acc6017e31p-1, + -0x1.0f83dap9, + 0x1.f07bd4p9 + }, + { // Entry 135 + 0x1.32c00cffff80612ac29d96e5387e4acdp-1, + 0x1.10cee0p1, + 0x1.8f83e4p1 + }, + { // Entry 136 + -0x1.32c00cffff80612ac29d96e5387e4acdp-1, + -0x1.10cee0p1, + 0x1.8f83e4p1 + }, + { // Entry 137 + 0x1.fc9d3effcf63ce3c73d32f688b7e0d3ep-2, + 0x1.133332p9, + 0x1.fbbbacp9 + }, + { // Entry 138 + -0x1.fc9d3effcf63ce3c73d32f688b7e0d3ep-2, + -0x1.133332p9, + 0x1.fbbbacp9 + }, + { // Entry 139 + 0x1.13b7ba9cbd2bde0ae99dd5b90b6a6caep-4, + 0x1.142288p-5, + 0x1.p-1 + }, + { // Entry 140 + -0x1.13b7ba9cbd2bde0ae99dd5b90b6a6caep-4, + -0x1.142288p-5, + 0x1.p-1 + }, + { // Entry 141 + 0x1.9baeb903173549a4605c13cb0ec5c997p-1, + 0x1.1a8a08p-1, + 0x1.102e88p-1 + }, + { // Entry 142 + -0x1.9baeb903173549a4605c13cb0ec5c997p-1, + -0x1.1a8a08p-1, + 0x1.102e88p-1 + }, + { // Entry 143 + 0x1.585ed10003e25039288d2a597baabb4ep-1, + 0x1.1aab0ep-1, + 0x1.62e42ep-1 + }, + { // Entry 144 + -0x1.585ed10003e25039288d2a597baabb4ep-1, + -0x1.1aab0ep-1, + 0x1.62e42ep-1 + }, + { // Entry 145 + 0x1.fd7b30fe75452129dd4d92575b1b6643p-3, + 0x1.20p0, + 0x1.1b6db6p2 + }, + { // Entry 146 + -0x1.fd7b30fe75452129dd4d92575b1b6643p-3, + -0x1.20p0, + 0x1.1b6db6p2 + }, + { // Entry 147 + 0x1.5ee2abfffc833087a8462d843d375f40p-1, + 0x1.221ffcp-1, + 0x1.62e42ep-1 + }, + { // Entry 148 + -0x1.5ee2abfffc833087a8462d843d375f40p-1, + -0x1.221ffcp-1, + 0x1.62e42ep-1 + }, + { // Entry 149 + 0x1.922dd2fea41a07a00852062680449192p-1, + 0x1.223224p9, + 0x1.222224p9 + }, + { // Entry 150 + -0x1.922dd2fea41a07a00852062680449192p-1, + -0x1.223224p9, + 0x1.222224p9 + }, + { // Entry 151 + 0x1.fd98765b7a311ad974b5861737a89126p-4, + 0x1.3024a6p-1, + 0x1.2ffffcp2 + }, + { // Entry 152 + -0x1.fd98765b7a311ad974b5861737a89126p-4, + -0x1.3024a6p-1, + 0x1.2ffffcp2 + }, + { // Entry 153 + 0x1.ff173f59cb25f4362c94ce6ab39ece70p-4, + 0x1.310b7ep-1, + 0x1.2ffffcp2 + }, + { // Entry 154 + -0x1.ff173f59cb25f4362c94ce6ab39ece70p-4, + -0x1.310b7ep-1, + 0x1.2ffffcp2 + }, + { // Entry 155 + 0x1.893661d985cfb6e78d6ed0749b2fd803p-1, + 0x1.31f564p-4, + 0x1.3ccc80p-4 + }, + { // Entry 156 + -0x1.893661d985cfb6e78d6ed0749b2fd803p-1, + -0x1.31f564p-4, + 0x1.3ccc80p-4 + }, + { // Entry 157 + 0x1.3800a6f8595ae7372b172ef6aec40af3p-28, + 0x1.38p-20, + 0x1.fffeeep7 + }, + { // Entry 158 + -0x1.3800a6f8595ae7372b172ef6aec40af3p-28, + -0x1.38p-20, + 0x1.fffeeep7 + }, + { // Entry 159 + 0x1.f51dec230b3dcdee4d4b104276bd091bp0, + 0x1.3a58f8p0, + -0x1.p-1 + }, + { // Entry 160 + -0x1.f51dec230b3dcdee4d4b104276bd091bp0, + -0x1.3a58f8p0, + -0x1.p-1 + }, + { // Entry 161 + 0x1.add4fcfffc818f75eda49eae0d8f98e2p-2, + 0x1.3cc366p-2, + 0x1.62e42ep-1 + }, + { // Entry 162 + -0x1.add4fcfffc818f75eda49eae0d8f98e2p-2, + -0x1.3cc366p-2, + 0x1.62e42ep-1 + }, + { // Entry 163 + 0x1.9d6394fffffe8990edfcf5c33f9e7bc1p0, + 0x1.3fc2e4p3, + -0x1.c28f5ep-2 + }, + { // Entry 164 + -0x1.9d6394fffffe8990edfcf5c33f9e7bc1p0, + -0x1.3fc2e4p3, + -0x1.c28f5ep-2 + }, + { // Entry 165 + 0x1.16d00513a5c2b116688fed7c9e6d7bf9p-3, + 0x1.40a050p-6, + 0x1.24924ap-3 + }, + { // Entry 166 + -0x1.16d00513a5c2b116688fed7c9e6d7bf9p-3, + -0x1.40a050p-6, + 0x1.24924ap-3 + }, + { // Entry 167 + 0x1.6d71ea27ddde729204699db97fdd037ep-1, + 0x1.41f070p2, + 0x1.73b782p2 + }, + { // Entry 168 + -0x1.6d71ea27ddde729204699db97fdd037ep-1, + -0x1.41f070p2, + 0x1.73b782p2 + }, + { // Entry 169 + 0x1.6e2ce2182a658d8450720e677f21ce61p-1, + 0x1.429ap9, + 0x1.7368e2p9 + }, + { // Entry 170 + -0x1.6e2ce2182a658d8450720e677f21ce61p-1, + -0x1.429ap9, + 0x1.7368e2p9 + }, + { // Entry 171 + 0x1.740a75f5e00f3c2a265818a8e05ccc99p-1, + 0x1.435e54p0, + 0x1.6bca20p0 + }, + { // Entry 172 + -0x1.740a75f5e00f3c2a265818a8e05ccc99p-1, + -0x1.435e54p0, + 0x1.6bca20p0 + }, + { // Entry 173 + 0x1.4eb92766fa1641bdcd6b72f3bd619251p-1, + 0x1.5baa3ap-2, + 0x1.c5c85cp-2 + }, + { // Entry 174 + -0x1.4eb92766fa1641bdcd6b72f3bd619251p-1, + -0x1.5baa3ap-2, + 0x1.c5c85cp-2 + }, + { // Entry 175 + 0x1.feb17ca8152a6f1c96ebab23e1ca4438p-4, + 0x1.5d6c50p-8, + 0x1.5c80p-5 + }, + { // Entry 176 + -0x1.feb17ca8152a6f1c96ebab23e1ca4438p-4, + -0x1.5d6c50p-8, + 0x1.5c80p-5 + }, + { // Entry 177 + 0x1.61e054ffff517564fbb75fa927e9317dp1, + 0x1.62b140p1, + -0x1.c0p2 + }, + { // Entry 178 + -0x1.61e054ffff517564fbb75fa927e9317dp1, + -0x1.62b140p1, + -0x1.c0p2 + }, + { // Entry 179 + 0x1.926064fffd342f8f129a70df92a458b3p-1, + 0x1.633de6p-1, + 0x1.62e42ep-1 + }, + { // Entry 180 + -0x1.926064fffd342f8f129a70df92a458b3p-1, + -0x1.633de6p-1, + 0x1.62e42ep-1 + }, + { // Entry 181 + 0x1.ddf15cfffeff907133df83405cf1c383p-2, + 0x1.65a3e2p-2, + 0x1.62e42ep-1 + }, + { // Entry 182 + -0x1.ddf15cfffeff907133df83405cf1c383p-2, + -0x1.65a3e2p-2, + 0x1.62e42ep-1 + }, + { // Entry 183 + 0x1.a8c692fc3efe50c92076f2cdd3f6bd92p0, + 0x1.68b44ep0, + -0x1.p-3 + }, + { // Entry 184 + -0x1.a8c692fc3efe50c92076f2cdd3f6bd92p0, + -0x1.68b44ep0, + -0x1.p-3 + }, + { // Entry 185 + 0x1.1d730dfffc0d10826bfff4268c4db210p0, + 0x1.6a0092p0, + 0x1.62e42ep-1 + }, + { // Entry 186 + -0x1.1d730dfffc0d10826bfff4268c4db210p0, + -0x1.6a0092p0, + 0x1.62e42ep-1 + }, + { // Entry 187 + 0x1.9a06c6fffcb000f0eb371998c338bdaep-1, + 0x1.6e04f2p-1, + 0x1.62e42ep-1 + }, + { // Entry 188 + -0x1.9a06c6fffcb000f0eb371998c338bdaep-1, + -0x1.6e04f2p-1, + 0x1.62e42ep-1 + }, + { // Entry 189 + 0x1.921f9f0000092b6cc81e3cd97531299cp0, + 0x1.70p-1, + 0x1.0011p-20 + }, + { // Entry 190 + -0x1.921f9f0000092b6cc81e3cd97531299cp0, + -0x1.70p-1, + 0x1.0011p-20 + }, + { // Entry 191 + 0x1.55a1f300040b007b9fcf88e0bbaa4bf9p0, + 0x1.707652p1, + 0x1.62e42ep-1 + }, + { // Entry 192 + -0x1.55a1f300040b007b9fcf88e0bbaa4bf9p0, + -0x1.707652p1, + 0x1.62e42ep-1 + }, + { // Entry 193 + 0x1.ffa33dcc72ce5a24fbffc472e6d8aa54p-5, + 0x1.77fffep-15, + 0x1.77c6e2p-11 + }, + { // Entry 194 + -0x1.ffa33dcc72ce5a24fbffc472e6d8aa54p-5, + -0x1.77fffep-15, + 0x1.77c6e2p-11 + }, + { // Entry 195 + 0x1.7702d9c0f7f4e1f5f65e806e4e9e2eb4p-3, + 0x1.7b4274p-2, + 0x1.000006p1 + }, + { // Entry 196 + -0x1.7702d9c0f7f4e1f5f65e806e4e9e2eb4p-3, + -0x1.7b4274p-2, + 0x1.000006p1 + }, + { // Entry 197 + 0x1.fac9255e2e84501d7f69135fa78a7842p-2, + 0x1.7c1570p-2, + 0x1.601e80p-1 + }, + { // Entry 198 + -0x1.fac9255e2e84501d7f69135fa78a7842p-2, + -0x1.7c1570p-2, + 0x1.601e80p-1 + }, + { // Entry 199 + 0x1.a4c2220003e9ff7184d11c11dbed790ap-1, + 0x1.7db652p-1, + 0x1.62e42ep-1 + }, + { // Entry 200 + -0x1.a4c2220003e9ff7184d11c11dbed790ap-1, + -0x1.7db652p-1, + 0x1.62e42ep-1 + }, + { // Entry 201 + 0x1.487f682022d3a5562109a0306dcb05a2p-1, + 0x1.7e7a9ap-2, + 0x1.p-1 + }, + { // Entry 202 + -0x1.487f682022d3a5562109a0306dcb05a2p-1, + -0x1.7e7a9ap-2, + 0x1.p-1 + }, + { // Entry 203 + 0x1.e48b2fddff19e1b2ad305bf85f553acfp0, + 0x1.7fbddep0, + -0x1.p-1 + }, + { // Entry 204 + -0x1.e48b2fddff19e1b2ad305bf85f553acfp0, + -0x1.7fbddep0, + -0x1.p-1 + }, + { // Entry 205 + 0x1.8000030000017ffff0ffffc44ccc87ccp-23, + 0x1.80p-23, + 0x1.fffffcp-1 + }, + { // Entry 206 + -0x1.8000030000017ffff0ffffc44ccc87ccp-23, + -0x1.80p-23, + 0x1.fffffcp-1 + }, + { // Entry 207 + 0x1.236ede000419f0232206a19dc1c9ba72p0, + 0x1.807cdcp0, + 0x1.62e42ep-1 + }, + { // Entry 208 + -0x1.236ede000419f0232206a19dc1c9ba72p0, + -0x1.807cdcp0, + 0x1.62e42ep-1 + }, + { // Entry 209 + 0x1.23af91000432ff7ca91b5869446d2677p0, + 0x1.817ccep0, + 0x1.62e42ep-1 + }, + { // Entry 210 + -0x1.23af91000432ff7ca91b5869446d2677p0, + -0x1.817ccep0, + 0x1.62e42ep-1 + }, + { // Entry 211 + 0x1.1d0d78ffde75e005ce13a48bb96c20d2p1, + 0x1.86bcf6p-9, + -0x1.2cde14p-9 + }, + { // Entry 212 + -0x1.1d0d78ffde75e005ce13a48bb96c20d2p1, + -0x1.86bcf6p-9, + -0x1.2cde14p-9 + }, + { // Entry 213 + 0x1.c40b44f7d49ec3bebbe6c143bb874988p-17, + 0x1.88p-7, + 0x1.bbfdfep9 + }, + { // Entry 214 + -0x1.c40b44f7d49ec3bebbe6c143bb874988p-17, + -0x1.88p-7, + 0x1.bbfdfep9 + }, + { // Entry 215 + 0x1.ac7dfffd2b94ebd2b4155d81fcb743c8p-1, + 0x1.8ba2bcp9, + 0x1.64d916p9 + }, + { // Entry 216 + -0x1.ac7dfffd2b94ebd2b4155d81fcb743c8p-1, + -0x1.8ba2bcp9, + 0x1.64d916p9 + }, + { // Entry 217 + 0x1.f4436c2918d5691620bddea5f0bdb99fp0, + 0x1.904a6ap9, + -0x1.42e220p8 + }, + { // Entry 218 + -0x1.f4436c2918d5691620bddea5f0bdb99fp0, + -0x1.904a6ap9, + -0x1.42e220p8 + }, + { // Entry 219 + 0x1.f280a4a85a9834808487443a22c27f9cp-4, + 0x1.90c864p-5, + 0x1.99999ap-2 + }, + { // Entry 220 + -0x1.f280a4a85a9834808487443a22c27f9cp-4, + -0x1.90c864p-5, + 0x1.99999ap-2 + }, + { // Entry 221 + 0x1.0a58d9000005f0ba9a470ce5241f1b9cp-1, + 0x1.969770p-2, + 0x1.62e42ep-1 + }, + { // Entry 222 + -0x1.0a58d9000005f0ba9a470ce5241f1b9cp-1, + -0x1.969770p-2, + 0x1.62e42ep-1 + }, + { // Entry 223 + 0x1.f730a597948e5c35433d522c24bdefa5p-1, + 0x1.9b2698p9, + 0x1.1219d6p9 + }, + { // Entry 224 + -0x1.f730a597948e5c35433d522c24bdefa5p-1, + -0x1.9b2698p9, + 0x1.1219d6p9 + }, + { // Entry 225 + 0x1.25c78f0002b5030803b34e0d3d565ec5p1, + 0x1.a99552p-9, + -0x1.788ee0p-9 + }, + { // Entry 226 + -0x1.25c78f0002b5030803b34e0d3d565ec5p1, + -0x1.a99552p-9, + -0x1.788ee0p-9 + }, + { // Entry 227 + 0x1.fec12756125a1c17f496ca7eff6b5d07p-4, + 0x1.aac766p-1, + 0x1.a99994p2 + }, + { // Entry 228 + -0x1.fec12756125a1c17f496ca7eff6b5d07p-4, + -0x1.aac766p-1, + 0x1.a99994p2 + }, + { // Entry 229 + 0x1.ff2726fffadc57a59c068daf94011a06p-2, + 0x1.acd9c8p-2, + 0x1.89469ep-1 + }, + { // Entry 230 + -0x1.ff2726fffadc57a59c068daf94011a06p-2, + -0x1.acd9c8p-2, + 0x1.89469ep-1 + }, + { // Entry 231 + 0x1.6cefa52cd49df53a19a9664ef79b5d21p-1, + 0x1.ba8cp-2, + 0x1.p-1 + }, + { // Entry 232 + -0x1.6cefa52cd49df53a19a9664ef79b5d21p-1, + -0x1.ba8cp-2, + 0x1.p-1 + }, + { // Entry 233 + 0x1.ffecd1bdfc10703be4cadb1ac64a6eacp-6, + 0x1.bf31e2p-5, + 0x1.bf1d60p0 + }, + { // Entry 234 + -0x1.ffecd1bdfc10703be4cadb1ac64a6eacp-6, + -0x1.bf31e2p-5, + 0x1.bf1d60p0 + }, + { // Entry 235 + 0x1.d93732f77c9157c16887ce5aa762f389p-6, + 0x1.c1aep-5, + 0x1.e66658p0 + }, + { // Entry 236 + -0x1.d93732f77c9157c16887ce5aa762f389p-6, + -0x1.c1aep-5, + 0x1.e66658p0 + }, + { // Entry 237 + 0x1.cea8bcf57199048990f21a209a2d2d3ep-45, + 0x1.c25c26p-44, + 0x1.f263a0p0 + }, + { // Entry 238 + -0x1.cea8bcf57199048990f21a209a2d2d3ep-45, + -0x1.c25c26p-44, + 0x1.f263a0p0 + }, + { // Entry 239 + 0x1.90004702e62bf58fd25e1cb1c208fb8bp-1, + 0x1.c8dcb8p2, + 0x1.ccaa94p2 + }, + { // Entry 240 + -0x1.90004702e62bf58fd25e1cb1c208fb8bp-1, + -0x1.c8dcb8p2, + 0x1.ccaa94p2 + }, + { // Entry 241 + 0x1.fd7c865a3e71ad0d8a724c912f6fb8b9p-4, + 0x1.d64866p-3, + 0x1.d629c0p0 + }, + { // Entry 242 + -0x1.fd7c865a3e71ad0d8a724c912f6fb8b9p-4, + -0x1.d64866p-3, + 0x1.d629c0p0 + }, + { // Entry 243 + 0x1.4aa669000170483715efe0528369e73ep-1, + 0x1.d7011cp0, + 0x1.3880c8p1 + }, + { // Entry 244 + -0x1.4aa669000170483715efe0528369e73ep-1, + -0x1.d7011cp0, + 0x1.3880c8p1 + }, + { // Entry 245 + 0x1.f420e6032da03c581c213d0cc2eacf5bp-2, + 0x1.db6e30p-2, + 0x1.bf62a4p-1 + }, + { // Entry 246 + -0x1.f420e6032da03c581c213d0cc2eacf5bp-2, + -0x1.db6e30p-2, + 0x1.bf62a4p-1 + }, + { // Entry 247 + 0x1.922dc15dd25e294f02361f0292bc0df8p-1, + 0x1.dddddcp-2, + 0x1.ddc3a4p-2 + }, + { // Entry 248 + -0x1.922dc15dd25e294f02361f0292bc0df8p-1, + -0x1.dddddcp-2, + 0x1.ddc3a4p-2 + }, + { // Entry 249 + 0x1.9d6fd902defaede7830883b7a2788da8p-1, + 0x1.de61fcp9, + 0x1.c9b22cp9 + }, + { // Entry 250 + -0x1.9d6fd902defaede7830883b7a2788da8p-1, + -0x1.de61fcp9, + 0x1.c9b22cp9 + }, + { // Entry 251 + 0x1.7ee180ca27095c5506b0fa68e94004d0p-4, + 0x1.dffffep-2, + 0x1.40p2 + }, + { // Entry 252 + -0x1.7ee180ca27095c5506b0fa68e94004d0p-4, + -0x1.dffffep-2, + 0x1.40p2 + }, + { // Entry 253 + 0x1.7d848f000bfaf243f75b3a1218dad94ep0, + 0x1.dffffep2, + 0x1.35c292p-1 + }, + { // Entry 254 + -0x1.7d848f000bfaf243f75b3a1218dad94ep0, + -0x1.dffffep2, + 0x1.35c292p-1 + }, + { // Entry 255 + 0x1.dfffe63601c1383bc54eea3773a4624fp-11, + 0x1.dffffep10, + 0x1.000008p21 + }, + { // Entry 256 + -0x1.dfffe63601c1383bc54eea3773a4624fp-11, + -0x1.dffffep10, + 0x1.000008p21 + }, + { // Entry 257 + 0x1.8f82d1b1443d17b008f18f7822175902p-4, + 0x1.e0f078p-6, + 0x1.333334p-2 + }, + { // Entry 258 + -0x1.8f82d1b1443d17b008f18f7822175902p-4, + -0x1.e0f078p-6, + 0x1.333334p-2 + }, + { // Entry 259 + 0x1.07795d7bc568d7597605f1e44388198ep1, + 0x1.e2be36p-2, + -0x1.fffffcp-3 + }, + { // Entry 260 + -0x1.07795d7bc568d7597605f1e44388198ep1, + -0x1.e2be36p-2, + -0x1.fffffcp-3 + }, + { // Entry 261 + 0x1.fff95e57a0b39bb8afc31a89674dc197p-92, + 0x1.e62448p8, + 0x1.e62a94p99 + }, + { // Entry 262 + -0x1.fff95e57a0b39bb8afc31a89674dc197p-92, + -0x1.e62448p8, + 0x1.e62a94p99 + }, + { // Entry 263 + 0x1.0e06f7000a4e54e7181ed79d635dead3p0, + 0x1.e783d4p-1, + 0x1.148cf8p-1 + }, + { // Entry 264 + -0x1.0e06f7000a4e54e7181ed79d635dead3p0, + -0x1.e783d4p-1, + 0x1.148cf8p-1 + }, + { // Entry 265 + 0x1.fea63fbd167cf3f4fa0987d1e28cd75fp-4, + 0x1.e7a55ap-1, + 0x1.e66660p2 + }, + { // Entry 266 + -0x1.fea63fbd167cf3f4fa0987d1e28cd75fp-4, + -0x1.e7a55ap-1, + 0x1.e66660p2 + }, + { // Entry 267 + 0x1.d32abcfffffee42f5ad6cc888072e445p0, + 0x1.ece6d4p0, + -0x1.p-1 + }, + { // Entry 268 + -0x1.d32abcfffffee42f5ad6cc888072e445p0, + -0x1.ece6d4p0, + -0x1.p-1 + }, + { // Entry 269 + 0x1.ecac96fad1d02ec25eecde4b7f0b97eap-4, + 0x1.ef1060p-5, + 0x1.p-1 + }, + { // Entry 270 + -0x1.ecac96fad1d02ec25eecde4b7f0b97eap-4, + -0x1.ef1060p-5, + 0x1.p-1 + }, + { // Entry 271 + 0x1.1202c2e6b84549d2bdd30f506adfa9d4p0, + 0x1.f07bd2p9, + 0x1.0f83dcp9 + }, + { // Entry 272 + -0x1.1202c2e6b84549d2bdd30f506adfa9d4p0, + -0x1.f07bd2p9, + 0x1.0f83dcp9 + }, + { // Entry 273 + 0x1.ffe7d9701b27043f401f2771fcff61aap-6, + 0x1.fddffep15, + 0x1.fdcd90p20 + }, + { // Entry 274 + -0x1.ffe7d9701b27043f401f2771fcff61aap-6, + -0x1.fddffep15, + 0x1.fdcd90p20 + }, + { // Entry 275 + 0x1.919c94434fc91fb77041e0d4eaadf614p-1, + 0x1.fefffep-10, + 0x1.0003p-9 + }, + { // Entry 276 + -0x1.919c94434fc91fb77041e0d4eaadf614p-1, + -0x1.fefffep-10, + 0x1.0003p-9 + }, + { // Entry 277 + 0x1.1b57780820085bc0391cbd61b2fd2335p0, + 0x1.ff8ffep-20, + 0x1.000088p-20 + }, + { // Entry 278 + -0x1.1b57780820085bc0391cbd61b2fd2335p0, + -0x1.ff8ffep-20, + 0x1.000088p-20 + }, + { // Entry 279 + 0x1.ff976af6e817ac0b343cc79da075b8a8p-6, + 0x1.ffc0p-139, + 0x1.fffep-134 + }, + { // Entry 280 + -0x1.ff976af6e817ac0b343cc79da075b8a8p-6, + -0x1.ffc0p-139, + 0x1.fffep-134 + }, + { // Entry 281 + 0x1.ff7fc3e4933e894c72260e0533856313p-4, + 0x1.fff77ep-5, + 0x1.fdcd2ep-2 + }, + { // Entry 282 + -0x1.ff7fc3e4933e894c72260e0533856313p-4, + -0x1.fff77ep-5, + 0x1.fdcd2ep-2 + }, + { // Entry 283 + 0x1.ff571a1535e84a3ed0617f7c8bd43c9dp-5, + 0x1.ffffdep-3, + 0x1.fffe7ep1 + }, + { // Entry 284 + -0x1.ff571a1535e84a3ed0617f7c8bd43c9dp-5, + -0x1.ffffdep-3, + 0x1.fffe7ep1 + }, + { // Entry 285 + 0x1.fffffdfffff7ffffdfffff7ffffdffffp-127, + 0x1.fffff6p0, + 0x1.fffff8p126 + }, + { // Entry 286 + -0x1.fffffdfffff7ffffdfffff7ffffdffffp-127, + -0x1.fffff6p0, + 0x1.fffff8p126 + }, + { // Entry 287 + 0x1.ffffec000077fffd05556b3554a0155bp-34, + 0x1.fffff8p-2, + 0x1.000006p32 + }, + { // Entry 288 + -0x1.ffffec000077fffd05556b3554a0155bp-34, + -0x1.fffff8p-2, + 0x1.000006p32 + }, + { // Entry 289 + 0x1.55554fffffffffffffffffffffffffffp-104, + 0x1.fffff8p-127, + 0x1.80p-23 + }, + { // Entry 290 + -0x1.55554fffffffffffffffffffffffffffp-104, + -0x1.fffff8p-127, + 0x1.80p-23 + }, + { // Entry 291 + 0x1.ff54beeda807aa4ec5698ce8cc7dcba8p-2, + 0x1.fffffcp-1, + 0x1.d55552p0 + }, + { // Entry 292 + -0x1.ff54beeda807aa4ec5698ce8cc7dcba8p-2, + -0x1.fffffcp-1, + 0x1.d55552p0 + }, + { // Entry 293 + 0x1.fffff800000fffffe000003fffff80p-129, + 0x1.fffffcp-2, + 0x1.000002p127 + }, + { // Entry 294 + -0x1.fffff800000fffffe000003fffff80p-129, + -0x1.fffffcp-2, + 0x1.000002p127 + }, + { // Entry 295 + 0x1.d7625deb9d3d113e0be1ba5dac42e6c0p-2, + 0x1.fffffcp-2, + 0x1.022228p0 + }, + { // Entry 296 + -0x1.d7625deb9d3d113e0be1ba5dac42e6c0p-2, + -0x1.fffffcp-2, + 0x1.022228p0 + }, + { // Entry 297 + 0x1.0c30b75fc8b0637fcbaf3ed21f47bbd5p-118, + 0x1.fffffcp-122, + 0x1.e8ba40p-4 + }, + { // Entry 298 + -0x1.0c30b75fc8b0637fcbaf3ed21f47bbd5p-118, + -0x1.fffffcp-122, + 0x1.e8ba40p-4 + }, + { // Entry 299 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.fffffcp-126, + 0x1.p1 + }, + { // Entry 300 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.fffffcp-126, + 0x1.p1 + }, + { // Entry 301 + 0x1.f5b748fc32492f9b0e1a9e29c7b40a45p-3, + 0x1.fffffcp20, + 0x1.00000ap23 + }, + { // Entry 302 + -0x1.f5b748fc32492f9b0e1a9e29c7b40a45p-3, + -0x1.fffffcp20, + 0x1.00000ap23 + }, + { // Entry 303 + 0x1.e8009efffc72402f56046bbb3775db7ep-2, + 0x1.6e6d52p-2, + 0x1.62e42ep-1 + }, + { // Entry 304 + -0x1.e8009efffc72402f56046bbb3775db7ep-2, + -0x1.6e6d52p-2, + 0x1.62e42ep-1 + }, + { // Entry 305 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.p0, + -0x1.p0 + }, + { // Entry 306 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.p0, + -0x1.p0 + }, + { // Entry 307 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p0, + 0x1.p0 + }, + { // Entry 308 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p0, + 0x1.p0 + }, + { // Entry 309 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.p0, + -0x1.p0 + }, + { // Entry 310 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.p0, + -0x1.p0 + }, + { // Entry 311 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p0, + 0x1.p0 + }, + { // Entry 312 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p0, + 0x1.p0 + }, + { // Entry 313 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p0, + 0x1.p0 + }, + { // Entry 314 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p0, + 0x1.p0 + }, + { // Entry 315 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.p0, + 0x1.p3 + }, + { // Entry 316 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.p0, + 0x1.p3 + }, + { // Entry 317 + 0x1.7249faa996a216a33079d20319e727c3p0, + 0x1.p3, + 0x1.p0 + }, + { // Entry 318 + -0x1.7249faa996a216a33079d20319e727c3p0, + -0x1.p3, + 0x1.p0 + }, + { // Entry 319 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p3, + 0x1.p3 + }, + { // Entry 320 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p3, + 0x1.p3 + }, + { // Entry 321 + 0x1.ffffd5555bbbba9729ab7aac089473a3p-10, + 0x1.p0, + 0x1.p9 + }, + { // Entry 322 + -0x1.ffffd5555bbbba9729ab7aac089473a3p-10, + -0x1.p0, + 0x1.p9 + }, + { // Entry 323 + 0x1.fffff55555bbbbb72972d00cfde752f9p-11, + 0x1.p0, + 0x1.p10 + }, + { // Entry 324 + -0x1.fffff55555bbbbb72972d00cfde752f9p-11, + -0x1.p0, + 0x1.p10 + }, + { // Entry 325 + 0x1.fff555bbb729ab77cf18ac802beec090p-7, + 0x1.p3, + 0x1.p9 + }, + { // Entry 326 + -0x1.fff555bbb729ab77cf18ac802beec090p-7, + -0x1.p3, + 0x1.p9 + }, + { // Entry 327 + 0x1.fffd555bbba972d00c46a3f77cc15e8ep-8, + 0x1.p3, + 0x1.p10 + }, + { // Entry 328 + -0x1.fffd555bbba972d00c46a3f77cc15e8ep-8, + -0x1.p3, + 0x1.p10 + }, + { // Entry 329 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.p0, + 0x1.p100 + }, + { // Entry 330 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.p0, + 0x1.p100 + }, + { // Entry 331 + 0x1.ffffffffffffffffffffffffffffffffp-102, + 0x1.p0, + 0x1.p101 + }, + { // Entry 332 + -0x1.ffffffffffffffffffffffffffffffffp-102, + -0x1.p0, + 0x1.p101 + }, + { // Entry 333 + 0x1.ffffffffffffffffffffffffffffffffp-98, + 0x1.p3, + 0x1.p100 + }, + { // Entry 334 + -0x1.ffffffffffffffffffffffffffffffffp-98, + -0x1.p3, + 0x1.p100 + }, + { // Entry 335 + 0x1.ffffffffffffffffffffffffffffffffp-99, + 0x1.p3, + 0x1.p101 + }, + { // Entry 336 + -0x1.ffffffffffffffffffffffffffffffffp-99, + -0x1.p3, + 0x1.p101 + }, + { // Entry 337 + 0x1.919fb54eed7a957ae3c25a3856b61485p0, + 0x1.p9, + 0x1.p0 + }, + { // Entry 338 + -0x1.919fb54eed7a957ae3c25a3856b61485p0, + -0x1.p9, + 0x1.p0 + }, + { // Entry 339 + 0x1.8e1fca98cb63311299ee93be01605c21p0, + 0x1.p9, + 0x1.p3 + }, + { // Entry 340 + -0x1.8e1fca98cb63311299ee93be01605c21p0, + -0x1.p9, + 0x1.p3 + }, + { // Entry 341 + 0x1.91dfb5459826ccf212a796bd00187cb7p0, + 0x1.p10, + 0x1.p0 + }, + { // Entry 342 + -0x1.91dfb5459826ccf212a796bd00187cb7p0, + -0x1.p10, + 0x1.p0 + }, + { // Entry 343 + 0x1.901fb7eee715daf6b9807e730a3b7843p0, + 0x1.p10, + 0x1.p3 + }, + { // Entry 344 + -0x1.901fb7eee715daf6b9807e730a3b7843p0, + -0x1.p10, + 0x1.p3 + }, + { // Entry 345 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p9, + 0x1.p9 + }, + { // Entry 346 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p9, + 0x1.p9 + }, + { // Entry 347 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.p9, + 0x1.p10 + }, + { // Entry 348 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.p9, + 0x1.p10 + }, + { // Entry 349 + 0x1.1b6e192ebbe446c6d19aa220a39af320p0, + 0x1.p10, + 0x1.p9 + }, + { // Entry 350 + -0x1.1b6e192ebbe446c6d19aa220a39af320p0, + -0x1.p10, + 0x1.p9 + }, + { // Entry 351 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p10, + 0x1.p10 + }, + { // Entry 352 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p10, + 0x1.p10 + }, + { // Entry 353 + 0x1.ffffffffffffffffffffffffffffffffp-92, + 0x1.p9, + 0x1.p100 + }, + { // Entry 354 + -0x1.ffffffffffffffffffffffffffffffffp-92, + -0x1.p9, + 0x1.p100 + }, + { // Entry 355 + 0x1.ffffffffffffffffffffffffffffffffp-93, + 0x1.p9, + 0x1.p101 + }, + { // Entry 356 + -0x1.ffffffffffffffffffffffffffffffffp-93, + -0x1.p9, + 0x1.p101 + }, + { // Entry 357 + 0x1.ffffffffffffffffffffffffffffffffp-91, + 0x1.p10, + 0x1.p100 + }, + { // Entry 358 + -0x1.ffffffffffffffffffffffffffffffffp-91, + -0x1.p10, + 0x1.p100 + }, + { // Entry 359 + 0x1.ffffffffffffffffffffffffffffffffp-92, + 0x1.p10, + 0x1.p101 + }, + { // Entry 360 + -0x1.ffffffffffffffffffffffffffffffffp-92, + -0x1.p10, + 0x1.p101 + }, + { // Entry 361 + 0x1.921fb54442d18469898cc516f1b839a2p0, + 0x1.p100, + 0x1.p0 + }, + { // Entry 362 + -0x1.921fb54442d18469898cc516f1b839a2p0, + -0x1.p100, + 0x1.p0 + }, + { // Entry 363 + 0x1.921fb54442d18469898cc51681b839a2p0, + 0x1.p100, + 0x1.p3 + }, + { // Entry 364 + -0x1.921fb54442d18469898cc51681b839a2p0, + -0x1.p100, + 0x1.p3 + }, + { // Entry 365 + 0x1.921fb54442d18469898cc516f9b839a2p0, + 0x1.p101, + 0x1.p0 + }, + { // Entry 366 + -0x1.921fb54442d18469898cc516f9b839a2p0, + -0x1.p101, + 0x1.p0 + }, + { // Entry 367 + 0x1.921fb54442d18469898cc516c1b839a2p0, + 0x1.p101, + 0x1.p3 + }, + { // Entry 368 + -0x1.921fb54442d18469898cc516c1b839a2p0, + -0x1.p101, + 0x1.p3 + }, + { // Entry 369 + 0x1.921fb54442d18469898cc4f701b839a2p0, + 0x1.p100, + 0x1.p9 + }, + { // Entry 370 + -0x1.921fb54442d18469898cc4f701b839a2p0, + -0x1.p100, + 0x1.p9 + }, + { // Entry 371 + 0x1.921fb54442d18469898cc4d701b839a2p0, + 0x1.p100, + 0x1.p10 + }, + { // Entry 372 + -0x1.921fb54442d18469898cc4d701b839a2p0, + -0x1.p100, + 0x1.p10 + }, + { // Entry 373 + 0x1.921fb54442d18469898cc50701b839a2p0, + 0x1.p101, + 0x1.p9 + }, + { // Entry 374 + -0x1.921fb54442d18469898cc50701b839a2p0, + -0x1.p101, + 0x1.p9 + }, + { // Entry 375 + 0x1.921fb54442d18469898cc4f701b839a2p0, + 0x1.p101, + 0x1.p10 + }, + { // Entry 376 + -0x1.921fb54442d18469898cc4f701b839a2p0, + -0x1.p101, + 0x1.p10 + }, + { // Entry 377 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p100, + 0x1.p100 + }, + { // Entry 378 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p100, + 0x1.p100 + }, + { // Entry 379 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.p100, + 0x1.p101 + }, + { // Entry 380 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.p100, + 0x1.p101 + }, + { // Entry 381 + 0x1.1b6e192ebbe446c6d19aa220a39af320p0, + 0x1.p101, + 0x1.p100 + }, + { // Entry 382 + -0x1.1b6e192ebbe446c6d19aa220a39af320p0, + -0x1.p101, + 0x1.p100 + }, + { // Entry 383 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p101, + 0x1.p101 + }, + { // Entry 384 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p101, + 0x1.p101 + }, + { // Entry 385 + -0.0f, + -0x1.p-149, + 0x1.fffffep0 + }, + { // Entry 386 + 0.0f, + 0x1.p-149, + 0x1.fffffep0 + }, + { // Entry 387 + -0.0f, + -0x1.p-149, + 0x1.p1 + }, + { // Entry 388 + 0.0f, + 0x1.p-149, + 0x1.p1 + }, + { // Entry 389 + -0.0f, + -0x1.p-149, + 0x1.000002p1 + }, + { // Entry 390 + 0.0f, + 0x1.p-149, + 0x1.000002p1 + }, + { // Entry 391 + 0.0, + 0.0, + 0x1.fffffep0 + }, + { // Entry 392 + 0.0, + 0.0, + 0x1.p1 + }, + { // Entry 393 + 0.0, + 0.0, + 0x1.000002p1 + }, + { // Entry 394 + 0.0f, + 0x1.p-149, + 0x1.fffffep0 + }, + { // Entry 395 + -0.0f, + -0x1.p-149, + 0x1.fffffep0 + }, + { // Entry 396 + 0.0f, + 0x1.p-149, + 0x1.p1 + }, + { // Entry 397 + -0.0f, + -0x1.p-149, + 0x1.p1 + }, + { // Entry 398 + 0.0f, + 0x1.p-149, + 0x1.000002p1 + }, + { // Entry 399 + -0.0f, + -0x1.p-149, + 0x1.000002p1 + }, + { // Entry 400 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.fffffep-4, + 0x1.fffffep0 + }, + { // Entry 401 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.fffffep-4, + 0x1.fffffep0 + }, + { // Entry 402 + 0x1.ff55b974cde098738e59c07aa48dd110p-5, + 0x1.fffffep-4, + 0x1.p1 + }, + { // Entry 403 + -0x1.ff55b974cde098738e59c07aa48dd110p-5, + -0x1.fffffep-4, + 0x1.p1 + }, + { // Entry 404 + 0x1.ff55b578c9f078a33719a85ef29e8a20p-5, + 0x1.fffffep-4, + 0x1.000002p1 + }, + { // Entry 405 + -0x1.ff55b578c9f078a33719a85ef29e8a20p-5, + -0x1.fffffep-4, + 0x1.000002p1 + }, + { // Entry 406 + 0x1.ff55bd70d1de9a7192507f037e5414bbp-5, + 0x1.p-3, + 0x1.fffffep0 + }, + { // Entry 407 + -0x1.ff55bd70d1de9a7192507f037e5414bbp-5, + -0x1.p-3, + 0x1.fffffep0 + }, + { // Entry 408 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.p-3, + 0x1.p1 + }, + { // Entry 409 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.p-3, + 0x1.p1 + }, + { // Entry 410 + 0x1.ff55b776cbea888962afd8276c01a25ep-5, + 0x1.p-3, + 0x1.000002p1 + }, + { // Entry 411 + -0x1.ff55b776cbea888962afd8276c01a25ep-5, + -0x1.p-3, + 0x1.000002p1 + }, + { // Entry 412 + 0x1.ff55c16cd5de8a91665b84abb95e0cc7p-5, + 0x1.000002p-3, + 0x1.fffffep0 + }, + { // Entry 413 + -0x1.ff55c16cd5de8a91665b84abb95e0cc7p-5, + -0x1.000002p-3, + 0x1.fffffep0 + }, + { // Entry 414 + 0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + 0x1.000002p-3, + 0x1.p1 + }, + { // Entry 415 + -0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + -0x1.000002p-3, + 0x1.p1 + }, + { // Entry 416 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.000002p-3, + 0x1.000002p1 + }, + { // Entry 417 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.000002p-3, + 0x1.000002p1 + }, + { // Entry 418 + -0x1.ff55c16cd5de8a91665b84abb95e0cc7p-5, + -0x1.000002p-3, + 0x1.fffffep0 + }, + { // Entry 419 + 0x1.ff55c16cd5de8a91665b84abb95e0cc7p-5, + 0x1.000002p-3, + 0x1.fffffep0 + }, + { // Entry 420 + -0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + -0x1.000002p-3, + 0x1.p1 + }, + { // Entry 421 + 0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + 0x1.000002p-3, + 0x1.p1 + }, + { // Entry 422 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.000002p-3, + 0x1.000002p1 + }, + { // Entry 423 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.000002p-3, + 0x1.000002p1 + }, + { // Entry 424 + -0x1.ff55bd70d1de9a7192507f037e5414bbp-5, + -0x1.p-3, + 0x1.fffffep0 + }, + { // Entry 425 + 0x1.ff55bd70d1de9a7192507f037e5414bbp-5, + 0x1.p-3, + 0x1.fffffep0 + }, + { // Entry 426 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.p-3, + 0x1.p1 + }, + { // Entry 427 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.p-3, + 0x1.p1 + }, + { // Entry 428 + -0x1.ff55b776cbea888962afd8276c01a25ep-5, + -0x1.p-3, + 0x1.000002p1 + }, + { // Entry 429 + 0x1.ff55b776cbea888962afd8276c01a25ep-5, + 0x1.p-3, + 0x1.000002p1 + }, + { // Entry 430 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.fffffep-4, + 0x1.fffffep0 + }, + { // Entry 431 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.fffffep-4, + 0x1.fffffep0 + }, + { // Entry 432 + -0x1.ff55b974cde098738e59c07aa48dd110p-5, + -0x1.fffffep-4, + 0x1.p1 + }, + { // Entry 433 + 0x1.ff55b974cde098738e59c07aa48dd110p-5, + 0x1.fffffep-4, + 0x1.p1 + }, + { // Entry 434 + -0x1.ff55b578c9f078a33719a85ef29e8a20p-5, + -0x1.fffffep-4, + 0x1.000002p1 + }, + { // Entry 435 + 0x1.ff55b578c9f078a33719a85ef29e8a20p-5, + 0x1.fffffep-4, + 0x1.000002p1 + }, + { // Entry 436 + 0x1.a271f5940186465d406645186f3ff94ap-2, + 0x1.bb67acp-1, + 0x1.fffffep0 + }, + { // Entry 437 + -0x1.a271f5940186465d406645186f3ff94ap-2, + -0x1.bb67acp-1, + 0x1.fffffep0 + }, + { // Entry 438 + 0x1.a271f41e9cbda3a2694ca4df76dc4a86p-2, + 0x1.bb67acp-1, + 0x1.p1 + }, + { // Entry 439 + -0x1.a271f41e9cbda3a2694ca4df76dc4a86p-2, + -0x1.bb67acp-1, + 0x1.p1 + }, + { // Entry 440 + 0x1.a271f133d333bccb9aba4067b1d551a2p-2, + 0x1.bb67acp-1, + 0x1.000002p1 + }, + { // Entry 441 + -0x1.a271f133d333bccb9aba4067b1d551a2p-2, + -0x1.bb67acp-1, + 0x1.000002p1 + }, + { // Entry 442 + 0x1.a271f74329f3af14ab02f72e14627e3ep-2, + 0x1.bb67aep-1, + 0x1.fffffep0 + }, + { // Entry 443 + -0x1.a271f74329f3af14ab02f72e14627e3ep-2, + -0x1.bb67aep-1, + 0x1.fffffep0 + }, + { // Entry 444 + 0x1.a271f5cdc529e5591cbe01f0dff5d436p-2, + 0x1.bb67aep-1, + 0x1.p1 + }, + { // Entry 445 + -0x1.a271f5cdc529e5591cbe01f0dff5d436p-2, + -0x1.bb67aep-1, + 0x1.p1 + }, + { // Entry 446 + 0x1.a271f2e2fb9db080e2f78cbaa7ae76dap-2, + 0x1.bb67aep-1, + 0x1.000002p1 + }, + { // Entry 447 + -0x1.a271f2e2fb9db080e2f78cbaa7ae76dap-2, + -0x1.bb67aep-1, + 0x1.000002p1 + }, + { // Entry 448 + 0x1.a271f8f252607a942b743a29251f41b3p-2, + 0x1.bb67b0p-1, + 0x1.fffffep0 + }, + { // Entry 449 + -0x1.a271f8f252607a942b743a29251f41b3p-2, + -0x1.bb67b0p-1, + 0x1.fffffep0 + }, + { // Entry 450 + 0x1.a271f77ced9589d7e7784be8c59b289ep-2, + 0x1.bb67b0p-1, + 0x1.p1 + }, + { // Entry 451 + -0x1.a271f77ced9589d7e7784be8c59b289ep-2, + -0x1.bb67b0p-1, + 0x1.p1 + }, + { // Entry 452 + 0x1.a271f492240706fe45667de97ee1051bp-2, + 0x1.bb67b0p-1, + 0x1.000002p1 + }, + { // Entry 453 + -0x1.a271f492240706fe45667de97ee1051bp-2, + -0x1.bb67b0p-1, + 0x1.000002p1 + }, + { // Entry 454 + -0x1.a271f8f252607a942b743a29251f41b3p-2, + -0x1.bb67b0p-1, + 0x1.fffffep0 + }, + { // Entry 455 + 0x1.a271f8f252607a942b743a29251f41b3p-2, + 0x1.bb67b0p-1, + 0x1.fffffep0 + }, + { // Entry 456 + -0x1.a271f77ced9589d7e7784be8c59b289ep-2, + -0x1.bb67b0p-1, + 0x1.p1 + }, + { // Entry 457 + 0x1.a271f77ced9589d7e7784be8c59b289ep-2, + 0x1.bb67b0p-1, + 0x1.p1 + }, + { // Entry 458 + -0x1.a271f492240706fe45667de97ee1051bp-2, + -0x1.bb67b0p-1, + 0x1.000002p1 + }, + { // Entry 459 + 0x1.a271f492240706fe45667de97ee1051bp-2, + 0x1.bb67b0p-1, + 0x1.000002p1 + }, + { // Entry 460 + -0x1.a271f74329f3af14ab02f72e14627e3ep-2, + -0x1.bb67aep-1, + 0x1.fffffep0 + }, + { // Entry 461 + 0x1.a271f74329f3af14ab02f72e14627e3ep-2, + 0x1.bb67aep-1, + 0x1.fffffep0 + }, + { // Entry 462 + -0x1.a271f5cdc529e5591cbe01f0dff5d436p-2, + -0x1.bb67aep-1, + 0x1.p1 + }, + { // Entry 463 + 0x1.a271f5cdc529e5591cbe01f0dff5d436p-2, + 0x1.bb67aep-1, + 0x1.p1 + }, + { // Entry 464 + -0x1.a271f2e2fb9db080e2f78cbaa7ae76dap-2, + -0x1.bb67aep-1, + 0x1.000002p1 + }, + { // Entry 465 + 0x1.a271f2e2fb9db080e2f78cbaa7ae76dap-2, + 0x1.bb67aep-1, + 0x1.000002p1 + }, + { // Entry 466 + -0x1.a271f5940186465d406645186f3ff94ap-2, + -0x1.bb67acp-1, + 0x1.fffffep0 + }, + { // Entry 467 + 0x1.a271f5940186465d406645186f3ff94ap-2, + 0x1.bb67acp-1, + 0x1.fffffep0 + }, + { // Entry 468 + -0x1.a271f41e9cbda3a2694ca4df76dc4a86p-2, + -0x1.bb67acp-1, + 0x1.p1 + }, + { // Entry 469 + 0x1.a271f41e9cbda3a2694ca4df76dc4a86p-2, + 0x1.bb67acp-1, + 0x1.p1 + }, + { // Entry 470 + -0x1.a271f133d333bccb9aba4067b1d551a2p-2, + -0x1.bb67acp-1, + 0x1.000002p1 + }, + { // Entry 471 + 0x1.a271f133d333bccb9aba4067b1d551a2p-2, + 0x1.bb67acp-1, + 0x1.000002p1 + }, + { // Entry 472 + 0x1.e1fc087d068cbfd25c64d0da9961de0dp-1, + 0x1.5f89e0p1, + 0x1.fffffep0 + }, + { // Entry 473 + -0x1.e1fc087d068cbfd25c64d0da9961de0dp-1, + -0x1.5f89e0p1, + 0x1.fffffep0 + }, + { // Entry 474 + 0x1.e1fc078961a1b8d58eff0ef3573e5ebbp-1, + 0x1.5f89e0p1, + 0x1.p1 + }, + { // Entry 475 + -0x1.e1fc078961a1b8d58eff0ef3573e5ebbp-1, + -0x1.5f89e0p1, + 0x1.p1 + }, + { // Entry 476 + 0x1.e1fc05a217cda574231fab7ef56a802ep-1, + 0x1.5f89e0p1, + 0x1.000002p1 + }, + { // Entry 477 + -0x1.e1fc05a217cda574231fab7ef56a802ep-1, + -0x1.5f89e0p1, + 0x1.000002p1 + }, + { // Entry 478 + 0x1.e1fc09dfe1de87be63d2efa76aedeef1p-1, + 0x1.5f89e2p1, + 0x1.fffffep0 + }, + { // Entry 479 + -0x1.e1fc09dfe1de87be63d2efa76aedeef1p-1, + -0x1.5f89e2p1, + 0x1.fffffep0 + }, + { // Entry 480 + 0x1.e1fc08ec3cf3edab43c88895dc8bd149p-1, + 0x1.5f89e2p1, + 0x1.p1 + }, + { // Entry 481 + -0x1.e1fc08ec3cf3edab43c88895dc8bd149p-1, + -0x1.5f89e2p1, + 0x1.p1 + }, + { // Entry 482 + 0x1.e1fc0704f320b41d2df91c8fc7a785a6p-1, + 0x1.5f89e2p1, + 0x1.000002p1 + }, + { // Entry 483 + -0x1.e1fc0704f320b41d2df91c8fc7a785a6p-1, + -0x1.5f89e2p1, + 0x1.000002p1 + }, + { // Entry 484 + 0x1.e1fc0b42bd2dac34dc336ebe1a5dd639p-1, + 0x1.5f89e4p1, + 0x1.fffffep0 + }, + { // Entry 485 + -0x1.e1fc0b42bd2dac34dc336ebe1a5dd639p-1, + -0x1.5f89e4p1, + 0x1.fffffep0 + }, + { // Entry 486 + 0x1.e1fc0a4f18437f0b6a89382bec836a03p-1, + 0x1.5f89e4p1, + 0x1.p1 + }, + { // Entry 487 + -0x1.e1fc0a4f18437f0b6a89382bec836a03p-1, + -0x1.5f89e4p1, + 0x1.p1 + }, + { // Entry 488 + 0x1.e1fc0867ce711f50acd36ef1986a9ed3p-1, + 0x1.5f89e4p1, + 0x1.000002p1 + }, + { // Entry 489 + -0x1.e1fc0867ce711f50acd36ef1986a9ed3p-1, + -0x1.5f89e4p1, + 0x1.000002p1 + }, + { // Entry 490 + -0x1.e1fc0b42bd2dac34dc336ebe1a5dd639p-1, + -0x1.5f89e4p1, + 0x1.fffffep0 + }, + { // Entry 491 + 0x1.e1fc0b42bd2dac34dc336ebe1a5dd639p-1, + 0x1.5f89e4p1, + 0x1.fffffep0 + }, + { // Entry 492 + -0x1.e1fc0a4f18437f0b6a89382bec836a03p-1, + -0x1.5f89e4p1, + 0x1.p1 + }, + { // Entry 493 + 0x1.e1fc0a4f18437f0b6a89382bec836a03p-1, + 0x1.5f89e4p1, + 0x1.p1 + }, + { // Entry 494 + -0x1.e1fc0867ce711f50acd36ef1986a9ed3p-1, + -0x1.5f89e4p1, + 0x1.000002p1 + }, + { // Entry 495 + 0x1.e1fc0867ce711f50acd36ef1986a9ed3p-1, + 0x1.5f89e4p1, + 0x1.000002p1 + }, + { // Entry 496 + -0x1.e1fc09dfe1de87be63d2efa76aedeef1p-1, + -0x1.5f89e2p1, + 0x1.fffffep0 + }, + { // Entry 497 + 0x1.e1fc09dfe1de87be63d2efa76aedeef1p-1, + 0x1.5f89e2p1, + 0x1.fffffep0 + }, + { // Entry 498 + -0x1.e1fc08ec3cf3edab43c88895dc8bd149p-1, + -0x1.5f89e2p1, + 0x1.p1 + }, + { // Entry 499 + 0x1.e1fc08ec3cf3edab43c88895dc8bd149p-1, + 0x1.5f89e2p1, + 0x1.p1 + }, + { // Entry 500 + -0x1.e1fc0704f320b41d2df91c8fc7a785a6p-1, + -0x1.5f89e2p1, + 0x1.000002p1 + }, + { // Entry 501 + 0x1.e1fc0704f320b41d2df91c8fc7a785a6p-1, + 0x1.5f89e2p1, + 0x1.000002p1 + }, + { // Entry 502 + -0x1.e1fc087d068cbfd25c64d0da9961de0dp-1, + -0x1.5f89e0p1, + 0x1.fffffep0 + }, + { // Entry 503 + 0x1.e1fc087d068cbfd25c64d0da9961de0dp-1, + 0x1.5f89e0p1, + 0x1.fffffep0 + }, + { // Entry 504 + -0x1.e1fc078961a1b8d58eff0ef3573e5ebbp-1, + -0x1.5f89e0p1, + 0x1.p1 + }, + { // Entry 505 + 0x1.e1fc078961a1b8d58eff0ef3573e5ebbp-1, + 0x1.5f89e0p1, + 0x1.p1 + }, + { // Entry 506 + -0x1.e1fc05a217cda574231fab7ef56a802ep-1, + -0x1.5f89e0p1, + 0x1.000002p1 + }, + { // Entry 507 + 0x1.e1fc05a217cda574231fab7ef56a802ep-1, + 0x1.5f89e0p1, + 0x1.000002p1 + }, + { // Entry 508 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 509 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 510 + 0x1.921fb44442d1046989621a6c570d8f04p-1, + 0x1.fffffep0, + 0x1.p1 + }, + { // Entry 511 + -0x1.921fb44442d1046989621a6c570d8f04p-1, + -0x1.fffffep0, + 0x1.p1 + }, + { // Entry 512 + 0x1.921fb24442d304698b0cc51401b839c8p-1, + 0x1.fffffep0, + 0x1.000002p1 + }, + { // Entry 513 + -0x1.921fb24442d304698b0cc51401b839c8p-1, + -0x1.fffffep0, + 0x1.000002p1 + }, + { // Entry 514 + 0x1.921fb64442d2046989b76fc1ac62e440p-1, + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 515 + -0x1.921fb64442d2046989b76fc1ac62e440p-1, + -0x1.p1, + 0x1.fffffep0 + }, + { // Entry 516 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p1, + 0x1.p1 + }, + { // Entry 517 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p1, + 0x1.p1 + }, + { // Entry 518 + 0x1.921fb34442d3846988376fc1ac62e5e6p-1, + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 519 + -0x1.921fb34442d3846988376fc1ac62e5e6p-1, + -0x1.p1, + 0x1.000002p1 + }, + { // Entry 520 + 0x1.921fb84442d00469880cc51a01b8397bp-1, + 0x1.000002p1, + 0x1.fffffep0 + }, + { // Entry 521 + -0x1.921fb84442d00469880cc51a01b8397bp-1, + -0x1.000002p1, + 0x1.fffffep0 + }, + { // Entry 522 + 0x1.921fb74442cf84698ae21a6c570d8d5ep-1, + 0x1.000002p1, + 0x1.p1 + }, + { // Entry 523 + -0x1.921fb74442cf84698ae21a6c570d8d5ep-1, + -0x1.000002p1, + 0x1.p1 + }, + { // Entry 524 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.000002p1, + 0x1.000002p1 + }, + { // Entry 525 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.000002p1, + 0x1.000002p1 + }, + { // Entry 526 + 0x1.ffffffd555555bbbbbba972972d00dp-14, + 0x1.fffffep-13, + 0x1.fffffep0 + }, + { // Entry 527 + -0x1.ffffffd555555bbbbbba972972d00dp-14, + -0x1.fffffep-13, + 0x1.fffffep0 + }, + { // Entry 528 + 0x1.fffffdd55555dbbbbb1a9729e57ab751p-14, + 0x1.fffffep-13, + 0x1.p1 + }, + { // Entry 529 + -0x1.fffffdd55555dbbbbb1a9729e57ab751p-14, + -0x1.fffffep-13, + 0x1.p1 + }, + { // Entry 530 + 0x1.fffff9d55562dbbb9bda97790acf3db2p-14, + 0x1.fffffep-13, + 0x1.000002p1 + }, + { // Entry 531 + -0x1.fffff9d55562dbbb9bda97790acf3db2p-14, + -0x1.fffffep-13, + 0x1.000002p1 + }, + { // Entry 532 + 0x1.000000eaaaab6dddde6d4b951012b14cp-13, + 0x1.p-12, + 0x1.fffffep0 + }, + { // Entry 533 + -0x1.000000eaaaab6dddde6d4b951012b14cp-13, + -0x1.p-12, + 0x1.fffffep0 + }, + { // Entry 534 + 0x1.ffffffd555555bbbbbba972972d00dp-14, + 0x1.p-12, + 0x1.p1 + }, + { // Entry 535 + -0x1.ffffffd555555bbbbbba972972d00dp-14, + -0x1.p-12, + 0x1.p1 + }, + { // Entry 536 + 0x1.fffffbd5555e5bbba77a97585824f2d2p-14, + 0x1.p-12, + 0x1.000002p1 + }, + { // Entry 537 + -0x1.fffffbd5555e5bbba77a97585824f2d2p-14, + -0x1.p-12, + 0x1.000002p1 + }, + { // Entry 538 + 0x1.000002eaaaacedddde0d4b917d68009bp-13, + 0x1.000002p-12, + 0x1.fffffep0 + }, + { // Entry 539 + -0x1.000002eaaaacedddde0d4b917d68009bp-13, + -0x1.000002p-12, + 0x1.fffffep0 + }, + { // Entry 540 + 0x1.000001eaaaaa2ddddcfd4b9486bd5ca7p-13, + 0x1.000002p-12, + 0x1.p1 + }, + { // Entry 541 + -0x1.000001eaaaaa2ddddcfd4b9486bd5ca7p-13, + -0x1.000002p-12, + 0x1.p1 + }, + { // Entry 542 + 0x1.ffffffd555555bbbbbba972972d00dp-14, + 0x1.000002p-12, + 0x1.000002p1 + }, + { // Entry 543 + -0x1.ffffffd555555bbbbbba972972d00dp-14, + -0x1.000002p-12, + 0x1.000002p1 + }, + { // Entry 544 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 545 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 546 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p-149, + 0.0 + }, + { // Entry 547 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p-149, + 0.0 + }, + { // Entry 548 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 549 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 550 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0, + -0x1.p-149 + }, + { // Entry 551 + 0.0, + 0.0, + 0.0 + }, + { // Entry 552 + 0.0, + 0.0, + 0x1.p-149 + }, + { // Entry 553 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 554 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 555 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p-149, + 0.0 + }, + { // Entry 556 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p-149, + 0.0 + }, + { // Entry 557 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 558 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 559 + -0.0f, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 560 + 0.0f, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 561 + 0.0, + 0.0, + 0x1.fffffep127 + }, + { // Entry 562 + 0.0f, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 563 + -0.0f, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 564 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 565 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 566 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0, + -0x1.fffffep127 + }, + { // Entry 567 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 568 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 569 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 570 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 571 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + 0.0 + }, + { // Entry 572 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + 0.0 + }, + { // Entry 573 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 574 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 575 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 576 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 577 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + 0.0 + }, + { // Entry 578 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + 0.0 + }, + { // Entry 579 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 580 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 581 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 582 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 583 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 584 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 585 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.fffffep0, + 0x1.fffffep56 + }, + { // Entry 586 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.fffffep0, + 0x1.fffffep56 + }, + { // Entry 587 + 0x1.fffffdffffffffffffffffffffff5555p-57, + 0x1.fffffep0, + 0x1.p57 + }, + { // Entry 588 + -0x1.fffffdffffffffffffffffffffff5555p-57, + -0x1.fffffep0, + 0x1.p57 + }, + { // Entry 589 + 0x1.fffffa00000bffffe800002ffffef555p-57, + 0x1.fffffep0, + 0x1.000002p57 + }, + { // Entry 590 + -0x1.fffffa00000bffffe800002ffffef555p-57, + -0x1.fffffep0, + 0x1.000002p57 + }, + { // Entry 591 + 0x1.000001000001000001000000ffffabaap-56, + 0x1.p1, + 0x1.fffffep56 + }, + { // Entry 592 + -0x1.000001000001000001000000ffffabaap-56, + -0x1.p1, + 0x1.fffffep56 + }, + { // Entry 593 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.p1, + 0x1.p57 + }, + { // Entry 594 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.p1, + 0x1.p57 + }, + { // Entry 595 + 0x1.fffffc000007fffff000001fffff1555p-57, + 0x1.p1, + 0x1.000002p57 + }, + { // Entry 596 + -0x1.fffffc000007fffff000001fffff1555p-57, + -0x1.p1, + 0x1.000002p57 + }, + { // Entry 597 + 0x1.000003000003000003000002ffffadaap-56, + 0x1.000002p1, + 0x1.fffffep56 + }, + { // Entry 598 + -0x1.000003000003000003000002ffffadaap-56, + -0x1.000002p1, + 0x1.fffffep56 + }, + { // Entry 599 + 0x1.000001ffffffffffffffffffffffaaaap-56, + 0x1.000002p1, + 0x1.p57 + }, + { // Entry 600 + -0x1.000001ffffffffffffffffffffffaaaap-56, + -0x1.000002p1, + 0x1.p57 + }, + { // Entry 601 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.000002p1, + 0x1.000002p57 + }, + { // Entry 602 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.000002p1, + 0x1.000002p57 + }, + { // Entry 603 + -0x1.000003000003000003000002ffffadaap-56, + -0x1.000002p1, + 0x1.fffffep56 + }, + { // Entry 604 + 0x1.000003000003000003000002ffffadaap-56, + 0x1.000002p1, + 0x1.fffffep56 + }, + { // Entry 605 + -0x1.000001ffffffffffffffffffffffaaaap-56, + -0x1.000002p1, + 0x1.p57 + }, + { // Entry 606 + 0x1.000001ffffffffffffffffffffffaaaap-56, + 0x1.000002p1, + 0x1.p57 + }, + { // Entry 607 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.000002p1, + 0x1.000002p57 + }, + { // Entry 608 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.000002p1, + 0x1.000002p57 + }, + { // Entry 609 + -0x1.000001000001000001000000ffffabaap-56, + -0x1.p1, + 0x1.fffffep56 + }, + { // Entry 610 + 0x1.000001000001000001000000ffffabaap-56, + 0x1.p1, + 0x1.fffffep56 + }, + { // Entry 611 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.p1, + 0x1.p57 + }, + { // Entry 612 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.p1, + 0x1.p57 + }, + { // Entry 613 + -0x1.fffffc000007fffff000001fffff1555p-57, + -0x1.p1, + 0x1.000002p57 + }, + { // Entry 614 + 0x1.fffffc000007fffff000001fffff1555p-57, + 0x1.p1, + 0x1.000002p57 + }, + { // Entry 615 + -0x1.ffffffffffffffffffffffffffff5555p-57, + -0x1.fffffep0, + 0x1.fffffep56 + }, + { // Entry 616 + 0x1.ffffffffffffffffffffffffffff5555p-57, + 0x1.fffffep0, + 0x1.fffffep56 + }, + { // Entry 617 + -0x1.fffffdffffffffffffffffffffff5555p-57, + -0x1.fffffep0, + 0x1.p57 + }, + { // Entry 618 + 0x1.fffffdffffffffffffffffffffff5555p-57, + 0x1.fffffep0, + 0x1.p57 + }, + { // Entry 619 + -0x1.fffffa00000bffffe800002ffffef555p-57, + -0x1.fffffep0, + 0x1.000002p57 + }, + { // Entry 620 + 0x1.fffffa00000bffffe800002ffffef555p-57, + 0x1.fffffep0, + 0x1.000002p57 + }, + { // Entry 621 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.fffffep1, + 0x1.fffffep31 + }, + { // Entry 622 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.fffffep1, + 0x1.fffffep31 + }, + { // Entry 623 + 0x1.fffffdfffffffff555557555553555bbp-31, + 0x1.fffffep1, + 0x1.p32 + }, + { // Entry 624 + -0x1.fffffdfffffffff555557555553555bbp-31, + -0x1.fffffep1, + 0x1.p32 + }, + { // Entry 625 + 0x1.fffffa00000bfff53d55b5855374f5c2p-31, + 0x1.fffffep1, + 0x1.000002p32 + }, + { // Entry 626 + -0x1.fffffa00000bfff53d55b5855374f5c2p-31, + -0x1.fffffep1, + 0x1.000002p32 + }, + { // Entry 627 + 0x1.000001000000fffaabaa9aabaa8aabddp-30, + 0x1.p2, + 0x1.fffffep31 + }, + { // Entry 628 + -0x1.000001000000fffaabaa9aabaa8aabddp-30, + -0x1.p2, + 0x1.fffffep31 + }, + { // Entry 629 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.p2, + 0x1.p32 + }, + { // Entry 630 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.p2, + 0x1.p32 + }, + { // Entry 631 + 0x1.fffffc000007fff545559575545515bfp-31, + 0x1.p2, + 0x1.000002p32 + }, + { // Entry 632 + -0x1.fffffc000007fff545559575545515bfp-31, + -0x1.p2, + 0x1.000002p32 + }, + { // Entry 633 + 0x1.000003000002fffaadaa7aada9eaaddbp-30, + 0x1.000002p2, + 0x1.fffffep31 + }, + { // Entry 634 + -0x1.000003000002fffaadaa7aada9eaaddbp-30, + -0x1.000002p2, + 0x1.fffffep31 + }, + { // Entry 635 + 0x1.000001fffffffffaaaaa8aaaaa6aaaddp-30, + 0x1.000002p2, + 0x1.p32 + }, + { // Entry 636 + -0x1.000001fffffffffaaaaa8aaaaa6aaaddp-30, + -0x1.000002p2, + 0x1.p32 + }, + { // Entry 637 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.000002p2, + 0x1.000002p32 + }, + { // Entry 638 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.000002p2, + 0x1.000002p32 + }, + { // Entry 639 + -0x1.000003000002fffaadaa7aada9eaaddbp-30, + -0x1.000002p-2, + 0x1.fffffep27 + }, + { // Entry 640 + 0x1.000003000002fffaadaa7aada9eaaddbp-30, + 0x1.000002p-2, + 0x1.fffffep27 + }, + { // Entry 641 + -0x1.000001fffffffffaaaaa8aaaaa6aaaddp-30, + -0x1.000002p-2, + 0x1.p28 + }, + { // Entry 642 + 0x1.000001fffffffffaaaaa8aaaaa6aaaddp-30, + 0x1.000002p-2, + 0x1.p28 + }, + { // Entry 643 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.000002p-2, + 0x1.000002p28 + }, + { // Entry 644 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.000002p-2, + 0x1.000002p28 + }, + { // Entry 645 + -0x1.000001000000fffaabaa9aabaa8aabddp-30, + -0x1.p-2, + 0x1.fffffep27 + }, + { // Entry 646 + 0x1.000001000000fffaabaa9aabaa8aabddp-30, + 0x1.p-2, + 0x1.fffffep27 + }, + { // Entry 647 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.p-2, + 0x1.p28 + }, + { // Entry 648 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.p-2, + 0x1.p28 + }, + { // Entry 649 + -0x1.fffffc000007fff545559575545515bfp-31, + -0x1.p-2, + 0x1.000002p28 + }, + { // Entry 650 + 0x1.fffffc000007fff545559575545515bfp-31, + 0x1.p-2, + 0x1.000002p28 + }, + { // Entry 651 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.fffffep-3, + 0x1.fffffep27 + }, + { // Entry 652 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.fffffep-3, + 0x1.fffffep27 + }, + { // Entry 653 + -0x1.fffffdfffffffff555557555553555bbp-31, + -0x1.fffffep-3, + 0x1.p28 + }, + { // Entry 654 + 0x1.fffffdfffffffff555557555553555bbp-31, + 0x1.fffffep-3, + 0x1.p28 + }, + { // Entry 655 + -0x1.fffffa00000bfff53d55b5855374f5c2p-31, + -0x1.fffffep-3, + 0x1.000002p28 + }, + { // Entry 656 + 0x1.fffffa00000bfff53d55b5855374f5c2p-31, + 0x1.fffffep-3, + 0x1.000002p28 + }, + { // Entry 657 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.fffffep2, + 0x1.fffffep2 + }, + { // Entry 658 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.fffffep2, + 0x1.fffffep2 + }, + { // Entry 659 + 0x1.921fb44442d1046989621a6c570d8f04p-1, + 0x1.fffffep2, + 0x1.p3 + }, + { // Entry 660 + -0x1.921fb44442d1046989621a6c570d8f04p-1, + -0x1.fffffep2, + 0x1.p3 + }, + { // Entry 661 + 0x1.921fb24442d304698b0cc51401b839c8p-1, + 0x1.fffffep2, + 0x1.000002p3 + }, + { // Entry 662 + -0x1.921fb24442d304698b0cc51401b839c8p-1, + -0x1.fffffep2, + 0x1.000002p3 + }, + { // Entry 663 + 0x1.921fb64442d2046989b76fc1ac62e440p-1, + 0x1.p3, + 0x1.fffffep2 + }, + { // Entry 664 + -0x1.921fb64442d2046989b76fc1ac62e440p-1, + -0x1.p3, + 0x1.fffffep2 + }, + { // Entry 665 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p3, + 0x1.p3 + }, + { // Entry 666 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p3, + 0x1.p3 + }, + { // Entry 667 + 0x1.921fb34442d3846988376fc1ac62e5e6p-1, + 0x1.p3, + 0x1.000002p3 + }, + { // Entry 668 + -0x1.921fb34442d3846988376fc1ac62e5e6p-1, + -0x1.p3, + 0x1.000002p3 + }, + { // Entry 669 + 0x1.921fb84442d00469880cc51a01b8397bp-1, + 0x1.000002p3, + 0x1.fffffep2 + }, + { // Entry 670 + -0x1.921fb84442d00469880cc51a01b8397bp-1, + -0x1.000002p3, + 0x1.fffffep2 + }, + { // Entry 671 + 0x1.921fb74442cf84698ae21a6c570d8d5ep-1, + 0x1.000002p3, + 0x1.p3 + }, + { // Entry 672 + -0x1.921fb74442cf84698ae21a6c570d8d5ep-1, + -0x1.000002p3, + 0x1.p3 + }, + { // Entry 673 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.000002p3, + 0x1.000002p3 + }, + { // Entry 674 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.000002p3, + 0x1.000002p3 + }, + { // Entry 675 + -0x1.dac67522e883aedcc9c473438e936964p-2, + -0x1.000002p3, + 0x1.fffffep3 + }, + { // Entry 676 + 0x1.dac67522e883aedcc9c473438e936964p-2, + 0x1.000002p3, + 0x1.fffffep3 + }, + { // Entry 677 + -0x1.dac673894ee6e20ffe552cf613035e41p-2, + -0x1.000002p3, + 0x1.p4 + }, + { // Entry 678 + 0x1.dac673894ee6e20ffe552cf613035e41p-2, + 0x1.000002p3, + 0x1.p4 + }, + { // Entry 679 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.000002p3, + 0x1.000002p4 + }, + { // Entry 680 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.000002p3, + 0x1.000002p4 + }, + { // Entry 681 + -0x1.dac671efb54fd7d28ecd5330c89a3d73p-2, + -0x1.p3, + 0x1.fffffep3 + }, + { // Entry 682 + 0x1.dac671efb54fd7d28ecd5330c89a3d73p-2, + 0x1.p3, + 0x1.fffffep3 + }, + { // Entry 683 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.p3, + 0x1.p4 + }, + { // Entry 684 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.p3, + 0x1.p4 + }, + { // Entry 685 + -0x1.dac66d22e886e20ff6fe7a2378baf6f9p-2, + -0x1.p3, + 0x1.000002p4 + }, + { // Entry 686 + 0x1.dac66d22e886e20ff6fe7a2378baf6f9p-2, + 0x1.p3, + 0x1.000002p4 + }, + { // Entry 687 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.fffffep2, + 0x1.fffffep3 + }, + { // Entry 688 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.fffffep2, + 0x1.fffffep3 + }, + { // Entry 689 + -0x1.dac66ebc821b0b05c115b007ee262f78p-2, + -0x1.fffffep2, + 0x1.p4 + }, + { // Entry 690 + 0x1.dac66ebc821b0b05c115b007ee262f78p-2, + 0x1.fffffep2, + 0x1.p4 + }, + { // Entry 691 + -0x1.dac66b894eeee20ff7663e0a055c2460p-2, + -0x1.fffffep2, + 0x1.000002p4 + }, + { // Entry 692 + 0x1.dac66b894eeee20ff7663e0a055c2460p-2, + 0x1.fffffep2, + 0x1.000002p4 + }, + { // Entry 693 + 0x1.72c43fa570aa5c9e564c7f0a5befa484p1, + 0x1.fffffep2, + -0x1.000002p5 + }, + { // Entry 694 + -0x1.72c43fa570aa5c9e564c7f0a5befa484p1, + -0x1.fffffep2, + -0x1.000002p5 + }, + { // Entry 695 + 0x1.72c43f69346ec6ea833e8c8f811d5b23p1, + 0x1.fffffep2, + -0x1.p5 + }, + { // Entry 696 + -0x1.72c43f69346ec6ea833e8c8f811d5b23p1, + -0x1.fffffep2, + -0x1.p5 + }, + { // Entry 697 + 0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + 0x1.fffffep2, + -0x1.fffffep4 + }, + { // Entry 698 + -0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + -0x1.fffffep2, + -0x1.fffffep4 + }, + { // Entry 699 + 0x1.72c43f87528c71e0c59cd3cd4eedc91cp1, + 0x1.p3, + -0x1.000002p5 + }, + { // Entry 700 + -0x1.72c43f87528c71e0c59cd3cd4eedc91cp1, + -0x1.p3, + -0x1.000002p5 + }, + { // Entry 701 + 0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + 0x1.p3, + -0x1.p5 + }, + { // Entry 702 + -0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + -0x1.p3, + -0x1.p5 + }, + { // Entry 703 + 0x1.72c43f2cf8326c9028ca86607b667a8cp1, + 0x1.p3, + -0x1.fffffep4 + }, + { // Entry 704 + -0x1.72c43f2cf8326c9028ca86607b667a8cp1, + -0x1.p3, + -0x1.fffffep4 + }, + { // Entry 705 + 0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + 0x1.000002p3, + -0x1.000002p5 + }, + { // Entry 706 + -0x1.72c43f4b1650a706dbd3d13842c3f6a5p1, + -0x1.000002p3, + -0x1.000002p5 + }, + { // Entry 707 + 0x1.72c43f0eda1471e0c4cf752a26ca10a6p1, + 0x1.000002p3, + -0x1.p5 + }, + { // Entry 708 + -0x1.72c43f0eda1471e0c4cf752a26ca10a6p1, + -0x1.000002p3, + -0x1.p5 + }, + { // Entry 709 + 0x1.72c43ef0bbf60243faa66eaf95b8eb8ep1, + 0x1.000002p3, + -0x1.fffffep4 + }, + { // Entry 710 + -0x1.72c43ef0bbf60243faa66eaf95b8eb8ep1, + -0x1.000002p3, + -0x1.fffffep4 + }, + { // Entry 711 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.fffffep2, + 0x1.fffffep5 + }, + { // Entry 712 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.fffffep2, + 0x1.fffffep5 + }, + { // Entry 713 + 0x1.fd5ba7b2a374dc8497123b64b398aae2p-4, + 0x1.fffffep2, + 0x1.p6 + }, + { // Entry 714 + -0x1.fd5ba7b2a374dc8497123b64b398aae2p-4, + -0x1.fffffep2, + 0x1.p6 + }, + { // Entry 715 + 0x1.fd5ba3c2647c7ef6c76d6d5ea97bab75p-4, + 0x1.fffffep2, + 0x1.000002p6 + }, + { // Entry 716 + -0x1.fd5ba3c2647c7ef6c76d6d5ea97bab75p-4, + -0x1.fffffep2, + 0x1.000002p6 + }, + { // Entry 717 + 0x1.fd5baba2e27ac4e31ede5c4d3485ebacp-4, + 0x1.p3, + 0x1.fffffep5 + }, + { // Entry 718 + -0x1.fd5baba2e27ac4e31ede5c4d3485ebacp-4, + -0x1.p3, + 0x1.fffffep5 + }, + { // Entry 719 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.p3, + 0x1.p6 + }, + { // Entry 720 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.p3, + 0x1.p6 + }, + { // Entry 721 + 0x1.fd5ba5ba83faad9ea550e6d54b02d0f9p-4, + 0x1.p3, + 0x1.000002p6 + }, + { // Entry 722 + -0x1.fd5ba5ba83faad9ea550e6d54b02d0f9p-4, + -0x1.p3, + 0x1.000002p6 + }, + { // Entry 723 + 0x1.fd5baf932182675568b9d1daf2fd1727p-4, + 0x1.000002p3, + 0x1.fffffep5 + }, + { // Entry 724 + -0x1.fd5baf932182675568b9d1daf2fd1727p-4, + -0x1.000002p3, + 0x1.fffffep5 + }, + { // Entry 725 + 0x1.fd5bad9b01faad9eb46ef9bda99d4fdap-4, + 0x1.000002p3, + 0x1.p6 + }, + { // Entry 726 + -0x1.fd5bad9b01faad9eb46ef9bda99d4fdap-4, + -0x1.000002p3, + 0x1.p6 + }, + { // Entry 727 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.000002p3, + 0x1.000002p6 + }, + { // Entry 728 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.000002p3, + 0x1.000002p6 + }, + { // Entry 729 + -0x1.ff55c16cd5de8a91665b84abb95e0cc7p-5, + -0x1.000002p3, + 0x1.fffffep6 + }, + { // Entry 730 + 0x1.ff55c16cd5de8a91665b84abb95e0cc7p-5, + 0x1.000002p3, + 0x1.fffffep6 + }, + { // Entry 731 + -0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + -0x1.000002p3, + 0x1.p7 + }, + { // Entry 732 + 0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + 0x1.000002p3, + 0x1.p7 + }, + { // Entry 733 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.000002p3, + 0x1.000002p7 + }, + { // Entry 734 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.000002p3, + 0x1.000002p7 + }, + { // Entry 735 + -0x1.ff55bd70d1de9a7192507f037e5414bbp-5, + -0x1.p3, + 0x1.fffffep6 + }, + { // Entry 736 + 0x1.ff55bd70d1de9a7192507f037e5414bbp-5, + 0x1.p3, + 0x1.fffffep6 + }, + { // Entry 737 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.p3, + 0x1.p7 + }, + { // Entry 738 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.p3, + 0x1.p7 + }, + { // Entry 739 + -0x1.ff55b776cbea888962afd8276c01a25ep-5, + -0x1.p3, + 0x1.000002p7 + }, + { // Entry 740 + 0x1.ff55b776cbea888962afd8276c01a25ep-5, + 0x1.p3, + 0x1.000002p7 + }, + { // Entry 741 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.fffffep2, + 0x1.fffffep6 + }, + { // Entry 742 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.fffffep2, + 0x1.fffffep6 + }, + { // Entry 743 + -0x1.ff55b974cde098738e59c07aa48dd110p-5, + -0x1.fffffep2, + 0x1.p7 + }, + { // Entry 744 + 0x1.ff55b974cde098738e59c07aa48dd110p-5, + 0x1.fffffep2, + 0x1.p7 + }, + { // Entry 745 + -0x1.ff55b578c9f078a33719a85ef29e8a20p-5, + -0x1.fffffep2, + 0x1.000002p7 + }, + { // Entry 746 + 0x1.ff55b578c9f078a33719a85ef29e8a20p-5, + 0x1.fffffep2, + 0x1.000002p7 + }, + { // Entry 747 + 0x1.0468a9467e7938105dfef0f3f2ae89fdp1, + 0x1.fffffep2, + -0x1.000002p2 + }, + { // Entry 748 + -0x1.0468a9467e7938105dfef0f3f2ae89fdp1, + -0x1.fffffep2, + -0x1.000002p2 + }, + { // Entry 749 + 0x1.0468a8e01812bd2f16a00cf199ef647fp1, + 0x1.fffffep2, + -0x1.p2 + }, + { // Entry 750 + -0x1.0468a8e01812bd2f16a00cf199ef647fp1, + -0x1.fffffep2, + -0x1.p2 + }, + { // Entry 751 + 0x1.0468a8ace4df610620bf7406afeac012p1, + 0x1.fffffep2, + -0x1.fffffep1 + }, + { // Entry 752 + -0x1.0468a8ace4df610620bf7406afeac012p1, + -0x1.fffffep2, + -0x1.fffffep1 + }, + { // Entry 753 + 0x1.0468a9134b459e76c491082a433c8899p1, + 0x1.p3, + -0x1.000002p2 + }, + { // Entry 754 + -0x1.0468a9134b459e76c491082a433c8899p1, + -0x1.p3, + -0x1.000002p2 + }, + { // Entry 755 + 0x1.0468a8ace4df610620bf7406afeac012p1, + 0x1.p3, + -0x1.p2 + }, + { // Entry 756 + -0x1.0468a8ace4df610620bf7406afeac012p1, + -0x1.p3, + -0x1.p2 + }, + { // Entry 757 + 0x1.0468a879b1ac23957ce9188c7ea0e2c0p1, + 0x1.p3, + -0x1.fffffep1 + }, + { // Entry 758 + -0x1.0468a879b1ac23957ce9188c7ea0e2c0p1, + -0x1.p3, + -0x1.fffffep1 + }, + { // Entry 759 + 0x1.0468a8ace4df610620bf7406afeac012p1, + 0x1.000002p3, + -0x1.000002p2 + }, + { // Entry 760 + -0x1.0468a8ace4df610620bf7406afeac012p1, + -0x1.000002p3, + -0x1.000002p2 + }, + { // Entry 761 + 0x1.0468a8467e799e76c3a631cfeff37bb0p1, + 0x1.000002p3, + -0x1.p2 + }, + { // Entry 762 + -0x1.0468a8467e799e76c3a631cfeff37bb0p1, + -0x1.000002p3, + -0x1.p2 + }, + { // Entry 763 + 0x1.0468a8134b469e76c3b32a4cc187a15dp1, + 0x1.000002p3, + -0x1.fffffep1 + }, + { // Entry 764 + -0x1.0468a8134b469e76c3b32a4cc187a15dp1, + -0x1.000002p3, + -0x1.fffffep1 + }, + { // Entry 765 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.fffffep-103, + 0x1.fffffep-3 + }, + { // Entry 766 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.fffffep-103, + 0x1.fffffep-3 + }, + { // Entry 767 + 0x1.fffffdffffffffffffffffffffffffffp-101, + 0x1.fffffep-103, + 0x1.p-2 + }, + { // Entry 768 + -0x1.fffffdffffffffffffffffffffffffffp-101, + -0x1.fffffep-103, + 0x1.p-2 + }, + { // Entry 769 + 0x1.fffffa00000bffffe800002fffffa0p-101, + 0x1.fffffep-103, + 0x1.000002p-2 + }, + { // Entry 770 + -0x1.fffffa00000bffffe800002fffffa0p-101, + -0x1.fffffep-103, + 0x1.000002p-2 + }, + { // Entry 771 + 0x1.000001000001000001000001000001p-100, + 0x1.p-102, + 0x1.fffffep-3 + }, + { // Entry 772 + -0x1.000001000001000001000001000001p-100, + -0x1.p-102, + 0x1.fffffep-3 + }, + { // Entry 773 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.p-102, + 0x1.p-2 + }, + { // Entry 774 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.p-102, + 0x1.p-2 + }, + { // Entry 775 + 0x1.fffffc000007fffff000001fffffc0p-101, + 0x1.p-102, + 0x1.000002p-2 + }, + { // Entry 776 + -0x1.fffffc000007fffff000001fffffc0p-101, + -0x1.p-102, + 0x1.000002p-2 + }, + { // Entry 777 + 0x1.000003000003000003000003000003p-100, + 0x1.000002p-102, + 0x1.fffffep-3 + }, + { // Entry 778 + -0x1.000003000003000003000003000003p-100, + -0x1.000002p-102, + 0x1.fffffep-3 + }, + { // Entry 779 + 0x1.000001ffffffffffffffffffffffffffp-100, + 0x1.000002p-102, + 0x1.p-2 + }, + { // Entry 780 + -0x1.000001ffffffffffffffffffffffffffp-100, + -0x1.000002p-102, + 0x1.p-2 + }, + { // Entry 781 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.000002p-102, + 0x1.000002p-2 + }, + { // Entry 782 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.000002p-102, + 0x1.000002p-2 + }, + { // Entry 783 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.fffffcp2, + 0x1.fffffcp102 + }, + { // Entry 784 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.fffffcp2, + 0x1.fffffcp102 + }, + { // Entry 785 + 0x1.fffffdfffffdfffffdfffffdfffffdffp-101, + 0x1.fffffcp2, + 0x1.fffffep102 + }, + { // Entry 786 + -0x1.fffffdfffffdfffffdfffffdfffffdffp-101, + -0x1.fffffcp2, + 0x1.fffffep102 + }, + { // Entry 787 + 0x1.fffffbffffffffffffffffffffffffffp-101, + 0x1.fffffcp2, + 0x1.p103 + }, + { // Entry 788 + -0x1.fffffbffffffffffffffffffffffffffp-101, + -0x1.fffffcp2, + 0x1.p103 + }, + { // Entry 789 + 0x1.fffff800000fffffe000003fffff80p-101, + 0x1.fffffcp2, + 0x1.000002p103 + }, + { // Entry 790 + -0x1.fffff800000fffffe000003fffff80p-101, + -0x1.fffffcp2, + 0x1.000002p103 + }, + { // Entry 791 + 0x1.fffff400002fffff400002fffff4p-101, + 0x1.fffffcp2, + 0x1.000004p103 + }, + { // Entry 792 + -0x1.fffff400002fffff400002fffff4p-101, + -0x1.fffffcp2, + 0x1.000004p103 + }, + { // Entry 793 + 0x1.000001000002000004000008000010p-100, + 0x1.fffffep2, + 0x1.fffffcp102 + }, + { // Entry 794 + -0x1.000001000002000004000008000010p-100, + -0x1.fffffep2, + 0x1.fffffcp102 + }, + { // Entry 795 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.fffffep2, + 0x1.fffffep102 + }, + { // Entry 796 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.fffffep2, + 0x1.fffffep102 + }, + { // Entry 797 + 0x1.fffffdffffffffffffffffffffffffffp-101, + 0x1.fffffep2, + 0x1.p103 + }, + { // Entry 798 + -0x1.fffffdffffffffffffffffffffffffffp-101, + -0x1.fffffep2, + 0x1.p103 + }, + { // Entry 799 + 0x1.fffffa00000bffffe800002fffffa0p-101, + 0x1.fffffep2, + 0x1.000002p103 + }, + { // Entry 800 + -0x1.fffffa00000bffffe800002fffffa0p-101, + -0x1.fffffep2, + 0x1.000002p103 + }, + { // Entry 801 + 0x1.fffff6000027ffff6000027ffff6p-101, + 0x1.fffffep2, + 0x1.000004p103 + }, + { // Entry 802 + -0x1.fffff6000027ffff6000027ffff6p-101, + -0x1.fffffep2, + 0x1.000004p103 + }, + { // Entry 803 + 0x1.000002000004000008000010000020p-100, + 0x1.p3, + 0x1.fffffcp102 + }, + { // Entry 804 + -0x1.000002000004000008000010000020p-100, + -0x1.p3, + 0x1.fffffcp102 + }, + { // Entry 805 + 0x1.000001000001000001000001000001p-100, + 0x1.p3, + 0x1.fffffep102 + }, + { // Entry 806 + -0x1.000001000001000001000001000001p-100, + -0x1.p3, + 0x1.fffffep102 + }, + { // Entry 807 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.p3, + 0x1.p103 + }, + { // Entry 808 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.p3, + 0x1.p103 + }, + { // Entry 809 + 0x1.fffffc000007fffff000001fffffc0p-101, + 0x1.p3, + 0x1.000002p103 + }, + { // Entry 810 + -0x1.fffffc000007fffff000001fffffc0p-101, + -0x1.p3, + 0x1.000002p103 + }, + { // Entry 811 + 0x1.fffff800001fffff800001fffff8p-101, + 0x1.p3, + 0x1.000004p103 + }, + { // Entry 812 + -0x1.fffff800001fffff800001fffff8p-101, + -0x1.p3, + 0x1.000004p103 + }, + { // Entry 813 + 0x1.000004000008000010000020000040p-100, + 0x1.000002p3, + 0x1.fffffcp102 + }, + { // Entry 814 + -0x1.000004000008000010000020000040p-100, + -0x1.000002p3, + 0x1.fffffcp102 + }, + { // Entry 815 + 0x1.000003000003000003000003000003p-100, + 0x1.000002p3, + 0x1.fffffep102 + }, + { // Entry 816 + -0x1.000003000003000003000003000003p-100, + -0x1.000002p3, + 0x1.fffffep102 + }, + { // Entry 817 + 0x1.000001ffffffffffffffffffffffffffp-100, + 0x1.000002p3, + 0x1.p103 + }, + { // Entry 818 + -0x1.000001ffffffffffffffffffffffffffp-100, + -0x1.000002p3, + 0x1.p103 + }, + { // Entry 819 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.000002p3, + 0x1.000002p103 + }, + { // Entry 820 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.000002p3, + 0x1.000002p103 + }, + { // Entry 821 + 0x1.fffffc00000fffffc00000fffffcp-101, + 0x1.000002p3, + 0x1.000004p103 + }, + { // Entry 822 + -0x1.fffffc00000fffffc00000fffffcp-101, + -0x1.000002p3, + 0x1.000004p103 + }, + { // Entry 823 + 0x1.00000600000c000018000030000060p-100, + 0x1.000004p3, + 0x1.fffffcp102 + }, + { // Entry 824 + -0x1.00000600000c000018000030000060p-100, + -0x1.000004p3, + 0x1.fffffcp102 + }, + { // Entry 825 + 0x1.000005000005000005000005000005p-100, + 0x1.000004p3, + 0x1.fffffep102 + }, + { // Entry 826 + -0x1.000005000005000005000005000005p-100, + -0x1.000004p3, + 0x1.fffffep102 + }, + { // Entry 827 + 0x1.000003ffffffffffffffffffffffffffp-100, + 0x1.000004p3, + 0x1.p103 + }, + { // Entry 828 + -0x1.000003ffffffffffffffffffffffffffp-100, + -0x1.000004p3, + 0x1.p103 + }, + { // Entry 829 + 0x1.000001fffffc000007fffff000001fffp-100, + 0x1.000004p3, + 0x1.000002p103 + }, + { // Entry 830 + -0x1.000001fffffc000007fffff000001fffp-100, + -0x1.000004p3, + 0x1.000002p103 + }, + { // Entry 831 + 0x1.ffffffffffffffffffffffffffffffffp-101, + 0x1.000004p3, + 0x1.000004p103 + }, + { // Entry 832 + -0x1.ffffffffffffffffffffffffffffffffp-101, + -0x1.000004p3, + 0x1.000004p103 + }, + { // Entry 833 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0f, + -0.0f + }, + { // Entry 834 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0f, + -0.0f + }, + { // Entry 835 + 0.0, + 0.0f, + 0.0f + }, + { // Entry 836 + -0.0, + -0.0f, + 0.0f + }, + { // Entry 837 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0f, + -0x1.p-149 + }, + { // Entry 838 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 839 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0f, + -0x1.p-126 + }, + { // Entry 840 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 841 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0.0f, + -HUGE_VALF + }, + { // Entry 842 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0f, + -0x1.p-149 + }, + { // Entry 843 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 844 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0f, + -0x1.p-126 + }, + { // Entry 845 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 846 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0.0f, + -HUGE_VALF + }, + { // Entry 847 + 0.0, + 0.0f, + HUGE_VALF + }, + { // Entry 848 + 0.0, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 849 + 0.0, + 0.0f, + 0x1.p-126 + }, + { // Entry 850 + 0.0, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 851 + 0.0, + 0.0f, + 0x1.p-149 + }, + { // Entry 852 + -0.0, + -0.0f, + HUGE_VALF + }, + { // Entry 853 + -0.0, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 854 + -0.0, + -0.0f, + 0x1.p-126 + }, + { // Entry 855 + -0.0, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 856 + -0.0, + -0.0f, + 0x1.p-149 + }, + { // Entry 857 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VALF, + 0.0f + }, + { // Entry 858 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + 0.0f + }, + { // Entry 859 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p-126, + 0.0f + }, + { // Entry 860 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p-149, + 0.0f + }, + { // Entry 861 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VALF, + -0.0f + }, + { // Entry 862 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + -0.0f + }, + { // Entry 863 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p-126, + -0.0f + }, + { // Entry 864 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.p-149, + -0.0f + }, + { // Entry 865 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VALF, + 0.0f + }, + { // Entry 866 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + 0.0f + }, + { // Entry 867 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p-126, + 0.0f + }, + { // Entry 868 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p-149, + 0.0f + }, + { // Entry 869 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VALF, + -0.0f + }, + { // Entry 870 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + -0.0f + }, + { // Entry 871 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p-126, + -0.0f + }, + { // Entry 872 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.p-149, + -0.0f + }, + { // Entry 873 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 874 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 875 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 876 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 877 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 878 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 879 + 0.0, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 880 + 0.0, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 881 + 0.0, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 882 + -0.0, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 883 + -0.0, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 884 + -0.0, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 885 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 886 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 887 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 888 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 889 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 890 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 891 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 892 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 893 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 894 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 895 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 896 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 897 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 898 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 899 + 0x1.921fb54442d18469898cc51701b839a2p-1, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 900 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 901 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 902 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 903 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 904 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 905 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 906 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 907 + 0.0f, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 908 + 0.0f, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 909 + -0.0f, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 910 + -0.0f, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 911 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 912 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 913 + 0x1.921fb34442d184698c376fc1ac62dde6p0, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 914 + 0x1.921fb74442d1846986e21a6c570d955ep0, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 915 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 916 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 917 + 0x1.fffffffffffd55555555555bbbbbbbbbp-24, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 918 + -0x1.fffffffffffd55555555555bbbbbbbbbp-24, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 919 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 920 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 921 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 922 + 0x1.2d97c7f3321d234f272993d1414a2b39p1, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 923 + 0x1.921fb44442d184698ae21a6c570d8bc4p1, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 924 + 0x1.921fb54442d18469898cc51701b839a2p1, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 925 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 926 + -0x1.921fb34442d184698c376fc1ac62dde6p0, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 927 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 928 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 929 + -0x1.921fb44442d184698ae21a6c570d8bc4p1, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 930 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 931 + -0x1.921fb74442d1846986e21a6c570d955ep0, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 932 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 933 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 934 + -0x1.921fb54442d18469898cc51701b839a2p1, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 935 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 936 + -0x1.2d97c7f3321d234f272993d1414a2b39p1, + -0x1.fffffep127, + -0x1.fffffep127 + } +}; diff --git a/tests/math_data/atan_intel_data.h b/tests/math_data/atan_intel_data.h new file mode 100644 index 000000000..64bd6074a --- /dev/null +++ b/tests/math_data/atan_intel_data.h @@ -0,0 +1,4646 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_atan_intel_data[] = { + { // Entry 0 + 0x1.0fb06ede9973a00000000000007cc060p-5, + 0x1.0fc9f1fabe658p-5 + }, + { // Entry 1 + -0x1.0fb06ede9973a00000000000007cc060p-5, + -0x1.0fc9f1fabe658p-5 + }, + { // Entry 2 + 0x1.1ba1951db1d6dfffffffffffffb8f174p-5, + 0x1.1bbe9c255698dp-5 + }, + { // Entry 3 + -0x1.1ba1951db1d6dfffffffffffffb8f174p-5, + -0x1.1bbe9c255698dp-5 + }, + { // Entry 4 + 0x1.8d8d2d4bd6fa2fffffffffffffb52a01p-5, + 0x1.8ddd25ab90ca1p-5 + }, + { // Entry 5 + -0x1.8d8d2d4bd6fa2fffffffffffffb52a01p-5, + -0x1.8ddd25ab90ca1p-5 + }, + { // Entry 6 + 0x1.52c39ef070cad0000000000000397b8dp-4, + 0x1.5389e6df41979p-4 + }, + { // Entry 7 + -0x1.52c39ef070cad0000000000000397b8dp-4, + -0x1.5389e6df41979p-4 + }, + { // Entry 8 + 0x1.a33f32ac5ceb4ffffffffffffff62c0ep-3, + 0x1.a933fe176b375p-3 + }, + { // Entry 9 + -0x1.a33f32ac5ceb4ffffffffffffff62c0ep-3, + -0x1.a933fe176b375p-3 + }, + { // Entry 10 + 0x1.09544b71ad4a6800000000000013a8d4p-2, + 0x1.0f6e5d9960397p-2 + }, + { // Entry 11 + -0x1.09544b71ad4a6800000000000013a8d4p-2, + -0x1.0f6e5d9960397p-2 + }, + { // Entry 12 + 0x1.46ac37224353600000000000000f8ab8p-1, + 0x1.7ba49f739829fp-1 + }, + { // Entry 13 + -0x1.46ac37224353600000000000000f8ab8p-1, + -0x1.7ba49f739829fp-1 + }, + { // Entry 14 + -0x1.93d0d4b4b1dee82cea5b0c37054b40e2p-1, + -0x1.01b28f7519ab5p0 + }, + { // Entry 15 + 0x1.93d0d4b4b1dee82cea5b0c37054b40e2p-1, + 0x1.01b28f7519ab5p0 + }, + { // Entry 16 + -0x1.8e373c766a9cb7fff0093d26a3e96fdcp0, + -0x1.05ffffffff0p6 + }, + { // Entry 17 + 0x1.8e373c766a9cb7fff0093d26a3e96fdcp0, + 0x1.05ffffffff0p6 + }, + { // Entry 18 + -0x1.9a66b77f370938283db745fa4d8f6929p-1, + -0x1.086a05172c159p0 + }, + { // Entry 19 + 0x1.9a66b77f370938283db745fa4d8f6929p-1, + 0x1.086a05172c159p0 + }, + { // Entry 20 + -0x1.a1f29496a63eb7fed7941742ac25c0bcp-1, + -0x1.10556f1497661p0 + }, + { // Entry 21 + 0x1.a1f29496a63eb7fed7941742ac25c0bcp-1, + 0x1.10556f1497661p0 + }, + { // Entry 22 + -0x1.a46a24d34e9b282810adb188827a9af1p-1, + -0x1.12fa0d6901526p0 + }, + { // Entry 23 + 0x1.a46a24d34e9b282810adb188827a9af1p-1, + 0x1.12fa0d6901526p0 + }, + { // Entry 24 + -0x1.fd7343117fa575c550dcdff0fd642410p-2, + -0x1.160dc317bf87cp-1 + }, + { // Entry 25 + 0x1.fd7343117fa575c550dcdff0fd642410p-2, + 0x1.160dc317bf87cp-1 + }, + { // Entry 26 + -0x1.abdcc74821485ffb3dce2c471f1d9ccdp-1, + -0x1.1b2p0 + }, + { // Entry 27 + 0x1.abdcc74821485ffb3dce2c471f1d9ccdp-1, + 0x1.1b2p0 + }, + { // Entry 28 + -0x1.1b6b00f64692b8157a322d05add170c4p-2, + -0x1.22e245c48b894p-2 + }, + { // Entry 29 + 0x1.1b6b00f64692b8157a322d05add170c4p-2, + 0x1.22e245c48b894p-2 + }, + { // Entry 30 + -0x1.76f5ddc3a8b508ed9f137dea6b81e90fp0, + -0x1.2c72f995b1d2ep3 + }, + { // Entry 31 + 0x1.76f5ddc3a8b508ed9f137dea6b81e90fp0, + 0x1.2c72f995b1d2ep3 + }, + { // Entry 32 + -0x1.1e00babdefd447d7cd293fd8818ded16p-1, + -0x1.3fffffffffe01p-1 + }, + { // Entry 33 + 0x1.1e00babdefd447d7cd293fd8818ded16p-1, + 0x1.3fffffffffe01p-1 + }, + { // Entry 34 + -0x1.257cf8f86aae37fd89007cddd9fbedadp-1, + -0x1.4a818adf4d00cp-1 + }, + { // Entry 35 + 0x1.257cf8f86aae37fd89007cddd9fbedadp-1, + 0x1.4a818adf4d00cp-1 + }, + { // Entry 36 + -0x1.30ac945137336cee6dcf73db648cfcb8p-1, + -0x1.5a95192041f9ep-1 + }, + { // Entry 37 + 0x1.30ac945137336cee6dcf73db648cfcb8p-1, + 0x1.5a95192041f9ep-1 + }, + { // Entry 38 + -0x1.dfc9b7f9ab42d803453edb4156b22fe0p-1, + -0x1.5c634cb1dfe6bp0 + }, + { // Entry 39 + 0x1.dfc9b7f9ab42d803453edb4156b22fe0p-1, + 0x1.5c634cb1dfe6bp0 + }, + { // Entry 40 + -0x1.6bf3302a984a8a006c4478c0e763fab9p-2, + -0x1.7c1756ec12b23p-2 + }, + { // Entry 41 + 0x1.6bf3302a984a8a006c4478c0e763fab9p-2, + 0x1.7c1756ec12b23p-2 + }, + { // Entry 42 + -0x1.7f747c370c0727fccfb9495ede110579p-5, + -0x1.7fbc3df2ed276p-5 + }, + { // Entry 43 + 0x1.7f747c370c0727fccfb9495ede110579p-5, + 0x1.7fbc3df2ed276p-5 + }, + { // Entry 44 + -0x1.fdda4aef81e8e7fffd547e56ce08f36dp-1, + -0x1.8b0adc528bce4p0 + }, + { // Entry 45 + 0x1.fdda4aef81e8e7fffd547e56ce08f36dp-1, + 0x1.8b0adc528bce4p0 + }, + { // Entry 46 + -0x1.91cf060a572547ff8e8e829b167593fcp0, + -0x1.962000000000bp9 + }, + { // Entry 47 + 0x1.91cf060a572547ff8e8e829b167593fcp0, + 0x1.962000000000bp9 + }, + { // Entry 48 + -0x1.47c28e8c40ec280000020808fdc90264p0, + -0x1.ac2e0862e543ep1 + }, + { // Entry 49 + 0x1.47c28e8c40ec280000020808fdc90264p0, + 0x1.ac2e0862e543ep1 + }, + { // Entry 50 + -0x1.921fb54442d18469898cc516ef921439p0, + -0x1.c35fe0cc9d0e4p99 + }, + { // Entry 51 + 0x1.921fb54442d18469898cc516ef921439p0, + 0x1.c35fe0cc9d0e4p99 + }, + { // Entry 52 + -0x1.fee2431215606f9db22d52fc7e731b98p-6, + -0x1.ff0caaae31790p-6 + }, + { // Entry 53 + 0x1.fee2431215606f9db22d52fc7e731b98p-6, + 0x1.ff0caaae31790p-6 + }, + { // Entry 54 + -0x1.1b6ae5e70d57a0024825b0cee86fd415p0, + -0x1.ffeffffffffffp0 + }, + { // Entry 55 + 0x1.1b6ae5e70d57a0024825b0cee86fd415p0, + 0x1.ffeffffffffffp0 + }, + { // Entry 56 + -0x1.f5aa32d8a6d177fffad61b5dca0be8bfp-3, + -0x1.fff2007ffffffp-3 + }, + { // Entry 57 + 0x1.f5aa32d8a6d177fffad61b5dca0be8bfp-3, + 0x1.fff2007ffffffp-3 + }, + { // Entry 58 + -0x1.f5b39f92578e003ce025445d5448c723p-3, + -0x1.fffc03fffffffp-3 + }, + { // Entry 59 + 0x1.f5b39f92578e003ce025445d5448c723p-3, + 0x1.fffc03fffffffp-3 + }, + { // Entry 60 + 0x1.fd5ba9aac2f7f7f74a4ac2f7962ea006p-4, + 0x1.0000000000009p-3 + }, + { // Entry 61 + -0x1.fd5ba9aac2f7f7f74a4ac2f7962ea006p-4, + -0x1.0000000000009p-3 + }, + { // Entry 62 + 0x1.1b6e192ebbe4b3939e676eed13ecdea5p0, + 0x1.0000000000011p1 + }, + { // Entry 63 + -0x1.1b6e192ebbe4b3939e676eed13ecdea5p0, + -0x1.0000000000011p1 + }, + { // Entry 64 + 0x1.fd5ba9aac3301779426a44d6216c0127p-4, + 0x1.00000000001d1p-3 + }, + { // Entry 65 + -0x1.fd5ba9aac3301779426a44d6216c0127p-4, + -0x1.00000000001d1p-3 + }, + { // Entry 66 + 0x1.f5b75f92c8e0a8fdae620b51cd9aff12p-3, + 0x1.00000000007p-2 + }, + { // Entry 67 + -0x1.f5b75f92c8e0a8fdae620b51cd9aff12p-3, + -0x1.00000000007p-2 + }, + { // Entry 68 + 0x1.ffd55bba9d69a8ad651d71aec988dad0p-6, + 0x1.0000000003047p-5 + }, + { // Entry 69 + -0x1.ffd55bba9d69a8ad651d71aec988dad0p-6, + -0x1.0000000003047p-5 + }, + { // Entry 70 + 0x1.911fb5999813a8003c879b1793966ea1p0, + 0x1.0000000020017p8 + }, + { // Entry 71 + -0x1.911fb5999813a8003c879b1793966ea1p0, + -0x1.0000000020017p8 + }, + { // Entry 72 + 0x1.921fb54472d18469850cc517020039a2p-1, + 0x1.000000003p0 + }, + { // Entry 73 + -0x1.921fb54472d18469850cc517020039a2p-1, + -0x1.000000003p0 + }, + { // Entry 74 + 0x1.f5b75f959ae0a8fd6e9ac1e84bceca57p-3, + 0x1.000000018p-2 + }, + { // Entry 75 + -0x1.f5b75f959ae0a8fd6e9ac1e84bceca57p-3, + -0x1.000000018p-2 + }, + { // Entry 76 + 0x1.f5b7671a4f939829143782fc6e124ccap-3, + 0x1.0000040p-2 + }, + { // Entry 77 + -0x1.f5b7671a4f939829143782fc6e124ccap-3, + -0x1.0000040p-2 + }, + { // Entry 78 + 0x1.fd5bb18b417c48ac848521bb0772d9a1p-4, + 0x1.00000400004p-3 + }, + { // Entry 79 + -0x1.fd5bb18b417c48ac848521bb0772d9a1p-4, + -0x1.00000400004p-3 + }, + { // Entry 80 + 0x1.921fc4440248282d290a616b8bd2a40fp-1, + 0x1.00000effbfe72p0 + }, + { // Entry 81 + -0x1.921fc4440248282d290a616b8bd2a40fp-1, + -0x1.00000effbfe72p0 + }, + { // Entry 82 + 0x1.921fcb4efe8b9800001979c3c14ae647p-1, + 0x1.0000160abcad0p0 + }, + { // Entry 83 + -0x1.921fcb4efe8b9800001979c3c14ae647p-1, + -0x1.0000160abcad0p0 + }, + { // Entry 84 + 0x1.fd5d9dd9fe4877fd578f460dcb83a068p-4, + 0x1.0000fe0p-3 + }, + { // Entry 85 + -0x1.fd5d9dd9fe4877fd578f460dcb83a068p-4, + -0x1.0000fe0p-3 + }, + { // Entry 86 + 0x1.1b6fb2c336d49314eac9f9c98fd7e33cp0, + 0x1.00040p1 + }, + { // Entry 87 + -0x1.1b6fb2c336d49314eac9f9c98fd7e33cp0, + -0x1.00040p1 + }, + { // Entry 88 + 0x1.8e200a90cc63080337bb5f472303d0cbp0, + 0x1.000ffffffffe1p6 + }, + { // Entry 89 + -0x1.8e200a90cc63080337bb5f472303d0cbp0, + -0x1.000ffffffffe1p6 + }, + { // Entry 90 + 0x1.924fb0c48ad183a74183edd5362486dfp-1, + 0x1.003p0 + }, + { // Entry 91 + -0x1.924fb0c48ad183a74183edd5362486dfp-1, + -0x1.003p0 + }, + { // Entry 92 + 0x1.fedc5f6aeb98186a3b0d3b954d70911cp-4, + 0x1.00c35e9758e2cp-3 + }, + { // Entry 93 + -0x1.fedc5f6aeb98186a3b0d3b954d70911cp-4, + -0x1.00c35e9758e2cp-3 + }, + { // Entry 94 + 0x1.921fb3466091e7ffbc9b8e5c6d88ce22p0, + 0x1.011p23 + }, + { // Entry 95 + -0x1.921fb3466091e7ffbc9b8e5c6d88ce22p0, + -0x1.011p23 + }, + { // Entry 96 + 0x1.1c2100958558dfff915395a5bfb4e4f7p0, + 0x1.01c1b75a29198p1 + }, + { // Entry 97 + -0x1.1c2100958558dfff915395a5bfb4e4f7p0, + -0x1.01c1b75a29198p1 + }, + { // Entry 98 + 0x1.941da6b976112800ae50a79244b2f00fp-1, + 0x1.01fffp0 + }, + { // Entry 99 + -0x1.941da6b976112800ae50a79244b2f00fp-1, + -0x1.01fffp0 + }, + { // Entry 100 + 0x1.95412c14caec68368d2352262e205e29p-1, + 0x1.032667b38fd63p0 + }, + { // Entry 101 + -0x1.95412c14caec68368d2352262e205e29p-1, + -0x1.032667b38fd63p0 + }, + { // Entry 102 + 0x1.954797156907ffe8d43c56fed8806cbap-1, + 0x1.032ce7209e936p0 + }, + { // Entry 103 + -0x1.954797156907ffe8d43c56fed8806cbap-1, + -0x1.032ce7209e936p0 + }, + { // Entry 104 + 0x1.03fe926deb87dea036ae0e5000a78179p-7, + 0x1.03fff80p-7 + }, + { // Entry 105 + -0x1.03fe926deb87dea036ae0e5000a78179p-7, + -0x1.03fff80p-7 + }, + { // Entry 106 + 0x1.fd61e4326c1e17f9be5c0e96b9e245b5p-3, + 0x1.041391b4f6773p-2 + }, + { // Entry 107 + -0x1.fd61e4326c1e17f9be5c0e96b9e245b5p-3, + -0x1.041391b4f6773p-2 + }, + { // Entry 108 + 0x1.9690e7465847a7ddc153bc6798d1b82bp-1, + 0x1.047b2d5ac8ccbp0 + }, + { // Entry 109 + -0x1.9690e7465847a7ddc153bc6798d1b82bp-1, + -0x1.047b2d5ac8ccbp0 + }, + { // Entry 110 + 0x1.96c8ea639f68cc09d44584196295df93p-1, + 0x1.04b43403953b0p0 + }, + { // Entry 111 + -0x1.96c8ea639f68cc09d44584196295df93p-1, + -0x1.04b43403953b0p0 + }, + { // Entry 112 + 0x1.96c95ba7df84f7fecf841f04a5386a95p-1, + 0x1.04b4a761a073bp0 + }, + { // Entry 113 + -0x1.96c95ba7df84f7fecf841f04a5386a95p-1, + -0x1.04b4a761a073bp0 + }, + { // Entry 114 + 0x1.ff956a68e5f5d7fa26829ba0a3287227p-3, + 0x1.053f96b868b40p-2 + }, + { // Entry 115 + -0x1.ff956a68e5f5d7fa26829ba0a3287227p-3, + -0x1.053f96b868b40p-2 + }, + { // Entry 116 + 0x1.98b0c3c0dd8917febe21b582e45bf32ap-1, + 0x1.06a6fdd8c9be8p0 + }, + { // Entry 117 + -0x1.98b0c3c0dd8917febe21b582e45bf32ap-1, + -0x1.06a6fdd8c9be8p0 + }, + { // Entry 118 + 0x1.e7e3d0910807efff992c7a274fdbed8cp-2, + 0x1.084p-1 + }, + { // Entry 119 + -0x1.e7e3d0910807efff992c7a274fdbed8cp-2, + -0x1.084p-1 + }, + { // Entry 120 + 0x1.09882f0fd878b7fc750c23c0417aa352p-5, + 0x1.09ap-5 + }, + { // Entry 121 + -0x1.09882f0fd878b7fc750c23c0417aa352p-5, + -0x1.09ap-5 + }, + { // Entry 122 + 0x1.a057e3cb74245802b71c5786bd3bf5a9p-1, + 0x1.0ea1281786681p0 + }, + { // Entry 123 + -0x1.a057e3cb74245802b71c5786bd3bf5a9p-1, + -0x1.0ea1281786681p0 + }, + { // Entry 124 + 0x1.a057e3cb7428100cde6242b3bf2d75e7p-1, + 0x1.0ea12817866c0p0 + }, + { // Entry 125 + -0x1.a057e3cb7428100cde6242b3bf2d75e7p-1, + -0x1.0ea12817866c0p0 + }, + { // Entry 126 + 0x1.09544b71ad4a6800000000000013a8d4p-2, + 0x1.0f6e5d9960397p-2 + }, + { // Entry 127 + -0x1.09544b71ad4a6800000000000013a8d4p-2, + -0x1.0f6e5d9960397p-2 + }, + { // Entry 128 + 0x1.921fb4cd9c6767fffffe6051bf1c3fecp0, + 0x1.142c69b7200b4p25 + }, + { // Entry 129 + -0x1.921fb4cd9c6767fffffe6051bf1c3fecp0, + -0x1.142c69b7200b4p25 + }, + { // Entry 130 + 0x1.a908afa5b1d49d450834540fee9c3c24p-1, + 0x1.180p0 + }, + { // Entry 131 + -0x1.a908afa5b1d49d450834540fee9c3c24p-1, + -0x1.180p0 + }, + { // Entry 132 + 0x1.abdcc74821485ffb3dce2c471f1d9ccdp-1, + 0x1.1b2p0 + }, + { // Entry 133 + -0x1.abdcc74821485ffb3dce2c471f1d9ccdp-1, + -0x1.1b2p0 + }, + { // Entry 134 + 0x1.1ffffffffff868000000005c43999999p-22, + 0x1.2p-22 + }, + { // Entry 135 + -0x1.1ffffffffff868000000005c43999999p-22, + -0x1.2p-22 + }, + { // Entry 136 + 0x1.1231f3cf3b64080110ff41eaf08e7f52p-1, + 0x1.2fcf7444bde76p-1 + }, + { // Entry 137 + -0x1.1231f3cf3b64080110ff41eaf08e7f52p-1, + -0x1.2fcf7444bde76p-1 + }, + { // Entry 138 + 0x1.14e89198860627ffffe8602275519490p-1, + 0x1.337d9db6d7c12p-1 + }, + { // Entry 139 + -0x1.14e89198860627ffffe8602275519490p-1, + -0x1.337d9db6d7c12p-1 + }, + { // Entry 140 + 0x1.91eae7e474234800ffed4579e939b69ep0, + 0x1.364a2f134fcc8p10 + }, + { // Entry 141 + -0x1.91eae7e474234800ffed4579e939b69ep0, + -0x1.364a2f134fcc8p10 + }, + { // Entry 142 + 0x1.921fb53da9afc7ff8a7b36e49887a88cp0, + 0x1.3663986f82220p29 + }, + { // Entry 143 + -0x1.921fb53da9afc7ff8a7b36e49887a88cp0, + -0x1.3663986f82220p29 + }, + { // Entry 144 + 0x1.78c56b92f190e84a323bd5804a1c5ba6p0, + 0x1.4210842108420p3 + }, + { // Entry 145 + -0x1.78c56b92f190e84a323bd5804a1c5ba6p0, + -0x1.4210842108420p3 + }, + { // Entry 146 + 0x1.78d751494898372d0fe3af3a7837ff8fp0, + 0x1.42f5ff15ddc08p3 + }, + { // Entry 147 + -0x1.78d751494898372d0fe3af3a7837ff8fp0, + -0x1.42f5ff15ddc08p3 + }, + { // Entry 148 + 0x1.31ce4da037f1542340ee4c61421bba5ap0, + 0x1.43fff80p1 + }, + { // Entry 149 + -0x1.31ce4da037f1542340ee4c61421bba5ap0, + -0x1.43fff80p1 + }, + { // Entry 150 + 0x1.31ce4fc9313474e69b41306d82deceb0p0, + 0x1.440p1 + }, + { // Entry 151 + -0x1.31ce4fc9313474e69b41306d82deceb0p0, + -0x1.440p1 + }, + { // Entry 152 + 0x1.26b3d211bc3faaf8f037dd3421d9f962p-1, + 0x1.4c3a987530ea6p-1 + }, + { // Entry 153 + -0x1.26b3d211bc3faaf8f037dd3421d9f962p-1, + -0x1.4c3a987530ea6p-1 + }, + { // Entry 154 + 0x1.351779f072846800a9bb18d72a79814ep0, + 0x1.5094250942508p1 + }, + { // Entry 155 + -0x1.351779f072846800a9bb18d72a79814ep0, + -0x1.5094250942508p1 + }, + { // Entry 156 + 0x1.58fcecb696d827ec66c4a7bfd8ed327bp-8, + 0x1.58fdbd8ddbbf8p-8 + }, + { // Entry 157 + -0x1.58fcecb696d827ec66c4a7bfd8ed327bp-8, + -0x1.58fdbd8ddbbf8p-8 + }, + { // Entry 158 + 0x1.63398f6da2f1a7fffff2d311886948c5p0, + 0x1.596de8ca11ae6p2 + }, + { // Entry 159 + -0x1.63398f6da2f1a7fffff2d311886948c5p0, + -0x1.596de8ca11ae6p2 + }, + { // Entry 160 + 0x1.3424a0066e6a8d6e3d6901f99034cde1p-1, + 0x1.5faa0cbf48e56p-1 + }, + { // Entry 161 + -0x1.3424a0066e6a8d6e3d6901f99034cde1p-1, + -0x1.5faa0cbf48e56p-1 + }, + { // Entry 162 + 0x1.5ff223a639d5bfce7ae1cfb7516d26adp-6, + 0x1.6p-6 + }, + { // Entry 163 + -0x1.5ff223a639d5bfce7ae1cfb7516d26adp-6, + -0x1.6p-6 + }, + { // Entry 164 + 0x1.345f01cce38c8d8be40cc12c58240e15p-1, + 0x1.600000000018dp-1 + }, + { // Entry 165 + -0x1.345f01cce38c8d8be40cc12c58240e15p-1, + -0x1.600000000018dp-1 + }, + { // Entry 166 + 0x1.367cb24fdff2146a3c6863d233ff09fep-1, + 0x1.632p-1 + }, + { // Entry 167 + -0x1.367cb24fdff2146a3c6863d233ff09fep-1, + -0x1.632p-1 + }, + { // Entry 168 + 0x1.57baeb9c51db490f8249f6679768741fp-2, + 0x1.654p-2 + }, + { // Entry 169 + -0x1.57baeb9c51db490f8249f6679768741fp-2, + -0x1.654p-2 + }, + { // Entry 170 + 0x1.395006b0fd682d86f4a40f69e4dad1f3p-1, + 0x1.675370cc217f1p-1 + }, + { // Entry 171 + -0x1.395006b0fd682d86f4a40f69e4dad1f3p-1, + -0x1.675370cc217f1p-1 + }, + { // Entry 172 + 0x1.695a2c268e1e57ffee0cb8c88986dfefp-12, + 0x1.695a2d168b440p-12 + }, + { // Entry 173 + -0x1.695a2c268e1e57ffee0cb8c88986dfefp-12, + -0x1.695a2d168b440p-12 + }, + { // Entry 174 + 0x1.90b6fc0474fec7fe12f524f1b420b184p0, + 0x1.6b5ad6b5aceb4p7 + }, + { // Entry 175 + -0x1.90b6fc0474fec7fe12f524f1b420b184p0, + -0x1.6b5ad6b5aceb4p7 + }, + { // Entry 176 + 0x1.3b8f3306167a8baa368daae0bf08e86cp0, + 0x1.6c0p1 + }, + { // Entry 177 + -0x1.3b8f3306167a8baa368daae0bf08e86cp0, + -0x1.6c0p1 + }, + { // Entry 178 + 0x1.5f6bae189b51098a86d90c98da4cc877p-2, + 0x1.6de63b148cf0bp-2 + }, + { // Entry 179 + -0x1.5f6bae189b51098a86d90c98da4cc877p-2, + -0x1.6de63b148cf0bp-2 + }, + { // Entry 180 + 0x1.3de18703d42d69f55b3e6c4d1fe5629dp-1, + 0x1.6e30022cb4501p-1 + }, + { // Entry 181 + -0x1.3de18703d42d69f55b3e6c4d1fe5629dp-1, + -0x1.6e30022cb4501p-1 + }, + { // Entry 182 + 0x1.ebe5401364d0c802b6d52ee2cdf2086ep-1, + 0x1.6e3b1e21b27ddp0 + }, + { // Entry 183 + -0x1.ebe5401364d0c802b6d52ee2cdf2086ep-1, + -0x1.6e3b1e21b27ddp0 + }, + { // Entry 184 + 0x1.6310721e8d7bc04e2ae4e8cce87a1ec0p-2, + 0x1.72036f889e86fp-2 + }, + { // Entry 185 + -0x1.6310721e8d7bc04e2ae4e8cce87a1ec0p-2, + -0x1.72036f889e86fp-2 + }, + { // Entry 186 + 0x1.685c82be1d6fa902b238e87716c3bbfbp-2, + 0x1.7803718434620p-2 + }, + { // Entry 187 + -0x1.685c82be1d6fa902b238e87716c3bbfbp-2, + -0x1.7803718434620p-2 + }, + { // Entry 188 + 0x1.68c3b08c20af09be807f598cbca32cb9p-2, + 0x1.78788d320d639p-2 + }, + { // Entry 189 + -0x1.68c3b08c20af09be807f598cbca32cb9p-2, + -0x1.78788d320d639p-2 + }, + { // Entry 190 + 0x1.6b35cbad026009f12d00003f84c29caep-2, + 0x1.7b3fe92e2fd63p-2 + }, + { // Entry 191 + -0x1.6b35cbad026009f12d00003f84c29caep-2, + -0x1.7b3fe92e2fd63p-2 + }, + { // Entry 192 + 0x1.6c4b3610c42b29eabeaa35cc1b8067ecp-2, + 0x1.7c7b80a9d788bp-2 + }, + { // Entry 193 + -0x1.6c4b3610c42b29eabeaa35cc1b8067ecp-2, + -0x1.7c7b80a9d788bp-2 + }, + { // Entry 194 + 0x1.6eed6ff6cd99ca02c4d88c9aa595d5cfp-2, + 0x1.7f7b8c648a650p-2 + }, + { // Entry 195 + -0x1.6eed6ff6cd99ca02c4d88c9aa595d5cfp-2, + -0x1.7f7b8c648a650p-2 + }, + { // Entry 196 + 0x1.7fffffffffffb80000000000184cccccp-25, + 0x1.8p-25 + }, + { // Entry 197 + -0x1.7fffffffffffb80000000000184cccccp-25, + -0x1.8p-25 + }, + { // Entry 198 + 0x1.7fffffffffffc800000000000f4cccccp-25, + 0x1.8000000000001p-25 + }, + { // Entry 199 + -0x1.7fffffffffffc800000000000f4cccccp-25, + -0x1.8000000000001p-25 + }, + { // Entry 200 + 0x1.7fffffffffffd80000000000064cccccp-25, + 0x1.8000000000002p-25 + }, + { // Entry 201 + -0x1.7fffffffffffd80000000000064cccccp-25, + -0x1.8000000000002p-25 + }, + { // Entry 202 + 0x1.f7b9ef3dc65408000005e3f91e816063p-1, + 0x1.80df4b28b5a84p0 + }, + { // Entry 203 + -0x1.f7b9ef3dc65408000005e3f91e816063p-1, + -0x1.80df4b28b5a84p0 + }, + { // Entry 204 + 0x1.90ce0249811008006638702db8ae59e2p0, + 0x1.8421084210846p7 + }, + { // Entry 205 + -0x1.90ce0249811008006638702db8ae59e2p0, + -0x1.8421084210846p7 + }, + { // Entry 206 + 0x1.fb3c57dab5afa80a506e91f92e6a8df9p-1, + 0x1.86a71395bc9b5p0 + }, + { // Entry 207 + -0x1.fb3c57dab5afa80a506e91f92e6a8df9p-1, + -0x1.86a71395bc9b5p0 + }, + { // Entry 208 + 0x1.68d94312ca7f17ffeed1dd16ec2d35e6p0, + 0x1.898p2 + }, + { // Entry 209 + -0x1.68d94312ca7f17ffeed1dd16ec2d35e6p0, + -0x1.898p2 + }, + { // Entry 210 + 0x1.ff69d0cefa8a27ebf8cbf5ec1cc78342p-1, + 0x1.8db18047c8944p0 + }, + { // Entry 211 + -0x1.ff69d0cefa8a27ebf8cbf5ec1cc78342p-1, + -0x1.8db18047c8944p0 + }, + { // Entry 212 + 0x1.983e285453b3f000002efc9d654c6a32p-4, + 0x1.999999c022342p-4 + }, + { // Entry 213 + -0x1.983e285453b3f000002efc9d654c6a32p-4, + -0x1.999999c022342p-4 + }, + { // Entry 214 + 0x1.94441feb7be7180000005c46362b16d8p-3, + 0x1.999999f951960p-3 + }, + { // Entry 215 + -0x1.94441feb7be7180000005c46362b16d8p-3, + -0x1.999999f951960p-3 + }, + { // Entry 216 + 0x1.9a6a8e96c86047fffe94ba49799c011fp-3, + 0x1.9ffffffffffddp-3 + }, + { // Entry 217 + -0x1.9a6a8e96c86047fffe94ba49799c011fp-3, + -0x1.9ffffffffffddp-3 + }, + { // Entry 218 + 0x1.9e94153cfe4dc80036c037e172b7cee9p-4, + 0x1.a0000000008p-4 + }, + { // Entry 219 + -0x1.9e94153cfe4dc80036c037e172b7cee9p-4, + -0x1.a0000000008p-4 + }, + { // Entry 220 + 0x1.9fd8a4d9973e57fc465de41ddc4cbae2p-4, + 0x1.a147eb4c17006p-4 + }, + { // Entry 221 + -0x1.9fd8a4d9973e57fc465de41ddc4cbae2p-4, + -0x1.a147eb4c17006p-4 + }, + { // Entry 222 + 0x1.62e23d7da5f6d8010d5496a08573e188p-1, + 0x1.a94678821f0e9p-1 + }, + { // Entry 223 + -0x1.62e23d7da5f6d8010d5496a08573e188p-1, + -0x1.a94678821f0e9p-1 + }, + { // Entry 224 + 0x1.096fe22081e2b800007e36c682109058p0, + 0x1.b102342163952p0 + }, + { // Entry 225 + -0x1.096fe22081e2b800007e36c682109058p0, + -0x1.b102342163952p0 + }, + { // Entry 226 + 0x1.0a471736b923b1f18885a17308e12beep0, + 0x1.b445c1ad3cad1p0 + }, + { // Entry 227 + -0x1.0a471736b923b1f18885a17308e12beep0, + -0x1.b445c1ad3cad1p0 + }, + { // Entry 228 + 0x1.0a66d6f646e8d37662253bd9155a84dep0, + 0x1.b4c1d0c10cca9p0 + }, + { // Entry 229 + -0x1.0a66d6f646e8d37662253bd9155a84dep0, + -0x1.b4c1d0c10cca9p0 + }, + { // Entry 230 + 0x1.a3ad60e89da8b6f1dd20c69213b7612ap-2, + 0x1.bcde6f379bcdep-2 + }, + { // Entry 231 + -0x1.a3ad60e89da8b6f1dd20c69213b7612ap-2, + -0x1.bcde6f379bcdep-2 + }, + { // Entry 232 + 0x1.0e04a23e7337930371d81f0cf4d7e9dcp0, + 0x1.c34p0 + }, + { // Entry 233 + -0x1.0e04a23e7337930371d81f0cf4d7e9dcp0, + -0x1.c34p0 + }, + { // Entry 234 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.c77250c52a4c4p994 + }, + { // Entry 235 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.c77250c52a4c4p994 + }, + { // Entry 236 + 0x1.ad00f5422058b7f130ce2474b9fbbdf8p-2, + 0x1.c80p-2 + }, + { // Entry 237 + -0x1.ad00f5422058b7f130ce2474b9fbbdf8p-2, + -0x1.c80p-2 + }, + { // Entry 238 + 0x1.4c50697afe3227fd6af96ad804191fc4p0, + 0x1.c9b26c9b26cb2p1 + }, + { // Entry 239 + -0x1.4c50697afe3227fd6af96ad804191fc4p0, + -0x1.c9b26c9b26cb2p1 + }, + { // Entry 240 + 0x1.c287b5672b66d828ebaf4756e4f60ad1p-3, + 0x1.c9f0f1fe648bfp-3 + }, + { // Entry 241 + -0x1.c287b5672b66d828ebaf4756e4f60ad1p-3, + -0x1.c9f0f1fe648bfp-3 + }, + { // Entry 242 + 0x1.ce35e40b0af2980007f47f44f1179e69p-5, + 0x1.ceb39ce739ce2p-5 + }, + { // Entry 243 + -0x1.ce35e40b0af2980007f47f44f1179e69p-5, + -0x1.ceb39ce739ce2p-5 + }, + { // Entry 244 + 0x1.ca5072830899e807a46fd46deed06c13p-3, + 0x1.d21f1bc07ff10p-3 + }, + { // Entry 245 + -0x1.ca5072830899e807a46fd46deed06c13p-3, + -0x1.d21f1bc07ff10p-3 + }, + { // Entry 246 + 0x1.d757ad6321e1b7ff10e2bc2deea40152p-7, + 0x1.d76p-7 + }, + { // Entry 247 + -0x1.d757ad6321e1b7ff10e2bc2deea40152p-7, + -0x1.d76p-7 + }, + { // Entry 248 + 0x1.bc568fd6eb58f751409b945717d9554ap-2, + 0x1.da8p-2 + }, + { // Entry 249 + -0x1.bc568fd6eb58f751409b945717d9554ap-2, + -0x1.da8p-2 + }, + { // Entry 250 + 0x1.dcb58cdb206477fea2ac612eafe90af0p-6, + 0x1.dcd80p-6 + }, + { // Entry 251 + -0x1.dcb58cdb206477fea2ac612eafe90af0p-6, + -0x1.dcd80p-6 + }, + { // Entry 252 + 0x1.4fefc9638a79f51094053a972023f6c2p0, + 0x1.e3fffffffffffp1 + }, + { // Entry 253 + -0x1.4fefc9638a79f51094053a972023f6c2p0, + -0x1.e3fffffffffffp1 + }, + { // Entry 254 + 0x1.e559f77b3d1bc7fe0f0af62001c4d64ap-4, + 0x1.e7a2c68ca3bbep-4 + }, + { // Entry 255 + -0x1.e559f77b3d1bc7fe0f0af62001c4d64ap-4, + -0x1.e7a2c68ca3bbep-4 + }, + { // Entry 256 + 0x1.507316595911cbbe475d6a0d0c879007p0, + 0x1.e7f3f9fcfe780p1 + }, + { // Entry 257 + -0x1.507316595911cbbe475d6a0d0c879007p0, + -0x1.e7f3f9fcfe780p1 + }, + { // Entry 258 + 0x1.df110864c9d9d03004ee274a70c0ae22p-3, + 0x1.e7fffffffffffp-3 + }, + { // Entry 259 + -0x1.df110864c9d9d03004ee274a70c0ae22p-3, + -0x1.e7fffffffffffp-3 + }, + { // Entry 260 + 0x1.7145eac2088a38096a1a13357d2f5f02p0, + 0x1.fp2 + }, + { // Entry 261 + -0x1.7145eac2088a38096a1a13357d2f5f02p0, + -0x1.fp2 + }, + { // Entry 262 + 0x1.f2d88602d915b7a920d38c9f9cff16e8p-6, + 0x1.f30p-6 + }, + { // Entry 263 + -0x1.f2d88602d915b7a920d38c9f9cff16e8p-6, + -0x1.f30p-6 + }, + { // Entry 264 + 0x1.f8cda64a08edafa2039d9d8a93546545p-6, + 0x1.f8f68ec9e17eep-6 + }, + { // Entry 265 + -0x1.f8cda64a08edafa2039d9d8a93546545p-6, + -0x1.f8f68ec9e17eep-6 + }, + { // Entry 266 + 0x1.8e1199d0ffd197fffe93ecafbc7df2e1p0, + 0x1.f8ffffeffffaep5 + }, + { // Entry 267 + -0x1.8e1199d0ffd197fffe93ecafbc7df2e1p0, + -0x1.f8ffffeffffaep5 + }, + { // Entry 268 + 0x1.efc20ff0ea4347fb09f751f06225cf3ep-3, + 0x1.f9ac87c22c381p-3 + }, + { // Entry 269 + -0x1.efc20ff0ea4347fb09f751f06225cf3ep-3, + -0x1.f9ac87c22c381p-3 + }, + { // Entry 270 + 0x1.fa55579e0ba577fe929dc83eb7995abcp-6, + 0x1.fa7e9fa7e9f89p-6 + }, + { // Entry 271 + -0x1.fa55579e0ba577fe929dc83eb7995abcp-6, + -0x1.fa7e9fa7e9f89p-6 + }, + { // Entry 272 + 0x1.fa55579e0ba6f7a0b740d8dad80c76dep-6, + 0x1.fa7e9fa7e9fa1p-6 + }, + { // Entry 273 + -0x1.fa55579e0ba6f7a0b740d8dad80c76dep-6, + -0x1.fa7e9fa7e9fa1p-6 + }, + { // Entry 274 + 0x1.fdb067638eb577993194616b1f02253ep-6, + 0x1.fdda82fef66eep-6 + }, + { // Entry 275 + -0x1.fdb067638eb577993194616b1f02253ep-6, + -0x1.fdda82fef66eep-6 + }, + { // Entry 276 + 0x1.f58a3225d517f7b85d014640f929635dp-3, + 0x1.ffcffffffffffp-3 + }, + { // Entry 277 + -0x1.f58a3225d517f7b85d014640f929635dp-3, + -0x1.ffcffffffffffp-3 + }, + { // Entry 278 + 0x1.f5a8507ca2e7f74fe8389718208bcb16p-3, + 0x1.ffeffffffffffp-3 + }, + { // Entry 279 + -0x1.f5a8507ca2e7f74fe8389718208bcb16p-3, + -0x1.ffeffffffffffp-3 + }, + { // Entry 280 + 0x1.1b6ae5e70d57a0024825b0cee86fd415p0, + 0x1.ffeffffffffffp0 + }, + { // Entry 281 + -0x1.1b6ae5e70d57a0024825b0cee86fd415p0, + -0x1.ffeffffffffffp0 + }, + { // Entry 282 + 0x1.822487e434a688433f85f4d9d59f5c91p0, + 0x1.ffeffffffffffp3 + }, + { // Entry 283 + -0x1.822487e434a688433f85f4d9d59f5c91p0, + -0x1.ffeffffffffffp3 + }, + { // Entry 284 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fff8e61eadcf7p1021 + }, + { // Entry 285 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fff8e61eadcf7p1021 + }, + { // Entry 286 + 0x1.f5b39f92578e003ce025445d5448c723p-3, + 0x1.fffc03fffffffp-3 + }, + { // Entry 287 + -0x1.f5b39f92578e003ce025445d5448c723p-3, + -0x1.fffc03fffffffp-3 + }, + { // Entry 288 + 0x1.1b6e0f9521925801d32b4375d240e5b1p0, + 0x1.ffffcffffffffp0 + }, + { // Entry 289 + -0x1.1b6e0f9521925801d32b4375d240e5b1p0, + -0x1.ffffcffffffffp0 + }, + { // Entry 290 + 0x1.f5b75ded226447fe90c6cb904987f275p-3, + 0x1.fffffe3ffffbfp-3 + }, + { // Entry 291 + -0x1.f5b75ded226447fe90c6cb904987f275p-3, + -0x1.fffffe3ffffbfp-3 + }, + { // Entry 292 + 0x1.8a205fd5287ff7ff262bad6513207543p0, + 0x1.fffffff3fffffp4 + }, + { // Entry 293 + -0x1.8a205fd5287ff7ff262bad6513207543p0, + -0x1.fffffff3fffffp4 + }, + { // Entry 294 + 0x1.ffd55bba962df799aa0c3a5a5edf7631p-6, + 0x1.fffffffffecb6p-6 + }, + { // Entry 295 + -0x1.ffd55bba962df799aa0c3a5a5edf7631p-6, + -0x1.fffffffffecb6p-6 + }, + { // Entry 296 + 0x1.ffd55bba972df799aa0c3a87739a477dp-6, + 0x1.ffffffffffcbap-6 + }, + { // Entry 297 + -0x1.ffd55bba972df799aa0c3a87739a477dp-6, + -0x1.ffffffffffcbap-6 + }, + { // Entry 298 + 0x1.dac670561bb3768adfc88bd930751a06p-2, + 0x1.fffffffffffe2p-2 + }, + { // Entry 299 + -0x1.dac670561bb3768adfc88bd930751a06p-2, + -0x1.fffffffffffe2p-2 + }, + { // Entry 300 + 0x1.8a205fd55873f800459be65852624b5fp0, + 0x1.ffffffffffff3p4 + }, + { // Entry 301 + -0x1.8a205fd55873f800459be65852624b5fp0, + -0x1.ffffffffffff3p4 + }, + { // Entry 302 + 0x1.fffff55555bb3bb73172cf8cfdef50f9p-11, + 0x1.ffffffffffff8p-11 + }, + { // Entry 303 + -0x1.fffff55555bb3bb73172cf8cfdef50f9p-11, + -0x1.ffffffffffff8p-11 + }, + { // Entry 304 + 0x1.f5b75f92c80db80cbd711fcdd109b918p-3, + 0x1.ffffffffffffep-3 + }, + { // Entry 305 + -0x1.f5b75f92c80db80cbd711fcdd109b918p-3, + -0x1.ffffffffffffep-3 + }, + { // Entry 306 + 0x1.ffffffffffffb5555555555563bbbbbbp-26, + 0x1.ffffffffffffep-26 + }, + { // Entry 307 + -0x1.ffffffffffffb5555555555563bbbbbbp-26, + -0x1.ffffffffffffep-26 + }, + { // Entry 308 + -0.0, + -0x1.0p-1074 + }, + { // Entry 309 + 0.0, + 0x1.0p-1074 + }, + { // Entry 310 + -0.0, + -0.0 + }, + { // Entry 311 + 0.0, + 0x1.0p-1074 + }, + { // Entry 312 + -0.0, + -0x1.0p-1074 + }, + { // Entry 313 + -0x1.0000000000000fffffffffffffffffffp-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 314 + 0x1.0000000000000fffffffffffffffffffp-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 315 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022 + }, + { // Entry 316 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022 + }, + { // Entry 317 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 318 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 319 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 320 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 321 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022 + }, + { // Entry 322 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022 + }, + { // Entry 323 + 0x1.0000000000000fffffffffffffffffffp-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 324 + -0x1.0000000000000fffffffffffffffffffp-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 325 + 0x1.9999994237fab1da64992a310312505ep-13, + 0x1.999999999999ap-13 + }, + { // Entry 326 + -0x1.9999994237fab1da64992a310312505ep-13, + -0x1.999999999999ap-13 + }, + { // Entry 327 + 0x1.9999983c131f7a10c5dd5d6e7ce3cb81p-12, + 0x1.999999999999ap-12 + }, + { // Entry 328 + -0x1.9999983c131f7a10c5dd5d6e7ce3cb81p-12, + -0x1.999999999999ap-12 + }, + { // Entry 329 + 0x1.333330e560498c727e4d6265bd2ffec8p-11, + 0x1.3333333333334p-11 + }, + { // Entry 330 + -0x1.333330e560498c727e4d6265bd2ffec8p-11, + -0x1.3333333333334p-11 + }, + { // Entry 331 + 0x1.999994237fca32b5a26ff8f7d9bd8d35p-11, + 0x1.999999999999ap-11 + }, + { // Entry 332 + -0x1.999994237fca32b5a26ff8f7d9bd8d35p-11, + -0x1.999999999999ap-11 + }, + { // Entry 333 + 0x1.fffff55555bbbbb72972d00cfde752f9p-11, + 0x1.0p-10 + }, + { // Entry 334 + -0x1.fffff55555bbbbb72972d00cfde752f9p-11, + -0x1.0p-10 + }, + { // Entry 335 + 0x1.333329fbe7ebeef09e51711b44f86539p-10, + 0x1.3333333333333p-10 + }, + { // Entry 336 + -0x1.333329fbe7ebeef09e51711b44f86539p-10, + -0x1.3333333333333p-10 + }, + { // Entry 337 + 0x1.666657c3edf5fc60e8ee22a4cfe0569cp-10, + 0x1.6666666666666p-10 + }, + { // Entry 338 + -0x1.666657c3edf5fc60e8ee22a4cfe0569cp-10, + -0x1.6666666666666p-10 + }, + { // Entry 339 + 0x1.999983c133ee81d417cae21e440492ffp-10, + 0x1.9999999999999p-10 + }, + { // Entry 340 + -0x1.999983c133ee81d417cae21e440492ffp-10, + -0x1.9999999999999p-10 + }, + { // Entry 341 + 0x1.ccccadb230d5be2055f8f3b668d57c61p-10, + 0x1.cccccccccccccp-10 + }, + { // Entry 342 + -0x1.ccccadb230d5be2055f8f3b668d57c61p-10, + -0x1.cccccccccccccp-10 + }, + { // Entry 343 + 0x1.0664f6d5e1b55939fa39d3978354fb08p-7, + 0x1.0666666666666p-7 + }, + { // Entry 344 + -0x1.0664f6d5e1b55939fa39d3978354fb08p-7, + -0x1.0666666666666p-7 + }, + { // Entry 345 + 0x1.ccc506615256b4d660acbe5536614bc0p-7, + 0x1.cccccccccccccp-7 + }, + { // Entry 346 + -0x1.ccc506615256b4d660acbe5536614bc0p-7, + -0x1.cccccccccccccp-7 + }, + { // Entry 347 + 0x1.498e385e62b42d40708322b65b9a92a2p-6, + 0x1.4999999999999p-6 + }, + { // Entry 348 + -0x1.498e385e62b42d40708322b65b9a92a2p-6, + -0x1.4999999999999p-6 + }, + { // Entry 349 + 0x1.acb3bf2888fd253cde72a65ff6b5a5edp-6, + 0x1.accccccccccccp-6 + }, + { // Entry 350 + -0x1.acb3bf2888fd253cde72a65ff6b5a5edp-6, + -0x1.accccccccccccp-6 + }, + { // Entry 351 + 0x1.07e89e3abee7df5bc22b883856e5d802p-5, + 0x1.080p-5 + }, + { // Entry 352 + -0x1.07e89e3abee7df5bc22b883856e5d802p-5, + -0x1.080p-5 + }, + { // Entry 353 + 0x1.39726b096afb5657f037d44ceabacfdep-5, + 0x1.399999999999ap-5 + }, + { // Entry 354 + -0x1.39726b096afb5657f037d44ceabacfdep-5, + -0x1.399999999999ap-5 + }, + { // Entry 355 + 0x1.6af659752a8e90e79823616d18922d06p-5, + 0x1.6b33333333334p-5 + }, + { // Entry 356 + -0x1.6af659752a8e90e79823616d18922d06p-5, + -0x1.6b33333333334p-5 + }, + { // Entry 357 + 0x1.9c737d9b4d07092c295584951a1f5a71p-5, + 0x1.9cccccccccccep-5 + }, + { // Entry 358 + -0x1.9c737d9b4d07092c295584951a1f5a71p-5, + -0x1.9cccccccccccep-5 + }, + { // Entry 359 + 0x1.cde8ec5bb65f0e742405e56b5ae426e2p-5, + 0x1.ce66666666666p-5 + }, + { // Entry 360 + -0x1.cde8ec5bb65f0e742405e56b5ae426e2p-5, + -0x1.ce66666666666p-5 + }, + { // Entry 361 + 0x1.3359bce85d4c0edf062a316ac9a3b035p-1, + 0x1.5e7fc4369bdadp-1 + }, + { // Entry 362 + -0x1.3359bce85d4c0edf062a316ac9a3b035p-1, + -0x1.5e7fc4369bdadp-1 + }, + { // Entry 363 + 0x1.d5ca708561450bec8cd54cd06ef71588p-1, + 0x1.4e7fc4369bdadp0 + }, + { // Entry 364 + -0x1.d5ca708561450bec8cd54cd06ef71588p-1, + -0x1.4e7fc4369bdadp0 + }, + { // Entry 365 + 0x1.17ac441eeac2e0e131633d5dbda1192dp0, + 0x1.edbfa651e9c84p0 + }, + { // Entry 366 + -0x1.17ac441eeac2e0e131633d5dbda1192dp0, + -0x1.edbfa651e9c84p0 + }, + { // Entry 367 + 0x1.3279e85590bed5c0a7d465c70e9312dbp0, + 0x1.467fc4369bdadp1 + }, + { // Entry 368 + -0x1.3279e85590bed5c0a7d465c70e9312dbp0, + -0x1.467fc4369bdadp1 + }, + { // Entry 369 + 0x1.43f644a23f11312b0baeda6469939df1p0, + 0x1.961fb54442d18p1 + }, + { // Entry 370 + -0x1.43f644a23f11312b0baeda6469939df1p0, + -0x1.961fb54442d18p1 + }, + { // Entry 371 + 0x1.502a1d3da2b62cdafdfc8df896fb781ep0, + 0x1.e5bfa651e9c83p1 + }, + { // Entry 372 + -0x1.502a1d3da2b62cdafdfc8df896fb781ep0, + -0x1.e5bfa651e9c83p1 + }, + { // Entry 373 + 0x1.592066aa733e56535ef23487f1ba45abp0, + 0x1.1aafcbafc85f7p2 + }, + { // Entry 374 + -0x1.592066aa733e56535ef23487f1ba45abp0, + -0x1.1aafcbafc85f7p2 + }, + { // Entry 375 + 0x1.5ff8e2755165d95ef4dfa238b69035c3p0, + 0x1.427fc4369bdadp2 + }, + { // Entry 376 + -0x1.5ff8e2755165d95ef4dfa238b69035c3p0, + -0x1.427fc4369bdadp2 + }, + { // Entry 377 + 0x1.655d65485dc172ad1da5d376106987dep0, + 0x1.6a4fbcbd6f562p2 + }, + { // Entry 378 + -0x1.655d65485dc172ad1da5d376106987dep0, + -0x1.6a4fbcbd6f562p2 + }, + { // Entry 379 + 0x1.65711d6bfd5303b266e1f766916353c0p0, + 0x1.6af2eff0a2896p2 + }, + { // Entry 380 + -0x1.65711d6bfd5303b266e1f766916353c0p0, + -0x1.6af2eff0a2896p2 + }, + { // Entry 381 + 0x1.602a2aaa59041e73fe9cbe5018d9258bp0, + 0x1.43c62a9d02414p2 + }, + { // Entry 382 + -0x1.602a2aaa59041e73fe9cbe5018d9258bp0, + -0x1.43c62a9d02414p2 + }, + { // Entry 383 + 0x1.597f46e10aa0ef6e7b79babd52218e41p0, + 0x1.1c99654961f92p2 + }, + { // Entry 384 + -0x1.597f46e10aa0ef6e7b79babd52218e41p0, + -0x1.1c99654961f92p2 + }, + { // Entry 385 + 0x1.50d20254a2ff42dab732523958fa024cp0, + 0x1.ead93feb8361fp1 + }, + { // Entry 386 + -0x1.50d20254a2ff42dab732523958fa024cp0, + -0x1.ead93feb8361fp1 + }, + { // Entry 387 + 0x1.45190c030df0f68611f816a36d10b59ap0, + 0x1.9c7fb54442d1ap1 + }, + { // Entry 388 + -0x1.45190c030df0f68611f816a36d10b59ap0, + -0x1.9c7fb54442d1ap1 + }, + { // Entry 389 + 0x1.34794d6993e603dc236dc9700bc984e9p0, + 0x1.4e262a9d02415p1 + }, + { // Entry 390 + -0x1.34794d6993e603dc236dc9700bc984e9p0, + -0x1.4e262a9d02415p1 + }, + { // Entry 391 + 0x1.1b598910bd9bdfeeb608b6b41a96f287p0, + 0x1.ff993feb83620p0 + }, + { // Entry 392 + -0x1.1b598910bd9bdfeeb608b6b41a96f287p0, + -0x1.ff993feb83620p0 + }, + { // Entry 393 + 0x1.e44c9309197c4f98392215a424630bb4p-1, + 0x1.62e62a9d02416p0 + }, + { // Entry 394 + -0x1.e44c9309197c4f98392215a424630bb4p-1, + -0x1.62e62a9d02416p0 + }, + { // Entry 395 + 0x1.5150f1acfb0190aa9794ba0211b4eb4bp-1, + 0x1.8c662a9d02419p-1 + }, + { // Entry 396 + -0x1.5150f1acfb0190aa9794ba0211b4eb4bp-1, + -0x1.8c662a9d02419p-1 + }, + { // Entry 397 + -0x1.073ea15c614e11668ba9fe75888fee13p0, + -0x1.a8aa1d11c44ffp0 + }, + { // Entry 398 + 0x1.073ea15c614e11668ba9fe75888fee13p0, + 0x1.a8aa1d11c44ffp0 + }, + { // Entry 399 + -0x1.0215495ceb1806c15504264e9f1be222p0, + -0x1.95ec8b9e03d54p0 + }, + { // Entry 400 + 0x1.0215495ceb1806c15504264e9f1be222p0, + 0x1.95ec8b9e03d54p0 + }, + { // Entry 401 + -0x1.f923661b52647e658c1f9707f87d1606p-1, + -0x1.832efa2a435a9p0 + }, + { // Entry 402 + 0x1.f923661b52647e658c1f9707f87d1606p-1, + 0x1.832efa2a435a9p0 + }, + { // Entry 403 + -0x1.ed57806b9090def7310604bffed0093dp-1, + -0x1.707168b682dfep0 + }, + { // Entry 404 + 0x1.ed57806b9090def7310604bffed0093dp-1, + 0x1.707168b682dfep0 + }, + { // Entry 405 + -0x1.e0b524b578b4212100f5f78ecd69a1ddp-1, + -0x1.5db3d742c2653p0 + }, + { // Entry 406 + 0x1.e0b524b578b4212100f5f78ecd69a1ddp-1, + 0x1.5db3d742c2653p0 + }, + { // Entry 407 + -0x1.d3290701e8ac987ea5732b16701a05fcp-1, + -0x1.4af645cf01ea8p0 + }, + { // Entry 408 + 0x1.d3290701e8ac987ea5732b16701a05fcp-1, + 0x1.4af645cf01ea8p0 + }, + { // Entry 409 + -0x1.c49e488683ace4d5fd4683f7caab7e9fp-1, + -0x1.3838b45b416fdp0 + }, + { // Entry 410 + 0x1.c49e488683ace4d5fd4683f7caab7e9fp-1, + 0x1.3838b45b416fdp0 + }, + { // Entry 411 + -0x1.b4fe843e9e803b2349ffd384aab807f3p-1, + -0x1.257b22e780f52p0 + }, + { // Entry 412 + 0x1.b4fe843e9e803b2349ffd384aab807f3p-1, + 0x1.257b22e780f52p0 + }, + { // Entry 413 + -0x1.a431f39bc6f4fc2f533fb8b685f7fa56p-1, + -0x1.12bd9173c07abp0 + }, + { // Entry 414 + 0x1.a431f39bc6f4fc2f533fb8b685f7fa56p-1, + 0x1.12bd9173c07abp0 + }, + { // Entry 415 + -0x1.871278e2b0226c7be314f39e634cb866p-1, + -0x1.ea5c3ed5b3850p-1 + }, + { // Entry 416 + 0x1.871278e2b0226c7be314f39e634cb866p-1, + 0x1.ea5c3ed5b3850p-1 + }, + { // Entry 417 + -0x1.7b8b3be13fca614c858af0d2c2879b7ap-1, + -0x1.d4b87dab670a0p-1 + }, + { // Entry 418 + 0x1.7b8b3be13fca614c858af0d2c2879b7ap-1, + 0x1.d4b87dab670a0p-1 + }, + { // Entry 419 + -0x1.6f851ed60f1e0ce1ff2d5577433c5ab2p-1, + -0x1.bf14bc811a8f0p-1 + }, + { // Entry 420 + 0x1.6f851ed60f1e0ce1ff2d5577433c5ab2p-1, + 0x1.bf14bc811a8f0p-1 + }, + { // Entry 421 + -0x1.62fb644de198ccbb0b7e0d32484d4ec0p-1, + -0x1.a970fb56ce140p-1 + }, + { // Entry 422 + 0x1.62fb644de198ccbb0b7e0d32484d4ec0p-1, + 0x1.a970fb56ce140p-1 + }, + { // Entry 423 + -0x1.55e986b4afe0cfdcf0138634c7c95b2bp-1, + -0x1.93cd3a2c81990p-1 + }, + { // Entry 424 + 0x1.55e986b4afe0cfdcf0138634c7c95b2bp-1, + 0x1.93cd3a2c81990p-1 + }, + { // Entry 425 + -0x1.484b52126a2735deb224632c4c2e4042p-1, + -0x1.7e297902351e0p-1 + }, + { // Entry 426 + 0x1.484b52126a2735deb224632c4c2e4042p-1, + 0x1.7e297902351e0p-1 + }, + { // Entry 427 + -0x1.3a1d01c9f4b1e99685e3fe739fdcffdap-1, + -0x1.6885b7d7e8a30p-1 + }, + { // Entry 428 + 0x1.3a1d01c9f4b1e99685e3fe739fdcffdap-1, + 0x1.6885b7d7e8a30p-1 + }, + { // Entry 429 + -0x1.2b5b626353bb47148742f9c053cd45c3p-1, + -0x1.52e1f6ad9c280p-1 + }, + { // Entry 430 + 0x1.2b5b626353bb47148742f9c053cd45c3p-1, + 0x1.52e1f6ad9c280p-1 + }, + { // Entry 431 + -0x1.1c03f735e818163698043ffa524dd5f7p-1, + -0x1.3d3e35834fad0p-1 + }, + { // Entry 432 + 0x1.1c03f735e818163698043ffa524dd5f7p-1, + 0x1.3d3e35834fad0p-1 + }, + { // Entry 433 + -0x1.eab7b2edbe26eb1b5fb149357f51d6c9p-2, + -0x1.0a0b02501c799p-1 + }, + { // Entry 434 + 0x1.eab7b2edbe26eb1b5fb149357f51d6c9p-2, + 0x1.0a0b02501c799p-1 + }, + { // Entry 435 + -0x1.bb12f34bbefd630026b351ba15c3d256p-2, + -0x1.d8f7208e6b82cp-2 + }, + { // Entry 436 + 0x1.bb12f34bbefd630026b351ba15c3d256p-2, + 0x1.d8f7208e6b82cp-2 + }, + { // Entry 437 + -0x1.894ae0cb0ee2f00789eee093998b4a9bp-2, + -0x1.9dd83c7c9e126p-2 + }, + { // Entry 438 + 0x1.894ae0cb0ee2f00789eee093998b4a9bp-2, + 0x1.9dd83c7c9e126p-2 + }, + { // Entry 439 + -0x1.5579fdc3a8f3f9cf3f863dc6aa9b7198p-2, + -0x1.62b9586ad0a20p-2 + }, + { // Entry 440 + 0x1.5579fdc3a8f3f9cf3f863dc6aa9b7198p-2, + 0x1.62b9586ad0a20p-2 + }, + { // Entry 441 + -0x1.1fc79cfbf4e7b55f4dc25f1890fecd53p-2, + -0x1.279a74590331ap-2 + }, + { // Entry 442 + 0x1.1fc79cfbf4e7b55f4dc25f1890fecd53p-2, + 0x1.279a74590331ap-2 + }, + { // Entry 443 + -0x1.d0d0f85f973cce547bb0dc0a38708bffp-3, + -0x1.d8f7208e6b829p-3 + }, + { // Entry 444 + 0x1.d0d0f85f973cce547bb0dc0a38708bffp-3, + 0x1.d8f7208e6b829p-3 + }, + { // Entry 445 + -0x1.5f3d415cb47fed760072dbaeb268ceefp-3, + -0x1.62b9586ad0a1ep-3 + }, + { // Entry 446 + 0x1.5f3d415cb47fed760072dbaeb268ceefp-3, + 0x1.62b9586ad0a1ep-3 + }, + { // Entry 447 + -0x1.d6e1431de5be5630dec33d31fb926cbfp-4, + -0x1.d8f7208e6b826p-4 + }, + { // Entry 448 + 0x1.d6e1431de5be5630dec33d31fb926cbfp-4, + 0x1.d8f7208e6b826p-4 + }, + { // Entry 449 + -0x1.d870dcfcfe7d4ce3742c7268f8f5e0e8p-5, + -0x1.d8f7208e6b82dp-5 + }, + { // Entry 450 + 0x1.d870dcfcfe7d4ce3742c7268f8f5e0e8p-5, + 0x1.d8f7208e6b82dp-5 + }, + { // Entry 451 + 0x1.d870dcfcfe7d4ce3742c7268f8f5e0e8p-5, + 0x1.d8f7208e6b82dp-5 + }, + { // Entry 452 + -0x1.d870dcfcfe7d4ce3742c7268f8f5e0e8p-5, + -0x1.d8f7208e6b82dp-5 + }, + { // Entry 453 + 0x1.d6e1431de5bec4b79b64ec5a67bbcc08p-4, + 0x1.d8f7208e6b82dp-4 + }, + { // Entry 454 + -0x1.d6e1431de5bec4b79b64ec5a67bbcc08p-4, + -0x1.d8f7208e6b82dp-4 + }, + { // Entry 455 + 0x1.5f3d415cb4802b98cc41263eda7f242ap-3, + 0x1.62b9586ad0a22p-3 + }, + { // Entry 456 + -0x1.5f3d415cb4802b98cc41263eda7f242ap-3, + -0x1.62b9586ad0a22p-3 + }, + { // Entry 457 + 0x1.d0d0f85f973d0b16e9de3a03bdc6808bp-3, + 0x1.d8f7208e6b82dp-3 + }, + { // Entry 458 + -0x1.d0d0f85f973d0b16e9de3a03bdc6808bp-3, + -0x1.d8f7208e6b82dp-3 + }, + { // Entry 459 + 0x1.1fc79cfbf4e7d2e9265fe8f12eda96cap-2, + 0x1.279a74590331cp-2 + }, + { // Entry 460 + -0x1.1fc79cfbf4e7d2e9265fe8f12eda96cap-2, + -0x1.279a74590331cp-2 + }, + { // Entry 461 + 0x1.5579fdc3a8f4166188aad00fcf71b510p-2, + 0x1.62b9586ad0a22p-2 + }, + { // Entry 462 + -0x1.5579fdc3a8f4166188aad00fcf71b510p-2, + -0x1.62b9586ad0a22p-2 + }, + { // Entry 463 + 0x1.894ae0cb0ee30b895f6381f3b133dc04p-2, + 0x1.9dd83c7c9e128p-2 + }, + { // Entry 464 + -0x1.894ae0cb0ee30b895f6381f3b133dc04p-2, + -0x1.9dd83c7c9e128p-2 + }, + { // Entry 465 + 0x1.bb12f34bbefd7d5fccadb160103a2001p-2, + 0x1.d8f7208e6b82ep-2 + }, + { // Entry 466 + -0x1.bb12f34bbefd7d5fccadb160103a2001p-2, + -0x1.d8f7208e6b82ep-2 + }, + { // Entry 467 + 0x1.eab7b2edbe26eb1b5fb149357f51d6c9p-2, + 0x1.0a0b02501c799p-1 + }, + { // Entry 468 + -0x1.eab7b2edbe26eb1b5fb149357f51d6c9p-2, + -0x1.0a0b02501c799p-1 + }, + { // Entry 469 + 0x1.1c03f735e817e7f7c907ff3c4e54650dp-1, + 0x1.3d3e35834faccp-1 + }, + { // Entry 470 + -0x1.1c03f735e817e7f7c907ff3c4e54650dp-1, + -0x1.3d3e35834faccp-1 + }, + { // Entry 471 + 0x1.2b5b626353bb1a939a57893481fc6efep-1, + 0x1.52e1f6ad9c27cp-1 + }, + { // Entry 472 + -0x1.2b5b626353bb1a939a57893481fc6efep-1, + -0x1.52e1f6ad9c27cp-1 + }, + { // Entry 473 + 0x1.3a1d01c9f4b1becd56338b2ff004552cp-1, + 0x1.6885b7d7e8a2cp-1 + }, + { // Entry 474 + -0x1.3a1d01c9f4b1becd56338b2ff004552cp-1, + -0x1.6885b7d7e8a2cp-1 + }, + { // Entry 475 + 0x1.484b52126a270cc4c2f0b9b8d5749c23p-1, + 0x1.7e297902351dcp-1 + }, + { // Entry 476 + -0x1.484b52126a270cc4c2f0b9b8d5749c23p-1, + -0x1.7e297902351dcp-1 + }, + { // Entry 477 + 0x1.55e986b4afe0a867e17b875f8892133ep-1, + 0x1.93cd3a2c8198cp-1 + }, + { // Entry 478 + -0x1.55e986b4afe0a867e17b875f8892133ep-1, + -0x1.93cd3a2c8198cp-1 + }, + { // Entry 479 + 0x1.62fb644de198a6df044c5f206ab189e5p-1, + 0x1.a970fb56ce13cp-1 + }, + { // Entry 480 + -0x1.62fb644de198a6df044c5f206ab189e5p-1, + -0x1.a970fb56ce13cp-1 + }, + { // Entry 481 + 0x1.6f851ed60f1de8920ad396732d80e630p-1, + 0x1.bf14bc811a8ecp-1 + }, + { // Entry 482 + -0x1.6f851ed60f1de8920ad396732d80e630p-1, + -0x1.bf14bc811a8ecp-1 + }, + { // Entry 483 + 0x1.7b8b3be13fca3e7ae61ece393dc20351p-1, + 0x1.d4b87dab6709cp-1 + }, + { // Entry 484 + -0x1.7b8b3be13fca3e7ae61ece393dc20351p-1, + -0x1.d4b87dab6709cp-1 + }, + { // Entry 485 + 0x1.871278e2b0224b1a57a7517aa6080561p-1, + 0x1.ea5c3ed5b384cp-1 + }, + { // Entry 486 + -0x1.871278e2b0224b1a57a7517aa6080561p-1, + -0x1.ea5c3ed5b384cp-1 + }, + { // Entry 487 + 0x1.a431f39bc6f4fc2f533fb8b685f7fa56p-1, + 0x1.12bd9173c07abp0 + }, + { // Entry 488 + -0x1.a431f39bc6f4fc2f533fb8b685f7fa56p-1, + -0x1.12bd9173c07abp0 + }, + { // Entry 489 + 0x1.b4fe843e9e8072727b4b8be7730dc9f5p-1, + 0x1.257b22e780f56p0 + }, + { // Entry 490 + -0x1.b4fe843e9e8072727b4b8be7730dc9f5p-1, + -0x1.257b22e780f56p0 + }, + { // Entry 491 + 0x1.c49e488683ad184b42699159db8963c3p-1, + 0x1.3838b45b41701p0 + }, + { // Entry 492 + -0x1.c49e488683ad184b42699159db8963c3p-1, + -0x1.3838b45b41701p0 + }, + { // Entry 493 + 0x1.d3290701e8acc868f20733059c0c608ep-1, + 0x1.4af645cf01eacp0 + }, + { // Entry 494 + -0x1.d3290701e8acc868f20733059c0c608ep-1, + -0x1.4af645cf01eacp0 + }, + { // Entry 495 + 0x1.e0b524b578b44dca424e286b8612b332p-1, + 0x1.5db3d742c2657p0 + }, + { // Entry 496 + -0x1.e0b524b578b44dca424e286b8612b332p-1, + -0x1.5db3d742c2657p0 + }, + { // Entry 497 + 0x1.ed57806b909108a3ff02c70a568bf594p-1, + 0x1.707168b682e02p0 + }, + { // Entry 498 + -0x1.ed57806b909108a3ff02c70a568bf594p-1, + -0x1.707168b682e02p0 + }, + { // Entry 499 + 0x1.f923661b5264a5551df6c3d4c279e2c6p-1, + 0x1.832efa2a435adp0 + }, + { // Entry 500 + -0x1.f923661b5264a5551df6c3d4c279e2c6p-1, + -0x1.832efa2a435adp0 + }, + { // Entry 501 + 0x1.0215495ceb1818f77c287b62995eeddbp0, + 0x1.95ec8b9e03d58p0 + }, + { // Entry 502 + -0x1.0215495ceb1818f77c287b62995eeddbp0, + -0x1.95ec8b9e03d58p0 + }, + { // Entry 503 + 0x1.073ea15c614e11668ba9fe75888fee13p0, + 0x1.a8aa1d11c44ffp0 + }, + { // Entry 504 + -0x1.073ea15c614e11668ba9fe75888fee13p0, + -0x1.a8aa1d11c44ffp0 + }, + { // Entry 505 + 0x1.96c4c0ec290ebef92ab936700e7d3f1bp-1, + 0x1.04aff6d330942p0 + }, + { // Entry 506 + -0x1.96c4c0ec290ebef92ab936700e7d3f1bp-1, + -0x1.04aff6d330942p0 + }, + { // Entry 507 + 0x1.96c565a66992e578d5536359e24d1cffp-1, + 0x1.04b09e98dcdb4p0 + }, + { // Entry 508 + -0x1.96c565a66992e578d5536359e24d1cffp-1, + -0x1.04b09e98dcdb4p0 + }, + { // Entry 509 + 0x1.96c60a603e270ac6f5547fd0c1f8f8ecp-1, + 0x1.04b1465e89226p0 + }, + { // Entry 510 + -0x1.96c60a603e270ac6f5547fd0c1f8f8ecp-1, + -0x1.04b1465e89226p0 + }, + { // Entry 511 + 0x1.96c6af19a6cb76e043213a66372fc856p-1, + 0x1.04b1ee2435698p0 + }, + { // Entry 512 + -0x1.96c6af19a6cb76e043213a66372fc856p-1, + -0x1.04b1ee2435698p0 + }, + { // Entry 513 + 0x1.96c753d2a38071c172287dd0e901a28ep-1, + 0x1.04b295e9e1b0ap0 + }, + { // Entry 514 + -0x1.96c753d2a38071c172287dd0e901a28ep-1, + -0x1.04b295e9e1b0ap0 + }, + { // Entry 515 + 0x1.96c7f88b3446436730e2c7c9e49c64fap-1, + 0x1.04b33daf8df7cp0 + }, + { // Entry 516 + -0x1.96c7f88b3446436730e2c7c9e49c64fap-1, + -0x1.04b33daf8df7cp0 + }, + { // Entry 517 + 0x1.96c89d43591d33ce28d17fec2513bfcbp-1, + 0x1.04b3e5753a3eep0 + }, + { // Entry 518 + -0x1.96c89d43591d33ce28d17fec2513bfcbp-1, + -0x1.04b3e5753a3eep0 + }, + { // Entry 519 + 0x1.96c941fb12058af2fe7e4e965a300441p-1, + 0x1.04b48d3ae6860p0 + }, + { // Entry 520 + -0x1.96c941fb12058af2fe7e4e965a300441p-1, + -0x1.04b48d3ae6860p0 + }, + { // Entry 521 + 0x1.96c9e6b25eff61b237930a7d05a731ebp-1, + 0x1.04b5350092ccfp0 + }, + { // Entry 522 + -0x1.96c9e6b25eff61b237930a7d05a731ebp-1, + -0x1.04b5350092ccfp0 + }, + { // Entry 523 + -0.0, + -0x1.0p-1074 + }, + { // Entry 524 + 0.0, + 0x1.0p-1074 + }, + { // Entry 525 + -0.0, + -0.0 + }, + { // Entry 526 + 0.0, + 0x1.0p-1074 + }, + { // Entry 527 + -0.0, + -0x1.0p-1074 + }, + { // Entry 528 + 0x1.0c152382d73648a8c8f9175719d84f03p-1, + 0x1.279a74590331bp-1 + }, + { // Entry 529 + -0x1.0c152382d73648a8c8f9175719d84f03p-1, + -0x1.279a74590331bp-1 + }, + { // Entry 530 + 0x1.0c152382d73654a8c8f917571a1aed4ap-1, + 0x1.279a74590331cp-1 + }, + { // Entry 531 + -0x1.0c152382d73654a8c8f917571a1aed4ap-1, + -0x1.279a74590331cp-1 + }, + { // Entry 532 + 0x1.0c152382d73660a8c8f917571a0a6821p-1, + 0x1.279a74590331dp-1 + }, + { // Entry 533 + -0x1.0c152382d73660a8c8f917571a0a6821p-1, + -0x1.279a74590331dp-1 + }, + { // Entry 534 + 0x1.0c152382d7365277925622b33812561ep0, + 0x1.bb67ae8584ca9p0 + }, + { // Entry 535 + -0x1.0c152382d7365277925622b33812561ep0, + -0x1.bb67ae8584ca9p0 + }, + { // Entry 536 + 0x1.0c152382d7365677925622b338471928p0, + 0x1.bb67ae8584caap0 + }, + { // Entry 537 + -0x1.0c152382d7365677925622b338471928p0, + -0x1.bb67ae8584caap0 + }, + { // Entry 538 + 0x1.0c152382d7365a77925622b338446f3cp0, + 0x1.bb67ae8584cabp0 + }, + { // Entry 539 + -0x1.0c152382d7365a77925622b338446f3cp0, + -0x1.bb67ae8584cabp0 + }, + { // Entry 540 + 0x1.a64eec3cc23fbdfe90b96189d12851b4p-2, + 0x1.bffffffffffffp-2 + }, + { // Entry 541 + -0x1.a64eec3cc23fbdfe90b96189d12851b4p-2, + -0x1.bffffffffffffp-2 + }, + { // Entry 542 + 0x1.a64eec3cc23fcb6c84f92bd2003ce26cp-2, + 0x1.cp-2 + }, + { // Entry 543 + -0x1.a64eec3cc23fcb6c84f92bd2003ce26cp-2, + -0x1.cp-2 + }, + { // Entry 544 + 0x1.a64eec3cc23fd8da7938f61a2f29ff73p-2, + 0x1.c000000000001p-2 + }, + { // Entry 545 + -0x1.a64eec3cc23fd8da7938f61a2f29ff73p-2, + -0x1.c000000000001p-2 + }, + { // Entry 546 + 0x1.345f01cce37ba96325eacdc6f7ceec8cp-1, + 0x1.5ffffffffffffp-1 + }, + { // Entry 547 + -0x1.345f01cce37ba96325eacdc6f7ceec8cp-1, + -0x1.5ffffffffffffp-1 + }, + { // Entry 548 + 0x1.345f01cce37bb440844df1c4409fe779p-1, + 0x1.6p-1 + }, + { // Entry 549 + -0x1.345f01cce37bb440844df1c4409fe779p-1, + -0x1.6p-1 + }, + { // Entry 550 + 0x1.345f01cce37bbf1de2b115c1891fbafap-1, + 0x1.6000000000001p-1 + }, + { // Entry 551 + -0x1.345f01cce37bbf1de2b115c1891fbafap-1, + -0x1.6000000000001p-1 + }, + { // Entry 552 + 0x1.bde70ed439fe5f73a215d6096c04b42bp-1, + 0x1.2ffffffffffffp0 + }, + { // Entry 553 + -0x1.bde70ed439fe5f73a215d6096c04b42bp-1, + -0x1.2ffffffffffffp0 + }, + { // Entry 554 + 0x1.bde70ed439fe6cba95391a7f421b3821p-1, + 0x1.3p0 + }, + { // Entry 555 + -0x1.bde70ed439fe6cba95391a7f421b3821p-1, + -0x1.3p0 + }, + { // Entry 556 + 0x1.bde70ed439fe7a01885c5ef51760662ap-1, + 0x1.3000000000001p0 + }, + { // Entry 557 + -0x1.bde70ed439fe7a01885c5ef51760662ap-1, + -0x1.3000000000001p0 + }, + { // Entry 558 + 0x1.2e75728833a53c7ab9de734b9eb4f397p0, + 0x1.37fffffffffffp1 + }, + { // Entry 559 + -0x1.2e75728833a53c7ab9de734b9eb4f397p0, + -0x1.37fffffffffffp1 + }, + { // Entry 560 + 0x1.2e75728833a54116e3ef7326bd9839p0, + 0x1.380p1 + }, + { // Entry 561 + -0x1.2e75728833a54116e3ef7326bd9839p0, + -0x1.380p1 + }, + { // Entry 562 + 0x1.2e75728833a545b30e007301dc13e399p0, + 0x1.3800000000001p1 + }, + { // Entry 563 + -0x1.2e75728833a545b30e007301dc13e399p0, + -0x1.3800000000001p1 + }, + { // Entry 564 + 0x1.0640a74d6105ee338c5bcc6c7348c123p-4, + 0x1.069c8b46b3792p-4 + }, + { // Entry 565 + -0x1.0640a74d6105ee338c5bcc6c7348c123p-4, + -0x1.069c8b46b3792p-4 + }, + { // Entry 566 + 0x1.052fab368e062e72fbf2d39fe9d18888p-3, + 0x1.069c8b46b3792p-3 + }, + { // Entry 567 + -0x1.052fab368e062e72fbf2d39fe9d18888p-3, + -0x1.069c8b46b3792p-3 + }, + { // Entry 568 + 0x1.852a21876f242e8b182abd42c41ee89dp-3, + 0x1.89ead0ea0d35bp-3 + }, + { // Entry 569 + -0x1.852a21876f242e8b182abd42c41ee89dp-3, + -0x1.89ead0ea0d35bp-3 + }, + { // Entry 570 + 0x1.01123bc10a64bf0ab62d6ef7f32651aap-2, + 0x1.069c8b46b3792p-2 + }, + { // Entry 571 + -0x1.01123bc10a64bf0ab62d6ef7f32651aap-2, + -0x1.069c8b46b3792p-2 + }, + { // Entry 572 + 0x1.3daa733ee5357808e68aee008972c828p-2, + 0x1.4843ae1860576p-2 + }, + { // Entry 573 + -0x1.3daa733ee5357808e68aee008972c828p-2, + -0x1.4843ae1860576p-2 + }, + { // Entry 574 + 0x1.780c45b9736a9089f2fe1f8efa60bf44p-2, + 0x1.89ead0ea0d35ap-2 + }, + { // Entry 575 + -0x1.780c45b9736a9089f2fe1f8efa60bf44p-2, + -0x1.89ead0ea0d35ap-2 + }, + { // Entry 576 + 0x1.affaac96d797029e0b8ab4083d980b68p-2, + 0x1.cb91f3bbba13ep-2 + }, + { // Entry 577 + -0x1.affaac96d797029e0b8ab4083d980b68p-2, + -0x1.cb91f3bbba13ep-2 + }, + { // Entry 578 + 0x1.e54c7f9dac6708f315d38c8a8c2ce4d3p-2, + 0x1.069c8b46b3791p-1 + }, + { // Entry 579 + -0x1.e54c7f9dac6708f315d38c8a8c2ce4d3p-2, + -0x1.069c8b46b3791p-1 + }, + { // Entry 580 + 0x1.0bf560a09b924073e473cb0d5c32501ep-1, + 0x1.27701caf89e83p-1 + }, + { // Entry 581 + -0x1.0bf560a09b924073e473cb0d5c32501ep-1, + -0x1.27701caf89e83p-1 + }, + { // Entry 582 + 0x1.23e717d0fa7b0b8bf45d2cd120f6d29ep-1, + 0x1.4843ae1860575p-1 + }, + { // Entry 583 + -0x1.23e717d0fa7b0b8bf45d2cd120f6d29ep-1, + -0x1.4843ae1860575p-1 + }, + { // Entry 584 + 0x1.3a7e3f4793afa9a24b0112ea83035c7ep-1, + 0x1.69173f8136c67p-1 + }, + { // Entry 585 + -0x1.3a7e3f4793afa9a24b0112ea83035c7ep-1, + -0x1.69173f8136c67p-1 + }, + { // Entry 586 + 0x1.4fc2c55f7154871c8daa35843857b7ffp-1, + 0x1.89ead0ea0d359p-1 + }, + { // Entry 587 + -0x1.4fc2c55f7154871c8daa35843857b7ffp-1, + -0x1.89ead0ea0d359p-1 + }, + { // Entry 588 + 0x1.63c05ef8a353c6d1360ead977c2adb94p-1, + 0x1.aabe6252e3a4bp-1 + }, + { // Entry 589 + -0x1.63c05ef8a353c6d1360ead977c2adb94p-1, + -0x1.aabe6252e3a4bp-1 + }, + { // Entry 590 + 0x1.7685624cb374ad8950ee302aee748ad9p-1, + 0x1.cb91f3bbba13dp-1 + }, + { // Entry 591 + -0x1.7685624cb374ad8950ee302aee748ad9p-1, + -0x1.cb91f3bbba13dp-1 + }, + { // Entry 592 + 0x1.8821d1878dcb0371d2ed00f8bad7755ep-1, + 0x1.ec6585249082fp-1 + }, + { // Entry 593 + -0x1.8821d1878dcb0371d2ed00f8bad7755ep-1, + -0x1.ec6585249082fp-1 + }, + { // Entry 594 + 0x1.98a69592999488465c8b6185dd58b38ap-1, + 0x1.069c8b46b3791p0 + }, + { // Entry 595 + -0x1.98a69592999488465c8b6185dd58b38ap-1, + -0x1.069c8b46b3791p0 + }, + { // Entry 596 + 0x1.a824e56beafb17efb9ed12695185cc5bp-1, + 0x1.170653fb1eb0ap0 + }, + { // Entry 597 + -0x1.a824e56beafb17efb9ed12695185cc5bp-1, + -0x1.170653fb1eb0ap0 + }, + { // Entry 598 + 0x1.b6add448714e627e74ee9ce6911993e6p-1, + 0x1.27701caf89e83p0 + }, + { // Entry 599 + -0x1.b6add448714e627e74ee9ce6911993e6p-1, + -0x1.27701caf89e83p0 + }, + { // Entry 600 + 0x1.c4520007344f8b36a1c610e27f4bb57ep-1, + 0x1.37d9e563f51fcp0 + }, + { // Entry 601 + -0x1.c4520007344f8b36a1c610e27f4bb57ep-1, + -0x1.37d9e563f51fcp0 + }, + { // Entry 602 + 0x1.d12159a144ff3c88e549b6c7fe977a6bp-1, + 0x1.4843ae1860575p0 + }, + { // Entry 603 + -0x1.d12159a144ff3c88e549b6c7fe977a6bp-1, + -0x1.4843ae1860575p0 + }, + { // Entry 604 + 0x1.dd2b01e17c4270caa5ead83118478c99p-1, + 0x1.58ad76cccb8eep0 + }, + { // Entry 605 + -0x1.dd2b01e17c4270caa5ead83118478c99p-1, + -0x1.58ad76cccb8eep0 + }, + { // Entry 606 + 0x1.e87d358361bd4751c472fe76608804f7p-1, + 0x1.69173f8136c67p0 + }, + { // Entry 607 + -0x1.e87d358361bd4751c472fe76608804f7p-1, + -0x1.69173f8136c67p0 + }, + { // Entry 608 + 0x1.f32544b66aa5dfd1d5c551c7b435f099p-1, + 0x1.79810835a1fe0p0 + }, + { // Entry 609 + -0x1.f32544b66aa5dfd1d5c551c7b435f099p-1, + -0x1.79810835a1fe0p0 + }, + { // Entry 610 + 0x1.fd2f92d1f51f1d323eacb60983a6f40dp-1, + 0x1.89ead0ea0d359p0 + }, + { // Entry 611 + -0x1.fd2f92d1f51f1d323eacb60983a6f40dp-1, + -0x1.89ead0ea0d359p0 + }, + { // Entry 612 + 0x1.0353cdddc16607e33b1f4c9d55ff1784p0, + 0x1.9a54999e786d2p0 + }, + { // Entry 613 + -0x1.0353cdddc16607e33b1f4c9d55ff1784p0, + -0x1.9a54999e786d2p0 + }, + { // Entry 614 + 0x1.07cbfe8c14dd9ae6823776b5a4d81ba9p0, + 0x1.aabe6252e3a4bp0 + }, + { // Entry 615 + -0x1.07cbfe8c14dd9ae6823776b5a4d81ba9p0, + -0x1.aabe6252e3a4bp0 + }, + { // Entry 616 + 0x1.0c0540ee6eff5cb8c83f0e7e225652c0p0, + 0x1.bb282b074edc4p0 + }, + { // Entry 617 + -0x1.0c0540ee6eff5cb8c83f0e7e225652c0p0, + -0x1.bb282b074edc4p0 + }, + { // Entry 618 + 0x1.1004179915f3bd7827be1c9d557de4b1p0, + 0x1.cb91f3bbba13dp0 + }, + { // Entry 619 + -0x1.1004179915f3bd7827be1c9d557de4b1p0, + -0x1.cb91f3bbba13dp0 + }, + { // Entry 620 + 0x1.13cca8f590cdd610776bb232694ba1c1p0, + 0x1.dbfbbc70254b6p0 + }, + { // Entry 621 + -0x1.13cca8f590cdd610776bb232694ba1c1p0, + -0x1.dbfbbc70254b6p0 + }, + { // Entry 622 + 0x1.1762c60438ce2cf59a91a21864529016p0, + 0x1.ec6585249082fp0 + }, + { // Entry 623 + -0x1.1762c60438ce2cf59a91a21864529016p0, + -0x1.ec6585249082fp0 + }, + { // Entry 624 + 0x1.1ac9f0f5f0ac59ef468d0e8c13eecc94p0, + 0x1.fccf4dd8fbba8p0 + }, + { // Entry 625 + -0x1.1ac9f0f5f0ac59ef468d0e8c13eecc94p0, + -0x1.fccf4dd8fbba8p0 + }, + { // Entry 626 + 0x1.1e05637ffc0a8a6d0a7e22324ebefacfp0, + 0x1.069c8b46b3791p1 + }, + { // Entry 627 + -0x1.1e05637ffc0a8a6d0a7e22324ebefacfp0, + -0x1.069c8b46b3791p1 + }, + { // Entry 628 + 0x1.211814d79540eebd6dda8be7ed197d84p0, + 0x1.0ed16fa0e914ep1 + }, + { // Entry 629 + -0x1.211814d79540eebd6dda8be7ed197d84p0, + -0x1.0ed16fa0e914ep1 + }, + { // Entry 630 + 0x1.2404bf4b3ead000faf892c3f4eb4bfa9p0, + 0x1.170653fb1eb0bp1 + }, + { // Entry 631 + -0x1.2404bf4b3ead000faf892c3f4eb4bfa9p0, + -0x1.170653fb1eb0bp1 + }, + { // Entry 632 + 0x1.26cde575b64162e9e462d564797a5dd7p0, + 0x1.1f3b3855544c8p1 + }, + { // Entry 633 + -0x1.26cde575b64162e9e462d564797a5dd7p0, + -0x1.1f3b3855544c8p1 + }, + { // Entry 634 + 0x1.2975d70a874ee2c0fbc4d32b9997edb4p0, + 0x1.27701caf89e85p1 + }, + { // Entry 635 + -0x1.2975d70a874ee2c0fbc4d32b9997edb4p0, + -0x1.27701caf89e85p1 + }, + { // Entry 636 + 0x1.2bfeb53ef2d629fd2ec3bbe0988ec127p0, + 0x1.2fa50109bf842p1 + }, + { // Entry 637 + -0x1.2bfeb53ef2d629fd2ec3bbe0988ec127p0, + -0x1.2fa50109bf842p1 + }, + { // Entry 638 + 0x1.2e6a76d3a7c4daa88cd0858debcbfd55p0, + 0x1.37d9e563f51ffp1 + }, + { // Entry 639 + -0x1.2e6a76d3a7c4daa88cd0858debcbfd55p0, + -0x1.37d9e563f51ffp1 + }, + { // Entry 640 + 0x1.30baebc4d0b12279c4c6a70a83ec7404p0, + 0x1.400ec9be2abbcp1 + }, + { // Entry 641 + -0x1.30baebc4d0b12279c4c6a70a83ec7404p0, + -0x1.400ec9be2abbcp1 + }, + { // Entry 642 + 0x1.32f1c0a688709db9016d269725c02a4fp0, + 0x1.4843ae1860579p1 + }, + { // Entry 643 + -0x1.32f1c0a688709db9016d269725c02a4fp0, + -0x1.4843ae1860579p1 + }, + { // Entry 644 + 0x1.351081b3f9205c658eef3c57bcc8acb2p0, + 0x1.5078927295f36p1 + }, + { // Entry 645 + -0x1.351081b3f9205c658eef3c57bcc8acb2p0, + -0x1.5078927295f36p1 + }, + { // Entry 646 + 0x1.37189d975e5f9cb962f7bf8cf038ccc8p0, + 0x1.58ad76cccb8f3p1 + }, + { // Entry 647 + -0x1.37189d975e5f9cb962f7bf8cf038ccc8p0, + -0x1.58ad76cccb8f3p1 + }, + { // Entry 648 + 0x1.390b67f0f05fe3c31d028790ff0ff571p0, + 0x1.60e25b27012b0p1 + }, + { // Entry 649 + -0x1.390b67f0f05fe3c31d028790ff0ff571p0, + -0x1.60e25b27012b0p1 + }, + { // Entry 650 + 0x1.3aea1ba270fc7663f575c66a2dbf5ff8p0, + 0x1.69173f8136c6dp1 + }, + { // Entry 651 + -0x1.3aea1ba270fc7663f575c66a2dbf5ff8p0, + -0x1.69173f8136c6dp1 + }, + { // Entry 652 + 0x1.3cb5dce4b8f630b629d722f5ae3dc757p0, + 0x1.714c23db6c62ap1 + }, + { // Entry 653 + -0x1.3cb5dce4b8f630b629d722f5ae3dc757p0, + -0x1.714c23db6c62ap1 + }, + { // Entry 654 + 0x1.3e6fbb2c41396ce4aeff19d97552d217p0, + 0x1.79810835a1fe7p1 + }, + { // Entry 655 + -0x1.3e6fbb2c41396ce4aeff19d97552d217p0, + -0x1.79810835a1fe7p1 + }, + { // Entry 656 + 0x1.4018b2e13fe932bca7539dacbfa4d09ep0, + 0x1.81b5ec8fd79a4p1 + }, + { // Entry 657 + -0x1.4018b2e13fe932bca7539dacbfa4d09ep0, + -0x1.81b5ec8fd79a4p1 + }, + { // Entry 658 + 0x1.41b1aeef8e4ae6bd8723cc148d6caf10p0, + 0x1.89ead0ea0d35bp1 + }, + { // Entry 659 + -0x1.41b1aeef8e4ae6bd8723cc148d6caf10p0, + -0x1.89ead0ea0d35bp1 + }, + { // Entry 660 + -0x1.6807a9c540dd353125463348a685edc8p0, + -0x1.81b5ec8fd799fp2 + }, + { // Entry 661 + 0x1.6807a9c540dd353125463348a685edc8p0, + 0x1.81b5ec8fd799fp2 + }, + { // Entry 662 + -0x1.6631e1a59590376d984470d99cc8df7bp0, + -0x1.714c23db6c626p2 + }, + { // Entry 663 + 0x1.6631e1a59590376d984470d99cc8df7bp0, + 0x1.714c23db6c626p2 + }, + { // Entry 664 + -0x1.6431bb7edf2bb723008b3c51ca448a76p0, + -0x1.60e25b27012adp2 + }, + { // Entry 665 + 0x1.6431bb7edf2bb723008b3c51ca448a76p0, + 0x1.60e25b27012adp2 + }, + { // Entry 666 + -0x1.6201493b022361bd3c406520761b65cfp0, + -0x1.5078927295f34p2 + }, + { // Entry 667 + 0x1.6201493b022361bd3c406520761b65cfp0, + 0x1.5078927295f34p2 + }, + { // Entry 668 + -0x1.5f9977a47aee17d0f12c193a7dd62259p0, + -0x1.400ec9be2abbbp2 + }, + { // Entry 669 + 0x1.5f9977a47aee17d0f12c193a7dd62259p0, + 0x1.400ec9be2abbbp2 + }, + { // Entry 670 + -0x1.5cf1c53dd9ca9fa29b3bb04ec56e073fp0, + -0x1.2fa50109bf842p2 + }, + { // Entry 671 + 0x1.5cf1c53dd9ca9fa29b3bb04ec56e073fp0, + 0x1.2fa50109bf842p2 + }, + { // Entry 672 + -0x1.59ffe278fb5d0fd66d3a875f34e955b9p0, + -0x1.1f3b3855544c9p2 + }, + { // Entry 673 + 0x1.59ffe278fb5d0fd66d3a875f34e955b9p0, + 0x1.1f3b3855544c9p2 + }, + { // Entry 674 + -0x1.56b732e5cd9e7665c855c33ec7ba86a3p0, + -0x1.0ed16fa0e9150p2 + }, + { // Entry 675 + 0x1.56b732e5cd9e7665c855c33ec7ba86a3p0, + 0x1.0ed16fa0e9150p2 + }, + { // Entry 676 + -0x1.530823483d3605b2bd96ffaf2c4679c9p0, + -0x1.fccf4dd8fbbaep1 + }, + { // Entry 677 + 0x1.530823483d3605b2bd96ffaf2c4679c9p0, + 0x1.fccf4dd8fbbaep1 + }, + { // Entry 678 + -0x1.4edf430c0024477cefffec364da85c1dp0, + -0x1.dbfbbc70254bcp1 + }, + { // Entry 679 + 0x1.4edf430c0024477cefffec364da85c1dp0, + 0x1.dbfbbc70254bcp1 + }, + { // Entry 680 + -0x1.4a2407447a81c7dc1121259e08565d3ep0, + -0x1.bb282b074edcap1 + }, + { // Entry 681 + 0x1.4a2407447a81c7dc1121259e08565d3ep0, + 0x1.bb282b074edcap1 + }, + { // Entry 682 + -0x1.44b710bde944f5b73d2380913fb96b93p0, + -0x1.9a54999e786d8p1 + }, + { // Entry 683 + 0x1.44b710bde944f5b73d2380913fb96b93p0, + 0x1.9a54999e786d8p1 + }, + { // Entry 684 + -0x1.3e6fbb2c41396997fae3ce7cb202ab3cp0, + -0x1.79810835a1fe6p1 + }, + { // Entry 685 + 0x1.3e6fbb2c41396997fae3ce7cb202ab3cp0, + 0x1.79810835a1fe6p1 + }, + { // Entry 686 + -0x1.37189d975e5fa09a38272d7f560e0da4p0, + -0x1.58ad76cccb8f4p1 + }, + { // Entry 687 + 0x1.37189d975e5fa09a38272d7f560e0da4p0, + 0x1.58ad76cccb8f4p1 + }, + { // Entry 688 + -0x1.2e6a76d3a7c4e87fefa518c326ab6156p0, + -0x1.37d9e563f5202p1 + }, + { // Entry 689 + 0x1.2e6a76d3a7c4e87fefa518c326ab6156p0, + 0x1.37d9e563f5202p1 + }, + { // Entry 690 + -0x1.2404bf4b3ead1be0d614e16bd1916f4dp0, + -0x1.170653fb1eb10p1 + }, + { // Entry 691 + 0x1.2404bf4b3ead1be0d614e16bd1916f4dp0, + 0x1.170653fb1eb10p1 + }, + { // Entry 692 + -0x1.1762c60438ce5938069b20cf6314944ap0, + -0x1.ec6585249083cp0 + }, + { // Entry 693 + 0x1.1762c60438ce5938069b20cf6314944ap0, + 0x1.ec6585249083cp0 + }, + { // Entry 694 + -0x1.07cbfe8c14ddd1f1d38ba981b0996a1ap0, + -0x1.aabe6252e3a58p0 + }, + { // Entry 695 + 0x1.07cbfe8c14ddd1f1d38ba981b0996a1ap0, + 0x1.aabe6252e3a58p0 + }, + { // Entry 696 + -0x1.e87d358361bdd2789fd13900549104c2p-1, + -0x1.69173f8136c74p0 + }, + { // Entry 697 + 0x1.e87d358361bdd2789fd13900549104c2p-1, + 0x1.69173f8136c74p0 + }, + { // Entry 698 + -0x1.b6add448714f14e4cbd045740116f534p-1, + -0x1.27701caf89e90p0 + }, + { // Entry 699 + 0x1.b6add448714f14e4cbd045740116f534p-1, + 0x1.27701caf89e90p0 + }, + { // Entry 700 + -0x1.7685624cb37593eb960af368aeea2616p-1, + -0x1.cb91f3bbba157p-1 + }, + { // Entry 701 + 0x1.7685624cb37593eb960af368aeea2616p-1, + 0x1.cb91f3bbba157p-1 + }, + { // Entry 702 + -0x1.23e717d0fa7c2705659e11ed85e6dac4p-1, + -0x1.4843ae186058ep-1 + }, + { // Entry 703 + 0x1.23e717d0fa7c2705659e11ed85e6dac4p-1, + 0x1.4843ae186058ep-1 + }, + { // Entry 704 + -0x1.780c45b9736d2d89e5dbc5fe7167a786p-2, + -0x1.89ead0ea0d38ap-2 + }, + { // Entry 705 + 0x1.780c45b9736d2d89e5dbc5fe7167a786p-2, + 0x1.89ead0ea0d38ap-2 + }, + { // Entry 706 + -0x1.052fab368e0bf61ea3f942bd2601e1bap-3, + -0x1.069c8b46b37f0p-3 + }, + { // Entry 707 + 0x1.052fab368e0bf61ea3f942bd2601e1bap-3, + 0x1.069c8b46b37f0p-3 + }, + { // Entry 708 + 0x1.052fab368e0066c753ec64819b76a489p-3, + 0x1.069c8b46b3734p-3 + }, + { // Entry 709 + -0x1.052fab368e0066c753ec64819b76a489p-3, + -0x1.069c8b46b3734p-3 + }, + { // Entry 710 + 0x1.780c45b973680f69ff94600d976ecca3p-2, + 0x1.89ead0ea0d32cp-2 + }, + { // Entry 711 + -0x1.780c45b973680f69ff94600d976ecca3p-2, + -0x1.89ead0ea0d32cp-2 + }, + { // Entry 712 + 0x1.23e717d0fa7a1216d86181eab105dcf9p-1, + 0x1.4843ae186055fp-1 + }, + { // Entry 713 + -0x1.23e717d0fa7a1216d86181eab105dcf9p-1, + -0x1.4843ae186055fp-1 + }, + { // Entry 714 + 0x1.7685624cb373f375056aa629c14d7f7ep-1, + 0x1.cb91f3bbba128p-1 + }, + { // Entry 715 + -0x1.7685624cb373f375056aa629c14d7f7ep-1, + -0x1.cb91f3bbba128p-1 + }, + { // Entry 716 + 0x1.b6add448714dcb8a52cd35a987330f71p-1, + 0x1.27701caf89e78p0 + }, + { // Entry 717 + -0x1.b6add448714dcb8a52cd35a987330f71p-1, + -0x1.27701caf89e78p0 + }, + { // Entry 718 + 0x1.e87d358361bcd19359996a7779c977a2p-1, + 0x1.69173f8136c5cp0 + }, + { // Entry 719 + -0x1.e87d358361bcd19359996a7779c977a2p-1, + -0x1.69173f8136c5cp0 + }, + { // Entry 720 + 0x1.07cbfe8c14dd6c531603e943f23b5395p0, + 0x1.aabe6252e3a40p0 + }, + { // Entry 721 + -0x1.07cbfe8c14dd6c531603e943f23b5395p0, + -0x1.aabe6252e3a40p0 + }, + { // Entry 722 + 0x1.1762c60438ce078252d85e42621311efp0, + 0x1.ec65852490824p0 + }, + { // Entry 723 + -0x1.1762c60438ce078252d85e42621311efp0, + -0x1.ec65852490824p0 + }, + { // Entry 724 + 0x1.2404bf4b3eacd91e132bfb674e2913adp0, + 0x1.170653fb1eb04p1 + }, + { // Entry 725 + -0x1.2404bf4b3eacd91e132bfb674e2913adp0, + -0x1.170653fb1eb04p1 + }, + { // Entry 726 + 0x1.2e6a76d3a7c4b1226452cbee254cb00ep0, + 0x1.37d9e563f51f6p1 + }, + { // Entry 727 + -0x1.2e6a76d3a7c4b1226452cbee254cb00ep0, + -0x1.37d9e563f51f6p1 + }, + { // Entry 728 + 0x1.37189d975e5f721039ee06227b2cc34ep0, + 0x1.58ad76cccb8e8p1 + }, + { // Entry 729 + -0x1.37189d975e5f721039ee06227b2cc34ep0, + -0x1.58ad76cccb8e8p1 + }, + { // Entry 730 + 0x1.3e6fbb2c413941ff899c462376afaff3p0, + 0x1.79810835a1fdap1 + }, + { // Entry 731 + -0x1.3e6fbb2c413941ff899c462376afaff3p0, + -0x1.79810835a1fdap1 + }, + { // Entry 732 + 0x1.44b710bde944d3a9aeff63d91fa1f037p0, + 0x1.9a54999e786ccp1 + }, + { // Entry 733 + -0x1.44b710bde944d3a9aeff63d91fa1f037p0, + -0x1.9a54999e786ccp1 + }, + { // Entry 734 + 0x1.4a2407447a81aa4a6751ba1c00ad16b4p0, + 0x1.bb282b074edbep1 + }, + { // Entry 735 + -0x1.4a2407447a81aa4a6751ba1c00ad16b4p0, + -0x1.bb282b074edbep1 + }, + { // Entry 736 + 0x1.4edf430c00242d9760af2ba3d134ee30p0, + 0x1.dbfbbc70254b0p1 + }, + { // Entry 737 + -0x1.4edf430c00242d9760af2ba3d134ee30p0, + -0x1.dbfbbc70254b0p1 + }, + { // Entry 738 + 0x1.530823483d35eed7bdc41c7d43d4d1bep0, + 0x1.fccf4dd8fbba2p1 + }, + { // Entry 739 + -0x1.530823483d35eed7bdc41c7d43d4d1bep0, + -0x1.fccf4dd8fbba2p1 + }, + { // Entry 740 + 0x1.56b732e5cd9e621620c292f21c370a65p0, + 0x1.0ed16fa0e914ap2 + }, + { // Entry 741 + -0x1.56b732e5cd9e621620c292f21c370a65p0, + -0x1.0ed16fa0e914ap2 + }, + { // Entry 742 + 0x1.59ffe278fb5cfdacbc51061667641320p0, + 0x1.1f3b3855544c3p2 + }, + { // Entry 743 + -0x1.59ffe278fb5cfdacbc51061667641320p0, + -0x1.1f3b3855544c3p2 + }, + { // Entry 744 + 0x1.5cf1c53dd9ca8f4d320efaf2bed238dep0, + 0x1.2fa50109bf83cp2 + }, + { // Entry 745 + -0x1.5cf1c53dd9ca8f4d320efaf2bed238dep0, + -0x1.2fa50109bf83cp2 + }, + { // Entry 746 + 0x1.5f9977a47aee090d54ca7b763af2b8f6p0, + 0x1.400ec9be2abb5p2 + }, + { // Entry 747 + -0x1.5f9977a47aee090d54ca7b763af2b8f6p0, + -0x1.400ec9be2abb5p2 + }, + { // Entry 748 + 0x1.6201493b02235454cfe997849b56e6a4p0, + 0x1.5078927295f2ep2 + }, + { // Entry 749 + -0x1.6201493b02235454cfe997849b56e6a4p0, + -0x1.5078927295f2ep2 + }, + { // Entry 750 + 0x1.6431bb7edf2baae88464ead12ab4619ep0, + 0x1.60e25b27012a7p2 + }, + { // Entry 751 + -0x1.6431bb7edf2baae88464ead12ab4619ep0, + -0x1.60e25b27012a7p2 + }, + { // Entry 752 + 0x1.6631e1a595902c3b42171a76898ec8fbp0, + 0x1.714c23db6c620p2 + }, + { // Entry 753 + -0x1.6631e1a595902c3b42171a76898ec8fbp0, + -0x1.714c23db6c620p2 + }, + { // Entry 754 + 0x1.6807a9c540dd2ae72a3e8ad8c9147867p0, + 0x1.81b5ec8fd7999p2 + }, + { // Entry 755 + -0x1.6807a9c540dd2ae72a3e8ad8c9147867p0, + -0x1.81b5ec8fd7999p2 + }, + { // Entry 756 + 0x1.ef652dceca4daec044deb346c4b08d48p-5, + 0x1.effffffffffffp-5 + }, + { // Entry 757 + -0x1.ef652dceca4daec044deb346c4b08d48p-5, + -0x1.effffffffffffp-5 + }, + { // Entry 758 + 0x1.ef652dceca4dbeb14ee907159dd1c369p-5, + 0x1.fp-5 + }, + { // Entry 759 + -0x1.ef652dceca4dbeb14ee907159dd1c369p-5, + -0x1.fp-5 + }, + { // Entry 760 + 0x1.ef652dceca4dcea258f35ae476f20359p-5, + 0x1.f000000000001p-5 + }, + { // Entry 761 + -0x1.ef652dceca4dcea258f35ae476f20359p-5, + -0x1.f000000000001p-5 + }, + { // Entry 762 + 0x1.f57ab026c3a8ecb83ec0ccdd10add49ep-4, + 0x1.f7fffffffffffp-4 + }, + { // Entry 763 + -0x1.f57ab026c3a8ecb83ec0ccdd10add49ep-4, + -0x1.f7fffffffffffp-4 + }, + { // Entry 764 + 0x1.f57ab026c3a8fc7b278a06e9d0c43e3ap-4, + 0x1.f80p-4 + }, + { // Entry 765 + -0x1.f57ab026c3a8fc7b278a06e9d0c43e3ap-4, + -0x1.f80p-4 + }, + { // Entry 766 + 0x1.f57ab026c3a90c3e105340f690d6d5afp-4, + 0x1.f800000000001p-4 + }, + { // Entry 767 + -0x1.f57ab026c3a90c3e105340f690d6d5afp-4, + -0x1.f800000000001p-4 + }, + { // Entry 768 + 0x1.4923024ccb77ffc36091a6f234051783p-3, + 0x1.4bfffffffffffp-3 + }, + { // Entry 769 + -0x1.4923024ccb77ffc36091a6f234051783p-3, + -0x1.4bfffffffffffp-3 + }, + { // Entry 770 + 0x1.4923024ccb780f5a7e2ead4e2bd24d33p-3, + 0x1.4c0p-3 + }, + { // Entry 771 + -0x1.4923024ccb780f5a7e2ead4e2bd24d33p-3, + -0x1.4c0p-3 + }, + { // Entry 772 + 0x1.4923024ccb781ef19bcbb3aa2395a92bp-3, + 0x1.4c00000000001p-3 + }, + { // Entry 773 + -0x1.4923024ccb781ef19bcbb3aa2395a92bp-3, + -0x1.4c00000000001p-3 + }, + { // Entry 774 + 0x1.2a73a661eaf04c94833e0199180e931dp-2, + 0x1.3333333333332p-2 + }, + { // Entry 775 + -0x1.2a73a661eaf04c94833e0199180e931dp-2, + -0x1.3333333333332p-2 + }, + { // Entry 776 + 0x1.2a73a661eaf05b424f928e83f4ea7bc2p-2, + 0x1.3333333333333p-2 + }, + { // Entry 777 + -0x1.2a73a661eaf05b424f928e83f4ea7bc2p-2, + -0x1.3333333333333p-2 + }, + { // Entry 778 + 0x1.2a73a661eaf069f01be71b6ed1a61259p-2, + 0x1.3333333333334p-2 + }, + { // Entry 779 + -0x1.2a73a661eaf069f01be71b6ed1a61259p-2, + -0x1.3333333333334p-2 + }, + { // Entry 780 + 0x1.2fc48220cc1fce7fc93a77a07e48b002p-1, + 0x1.594317acc4ef8p-1 + }, + { // Entry 781 + -0x1.2fc48220cc1fce7fc93a77a07e48b002p-1, + -0x1.594317acc4ef8p-1 + }, + { // Entry 782 + 0x1.2fc48220cc1fd97f6b9419f2cefa0646p-1, + 0x1.594317acc4ef9p-1 + }, + { // Entry 783 + -0x1.2fc48220cc1fd97f6b9419f2cefa0646p-1, + -0x1.594317acc4ef9p-1 + }, + { // Entry 784 + 0x1.2fc48220cc1fe47f0dedbc451f59c99cp-1, + 0x1.594317acc4efap-1 + }, + { // Entry 785 + -0x1.2fc48220cc1fe47f0dedbc451f59c99cp-1, + -0x1.594317acc4efap-1 + }, + { // Entry 786 + 0x1.538f57b89061e1a19793adab72dc4cd0p-1, + 0x1.8ffffffffffffp-1 + }, + { // Entry 787 + -0x1.538f57b89061e1a19793adab72dc4cd0p-1, + -0x1.8ffffffffffffp-1 + }, + { // Entry 788 + 0x1.538f57b89061eb9122d5096b7cf267ebp-1, + 0x1.9p-1 + }, + { // Entry 789 + -0x1.538f57b89061eb9122d5096b7cf267ebp-1, + -0x1.9p-1 + }, + { // Entry 790 + 0x1.538f57b89061f580ae16652b86bb6353p-1, + 0x1.9000000000001p-1 + }, + { // Entry 791 + -0x1.538f57b89061f580ae16652b86bb6353p-1, + -0x1.9000000000001p-1 + }, + { // Entry 792 + -0.0, + -0x1.0p-1074 + }, + { // Entry 793 + 0.0, + 0x1.0p-1074 + }, + { // Entry 794 + -0.0, + -0.0 + }, + { // Entry 795 + 0.0, + 0x1.0p-1074 + }, + { // Entry 796 + -0.0, + -0x1.0p-1074 + }, + { // Entry 797 + 0x1.91cd24dd4f86f3abcfa4276d83a13d73p-5, + 0x1.921fb54442d17p-5 + }, + { // Entry 798 + -0x1.91cd24dd4f86f3abcfa4276d83a13d73p-5, + -0x1.921fb54442d17p-5 + }, + { // Entry 799 + 0x1.91cd24dd4f8703a1f7188f1d645421b1p-5, + 0x1.921fb54442d18p-5 + }, + { // Entry 800 + -0x1.91cd24dd4f8703a1f7188f1d645421b1p-5, + -0x1.921fb54442d18p-5 + }, + { // Entry 801 + 0x1.91cd24dd4f8713981e8cf6cd45063dd6p-5, + 0x1.921fb54442d19p-5 + }, + { // Entry 802 + -0x1.91cd24dd4f8713981e8cf6cd45063dd6p-5, + -0x1.921fb54442d19p-5 + }, + { // Entry 803 + 0x1.90d6dfbf0463be2efc3d3ae995b9e240p-4, + 0x1.921fb54442d17p-4 + }, + { // Entry 804 + -0x1.90d6dfbf0463be2efc3d3ae995b9e240p-4, + -0x1.921fb54442d17p-4 + }, + { // Entry 805 + 0x1.90d6dfbf0463ce07e23e541458c4aa07p-4, + 0x1.921fb54442d18p-4 + }, + { // Entry 806 + -0x1.90d6dfbf0463ce07e23e541458c4aa07p-4, + -0x1.921fb54442d18p-4 + }, + { // Entry 807 + 0x1.90d6dfbf0463dde0c83f6d3f1bcc5cd7p-4, + 0x1.921fb54442d19p-4 + }, + { // Entry 808 + -0x1.90d6dfbf0463dde0c83f6d3f1bcc5cd7p-4, + -0x1.921fb54442d19p-4 + }, + { // Entry 809 + 0x1.8d128eae9561353a88062ef0a34b4e80p-3, + 0x1.921fb54442d17p-3 + }, + { // Entry 810 + -0x1.8d128eae9561353a88062ef0a34b4e80p-3, + -0x1.921fb54442d17p-3 + }, + { // Entry 811 + 0x1.8d128eae956144a27ad04eaa5b924d06p-3, + 0x1.921fb54442d18p-3 + }, + { // Entry 812 + -0x1.8d128eae956144a27ad04eaa5b924d06p-3, + -0x1.921fb54442d18p-3 + }, + { // Entry 813 + 0x1.8d128eae9561540a6d9a6e6413cda4f7p-3, + 0x1.921fb54442d19p-3 + }, + { // Entry 814 + -0x1.8d128eae9561540a6d9a6e6413cda4f7p-3, + -0x1.921fb54442d19p-3 + }, + { // Entry 815 + 0x1.7f2d6a24777e099c2376cf0898b3c360p-2, + 0x1.921fb54442d17p-2 + }, + { // Entry 816 + -0x1.7f2d6a24777e099c2376cf0898b3c360p-2, + -0x1.921fb54442d17p-2 + }, + { // Entry 817 + 0x1.7f2d6a24777e1778e0d5c62102085610p-2, + 0x1.921fb54442d18p-2 + }, + { // Entry 818 + -0x1.7f2d6a24777e1778e0d5c62102085610p-2, + -0x1.921fb54442d18p-2 + }, + { // Entry 819 + 0x1.7f2d6a24777e25559e34bd396b372d9ep-2, + 0x1.921fb54442d19p-2 + }, + { // Entry 820 + -0x1.7f2d6a24777e25559e34bd396b372d9ep-2, + -0x1.921fb54442d19p-2 + }, + { // Entry 821 + 0x1.54e04c05d069fa1ecac0c3f5d7fae70fp-1, + 0x1.921fb54442d17p-1 + }, + { // Entry 822 + -0x1.54e04c05d069fa1ecac0c3f5d7fae70fp-1, + -0x1.921fb54442d17p-1 + }, + { // Entry 823 + 0x1.54e04c05d06a04041ccf30f00110c0f6p-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 824 + -0x1.54e04c05d06a04041ccf30f00110c0f6p-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 825 + 0x1.54e04c05d06a0de96edd9dea29d9b191p-1, + 0x1.921fb54442d19p-1 + }, + { // Entry 826 + -0x1.54e04c05d06a0de96edd9dea29d9b191p-1, + -0x1.921fb54442d19p-1 + }, + { // Entry 827 + 0x1.00fe987ed02fed962e123a7e12a6d283p0, + 0x1.921fb54442d17p0 + }, + { // Entry 828 + -0x1.00fe987ed02fed962e123a7e12a6d283p0, + -0x1.921fb54442d17p0 + }, + { // Entry 829 + 0x1.00fe987ed02ff23377d99ec36db533fep0, + 0x1.921fb54442d18p0 + }, + { // Entry 830 + -0x1.00fe987ed02ff23377d99ec36db533fep0, + -0x1.921fb54442d18p0 + }, + { // Entry 831 + 0x1.00fe987ed02ff6d0c1a10308c880b0d3p0, + 0x1.921fb54442d19p0 + }, + { // Entry 832 + -0x1.00fe987ed02ff6d0c1a10308c880b0d3p0, + -0x1.921fb54442d19p0 + }, + { // Entry 833 + 0x1.433b8a322ddd266fd81ec843d7c92a7ap0, + 0x1.921fb54442d17p1 + }, + { // Entry 834 + -0x1.433b8a322ddd266fd81ec843d7c92a7ap0, + -0x1.921fb54442d17p1 + }, + { // Entry 835 + 0x1.433b8a322ddd29618168a21c962c68bcp0, + 0x1.921fb54442d18p1 + }, + { // Entry 836 + -0x1.433b8a322ddd29618168a21c962c68bcp0, + -0x1.921fb54442d18p1 + }, + { // Entry 837 + 0x1.433b8a322ddd2c532ab27bf55459320bp0, + 0x1.921fb54442d19p1 + }, + { // Entry 838 + -0x1.433b8a322ddd2c532ab27bf55459320bp0, + -0x1.921fb54442d19p1 + }, + { // Entry 839 + 0x1.69b8154baf42e0f527ff3f4df7a4633ep0, + 0x1.921fb54442d17p2 + }, + { // Entry 840 + -0x1.69b8154baf42e0f527ff3f4df7a4633ep0, + -0x1.921fb54442d17p2 + }, + { // Entry 841 + 0x1.69b8154baf42e289ea46de59f75a7b90p0, + 0x1.921fb54442d18p2 + }, + { // Entry 842 + -0x1.69b8154baf42e289ea46de59f75a7b90p0, + -0x1.921fb54442d18p2 + }, + { // Entry 843 + 0x1.69b8154baf42e41eac8e7d65f6f129e7p0, + 0x1.921fb54442d19p2 + }, + { // Entry 844 + -0x1.69b8154baf42e41eac8e7d65f6f129e7p0, + -0x1.921fb54442d19p2 + }, + { // Entry 845 + 0x1.7dcb7c5c399ec04ad5c1eabbb0cccf9fp0, + 0x1.921fb54442d17p3 + }, + { // Entry 846 + -0x1.7dcb7c5c399ec04ad5c1eabbb0cccf9fp0, + -0x1.921fb54442d17p3 + }, + { // Entry 847 + 0x1.7dcb7c5c399ec11908f5986443f30bdap0, + 0x1.921fb54442d18p3 + }, + { // Entry 848 + -0x1.7dcb7c5c399ec11908f5986443f30bdap0, + -0x1.921fb54442d18p3 + }, + { // Entry 849 + 0x1.7dcb7c5c399ec1e73c29460cd708f9d8p0, + 0x1.921fb54442d19p3 + }, + { // Entry 850 + -0x1.7dcb7c5c399ec1e73c29460cd708f9d8p0, + -0x1.921fb54442d19p3 + }, + { // Entry 851 + 0x1.87f17cfda0b5caf7b170dd86f8287b63p0, + 0x1.921fb54442d17p4 + }, + { // Entry 852 + -0x1.87f17cfda0b5caf7b170dd86f8287b63p0, + -0x1.921fb54442d17p4 + }, + { // Entry 853 + 0x1.87f17cfda0b5cb5f4832c04cdf736f84p0, + 0x1.921fb54442d18p4 + }, + { // Entry 854 + -0x1.87f17cfda0b5cb5f4832c04cdf736f84p0, + -0x1.921fb54442d18p4 + }, + { // Entry 855 + 0x1.87f17cfda0b5cbc6def4a312c6b628b0p0, + 0x1.921fb54442d19p4 + }, + { // Entry 856 + -0x1.87f17cfda0b5cbc6def4a312c6b628b0p0, + -0x1.921fb54442d19p4 + }, + { // Entry 857 + 0x1.8d08152eddb7a3b8c976d7e120ba1197p0, + 0x1.921fb54442d17p5 + }, + { // Entry 858 + -0x1.8d08152eddb7a3b8c976d7e120ba1197p0, + -0x1.921fb54442d17p5 + }, + { // Entry 859 + 0x1.8d08152eddb7a3eca4948f3acff50864p0, + 0x1.921fb54442d18p5 + }, + { // Entry 860 + -0x1.8d08152eddb7a3eca4948f3acff50864p0, + -0x1.921fb54442d18p5 + }, + { // Entry 861 + 0x1.8d08152eddb7a4207fb246947f2bdf35p0, + 0x1.921fb54442d19p5 + }, + { // Entry 862 + -0x1.8d08152eddb7a4207fb246947f2bdf35p0, + -0x1.921fb54442d19p5 + }, + { // Entry 863 + 0x1.8f93d4b78b7cddf446e36e538b980193p0, + 0x1.921fb54442d17p6 + }, + { // Entry 864 + -0x1.8f93d4b78b7cddf446e36e538b980193p0, + -0x1.921fb54442d17p6 + }, + { // Entry 865 + 0x1.8f93d4b78b7cde0e366aa212646d3cb6p0, + 0x1.921fb54442d18p6 + }, + { // Entry 866 + -0x1.8f93d4b78b7cde0e366aa212646d3cb6p0, + -0x1.921fb54442d18p6 + }, + { // Entry 867 + 0x1.8f93d4b78b7cde2825f1d5d13d40678bp0, + 0x1.921fb54442d19p6 + }, + { // Entry 868 + -0x1.8f93d4b78b7cde2825f1d5d13d40678bp0, + -0x1.921fb54442d19p6 + }, + { // Entry 869 + 0x1.90d9c2ed8873775a4f6e3fe4c3a5982bp0, + 0x1.921fb54442d17p7 + }, + { // Entry 870 + -0x1.90d9c2ed8873775a4f6e3fe4c3a5982bp0, + -0x1.921fb54442d17p7 + }, + { // Entry 871 + 0x1.90d9c2ed887377674770eac36c2436b5p0, + 0x1.921fb54442d18p7 + }, + { // Entry 872 + -0x1.90d9c2ed887377674770eac36c2436b5p0, + -0x1.921fb54442d18p7 + }, + { // Entry 873 + 0x1.90d9c2ed887377743f7395a214a1cd0ep0, + 0x1.921fb54442d19p7 + }, + { // Entry 874 + -0x1.90d9c2ed887377743f7395a214a1cd0ep0, + -0x1.921fb54442d19p7 + }, + { // Entry 875 + 0x1.2b5f4b53c7948df5568782d0a75b8459p0, + 0x1.2d97c7f3321d1p1 + }, + { // Entry 876 + -0x1.2b5f4b53c7948df5568782d0a75b8459p0, + -0x1.2d97c7f3321d1p1 + }, + { // Entry 877 + 0x1.2b5f4b53c79492d7b5a6cd6203c9aae2p0, + 0x1.2d97c7f3321d2p1 + }, + { // Entry 878 + -0x1.2b5f4b53c79492d7b5a6cd6203c9aae2p0, + -0x1.2d97c7f3321d2p1 + }, + { // Entry 879 + 0x1.2b5f4b53c79497ba14c617f35fc7662ep0, + 0x1.2d97c7f3321d3p1 + }, + { // Entry 880 + -0x1.2b5f4b53c79497ba14c617f35fc7662ep0, + -0x1.2d97c7f3321d3p1 + }, + { // Entry 881 + 0x1.524a69fcff2af09f5f140df341a455ddp0, + 0x1.f6a7a2955385dp1 + }, + { // Entry 882 + -0x1.524a69fcff2af09f5f140df341a455ddp0, + -0x1.f6a7a2955385dp1 + }, + { // Entry 883 + 0x1.524a69fcff2af2923cab5c00b660c55fp0, + 0x1.f6a7a2955385ep1 + }, + { // Entry 884 + -0x1.524a69fcff2af2923cab5c00b660c55fp0, + -0x1.f6a7a2955385ep1 + }, + { // Entry 885 + 0x1.524a69fcff2af4851a42aa0e2aff61bcp0, + 0x1.f6a7a2955385fp1 + }, + { // Entry 886 + -0x1.524a69fcff2af4851a42aa0e2aff61bcp0, + -0x1.f6a7a2955385fp1 + }, + { // Entry 887 + 0x1.5c97d37d98aa37af1a1b75a619098288p0, + 0x1.2d97c7f3321d1p2 + }, + { // Entry 888 + -0x1.5c97d37d98aa37af1a1b75a619098288p0, + -0x1.2d97c7f3321d1p2 + }, + { // Entry 889 + 0x1.5c97d37d98aa3a711b94359371aaf903p0, + 0x1.2d97c7f3321d2p2 + }, + { // Entry 890 + -0x1.5c97d37d98aa3a711b94359371aaf903p0, + -0x1.2d97c7f3321d2p2 + }, + { // Entry 891 + 0x1.5c97d37d98aa3d331d0cf580ca04c102p0, + 0x1.2d97c7f3321d3p2 + }, + { // Entry 892 + -0x1.5c97d37d98aa3d331d0cf580ca04c102p0, + -0x1.2d97c7f3321d3p2 + }, + { // Entry 893 + 0x1.64102fc571c7422b6ad0ed05fd24e652p0, + 0x1.5fdbbe9bba774p2 + }, + { // Entry 894 + -0x1.64102fc571c7422b6ad0ed05fd24e652p0, + -0x1.5fdbbe9bba774p2 + }, + { // Entry 895 + 0x1.64102fc571c744381d266feb08ddfcc4p0, + 0x1.5fdbbe9bba775p2 + }, + { // Entry 896 + -0x1.64102fc571c744381d266feb08ddfcc4p0, + -0x1.5fdbbe9bba775p2 + }, + { // Entry 897 + 0x1.64102fc571c74644cf7bf2d01468e265p0, + 0x1.5fdbbe9bba776p2 + }, + { // Entry 898 + -0x1.64102fc571c74644cf7bf2d01468e265p0, + -0x1.5fdbbe9bba776p2 + }, + { // Entry 899 + 0x1.6e2561a6cd2181c009d7d863e666c437p0, + 0x1.c463abeccb2bap2 + }, + { // Entry 900 + -0x1.6e2561a6cd2181c009d7d863e666c437p0, + -0x1.c463abeccb2bap2 + }, + { // Entry 901 + 0x1.6e2561a6cd21830183c87ae1761354b0p0, + 0x1.c463abeccb2bbp2 + }, + { // Entry 902 + -0x1.6e2561a6cd21830183c87ae1761354b0p0, + -0x1.c463abeccb2bbp2 + }, + { // Entry 903 + 0x1.6e2561a6cd218442fdb91d5f05a99ap0, + 0x1.c463abeccb2bcp2 + }, + { // Entry 904 + -0x1.6e2561a6cd218442fdb91d5f05a99ap0, + -0x1.c463abeccb2bcp2 + }, + { // Entry 905 + 0x1.71b4100f0956769d1c64ae4d729107a5p0, + 0x1.f6a7a2955385dp2 + }, + { // Entry 906 + -0x1.71b4100f0956769d1c64ae4d729107a5p0, + -0x1.f6a7a2955385dp2 + }, + { // Entry 907 + 0x1.71b4100f095677a27b2c03b940d5e613p0, + 0x1.f6a7a2955385ep2 + }, + { // Entry 908 + -0x1.71b4100f095677a27b2c03b940d5e613p0, + -0x1.f6a7a2955385ep2 + }, + { // Entry 909 + 0x1.71b4100f095678a7d9f359250f0a64c8p0, + 0x1.f6a7a2955385fp2 + }, + { // Entry 910 + -0x1.71b4100f095678a7d9f359250f0a64c8p0, + -0x1.f6a7a2955385fp2 + }, + { // Entry 911 + 0x1.749f96097c7015073733e2e3659a844bp0, + 0x1.1475cc9eedeffp3 + }, + { // Entry 912 + -0x1.749f96097c7015073733e2e3659a844bp0, + -0x1.1475cc9eedeffp3 + }, + { // Entry 913 + 0x1.749f96097c7016b86e95ca64b3f1546fp0, + 0x1.1475cc9eedfp3 + }, + { // Entry 914 + -0x1.749f96097c7016b86e95ca64b3f1546fp0, + -0x1.1475cc9eedfp3 + }, + { // Entry 915 + 0x1.749f96097c701869a5f7b1e60216a952p0, + 0x1.1475cc9eedf01p3 + }, + { // Entry 916 + -0x1.749f96097c701869a5f7b1e60216a952p0, + -0x1.1475cc9eedf01p3 + }, + { // Entry 917 + 0x1.77100abbdfe4f88c42b76a1a44ccb487p0, + 0x1.2d97c7f3321d1p3 + }, + { // Entry 918 + -0x1.77100abbdfe4f88c42b76a1a44ccb487p0, + -0x1.2d97c7f3321d1p3 + }, + { // Entry 919 + 0x1.77100abbdfe4f9f90d90533c02b3964ep0, + 0x1.2d97c7f3321d2p3 + }, + { // Entry 920 + -0x1.77100abbdfe4f9f90d90533c02b3964ep0, + -0x1.2d97c7f3321d2p3 + }, + { // Entry 921 + 0x1.77100abbdfe4fb65d8693c5dc07431bdp0, + 0x1.2d97c7f3321d3p3 + }, + { // Entry 922 + -0x1.77100abbdfe4fb65d8693c5dc07431bdp0, + -0x1.2d97c7f3321d3p3 + }, + { // Entry 923 + 0x1.79216b94b662deb07e2d6de7f1804507p0, + 0x1.46b9c347764a2p3 + }, + { // Entry 924 + -0x1.79216b94b662deb07e2d6de7f1804507p0, + -0x1.46b9c347764a2p3 + }, + { // Entry 925 + 0x1.79216b94b662dfe7d5a91b73c06086ebp0, + 0x1.46b9c347764a3p3 + }, + { // Entry 926 + -0x1.79216b94b662dfe7d5a91b73c06086ebp0, + -0x1.46b9c347764a3p3 + }, + { // Entry 927 + 0x1.79216b94b662e11f2d24c8ff8f2294b3p0, + 0x1.46b9c347764a4p3 + }, + { // Entry 928 + -0x1.79216b94b662e11f2d24c8ff8f2294b3p0, + -0x1.46b9c347764a4p3 + }, + { // Entry 929 + 0x1.7ae7d7e5d1f9ee2a0e89a2289062ad74p0, + 0x1.5fdbbe9bba774p3 + }, + { // Entry 930 + -0x1.7ae7d7e5d1f9ee2a0e89a2289062ad74p0, + -0x1.5fdbbe9bba774p3 + }, + { // Entry 931 + 0x1.7ae7d7e5d1f9ef36dc870ed6964fa9dfp0, + 0x1.5fdbbe9bba775p3 + }, + { // Entry 932 + -0x1.7ae7d7e5d1f9ef36dc870ed6964fa9dfp0, + -0x1.5fdbbe9bba775p3 + }, + { // Entry 933 + 0x1.7ae7d7e5d1f9f043aa847b849c24674ap0, + 0x1.5fdbbe9bba776p3 + }, + { // Entry 934 + -0x1.7ae7d7e5d1f9f043aa847b849c24674ap0, + -0x1.5fdbbe9bba776p3 + }, + { // Entry 935 + 0x1.7c722476319a280dab0b4cf4c187f8abp0, + 0x1.78fdb9effea45p3 + }, + { // Entry 936 + -0x1.7c722476319a280dab0b4cf4c187f8abp0, + -0x1.78fdb9effea45p3 + }, + { // Entry 937 + 0x1.7c722476319a28f8131f5d500f0f03e6p0, + 0x1.78fdb9effea46p3 + }, + { // Entry 938 + -0x1.7c722476319a28f8131f5d500f0f03e6p0, + -0x1.78fdb9effea46p3 + }, + { // Entry 939 + 0x1.7c722476319a29e27b336dab5c824dedp0, + 0x1.78fdb9effea47p3 + }, + { // Entry 940 + -0x1.7c722476319a29e27b336dab5c824dedp0, + -0x1.78fdb9effea47p3 + }, + { // Entry 941 + 0x1.7efc711c97aca34b1628231d4f4fabe2p0, + 0x1.ab41b09886fe8p3 + }, + { // Entry 942 + -0x1.7efc711c97aca34b1628231d4f4fabe2p0, + -0x1.ab41b09886fe8p3 + }, + { // Entry 943 + 0x1.7efc711c97aca401df609cab03bab68cp0, + 0x1.ab41b09886fe9p3 + }, + { // Entry 944 + -0x1.7efc711c97aca401df609cab03bab68cp0, + -0x1.ab41b09886fe9p3 + }, + { // Entry 945 + 0x1.7efc711c97aca4b8a8991638b818241cp0, + 0x1.ab41b09886feap3 + }, + { // Entry 946 + -0x1.7efc711c97aca4b8a8991638b818241cp0, + -0x1.ab41b09886feap3 + }, + { // Entry 947 + 0x1.800bb15ffe80dd150b83506ecafcd897p0, + 0x1.c463abeccb2bap3 + }, + { // Entry 948 + -0x1.800bb15ffe80dd150b83506ecafcd897p0, + -0x1.c463abeccb2bap3 + }, + { // Entry 949 + 0x1.800bb15ffe80ddb82f1388a941a8215cp0, + 0x1.c463abeccb2bbp3 + }, + { // Entry 950 + -0x1.800bb15ffe80ddb82f1388a941a8215cp0, + -0x1.c463abeccb2bbp3 + }, + { // Entry 951 + 0x1.800bb15ffe80de5b52a3c0e3b847eeaap0, + 0x1.c463abeccb2bcp3 + }, + { // Entry 952 + -0x1.800bb15ffe80de5b52a3c0e3b847eeaap0, + -0x1.c463abeccb2bcp3 + }, + { // Entry 953 + 0x1.80fe86b132e8f8618de08cf337993ca3p0, + 0x1.dd85a7410f58bp3 + }, + { // Entry 954 + -0x1.80fe86b132e8f8618de08cf337993ca3p0, + -0x1.dd85a7410f58bp3 + }, + { // Entry 955 + 0x1.80fe86b132e8f8f40c19d09e489d38e1p0, + 0x1.dd85a7410f58cp3 + }, + { // Entry 956 + -0x1.80fe86b132e8f8f40c19d09e489d38e1p0, + -0x1.dd85a7410f58cp3 + }, + { // Entry 957 + 0x1.80fe86b132e8f9868a53144959976f3cp0, + 0x1.dd85a7410f58dp3 + }, + { // Entry 958 + -0x1.80fe86b132e8f9868a53144959976f3cp0, + -0x1.dd85a7410f58dp3 + }, + { // Entry 959 + 0x1.81d92def25f25718c6829a063fb81fd7p0, + 0x1.f6a7a2955385dp3 + }, + { // Entry 960 + -0x1.81d92def25f25718c6829a063fb81fd7p0, + -0x1.f6a7a2955385dp3 + }, + { // Entry 961 + 0x1.81d92def25f2579d0b06bd55e5dd10d1p0, + 0x1.f6a7a2955385ep3 + }, + { // Entry 962 + -0x1.81d92def25f2579d0b06bd55e5dd10d1p0, + -0x1.f6a7a2955385ep3 + }, + { // Entry 963 + 0x1.81d92def25f258214f8ae0a58bf99edep0, + 0x1.f6a7a2955385fp3 + }, + { // Entry 964 + -0x1.81d92def25f258214f8ae0a58bf99edep0, + -0x1.f6a7a2955385fp3 + }, + { // Entry 965 + 0x1.829f16bb7d95108c0eb21238a0c53f5ep0, + 0x1.07e4cef4cbd96p4 + }, + { // Entry 966 + -0x1.829f16bb7d95108c0eb21238a0c53f5ep0, + -0x1.07e4cef4cbd96p4 + }, + { // Entry 967 + 0x1.829f16bb7d95117c16ba648f3486d718p0, + 0x1.07e4cef4cbd97p4 + }, + { // Entry 968 + -0x1.829f16bb7d95117c16ba648f3486d718p0, + -0x1.07e4cef4cbd97p4 + }, + { // Entry 969 + 0x1.829f16bb7d95126c1ec2b6e5c82b6edep0, + 0x1.07e4cef4cbd98p4 + }, + { // Entry 970 + -0x1.829f16bb7d95126c1ec2b6e5c82b6edep0, + -0x1.07e4cef4cbd98p4 + }, + { // Entry 971 + 0x1.835311c4fa5d7c37c557b7a5a3338324p0, + 0x1.1475cc9eedeffp4 + }, + { // Entry 972 + -0x1.835311c4fa5d7c37c557b7a5a3338324p0, + -0x1.1475cc9eedeffp4 + }, + { // Entry 973 + 0x1.835311c4fa5d7d128c5fa09cc922483dp0, + 0x1.1475cc9eedfp4 + }, + { // Entry 974 + -0x1.835311c4fa5d7d128c5fa09cc922483dp0, + -0x1.1475cc9eedfp4 + }, + { // Entry 975 + 0x1.835311c4fa5d7ded53678993eef7d037p0, + 0x1.1475cc9eedf01p4 + }, + { // Entry 976 + -0x1.835311c4fa5d7ded53678993eef7d037p0, + -0x1.1475cc9eedf01p4 + }, + { // Entry 977 + 0x1.83f7731825dc9d8ff5737093bb3540dep0, + 0x1.2106ca4910068p4 + }, + { // Entry 978 + -0x1.83f7731825dc9d8ff5737093bb3540dep0, + -0x1.2106ca4910068p4 + }, + { // Entry 979 + 0x1.83f7731825dc9e582ebc020978ee1a95p0, + 0x1.2106ca4910069p4 + }, + { // Entry 980 + -0x1.83f7731825dc9e582ebc020978ee1a95p0, + -0x1.2106ca4910069p4 + }, + { // Entry 981 + 0x1.83f7731825dc9f206804937f3690da9bp0, + 0x1.2106ca491006ap4 + }, + { // Entry 982 + -0x1.83f7731825dc9f206804937f3690da9bp0, + -0x1.2106ca491006ap4 + }, + { // Entry 983 + 0x1.848e2bec799ece48230ea9b4de60cfb7p0, + 0x1.2d97c7f3321d1p4 + }, + { // Entry 984 + -0x1.848e2bec799ece48230ea9b4de60cfb7p0, + -0x1.2d97c7f3321d1p4 + }, + { // Entry 985 + 0x1.848e2bec799ecf0011a08e93bfcbf6bap0, + 0x1.2d97c7f3321d2p4 + }, + { // Entry 986 + -0x1.848e2bec799ecf0011a08e93bfcbf6bap0, + -0x1.2d97c7f3321d2p4 + }, + { // Entry 987 + 0x1.848e2bec799ecfb800327372a123a7b7p0, + 0x1.2d97c7f3321d3p4 + }, + { // Entry 988 + -0x1.848e2bec799ecfb800327372a123a7b7p0, + -0x1.2d97c7f3321d3p4 + }, + { // Entry 989 + 0x1.8518de4b48e76e411ea1cdeeb59cbf77p0, + 0x1.3a28c59d54339p4 + }, + { // Entry 990 + -0x1.8518de4b48e76e411ea1cdeeb59cbf77p0, + -0x1.3a28c59d54339p4 + }, + { // Entry 991 + 0x1.8518de4b48e76eeaab2a58ab739c30cbp0, + 0x1.3a28c59d5433ap4 + }, + { // Entry 992 + -0x1.8518de4b48e76eeaab2a58ab739c30cbp0, + -0x1.3a28c59d5433ap4 + }, + { // Entry 993 + 0x1.8518de4b48e76f9437b2e368318a6869p0, + 0x1.3a28c59d5433bp4 + }, + { // Entry 994 + -0x1.8518de4b48e76f9437b2e368318a6869p0, + -0x1.3a28c59d5433bp4 + }, + { // Entry 995 + 0x1.8598ec35167127ce203d29cce66b685bp0, + 0x1.46b9c347764a2p4 + }, + { // Entry 996 + -0x1.8598ec35167127ce203d29cce66b685bp0, + -0x1.46b9c347764a2p4 + }, + { // Entry 997 + 0x1.8598ec351671286aea010a7cf15304a4p0, + 0x1.46b9c347764a3p4 + }, + { // Entry 998 + -0x1.8598ec351671286aea010a7cf15304a4p0, + -0x1.46b9c347764a3p4 + }, + { // Entry 999 + 0x1.8598ec3516712907b3c4eb2cfc2b4f2dp0, + 0x1.46b9c347764a4p4 + }, + { // Entry 1000 + -0x1.8598ec3516712907b3c4eb2cfc2b4f2dp0, + -0x1.46b9c347764a4p4 + }, + { // Entry 1001 + 0x1.860f836e59cf533a5f5acd977fb3bd1bp0, + 0x1.534ac0f19860bp4 + }, + { // Entry 1002 + -0x1.860f836e59cf533a5f5acd977fb3bd1bp0, + -0x1.534ac0f19860bp4 + }, + { // Entry 1003 + 0x1.860f836e59cf53cbc97c4e327874fe3fp0, + 0x1.534ac0f19860cp4 + }, + { // Entry 1004 + -0x1.860f836e59cf53cbc97c4e327874fe3fp0, + -0x1.534ac0f19860cp4 + }, + { // Entry 1005 + 0x1.860f836e59cf545d339dcecd7128903ap0, + 0x1.534ac0f19860dp4 + }, + { // Entry 1006 + -0x1.860f836e59cf545d339dcecd7128903ap0, + -0x1.534ac0f19860dp4 + }, + { // Entry 1007 + 0x1.867da6c87b57e8adf8990014ae6c012fp0, + 0x1.5fdbbe9bba774p4 + }, + { // Entry 1008 + -0x1.867da6c87b57e8adf8990014ae6c012fp0, + -0x1.5fdbbe9bba774p4 + }, + { // Entry 1009 + 0x1.867da6c87b57e935349724e0cc37b311p0, + 0x1.5fdbbe9bba775p4 + }, + { // Entry 1010 + -0x1.867da6c87b57e935349724e0cc37b311p0, + -0x1.5fdbbe9bba775p4 + }, + { // Entry 1011 + 0x1.867da6c87b57e9bc709549ace9f71ee9p0, + 0x1.5fdbbe9bba776p4 + }, + { // Entry 1012 + -0x1.867da6c87b57e9bc709549ace9f71ee9p0, + -0x1.5fdbbe9bba776p4 + }, + { // Entry 1013 + 0x1.86e435818151b84fe25834c19a7e2e5fp0, + 0x1.6c6cbc45dc8dcp4 + }, + { // Entry 1014 + -0x1.86e435818151b84fe25834c19a7e2e5fp0, + -0x1.6c6cbc45dc8dcp4 + }, + { // Entry 1015 + 0x1.86e435818151b8cdf86e6345f58c69fap0, + 0x1.6c6cbc45dc8ddp4 + }, + { // Entry 1016 + -0x1.86e435818151b8cdf86e6345f58c69fap0, + -0x1.6c6cbc45dc8ddp4 + }, + { // Entry 1017 + 0x1.86e435818151b94c0e8491ca508f98b5p0, + 0x1.6c6cbc45dc8dep4 + }, + { // Entry 1018 + -0x1.86e435818151b94c0e8491ca508f98b5p0, + -0x1.6c6cbc45dc8dep4 + }, + { // Entry 1019 + 0x1.8743f12bf9fc92a7f65de8d6cd3df59dp0, + 0x1.78fdb9effea45p4 + }, + { // Entry 1020 + -0x1.8743f12bf9fc92a7f65de8d6cd3df59dp0, + -0x1.78fdb9effea45p4 + }, + { // Entry 1021 + 0x1.8743f12bf9fc931dcc400e45f1cbfd18p0, + 0x1.78fdb9effea46p4 + }, + { // Entry 1022 + -0x1.8743f12bf9fc931dcc400e45f1cbfd18p0, + -0x1.78fdb9effea46p4 + }, + { // Entry 1023 + 0x1.8743f12bf9fc9393a22233b51650089fp0, + 0x1.78fdb9effea47p4 + }, + { // Entry 1024 + -0x1.8743f12bf9fc9393a22233b51650089fp0, + -0x1.78fdb9effea47p4 + }, + { // Entry 1025 + 0x1.879d82738cdb0715c7e50907e7a87c80p0, + 0x1.858eb79a20baep4 + }, + { // Entry 1026 + -0x1.879d82738cdb0715c7e50907e7a87c80p0, + -0x1.858eb79a20baep4 + }, + { // Entry 1027 + 0x1.879d82738cdb07842634f187eb77dddcp0, + 0x1.858eb79a20bafp4 + }, + { // Entry 1028 + -0x1.879d82738cdb07842634f187eb77dddcp0, + -0x1.858eb79a20bafp4 + }, + { // Entry 1029 + 0x1.879d82738cdb07f28484da07ef3e3230p0, + 0x1.858eb79a20bb0p4 + }, + { // Entry 1030 + -0x1.879d82738cdb07f28484da07ef3e3230p0, + -0x1.858eb79a20bb0p4 + }, + { // Entry 1031 + 0x1.921fb54442d18467898cc51701b829a2p0, + 0x1.fffffffffffffp62 + }, + { // Entry 1032 + -0x1.921fb54442d18467898cc51701b829a2p0, + -0x1.fffffffffffffp62 + }, + { // Entry 1033 + 0x1.921fb54442d18467898cc51701b839a2p0, + 0x1.0p63 + }, + { // Entry 1034 + -0x1.921fb54442d18467898cc51701b839a2p0, + -0x1.0p63 + }, + { // Entry 1035 + 0x1.921fb54442d18467898cc51701b859a2p0, + 0x1.0000000000001p63 + }, + { // Entry 1036 + -0x1.921fb54442d18467898cc51701b859a2p0, + -0x1.0000000000001p63 + }, + { // Entry 1037 + 0x1.921fb52442d18469898befc1ac62e44cp0, + 0x1.fffffffffffffp26 + }, + { // Entry 1038 + -0x1.921fb52442d18469898befc1ac62e44cp0, + -0x1.fffffffffffffp26 + }, + { // Entry 1039 + 0x1.921fb52442d18469898cefc1ac62e44cp0, + 0x1.0p27 + }, + { // Entry 1040 + -0x1.921fb52442d18469898cefc1ac62e44cp0, + -0x1.0p27 + }, + { // Entry 1041 + 0x1.921fb52442d18469898eefc1ac62e44cp0, + 0x1.0000000000001p27 + }, + { // Entry 1042 + -0x1.921fb52442d18469898eefc1ac62e44cp0, + -0x1.0000000000001p27 + }, + { // Entry 1043 + 0x1.921fb44442d1846989da1a6c570d8eccp0, + 0x1.fffffffffffffp23 + }, + { // Entry 1044 + -0x1.921fb44442d1846989da1a6c570d8eccp0, + -0x1.fffffffffffffp23 + }, + { // Entry 1045 + 0x1.921fb44442d1846989e21a6c570d8ec4p0, + 0x1.0p24 + }, + { // Entry 1046 + -0x1.921fb44442d1846989e21a6c570d8ec4p0, + -0x1.0p24 + }, + { // Entry 1047 + 0x1.921fb44442d1846989f21a6c570d8eb3p0, + 0x1.0000000000001p24 + }, + { // Entry 1048 + -0x1.921fb44442d1846989f21a6c570d8eb3p0, + -0x1.0000000000001p24 + }, + { // Entry 1049 + 0x1.5368c951e9cfc7c24c38fb77a1dfa57cp0, + 0x1.fffffffffffffp1 + }, + { // Entry 1050 + -0x1.5368c951e9cfc7c24c38fb77a1dfa57cp0, + -0x1.fffffffffffffp1 + }, + { // Entry 1051 + 0x1.5368c951e9cfc9a42e1add5983cfb3a8p0, + 0x1.0p2 + }, + { // Entry 1052 + -0x1.5368c951e9cfc9a42e1add5983cfb3a8p0, + -0x1.0p2 + }, + { // Entry 1053 + 0x1.5368c951e9cfcd67f1dea11d475ac643p0, + 0x1.0000000000001p2 + }, + { // Entry 1054 + -0x1.5368c951e9cfcd67f1dea11d475ac643p0, + -0x1.0000000000001p2 + }, + { // Entry 1055 + 0x1.1b6e192ebbe443939e676eed7053450cp0, + 0x1.fffffffffffffp0 + }, + { // Entry 1056 + -0x1.1b6e192ebbe443939e676eed7053450cp0, + -0x1.fffffffffffffp0 + }, + { // Entry 1057 + 0x1.1b6e192ebbe446c6d19aa220a39af320p0, + 0x1.0p1 + }, + { // Entry 1058 + -0x1.1b6e192ebbe446c6d19aa220a39af320p0, + -0x1.0p1 + }, + { // Entry 1059 + 0x1.1b6e192ebbe44d2d3801088709af6e01p0, + 0x1.0000000000001p1 + }, + { // Entry 1060 + -0x1.1b6e192ebbe44d2d3801088709af6e01p0, + -0x1.0000000000001p1 + }, + { // Entry 1061 + 0x1.921fb54442d17c69898cc517019839a2p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 1062 + -0x1.921fb54442d17c69898cc517019839a2p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 1063 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p0 + }, + { // Entry 1064 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p0 + }, + { // Entry 1065 + 0x1.921fb54442d19469898cc517013839a2p-1, + 0x1.0000000000001p0 + }, + { // Entry 1066 + -0x1.921fb54442d19469898cc517013839a2p-1, + -0x1.0000000000001p0 + }, + { // Entry 1067 + 0x1.dac670561bb4e9be12fbbf0cab93d258p-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 1068 + -0x1.dac670561bb4e9be12fbbf0cab93d258p-2, + -0x1.fffffffffffffp-2 + }, + { // Entry 1069 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.0p-1 + }, + { // Entry 1070 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.0p-1 + }, + { // Entry 1071 + 0x1.dac670561bb510247962257311bcc81bp-2, + 0x1.0000000000001p-1 + }, + { // Entry 1072 + -0x1.dac670561bb510247962257311bcc81bp-2, + -0x1.0000000000001p-1 + }, + { // Entry 1073 + 0x1.f5b75f92c80dc71bcc802edce02e0a97p-3, + 0x1.fffffffffffffp-3 + }, + { // Entry 1074 + -0x1.f5b75f92c80dc71bcc802edce02e0a97p-3, + -0x1.fffffffffffffp-3 + }, + { // Entry 1075 + 0x1.f5b75f92c80dd62adb8f3debef442fcbp-3, + 0x1.0p-2 + }, + { // Entry 1076 + -0x1.f5b75f92c80dd62adb8f3debef442fcbp-3, + -0x1.0p-2 + }, + { // Entry 1077 + 0x1.f5b75f92c80df448f9ad5c0a0d45f554p-3, + 0x1.0000000000001p-2 + }, + { // Entry 1078 + -0x1.f5b75f92c80df448f9ad5c0a0d45f554p-3, + -0x1.0000000000001p-2 + }, + { // Entry 1079 + 0x1.fd5ba9aac2f6cca4951f70426d4e3181p-4, + 0x1.fffffffffffffp-4 + }, + { // Entry 1080 + -0x1.fd5ba9aac2f6cca4951f70426d4e3181p-4, + -0x1.fffffffffffffp-4 + }, + { // Entry 1081 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.0p-3 + }, + { // Entry 1082 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.0p-3 + }, + { // Entry 1083 + 0x1.fd5ba9aac2f6fbe7894eb3369c8b5496p-4, + 0x1.0000000000001p-3 + }, + { // Entry 1084 + -0x1.fd5ba9aac2f6fbe7894eb3369c8b5496p-4, + -0x1.0000000000001p-3 + }, + { // Entry 1085 + 0x1.ff55bb72cfde8c7d865f15c80c6b8bb0p-5, + 0x1.fffffffffffffp-5 + }, + { // Entry 1086 + -0x1.ff55bb72cfde8c7d865f15c80c6b8bb0p-5, + -0x1.fffffffffffffp-5 + }, + { // Entry 1087 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.0p-4 + }, + { // Entry 1088 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.0p-4 + }, + { // Entry 1089 + 0x1.ff55bb72cfdebc4db62f45983c3a3e7cp-5, + 0x1.0000000000001p-4 + }, + { // Entry 1090 + -0x1.ff55bb72cfdebc4db62f45983c3a3e7cp-5, + -0x1.0000000000001p-4 + }, + { // Entry 1091 + 0x1.ffd55bba97623a88ee3b2ecbb917a476p-6, + 0x1.fffffffffffffp-6 + }, + { // Entry 1092 + -0x1.ffd55bba97623a88ee3b2ecbb917a476p-6, + -0x1.fffffffffffffp-6 + }, + { // Entry 1093 + 0x1.ffd55bba97624a84ef3aeedbb518c427p-6, + 0x1.0p-5 + }, + { // Entry 1094 + -0x1.ffd55bba97624a84ef3aeedbb518c427p-6, + -0x1.0p-5 + }, + { // Entry 1095 + 0x1.ffd55bba97626a7cf13a6efbad1a43e7p-6, + 0x1.0000000000001p-5 + }, + { // Entry 1096 + -0x1.ffd55bba97626a7cf13a6efbad1a43e7p-6, + -0x1.0000000000001p-5 + }, + { // Entry 1097 + 0x1.fff555bbb7299b78cf08ad801befb881p-7, + 0x1.fffffffffffffp-7 + }, + { // Entry 1098 + -0x1.fff555bbb7299b78cf08ad801befb881p-7, + -0x1.fffffffffffffp-7 + }, + { // Entry 1099 + 0x1.fff555bbb729ab77cf18ac802beec090p-7, + 0x1.0p-6 + }, + { // Entry 1100 + -0x1.fff555bbb729ab77cf18ac802beec090p-7, + -0x1.0p-6 + }, + { // Entry 1101 + 0x1.fff555bbb729cb75cf38aa804beca0b4p-7, + 0x1.0000000000001p-6 + }, + { // Entry 1102 + -0x1.fff555bbb729cb75cf38aa804beca0b4p-7, + -0x1.0000000000001p-6 + }, + { // Entry 1103 + 0x1.fffffff5555545bbbbbcb72972876256p-15, + 0x1.fffffffffffffp-15 + }, + { // Entry 1104 + -0x1.fffffff5555545bbbbbcb72972876256p-15, + -0x1.fffffffffffffp-15 + }, + { // Entry 1105 + 0x1.fffffff5555555bbbbbbb72972976256p-15, + 0x1.0p-14 + }, + { // Entry 1106 + -0x1.fffffff5555555bbbbbbb72972976256p-15, + -0x1.0p-14 + }, + { // Entry 1107 + 0x1.fffffff5555575bbbbb9b72972b76256p-15, + 0x1.0000000000001p-14 + }, + { // Entry 1108 + -0x1.fffffff5555575bbbbb9b72972b76256p-15, + -0x1.0000000000001p-14 + }, + { // Entry 1109 + 0x1.ffffffffffffed5555555555559bbbbbp-28, + 0x1.fffffffffffffp-28 + }, + { // Entry 1110 + -0x1.ffffffffffffed5555555555559bbbbbp-28, + -0x1.fffffffffffffp-28 + }, + { // Entry 1111 + 0x1.fffffffffffffd5555555555555bbbbbp-28, + 0x1.0p-27 + }, + { // Entry 1112 + -0x1.fffffffffffffd5555555555555bbbbbp-28, + -0x1.0p-27 + }, + { // Entry 1113 + 0x1.0000000000000eaaaaaaaaaaaa6dddddp-27, + 0x1.0000000000001p-27 + }, + { // Entry 1114 + -0x1.0000000000000eaaaaaaaaaaaa6dddddp-27, + -0x1.0000000000001p-27 + }, + { // Entry 1115 + 0x1.ffffffffffffeff555555555555655bbp-31, + 0x1.fffffffffffffp-31 + }, + { // Entry 1116 + -0x1.ffffffffffffeff555555555555655bbp-31, + -0x1.fffffffffffffp-31 + }, + { // Entry 1117 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.0p-30 + }, + { // Entry 1118 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.0p-30 + }, + { // Entry 1119 + 0x1.0000000000000ffaaaaaaaaaaaa9aaddp-30, + 0x1.0000000000001p-30 + }, + { // Entry 1120 + -0x1.0000000000000ffaaaaaaaaaaaa9aaddp-30, + -0x1.0000000000001p-30 + }, + { // Entry 1121 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1122 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1123 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1124 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1125 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VAL + }, + { // Entry 1126 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VAL + }, + { // Entry 1127 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1128 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1129 + 0x1.921fb54442d18469898cc51701b839a2p0, + 0x1.ffffffffffffep1023 + }, + { // Entry 1130 + -0x1.921fb54442d18469898cc51701b839a2p0, + -0x1.ffffffffffffep1023 + }, + { // Entry 1131 + 0x1.433b8a322ddd29618168a21c962c68bcp0, + 0x1.921fb54442d18p1 + }, + { // Entry 1132 + -0x1.433b8a322ddd29618168a21c962c68bcp0, + -0x1.921fb54442d18p1 + }, + { // Entry 1133 + 0x1.00fe987ed02ff23377d99ec36db533fep0, + 0x1.921fb54442d18p0 + }, + { // Entry 1134 + -0x1.00fe987ed02ff23377d99ec36db533fep0, + -0x1.921fb54442d18p0 + }, + { // Entry 1135 + 0x1.921fb54442d19469898cc517013839a2p-1, + 0x1.0000000000001p0 + }, + { // Entry 1136 + -0x1.921fb54442d19469898cc517013839a2p-1, + -0x1.0000000000001p0 + }, + { // Entry 1137 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.0p0 + }, + { // Entry 1138 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.0p0 + }, + { // Entry 1139 + 0x1.921fb54442d17c69898cc517019839a2p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 1140 + -0x1.921fb54442d17c69898cc517019839a2p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 1141 + 0x1.54e04c05d06a04041ccf30f00110c0f6p-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 1142 + -0x1.54e04c05d06a04041ccf30f00110c0f6p-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 1143 + 0x1.0000000000000fffffffffffffffffffp-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 1144 + -0x1.0000000000000fffffffffffffffffffp-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 1145 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022 + }, + { // Entry 1146 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022 + }, + { // Entry 1147 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1148 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1149 + 0x1.ffffffffffffbfffffffffffffffffffp-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 1150 + -0x1.ffffffffffffbfffffffffffffffffffp-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 1151 + 0x1.ffffffffffffffffffffffffffffffffp-1074, + 0x1.0p-1073 + }, + { // Entry 1152 + -0x1.ffffffffffffffffffffffffffffffffp-1074, + -0x1.0p-1073 + }, + { // Entry 1153 + 0.0, + 0x1.0p-1074 + }, + { // Entry 1154 + -0.0, + -0x1.0p-1074 + }, + { // Entry 1155 + 0.0, + 0.0 + }, + { // Entry 1156 + -0.0, + -0.0 + } +}; diff --git a/tests/math_data/atanf_intel_data.h b/tests/math_data/atanf_intel_data.h new file mode 100644 index 000000000..85f996222 --- /dev/null +++ b/tests/math_data/atanf_intel_data.h @@ -0,0 +1,4350 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_atanf_intel_data[] = { + { // Entry 0 + -0x1.dc2c98008d535c517dd9d371c44a6151p-2, + -0x1.00e0p-1 + }, + { // Entry 1 + 0x1.dc2c98008d535c517dd9d371c44a6151p-2, + 0x1.00e0p-1 + }, + { // Entry 2 + -0x1.93d63bfce467ef12745bcaf164c988cdp-1, + -0x1.01b8p0 + }, + { // Entry 3 + 0x1.93d63bfce467ef12745bcaf164c988cdp-1, + 0x1.01b8p0 + }, + { // Entry 4 + -0x1.93e6bcfcbf2868bf3d227ad52cc06775p-1, + -0x1.01c89ep0 + }, + { // Entry 5 + 0x1.93e6bcfcbf2868bf3d227ad52cc06775p-1, + 0x1.01c89ep0 + }, + { // Entry 6 + -0x1.e4353f004481a69e0d97136cd8302508p-2, + -0x1.05ec48p-1 + }, + { // Entry 7 + 0x1.e4353f004481a69e0d97136cd8302508p-2, + 0x1.05ec48p-1 + }, + { // Entry 8 + -0x1.980dd942c58931ccfa88aa5714d9589bp-1, + -0x1.06p0 + }, + { // Entry 9 + 0x1.980dd942c58931ccfa88aa5714d9589bp-1, + 0x1.06p0 + }, + { // Entry 10 + -0x1.e4e7050041fea5e474bc42bb3e9598edp-2, + -0x1.065c78p-1 + }, + { // Entry 11 + 0x1.e4e7050041fea5e474bc42bb3e9598edp-2, + 0x1.065c78p-1 + }, + { // Entry 12 + -0x1.fd08daffe290e806775f8df4ed63331fp-2, + -0x1.15c8e2p-1 + }, + { // Entry 13 + 0x1.fd08daffe290e806775f8df4ed63331fp-2, + 0x1.15c8e2p-1 + }, + { // Entry 14 + -0x1.12d0910000acd3796043ce397dc0aaf0p-1, + -0x1.30a612p-1 + }, + { // Entry 15 + 0x1.12d0910000acd3796043ce397dc0aaf0p-1, + 0x1.30a612p-1 + }, + { // Entry 16 + -0x1.8501defc40a94bd69a326f6f4efc3cabp0, + -0x1.3801p4 + }, + { // Entry 17 + 0x1.8501defc40a94bd69a326f6f4efc3cabp0, + 0x1.3801p4 + }, + { // Entry 18 + -0x1.1dbfdb002aafa34d56d4efdeb875d7ccp-1, + -0x1.3fa5d0p-1 + }, + { // Entry 19 + 0x1.1dbfdb002aafa34d56d4efdeb875d7ccp-1, + 0x1.3fa5d0p-1 + }, + { // Entry 20 + -0x1.91c7f6fffff6a5eef58d32a20cb76586p0, + -0x1.7573fep9 + }, + { // Entry 21 + 0x1.91c7f6fffff6a5eef58d32a20cb76586p0, + 0x1.7573fep9 + }, + { // Entry 22 + -0x1.f31d35b81259f5f45badc8b774241b15p-1, + -0x1.79743ep0 + }, + { // Entry 23 + 0x1.f31d35b81259f5f45badc8b774241b15p-1, + 0x1.79743ep0 + }, + { // Entry 24 + -0x1.f54b76ff8c8f4020ccc4dfba5f1dcfc4p-1, + -0x1.7cefc8p0 + }, + { // Entry 25 + 0x1.f54b76ff8c8f4020ccc4dfba5f1dcfc4p-1, + 0x1.7cefc8p0 + }, + { // Entry 26 + -0x1.921fa2ffefea1a475fc6364331e98c0fp0, + -0x1.c07630p19 + }, + { // Entry 27 + 0x1.921fa2ffefea1a475fc6364331e98c0fp0, + 0x1.c07630p19 + }, + { // Entry 28 + -0x1.c8d37cfff9732aae565e96c9ab1ae3p-4, + -0x1.cabad0p-4 + }, + { // Entry 29 + 0x1.c8d37cfff9732aae565e96c9ab1ae3p-4, + 0x1.cabad0p-4 + }, + { // Entry 30 + -0x1.8455816cd8b17910d5fb42c54a7a3f6ap-1, + -0x1.e52326p-1 + }, + { // Entry 31 + 0x1.8455816cd8b17910d5fb42c54a7a3f6ap-1, + 0x1.e52326p-1 + }, + { // Entry 32 + -0x1.87ce6ca38f66951f7d176d27e4cc7114p-1, + -0x1.ebc518p-1 + }, + { // Entry 33 + 0x1.87ce6ca38f66951f7d176d27e4cc7114p-1, + 0x1.ebc518p-1 + }, + { // Entry 34 + 0x1.ffd55bba97624a84ef3aeedbb518c427p-6, + 0x1.p-5 + }, + { // Entry 35 + -0x1.ffd55bba97624a84ef3aeedbb518c427p-6, + -0x1.p-5 + }, + { // Entry 36 + 0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + 0x1.000002p-4 + }, + { // Entry 37 + -0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + -0x1.000002p-4 + }, + { // Entry 38 + 0x1.ff5632fb474b2bdff859ee6421a12d48p-5, + 0x1.00003cp-4 + }, + { // Entry 39 + -0x1.ff5632fb474b2bdff859ee6421a12d48p-5, + -0x1.00003cp-4 + }, + { // Entry 40 + 0x1.9220654406519246dee218750f6118e0p-1, + 0x1.0000b0p0 + }, + { // Entry 41 + -0x1.9220654406519246dee218750f6118e0p-1, + -0x1.0000b0p0 + }, + { // Entry 42 + 0x1.f5b8c8fc218568d2548c390de7a3dfcep-3, + 0x1.0000c0p-2 + }, + { // Entry 43 + -0x1.f5b8c8fc218568d2548c390de7a3dfcep-3, + -0x1.0000c0p-2 + }, + { // Entry 44 + 0x1.fd64d4fccffaeeedba9c9564a6730d18p-4, + 0x1.0004a8p-3 + }, + { // Entry 45 + -0x1.fd64d4fccffaeeedba9c9564a6730d18p-4, + -0x1.0004a8p-3 + }, + { // Entry 46 + 0x1.9227b5244326d9bed87bdeb00908aeb7p-1, + 0x1.0008p0 + }, + { // Entry 47 + -0x1.9227b5244326d9bed87bdeb00908aeb7p-1, + -0x1.0008p0 + }, + { // Entry 48 + 0x1.922b76ff245e6de6345559ddb2fcf536p-1, + 0x1.000bc2p0 + }, + { // Entry 49 + -0x1.922b76ff245e6de6345559ddb2fcf536p-1, + -0x1.000bc2p0 + }, + { // Entry 50 + 0x1.922b82fe9701aeaffb73a1443c0c83d0p-1, + 0x1.000bcep0 + }, + { // Entry 51 + -0x1.922b82fe9701aeaffb73a1443c0c83d0p-1, + -0x1.000bcep0 + }, + { // Entry 52 + 0x1.923faf44d816daa54d425d8045e2887dp-1, + 0x1.001ffcp0 + }, + { // Entry 53 + -0x1.923faf44d816daa54d425d8045e2887dp-1, + -0x1.001ffcp0 + }, + { // Entry 54 + 0x1.fe2484fd31d3cf098219a2af1d986eedp-4, + 0x1.0066p-3 + }, + { // Entry 55 + -0x1.fe2484fd31d3cf098219a2af1d986eedp-4, + -0x1.0066p-3 + }, + { // Entry 56 + 0x1.92939b003b069b3e275950af80cd63fcp-1, + 0x1.0074p0 + }, + { // Entry 57 + -0x1.92939b003b069b3e275950af80cd63fcp-1, + -0x1.0074p0 + }, + { // Entry 58 + 0x1.1b9d3b002159e2945b595dab6488de5bp0, + 0x1.0076p1 + }, + { // Entry 59 + -0x1.1b9d3b002159e2945b595dab6488de5bp0, + -0x1.0076p1 + }, + { // Entry 60 + 0x1.dc2c98008d535c517dd9d371c44a6151p-2, + 0x1.00e0p-1 + }, + { // Entry 61 + -0x1.dc2c98008d535c517dd9d371c44a6151p-2, + -0x1.00e0p-1 + }, + { // Entry 62 + 0x1.93d63bfce467ef12745bcaf164c988cdp-1, + 0x1.01b8p0 + }, + { // Entry 63 + -0x1.93d63bfce467ef12745bcaf164c988cdp-1, + -0x1.01b8p0 + }, + { // Entry 64 + 0x1.94167efccbc0fa6d4577f69f61e031d2p-1, + 0x1.01f8bap0 + }, + { // Entry 65 + -0x1.94167efccbc0fa6d4577f69f61e031d2p-1, + -0x1.01f8bap0 + }, + { // Entry 66 + 0x1.9672428abad4ced3d0a6e349e9bf2b3ep-1, + 0x1.045cp0 + }, + { // Entry 67 + -0x1.9672428abad4ced3d0a6e349e9bf2b3ep-1, + -0x1.045cp0 + }, + { // Entry 68 + 0x1.fe8abeff0d857adea735e07cdc25f45cp-3, + 0x1.04b198p-2 + }, + { // Entry 69 + -0x1.fe8abeff0d857adea735e07cdc25f45cp-3, + -0x1.04b198p-2 + }, + { // Entry 70 + 0x1.e3ee99003632acbd63018dcd998b0a66p-2, + 0x1.05bfb8p-1 + }, + { // Entry 71 + -0x1.e3ee99003632acbd63018dcd998b0a66p-2, + -0x1.05bfb8p-1 + }, + { // Entry 72 + 0x1.980dd942c58931ccfa88aa5714d9589bp-1, + 0x1.06p0 + }, + { // Entry 73 + -0x1.980dd942c58931ccfa88aa5714d9589bp-1, + -0x1.06p0 + }, + { // Entry 74 + 0x1.e4c00f0040fd5558135d221fc95d855ep-2, + 0x1.0643e0p-1 + }, + { // Entry 75 + -0x1.e4c00f0040fd5558135d221fc95d855ep-2, + -0x1.0643e0p-1 + }, + { // Entry 76 + 0x1.e4e7050041fea5e474bc42bb3e9598edp-2, + 0x1.065c78p-1 + }, + { // Entry 77 + -0x1.e4e7050041fea5e474bc42bb3e9598edp-2, + -0x1.065c78p-1 + }, + { // Entry 78 + 0x1.067fe90007689d48fb39791c0a809723p-9, + 0x1.0680p-9 + }, + { // Entry 79 + -0x1.067fe90007689d48fb39791c0a809723p-9, + -0x1.0680p-9 + }, + { // Entry 80 + 0x1.e5f6450041f31d7a1b1ffc6626e3a3a9p-2, + 0x1.0707ccp-1 + }, + { // Entry 81 + -0x1.e5f6450041f31d7a1b1ffc6626e3a3a9p-2, + -0x1.0707ccp-1 + }, + { // Entry 82 + 0x1.9a000a935bd8e2b2823be1b99de9aa6dp-1, + 0x1.08p0 + }, + { // Entry 83 + -0x1.9a000a935bd8e2b2823be1b99de9aa6dp-1, + -0x1.08p0 + }, + { // Entry 84 + 0x1.e7e095003c972c47c7b484d1174ef8f1p-2, + 0x1.083df4p-1 + }, + { // Entry 85 + -0x1.e7e095003c972c47c7b484d1174ef8f1p-2, + -0x1.083df4p-1 + }, + { // Entry 86 + 0x1.9b95d2027f3b51c408badd232447fca7p-1, + 0x1.09a4p0 + }, + { // Entry 87 + -0x1.9b95d2027f3b51c408badd232447fca7p-1, + -0x1.09a4p0 + }, + { // Entry 88 + 0x1.9bf2349c2fe1915b2ba951f4d90c2346p-1, + 0x1.0a04p0 + }, + { // Entry 89 + -0x1.9bf2349c2fe1915b2ba951f4d90c2346p-1, + -0x1.0a04p0 + }, + { // Entry 90 + 0x1.9c0d202ee6cadb3368d0bc3bc61620f7p-1, + 0x1.0a20p0 + }, + { // Entry 91 + -0x1.9c0d202ee6cadb3368d0bc3bc61620f7p-1, + -0x1.0a20p0 + }, + { // Entry 92 + 0x1.9c0e9ebf9ee6f339b8d4eb3e3659c70ep-1, + 0x1.0a218ep0 + }, + { // Entry 93 + -0x1.9c0e9ebf9ee6f339b8d4eb3e3659c70ep-1, + -0x1.0a218ep0 + }, + { // Entry 94 + 0x1.9d252e659267619beef68e8773dc6ec3p-1, + 0x1.0b44p0 + }, + { // Entry 95 + -0x1.9d252e659267619beef68e8773dc6ec3p-1, + -0x1.0b44p0 + }, + { // Entry 96 + 0x1.ee39fb000821b1a9c00089e135f069d2p-2, + 0x1.0c4670p-1 + }, + { // Entry 97 + -0x1.ee39fb000821b1a9c00089e135f069d2p-2, + -0x1.0c4670p-1 + }, + { // Entry 98 + 0x1.eff285034b3ca346fbed2f996a1534f1p-2, + 0x1.0d5f6ep-1 + }, + { // Entry 99 + -0x1.eff285034b3ca346fbed2f996a1534f1p-2, + -0x1.0d5f6ep-1 + }, + { // Entry 100 + 0x1.f33837034c37141c6ee6c4c215ebe879p-2, + 0x1.0f771ep-1 + }, + { // Entry 101 + -0x1.f33837034c37141c6ee6c4c215ebe879p-2, + -0x1.0f771ep-1 + }, + { // Entry 102 + 0x1.a169ad8725b3aa57831d5cea9cf84a45p-1, + 0x1.0fc3aep0 + }, + { // Entry 103 + -0x1.a169ad8725b3aa57831d5cea9cf84a45p-1, + -0x1.0fc3aep0 + }, + { // Entry 104 + 0x1.a199a5013b67a3668024b5fdba537ffbp-1, + 0x1.0ff6b6p0 + }, + { // Entry 105 + -0x1.a199a5013b67a3668024b5fdba537ffbp-1, + -0x1.0ff6b6p0 + }, + { // Entry 106 + 0x1.f9ef110001fb3099dbc032baff8a7c9cp-2, + 0x1.13c8p-1 + }, + { // Entry 107 + -0x1.f9ef110001fb3099dbc032baff8a7c9cp-2, + -0x1.13c8p-1 + }, + { // Entry 108 + 0x1.fb05f2d09a4dc6b31f91eaed3651aa0fp-2, + 0x1.147cp-1 + }, + { // Entry 109 + -0x1.fb05f2d09a4dc6b31f91eaed3651aa0fp-2, + -0x1.147cp-1 + }, + { // Entry 110 + 0x1.166210ff1f27419bd56d7ad58a532203p-4, + 0x1.16d0p-4 + }, + { // Entry 111 + -0x1.166210ff1f27419bd56d7ad58a532203p-4, + -0x1.16d0p-4 + }, + { // Entry 112 + 0x1.ff14479ea0d08b305667ea1e6b71efa9p-2, + 0x1.171cp-1 + }, + { // Entry 113 + -0x1.ff14479ea0d08b305667ea1e6b71efa9p-2, + -0x1.171cp-1 + }, + { // Entry 114 + 0x1.aa655941c2ed237529659b26a6d40360p-1, + 0x1.1980p0 + }, + { // Entry 115 + -0x1.aa655941c2ed237529659b26a6d40360p-1, + -0x1.1980p0 + }, + { // Entry 116 + 0x1.1ac3c9559802914487a1a7e1b563dc42p-4, + 0x1.1b37p-4 + }, + { // Entry 117 + -0x1.1ac3c9559802914487a1a7e1b563dc42p-4, + -0x1.1b37p-4 + }, + { // Entry 118 + 0x1.ace31afd63c618792d7f004a5f20bf53p-1, + 0x1.1c443ep0 + }, + { // Entry 119 + -0x1.ace31afd63c618792d7f004a5f20bf53p-1, + -0x1.1c443ep0 + }, + { // Entry 120 + 0x1.aefd63ceeeba596e1d377ed9501f9f2dp-1, + 0x1.1ea0p0 + }, + { // Entry 121 + -0x1.aefd63ceeeba596e1d377ed9501f9f2dp-1, + -0x1.1ea0p0 + }, + { // Entry 122 + 0x1.31e3ddfffbe9c81c178270bc759875e9p-3, + 0x1.342f6cp-3 + }, + { // Entry 123 + -0x1.31e3ddfffbe9c81c178270bc759875e9p-3, + -0x1.342f6cp-3 + }, + { // Entry 124 + 0x1.30f588fffee141782f61de3b913cc344p-2, + 0x1.3a4e82p-2 + }, + { // Entry 125 + -0x1.30f588fffee141782f61de3b913cc344p-2, + -0x1.3a4e82p-2 + }, + { // Entry 126 + 0x1.26c384fe95d5e24c9c60adf93f531182p-1, + 0x1.4c50e8p-1 + }, + { // Entry 127 + -0x1.26c384fe95d5e24c9c60adf93f531182p-1, + -0x1.4c50e8p-1 + }, + { // Entry 128 + 0x1.e42856fffdaf1e270f502c72bfe272b0p-1, + 0x1.62b140p0 + }, + { // Entry 129 + -0x1.e42856fffdaf1e270f502c72bfe272b0p-1, + -0x1.62b140p0 + }, + { // Entry 130 + 0x1.6703fefed06b914b99e3124ca0c2cb58p-2, + 0x1.767caap-2 + }, + { // Entry 131 + -0x1.6703fefed06b914b99e3124ca0c2cb58p-2, + -0x1.767caap-2 + }, + { // Entry 132 + 0x1.75cb06fffffebc09be37493223d1436ap-4, + 0x1.76d58ep-4 + }, + { // Entry 133 + -0x1.75cb06fffffebc09be37493223d1436ap-4, + -0x1.76d58ep-4 + }, + { // Entry 134 + 0x1.43fdd1a6959aa989f50575cf45455d64p-1, + 0x1.7780f2p-1 + }, + { // Entry 135 + -0x1.43fdd1a6959aa989f50575cf45455d64p-1, + -0x1.7780f2p-1 + }, + { // Entry 136 + 0x1.481bba0215fb04f66252d5b8f4a0299ap-1, + 0x1.7ddf62p-1 + }, + { // Entry 137 + -0x1.481bba0215fb04f66252d5b8f4a0299ap-1, + -0x1.7ddf62p-1 + }, + { // Entry 138 + 0x1.6f946595578bf7edcadbbe6e816838dap-2, + 0x1.8039f8p-2 + }, + { // Entry 139 + -0x1.6f946595578bf7edcadbbe6e816838dap-2, + -0x1.8039f8p-2 + }, + { // Entry 140 + 0x1.6f9d299cc53084feaeb4a89dd538984cp-2, + 0x1.8043f8p-2 + }, + { // Entry 141 + -0x1.6f9d299cc53084feaeb4a89dd538984cp-2, + -0x1.8043f8p-2 + }, + { // Entry 142 + 0x1.6fa461634385621a7b4a1f3f39e69e88p-2, + 0x1.804c34p-2 + }, + { // Entry 143 + -0x1.6fa461634385621a7b4a1f3f39e69e88p-2, + -0x1.804c34p-2 + }, + { // Entry 144 + 0x1.6fedbe03cf0b00cdb648f3f58822f3c8p-2, + 0x1.809fe8p-2 + }, + { // Entry 145 + -0x1.6fedbe03cf0b00cdb648f3f58822f3c8p-2, + -0x1.809fe8p-2 + }, + { // Entry 146 + 0x1.738c297a78e8c603048015fdc8bcf4c9p-2, + 0x1.84c270p-2 + }, + { // Entry 147 + -0x1.738c297a78e8c603048015fdc8bcf4c9p-2, + -0x1.84c270p-2 + }, + { // Entry 148 + 0x1.98f0340002c61b1d33f8d1e2c1af5581p-4, + 0x1.9a4d6ep-4 + }, + { // Entry 149 + -0x1.98f0340002c61b1d33f8d1e2c1af5581p-4, + -0x1.9a4d6ep-4 + }, + { // Entry 150 + 0x1.9f8b4300038b239eb63e7be822591b5fp-4, + 0x1.a0f9bcp-4 + }, + { // Entry 151 + -0x1.9f8b4300038b239eb63e7be822591b5fp-4, + -0x1.a0f9bcp-4 + }, + { // Entry 152 + 0x1.a0fd9d00039a60bddbfddc10b05c56a3p-4, + 0x1.a26ff0p-4 + }, + { // Entry 153 + -0x1.a0fd9d00039a60bddbfddc10b05c56a3p-4, + -0x1.a26ff0p-4 + }, + { // Entry 154 + 0x1.a4728900556fc2b8a5a530e3d999b1d7p-4, + 0x1.a5ee2cp-4 + }, + { // Entry 155 + -0x1.a4728900556fc2b8a5a530e3d999b1d7p-4, + -0x1.a5ee2cp-4 + }, + { // Entry 156 + 0x1.a4728afaf537b57369dd1613673f2757p-4, + 0x1.a5ee2ep-4 + }, + { // Entry 157 + -0x1.a4728afaf537b57369dd1613673f2757p-4, + -0x1.a5ee2ep-4 + }, + { // Entry 158 + 0x1.915e19aa098cba6ef178411ea4174f67p-2, + 0x1.a744d8p-2 + }, + { // Entry 159 + -0x1.915e19aa098cba6ef178411ea4174f67p-2, + -0x1.a744d8p-2 + }, + { // Entry 160 + 0x1.a95d5effffee8dfa2a44af912ff5c6bdp-4, + 0x1.aae686p-4 + }, + { // Entry 161 + -0x1.a95d5effffee8dfa2a44af912ff5c6bdp-4, + -0x1.aae686p-4 + }, + { // Entry 162 + 0x1.b0f897fdea5769efb43b734c6f5d38fdp-4, + 0x1.b29748p-4 + }, + { // Entry 163 + -0x1.b0f897fdea5769efb43b734c6f5d38fdp-4, + -0x1.b29748p-4 + }, + { // Entry 164 + 0x1.b6fd68fffbf33784a8e129606c5a3fd4p-4, + 0x1.b8adb0p-4 + }, + { // Entry 165 + -0x1.b6fd68fffbf33784a8e129606c5a3fd4p-4, + -0x1.b8adb0p-4 + }, + { // Entry 166 + 0x1.a205342c457ac3a056abcfe7527a4453p-2, + 0x1.bae68ep-2 + }, + { // Entry 167 + -0x1.a205342c457ac3a056abcfe7527a4453p-2, + -0x1.bae68ep-2 + }, + { // Entry 168 + 0x1.a64efd063370b5e3a708b2a37ddab223p-2, + 0x1.c00014p-2 + }, + { // Entry 169 + -0x1.a64efd063370b5e3a708b2a37ddab223p-2, + -0x1.c00014p-2 + }, + { // Entry 170 + 0x1.ad00f396db03faa7f9d7e3221d4552adp-2, + 0x1.c7fffep-2 + }, + { // Entry 171 + -0x1.ad00f396db03faa7f9d7e3221d4552adp-2, + -0x1.c7fffep-2 + }, + { // Entry 172 + 0x1.6e6d5d27bd08154a6349dd2d9a311e10p0, + 0x1.c7fffep2 + }, + { // Entry 173 + -0x1.6e6d5d27bd08154a6349dd2d9a311e10p0, + -0x1.c7fffep2 + }, + { // Entry 174 + 0x1.769885e484d0999ef07a0c7cc0ce73f5p-1, + 0x1.cbb484p-1 + }, + { // Entry 175 + -0x1.769885e484d0999ef07a0c7cc0ce73f5p-1, + -0x1.cbb484p-1 + }, + { // Entry 176 + 0x1.7805f5ed5a7d34cf922043471c74eecfp-1, + 0x1.ce4a36p-1 + }, + { // Entry 177 + -0x1.7805f5ed5a7d34cf922043471c74eecfp-1, + -0x1.ce4a36p-1 + }, + { // Entry 178 + 0x1.c85b2ebda13e4f781ea65e5aa1b8b9e1p-3, + 0x1.d00ffep-3 + }, + { // Entry 179 + -0x1.c85b2ebda13e4f781ea65e5aa1b8b9e1p-3, + -0x1.d00ffep-3 + }, + { // Entry 180 + 0x1.c8df373eebdbd7d2983d9c074687b3b1p-3, + 0x1.d09ad0p-3 + }, + { // Entry 181 + -0x1.c8df373eebdbd7d2983d9c074687b3b1p-3, + -0x1.d09ad0p-3 + }, + { // Entry 182 + 0x1.8108f7001b7ce9d26ea2a770acd41044p0, + 0x1.deaa38p3 + }, + { // Entry 183 + -0x1.8108f7001b7ce9d26ea2a770acd41044p0, + -0x1.deaa38p3 + }, + { // Entry 184 + 0x1.82d6b687d8692e9aefc611be6b1d44a8p-1, + 0x1.e24eaep-1 + }, + { // Entry 185 + -0x1.82d6b687d8692e9aefc611be6b1d44a8p-1, + -0x1.e24eaep-1 + }, + { // Entry 186 + 0x1.921fb5011d0bff02f51322a08f435689p0, + 0x1.e7fffep25 + }, + { // Entry 187 + -0x1.921fb5011d0bff02f51322a08f435689p0, + -0x1.e7fffep25 + }, + { // Entry 188 + 0x1.8755f7204b35fedd69304c014ba9193ap-1, + 0x1.eaddb6p-1 + }, + { // Entry 189 + -0x1.8755f7204b35fedd69304c014ba9193ap-1, + -0x1.eaddb6p-1 + }, + { // Entry 190 + 0x1.921facfffe4d525869adf36453ac0045p0, + 0x1.ef7bd0p20 + }, + { // Entry 191 + -0x1.921facfffe4d525869adf36453ac0045p0, + -0x1.ef7bd0p20 + }, + { // Entry 192 + 0x1.f14041fffc6f93742ff15942783907eep-4, + 0x1.f3b552p-4 + }, + { // Entry 193 + -0x1.f14041fffc6f93742ff15942783907eep-4, + -0x1.f3b552p-4 + }, + { // Entry 194 + 0x1.f4bb0afed7559483e5805dd4879465bcp-6, + 0x1.f4e2f8p-6 + }, + { // Entry 195 + -0x1.f4bb0afed7559483e5805dd4879465bcp-6, + -0x1.f4e2f8p-6 + }, + { // Entry 196 + 0x1.d45aeb02a07ca4b711c2193329425c78p-2, + 0x1.f7fffep-2 + }, + { // Entry 197 + -0x1.d45aeb02a07ca4b711c2193329425c78p-2, + -0x1.f7fffep-2 + }, + { // Entry 198 + 0x1.d539bcffd5888dca7deceba8a3f2d041p-2, + 0x1.f914e8p-2 + }, + { // Entry 199 + -0x1.d539bcffd5888dca7deceba8a3f2d041p-2, + -0x1.f914e8p-2 + }, + { // Entry 200 + 0x1.8ee84f1478a25b9bfacdabb49fcea6d5p-1, + 0x1.f99b76p-1 + }, + { // Entry 201 + -0x1.8ee84f1478a25b9bfacdabb49fcea6d5p-1, + -0x1.f99b76p-1 + }, + { // Entry 202 + 0x1.fadbf0ff486b15e264c02ca39b8e6e46p-6, + 0x1.fb055ap-6 + }, + { // Entry 203 + -0x1.fadbf0ff486b15e264c02ca39b8e6e46p-6, + -0x1.fb055ap-6 + }, + { // Entry 204 + 0x1.9044df034b8d943327bee5c633b3f31cp-1, + 0x1.fc4dc0p-1 + }, + { // Entry 205 + -0x1.9044df034b8d943327bee5c633b3f31cp-1, + -0x1.fc4dc0p-1 + }, + { // Entry 206 + 0x1.921f74fffa03e701accc9d1ee3bd2f43p0, + 0x1.fddffep17 + }, + { // Entry 207 + -0x1.921f74fffa03e701accc9d1ee3bd2f43p0, + -0x1.fddffep17 + }, + { // Entry 208 + 0x1.91af9bc0400e0e21fb44692a41829c5dp-1, + 0x1.ff1ffep-1 + }, + { // Entry 209 + -0x1.91af9bc0400e0e21fb44692a41829c5dp-1, + -0x1.ff1ffep-1 + }, + { // Entry 210 + 0x1.91bfa241a2bf1c8f33e7aee3a38362fap-1, + 0x1.ff3ffep-1 + }, + { // Entry 211 + -0x1.91bfa241a2bf1c8f33e7aee3a38362fap-1, + -0x1.ff3ffep-1 + }, + { // Entry 212 + 0x1.f502a50008dcfa3d1252e8256297aa16p-3, + 0x1.ff3ffep-3 + }, + { // Entry 213 + -0x1.f502a50008dcfa3d1252e8256297aa16p-3, + -0x1.ff3ffep-3 + }, + { // Entry 214 + 0x1.1b6c658f57d1e4435c946530e7d0415cp0, + 0x1.fff77ep0 + }, + { // Entry 215 + -0x1.1b6c658f57d1e4435c946530e7d0415cp0, + -0x1.fff77ep0 + }, + { // Entry 216 + 0x1.f5b0a8fac8ee3b2a0997552183bbaf86p-3, + 0x1.fff8dep-3 + }, + { // Entry 217 + -0x1.f5b0a8fac8ee3b2a0997552183bbaf86p-3, + -0x1.fff8dep-3 + }, + { // Entry 218 + 0x1.f5b0c8fad63b565edaa4205b5787d234p-3, + 0x1.fff9p-3 + }, + { // Entry 219 + -0x1.f5b0c8fad63b565edaa4205b5787d234p-3, + -0x1.fff9p-3 + }, + { // Entry 220 + 0x1.ffd048ff42ff02270154618cac768f98p-6, + 0x1.fffaecp-6 + }, + { // Entry 221 + -0x1.ffd048ff42ff02270154618cac768f98p-6, + -0x1.fffaecp-6 + }, + { // Entry 222 + 0x1.921de5429e50865c34386a247dc4ee4ep-1, + 0x1.fffc60p-1 + }, + { // Entry 223 + -0x1.921de5429e50865c34386a247dc4ee4ep-1, + -0x1.fffc60p-1 + }, + { // Entry 224 + 0x1.921f84443e21041cf1621a6d2e90a3cap-1, + 0x1.ffff9ep-1 + }, + { // Entry 225 + -0x1.921f84443e21041cf1621a6d2e90a3cap-1, + -0x1.ffff9ep-1 + }, + { // Entry 226 + 0x1.1b6e0d95213d8e5e8acacf6ee3b5dda1p0, + 0x1.ffffc6p0 + }, + { // Entry 227 + -0x1.1b6e0d95213d8e5e8acacf6ee3b5dda1p0, + -0x1.ffffc6p0 + }, + { // Entry 228 + 0x1.5368c551e98fc9a0436ff6aed5a43bfep0, + 0x1.ffffdep1 + }, + { // Entry 229 + -0x1.5368c551e98fc9a0436ff6aed5a43bfep0, + -0x1.ffffdep1 + }, + { // Entry 230 + 0x1.1b6e15952230c1a76e364414327ae250p0, + 0x1.ffffeep0 + }, + { // Entry 231 + -0x1.1b6e15952230c1a76e364414327ae250p0, + -0x1.ffffeep0 + }, + { // Entry 232 + 0x1.921fb14442c984697ee21a6c570dc22ap-1, + 0x1.fffff8p-1 + }, + { // Entry 233 + -0x1.921fb14442c984697ee21a6c570dc22ap-1, + -0x1.fffff8p-1 + }, + { // Entry 234 + -0.0f, + -0x1.p-149 + }, + { // Entry 235 + 0.0f, + 0x1.p-149 + }, + { // Entry 236 + 0.0, + 0.0 + }, + { // Entry 237 + 0.0f, + 0x1.p-149 + }, + { // Entry 238 + -0.0f, + -0x1.p-149 + }, + { // Entry 239 + -0x1.000001ffffffffffffffffffffffffffp-126, + -0x1.000002p-126 + }, + { // Entry 240 + 0x1.000001ffffffffffffffffffffffffffp-126, + 0x1.000002p-126 + }, + { // Entry 241 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-126 + }, + { // Entry 242 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-126 + }, + { // Entry 243 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.fffffcp-127 + }, + { // Entry 244 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.fffffcp-127 + }, + { // Entry 245 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.fffffcp-127 + }, + { // Entry 246 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.fffffcp-127 + }, + { // Entry 247 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-126 + }, + { // Entry 248 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-126 + }, + { // Entry 249 + 0x1.000001ffffffffffffffffffffffffffp-126, + 0x1.000002p-126 + }, + { // Entry 250 + -0x1.000001ffffffffffffffffffffffffffp-126, + -0x1.000002p-126 + }, + { // Entry 251 + 0x1.999999a89e60d0512d6b0b39bd2a565ap-13, + 0x1.99999ap-13 + }, + { // Entry 252 + -0x1.999999a89e60d0512d6b0b39bd2a565ap-13, + -0x1.99999ap-13 + }, + { // Entry 253 + 0x1.999998a27984d3ebeb1c3290cc2c5caap-12, + 0x1.99999ap-12 + }, + { // Entry 254 + -0x1.999998a27984d3ebeb1c3290cc2c5caap-12, + -0x1.99999ap-12 + }, + { // Entry 255 + 0x1.333331b22d11b0ccb2bb7ba6f63b4d3cp-11, + 0x1.333334p-11 + }, + { // Entry 256 + -0x1.333331b22d11b0ccb2bb7ba6f63b4d3cp-11, + -0x1.333334p-11 + }, + { // Entry 257 + 0x1.99999489e62c7a2256e05c49880d23d9p-11, + 0x1.99999ap-11 + }, + { // Entry 258 + -0x1.99999489e62c7a2256e05c49880d23d9p-11, + -0x1.99999ap-11 + }, + { // Entry 259 + 0x1.fffff55555bbbbb72972d00cfde752f9p-11, + 0x1.p-10 + }, + { // Entry 260 + -0x1.fffff55555bbbbb72972d00cfde752f9p-11, + -0x1.p-10 + }, + { // Entry 261 + 0x1.33332ac8b4a6505aad1a5539202df4f4p-10, + 0x1.333334p-10 + }, + { // Entry 262 + -0x1.33332ac8b4a6505aad1a5539202df4f4p-10, + -0x1.333334p-10 + }, + { // Entry 263 + 0x1.6666595d875d6f587e4d878a7b492f47p-10, + 0x1.666668p-10 + }, + { // Entry 264 + -0x1.6666595d875d6f587e4d878a7b492f47p-10, + -0x1.666668p-10 + }, + { // Entry 265 + 0x1.9999862799f2a4104ba8c411863e71f7p-10, + 0x1.99999cp-10 + }, + { // Entry 266 + -0x1.9999862799f2a4104ba8c411863e71f7p-10, + -0x1.99999cp-10 + }, + { // Entry 267 + 0x1.ccccace5643276ecd8ffae54b28b87ffp-10, + 0x1.ccccccp-10 + }, + { // Entry 268 + -0x1.ccccace5643276ecd8ffae54b28b87ffp-10, + -0x1.ccccccp-10 + }, + { // Entry 269 + 0x1.0664f66f7cfd482cf0ff4582bbeef478p-7, + 0x1.066666p-7 + }, + { // Entry 270 + -0x1.0664f66f7cfd482cf0ff4582bbeef478p-7, + -0x1.066666p-7 + }, + { // Entry 271 + 0x1.ccc505948fe7a3b8e0837445c2136897p-7, + 0x1.ccccccp-7 + }, + { // Entry 272 + -0x1.ccc505948fe7a3b8e0837445c2136897p-7, + -0x1.ccccccp-7 + }, + { // Entry 273 + 0x1.498e36c4f385d5af3b6b6480a8ebfe14p-6, + 0x1.499998p-6 + }, + { // Entry 274 + -0x1.498e36c4f385d5af3b6b6480a8ebfe14p-6, + -0x1.499998p-6 + }, + { // Entry 275 + 0x1.acb3be5be013930205335e91f230ec8bp-6, + 0x1.acccccp-6 + }, + { // Entry 276 + -0x1.acb3be5be013930205335e91f230ec8bp-6, + -0x1.acccccp-6 + }, + { // Entry 277 + 0x1.07e89e3abee7df5bc22b883856e5d802p-5, + 0x1.08p-5 + }, + { // Entry 278 + -0x1.07e89e3abee7df5bc22b883856e5d802p-5, + -0x1.08p-5 + }, + { // Entry 279 + 0x1.39726b6fab059b66dd740ae83fb565b7p-5, + 0x1.39999ap-5 + }, + { // Entry 280 + -0x1.39726b6fab059b66dd740ae83fb565b7p-5, + -0x1.39999ap-5 + }, + { // Entry 281 + 0x1.6af65a41908039c267674f356f997d4dp-5, + 0x1.6b3334p-5 + }, + { // Entry 282 + -0x1.6af65a41908039c267674f356f997d4dp-5, + -0x1.6b3334p-5 + }, + { // Entry 283 + 0x1.9c737ecdb90a7c4f9d8682bc2815635bp-5, + 0x1.9ccccep-5 + }, + { // Entry 284 + -0x1.9c737ecdb90a7c4f9d8682bc2815635bp-5, + -0x1.9ccccep-5 + }, + { // Entry 285 + 0x1.cde8ebf5a33a269c5529c53e853ce492p-5, + 0x1.ce6666p-5 + }, + { // Entry 286 + -0x1.cde8ebf5a33a269c5529c53e853ce492p-5, + -0x1.ce6666p-5 + }, + { // Entry 287 + 0x1.3359bcc32e58c6de203f8b6c19fa5ff9p-1, + 0x1.5e7fc4p-1 + }, + { // Entry 288 + -0x1.3359bcc32e58c6de203f8b6c19fa5ff9p-1, + -0x1.5e7fc4p-1 + }, + { // Entry 289 + 0x1.d5ca705d09beeec558a5b8db2d657192p-1, + 0x1.4e7fc4p0 + }, + { // Entry 290 + -0x1.d5ca705d09beeec558a5b8db2d657192p-1, + -0x1.4e7fc4p0 + }, + { // Entry 291 + 0x1.17ac440d8febeb7a1d19a5ae8faa7d7ep0, + 0x1.edbfa6p0 + }, + { // Entry 292 + -0x1.17ac440d8febeb7a1d19a5ae8faa7d7ep0, + -0x1.edbfa6p0 + }, + { // Entry 293 + 0x1.3279e84703fc9c8f702a678693102c47p0, + 0x1.467fc4p1 + }, + { // Entry 294 + -0x1.3279e84703fc9c8f702a678693102c47p0, + -0x1.467fc4p1 + }, + { // Entry 295 + 0x1.43f64467a5781271582ce61ccc6b0199p0, + 0x1.961fb4p1 + }, + { // Entry 296 + -0x1.43f64467a5781271582ce61ccc6b0199p0, + -0x1.961fb4p1 + }, + { // Entry 297 + 0x1.502a1cf082c199f85892b1763efa6c61p0, + 0x1.e5bfa4p1 + }, + { // Entry 298 + -0x1.502a1cf082c199f85892b1763efa6c61p0, + -0x1.e5bfa4p1 + }, + { // Entry 299 + 0x1.592066563d61378c65a8ef7d091bdc95p0, + 0x1.1aafcap2 + }, + { // Entry 300 + -0x1.592066563d61378c65a8ef7d091bdc95p0, + -0x1.1aafcap2 + }, + { // Entry 301 + 0x1.5ff8e21f712f9ee4424bbc711e1ef6f3p0, + 0x1.427fc2p2 + }, + { // Entry 302 + -0x1.5ff8e21f712f9ee4424bbc711e1ef6f3p0, + -0x1.427fc2p2 + }, + { // Entry 303 + 0x1.655d64f377c9e58e727f460133ed97a3p0, + 0x1.6a4fbap2 + }, + { // Entry 304 + -0x1.655d64f377c9e58e727f460133ed97a3p0, + -0x1.6a4fbap2 + }, + { // Entry 305 + 0x1.65711d6dd7ca878481fcb2ec4f9f9341p0, + 0x1.6af2f0p2 + }, + { // Entry 306 + -0x1.65711d6dd7ca878481fcb2ec4f9f9341p0, + -0x1.6af2f0p2 + }, + { // Entry 307 + 0x1.602a2a92bb3778489bbc165a7d25fb68p0, + 0x1.43c62ap2 + }, + { // Entry 308 + -0x1.602a2a92bb3778489bbc165a7d25fb68p0, + -0x1.43c62ap2 + }, + { // Entry 309 + 0x1.597f46a19f06d53bf1df42bfaedc5c4dp0, + 0x1.1c9964p2 + }, + { // Entry 310 + -0x1.597f46a19f06d53bf1df42bfaedc5c4dp0, + -0x1.1c9964p2 + }, + { // Entry 311 + 0x1.50d201d4d8188bc950ce239cd4991bb9p0, + 0x1.ead93cp1 + }, + { // Entry 312 + -0x1.50d201d4d8188bc950ce239cd4991bb9p0, + -0x1.ead93cp1 + }, + { // Entry 313 + 0x1.45190b163719c828307d6a3d0cf0b54cp0, + 0x1.9c7fb0p1 + }, + { // Entry 314 + -0x1.45190b163719c828307d6a3d0cf0b54cp0, + -0x1.9c7fb0p1 + }, + { // Entry 315 + 0x1.34794bb84d2baa02953a0a72b717f0ebp0, + 0x1.4e2624p1 + }, + { // Entry 316 + -0x1.34794bb84d2baa02953a0a72b717f0ebp0, + -0x1.4e2624p1 + }, + { // Entry 317 + 0x1.1b59864724a10efac8597e77461bc3f1p0, + 0x1.ff9932p0 + }, + { // Entry 318 + -0x1.1b59864724a10efac8597e77461bc3f1p0, + -0x1.ff9932p0 + }, + { // Entry 319 + 0x1.e44c89086d1aecac1cbe2b3941c67a0fp-1, + 0x1.62e61cp0 + }, + { // Entry 320 + -0x1.e44c89086d1aecac1cbe2b3941c67a0fp-1, + -0x1.62e61cp0 + }, + { // Entry 321 + 0x1.5150f28aee7aa819cb475b4a85ae7569p-1, + 0x1.8c662cp-1 + }, + { // Entry 322 + -0x1.5150f28aee7aa819cb475b4a85ae7569p-1, + -0x1.8c662cp-1 + }, + { // Entry 323 + -0x1.073ea11368f7a47972c7a90fc77e3c33p0, + -0x1.a8aa1cp0 + }, + { // Entry 324 + 0x1.073ea11368f7a47972c7a90fc77e3c33p0, + 0x1.a8aa1cp0 + }, + { // Entry 325 + -0x1.021548e71bb3457d648c1924de4f5d65p0, + -0x1.95ec8ap0 + }, + { // Entry 326 + 0x1.021548e71bb3457d648c1924de4f5d65p0, + 0x1.95ec8ap0 + }, + { // Entry 327 + -0x1.f92364ca1fa2dabc63ba7f6e8a68d3f6p-1, + -0x1.832ef8p0 + }, + { // Entry 328 + 0x1.f92364ca1fa2dabc63ba7f6e8a68d3f6p-1, + 0x1.832ef8p0 + }, + { // Entry 329 + -0x1.ed577ea7517c28cbc891c018438dac11p-1, + -0x1.707166p0 + }, + { // Entry 330 + 0x1.ed577ea7517c28cbc891c018438dac11p-1, + 0x1.707166p0 + }, + { // Entry 331 + -0x1.e0b5226ef36d67e005a0eb9cfdb9b51ap-1, + -0x1.5db3d4p0 + }, + { // Entry 332 + 0x1.e0b5226ef36d67e005a0eb9cfdb9b51ap-1, + 0x1.5db3d4p0 + }, + { // Entry 333 + -0x1.d3290427f1d17e30a6993fbe96cc1fdfp-1, + -0x1.4af642p0 + }, + { // Entry 334 + 0x1.d3290427f1d17e30a6993fbe96cc1fdfp-1, + 0x1.4af642p0 + }, + { // Entry 335 + -0x1.c49e4505cff7e9f58be9c60ef08b794dp-1, + -0x1.3838b0p0 + }, + { // Entry 336 + 0x1.c49e4505cff7e9f58be9c60ef08b794dp-1, + 0x1.3838b0p0 + }, + { // Entry 337 + -0x1.b4fe80019a190ceb39c7cce2f0847082p-1, + -0x1.257b1ep0 + }, + { // Entry 338 + 0x1.b4fe80019a190ceb39c7cce2f0847082p-1, + 0x1.257b1ep0 + }, + { // Entry 339 + -0x1.a431f41e221ee2993e28481f34f7c822p-1, + -0x1.12bd92p0 + }, + { // Entry 340 + 0x1.a431f41e221ee2993e28481f34f7c822p-1, + 0x1.12bd92p0 + }, + { // Entry 341 + -0x1.8712787339dc1bb28aacdbb75d0eda49p-1, + -0x1.ea5c3ep-1 + }, + { // Entry 342 + 0x1.8712787339dc1bb28aacdbb75d0eda49p-1, + 0x1.ea5c3ep-1 + }, + { // Entry 343 + -0x1.7b8b3af8b9278dd5c80bf4f386dc5503p-1, + -0x1.d4b87cp-1 + }, + { // Entry 344 + 0x1.7b8b3af8b9278dd5c80bf4f386dc5503p-1, + 0x1.d4b87cp-1 + }, + { // Entry 345 + -0x1.6f851d6a4f403a71ef874dcc9ed9d59ap-1, + -0x1.bf14bap-1 + }, + { // Entry 346 + 0x1.6f851d6a4f403a71ef874dcc9ed9d59ap-1, + 0x1.bf14bap-1 + }, + { // Entry 347 + -0x1.62fb625437af22ec34ce96b17c5ac9ecp-1, + -0x1.a970f8p-1 + }, + { // Entry 348 + 0x1.62fb625437af22ec34ce96b17c5ac9ecp-1, + 0x1.a970f8p-1 + }, + { // Entry 349 + -0x1.55e98421ee9465b922d19e78004b9e96p-1, + -0x1.93cd36p-1 + }, + { // Entry 350 + 0x1.55e98421ee9465b922d19e78004b9e96p-1, + 0x1.93cd36p-1 + }, + { // Entry 351 + -0x1.484b4edaf8871846261a76bd33d9f049p-1, + -0x1.7e2974p-1 + }, + { // Entry 352 + 0x1.484b4edaf8871846261a76bd33d9f049p-1, + 0x1.7e2974p-1 + }, + { // Entry 353 + -0x1.3a1cfde1e590471ac2ff5eefe745a249p-1, + -0x1.6885b2p-1 + }, + { // Entry 354 + 0x1.3a1cfde1e590471ac2ff5eefe745a249p-1, + 0x1.6885b2p-1 + }, + { // Entry 355 + -0x1.2b5b5dbe8467930df24be6b9046ddfaep-1, + -0x1.52e1f0p-1 + }, + { // Entry 356 + 0x1.2b5b5dbe8467930df24be6b9046ddfaep-1, + 0x1.52e1f0p-1 + }, + { // Entry 357 + -0x1.1c03f7900131c7cb3fbfbb5e6c5115eap-1, + -0x1.3d3e36p-1 + }, + { // Entry 358 + 0x1.1c03f7900131c7cb3fbfbb5e6c5115eap-1, + 0x1.3d3e36p-1 + }, + { // Entry 359 + -0x1.eab7b26f955752e78c062cb6087064d9p-2, + -0x1.0a0b02p-1 + }, + { // Entry 360 + 0x1.eab7b26f955752e78c062cb6087064d9p-2, + 0x1.0a0b02p-1 + }, + { // Entry 361 + -0x1.bb12f2d65df13ff36b74e12066022236p-2, + -0x1.d8f720p-2 + }, + { // Entry 362 + 0x1.bb12f2d65df13ff36b74e12066022236p-2, + 0x1.d8f720p-2 + }, + { // Entry 363 + -0x1.894ae05fefe6ee1164c3e769b2b1a84ep-2, + -0x1.9dd83cp-2 + }, + { // Entry 364 + 0x1.894ae05fefe6ee1164c3e769b2b1a84ep-2, + 0x1.9dd83cp-2 + }, + { // Entry 365 + -0x1.5579fd644a1a2d96faf5bb8844656d0cp-2, + -0x1.62b958p-2 + }, + { // Entry 366 + 0x1.5579fd644a1a2d96faf5bb8844656d0cp-2, + 0x1.62b958p-2 + }, + { // Entry 367 + -0x1.1fc79ca9ca92823d01375328ac472eedp-2, + -0x1.279a74p-2 + }, + { // Entry 368 + 0x1.1fc79ca9ca92823d01375328ac472eedp-2, + 0x1.279a74p-2 + }, + { // Entry 369 + -0x1.d0d0f7d861c753c31fa29e74145dc127p-3, + -0x1.d8f720p-3 + }, + { // Entry 370 + 0x1.d0d0f7d861c753c31fa29e74145dc127p-3, + 0x1.d8f720p-3 + }, + { // Entry 371 + -0x1.5f3d40f500501f80bba7a781b1619b85p-3, + -0x1.62b958p-3 + }, + { // Entry 372 + 0x1.5f3d40f500501f80bba7a781b1619b85p-3, + 0x1.62b958p-3 + }, + { // Entry 373 + -0x1.d6e1429159f6f0290cf9f2fb24bc26bdp-4, + -0x1.d8f720p-4 + }, + { // Entry 374 + 0x1.d6e1429159f6f0290cf9f2fb24bc26bdp-4, + 0x1.d8f720p-4 + }, + { // Entry 375 + -0x1.d870dc6f0c1b3da66fb282eb78c47134p-5, + -0x1.d8f720p-5 + }, + { // Entry 376 + 0x1.d870dc6f0c1b3da66fb282eb78c47134p-5, + 0x1.d8f720p-5 + }, + { // Entry 377 + 0x1.d870dc6f0c1b3da66fb282eb78c47134p-5, + 0x1.d8f720p-5 + }, + { // Entry 378 + -0x1.d870dc6f0c1b3da66fb282eb78c47134p-5, + -0x1.d8f720p-5 + }, + { // Entry 379 + 0x1.d6e1429159f6f0290cf9f2fb24bc26bdp-4, + 0x1.d8f720p-4 + }, + { // Entry 380 + -0x1.d6e1429159f6f0290cf9f2fb24bc26bdp-4, + -0x1.d8f720p-4 + }, + { // Entry 381 + 0x1.5f3d40f500501f80bba7a781b1619b85p-3, + 0x1.62b958p-3 + }, + { // Entry 382 + -0x1.5f3d40f500501f80bba7a781b1619b85p-3, + -0x1.62b958p-3 + }, + { // Entry 383 + 0x1.d0d0f7d861c753c31fa29e74145dc127p-3, + 0x1.d8f720p-3 + }, + { // Entry 384 + -0x1.d0d0f7d861c753c31fa29e74145dc127p-3, + -0x1.d8f720p-3 + }, + { // Entry 385 + 0x1.1fc79ca9ca92823d01375328ac472eedp-2, + 0x1.279a74p-2 + }, + { // Entry 386 + -0x1.1fc79ca9ca92823d01375328ac472eedp-2, + -0x1.279a74p-2 + }, + { // Entry 387 + 0x1.5579fd644a1a2d96faf5bb8844656d0cp-2, + 0x1.62b958p-2 + }, + { // Entry 388 + -0x1.5579fd644a1a2d96faf5bb8844656d0cp-2, + -0x1.62b958p-2 + }, + { // Entry 389 + 0x1.894ae05fefe6ee1164c3e769b2b1a84ep-2, + 0x1.9dd83cp-2 + }, + { // Entry 390 + -0x1.894ae05fefe6ee1164c3e769b2b1a84ep-2, + -0x1.9dd83cp-2 + }, + { // Entry 391 + 0x1.bb12f2d65df13ff36b74e12066022236p-2, + 0x1.d8f720p-2 + }, + { // Entry 392 + -0x1.bb12f2d65df13ff36b74e12066022236p-2, + -0x1.d8f720p-2 + }, + { // Entry 393 + 0x1.eab7b26f955752e78c062cb6087064d9p-2, + 0x1.0a0b02p-1 + }, + { // Entry 394 + -0x1.eab7b26f955752e78c062cb6087064d9p-2, + -0x1.0a0b02p-1 + }, + { // Entry 395 + 0x1.1c03f7900131c7cb3fbfbb5e6c5115eap-1, + 0x1.3d3e36p-1 + }, + { // Entry 396 + -0x1.1c03f7900131c7cb3fbfbb5e6c5115eap-1, + -0x1.3d3e36p-1 + }, + { // Entry 397 + 0x1.2b5b634ea20bdc86ee2a005916e6440ap-1, + 0x1.52e1f8p-1 + }, + { // Entry 398 + -0x1.2b5b634ea20bdc86ee2a005916e6440ap-1, + -0x1.52e1f8p-1 + }, + { // Entry 399 + 0x1.3a1d033b0b8af99ba311a5b2b61923fdp-1, + 0x1.6885bap-1 + }, + { // Entry 400 + -0x1.3a1d033b0b8af99ba311a5b2b61923fdp-1, + -0x1.6885bap-1 + }, + { // Entry 401 + 0x1.484b53fe3670095a8de580bd37b09834p-1, + 0x1.7e297cp-1 + }, + { // Entry 402 + -0x1.484b53fe3670095a8de580bd37b09834p-1, + -0x1.7e297cp-1 + }, + { // Entry 403 + 0x1.55e989109067d04fb47f38831112284ep-1, + 0x1.93cd3ep-1 + }, + { // Entry 404 + -0x1.55e989109067d04fb47f38831112284ep-1, + -0x1.93cd3ep-1 + }, + { // Entry 405 + 0x1.62fb670fb893cf191d38ab2f1067b2dep-1, + 0x1.a971p-1 + }, + { // Entry 406 + -0x1.62fb670fb893cf191d38ab2f1067b2dep-1, + -0x1.a971p-1 + }, + { // Entry 407 + 0x1.6f8521f44dc815420fa612edb64cbde6p-1, + 0x1.bf14c2p-1 + }, + { // Entry 408 + -0x1.6f8521f44dc815420fa612edb64cbde6p-1, + -0x1.bf14c2p-1 + }, + { // Entry 409 + 0x1.7b8b3f52ed1004e7b2fde26964f1ce72p-1, + 0x1.d4b884p-1 + }, + { // Entry 410 + -0x1.7b8b3f52ed1004e7b2fde26964f1ce72p-1, + -0x1.d4b884p-1 + }, + { // Entry 411 + 0x1.8712787339dc1bb28aacdbb75d0eda49p-1, + 0x1.ea5c3ep-1 + }, + { // Entry 412 + -0x1.8712787339dc1bb28aacdbb75d0eda49p-1, + -0x1.ea5c3ep-1 + }, + { // Entry 413 + 0x1.a431f41e221ee2993e28481f34f7c822p-1, + 0x1.12bd92p0 + }, + { // Entry 414 + -0x1.a431f41e221ee2993e28481f34f7c822p-1, + -0x1.12bd92p0 + }, + { // Entry 415 + 0x1.b4fe853106c1ee9ed92061a86abea8fbp-1, + 0x1.257b24p0 + }, + { // Entry 416 + -0x1.b4fe853106c1ee9ed92061a86abea8fbp-1, + -0x1.257b24p0 + }, + { // Entry 417 + 0x1.c49e49d8ce799df605c0c3754f12c804p-1, + 0x1.3838b6p0 + }, + { // Entry 418 + -0x1.c49e49d8ce799df605c0c3754f12c804p-1, + -0x1.3838b6p0 + }, + { // Entry 419 + 0x1.d32908a5e902e2f9d1bdd644edec4fecp-1, + 0x1.4af648p0 + }, + { // Entry 420 + -0x1.d32908a5e902e2f9d1bdd644edec4fecp-1, + -0x1.4af648p0 + }, + { // Entry 421 + 0x1.e0b5269ed18eb6e8f1b485483f950e69p-1, + 0x1.5db3dap0 + }, + { // Entry 422 + -0x1.e0b5269ed18eb6e8f1b485483f950e69p-1, + -0x1.5db3dap0 + }, + { // Entry 423 + 0x1.ed57828f84cacdec44b29eaeb9138ae7p-1, + 0x1.70716cp0 + }, + { // Entry 424 + -0x1.ed57828f84cacdec44b29eaeb9138ae7p-1, + -0x1.70716cp0 + }, + { // Entry 425 + 0x1.f9236870954c3910ae46db78e8dab4a1p-1, + 0x1.832efep0 + }, + { // Entry 426 + -0x1.f9236870954c3910ae46db78e8dab4a1p-1, + -0x1.832efep0 + }, + { // Entry 427 + 0x1.02154a9c2f5c8c14720789b394a8d71ep0, + 0x1.95ec90p0 + }, + { // Entry 428 + -0x1.02154a9c2f5c8c14720789b394a8d71ep0, + -0x1.95ec90p0 + }, + { // Entry 429 + 0x1.073ea11368f7a47972c7a90fc77e3c33p0, + 0x1.a8aa1cp0 + }, + { // Entry 430 + -0x1.073ea11368f7a47972c7a90fc77e3c33p0, + -0x1.a8aa1cp0 + }, + { // Entry 431 + 0x1.96c4c21383607ec90510b32aa175fe13p-1, + 0x1.04aff8p0 + }, + { // Entry 432 + -0x1.96c4c21383607ec90510b32aa175fe13p-1, + -0x1.04aff8p0 + }, + { // Entry 433 + 0x1.96c5670707d079f967bde56724a1508cp-1, + 0x1.04b0a0p0 + }, + { // Entry 434 + -0x1.96c5670707d079f967bde56724a1508cp-1, + -0x1.04b0a0p0 + }, + { // Entry 435 + 0x1.96c60bfa20055aa638999dba9d5b9ba4p-1, + 0x1.04b148p0 + }, + { // Entry 436 + -0x1.96c60bfa20055aa638999dba9d5b9ba4p-1, + -0x1.04b148p0 + }, + { // Entry 437 + 0x1.96c6b0eccbff69175eae7d730f2d63c8p-1, + 0x1.04b1f0p0 + }, + { // Entry 438 + -0x1.96c6b0eccbff69175eae7d730f2d63c8p-1, + -0x1.04b1f0p0 + }, + { // Entry 439 + 0x1.96c755df0bbeed94bc0a76fe6f6efe03p-1, + 0x1.04b298p0 + }, + { // Entry 440 + -0x1.96c755df0bbeed94bc0a76fe6f6efe03p-1, + -0x1.04b298p0 + }, + { // Entry 441 + 0x1.96c7fad0df4430662dbe23a125fdf4dcp-1, + 0x1.04b340p0 + }, + { // Entry 442 + -0x1.96c7fad0df4430662dbe23a125fdf4dcp-1, + -0x1.04b340p0 + }, + { // Entry 443 + 0x1.96c89fc2468f79d38bdc192ed1b15eadp-1, + 0x1.04b3e8p0 + }, + { // Entry 444 + -0x1.96c89fc2468f79d38bdc192ed1b15eadp-1, + -0x1.04b3e8p0 + }, + { // Entry 445 + 0x1.96c944b341a11224a9783fc55088730ap-1, + 0x1.04b490p0 + }, + { // Entry 446 + -0x1.96c944b341a11224a9783fc55088730ap-1, + -0x1.04b490p0 + }, + { // Entry 447 + 0x1.96c9e5b678ff391c2d3fa2849c0a25d4p-1, + 0x1.04b534p0 + }, + { // Entry 448 + -0x1.96c9e5b678ff391c2d3fa2849c0a25d4p-1, + -0x1.04b534p0 + }, + { // Entry 449 + -0.0f, + -0x1.p-149 + }, + { // Entry 450 + 0.0f, + 0x1.p-149 + }, + { // Entry 451 + 0.0, + 0.0 + }, + { // Entry 452 + 0.0f, + 0x1.p-149 + }, + { // Entry 453 + -0.0f, + -0x1.p-149 + }, + { // Entry 454 + 0x1.0c1521c014d01f8a9ddecc36f1430940p-1, + 0x1.279a72p-1 + }, + { // Entry 455 + -0x1.0c1521c014d01f8a9ddecc36f1430940p-1, + -0x1.279a72p-1 + }, + { // Entry 456 + 0x1.0c15234014d0ffa236d9926a680fd817p-1, + 0x1.279a74p-1 + }, + { // Entry 457 + -0x1.0c15234014d0ffa236d9926a680fd817p-1, + -0x1.279a74p-1 + }, + { // Entry 458 + 0x1.0c1524c014d0932c0cf0350674c305cap-1, + 0x1.279a76p-1 + }, + { // Entry 459 + -0x1.0c1524c014d0932c0cf0350674c305cap-1, + -0x1.279a76p-1 + }, + { // Entry 460 + 0x1.0c1522e17602fe431351c1c08ae51ff7p0, + 0x1.bb67acp0 + }, + { // Entry 461 + -0x1.0c1522e17602fe431351c1c08ae51ff7p0, + -0x1.bb67acp0 + }, + { // Entry 462 + 0x1.0c1523617603a6edb72557e634b4b8e0p0, + 0x1.bb67aep0 + }, + { // Entry 463 + -0x1.0c1523617603a6edb72557e634b4b8e0p0, + -0x1.bb67aep0 + }, + { // Entry 464 + 0x1.0c1523e1760371e48330a6db47968a93p0, + 0x1.bb67b0p0 + }, + { // Entry 465 + -0x1.0c1523e1760371e48330a6db47968a93p0, + -0x1.bb67b0p0 + }, + { // Entry 466 + 0x1.a64eea8f03b7833c1b78f9cef282cf0fp-2, + 0x1.bffffep-2 + }, + { // Entry 467 + -0x1.a64eea8f03b7833c1b78f9cef282cf0fp-2, + -0x1.bffffep-2 + }, + { // Entry 468 + 0x1.a64eec3cc23fcb6c84f92bd2003ce26cp-2, + 0x1.c0p-2 + }, + { // Entry 469 + -0x1.a64eec3cc23fcb6c84f92bd2003ce26cp-2, + -0x1.c0p-2 + }, + { // Entry 470 + 0x1.a64eedea80c775ce2723b37d5f27788dp-2, + 0x1.c00002p-2 + }, + { // Entry 471 + -0x1.a64eedea80c775ce2723b37d5f27788dp-2, + -0x1.c00002p-2 + }, + { // Entry 472 + 0x1.345f007137aead7202d87adc5e70e53ep-1, + 0x1.5ffffep-1 + }, + { // Entry 473 + -0x1.345f007137aead7202d87adc5e70e53ep-1, + -0x1.5ffffep-1 + }, + { // Entry 474 + 0x1.345f01cce37bb440844df1c4409fe779p-1, + 0x1.60p-1 + }, + { // Entry 475 + -0x1.345f01cce37bb440844df1c4409fe779p-1, + -0x1.60p-1 + }, + { // Entry 476 + 0x1.345f03288f477671552f403f77363c6ep-1, + 0x1.600002p-1 + }, + { // Entry 477 + -0x1.345f03288f477671552f403f77363c6ep-1, + -0x1.600002p-1 + }, + { // Entry 478 + 0x1.bde70d2b5b9861800016d24f37e1f182p-1, + 0x1.2ffffep0 + }, + { // Entry 479 + -0x1.bde70d2b5b9861800016d24f37e1f182p-1, + -0x1.2ffffep0 + }, + { // Entry 480 + 0x1.bde70ed439fe6cba95391a7f421b3821p-1, + 0x1.30p0 + }, + { // Entry 481 + -0x1.bde70ed439fe6cba95391a7f421b3821p-1, + -0x1.30p0 + }, + { // Entry 482 + 0x1.bde7107d1861329d77f85e21c5cf991dp-1, + 0x1.300002p0 + }, + { // Entry 483 + -0x1.bde7107d1861329d77f85e21c5cf991dp-1, + -0x1.300002p0 + }, + { // Entry 484 + 0x1.2e7571f4ae6251e5ddb771325105495ep0, + 0x1.37fffep1 + }, + { // Entry 485 + -0x1.2e7571f4ae6251e5ddb771325105495ep0, + -0x1.37fffep1 + }, + { // Entry 486 + 0x1.2e75728833a54116e3ef7326bd9839p0, + 0x1.38p1 + }, + { // Entry 487 + -0x1.2e75728833a54116e3ef7326bd9839p0, + -0x1.38p1 + }, + { // Entry 488 + 0x1.2e75731bb8e691dca788c02332d288f0p0, + 0x1.380002p1 + }, + { // Entry 489 + -0x1.2e75731bb8e691dca788c02332d288f0p0, + -0x1.380002p1 + }, + { // Entry 490 + 0x1.0640a805eb5ac8d45f6e626469cfd37cp-4, + 0x1.069c8cp-4 + }, + { // Entry 491 + -0x1.0640a805eb5ac8d45f6e626469cfd37cp-4, + -0x1.069c8cp-4 + }, + { // Entry 492 + 0x1.052fabecdb3192006601da57b9f185bbp-3, + 0x1.069c8cp-3 + }, + { // Entry 493 + -0x1.052fabecdb3192006601da57b9f185bbp-3, + -0x1.069c8cp-3 + }, + { // Entry 494 + 0x1.852a2293776e3c2cf4b7a237dfbcac9cp-3, + 0x1.89ead2p-3 + }, + { // Entry 495 + -0x1.852a2293776e3c2cf4b7a237dfbcac9cp-3, + -0x1.89ead2p-3 + }, + { // Entry 496 + 0x1.01123c6ee78df9fddeaeaac0f651fffdp-2, + 0x1.069c8cp-2 + }, + { // Entry 497 + -0x1.01123c6ee78df9fddeaeaac0f651fffdp-2, + -0x1.069c8cp-2 + }, + { // Entry 498 + 0x1.3daa74f913ef98bebdaf6ff5fe9ed93ep-2, + 0x1.4843b0p-2 + }, + { // Entry 499 + -0x1.3daa74f913ef98bebdaf6ff5fe9ed93ep-2, + -0x1.4843b0p-2 + }, + { // Entry 500 + 0x1.780c486991daa5d72fdda5ce57d44289p-2, + 0x1.89ead4p-2 + }, + { // Entry 501 + -0x1.780c486991daa5d72fdda5ce57d44289p-2, + -0x1.89ead4p-2 + }, + { // Entry 502 + 0x1.affab023fe5819ab1f4cad60051a8345p-2, + 0x1.cb91f8p-2 + }, + { // Entry 503 + -0x1.affab023fe5819ab1f4cad60051a8345p-2, + -0x1.cb91f8p-2 + }, + { // Entry 504 + 0x1.e54c83edcc5caaa7a074644b3d2183a2p-2, + 0x1.069c8ep-1 + }, + { // Entry 505 + -0x1.e54c83edcc5caaa7a074644b3d2183a2p-2, + -0x1.069c8ep-1 + }, + { // Entry 506 + 0x1.0bf5631d21b59bea6037065bd184c7fdp-1, + 0x1.277020p-1 + }, + { // Entry 507 + -0x1.0bf5631d21b59bea6037065bd184c7fdp-1, + -0x1.277020p-1 + }, + { // Entry 508 + 0x1.23e71a9565cd2e40ee391514bdb4e6d5p-1, + 0x1.4843b2p-1 + }, + { // Entry 509 + -0x1.23e71a9565cd2e40ee391514bdb4e6d5p-1, + -0x1.4843b2p-1 + }, + { // Entry 510 + 0x1.3a7e42481b7080ceeca06ac375e2af5bp-1, + 0x1.691744p-1 + }, + { // Entry 511 + -0x1.3a7e42481b7080ceeca06ac375e2af5bp-1, + -0x1.691744p-1 + }, + { // Entry 512 + 0x1.4fc2c891491b52874ce2931f24e4b619p-1, + 0x1.89ead6p-1 + }, + { // Entry 513 + -0x1.4fc2c891491b52874ce2931f24e4b619p-1, + -0x1.89ead6p-1 + }, + { // Entry 514 + 0x1.63c0625215a8fafdacb65eebcc76d090p-1, + 0x1.aabe68p-1 + }, + { // Entry 515 + -0x1.63c0625215a8fafdacb65eebcc76d090p-1, + -0x1.aabe68p-1 + }, + { // Entry 516 + 0x1.768565c528c1c7512181ef021a9befe5p-1, + 0x1.cb91fap-1 + }, + { // Entry 517 + -0x1.768565c528c1c7512181ef021a9befe5p-1, + -0x1.cb91fap-1 + }, + { // Entry 518 + 0x1.8821d517853a9293101e345ad74f6492p-1, + 0x1.ec658cp-1 + }, + { // Entry 519 + -0x1.8821d517853a9293101e345ad74f6492p-1, + -0x1.ec658cp-1 + }, + { // Entry 520 + 0x1.98a6983a1f69e2ba7830d45b9caa2847p-1, + 0x1.069c8ep0 + }, + { // Entry 521 + -0x1.98a6983a1f69e2ba7830d45b9caa2847p-1, + -0x1.069c8ep0 + }, + { // Entry 522 + 0x1.a824e7446479e89c28c3c93afc5c60a3p-1, + 0x1.170656p0 + }, + { // Entry 523 + -0x1.a824e7446479e89c28c3c93afc5c60a3p-1, + -0x1.170656p0 + }, + { // Entry 524 + 0x1.b6add56905c11877985184b1ee5d353ap-1, + 0x1.27701ep0 + }, + { // Entry 525 + -0x1.b6add56905c11877985184b1ee5d353ap-1, + -0x1.27701ep0 + }, + { // Entry 526 + 0x1.c4520084d880847dda367ba8b7a8b21dp-1, + 0x1.37d9e6p0 + }, + { // Entry 527 + -0x1.c4520084d880847dda367ba8b7a8b21dp-1, + -0x1.37d9e6p0 + }, + { // Entry 528 + 0x1.d121598ed50fface6324aa1c21a74d23p-1, + 0x1.4843aep0 + }, + { // Entry 529 + -0x1.d121598ed50fface6324aa1c21a74d23p-1, + -0x1.4843aep0 + }, + { // Entry 530 + 0x1.dd2b014fde35d165c474a1122825802dp-1, + 0x1.58ad76p0 + }, + { // Entry 531 + -0x1.dd2b014fde35d165c474a1122825802dp-1, + -0x1.58ad76p0 + }, + { // Entry 532 + 0x1.e87d3481ac8dd5621a3b3c4f921c44fap-1, + 0x1.69173ep0 + }, + { // Entry 533 + -0x1.e87d3481ac8dd5621a3b3c4f921c44fap-1, + -0x1.69173ep0 + }, + { // Entry 534 + 0x1.f32543520ef9c5f5810f6db85d7aaf28p-1, + 0x1.798106p0 + }, + { // Entry 535 + -0x1.f32543520ef9c5f5810f6db85d7aaf28p-1, + -0x1.798106p0 + }, + { // Entry 536 + 0x1.fd2f9116e59cee8a040e62d4b5243e1ap-1, + 0x1.89eacep0 + }, + { // Entry 537 + -0x1.fd2f9116e59cee8a040e62d4b5243e1ap-1, + -0x1.89eacep0 + }, + { // Entry 538 + 0x1.0353ccda2d644d7938c482410bb91bb1p0, + 0x1.9a5496p0 + }, + { // Entry 539 + -0x1.0353ccda2d644d7938c482410bb91bb1p0, + -0x1.9a5496p0 + }, + { // Entry 540 + 0x1.07cbfd6728be1d728e6efaa566962a31p0, + 0x1.aabe5ep0 + }, + { // Entry 541 + -0x1.07cbfd6728be1d728e6efaa566962a31p0, + -0x1.aabe5ep0 + }, + { // Entry 542 + 0x1.0c053fac5615bd33ea669091fc7a90bcp0, + 0x1.bb2826p0 + }, + { // Entry 543 + -0x1.0c053fac5615bd33ea669091fc7a90bcp0, + -0x1.bb2826p0 + }, + { // Entry 544 + 0x1.1004163d82000593e7df6bce3d8cab10p0, + 0x1.cb91eep0 + }, + { // Entry 545 + -0x1.1004163d82000593e7df6bce3d8cab10p0, + -0x1.cb91eep0 + }, + { // Entry 546 + 0x1.13cca783c7bd2088b900b4113ba87852p0, + 0x1.dbfbb6p0 + }, + { // Entry 547 + -0x1.13cca783c7bd2088b900b4113ba87852p0, + -0x1.dbfbb6p0 + }, + { // Entry 548 + 0x1.1762c47f210f545ac9a8a7e0241e7259p0, + 0x1.ec657ep0 + }, + { // Entry 549 + -0x1.1762c47f210f545ac9a8a7e0241e7259p0, + -0x1.ec657ep0 + }, + { // Entry 550 + 0x1.1ac9ef601c2f97f7b0f0a6d93dd834eep0, + 0x1.fccf46p0 + }, + { // Entry 551 + -0x1.1ac9ef601c2f97f7b0f0a6d93dd834eep0, + -0x1.fccf46p0 + }, + { // Entry 552 + 0x1.1e05623dfb4cc3c6baa62e4bc279a9a4p0, + 0x1.069c88p1 + }, + { // Entry 553 + -0x1.1e05623dfb4cc3c6baa62e4bc279a9a4p0, + -0x1.069c88p1 + }, + { // Entry 554 + 0x1.21181384588be60732d01848bc71700bp0, + 0x1.0ed16cp1 + }, + { // Entry 555 + -0x1.21181384588be60732d01848bc71700bp0, + -0x1.0ed16cp1 + }, + { // Entry 556 + 0x1.2404bde8e2552de3cc50334d78b5dc4ap0, + 0x1.170650p1 + }, + { // Entry 557 + -0x1.2404bde8e2552de3cc50334d78b5dc4ap0, + -0x1.170650p1 + }, + { // Entry 558 + 0x1.26cde4061c757738e2ce7f21522b89dap0, + 0x1.1f3b34p1 + }, + { // Entry 559 + -0x1.26cde4061c757738e2ce7f21522b89dap0, + -0x1.1f3b34p1 + }, + { // Entry 560 + 0x1.2975d58f5e9bdfe1899ef21d99c49b2bp0, + 0x1.277018p1 + }, + { // Entry 561 + -0x1.2975d58f5e9bdfe1899ef21d99c49b2bp0, + -0x1.277018p1 + }, + { // Entry 562 + 0x1.2bfeb3b9bbea83cde56fbf951e871487p0, + 0x1.2fa4fcp1 + }, + { // Entry 563 + -0x1.2bfeb3b9bbea83cde56fbf951e871487p0, + -0x1.2fa4fcp1 + }, + { // Entry 564 + 0x1.2e6a7545ba88692a48d56e5581873211p0, + 0x1.37d9e0p1 + }, + { // Entry 565 + -0x1.2e6a7545ba88692a48d56e5581873211p0, + -0x1.37d9e0p1 + }, + { // Entry 566 + 0x1.30baea2f60c5a59cc6d2e94130f95768p0, + 0x1.400ec4p1 + }, + { // Entry 567 + -0x1.30baea2f60c5a59cc6d2e94130f95768p0, + -0x1.400ec4p1 + }, + { // Entry 568 + 0x1.32f1bf0aa92c8a65a6948643fdcfd255p0, + 0x1.4843a8p1 + }, + { // Entry 569 + -0x1.32f1bf0aa92c8a65a6948643fdcfd255p0, + -0x1.4843a8p1 + }, + { // Entry 570 + 0x1.35108012a113c05aaab2d146f1393f5cp0, + 0x1.50788cp1 + }, + { // Entry 571 + -0x1.35108012a113c05aaab2d146f1393f5cp0, + -0x1.50788cp1 + }, + { // Entry 572 + 0x1.37189bf16a71201adaf5b8708459828ep0, + 0x1.58ad70p1 + }, + { // Entry 573 + -0x1.37189bf16a71201adaf5b8708459828ep0, + -0x1.58ad70p1 + }, + { // Entry 574 + 0x1.390b6647268e4ff7a7fc9ad3d315ca68p0, + 0x1.60e254p1 + }, + { // Entry 575 + -0x1.390b6647268e4ff7a7fc9ad3d315ca68p0, + -0x1.60e254p1 + }, + { // Entry 576 + 0x1.3aea19f582cfb2fc7f01e690b9e61c32p0, + 0x1.691738p1 + }, + { // Entry 577 + -0x1.3aea19f582cfb2fc7f01e690b9e61c32p0, + -0x1.691738p1 + }, + { // Entry 578 + 0x1.3cb5db3545a9577b9d057ce82dc608c6p0, + 0x1.714c1cp1 + }, + { // Entry 579 + -0x1.3cb5db3545a9577b9d057ce82dc608c6p0, + -0x1.714c1cp1 + }, + { // Entry 580 + 0x1.3e6fb97ad7a66ba04c7b01d1646602e1p0, + 0x1.7981p1 + }, + { // Entry 581 + -0x1.3e6fb97ad7a66ba04c7b01d1646602e1p0, + -0x1.7981p1 + }, + { // Entry 582 + 0x1.4018b12e603d690dfd89144ca355ad7cp0, + 0x1.81b5e4p1 + }, + { // Entry 583 + -0x1.4018b12e603d690dfd89144ca355ad7cp0, + -0x1.81b5e4p1 + }, + { // Entry 584 + 0x1.41b1ad3bab8b579c71ceb89cb23a4191p0, + 0x1.89eac8p1 + }, + { // Entry 585 + -0x1.41b1ad3bab8b579c71ceb89cb23a4191p0, + -0x1.89eac8p1 + }, + { // Entry 586 + -0x1.6807a9ecb61e7179d47b86a3d7d89614p0, + -0x1.81b5eep2 + }, + { // Entry 587 + 0x1.6807a9ecb61e7179d47b86a3d7d89614p0, + 0x1.81b5eep2 + }, + { // Entry 588 + -0x1.6631e1e590c8943bb980827585841401p0, + -0x1.714c26p2 + }, + { // Entry 589 + 0x1.6631e1e590c8943bb980827585841401p0, + 0x1.714c26p2 + }, + { // Entry 590 + -0x1.6431bbdbbb23b05a6294690cc8fe4afbp0, + -0x1.60e25ep2 + }, + { // Entry 591 + 0x1.6431bbdbbb23b05a6294690cc8fe4afbp0, + 0x1.60e25ep2 + }, + { // Entry 592 + -0x1.620149ba05b3abd7c744898b395ff078p0, + -0x1.507896p2 + }, + { // Entry 593 + 0x1.620149ba05b3abd7c744898b395ff078p0, + 0x1.507896p2 + }, + { // Entry 594 + -0x1.5f99784c16ae6ade09784989de90f9cep0, + -0x1.400ecep2 + }, + { // Entry 595 + 0x1.5f99784c16ae6ade09784989de90f9cep0, + 0x1.400ecep2 + }, + { // Entry 596 + -0x1.5cf1c615f954a1c183fa9df874538ee9p0, + -0x1.2fa506p2 + }, + { // Entry 597 + 0x1.5cf1c615f954a1c183fa9df874538ee9p0, + 0x1.2fa506p2 + }, + { // Entry 598 + -0x1.59ffe38b71898ed7998b335085e65964p0, + -0x1.1f3b3ep2 + }, + { // Entry 599 + 0x1.59ffe38b71898ed7998b335085e65964p0, + 0x1.1f3b3ep2 + }, + { // Entry 600 + -0x1.56b7343ee6671bf137c3060d6bbac90bp0, + -0x1.0ed176p2 + }, + { // Entry 601 + 0x1.56b7343ee6671bf137c3060d6bbac90bp0, + 0x1.0ed176p2 + }, + { // Entry 602 + -0x1.530824ba9228f906cf6fbbb114073212p0, + -0x1.fccf5ap1 + }, + { // Entry 603 + 0x1.530824ba9228f906cf6fbbb114073212p0, + 0x1.fccf5ap1 + }, + { // Entry 604 + -0x1.4edf449b38ca3a22476f62c7349bb773p0, + -0x1.dbfbc8p1 + }, + { // Entry 605 + 0x1.4edf449b38ca3a22476f62c7349bb773p0, + 0x1.dbfbc8p1 + }, + { // Entry 606 + -0x1.4a2408f508131a351e75bd65a563180ap0, + -0x1.bb2836p1 + }, + { // Entry 607 + 0x1.4a2408f508131a351e75bd65a563180ap0, + 0x1.bb2836p1 + }, + { // Entry 608 + -0x1.44b712953f85f723e8b9348c9f600a8cp0, + -0x1.9a54a4p1 + }, + { // Entry 609 + 0x1.44b712953f85f723e8b9348c9f600a8cp0, + 0x1.9a54a4p1 + }, + { // Entry 610 + -0x1.3e6fbd3122418ea0ac307a2ed17c0d28p0, + -0x1.798112p1 + }, + { // Entry 611 + 0x1.3e6fbd3122418ea0ac307a2ed17c0d28p0, + 0x1.798112p1 + }, + { // Entry 612 + -0x1.37189fd23f9a7ac18ff4e4c5821e80bfp0, + -0x1.58ad80p1 + }, + { // Entry 613 + 0x1.37189fd23f9a7ac18ff4e4c5821e80bfp0, + 0x1.58ad80p1 + }, + { // Entry 614 + -0x1.2e6a794f37529d7b8c78438094df8560p0, + -0x1.37d9eep1 + }, + { // Entry 615 + 0x1.2e6a794f37529d7b8c78438094df8560p0, + 0x1.37d9eep1 + }, + { // Entry 616 + -0x1.2404c2150e76f6d23e4a514c77839926p0, + -0x1.17065cp1 + }, + { // Entry 617 + 0x1.2404c2150e76f6d23e4a514c77839926p0, + 0x1.17065cp1 + }, + { // Entry 618 + -0x1.1762c92d89f7b516e38b1fadbc7c1725p0, + -0x1.ec6594p0 + }, + { // Entry 619 + 0x1.1762c92d89f7b516e38b1fadbc7c1725p0, + 0x1.ec6594p0 + }, + { // Entry 620 + -0x1.07cc022a998cd36350736775629f7411p0, + -0x1.aabe70p0 + }, + { // Entry 621 + 0x1.07cc022a998cd36350736775629f7411p0, + 0x1.aabe70p0 + }, + { // Entry 622 + -0x1.e87d3ddf5d974d08f4dd58fe2cb62a75p-1, + -0x1.69174cp0 + }, + { // Entry 623 + 0x1.e87d3ddf5d974d08f4dd58fe2cb62a75p-1, + 0x1.69174cp0 + }, + { // Entry 624 + -0x1.b6adddfcb60791bdfa29e43ae237526cp-1, + -0x1.277028p0 + }, + { // Entry 625 + 0x1.b6adddfcb60791bdfa29e43ae237526cp-1, + 0x1.277028p0 + }, + { // Entry 626 + -0x1.76856ea18da195176e0ece2cba9470a9p-1, + -0x1.cb920ap-1 + }, + { // Entry 627 + 0x1.76856ea18da195176e0ece2cba9470a9p-1, + 0x1.cb920ap-1 + }, + { // Entry 628 + -0x1.23e72757057c5809379a3139ba87791dp-1, + -0x1.4843c4p-1 + }, + { // Entry 629 + 0x1.23e72757057c5809379a3139ba87791dp-1, + 0x1.4843c4p-1 + }, + { // Entry 630 + -0x1.780c6b4190a4c02ec686d865d59869c8p-2, + -0x1.89eafcp-2 + }, + { // Entry 631 + 0x1.780c6b4190a4c02ec686d865d59869c8p-2, + 0x1.89eafcp-2 + }, + { // Entry 632 + -0x1.052ffe90feb23c1016d89c3f01bc9e1fp-3, + -0x1.069ce0p-3 + }, + { // Entry 633 + 0x1.052ffe90feb23c1016d89c3f01bc9e1fp-3, + 0x1.069ce0p-3 + }, + { // Entry 634 + 0x1.052f5948b6d5f860bd33815fb4292679p-3, + 0x1.069c38p-3 + }, + { // Entry 635 + -0x1.052f5948b6d5f860bd33815fb4292679p-3, + -0x1.069c38p-3 + }, + { // Entry 636 + 0x1.780c22159221d1976cc58c067c712c12p-2, + 0x1.89eaa8p-2 + }, + { // Entry 637 + -0x1.780c22159221d1976cc58c067c712c12p-2, + -0x1.89eaa8p-2 + }, + { // Entry 638 + 0x1.23e709933aec019daf9a653afa37bd56p-1, + 0x1.48439ap-1 + }, + { // Entry 639 + -0x1.23e709933aec019daf9a653afa37bd56p-1, + -0x1.48439ap-1 + }, + { // Entry 640 + 0x1.7685575f043fc937570fbcd679218a9ep-1, + 0x1.cb91e0p-1 + }, + { // Entry 641 + -0x1.7685575f043fc937570fbcd679218a9ep-1, + -0x1.cb91e0p-1 + }, + { // Entry 642 + 0x1.b6adccd55525b9c5503e0cdc8d37e90ep-1, + 0x1.277014p0 + }, + { // Entry 643 + -0x1.b6adccd55525b9c5503e0cdc8d37e90ep-1, + -0x1.277014p0 + }, + { // Entry 644 + 0x1.e87d307e1763e6189f33adfb0e8068c9p-1, + 0x1.691738p0 + }, + { // Entry 645 + -0x1.e87d307e1763e6189f33adfb0e8068c9p-1, + -0x1.691738p0 + }, + { // Entry 646 + 0x1.07cbfcdfaa6996b12b44434dca3635e9p0, + 0x1.aabe5cp0 + }, + { // Entry 647 + -0x1.07cbfcdfaa6996b12b44434dca3635e9p0, + -0x1.aabe5cp0 + }, + { // Entry 648 + 0x1.1762c4ec13567bd7f5f799b650139ef2p0, + 0x1.ec6580p0 + }, + { // Entry 649 + -0x1.1762c4ec13567bd7f5f799b650139ef2p0, + -0x1.ec6580p0 + }, + { // Entry 650 + 0x1.2404be9ae9b56a1e7b93aab429a437dcp0, + 0x1.170652p1 + }, + { // Entry 651 + -0x1.2404be9ae9b56a1e7b93aab429a437dcp0, + -0x1.170652p1 + }, + { // Entry 652 + 0x1.2e6a766d02ca49766b8c5e064edd330ap0, + 0x1.37d9e4p1 + }, + { // Entry 653 + -0x1.2e6a766d02ca49766b8c5e064edd330ap0, + -0x1.37d9e4p1 + }, + { // Entry 654 + 0x1.37189d65ba6a203671b78263ea59150ep0, + 0x1.58ad76p1 + }, + { // Entry 655 + -0x1.37189d65ba6a203671b78263ea59150ep0, + -0x1.58ad76p1 + }, + { // Entry 656 + 0x1.3e6fbb2131bc83fb7bb1680528d88125p0, + 0x1.798108p1 + }, + { // Entry 657 + -0x1.3e6fbb2131bc83fb7bb1680528d88125p0, + -0x1.798108p1 + }, + { // Entry 658 + 0x1.44b710cf357eefd513350249454692fep0, + 0x1.9a549ap1 + }, + { // Entry 659 + -0x1.44b710cf357eefd513350249454692fep0, + -0x1.9a549ap1 + }, + { // Entry 660 + 0x1.4a24076ac744c5d206c4362f0a81c539p0, + 0x1.bb282cp1 + }, + { // Entry 661 + -0x1.4a24076ac744c5d206c4362f0a81c539p0, + -0x1.bb282cp1 + }, + { // Entry 662 + 0x1.4edf4341eeb190f38d0f628df7c0f39cp0, + 0x1.dbfbbep1 + }, + { // Entry 663 + -0x1.4edf4341eeb190f38d0f628df7c0f39cp0, + -0x1.dbfbbep1 + }, + { // Entry 664 + 0x1.53082389d4de0bf0033c96e02e4ce915p0, + 0x1.fccf50p1 + }, + { // Entry 665 + -0x1.53082389d4de0bf0033c96e02e4ce915p0, + -0x1.fccf50p1 + }, + { // Entry 666 + 0x1.56b732f9ebf592c0c94096bc1ed28a6bp0, + 0x1.0ed170p2 + }, + { // Entry 667 + -0x1.56b732f9ebf592c0c94096bc1ed28a6bp0, + -0x1.0ed170p2 + }, + { // Entry 668 + 0x1.59ffe268d6801ace03f3d195dcfe7b03p0, + 0x1.1f3b38p2 + }, + { // Entry 669 + -0x1.59ffe268d6801ace03f3d195dcfe7b03p0, + -0x1.1f3b38p2 + }, + { // Entry 670 + 0x1.5cf1c510a2c51231c77aeb5bcfdb18f6p0, + 0x1.2fa5p2 + }, + { // Entry 671 + -0x1.5cf1c510a2c51231c77aeb5bcfdb18f6p0, + -0x1.2fa5p2 + }, + { // Entry 672 + 0x1.5f99775fdcea19d02889374d890664b5p0, + 0x1.400ec8p2 + }, + { // Entry 673 + -0x1.5f99775fdcea19d02889374d890664b5p0, + -0x1.400ec8p2 + }, + { // Entry 674 + 0x1.620148e37eeeed056aad41e79a62c2c1p0, + 0x1.507890p2 + }, + { // Entry 675 + -0x1.620148e37eeeed056aad41e79a62c2c1p0, + -0x1.507890p2 + }, + { // Entry 676 + 0x1.6431bb181361216275b0d203a9331c13p0, + 0x1.60e258p2 + }, + { // Entry 677 + -0x1.6431bb181361216275b0d203a9331c13p0, + -0x1.60e258p2 + }, + { // Entry 678 + 0x1.6631e1326b64f0282c465af90d9d3bd9p0, + 0x1.714c20p2 + }, + { // Entry 679 + -0x1.6631e1326b64f0282c465af90d9d3bd9p0, + -0x1.714c20p2 + }, + { // Entry 680 + 0x1.6807a948166caac881ad676127631903p0, + 0x1.81b5e8p2 + }, + { // Entry 681 + -0x1.6807a948166caac881ad676127631903p0, + -0x1.81b5e8p2 + }, + { // Entry 682 + 0x1.ef652bd0a90c724b11a56d2fd671af31p-5, + 0x1.effffep-5 + }, + { // Entry 683 + -0x1.ef652bd0a90c724b11a56d2fd671af31p-5, + -0x1.effffep-5 + }, + { // Entry 684 + 0x1.ef652dceca4dbeb14ee907159dd1c369p-5, + 0x1.f0p-5 + }, + { // Entry 685 + -0x1.ef652dceca4dbeb14ee907159dd1c369p-5, + -0x1.f0p-5 + }, + { // Entry 686 + 0x1.ef652fcceb8f073ec7ec4e0d20bb7bfbp-5, + 0x1.f00002p-5 + }, + { // Entry 687 + -0x1.ef652fcceb8f073ec7ec4e0d20bb7bfbp-5, + -0x1.f00002p-5 + }, + { // Entry 688 + 0x1.f57aae2e668fcd953f95c1400b66f69ap-4, + 0x1.f7fffep-4 + }, + { // Entry 689 + -0x1.f57aae2e668fcd953f95c1400b66f69ap-4, + -0x1.f7fffep-4 + }, + { // Entry 690 + 0x1.f57ab026c3a8fc7b278a06e9d0c43e3ap-4, + 0x1.f8p-4 + }, + { // Entry 691 + -0x1.f57ab026c3a8fc7b278a06e9d0c43e3ap-4, + -0x1.f8p-4 + }, + { // Entry 692 + 0x1.f57ab21f20c21c186f960384371cb174p-4, + 0x1.f80002p-4 + }, + { // Entry 693 + -0x1.f57ab21f20c21c186f960384371cb174p-4, + -0x1.f80002p-4 + }, + { // Entry 694 + 0x1.49230059e7c45adb8ec67bfb8e8a656bp-3, + 0x1.4bfffep-3 + }, + { // Entry 695 + -0x1.49230059e7c45adb8ec67bfb8e8a656bp-3, + -0x1.4bfffep-3 + }, + { // Entry 696 + 0x1.4923024ccb780f5a7e2ead4e2bd24d33p-3, + 0x1.4cp-3 + }, + { // Entry 697 + -0x1.4923024ccb780f5a7e2ead4e2bd24d33p-3, + -0x1.4cp-3 + }, + { // Entry 698 + 0x1.4923043faf2b9c728ca66011aefa5d95p-3, + 0x1.4c0002p-3 + }, + { // Entry 699 + -0x1.4923043faf2b9c728ca66011aefa5d95p-3, + -0x1.4c0002p-3 + }, + { // Entry 700 + 0x1.2a73a5481536bc5af06b6df4531f2c45p-2, + 0x1.333332p-2 + }, + { // Entry 701 + -0x1.2a73a5481536bc5af06b6df4531f2c45p-2, + -0x1.333332p-2 + }, + { // Entry 702 + 0x1.2a73a71dcec15ae5ead00add4294e754p-2, + 0x1.333334p-2 + }, + { // Entry 703 + -0x1.2a73a71dcec15ae5ead00add4294e754p-2, + -0x1.333334p-2 + }, + { // Entry 704 + 0x1.2a73a8f3884b7828b0c0111255103dc3p-2, + 0x1.333336p-2 + }, + { // Entry 705 + -0x1.2a73a8f3884b7828b0c0111255103dc3p-2, + -0x1.333336p-2 + }, + { // Entry 706 + 0x1.2fc480fa0e88570eda20090113e29e36p-1, + 0x1.594316p-1 + }, + { // Entry 707 + -0x1.2fc480fa0e88570eda20090113e29e36p-1, + -0x1.594316p-1 + }, + { // Entry 708 + 0x1.2fc4825a02d3f974157fe3c500a7defbp-1, + 0x1.594318p-1 + }, + { // Entry 709 + -0x1.2fc4825a02d3f974157fe3c500a7defbp-1, + -0x1.594318p-1 + }, + { // Entry 710 + 0x1.2fc483b9f71e558d99929cc8e5da29dfp-1, + 0x1.59431ap-1 + }, + { // Entry 711 + -0x1.2fc483b9f71e558d99929cc8e5da29dfp-1, + -0x1.59431ap-1 + }, + { // Entry 712 + 0x1.538f567a9ef925d9ba9a4231046e7f2cp-1, + 0x1.8ffffep-1 + }, + { // Entry 713 + -0x1.538f567a9ef925d9ba9a4231046e7f2cp-1, + -0x1.8ffffep-1 + }, + { // Entry 714 + 0x1.538f57b89061eb9122d5096b7cf267ebp-1, + 0x1.90p-1 + }, + { // Entry 715 + -0x1.538f57b89061eb9122d5096b7cf267ebp-1, + -0x1.90p-1 + }, + { // Entry 716 + 0x1.538f58f681c97cc9bd5a1277e9e2f0fbp-1, + 0x1.900002p-1 + }, + { // Entry 717 + -0x1.538f58f681c97cc9bd5a1277e9e2f0fbp-1, + -0x1.900002p-1 + }, + { // Entry 718 + -0.0f, + -0x1.p-149 + }, + { // Entry 719 + 0.0f, + 0x1.p-149 + }, + { // Entry 720 + 0.0, + 0.0 + }, + { // Entry 721 + 0.0f, + 0x1.p-149 + }, + { // Entry 722 + -0.0f, + -0x1.p-149 + }, + { // Entry 723 + 0x1.91cd2399d43fabf90187544276a9fdd6p-5, + 0x1.921fb4p-5 + }, + { // Entry 724 + -0x1.91cd2399d43fabf90187544276a9fdd6p-5, + -0x1.921fb4p-5 + }, + { // Entry 725 + 0x1.91cd2598992e3959b33089adc931af1bp-5, + 0x1.921fb6p-5 + }, + { // Entry 726 + -0x1.91cd2598992e3959b33089adc931af1bp-5, + -0x1.921fb6p-5 + }, + { // Entry 727 + 0x1.91cd27975e1cc39a020e1155956c974ep-5, + 0x1.921fb8p-5 + }, + { // Entry 728 + -0x1.91cd27975e1cc39a020e1155956c974ep-5, + -0x1.921fb8p-5 + }, + { // Entry 729 + 0x1.90d6de7dda04008932bb9dc6d6663dffp-4, + 0x1.921fb4p-4 + }, + { // Entry 730 + -0x1.90d6de7dda04008932bb9dc6d6663dffp-4, + -0x1.921fb4p-4 + }, + { // Entry 731 + 0x1.90d6e078f6c425534a52900d55c07c08p-4, + 0x1.921fb6p-4 + }, + { // Entry 732 + -0x1.90d6e078f6c425534a52900d55c07c08p-4, + -0x1.921fb6p-4 + }, + { // Entry 733 + 0x1.90d6e27413843dc984d6d696c18f157ap-4, + 0x1.921fb8p-4 + }, + { // Entry 734 + -0x1.90d6e27413843dc984d6d696c18f157ap-4, + -0x1.921fb8p-4 + }, + { // Entry 735 + 0x1.8d128d765c163bb2a4684b359bc37b4ap-3, + 0x1.921fb4p-3 + }, + { // Entry 736 + -0x1.8d128d765c163bb2a4684b359bc37b4ap-3, + -0x1.921fb4p-3 + }, + { // Entry 737 + 0x1.8d128f635a6f85e06f888e0887f9908fp-3, + 0x1.921fb6p-3 + }, + { // Entry 738 + -0x1.8d128f635a6f85e06f888e0887f9908fp-3, + -0x1.921fb6p-3 + }, + { // Entry 739 + 0x1.8d12915058c8a173e6b2d7c8cf5f012ap-3, + 0x1.921fb8p-3 + }, + { // Entry 740 + -0x1.8d12915058c8a173e6b2d7c8cf5f012ap-3, + -0x1.921fb8p-3 + }, + { // Entry 741 + 0x1.7f2d690b879f26b1634350104478a209p-2, + 0x1.921fb4p-2 + }, + { // Entry 742 + -0x1.7f2d690b879f26b1634350104478a209p-2, + -0x1.921fb4p-2 + }, + { // Entry 743 + 0x1.7f2d6ac71f4b19b38cf78bbadec1435ap-2, + 0x1.921fb6p-2 + }, + { // Entry 744 + -0x1.7f2d6ac71f4b19b38cf78bbadec1435ap-2, + -0x1.921fb6p-2 + }, + { // Entry 745 + 0x1.7f2d6c82b6f675c92c9dfa635f318ed7p-2, + 0x1.921fb8p-2 + }, + { // Entry 746 + -0x1.7f2d6c82b6f675c92c9dfa635f318ed7p-2, + -0x1.921fb8p-2 + }, + { // Entry 747 + 0x1.54e04b3d43589d0cc0bd332c6a822ecfp-1, + 0x1.921fb4p-1 + }, + { // Entry 748 + -0x1.54e04b3d43589d0cc0bd332c6a822ecfp-1, + -0x1.921fb4p-1 + }, + { // Entry 749 + 0x1.54e04c79ed9a93b01c6a9062dbd8e0ffp-1, + 0x1.921fb6p-1 + }, + { // Entry 750 + -0x1.54e04c79ed9a93b01c6a9062dbd8e0ffp-1, + -0x1.921fb6p-1 + }, + { // Entry 751 + 0x1.54e04db697db56ae489f89986a14a1b7p-1, + 0x1.921fb8p-1 + }, + { // Entry 752 + -0x1.54e04db697db56ae489f89986a14a1b7p-1, + -0x1.921fb8p-1 + }, + { // Entry 753 + 0x1.00fe98214bd47b0727cef70af68aceeep0, + 0x1.921fb4p0 + }, + { // Entry 754 + -0x1.00fe98214bd47b0727cef70af68aceeep0, + -0x1.921fb4p0 + }, + { // Entry 755 + 0x1.00fe98b4f50d8b3c36b9e2a180d97eeap0, + 0x1.921fb6p0 + }, + { // Entry 756 + -0x1.00fe98b4f50d8b3c36b9e2a180d97eeap0, + -0x1.921fb6p0 + }, + { // Entry 757 + 0x1.00fe99489e458fdeaf9be968cab6da63p0, + 0x1.921fb8p0 + }, + { // Entry 758 + -0x1.00fe99489e458fdeaf9be968cab6da63p0, + -0x1.921fb8p0 + }, + { // Entry 759 + 0x1.433b89f683ed7fa5817d865f4f40b772p0, + 0x1.921fb4p1 + }, + { // Entry 760 + -0x1.433b89f683ed7fa5817d865f4f40b772p0, + -0x1.921fb4p1 + }, + { // Entry 761 + 0x1.433b8a54b916d7eb27cee6293066e9f6p0, + 0x1.921fb6p1 + }, + { // Entry 762 + -0x1.433b8a54b916d7eb27cee6293066e9f6p0, + -0x1.921fb6p1 + }, + { // Entry 763 + 0x1.433b8ab2ee3f565d04344459852fbcf4p0, + 0x1.921fb8p1 + }, + { // Entry 764 + -0x1.433b8ab2ee3f565d04344459852fbcf4p0, + -0x1.921fb8p1 + }, + { // Entry 765 + 0x1.69b8152ba44a49cab381a82d3efbf702p0, + 0x1.921fb4p2 + }, + { // Entry 766 + -0x1.69b8152ba44a49cab381a82d3efbf702p0, + -0x1.921fb4p2 + }, + { // Entry 767 + 0x1.69b8155e3c934e6ce63a344b2956ab50p0, + 0x1.921fb6p2 + }, + { // Entry 768 + -0x1.69b8155e3c934e6ce63a344b2956ab50p0, + -0x1.921fb6p2 + }, + { // Entry 769 + 0x1.69b81590d4dbd567331c0dc4b7fd047bp0, + 0x1.921fb8p2 + }, + { // Entry 770 + -0x1.69b81590d4dbd567331c0dc4b7fd047bp0, + -0x1.921fb8p2 + }, + { // Entry 771 + 0x1.7dcb7c4be6b4be644d7db098c68e6e5ep0, + 0x1.921fb4p3 + }, + { // Entry 772 + -0x1.7dcb7c4be6b4be644d7db098c68e6e5ep0, + -0x1.921fb4p3 + }, + { // Entry 773 + 0x1.7dcb7c65ad1b3ccb7360f1b9b77bc510p0, + 0x1.921fb6p3 + }, + { // Entry 774 + -0x1.7dcb7c65ad1b3ccb7360f1b9b77bc510p0, + -0x1.921fb6p3 + }, + { // Entry 775 + 0x1.7dcb7c7f738179f9a5848bd2f6ea74p0, + 0x1.921fb8p3 + }, + { // Entry 776 + -0x1.7dcb7c7f738179f9a5848bd2f6ea74p0, + -0x1.921fb8p3 + }, + { // Entry 777 + 0x1.87f17cf56d5854572d8ed4b6d7629cb7p0, + 0x1.921fb4p4 + }, + { // Entry 778 + -0x1.87f17cf56d5854572d8ed4b6d7629cb7p0, + -0x1.921fb4p4 + }, + { // Entry 779 + 0x1.87f17d026030951388edff604c5b31acp0, + 0x1.921fb6p4 + }, + { // Entry 780 + -0x1.87f17d026030951388edff604c5b31acp0, + -0x1.921fb6p4 + }, + { // Entry 781 + 0x1.87f17d0f5308b4e40d66884bfda71f16p0, + 0x1.921fb8p4 + }, + { // Entry 782 + -0x1.87f17d0f5308b4e40d66884bfda71f16p0, + -0x1.921fb8p4 + }, + { // Entry 783 + 0x1.8d08152ac2c9f80510b67fe8688fe00bp0, + 0x1.921fb4p5 + }, + { // Entry 784 + -0x1.8d08152ac2c9f80510b67fe8688fe00bp0, + -0x1.921fb4p5 + }, + { // Entry 785 + 0x1.8d0815313e2db1236b7416aaf31784edp0, + 0x1.921fb6p5 + }, + { // Entry 786 + -0x1.8d0815313e2db1236b7416aaf31784edp0, + -0x1.921fb6p5 + }, + { // Entry 787 + 0x1.8d081537b99159c1d87b49089b46259bp0, + 0x1.921fb8p5 + }, + { // Entry 788 + -0x1.8d081537b99159c1d87b49089b46259bp0, + -0x1.921fb8p5 + }, + { // Entry 789 + 0x1.8f93d4b57dde1ae888776df959240a29p0, + 0x1.921fb4p6 + }, + { // Entry 790 + -0x1.8f93d4b57dde1ae888776df959240a29p0, + -0x1.921fb4p6 + }, + { // Entry 791 + 0x1.8f93d4b8bbcf027a20c8f2f1496ed581p0, + 0x1.921fb6p6 + }, + { // Entry 792 + -0x1.8f93d4b8bbcf027a20c8f2f1496ed581p0, + -0x1.921fb6p6 + }, + { // Entry 793 + 0x1.8f93d4bbf9bfe1ca81404ffb114601efp0, + 0x1.921fb8p6 + }, + { // Entry 794 + -0x1.8f93d4bbf9bfe1ca81404ffb114601efp0, + -0x1.921fb8p6 + }, + { // Entry 795 + 0x1.90d9c2ec819f17b4d8062df65c79686ep0, + 0x1.921fb4p7 + }, + { // Entry 796 + -0x1.90d9c2ec819f17b4d8062df65c79686ep0, + -0x1.921fb4p7 + }, + { // Entry 797 + 0x1.90d9c2ee209f6d9d910babe7f62e7a71p0, + 0x1.921fb6p7 + }, + { // Entry 798 + -0x1.90d9c2ee209f6d9d910babe7f62e7a71p0, + -0x1.921fb6p7 + }, + { // Entry 799 + 0x1.90d9c2efbf9fbf6585fe7f879e30cb27p0, + 0x1.921fb8p7 + }, + { // Entry 800 + -0x1.90d9c2efbf9fbf6585fe7f879e30cb27p0, + -0x1.921fb8p7 + }, + { // Entry 801 + 0x1.2b5f4a1f186a4f4cce84633d4e88c6e3p0, + 0x1.2d97c4p1 + }, + { // Entry 802 + -0x1.2b5f4a1f186a4f4cce84633d4e88c6e3p0, + -0x1.2d97c4p1 + }, + { // Entry 803 + 0x1.2b5f4abb6450cfe394b11d0190b012a2p0, + 0x1.2d97c6p1 + }, + { // Entry 804 + -0x1.2b5f4abb6450cfe394b11d0190b012a2p0, + -0x1.2d97c6p1 + }, + { // Entry 805 + 0x1.2b5f4b57b0358ecd5c4ef2cf8eeca8b5p0, + 0x1.2d97c8p1 + }, + { // Entry 806 + -0x1.2b5f4b57b0358ecd5c4ef2cf8eeca8b5p0, + -0x1.2d97c8p1 + }, + { // Entry 807 + 0x1.524a69ac739be8aa44819da2c46ddeffp0, + 0x1.f6a7a0p1 + }, + { // Entry 808 + -0x1.524a69ac739be8aa44819da2c46ddeffp0, + -0x1.f6a7a0p1 + }, + { // Entry 809 + 0x1.524a69eacf4f30dd7930094c2c5422fap0, + 0x1.f6a7a2p1 + }, + { // Entry 810 + -0x1.524a69eacf4f30dd7930094c2c5422fap0, + -0x1.f6a7a2p1 + }, + { // Entry 811 + 0x1.524a6a292b0201c41df76f9856ea793ep0, + 0x1.f6a7a4p1 + }, + { // Entry 812 + -0x1.524a6a292b0201c41df76f9856ea793ep0, + -0x1.f6a7a4p1 + }, + { // Entry 813 + 0x1.5c97d2cf4d47c39e1d3362c5c6cb465ep0, + 0x1.2d97c4p2 + }, + { // Entry 814 + -0x1.5c97d2cf4d47c39e1d3362c5c6cb465ep0, + -0x1.2d97c4p2 + }, + { // Entry 815 + 0x1.5c97d3278d78828714e1db373c01c428p0, + 0x1.2d97c6p2 + }, + { // Entry 816 + -0x1.5c97d3278d78828714e1db373c01c428p0, + -0x1.2d97c6p2 + }, + { // Entry 817 + 0x1.5c97d37fcda822b612cc305acdb3719ap0, + 0x1.2d97c8p2 + }, + { // Entry 818 + -0x1.5c97d37fcda822b612cc305acdb3719ap0, + -0x1.2d97c8p2 + }, + { // Entry 819 + 0x1.64102f6fe89978879ec1eb938127f347p0, + 0x1.5fdbbcp2 + }, + { // Entry 820 + -0x1.64102f6fe89978879ec1eb938127f347p0, + -0x1.5fdbbcp2 + }, + { // Entry 821 + 0x1.64102fb17ee4bd784c0bc3c4b87b12dbp0, + 0x1.5fdbbep2 + }, + { // Entry 822 + -0x1.64102fb17ee4bd784c0bc3c4b87b12dbp0, + -0x1.5fdbbep2 + }, + { // Entry 823 + 0x1.64102ff3152f49a5b25bbbed0e298789p0, + 0x1.5fdbc0p2 + }, + { // Entry 824 + -0x1.64102ff3152f49a5b25bbbed0e298789p0, + -0x1.5fdbc0p2 + }, + { // Entry 825 + 0x1.6e256157f08af28f8fbcb2f100b427b2p0, + 0x1.c463a8p2 + }, + { // Entry 826 + -0x1.6e256157f08af28f8fbcb2f100b427b2p0, + -0x1.c463a8p2 + }, + { // Entry 827 + 0x1.6e2561801fc98949e471b87dd9e165adp0, + 0x1.c463aap2 + }, + { // Entry 828 + -0x1.6e2561801fc98949e471b87dd9e165adp0, + -0x1.c463aap2 + }, + { // Entry 829 + 0x1.6e2561a84f07c6d78f351f778ca48ee1p0, + 0x1.c463acp2 + }, + { // Entry 830 + -0x1.6e2561a84f07c6d78f351f778ca48ee1p0, + -0x1.c463acp2 + }, + { // Entry 831 + 0x1.71b40fe4d6264f6dcb5aa93d81eee334p0, + 0x1.f6a7a0p2 + }, + { // Entry 832 + -0x1.71b40fe4d6264f6dcb5aa93d81eee334p0, + -0x1.f6a7a0p2 + }, + { // Entry 833 + 0x1.71b4100581ff6df4d0e43adc1c6df394p0, + 0x1.f6a7a2p2 + }, + { // Entry 834 + -0x1.71b4100581ff6df4d0e43adc1c6df394p0, + -0x1.f6a7a2p2 + }, + { // Entry 835 + 0x1.71b410262dd84afcf6128b00223864d4p0, + 0x1.f6a7a4p2 + }, + { // Entry 836 + -0x1.71b410262dd84afcf6128b00223864d4p0, + -0x1.f6a7a4p2 + }, + { // Entry 837 + 0x1.749f95c28655e27185bdf7611bf6dabap0, + 0x1.1475cap3 + }, + { // Entry 838 + -0x1.749f95c28655e27185bdf7611bf6dabap0, + -0x1.1475cap3 + }, + { // Entry 839 + 0x1.749f95f8ad42bfc84cd821638d05272ep0, + 0x1.1475ccp3 + }, + { // Entry 840 + -0x1.749f95f8ad42bfc84cd821638d05272ep0, + -0x1.1475ccp3 + }, + { // Entry 841 + 0x1.749f962ed42ed732156103090043fe20p0, + 0x1.1475cep3 + }, + { // Entry 842 + -0x1.749f962ed42ed732156103090043fe20p0, + -0x1.1475cep3 + }, + { // Entry 843 + 0x1.77100a61d11bd3683ef7f13e0e2d3714p0, + 0x1.2d97c4p3 + }, + { // Entry 844 + -0x1.77100a61d11bd3683ef7f13e0e2d3714p0, + -0x1.2d97c4p3 + }, + { // Entry 845 + 0x1.77100a8f6a77d25e60c8ac6b368ced7cp0, + 0x1.2d97c6p3 + }, + { // Entry 846 + -0x1.77100a8f6a77d25e60c8ac6b368ced7cp0, + -0x1.2d97c6p3 + }, + { // Entry 847 + 0x1.77100abd03d3383b200c349a288d0858p0, + 0x1.2d97c8p3 + }, + { // Entry 848 + -0x1.77100abd03d3383b200c349a288d0858p0, + -0x1.2d97c8p3 + }, + { // Entry 849 + 0x1.79216b54e7690f5dc60c9f9ad18c2fe4p0, + 0x1.46b9c0p3 + }, + { // Entry 850 + -0x1.79216b54e7690f5dc60c9f9ad18c2fe4p0, + -0x1.46b9c0p3 + }, + { // Entry 851 + 0x1.79216b7bd2590ebc8160a2e2288b213cp0, + 0x1.46b9c2p3 + }, + { // Entry 852 + -0x1.79216b7bd2590ebc8160a2e2288b213cp0, + -0x1.46b9c2p3 + }, + { // Entry 853 + 0x1.79216ba2bd48954acc47fb24366389dcp0, + 0x1.46b9c4p3 + }, + { // Entry 854 + -0x1.79216ba2bd48954acc47fb24366389dcp0, + -0x1.46b9c4p3 + }, + { // Entry 855 + 0x1.7ae7d7b9fff1b8fc1a190cb09ec19212p0, + 0x1.5fdbbcp3 + }, + { // Entry 856 + -0x1.7ae7d7b9fff1b8fc1a190cb09ec19212p0, + -0x1.5fdbbcp3 + }, + { // Entry 857 + 0x1.7ae7d7db99b1b48f74a47550dd2775fbp0, + 0x1.5fdbbep3 + }, + { // Entry 858 + -0x1.7ae7d7db99b1b48f74a47550dd2775fbp0, + -0x1.5fdbbep3 + }, + { // Entry 859 + 0x1.7ae7d7fd33714f26d256bae7b8da269cp0, + 0x1.5fdbc0p3 + }, + { // Entry 860 + -0x1.7ae7d7fd33714f26d256bae7b8da269cp0, + -0x1.5fdbc0p3 + }, + { // Entry 861 + 0x1.7c72243c821084a80ce5911f6e3dea5dp0, + 0x1.78fdb6p3 + }, + { // Entry 862 + -0x1.7c72243c821084a80ce5911f6e3dea5dp0, + -0x1.78fdb6p3 + }, + { // Entry 863 + 0x1.7c722459cf137ac258c3b7237604e08ep0, + 0x1.78fdb8p3 + }, + { // Entry 864 + -0x1.7c722459cf137ac258c3b7237604e08ep0, + -0x1.78fdb8p3 + }, + { // Entry 865 + 0x1.7c7224771c1621d7d010891cc6cbd91ep0, + 0x1.78fdbap3 + }, + { // Entry 866 + -0x1.7c7224771c1621d7d010891cc6cbd91ep0, + -0x1.78fdbap3 + }, + { // Entry 867 + 0x1.7efc70fef0079d0f48b6d9402b26d905p0, + 0x1.ab41aep3 + }, + { // Entry 868 + -0x1.7efc70fef0079d0f48b6d9402b26d905p0, + -0x1.ab41aep3 + }, + { // Entry 869 + 0x1.7efc7115c92ed7b4199c4707127cb54bp0, + 0x1.ab41b0p3 + }, + { // Entry 870 + -0x1.7efc7115c92ed7b4199c4707127cb54bp0, + -0x1.ab41b0p3 + }, + { // Entry 871 + 0x1.7efc712ca255dbe487b8a2707e7c0319p0, + 0x1.ab41b2p3 + }, + { // Entry 872 + -0x1.7efc712ca255dbe487b8a2707e7c0319p0, + -0x1.ab41b2p3 + }, + { // Entry 873 + 0x1.800bb137f9715ad622aff2aea130dce0p0, + 0x1.c463a8p3 + }, + { // Entry 874 + -0x1.800bb137f9715ad622aff2aea130dce0p0, + -0x1.c463a8p3 + }, + { // Entry 875 + 0x1.800bb14c5de3a50924516807a2acf3fep0, + 0x1.c463aap3 + }, + { // Entry 876 + -0x1.800bb14c5de3a50924516807a2acf3fep0, + -0x1.c463aap3 + }, + { // Entry 877 + 0x1.800bb160c255c14e4e27ff1409d422e3p0, + 0x1.c463acp3 + }, + { // Entry 878 + -0x1.800bb160c255c14e4e27ff1409d422e3p0, + -0x1.c463acp3 + }, + { // Entry 879 + 0x1.80fe86936790bcf875c5fe2fb547d565p0, + 0x1.dd85a4p3 + }, + { // Entry 880 + -0x1.80fe86936790bcf875c5fe2fb547d565p0, + -0x1.dd85a4p3 + }, + { // Entry 881 + 0x1.80fe86a5b758117d0d5619d06ab27318p0, + 0x1.dd85a6p3 + }, + { // Entry 882 + -0x1.80fe86a5b758117d0d5619d06ab27318p0, + -0x1.dd85a6p3 + }, + { // Entry 883 + 0x1.80fe86b8071f3eea18b5b73ff7f2e4a9p0, + 0x1.dd85a8p3 + }, + { // Entry 884 + -0x1.80fe86b8071f3eea18b5b73ff7f2e4a9p0, + -0x1.dd85a8p3 + }, + { // Entry 885 + 0x1.81d92dd9caf1328bc6b375143237cb0fp0, + 0x1.f6a7a0p3 + }, + { // Entry 886 + -0x1.81d92dd9caf1328bc6b375143237cb0fp0, + -0x1.f6a7a0p3 + }, + { // Entry 887 + 0x1.81d92dea5381d18436c91dc15fbc646dp0, + 0x1.f6a7a2p3 + }, + { // Entry 888 + -0x1.81d92dea5381d18436c91dc15fbc646dp0, + -0x1.f6a7a2p3 + }, + { // Entry 889 + 0x1.81d92dfadc124ef0f2477e36e6f68f74p0, + 0x1.f6a7a4p3 + }, + { // Entry 890 + -0x1.81d92dfadc124ef0f2477e36e6f68f74p0, + -0x1.f6a7a4p3 + }, + { // Entry 891 + 0x1.829f168f2426e5aaade6af4c5fde890ap0, + 0x1.07e4ccp4 + }, + { // Entry 892 + -0x1.829f168f2426e5aaade6af4c5fde890ap0, + -0x1.07e4ccp4 + }, + { // Entry 893 + 0x1.829f16ad2528616b825b97261b82b069p0, + 0x1.07e4cep4 + }, + { // Entry 894 + -0x1.829f16ad2528616b825b97261b82b069p0, + -0x1.07e4cep4 + }, + { // Entry 895 + 0x1.829f16cb2629692c853c96842a0be987p0, + 0x1.07e4d0p4 + }, + { // Entry 896 + -0x1.829f16cb2629692c853c96842a0be987p0, + -0x1.07e4d0p4 + }, + { // Entry 897 + 0x1.835311a12459455ac82eb15660927ea8p0, + 0x1.1475cap4 + }, + { // Entry 898 + -0x1.835311a12459455ac82eb15660927ea8p0, + -0x1.1475cap4 + }, + { // Entry 899 + 0x1.835311bc7d3a944a470489a7e4d79c89p0, + 0x1.1475ccp4 + }, + { // Entry 900 + -0x1.835311bc7d3a944a470489a7e4d79c89p0, + -0x1.1475ccp4 + }, + { // Entry 901 + 0x1.835311d7d61b7e454afbda6fc3780f9bp0, + 0x1.1475cep4 + }, + { // Entry 902 + -0x1.835311d7d61b7e454afbda6fc3780f9bp0, + -0x1.1475cep4 + }, + { // Entry 903 + 0x1.83f772fb8c656bf286bfb98e1b6c2297p0, + 0x1.2106c8p4 + }, + { // Entry 904 + -0x1.83f772fb8c656bf286bfb98e1b6c2297p0, + -0x1.2106c8p4 + }, + { // Entry 905 + 0x1.83f77314938eb6f209e9d6f162ceb218p0, + 0x1.2106cap4 + }, + { // Entry 906 + -0x1.83f77314938eb6f209e9d6f162ceb218p0, + -0x1.2106cap4 + }, + { // Entry 907 + 0x1.83f7732d9ab7a98acc60db819db81050p0, + 0x1.2106ccp4 + }, + { // Entry 908 + -0x1.83f7732d9ab7a98acc60db819db81050p0, + -0x1.2106ccp4 + }, + { // Entry 909 + 0x1.848e2bbf112b7c2876657a2a86df9912p0, + 0x1.2d97c4p4 + }, + { // Entry 910 + -0x1.848e2bbf112b7c2876657a2a86df9912p0, + -0x1.2d97c4p4 + }, + { // Entry 911 + 0x1.848e2bd60efe2b9612b5fc806fd418d9p0, + 0x1.2d97c6p4 + }, + { // Entry 912 + -0x1.848e2bd60efe2b9612b5fc806fd418d9p0, + -0x1.2d97c6p4 + }, + { // Entry 913 + 0x1.848e2bed0cd08d2b9a9efc0954153c48p0, + 0x1.2d97c8p4 + }, + { // Entry 914 + -0x1.848e2bed0cd08d2b9a9efc0954153c48p0, + -0x1.2d97c8p4 + }, + { // Entry 915 + 0x1.8518de24fb5e23b2ff0cc417b338f410p0, + 0x1.3a28c2p4 + }, + { // Entry 916 + -0x1.8518de24fb5e23b2ff0cc417b338f410p0, + -0x1.3a28c2p4 + }, + { // Entry 917 + 0x1.8518de3a2cef8f1d8eb840c195f7aec6p0, + 0x1.3a28c4p4 + }, + { // Entry 918 + -0x1.8518de3a2cef8f1d8eb840c195f7aec6p0, + -0x1.3a28c4p4 + }, + { // Entry 919 + 0x1.8518de4f5e80b5a144ccb442286993f2p0, + 0x1.3a28c6p4 + }, + { // Entry 920 + -0x1.8518de4f5e80b5a144ccb442286993f2p0, + -0x1.3a28c6p4 + }, + { // Entry 921 + 0x1.8598ec14f4559fb7ce6f97f8b0ce9772p0, + 0x1.46b9c0p4 + }, + { // Entry 922 + -0x1.8598ec14f4559fb7ce6f97f8b0ce9772p0, + -0x1.46b9c0p4 + }, + { // Entry 923 + 0x1.8598ec288d8e61a24f31637379503fc5p0, + 0x1.46b9c2p4 + }, + { // Entry 924 + -0x1.8598ec288d8e61a24f31637379503fc5p0, + -0x1.46b9c2p4 + }, + { // Entry 925 + 0x1.8598ec3c26c6e645d117b0b4d0b90716p0, + 0x1.46b9c4p4 + }, + { // Entry 926 + -0x1.8598ec3c26c6e645d117b0b4d0b90716p0, + -0x1.46b9c4p4 + }, + { // Entry 927 + 0x1.860f835398d37040ddc2d7017bf92099p0, + 0x1.534abep4 + }, + { // Entry 928 + -0x1.860f835398d37040ddc2d7017bf92099p0, + -0x1.534abep4 + }, + { // Entry 929 + 0x1.860f8365c617d586a14b44930af2704ap0, + 0x1.534ac0p4 + }, + { // Entry 930 + -0x1.860f8365c617d586a14b44930af2704ap0, + -0x1.534ac0p4 + }, + { // Entry 931 + 0x1.860f8377f35c040fc41230db2834a379p0, + 0x1.534ac2p4 + }, + { // Entry 932 + -0x1.860f8377f35c040fc41230db2834a379p0, + -0x1.534ac2p4 + }, + { // Entry 933 + 0x1.867da6b26f9ac2fa4c1d70b7532cb6aep0, + 0x1.5fdbbcp4 + }, + { // Entry 934 + -0x1.867da6b26f9ac2fa4c1d70b7532cb6aep0, + -0x1.5fdbbcp4 + }, + { // Entry 935 + 0x1.867da6c3571aaf0e97b75fd8102e312ap0, + 0x1.5fdbbep4 + }, + { // Entry 936 + -0x1.867da6c3571aaf0e97b75fd8102e312ap0, + -0x1.5fdbbep4 + }, + { // Entry 937 + 0x1.867da6d43e9a6a0ab844221559e0ca4ep0, + 0x1.5fdbc0p4 + }, + { // Entry 938 + -0x1.867da6d43e9a6a0ab844221559e0ca4ep0, + -0x1.5fdbc0p4 + }, + { // Entry 939 + 0x1.86e4356f9805898eff739bee09b0eb2bp0, + 0x1.6c6cbap4 + }, + { // Entry 940 + -0x1.86e4356f9805898eff739bee09b0eb2bp0, + -0x1.6c6cbap4 + }, + { // Entry 941 + 0x1.86e4357f5ac86b81453a4b9f1ab42ac2p0, + 0x1.6c6cbcp4 + }, + { // Entry 942 + -0x1.86e4357f5ac86b81453a4b9f1ab42ac2p0, + -0x1.6c6cbcp4 + }, + { // Entry 943 + 0x1.86e4358f1d8b21400c5273ab23322cc4p0, + 0x1.6c6cbep4 + }, + { // Entry 944 + -0x1.86e4358f1d8b21400c5273ab23322cc4p0, + -0x1.6c6cbep4 + }, + { // Entry 945 + 0x1.8743f10efa639eaaf405e83f84a991bbp0, + 0x1.78fdb6p4 + }, + { // Entry 946 + -0x1.8743f10efa639eaaf405e83f84a991bbp0, + -0x1.78fdb6p4 + }, + { // Entry 947 + 0x1.8743f11db5201e00fba3693129ceaaadp0, + 0x1.78fdb8p4 + }, + { // Entry 948 + -0x1.8743f11db5201e00fba3693129ceaaadp0, + -0x1.78fdb8p4 + }, + { // Entry 949 + 0x1.8743f12c6fdc75672ff29ccd6d6423ccp0, + 0x1.78fdbap4 + }, + { // Entry 950 + -0x1.8743f12c6fdc75672ff29ccd6d6423ccp0, + -0x1.78fdbap4 + }, + { // Entry 951 + 0x1.879d825ab3fe49f711b2fa09df2c5726p0, + 0x1.858eb4p4 + }, + { // Entry 952 + -0x1.879d825ab3fe49f711b2fa09df2c5726p0, + -0x1.858eb4p4 + }, + { // Entry 953 + 0x1.879d82687fc876212b8475e64de596a4p0, + 0x1.858eb6p4 + }, + { // Entry 954 + -0x1.879d82687fc876212b8475e64de596a4p0, + -0x1.858eb6p4 + }, + { // Entry 955 + 0x1.879d82764b927e1728ed144f2db217ebp0, + 0x1.858eb8p4 + }, + { // Entry 956 + -0x1.879d82764b927e1728ed144f2db217ebp0, + -0x1.858eb8p4 + }, + { // Entry 957 + 0x1.921fb54442d18467898cc31701b639a2p0, + 0x1.fffffep62 + }, + { // Entry 958 + -0x1.921fb54442d18467898cc31701b639a2p0, + -0x1.fffffep62 + }, + { // Entry 959 + 0x1.921fb54442d18467898cc51701b839a2p0, + 0x1.p63 + }, + { // Entry 960 + -0x1.921fb54442d18467898cc51701b839a2p0, + -0x1.p63 + }, + { // Entry 961 + 0x1.921fb54442d18467898cc91701b039a2p0, + 0x1.000002p63 + }, + { // Entry 962 + -0x1.921fb54442d18467898cc91701b039a2p0, + -0x1.000002p63 + }, + { // Entry 963 + 0x1.921fb52442d16469896cefc18ce2e42dp0, + 0x1.fffffep26 + }, + { // Entry 964 + -0x1.921fb52442d16469896cefc18ce2e42dp0, + -0x1.fffffep26 + }, + { // Entry 965 + 0x1.921fb52442d18469898cefc1ac62e44cp0, + 0x1.p27 + }, + { // Entry 966 + -0x1.921fb52442d18469898cefc1ac62e44cp0, + -0x1.p27 + }, + { // Entry 967 + 0x1.921fb52442d1c469890cefc2ab62e250p0, + 0x1.000002p27 + }, + { // Entry 968 + -0x1.921fb52442d1c469890cefc2ab62e250p0, + -0x1.000002p27 + }, + { // Entry 969 + 0x1.921fb44442d0846988e21a6c570d8fc4p0, + 0x1.fffffep23 + }, + { // Entry 970 + -0x1.921fb44442d0846988e21a6c570d8fc4p0, + -0x1.fffffep23 + }, + { // Entry 971 + 0x1.921fb44442d1846989e21a6c570d8ec4p0, + 0x1.p24 + }, + { // Entry 972 + -0x1.921fb44442d1846989e21a6c570d8ec4p0, + -0x1.p24 + }, + { // Entry 973 + 0x1.921fb44442d3846985e21a72570d86c4p0, + 0x1.000002p24 + }, + { // Entry 974 + -0x1.921fb44442d3846985e21a72570d86c4p0, + -0x1.000002p24 + }, + { // Entry 975 + 0x1.5368c915ad9354b6c80847a9f514bb75p0, + 0x1.fffffep1 + }, + { // Entry 976 + -0x1.5368c915ad9354b6c80847a9f514bb75p0, + -0x1.fffffep1 + }, + { // Entry 977 + 0x1.5368c951e9cfc9a42e1add5983cfb3a8p0, + 0x1.p2 + }, + { // Entry 978 + -0x1.5368c951e9cfc9a42e1add5983cfb3a8p0, + -0x1.p2 + }, + { // Entry 979 + 0x1.5368c9ca62475f5801ace2839c235895p0, + 0x1.000002p2 + }, + { // Entry 980 + -0x1.5368c9ca62475f5801ace2839c235895p0, + -0x1.000002p2 + }, + { // Entry 981 + 0x1.1b6e18c8557d8e74e5d9704acf91aa45p0, + 0x1.fffffep0 + }, + { // Entry 982 + -0x1.1b6e18c8557d8e74e5d9704acf91aa45p0, + -0x1.fffffep0 + }, + { // Entry 983 + 0x1.1b6e192ebbe446c6d19aa220a39af320p0, + 0x1.p1 + }, + { // Entry 984 + -0x1.1b6e192ebbe446c6d19aa220a39af320p0, + -0x1.p1 + }, + { // Entry 985 + 0x1.1b6e19fb88afcbe58bcd268e23897be3p0, + 0x1.000002p1 + }, + { // Entry 986 + -0x1.1b6e19fb88afcbe58bcd268e23897be3p0, + -0x1.000002p1 + }, + { // Entry 987 + 0x1.921fb44442d1046989621a6c570d8f04p-1, + 0x1.fffffep-1 + }, + { // Entry 988 + -0x1.921fb44442d1046989621a6c570d8f04p-1, + -0x1.fffffep-1 + }, + { // Entry 989 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p0 + }, + { // Entry 990 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p0 + }, + { // Entry 991 + 0x1.921fb74442cf84698ae21a6c570d8d5ep-1, + 0x1.000002p0 + }, + { // Entry 992 + -0x1.921fb74442cf84698ae21a6c570d8d5ep-1, + -0x1.000002p0 + }, + { // Entry 993 + 0x1.dac66ebc821b0b05c115b007ee262f78p-2, + 0x1.fffffep-2 + }, + { // Entry 994 + -0x1.dac66ebc821b0b05c115b007ee262f78p-2, + -0x1.fffffep-2 + }, + { // Entry 995 + 0x1.dac670561bb4f68adfc88bd978751a06p-2, + 0x1.p-1 + }, + { // Entry 996 + -0x1.dac670561bb4f68adfc88bd978751a06p-2, + -0x1.p-1 + }, + { // Entry 997 + 0x1.dac673894ee6e20ffe552cf613035e41p-2, + 0x1.000002p-1 + }, + { // Entry 998 + -0x1.dac673894ee6e20ffe552cf613035e41p-2, + -0x1.000002p-1 + }, + { // Entry 999 + 0x1.f5b75db0e62bd7f064e3887809ade7efp-3, + 0x1.fffffep-3 + }, + { // Entry 1000 + -0x1.f5b75db0e62bd7f064e3887809ade7efp-3, + -0x1.fffffep-3 + }, + { // Entry 1001 + 0x1.f5b75f92c80dd62adb8f3debef442fcbp-3, + 0x1.p-2 + }, + { // Entry 1002 + -0x1.f5b75f92c80dd62adb8f3debef442fcbp-3, + -0x1.p-2 + }, + { // Entry 1003 + 0x1.f5b763568bd1288c4bd4fecdaee28fb5p-3, + 0x1.000002p-2 + }, + { // Entry 1004 + -0x1.f5b763568bd1288c4bd4fecdaee28fb5p-3, + -0x1.000002p-2 + }, + { // Entry 1005 + 0x1.fd5ba7b2a374dc8497123b64b398aae2p-4, + 0x1.fffffep-4 + }, + { // Entry 1006 + -0x1.fd5ba7b2a374dc8497123b64b398aae2p-4, + -0x1.fffffep-4 + }, + { // Entry 1007 + 0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + 0x1.p-3 + }, + { // Entry 1008 + -0x1.fd5ba9aac2f6dc65912f313e7d111defp-4, + -0x1.p-3 + }, + { // Entry 1009 + 0x1.fd5bad9b01faad9eb46ef9bda99d4fdap-4, + 0x1.000002p-3 + }, + { // Entry 1010 + -0x1.fd5bad9b01faad9eb46ef9bda99d4fdap-4, + -0x1.000002p-3 + }, + { // Entry 1011 + 0x1.ff55b974cde098738e59c07aa48dd110p-5, + 0x1.fffffep-5 + }, + { // Entry 1012 + -0x1.ff55b974cde098738e59c07aa48dd110p-5, + -0x1.fffffep-5 + }, + { // Entry 1013 + 0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + 0x1.p-4 + }, + { // Entry 1014 + -0x1.ff55bb72cfde9c6d964f25b81c5c1aa2p-5, + -0x1.p-4 + }, + { // Entry 1015 + 0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + 0x1.000002p-4 + }, + { // Entry 1016 + -0x1.ff55bf6ed3da98798265cc3f27c896c7p-5, + -0x1.000002p-4 + }, + { // Entry 1017 + 0x1.ffd559bb174252032fa3014c0671336cp-6, + 0x1.fffffep-6 + }, + { // Entry 1018 + -0x1.ffd559bb174252032fa3014c0671336cp-6, + -0x1.fffffep-6 + }, + { // Entry 1019 + 0x1.ffd55bba97624a84ef3aeedbb518c427p-6, + 0x1.p-5 + }, + { // Entry 1020 + -0x1.ffd55bba97624a84ef3aeedbb518c427p-6, + -0x1.p-5 + }, + { // Entry 1021 + 0x1.ffd55fb997a23889edd9fb6b2758a63ep-6, + 0x1.000002p-5 + }, + { // Entry 1022 + -0x1.ffd55fb997a23889edd9fb6b2758a63ep-6, + -0x1.000002p-5 + }, + { // Entry 1023 + 0x1.fff553bbd727ab77d118772cd6b96490p-7, + 0x1.fffffep-7 + }, + { // Entry 1024 + -0x1.fff553bbd727ab77d118772cd6b96490p-7, + -0x1.fffffep-7 + }, + { // Entry 1025 + 0x1.fff555bbb729ab77cf18ac802beec090p-7, + 0x1.p-6 + }, + { // Entry 1026 + -0x1.fff555bbb729ab77cf18ac802beec090p-7, + -0x1.p-6 + }, + { // Entry 1027 + 0x1.fff559bb772daab7e316976eceda5473p-7, + 0x1.000002p-6 + }, + { // Entry 1028 + -0x1.fff559bb772daab7e316976eceda5473p-7, + -0x1.000002p-6 + }, + { // Entry 1029 + 0x1.fffffdf5555575bbbb99b72981620cfcp-15, + 0x1.fffffep-15 + }, + { // Entry 1030 + -0x1.fffffdf5555575bbbb99b72981620cfcp-15, + -0x1.fffffep-15 + }, + { // Entry 1031 + 0x1.fffffff5555555bbbbbbb72972976256p-15, + 0x1.p-14 + }, + { // Entry 1032 + -0x1.fffffff5555555bbbbbbb72972976256p-15, + -0x1.p-14 + }, + { // Entry 1033 + 0x1.000001faaaaa8adddd9fdb949681068fp-14, + 0x1.000002p-14 + }, + { // Entry 1034 + -0x1.000001faaaaa8adddd9fdb949681068fp-14, + -0x1.000002p-14 + }, + { // Entry 1035 + 0x1.fffffdfffffffd55555d55554d5bbbbep-28, + 0x1.fffffep-28 + }, + { // Entry 1036 + -0x1.fffffdfffffffd55555d55554d5bbbbep-28, + -0x1.fffffep-28 + }, + { // Entry 1037 + 0x1.fffffffffffffd5555555555555bbbbbp-28, + 0x1.p-27 + }, + { // Entry 1038 + -0x1.fffffffffffffd5555555555555bbbbbp-28, + -0x1.p-27 + }, + { // Entry 1039 + 0x1.000001fffffffeaaaaa2aaaa9aadddd3p-27, + 0x1.000002p-27 + }, + { // Entry 1040 + -0x1.000001fffffffeaaaaa2aaaa9aadddd3p-27, + -0x1.000002p-27 + }, + { // Entry 1041 + 0x1.fffffdfffffffff555557555553555bbp-31, + 0x1.fffffep-31 + }, + { // Entry 1042 + -0x1.fffffdfffffffff555557555553555bbp-31, + -0x1.fffffep-31 + }, + { // Entry 1043 + 0x1.fffffffffffffff555555555555555bbp-31, + 0x1.p-30 + }, + { // Entry 1044 + -0x1.fffffffffffffff555555555555555bbp-31, + -0x1.p-30 + }, + { // Entry 1045 + 0x1.000001fffffffffaaaaa8aaaaa6aaaddp-30, + 0x1.000002p-30 + }, + { // Entry 1046 + -0x1.000001fffffffffaaaaa8aaaaa6aaaddp-30, + -0x1.000002p-30 + }, + { // Entry 1047 + -0x1.921fb54442d18469898cc51701b839a1p0, + -0x1.fffffep127 + }, + { // Entry 1048 + 0x1.921fb54442d18469898cc51701b839a1p0, + 0x1.fffffep127 + }, + { // Entry 1049 + 0x1.921fb54442d18469898cc51701b839a1p0, + 0x1.fffffep127 + }, + { // Entry 1050 + -0x1.921fb54442d18469898cc51701b839a1p0, + -0x1.fffffep127 + }, + { // Entry 1051 + 0x1.921fb54442d18469898cc51701b839a2p0, + HUGE_VALF + }, + { // Entry 1052 + -0x1.921fb54442d18469898cc51701b839a2p0, + -HUGE_VALF + }, + { // Entry 1053 + 0x1.921fb54442d18469898cc51701b839a1p0, + 0x1.fffffep127 + }, + { // Entry 1054 + -0x1.921fb54442d18469898cc51701b839a1p0, + -0x1.fffffep127 + }, + { // Entry 1055 + 0x1.921fb54442d18469898cc51701b839a1p0, + 0x1.fffffcp127 + }, + { // Entry 1056 + -0x1.921fb54442d18469898cc51701b839a1p0, + -0x1.fffffcp127 + }, + { // Entry 1057 + 0x1.433b8a54b916d7eb27cee6293066e9f6p0, + 0x1.921fb6p1 + }, + { // Entry 1058 + -0x1.433b8a54b916d7eb27cee6293066e9f6p0, + -0x1.921fb6p1 + }, + { // Entry 1059 + 0x1.00fe98b4f50d8b3c36b9e2a180d97eeap0, + 0x1.921fb6p0 + }, + { // Entry 1060 + -0x1.00fe98b4f50d8b3c36b9e2a180d97eeap0, + -0x1.921fb6p0 + }, + { // Entry 1061 + 0x1.921fb74442cf84698ae21a6c570d8d5ep-1, + 0x1.000002p0 + }, + { // Entry 1062 + -0x1.921fb74442cf84698ae21a6c570d8d5ep-1, + -0x1.000002p0 + }, + { // Entry 1063 + 0x1.921fb54442d18469898cc51701b839a2p-1, + 0x1.p0 + }, + { // Entry 1064 + -0x1.921fb54442d18469898cc51701b839a2p-1, + -0x1.p0 + }, + { // Entry 1065 + 0x1.921fb44442d1046989621a6c570d8f04p-1, + 0x1.fffffep-1 + }, + { // Entry 1066 + -0x1.921fb44442d1046989621a6c570d8f04p-1, + -0x1.fffffep-1 + }, + { // Entry 1067 + 0x1.54e04c79ed9a93b01c6a9062dbd8e0ffp-1, + 0x1.921fb6p-1 + }, + { // Entry 1068 + -0x1.54e04c79ed9a93b01c6a9062dbd8e0ffp-1, + -0x1.921fb6p-1 + }, + { // Entry 1069 + 0x1.000001ffffffffffffffffffffffffffp-126, + 0x1.000002p-126 + }, + { // Entry 1070 + -0x1.000001ffffffffffffffffffffffffffp-126, + -0x1.000002p-126 + }, + { // Entry 1071 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-126 + }, + { // Entry 1072 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-126 + }, + { // Entry 1073 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.fffffcp-127 + }, + { // Entry 1074 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.fffffcp-127 + }, + { // Entry 1075 + 0x1.fffff7ffffffffffffffffffffffffffp-127, + 0x1.fffff8p-127 + }, + { // Entry 1076 + -0x1.fffff7ffffffffffffffffffffffffffp-127, + -0x1.fffff8p-127 + }, + { // Entry 1077 + 0x1.ffffffffffffffffffffffffffffffffp-149, + 0x1.p-148 + }, + { // Entry 1078 + -0x1.ffffffffffffffffffffffffffffffffp-149, + -0x1.p-148 + }, + { // Entry 1079 + 0.0f, + 0x1.p-149 + }, + { // Entry 1080 + -0.0f, + -0x1.p-149 + }, + { // Entry 1081 + 0.0, + 0.0f + }, + { // Entry 1082 + -0.0, + -0.0f + } +}; diff --git a/tests/math_data/atanh_intel_data.h b/tests/math_data/atanh_intel_data.h new file mode 100644 index 000000000..6b6808b3f --- /dev/null +++ b/tests/math_data/atanh_intel_data.h @@ -0,0 +1,2458 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_atanh_intel_data[] = { + { // Entry 0 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 1 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 2 + -0x1.33c537256ac26ea1b8865a026e72c752p-1, + -0x1.136p-1 + }, + { // Entry 3 + 0x1.33c537256ac26ea1b8865a026e72c752p-1, + 0x1.136p-1 + }, + { // Entry 4 + -0x1.44767fdc853773ecd65b43b0efd1f8d6p-1, + -0x1.1f07c1f07c1f4p-1 + }, + { // Entry 5 + 0x1.44767fdc853773ecd65b43b0efd1f8d6p-1, + 0x1.1f07c1f07c1f4p-1 + }, + { // Entry 6 + -0x1.7761ddbd0573b7ff1d51e300bdb439bep-1, + -0x1.400000010p-1 + }, + { // Entry 7 + 0x1.7761ddbd0573b7ff1d51e300bdb439bep-1, + 0x1.400000010p-1 + }, + { // Entry 8 + -0x1.6259494a4bb397ff89dd84b74e230f31p-2, + -0x1.54d9d811468c2p-2 + }, + { // Entry 9 + 0x1.6259494a4bb397ff89dd84b74e230f31p-2, + 0x1.54d9d811468c2p-2 + }, + { // Entry 10 + -0x1.6719a6fbfef1d7fc326d067903183cddp-2, + -0x1.5911c3a70cebdp-2 + }, + { // Entry 11 + 0x1.6719a6fbfef1d7fc326d067903183cddp-2, + 0x1.5911c3a70cebdp-2 + }, + { // Entry 12 + -0x1.ad75b9841b24e264875483def1610c01p-1, + -0x1.5ece354ff80a2p-1 + }, + { // Entry 13 + 0x1.ad75b9841b24e264875483def1610c01p-1, + 0x1.5ece354ff80a2p-1 + }, + { // Entry 14 + -0x1.c08e6aa55e4172db4c413132b24283edp-1, + -0x1.68ae1ca8f6ad6p-1 + }, + { // Entry 15 + 0x1.c08e6aa55e4172db4c413132b24283edp-1, + 0x1.68ae1ca8f6ad6p-1 + }, + { // Entry 16 + -0x1.d6f10a7081e7ecc4a2d3d9e2371d1cb0p-1, + -0x1.739ce739ce73cp-1 + }, + { // Entry 17 + 0x1.d6f10a7081e7ecc4a2d3d9e2371d1cb0p-1, + 0x1.739ce739ce73cp-1 + }, + { // Entry 18 + -0x1.862796317ed3d7fcb8bec742b2ea5c0bp-2, + -0x1.744f8613c514bp-2 + }, + { // Entry 19 + 0x1.862796317ed3d7fcb8bec742b2ea5c0bp-2, + 0x1.744f8613c514bp-2 + }, + { // Entry 20 + -0x1.8027fe496eaad0006a3df4a7cfc399bap-5, + -0x1.7fdff7fffffffp-5 + }, + { // Entry 21 + 0x1.8027fe496eaad0006a3df4a7cfc399bap-5, + 0x1.7fdff7fffffffp-5 + }, + { // Entry 22 + -0x1.80602a138a48e581b7bf0a1d1f84769fp-10, + -0x1.8060180601ff6p-10 + }, + { // Entry 23 + 0x1.80602a138a48e581b7bf0a1d1f84769fp-10, + 0x1.8060180601ff6p-10 + }, + { // Entry 24 + -0x1.9f323ecbf984c5d61382119eafcddf36p-3, + -0x1.999999999999ap-3 + }, + { // Entry 25 + 0x1.9f323ecbf984c5d61382119eafcddf36p-3, + 0x1.999999999999ap-3 + }, + { // Entry 26 + -0x1.b7c54f4582a8f52cb0434b624cb3140bp-2, + -0x1.9e9703735f652p-2 + }, + { // Entry 27 + 0x1.b7c54f4582a8f52cb0434b624cb3140bp-2, + 0x1.9e9703735f652p-2 + }, + { // Entry 28 + -0x1.ac44a1f923250f86e06d88e6919a1a4fp-24, + -0x1.ac44a1f923238p-24 + }, + { // Entry 29 + 0x1.ac44a1f923250f86e06d88e6919a1a4fp-24, + 0x1.ac44a1f923238p-24 + }, + { // Entry 30 + -0x1.cee62c51688218abca36efcf5f6add63p-2, + -0x1.b1bfa1c2ff5c8p-2 + }, + { // Entry 31 + 0x1.cee62c51688218abca36efcf5f6add63p-2, + 0x1.b1bfa1c2ff5c8p-2 + }, + { // Entry 32 + -0x1.b4c1183827d4a805d64de6f870cd6888p-5, + -0x1.b45746fb45980p-5 + }, + { // Entry 33 + 0x1.b4c1183827d4a805d64de6f870cd6888p-5, + 0x1.b45746fb45980p-5 + }, + { // Entry 34 + -0x1.cd1ce8658f1e27f929bb26f71cf39ep-3, + -0x1.c579d4043e054p-3 + }, + { // Entry 35 + 0x1.cd1ce8658f1e27f929bb26f71cf39ep-3, + 0x1.c579d4043e054p-3 + }, + { // Entry 36 + -0x1.f4b9755f2c26e7fc906b87927f3076ecp-2, + -0x1.d04b9bb0bda28p-2 + }, + { // Entry 37 + 0x1.f4b9755f2c26e7fc906b87927f3076ecp-2, + 0x1.d04b9bb0bda28p-2 + }, + { // Entry 38 + -0x1.d49dd5cd8086d7fe196df1da63aadaf9p-4, + -0x1.d29523bb69328p-4 + }, + { // Entry 39 + 0x1.d49dd5cd8086d7fe196df1da63aadaf9p-4, + 0x1.d29523bb69328p-4 + }, + { // Entry 40 + -0x1.f7f60ac95611e75a2a085f35a7c508dcp-2, + -0x1.d2dce780a7304p-2 + }, + { // Entry 41 + 0x1.f7f60ac95611e75a2a085f35a7c508dcp-2, + 0x1.d2dce780a7304p-2 + }, + { // Entry 42 + -0x1.df875eb326b209b9c9a00f82e3dbc3bap-3, + -0x1.d6f41e3ea643ap-3 + }, + { // Entry 43 + 0x1.df875eb326b209b9c9a00f82e3dbc3bap-3, + 0x1.d6f41e3ea643ap-3 + }, + { // Entry 44 + -0x1.fe0dc4fabe81f72d042d459cdb17f7c5p-2, + -0x1.d7ad1055ed587p-2 + }, + { // Entry 45 + 0x1.fe0dc4fabe81f72d042d459cdb17f7c5p-2, + 0x1.d7ad1055ed587p-2 + }, + { // Entry 46 + -0x1.ede7fef85615d5762723a4bc9071bcfcp-4, + -0x1.eb86b85bf65d8p-4 + }, + { // Entry 47 + 0x1.ede7fef85615d5762723a4bc9071bcfcp-4, + 0x1.eb86b85bf65d8p-4 + }, + { // Entry 48 + -0x1.ffff0f05db419e0562a8a13e0c88ec0cp-3, + -0x1.f59707e3f49d0p-3 + }, + { // Entry 49 + 0x1.ffff0f05db419e0562a8a13e0c88ec0cp-3, + 0x1.f59707e3f49d0p-3 + }, + { // Entry 50 + -0x1.340af764783edfffac199b0ebf01c362p1, + -0x1.f7cp-1 + }, + { // Entry 51 + 0x1.340af764783edfffac199b0ebf01c362p1, + 0x1.f7cp-1 + }, + { // Entry 52 + -0x1.fc0000000000000000000000029aca95p-52, + -0x1.fc0p-52 + }, + { // Entry 53 + 0x1.fc0000000000000000000000029aca95p-52, + 0x1.fc0p-52 + }, + { // Entry 54 + -0x1.fdc93ea04e6030021bf3b7f1b7274addp-5, + -0x1.fd210af77856cp-5 + }, + { // Entry 55 + 0x1.fdc93ea04e6030021bf3b7f1b7274addp-5, + 0x1.fd210af77856cp-5 + }, + { // Entry 56 + -0x1.ffeaa91115a4e8716dc9f09be20a9364p-7, + -0x1.ffep-7 + }, + { // Entry 57 + 0x1.ffeaa91115a4e8716dc9f09be20a9364p-7, + 0x1.ffep-7 + }, + { // Entry 58 + -0x1.9a775e687850d877587114f931f61369p3, + -0x1.ffffffffe03edp-1 + }, + { // Entry 59 + 0x1.9a775e687850d877587114f931f61369p3, + 0x1.ffffffffe03edp-1 + }, + { // Entry 60 + -0x1.9ba863fb6bf8e791c8099e55cff570c3p3, + -0x1.ffffffffe2863p-1 + }, + { // Entry 61 + 0x1.9ba863fb6bf8e791c8099e55cff570c3p3, + 0x1.ffffffffe2863p-1 + }, + { // Entry 62 + -0x1.f369d8eedfbb384b0ee31be424423ec2p3, + -0x1.ffffffffffe0bp-1 + }, + { // Entry 63 + 0x1.f369d8eedfbb384b0ee31be424423ec2p3, + 0x1.ffffffffffe0bp-1 + }, + { // Entry 64 + -0x1.02bd22bd19797815b1ddefc90c41f8fbp4, + -0x1.fffffffffff5ep-1 + }, + { // Entry 65 + 0x1.02bd22bd19797815b1ddefc90c41f8fbp4, + 0x1.fffffffffff5ep-1 + }, + { // Entry 66 + -0x1.1841a4bab2d6d03a28537f43de9e90a4p4, + -0x1.ffffffffffff5p-1 + }, + { // Entry 67 + 0x1.1841a4bab2d6d03a28537f43de9e90a4p4, + 0x1.ffffffffffff5p-1 + }, + { // Entry 68 + 0x1.p-99, + 0x1.0p-99 + }, + { // Entry 69 + -0x1.p-99, + -0x1.0p-99 + }, + { // Entry 70 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 71 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 72 + 0x1.00000000000010000000155555555555p-41, + 0x1.0000000000001p-41 + }, + { // Entry 73 + -0x1.00000000000010000000155555555555p-41, + -0x1.0000000000001p-41 + }, + { // Entry 74 + 0x1.015891c9eaefd81f5edb9583f3871889p-3, + 0x1.0000000000006p-3 + }, + { // Entry 75 + -0x1.015891c9eaefd81f5edb9583f3871889p-3, + -0x1.0000000000006p-3 + }, + { // Entry 76 + 0x1.193ea7aad0313ecbf96ee2aa7057ee7cp-1, + 0x1.0000000000007p-1 + }, + { // Entry 77 + -0x1.193ea7aad0313ecbf96ee2aa7057ee7cp-1, + -0x1.0000000000007p-1 + }, + { // Entry 78 + 0x1.000555888ad4c9be103a862dcf933db6p-6, + 0x1.0000000000030p-6 + }, + { // Entry 79 + -0x1.000555888ad4c9be103a862dcf933db6p-6, + -0x1.0000000000030p-6 + }, + { // Entry 80 + 0x1.0000055555a8988cd2ad575377ece0d7p-10, + 0x1.0000000000201p-10 + }, + { // Entry 81 + -0x1.0000055555a8988cd2ad575377ece0d7p-10, + -0x1.0000000000201p-10 + }, + { // Entry 82 + 0x1.015891c9f107d81f5edc2a1f85d03e57p-3, + 0x1.00000000060p-3 + }, + { // Entry 83 + -0x1.015891c9f107d81f5edc2a1f85d03e57p-3, + -0x1.00000000060p-3 + }, + { // Entry 84 + 0x1.005588ad597cefed3539549b86ce2b1bp-4, + 0x1.00000000220p-4 + }, + { // Entry 85 + -0x1.005588ad597cefed3539549b86ce2b1bp-4, + -0x1.00000000220p-4 + }, + { // Entry 86 + 0x1.0000055577888aaad1cf378dd5b4caa3p-10, + 0x1.00000000220p-10 + }, + { // Entry 87 + -0x1.0000055577888aaad1cf378dd5b4caa3p-10, + -0x1.00000000220p-10 + }, + { // Entry 88 + 0x1.193ea7fca06d7000000fd6e3e45036c3p-1, + 0x1.0000003d5c2d9p-1 + }, + { // Entry 89 + -0x1.193ea7fca06d7000000fd6e3e45036c3p-1, + -0x1.0000003d5c2d9p-1 + }, + { // Entry 90 + 0x1.0158920aeeffb7df62fc5f72d05afc8ap-3, + 0x1.0000004p-3 + }, + { // Entry 91 + -0x1.0158920aeeffb7df62fc5f72d05afc8ap-3, + -0x1.0000004p-3 + }, + { // Entry 92 + 0x1.015894d61bb2a7f0ee6532fa66c13887p-3, + 0x1.0000030p-3 + }, + { // Entry 93 + -0x1.015894d61bb2a7f0ee6532fa66c13887p-3, + -0x1.0000030p-3 + }, + { // Entry 94 + 0x1.00255c8a5b4f98134613c6ae100b17d2p-5, + 0x1.001p-5 + }, + { // Entry 95 + -0x1.00255c8a5b4f98134613c6ae100b17d2p-5, + -0x1.001p-5 + }, + { // Entry 96 + 0x1.199403c895f3b2fbd6e04ef63e5e0b99p-1, + 0x1.003fffcp-1 + }, + { // Entry 97 + -0x1.199403c895f3b2fbd6e04ef63e5e0b99p-1, + -0x1.003fffcp-1 + }, + { // Entry 98 + 0x1.00401004000480000000000005595756p-50, + 0x1.0040100400048p-50 + }, + { // Entry 99 + -0x1.00401004000480000000000005595756p-50, + -0x1.0040100400048p-50 + }, + { // Entry 100 + 0x1.00b5e931e4c3080916948fa283902fa8p-4, + 0x1.006p-4 + }, + { // Entry 101 + -0x1.00b5e931e4c3080916948fa283902fa8p-4, + -0x1.006p-4 + }, + { // Entry 102 + 0x1.021c8577650fa41d24281561edcb1273p-10, + 0x1.021c8p-10 + }, + { // Entry 103 + -0x1.021c8577650fa41d24281561edcb1273p-10, + -0x1.021c8p-10 + }, + { // Entry 104 + 0x1.03858e51088d27f9df83774139563f2cp-6, + 0x1.038p-6 + }, + { // Entry 105 + -0x1.03858e51088d27f9df83774139563f2cp-6, + -0x1.038p-6 + }, + { // Entry 106 + 0x1.1e9b2fd18d91b42e390d13e9beb6978cp-1, + 0x1.040p-1 + }, + { // Entry 107 + -0x1.1e9b2fd18d91b42e390d13e9beb6978cp-1, + -0x1.040p-1 + }, + { // Entry 108 + 0x1.0841776c420d4707689f45329a9bf2cep-7, + 0x1.084p-7 + }, + { // Entry 109 + -0x1.0841776c420d4707689f45329a9bf2cep-7, + -0x1.084p-7 + }, + { // Entry 110 + 0x1.37ed416dfaf6747b307bee589157fe93p-1, + 0x1.1650efedb9eb2p-1 + }, + { // Entry 111 + -0x1.37ed416dfaf6747b307bee589157fe93p-1, + -0x1.1650efedb9eb2p-1 + }, + { // Entry 112 + 0x1.45e1141a8c00e0b0eb767eb3382f20b8p-1, + 0x1.1ffffffffffffp-1 + }, + { // Entry 113 + -0x1.45e1141a8c00e0b0eb767eb3382f20b8p-1, + -0x1.1ffffffffffffp-1 + }, + { // Entry 114 + 0x1.45e1141a8c00f818c85ab35ce89683a2p-1, + 0x1.2p-1 + }, + { // Entry 115 + -0x1.45e1141a8c00f818c85ab35ce89683a2p-1, + -0x1.2p-1 + }, + { // Entry 116 + 0x1.2e223119d32f870a129b78a196ee4c8dp-7, + 0x1.2e2p-7 + }, + { // Entry 117 + -0x1.2e223119d32f870a129b78a196ee4c8dp-7, + -0x1.2e2p-7 + }, + { // Entry 118 + 0x1.600c9c6f70efcd85cd16189ee688ead0p-1, + 0x1.316p-1 + }, + { // Entry 119 + -0x1.600c9c6f70efcd85cd16189ee688ead0p-1, + -0x1.316p-1 + }, + { // Entry 120 + 0x1.3b5afc2b8cfd87f655c91414c5969d60p-2, + 0x1.31cp-2 + }, + { // Entry 121 + -0x1.3b5afc2b8cfd87f655c91414c5969d60p-2, + -0x1.31cp-2 + }, + { // Entry 122 + 0x1.62e4307128100800001f7881babc44f3p-1, + 0x1.3333338617529p-1 + }, + { // Entry 123 + -0x1.62e4307128100800001f7881babc44f3p-1, + -0x1.3333338617529p-1 + }, + { // Entry 124 + 0x1.33aef545bb20968537b09375e6d5c60ap-7, + 0x1.33aca4ae2b081p-7 + }, + { // Entry 125 + -0x1.33aef545bb20968537b09375e6d5c60ap-7, + -0x1.33aca4ae2b081p-7 + }, + { // Entry 126 + 0x1.9c5cfbb889a7419fe7705e893b99fbb5p-1, + 0x1.5586ad8669418p-1 + }, + { // Entry 127 + -0x1.9c5cfbb889a7419fe7705e893b99fbb5p-1, + -0x1.5586ad8669418p-1 + }, + { // Entry 128 + 0x1.9d5e0765d3182e417e4d91808f30b95fp-1, + 0x1.56152a51dda72p-1 + }, + { // Entry 129 + -0x1.9d5e0765d3182e417e4d91808f30b95fp-1, + -0x1.56152a51dda72p-1 + }, + { // Entry 130 + 0x1.9d783af9f97bce33bd221a9954befb0cp-1, + 0x1.5623ab271fa52p-1 + }, + { // Entry 131 + -0x1.9d783af9f97bce33bd221a9954befb0cp-1, + -0x1.5623ab271fa52p-1 + }, + { // Entry 132 + 0x1.56a0f0b4476de80270a6332ff4450533p-5, + 0x1.566dd4892fab9p-5 + }, + { // Entry 133 + -0x1.56a0f0b4476de80270a6332ff4450533p-5, + -0x1.566dd4892fab9p-5 + }, + { // Entry 134 + 0x1.5db43aa0e3e55fffa5ad9886e8f22cb8p-3, + 0x1.5a582cdc4e9d4p-3 + }, + { // Entry 135 + -0x1.5db43aa0e3e55fffa5ad9886e8f22cb8p-3, + -0x1.5a582cdc4e9d4p-3 + }, + { // Entry 136 + 0x1.ab9dfa0ec89b8247c03f70d6fccdfd66p-1, + 0x1.5dd34e7af8d61p-1 + }, + { // Entry 137 + -0x1.ab9dfa0ec89b8247c03f70d6fccdfd66p-1, + -0x1.5dd34e7af8d61p-1 + }, + { // Entry 138 + 0x1.67a648e5b16c6a6999d9665a8c288d27p-8, + 0x1.67a55c49aa5d6p-8 + }, + { // Entry 139 + -0x1.67a648e5b16c6a6999d9665a8c288d27p-8, + -0x1.67a55c49aa5d6p-8 + }, + { // Entry 140 + 0x1.7b57ee7bea57a7fcebaaea6f557706c2p-2, + 0x1.6ae491f70c7cbp-2 + }, + { // Entry 141 + -0x1.7b57ee7bea57a7fcebaaea6f557706c2p-2, + -0x1.6ae491f70c7cbp-2 + }, + { // Entry 142 + 0x1.7222b50fd4f8ce0954e89313933bded3p-3, + 0x1.6e2856e2856f5p-3 + }, + { // Entry 143 + -0x1.7222b50fd4f8ce0954e89313933bded3p-3, + -0x1.6e2856e2856f5p-3 + }, + { // Entry 144 + 0x1.cf6347191f5b5aba22dc8400fa882ceep-1, + 0x1.7p-1 + }, + { // Entry 145 + -0x1.cf6347191f5b5aba22dc8400fa882ceep-1, + -0x1.7p-1 + }, + { // Entry 146 + 0x1.83916f868284f882ad9463d174a59d97p-2, + 0x1.721060c1a73cep-2 + }, + { // Entry 147 + -0x1.83916f868284f882ad9463d174a59d97p-2, + -0x1.721060c1a73cep-2 + }, + { // Entry 148 + 0x1.85e0806e8e13b7fcc08479529c8104e6p-2, + 0x1.7411d463bfe90p-2 + }, + { // Entry 149 + -0x1.85e0806e8e13b7fcc08479529c8104e6p-2, + -0x1.7411d463bfe90p-2 + }, + { // Entry 150 + 0x1.f2272af46bbe08000012b87d08e7932fp-1, + 0x1.800000078eaacp-1 + }, + { // Entry 151 + -0x1.f2272af46bbe08000012b87d08e7932fp-1, + -0x1.800000078eaacp-1 + }, + { // Entry 152 + 0x1.f2272af46bbf0800001fad0fd766e8cfp-1, + 0x1.800000078eab3p-1 + }, + { // Entry 153 + -0x1.f2272af46bbf0800001fad0fd766e8cfp-1, + -0x1.800000078eab3p-1 + }, + { // Entry 154 + 0x1.83e4a353f34f3562d9d23f45dc8b2e29p-7, + 0x1.83ep-7 + }, + { // Entry 155 + -0x1.83e4a353f34f3562d9d23f45dc8b2e29p-7, + -0x1.83ep-7 + }, + { // Entry 156 + 0x1.89b541d1b39fa30a054d69c38ffbdb5ep-4, + 0x1.888p-4 + }, + { // Entry 157 + -0x1.89b541d1b39fa30a054d69c38ffbdb5ep-4, + -0x1.888p-4 + }, + { // Entry 158 + 0x1.8a08c32ee13cd9422b9ad12f398f50bbp-8, + 0x1.8a078c03f8dcep-8 + }, + { // Entry 159 + -0x1.8a08c32ee13cd9422b9ad12f398f50bbp-8, + -0x1.8a078c03f8dcep-8 + }, + { // Entry 160 + 0x1.946669a6bba909c4bc5da852e75a3d66p-8, + 0x1.9465194651941p-8 + }, + { // Entry 161 + -0x1.946669a6bba909c4bc5da852e75a3d66p-8, + -0x1.9465194651941p-8 + }, + { // Entry 162 + 0x1.9c7d184ac6505eee21ace6732a52730cp-3, + 0x1.970p-3 + }, + { // Entry 163 + -0x1.9c7d184ac6505eee21ace6732a52730cp-3, + -0x1.970p-3 + }, + { // Entry 164 + 0x1.98da3c40000e9801ec829a13899425ecp-4, + 0x1.978p-4 + }, + { // Entry 165 + -0x1.98da3c40000e9801ec829a13899425ecp-4, + -0x1.978p-4 + }, + { // Entry 166 + 0x1.9af93cdc56240000000fff41a04220ffp-4, + 0x1.999999a3a18c2p-4 + }, + { // Entry 167 + -0x1.9af93cdc56240000000fff41a04220ffp-4, + -0x1.999999a3a18c2p-4 + }, + { // Entry 168 + 0x1.9af93cdc566f000000197f297a13895cp-4, + 0x1.999999a3a1d66p-4 + }, + { // Entry 169 + -0x1.9af93cdc566f000000197f297a13895cp-4, + -0x1.999999a3a1d66p-4 + }, + { // Entry 170 + 0x1.193ea7fa8d771fffffe6de660aab4045p0, + 0x1.999999d303287p-1 + }, + { // Entry 171 + -0x1.193ea7fa8d771fffffe6de660aab4045p0, + -0x1.999999d303287p-1 + }, + { // Entry 172 + 0x1.9af93d0c9ef7d80000017b97c0c0930cp-4, + 0x1.999999d36ec44p-4 + }, + { // Entry 173 + -0x1.9af93d0c9ef7d80000017b97c0c0930cp-4, + -0x1.999999d36ec44p-4 + }, + { // Entry 174 + 0x1.9f323f7638726800001eda3701a5c338p-3, + 0x1.99999a3d09361p-3 + }, + { // Entry 175 + -0x1.9f323f7638726800001eda3701a5c338p-3, + -0x1.99999a3d09361p-3 + }, + { // Entry 176 + 0x1.9f323fd47175b7ffffe05fbf960efc6ap-3, + 0x1.99999a977d623p-3 + }, + { // Entry 177 + -0x1.9f323fd47175b7ffffe05fbf960efc6ap-3, + -0x1.99999a977d623p-3 + }, + { // Entry 178 + 0x1.9f323fe10c9a1800001efbbe0bb48ebbp-3, + 0x1.99999aa39770ap-3 + }, + { // Entry 179 + -0x1.9f323fe10c9a1800001efbbe0bb48ebbp-3, + -0x1.99999aa39770ap-3 + }, + { // Entry 180 + 0x1.9a179be1e7a6e801a0cbc1770ccc0691p-5, + 0x1.99cp-5 + }, + { // Entry 181 + -0x1.9a179be1e7a6e801a0cbc1770ccc0691p-5, + -0x1.99cp-5 + }, + { // Entry 182 + 0x1.a5256971dc6e440698f25410f9a508ffp-10, + 0x1.a52551b31353cp-10 + }, + { // Entry 183 + -0x1.a5256971dc6e440698f25410f9a508ffp-10, + -0x1.a52551b31353cp-10 + }, + { // Entry 184 + 0x1.ad6df00c82cd92c93177514dd245567bp-24, + 0x1.ad6df00c82cc0p-24 + }, + { // Entry 185 + -0x1.ad6df00c82cd92c93177514dd245567bp-24, + -0x1.ad6df00c82cc0p-24 + }, + { // Entry 186 + 0x1.aec648950aa9b6160bf45bf45b2ce0bep-8, + 0x1.aec4b201aa53bp-8 + }, + { // Entry 187 + -0x1.aec648950aa9b6160bf45bf45b2ce0bep-8, + -0x1.aec4b201aa53bp-8 + }, + { // Entry 188 + 0x1.b6cabb35f338f7fb83223470c9fbfb09p-3, + 0x1.b032e138a539dp-3 + }, + { // Entry 189 + -0x1.b6cabb35f338f7fb83223470c9fbfb09p-3, + -0x1.b032e138a539dp-3 + }, + { // Entry 190 + 0x1.d6f4c64bee95d884b07a53fe12d571f4p-2, + 0x1.b85680001c332p-2 + }, + { // Entry 191 + -0x1.d6f4c64bee95d884b07a53fe12d571f4p-2, + -0x1.b85680001c332p-2 + }, + { // Entry 192 + 0x1.c184b5fbed8192fa453d4d9c1577a9e3p-10, + 0x1.c184991bf2fp-10 + }, + { // Entry 193 + -0x1.c184b5fbed8192fa453d4d9c1577a9e3p-10, + -0x1.c184991bf2fp-10 + }, + { // Entry 194 + 0x1.e71d3517d3e01b42d5dae4c3aaf70503p-2, + 0x1.c56b0b96cdf91p-2 + }, + { // Entry 195 + -0x1.e71d3517d3e01b42d5dae4c3aaf70503p-2, + -0x1.c56b0b96cdf91p-2 + }, + { // Entry 196 + 0x1.c5e0000001db8fffed2e2b94fd54870dp-20, + 0x1.c5ep-20 + }, + { // Entry 197 + -0x1.c5e0000001db8fffed2e2b94fd54870dp-20, + -0x1.c5ep-20 + }, + { // Entry 198 + 0x1.f055451fb359e7fffffbe5195d4377e8p-2, + 0x1.ccccccd660083p-2 + }, + { // Entry 199 + -0x1.f055451fb359e7fffffbe5195d4377e8p-2, + -0x1.ccccccd660083p-2 + }, + { // Entry 200 + 0x1.f1c704e1f3c8a800b71131c90e193596p-2, + 0x1.cdf37cdf37cd9p-2 + }, + { // Entry 201 + -0x1.f1c704e1f3c8a800b71131c90e193596p-2, + -0x1.cdf37cdf37cd9p-2 + }, + { // Entry 202 + 0x1.d00a0587151948029cb1fb36b2a24903p-5, + 0x1.cf8b2052bbb11p-5 + }, + { // Entry 203 + -0x1.d00a0587151948029cb1fb36b2a24903p-5, + -0x1.cf8b2052bbb11p-5 + }, + { // Entry 204 + 0x1.f4656a69bea6d733e8f3dfaec12111c3p-2, + 0x1.d008d55f75360p-2 + }, + { // Entry 205 + -0x1.f4656a69bea6d733e8f3dfaec12111c3p-2, + -0x1.d008d55f75360p-2 + }, + { // Entry 206 + 0x1.d0cad6adc9a0c837bbecea984e9019d7p-5, + 0x1.d04b532bd5b41p-5 + }, + { // Entry 207 + -0x1.d0cad6adc9a0c837bbecea984e9019d7p-5, + -0x1.d04b532bd5b41p-5 + }, + { // Entry 208 + 0x1.f62f40794a7b089973231ae614553eb0p-2, + 0x1.d1745d1745d11p-2 + }, + { // Entry 209 + -0x1.f62f40794a7b089973231ae614553eb0p-2, + -0x1.d1745d1745d11p-2 + }, + { // Entry 210 + 0x1.d1c00000008077fe5d003fc8ce63e4a4p-21, + 0x1.d1cp-21 + }, + { // Entry 211 + -0x1.d1c00000008077fe5d003fc8ce63e4a4p-21, + -0x1.d1cp-21 + }, + { // Entry 212 + 0x1.f6beddb6ec29b749a9e4a3f67a36b414p-2, + 0x1.d1e646f156570p-2 + }, + { // Entry 213 + -0x1.f6beddb6ec29b749a9e4a3f67a36b414p-2, + -0x1.d1e646f156570p-2 + }, + { // Entry 214 + 0x1.fabc7c84166033eb57a453fd83585dc8p-2, + 0x1.d50efa205a174p-2 + }, + { // Entry 215 + -0x1.fabc7c84166033eb57a453fd83585dc8p-2, + -0x1.d50efa205a174p-2 + }, + { // Entry 216 + 0x1.d62f43b4c2c737fdd232cf2e299076f7p-11, + 0x1.d62f3b71fca8cp-11 + }, + { // Entry 217 + -0x1.d62f43b4c2c737fdd232cf2e299076f7p-11, + -0x1.d62f3b71fca8cp-11 + }, + { // Entry 218 + 0x1.e3a4b468f251480a6049e3fe17b89646p-5, + 0x1.e3150daedb476p-5 + }, + { // Entry 219 + -0x1.e3a4b468f251480a6049e3fe17b89646p-5, + -0x1.e3150daedb476p-5 + }, + { // Entry 220 + 0x1.e68e0c2de6d2280c8a117c4d61d8f42fp-5, + 0x1.e5fbc9eecbdaep-5 + }, + { // Entry 221 + -0x1.e68e0c2de6d2280c8a117c4d61d8f42fp-5, + -0x1.e5fbc9eecbdaep-5 + }, + { // Entry 222 + 0x1.e9de86e8fd3be801a9f830844ba5e501p-5, + 0x1.e9494303cd80fp-5 + }, + { // Entry 223 + -0x1.e9de86e8fd3be801a9f830844ba5e501p-5, + -0x1.e9494303cd80fp-5 + }, + { // Entry 224 + 0x1.edbcc82a00a4c001e7ac01891849800ep-5, + 0x1.ed23f4c89da70p-5 + }, + { // Entry 225 + -0x1.edbcc82a00a4c001e7ac01891849800ep-5, + -0x1.ed23f4c89da70p-5 + }, + { // Entry 226 + 0x1.fa0dc9d7131fee2b38ba993a65f82a06p-3, + 0x1.effffffffffffp-3 + }, + { // Entry 227 + -0x1.fa0dc9d7131fee2b38ba993a65f82a06p-3, + -0x1.effffffffffffp-3 + }, + { // Entry 228 + 0x1.f37429af961a9824754b77a1b593d39ap-4, + 0x1.f0fe3530f7239p-4 + }, + { // Entry 229 + -0x1.f37429af961a9824754b77a1b593d39ap-4, + -0x1.f0fe3530f7239p-4 + }, + { // Entry 230 + 0x1.f37429af961ab89edde6f4ae74375a06p-4, + 0x1.f0fe3530f723bp-4 + }, + { // Entry 231 + -0x1.f37429af961ab89edde6f4ae74375a06p-4, + -0x1.f0fe3530f723bp-4 + }, + { // Entry 232 + 0x1.f37429af961ac8dc1234b334d38f1d1bp-4, + 0x1.f0fe3530f723cp-4 + }, + { // Entry 233 + -0x1.f37429af961ac8dc1234b334d38f1d1bp-4, + -0x1.f0fe3530f723cp-4 + }, + { // Entry 234 + 0x1.f37429af962b268ac88eb6a2f4026151p-4, + 0x1.f0fe3530f733ep-4 + }, + { // Entry 235 + -0x1.f37429af962b268ac88eb6a2f4026151p-4, + -0x1.f0fe3530f733ep-4 + }, + { // Entry 236 + 0x1.f1e9c43b21348857c7e465e46799dce1p-5, + 0x1.f14d08c7109aap-5 + }, + { // Entry 237 + -0x1.f1e9c43b21348857c7e465e46799dce1p-5, + -0x1.f14d08c7109aap-5 + }, + { // Entry 238 + 0x1.f90b42375a486a39cdf9b2ccf2824fecp-4, + 0x1.f68p-4 + }, + { // Entry 239 + -0x1.f90b42375a486a39cdf9b2ccf2824fecp-4, + -0x1.f68p-4 + }, + { // Entry 240 + 0x1.f72a153ff7688808c896dd6ffe6516d4p-5, + 0x1.f688582bdf450p-5 + }, + { // Entry 241 + -0x1.f72a153ff7688808c896dd6ffe6516d4p-5, + -0x1.f688582bdf450p-5 + }, + { // Entry 242 + 0x1.f7e703f1db06e802f9321fd5e2394e07p-5, + 0x1.f744909706414p-5 + }, + { // Entry 243 + -0x1.f7e703f1db06e802f9321fd5e2394e07p-5, + -0x1.f744909706414p-5 + }, + { // Entry 244 + 0x1.340af764783edfffac199b0ebf01c362p1, + 0x1.f7cp-1 + }, + { // Entry 245 + -0x1.340af764783edfffac199b0ebf01c362p1, + -0x1.f7cp-1 + }, + { // Entry 246 + 0x1.fa24a006fb7277fe99107e535f1488d7p-5, + 0x1.f98p-5 + }, + { // Entry 247 + -0x1.fa24a006fb7277fe99107e535f1488d7p-5, + -0x1.f98p-5 + }, + { // Entry 248 + 0x1.fabe9384d8eb28030d5306c1d38ffe3cp-5, + 0x1.fa195d3f2824ap-5 + }, + { // Entry 249 + -0x1.fabe9384d8eb28030d5306c1d38ffe3cp-5, + -0x1.fa195d3f2824ap-5 + }, + { // Entry 250 + 0x1.fac53cc7f51a2825f03615ff2011a3f4p-5, + 0x1.fa2p-5 + }, + { // Entry 251 + -0x1.fac53cc7f51a2825f03615ff2011a3f4p-5, + -0x1.fa2p-5 + }, + { // Entry 252 + 0x1.fca715610d4c584a721b2c19e6223c63p-5, + 0x1.fbfffffffffffp-5 + }, + { // Entry 253 + -0x1.fca715610d4c584a721b2c19e6223c63p-5, + -0x1.fbfffffffffffp-5 + }, + { // Entry 254 + 0x1.ff2303e94a6fa776b99fdcdac342443dp-4, + 0x1.fc7ffffffffffp-4 + }, + { // Entry 255 + -0x1.ff2303e94a6fa776b99fdcdac342443dp-4, + -0x1.fc7ffffffffffp-4 + }, + { // Entry 256 + 0x1.fcca7762322a195ec28591033e93e55bp-7, + 0x1.fccp-7 + }, + { // Entry 257 + -0x1.fcca7762322a195ec28591033e93e55bp-7, + -0x1.fccp-7 + }, + { // Entry 258 + 0x1.fde34e5e71112802cd5dc4e1fb2d0640p-5, + 0x1.fd3b00ef28dc9p-5 + }, + { // Entry 259 + -0x1.fde34e5e71112802cd5dc4e1fb2d0640p-5, + -0x1.fd3b00ef28dc9p-5 + }, + { // Entry 260 + 0x1.fd5da51e6bee9b019e62cd796699df5cp-8, + 0x1.fd5b04f37a8adp-8 + }, + { // Entry 261 + -0x1.fd5da51e6bee9b019e62cd796699df5cp-8, + -0x1.fd5b04f37a8adp-8 + }, + { // Entry 262 + 0x1.ff08b9b3981768022e66dd42cd419f4cp-9, + 0x1.ff080ffffffffp-9 + }, + { // Entry 263 + -0x1.ff08b9b3981768022e66dd42cd419f4cp-9, + -0x1.ff080ffffffffp-9 + }, + { // Entry 264 + 0x1.ff782a88ba0fba00f908e16f051a1810p-10, + 0x1.ff77fffffffffp-10 + }, + { // Entry 265 + -0x1.ff782a88ba0fba00f908e16f051a1810p-10, + -0x1.ff77fffffffffp-10 + }, + { // Entry 266 + 0x1.0154818928eb11132905352501826af5p-3, + 0x1.fff7fffffffffp-4 + }, + { // Entry 267 + -0x1.0154818928eb11132905352501826af5p-3, + -0x1.fff7fffffffffp-4 + }, + { // Entry 268 + 0x1.fffca6a70d15564482dc93a139764e2dp-9, + 0x1.fffbfbfffffffp-9 + }, + { // Entry 269 + -0x1.fffca6a70d15564482dc93a139764e2dp-9, + -0x1.fffbfbfffffffp-9 + }, + { // Entry 270 + 0x1.0157cebdbc7ecff56d936def2dc90848p-3, + 0x1.fffe7ffffffffp-4 + }, + { // Entry 271 + -0x1.0157cebdbc7ecff56d936def2dc90848p-3, + -0x1.fffe7ffffffffp-4 + }, + { // Entry 272 + 0x1.ffff2aaa70e11229a646c3ea214d5c6bp-10, + 0x1.fffeffffffcffp-10 + }, + { // Entry 273 + -0x1.ffff2aaa70e11229a646c3ea214d5c6bp-10, + -0x1.fffeffffffcffp-10 + }, + { // Entry 274 + 0x1.fe849ae4ae0948fc35cd560fe0f7a64fp2, + 0x1.fffff8170432cp-1 + }, + { // Entry 275 + -0x1.fe849ae4ae0948fc35cd560fe0f7a64fp2, + -0x1.fffff8170432cp-1 + }, + { // Entry 276 + 0x1.fe8636119def0727f0b21ad8da17b705p2, + 0x1.fffff81769d3bp-1 + }, + { // Entry 277 + -0x1.fe8636119def0727f0b21ad8da17b705p2, + -0x1.fffff81769d3bp-1 + }, + { // Entry 278 + 0x1.feab0f8d089237326f5246ce7822ddcap2, + 0x1.fffff8207ffffp-1 + }, + { // Entry 279 + -0x1.feab0f8d089237326f5246ce7822ddcap2, + -0x1.fffff8207ffffp-1 + }, + { // Entry 280 + 0x1.fffffbc002aa9a99aab134f0ccf89dcfp-20, + 0x1.fffffbbffffffp-20 + }, + { // Entry 281 + -0x1.fffffbc002aa9a99aab134f0ccf89dcfp-20, + -0x1.fffffbbffffffp-20 + }, + { // Entry 282 + 0x1.38aa9bbc81de80372da066273e181f3dp3, + 0x1.ffffffc7fffffp-1 + }, + { // Entry 283 + -0x1.38aa9bbc81de80372da066273e181f3dp3, + -0x1.ffffffc7fffffp-1 + }, + { // Entry 284 + 0x1.a791d873bcf1ef6cc589b55be94c11ccp3, + 0x1.fffffffff1fffp-1 + }, + { // Entry 285 + -0x1.a791d873bcf1ef6cc589b55be94c11ccp3, + -0x1.fffffffff1fffp-1 + }, + { // Entry 286 + 0x1.048fa31ec6a076cfd26abb456c9e863ap4, + 0x1.fffffffffff7fp-1 + }, + { // Entry 287 + -0x1.048fa31ec6a076cfd26abb456c9e863ap4, + -0x1.fffffffffff7fp-1 + }, + { // Entry 288 + 0x1.ffffffffffff8aaaaaaaaaa9f1111111p-25, + 0x1.fffffffffffeep-25 + }, + { // Entry 289 + -0x1.ffffffffffff8aaaaaaaaaa9f1111111p-25, + -0x1.fffffffffffeep-25 + }, + { // Entry 290 + -0x1.31dd28c89d64f3513ea98f014ae7630cp1, + -0x1.f777777777777p-1 + }, + { // Entry 291 + 0x1.31dd28c89d64f3513ea98f014ae7630cp1, + 0x1.f777777777777p-1 + }, + { // Entry 292 + -0x1.04f65f9c7297527749382883b8e88e33p1, + -0x1.eeeeeeeeeeeeep-1 + }, + { // Entry 293 + 0x1.04f65f9c7297527749382883b8e88e33p1, + 0x1.eeeeeeeeeeeeep-1 + }, + { // Entry 294 + -0x1.d4ef968880dcf1c48bf6d707008e71a0p0, + -0x1.e666666666665p-1 + }, + { // Entry 295 + 0x1.d4ef968880dcf1c48bf6d707008e71a0p0, + 0x1.e666666666665p-1 + }, + { // Entry 296 + -0x1.af038cbcdfe177f9b97cb13acb6a1d56p0, + -0x1.ddddddddddddcp-1 + }, + { // Entry 297 + 0x1.af038cbcdfe177f9b97cb13acb6a1d56p0, + 0x1.ddddddddddddcp-1 + }, + { // Entry 298 + -0x1.9157dfdd1b3e8bb2bc8c94b692c36c8bp0, + -0x1.d555555555553p-1 + }, + { // Entry 299 + 0x1.9157dfdd1b3e8bb2bc8c94b692c36c8bp0, + 0x1.d555555555553p-1 + }, + { // Entry 300 + -0x1.78e360604b32513afa302dd9090f54afp0, + -0x1.ccccccccccccap-1 + }, + { // Entry 301 + 0x1.78e360604b32513afa302dd9090f54afp0, + 0x1.ccccccccccccap-1 + }, + { // Entry 302 + -0x1.640775d4dd98457b36fb7ce98ec43308p0, + -0x1.c444444444441p-1 + }, + { // Entry 303 + 0x1.640775d4dd98457b36fb7ce98ec43308p0, + 0x1.c444444444441p-1 + }, + { // Entry 304 + -0x1.51cca16d7bb9ff79603c2533c5c76b7ap0, + -0x1.bbbbbbbbbbbb8p-1 + }, + { // Entry 305 + 0x1.51cca16d7bb9ff79603c2533c5c76b7ap0, + 0x1.bbbbbbbbbbbb8p-1 + }, + { // Entry 306 + -0x1.41933b0e446305a96ace1bc262cdee99p0, + -0x1.b33333333332fp-1 + }, + { // Entry 307 + 0x1.41933b0e446305a96ace1bc262cdee99p0, + 0x1.b33333333332fp-1 + }, + { // Entry 308 + -0x1.32ee3b77f374414d3a29141080dfabeap0, + -0x1.aaaaaaaaaaaa6p-1 + }, + { // Entry 309 + 0x1.32ee3b77f374414d3a29141080dfabeap0, + 0x1.aaaaaaaaaaaa6p-1 + }, + { // Entry 310 + -0x1.258fdae8372b9231a664ea76c9d6586fp0, + -0x1.a22222222221dp-1 + }, + { // Entry 311 + 0x1.258fdae8372b9231a664ea76c9d6586fp0, + 0x1.a22222222221dp-1 + }, + { // Entry 312 + -0x1.193ea7aad0302d04dcfd1b8e192ed85dp0, + -0x1.9999999999994p-1 + }, + { // Entry 313 + 0x1.193ea7aad0302d04dcfd1b8e192ed85dp0, + 0x1.9999999999994p-1 + }, + { // Entry 314 + -0x1.0dcefea4d025e0b8d09052e46fdf4f2ep0, + -0x1.911111111110bp-1 + }, + { // Entry 315 + 0x1.0dcefea4d025e0b8d09052e46fdf4f2ep0, + 0x1.911111111110bp-1 + }, + { // Entry 316 + -0x1.031ef11090f771d990e41e47d30913d6p0, + -0x1.8888888888882p-1 + }, + { // Entry 317 + 0x1.031ef11090f771d990e41e47d30913d6p0, + 0x1.8888888888882p-1 + }, + { // Entry 318 + -0x1.f2272ae325a47546f69496cf861be046p-1, + -0x1.7fffffffffff9p-1 + }, + { // Entry 319 + 0x1.f2272ae325a47546f69496cf861be046p-1, + 0x1.7fffffffffff9p-1 + }, + { // Entry 320 + -0x1.df2e6d6e5fb9a3aede73b55578f55672p-1, + -0x1.7777777777770p-1 + }, + { // Entry 321 + 0x1.df2e6d6e5fb9a3aede73b55578f55672p-1, + 0x1.7777777777770p-1 + }, + { // Entry 322 + -0x1.cd302116f50ababc40c132419e1dab2ap-1, + -0x1.6eeeeeeeeeee7p-1 + }, + { // Entry 323 + 0x1.cd302116f50ababc40c132419e1dab2ap-1, + 0x1.6eeeeeeeeeee7p-1 + }, + { // Entry 324 + -0x1.bc0ed0947fbd88e1ba52723b57950592p-1, + -0x1.666666666665ep-1 + }, + { // Entry 325 + 0x1.bc0ed0947fbd88e1ba52723b57950592p-1, + 0x1.666666666665ep-1 + }, + { // Entry 326 + -0x1.abb1c9065825972aaaf3d164ca1f5323p-1, + -0x1.5ddddddddddd5p-1 + }, + { // Entry 327 + 0x1.abb1c9065825972aaaf3d164ca1f5323p-1, + 0x1.5ddddddddddd5p-1 + }, + { // Entry 328 + -0x1.9c041f7ed8d229e312aad84998a0e008p-1, + -0x1.555555555554cp-1 + }, + { // Entry 329 + 0x1.9c041f7ed8d229e312aad84998a0e008p-1, + 0x1.555555555554cp-1 + }, + { // Entry 330 + -0x1.8cf3f3b791739ba35824b20bb67bc051p-1, + -0x1.4ccccccccccc3p-1 + }, + { // Entry 331 + 0x1.8cf3f3b791739ba35824b20bb67bc051p-1, + 0x1.4ccccccccccc3p-1 + }, + { // Entry 332 + -0x1.7e71ded66460614d3cfeeae5195853fdp-1, + -0x1.444444444443ap-1 + }, + { // Entry 333 + 0x1.7e71ded66460614d3cfeeae5195853fdp-1, + 0x1.444444444443ap-1 + }, + { // Entry 334 + -0x1.7070827f1c7ee9fc23eb09099495f760p-1, + -0x1.3bbbbbbbbbbb1p-1 + }, + { // Entry 335 + 0x1.7070827f1c7ee9fc23eb09099495f760p-1, + 0x1.3bbbbbbbbbbb1p-1 + }, + { // Entry 336 + -0x1.62e42fefa39ddb5793c7673063c5ed5ep-1, + -0x1.3333333333328p-1 + }, + { // Entry 337 + 0x1.62e42fefa39ddb5793c7673063c5ed5ep-1, + 0x1.3333333333328p-1 + }, + { // Entry 338 + -0x1.55c2a141bd913c9da91e9ba97d84ef42p-1, + -0x1.2aaaaaaaaaa9fp-1 + }, + { // Entry 339 + 0x1.55c2a141bd913c9da91e9ba97d84ef42p-1, + 0x1.2aaaaaaaaaa9fp-1 + }, + { // Entry 340 + -0x1.4902c08bec8b8d6ba2debcee67107aa5p-1, + -0x1.2222222222216p-1 + }, + { // Entry 341 + 0x1.4902c08bec8b8d6ba2debcee67107aa5p-1, + 0x1.2222222222216p-1 + }, + { // Entry 342 + -0x1.3c9c79bc8508ca2d5b90a842ee7edfa3p-1, + -0x1.199999999998dp-1 + }, + { // Entry 343 + 0x1.3c9c79bc8508ca2d5b90a842ee7edfa3p-1, + 0x1.199999999998dp-1 + }, + { // Entry 344 + -0x1.308894d710d767af349ad5664f91afbcp-1, + -0x1.1111111111104p-1 + }, + { // Entry 345 + 0x1.308894d710d767af349ad5664f91afbcp-1, + 0x1.1111111111104p-1 + }, + { // Entry 346 + -0x1.24c096cf976a96087c1335628fdc0098p-1, + -0x1.088888888887bp-1 + }, + { // Entry 347 + 0x1.24c096cf976a96087c1335628fdc0098p-1, + 0x1.088888888887bp-1 + }, + { // Entry 348 + -0x1.193ea7aad030a976a4198d55053b7cb5p-1, + -0x1.0p-1 + }, + { // Entry 349 + 0x1.193ea7aad030a976a4198d55053b7cb5p-1, + 0x1.0p-1 + }, + { // Entry 350 + 0x1.193ea7aad030a976a4198d55053b7cb5p-1, + 0x1.0p-1 + }, + { // Entry 351 + -0x1.193ea7aad030a976a4198d55053b7cb5p-1, + -0x1.0p-1 + }, + { // Entry 352 + 0x1.24c096cf976bc79a7ab78995d36b066bp-1, + 0x1.0888888888889p-1 + }, + { // Entry 353 + -0x1.24c096cf976bc79a7ab78995d36b066bp-1, + -0x1.0888888888889p-1 + }, + { // Entry 354 + 0x1.308894d710d8a0ba55ff01eb87cbc220p-1, + 0x1.1111111111112p-1 + }, + { // Entry 355 + -0x1.308894d710d8a0ba55ff01eb87cbc220p-1, + -0x1.1111111111112p-1 + }, + { // Entry 356 + 0x1.3c9c79bc850a0b52fa4dacd910d12a32p-1, + 0x1.199999999999bp-1 + }, + { // Entry 357 + -0x1.3c9c79bc850a0b52fa4dacd910d12a32p-1, + -0x1.199999999999bp-1 + }, + { // Entry 358 + 0x1.4902c08bec8cd75f11102da30f1f78d7p-1, + 0x1.2222222222224p-1 + }, + { // Entry 359 + -0x1.4902c08bec8cd75f11102da30f1f78d7p-1, + -0x1.2222222222224p-1 + }, + { // Entry 360 + 0x1.55c2a141bd929027179a90e1bcdc1a2dp-1, + 0x1.2aaaaaaaaaaadp-1 + }, + { // Entry 361 + -0x1.55c2a141bd929027179a90e1bcdc1a2dp-1, + -0x1.2aaaaaaaaaaadp-1 + }, + { // Entry 362 + 0x1.62e42fefa39f395793c767300da3ed5ep-1, + 0x1.3333333333336p-1 + }, + { // Entry 363 + -0x1.62e42fefa39f395793c767300da3ed5ep-1, + -0x1.3333333333336p-1 + }, + { // Entry 364 + 0x1.7070827f1c80536feb7673dd88b946ecp-1, + 0x1.3bbbbbbbbbbbfp-1 + }, + { // Entry 365 + -0x1.7070827f1c80536feb7673dd88b946ecp-1, + -0x1.3bbbbbbbbbbbfp-1 + }, + { // Entry 366 + 0x1.7e71ded66461d753e33ac2ff618644e0p-1, + 0x1.4444444444448p-1 + }, + { // Entry 367 + -0x1.7e71ded66461d753e33ac2ff618644e0p-1, + -0x1.4444444444448p-1 + }, + { // Entry 368 + 0x1.8cf3f3b791751f845062c18f4b0d7fe7p-1, + 0x1.4ccccccccccd1p-1 + }, + { // Entry 369 + -0x1.8cf3f3b791751f845062c18f4b0d7fe7p-1, + -0x1.4ccccccccccd1p-1 + }, + { // Entry 370 + 0x1.9c041f7ed8d3bd1645de0b7c8544b713p-1, + 0x1.555555555555ap-1 + }, + { // Entry 371 + -0x1.9c041f7ed8d3bd1645de0b7c8544b713p-1, + -0x1.555555555555ap-1 + }, + { // Entry 372 + 0x1.abb1c90658273b62b26c47dabd2b16cap-1, + 0x1.5dddddddddde3p-1 + }, + { // Entry 373 + -0x1.abb1c90658273b62b26c47dabd2b16cap-1, + -0x1.5dddddddddde3p-1 + }, + { // Entry 374 + 0x1.bc0ed0947fbf4018f189a9725a0c8214p-1, + 0x1.666666666666cp-1 + }, + { // Entry 375 + -0x1.bc0ed0947fbf4018f189a9725a0c8214p-1, + -0x1.666666666666cp-1 + }, + { // Entry 376 + 0x1.cd302116f50c8745aed84bd751fb575cp-1, + 0x1.6eeeeeeeeeef5p-1 + }, + { // Entry 377 + -0x1.cd302116f50c8745aed84bd751fb575cp-1, + -0x1.6eeeeeeeeeef5p-1 + }, + { // Entry 378 + 0x1.df2e6d6e5fbb884c684c52df3b260c38p-1, + 0x1.777777777777ep-1 + }, + { // Entry 379 + -0x1.df2e6d6e5fbb884c684c52df3b260c38p-1, + -0x1.777777777777ep-1 + }, + { // Entry 380 + 0x1.f2272ae325a67546f69496cf861be046p-1, + 0x1.8000000000007p-1 + }, + { // Entry 381 + -0x1.f2272ae325a67546f69496cf861be046p-1, + -0x1.8000000000007p-1 + }, + { // Entry 382 + 0x1.031ef11090f8818c48703199fec1433ap0, + 0x1.8888888888890p-1 + }, + { // Entry 383 + -0x1.031ef11090f8818c48703199fec1433ap0, + -0x1.8888888888890p-1 + }, + { // Entry 384 + 0x1.0dcefea4d0270295d8d877b36ea1c0e3p0, + 0x1.9111111111119p-1 + }, + { // Entry 385 + -0x1.0dcefea4d0270295d8d877b36ea1c0e3p0, + -0x1.9111111111119p-1 + }, + { // Entry 386 + 0x1.193ea7aad03164214ec438001cc9b599p0, + 0x1.99999999999a2p-1 + }, + { // Entry 387 + -0x1.193ea7aad03164214ec438001cc9b599p0, + -0x1.99999999999a2p-1 + }, + { // Entry 388 + 0x1.258fdae8372ce27963c75835d46b66e6p0, + 0x1.a22222222222bp-1 + }, + { // Entry 389 + -0x1.258fdae8372ce27963c75835d46b66e6p0, + -0x1.a22222222222bp-1 + }, + { // Entry 390 + 0x1.32ee3b77f375afd8dd11ce3f9e4b9287p0, + 0x1.aaaaaaaaaaab4p-1 + }, + { // Entry 391 + -0x1.32ee3b77f375afd8dd11ce3f9e4b9287p0, + -0x1.aaaaaaaaaaab4p-1 + }, + { // Entry 392 + 0x1.41933b0e44649943f09224fce382c799p0, + 0x1.b33333333333dp-1 + }, + { // Entry 393 + -0x1.41933b0e44649943f09224fce382c799p0, + -0x1.b33333333333dp-1 + }, + { // Entry 394 + 0x1.51cca16d7bbbc179603c253505b36b7ap0, + 0x1.bbbbbbbbbbbc6p-1 + }, + { // Entry 395 + -0x1.51cca16d7bbbc179603c253505b36b7ap0, + -0x1.bbbbbbbbbbbc6p-1 + }, + { // Entry 396 + 0x1.640775d4dd9a4337400b58abfdea644fp0, + 0x1.c44444444444fp-1 + }, + { // Entry 397 + -0x1.640775d4dd9a4337400b58abfdea644fp0, + -0x1.c44444444444fp-1 + }, + { // Entry 398 + 0x1.78e360604b349eb43d8e7eb37a3c01b6p0, + 0x1.cccccccccccd8p-1 + }, + { // Entry 399 + -0x1.78e360604b349eb43d8e7eb37a3c01b6p0, + -0x1.cccccccccccd8p-1 + }, + { // Entry 400 + 0x1.9157dfdd1b4148ea63817356fc04c13bp0, + 0x1.d555555555561p-1 + }, + { // Entry 401 + -0x1.9157dfdd1b4148ea63817356fc04c13bp0, + -0x1.d555555555561p-1 + }, + { // Entry 402 + 0x1.af038cbcdfe4dcf0e5a000b57077d005p0, + 0x1.dddddddddddeap-1 + }, + { // Entry 403 + -0x1.af038cbcdfe4dcf0e5a000b57077d005p0, + -0x1.dddddddddddeap-1 + }, + { // Entry 404 + 0x1.d4ef968880e16e7c57738ee1cab27657p0, + 0x1.e666666666673p-1 + }, + { // Entry 405 + -0x1.d4ef968880e16e7c57738ee1cab27657p0, + -0x1.e666666666673p-1 + }, + { // Entry 406 + 0x1.04f65f9c729aa8b4082276b069b6c479p1, + 0x1.eeeeeeeeeeefcp-1 + }, + { // Entry 407 + -0x1.04f65f9c729aa8b4082276b069b6c479p1, + -0x1.eeeeeeeeeeefcp-1 + }, + { // Entry 408 + 0x1.31dd28c89d64f3513ea98f014ae7630cp1, + 0x1.f777777777777p-1 + }, + { // Entry 409 + -0x1.31dd28c89d64f3513ea98f014ae7630cp1, + -0x1.f777777777777p-1 + }, + { // Entry 410 + -0x1.2b708872320e1d31e4b03f1086a9c047p4, + -0x1.fffffffffffffp-1 + }, + { // Entry 411 + 0x1.2b708872320e1d31e4b03f1086a9c047p4, + 0x1.fffffffffffffp-1 + }, + { // Entry 412 + -0x1.25e4f7b2737fa14486612173c6896892p4, + -0x1.ffffffffffffep-1 + }, + { // Entry 413 + 0x1.25e4f7b2737fa14486612173c6896892p4, + 0x1.ffffffffffffep-1 + }, + { // Entry 414 + -0x1.22a69334db8c97a62f8f72a5de7de462p4, + -0x1.ffffffffffffdp-1 + }, + { // Entry 415 + 0x1.22a69334db8c97a62f8f72a5de7de462p4, + 0x1.ffffffffffffdp-1 + }, + { // Entry 416 + 0x1.2b708872320e1d31e4b03f1086a9c047p4, + 0x1.fffffffffffffp-1 + }, + { // Entry 417 + -0x1.2b708872320e1d31e4b03f1086a9c047p4, + -0x1.fffffffffffffp-1 + }, + { // Entry 418 + 0x1.25e4f7b2737fa14486612173c6896892p4, + 0x1.ffffffffffffep-1 + }, + { // Entry 419 + -0x1.25e4f7b2737fa14486612173c6896892p4, + -0x1.ffffffffffffep-1 + }, + { // Entry 420 + 0x1.22a69334db8c97a62f8f72a5de7de462p4, + 0x1.ffffffffffffdp-1 + }, + { // Entry 421 + -0x1.22a69334db8c97a62f8f72a5de7de462p4, + -0x1.ffffffffffffdp-1 + }, + { // Entry 422 + 0x1.4a851baf27b6d549b7c524fbd91644b2p-3, + 0x1.47ae147ae147ap-3 + }, + { // Entry 423 + -0x1.4a851baf27b6d549b7c524fbd91644b2p-3, + -0x1.47ae147ae147ap-3 + }, + { // Entry 424 + 0x1.4a851baf27b6e5b55490996c8137296ap-3, + 0x1.47ae147ae147bp-3 + }, + { // Entry 425 + -0x1.4a851baf27b6e5b55490996c8137296ap-3, + -0x1.47ae147ae147bp-3 + }, + { // Entry 426 + 0x1.4a851baf27b6f620f15c0ddd2962d721p-3, + 0x1.47ae147ae147cp-3 + }, + { // Entry 427 + -0x1.4a851baf27b6f620f15c0ddd2962d721p-3, + -0x1.47ae147ae147cp-3 + }, + { // Entry 428 + -0x1.4a851baf27b6f620f15c0ddd2962d721p-3, + -0x1.47ae147ae147cp-3 + }, + { // Entry 429 + 0x1.4a851baf27b6f620f15c0ddd2962d721p-3, + 0x1.47ae147ae147cp-3 + }, + { // Entry 430 + -0x1.4a851baf27b6e5b55490996c8137296ap-3, + -0x1.47ae147ae147bp-3 + }, + { // Entry 431 + 0x1.4a851baf27b6e5b55490996c8137296ap-3, + 0x1.47ae147ae147bp-3 + }, + { // Entry 432 + -0x1.4a851baf27b6d549b7c524fbd91644b2p-3, + -0x1.47ae147ae147ap-3 + }, + { // Entry 433 + 0x1.4a851baf27b6d549b7c524fbd91644b2p-3, + 0x1.47ae147ae147ap-3 + }, + { // Entry 434 + 0x1.193ea7aad0309ecbf96ee2aa5aad43d2p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 435 + -0x1.193ea7aad0309ecbf96ee2aa5aad43d2p-1, + -0x1.fffffffffffffp-2 + }, + { // Entry 436 + 0x1.193ea7aad030a976a4198d55053b7cb5p-1, + 0x1.0p-1 + }, + { // Entry 437 + -0x1.193ea7aad030a976a4198d55053b7cb5p-1, + -0x1.0p-1 + }, + { // Entry 438 + 0x1.193ea7aad030becbf96ee2aa5b029927p-1, + 0x1.0000000000001p-1 + }, + { // Entry 439 + -0x1.193ea7aad030becbf96ee2aa5b029927p-1, + -0x1.0000000000001p-1 + }, + { // Entry 440 + 0x1.058aefa8114511e9ee33a6f97bb76f0ap-2, + 0x1.fffffffffffffp-3 + }, + { // Entry 441 + -0x1.058aefa8114511e9ee33a6f97bb76f0ap-2, + -0x1.fffffffffffffp-3 + }, + { // Entry 442 + 0x1.058aefa811451a7276bc2f82043b6a7dp-2, + 0x1.0p-2 + }, + { // Entry 443 + -0x1.058aefa811451a7276bc2f82043b6a7dp-2, + -0x1.0p-2 + }, + { // Entry 444 + 0x1.058aefa811452b8387cd4093155eafe4p-2, + 0x1.0000000000001p-2 + }, + { // Entry 445 + -0x1.058aefa811452b8387cd4093155eafe4p-2, + -0x1.0000000000001p-2 + }, + { // Entry 446 + 0x1.015891c9eaef6e78c471eee9894ceabdp-3, + 0x1.fffffffffffffp-4 + }, + { // Entry 447 + -0x1.015891c9eaef6e78c471eee9894ceabdp-3, + -0x1.fffffffffffffp-4 + }, + { // Entry 448 + 0x1.015891c9eaef7699467a0f6b916c6494p-3, + 0x1.0p-3 + }, + { // Entry 449 + -0x1.015891c9eaef7699467a0f6b916c6494p-3, + -0x1.0p-3 + }, + { // Entry 450 + 0x1.015891c9eaef86da4a8a506fa1b18969p-3, + 0x1.0000000000001p-3 + }, + { // Entry 451 + -0x1.015891c9eaef86da4a8a506fa1b18969p-3, + -0x1.0000000000001p-3 + }, + { // Entry 452 + 0x1.005588ad375ac5c30b0a9d5bbe7d5dd7p-4, + 0x1.fffffffffffffp-5 + }, + { // Entry 453 + -0x1.005588ad375ac5c30b0a9d5bbe7d5dd7p-4, + -0x1.fffffffffffffp-5 + }, + { // Entry 454 + 0x1.005588ad375acdcb1312a563c685255ep-4, + 0x1.0p-4 + }, + { // Entry 455 + -0x1.005588ad375acdcb1312a563c685255ep-4, + -0x1.0p-4 + }, + { // Entry 456 + 0x1.005588ad375adddb2322b573d6963771p-4, + 0x1.0000000000001p-4 + }, + { // Entry 457 + -0x1.005588ad375adddb2322b573d6963771p-4, + -0x1.0000000000001p-4 + }, + { // Entry 458 + 0x1.001558891aee1cb29d53ddbdb46e79d9p-5, + 0x1.fffffffffffffp-6 + }, + { // Entry 459 + -0x1.001558891aee1cb29d53ddbdb46e79d9p-5, + -0x1.fffffffffffffp-6 + }, + { // Entry 460 + 0x1.001558891aee24b49dd3fdc5b66ee9f1p-5, + 0x1.0p-5 + }, + { // Entry 461 + -0x1.001558891aee24b49dd3fdc5b66ee9f1p-5, + -0x1.0p-5 + }, + { // Entry 462 + 0x1.001558891aee34b89ed43dd5ba702a52p-5, + 0x1.0000000000001p-5 + }, + { // Entry 463 + -0x1.001558891aee34b89ed43dd5ba702a52p-5, + -0x1.0000000000001p-5 + }, + { // Entry 464 + 0x1.000555888ad1c18d8d3255aac6d2acadp-6, + 0x1.fffffffffffffp-7 + }, + { // Entry 465 + -0x1.000555888ad1c18d8d3255aac6d2acadp-6, + -0x1.fffffffffffffp-7 + }, + { // Entry 466 + 0x1.000555888ad1c98e0d3a562aced328b5p-6, + 0x1.0p-6 + }, + { // Entry 467 + -0x1.000555888ad1c98e0d3a562aced328b5p-6, + -0x1.0p-6 + }, + { // Entry 468 + 0x1.000555888ad1d98f0d4a572aded438c7p-6, + 0x1.0000000000001p-6 + }, + { // Entry 469 + -0x1.000555888ad1d98f0d4a572aded438c7p-6, + -0x1.0000000000001p-6 + }, + { // Entry 470 + 0x1.000155588891a53723d0cfc25d992fd2p-7, + 0x1.fffffffffffffp-8 + }, + { // Entry 471 + -0x1.000155588891a53723d0cfc25d992fd2p-7, + -0x1.fffffffffffffp-8 + }, + { // Entry 472 + 0x1.000155588891ad3743d14fc45da12ef2p-7, + 0x1.0p-7 + }, + { // Entry 473 + -0x1.000155588891ad3743d14fc45da12ef2p-7, + -0x1.0p-7 + }, + { // Entry 474 + 0x1.000155588891bd3783d24fc85db13332p-7, + 0x1.0000000000001p-7 + }, + { // Entry 475 + -0x1.000155588891bd3783d24fc85db13332p-7, + -0x1.0000000000001p-7 + }, + { // Entry 476 + 0x1.000055558888a51ae61ef133fc078f9ap-8, + 0x1.fffffffffffffp-9 + }, + { // Entry 477 + -0x1.000055558888a51ae61ef133fc078f9ap-8, + -0x1.fffffffffffffp-9 + }, + { // Entry 478 + 0x1.000055558888ad1aee1ef9340407975ap-8, + 0x1.0p-8 + }, + { // Entry 479 + -0x1.000055558888ad1aee1ef9340407975ap-8, + -0x1.0p-8 + }, + { // Entry 480 + 0x1.000055558888bd1afe1f09341407a85bp-8, + 0x1.0000000000001p-8 + }, + { // Entry 481 + -0x1.000055558888bd1afe1f09341407a85bp-8, + -0x1.0000000000001p-8 + }, + { // Entry 482 + 0x1.000015555888811acfc98c1e9ae230fcp-9, + 0x1.fffffffffffffp-10 + }, + { // Entry 483 + -0x1.000015555888811acfc98c1e9ae230fcp-9, + -0x1.fffffffffffffp-10 + }, + { // Entry 484 + 0x1.000015555888891ad1c98c9e9b0230f4p-9, + 0x1.0p-9 + }, + { // Entry 485 + -0x1.000015555888891ad1c98c9e9b0230f4p-9, + -0x1.0p-9 + }, + { // Entry 486 + 0x1.000015555888991ad5c98d9e9b423144p-9, + 0x1.0000000000001p-9 + }, + { // Entry 487 + -0x1.000015555888991ad5c98d9e9b423144p-9, + -0x1.0000000000001p-9 + }, + { // Entry 488 + 0x1.000005555588808ad12d373b75ab20a3p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 489 + -0x1.000005555588808ad12d373b75ab20a3p-10, + -0x1.fffffffffffffp-11 + }, + { // Entry 490 + 0x1.000005555588888ad1ad374375aba09fp-10, + 0x1.0p-10 + }, + { // Entry 491 + -0x1.000005555588888ad1ad374375aba09fp-10, + -0x1.0p-10 + }, + { // Entry 492 + 0x1.000005555588988ad2ad375375aca0afp-10, + 0x1.0000000000001p-10 + }, + { // Entry 493 + -0x1.000005555588988ad2ad375375aca0afp-10, + -0x1.0000000000001p-10 + }, + { // Entry 494 + 0x1.0000000555554d8888880ad1ad12ee1ep-14, + 0x1.fffffffffffffp-15 + }, + { // Entry 495 + -0x1.0000000555554d8888880ad1ad12ee1ep-14, + -0x1.fffffffffffffp-15 + }, + { // Entry 496 + 0x1.000000055555558888888ad1ad1aee1ep-14, + 0x1.0p-14 + }, + { // Entry 497 + -0x1.000000055555558888888ad1ad1aee1ep-14, + -0x1.0p-14 + }, + { // Entry 498 + 0x1.000000055555658888898ad1ad2aee1ep-14, + 0x1.0000000000001p-14 + }, + { // Entry 499 + -0x1.000000055555658888898ad1ad2aee1ep-14, + -0x1.0000000000001p-14 + }, + { // Entry 500 + 0x1.fffffffffffff0aaaaaaaaaaaa9b1111p-29, + 0x1.fffffffffffffp-29 + }, + { // Entry 501 + -0x1.fffffffffffff0aaaaaaaaaaaa9b1111p-29, + -0x1.fffffffffffffp-29 + }, + { // Entry 502 + 0x1.00000000000000555555555555558888p-28, + 0x1.0p-28 + }, + { // Entry 503 + -0x1.00000000000000555555555555558888p-28, + -0x1.0p-28 + }, + { // Entry 504 + 0x1.00000000000010555555555555658888p-28, + 0x1.0000000000001p-28 + }, + { // Entry 505 + -0x1.00000000000010555555555555658888p-28, + -0x1.0000000000001p-28 + }, + { // Entry 506 + 0x1.fffffffffffff00aaaaaaaaaaaa9ab11p-31, + 0x1.fffffffffffffp-31 + }, + { // Entry 507 + -0x1.fffffffffffff00aaaaaaaaaaaa9ab11p-31, + -0x1.fffffffffffffp-31 + }, + { // Entry 508 + 0x1.00000000000000055555555555555588p-30, + 0x1.0p-30 + }, + { // Entry 509 + -0x1.00000000000000055555555555555588p-30, + -0x1.0p-30 + }, + { // Entry 510 + 0x1.00000000000010055555555555565588p-30, + 0x1.0000000000001p-30 + }, + { // Entry 511 + -0x1.00000000000010055555555555565588p-30, + -0x1.0000000000001p-30 + }, + { // Entry 512 + -0x1.193ea7aad030becbf96ee2aa5b029927p-1, + -0x1.0000000000001p-1 + }, + { // Entry 513 + 0x1.193ea7aad030becbf96ee2aa5b029927p-1, + 0x1.0000000000001p-1 + }, + { // Entry 514 + -0x1.193ea7aad030a976a4198d55053b7cb5p-1, + -0x1.0p-1 + }, + { // Entry 515 + 0x1.193ea7aad030a976a4198d55053b7cb5p-1, + 0x1.0p-1 + }, + { // Entry 516 + -0x1.193ea7aad0309ecbf96ee2aa5aad43d2p-1, + -0x1.fffffffffffffp-2 + }, + { // Entry 517 + 0x1.193ea7aad0309ecbf96ee2aa5aad43d2p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 518 + -0x1.058aefa811452b8387cd4093155eafe4p-2, + -0x1.0000000000001p-2 + }, + { // Entry 519 + 0x1.058aefa811452b8387cd4093155eafe4p-2, + 0x1.0000000000001p-2 + }, + { // Entry 520 + -0x1.058aefa811451a7276bc2f82043b6a7dp-2, + -0x1.0p-2 + }, + { // Entry 521 + 0x1.058aefa811451a7276bc2f82043b6a7dp-2, + 0x1.0p-2 + }, + { // Entry 522 + -0x1.058aefa8114511e9ee33a6f97bb76f0ap-2, + -0x1.fffffffffffffp-3 + }, + { // Entry 523 + 0x1.058aefa8114511e9ee33a6f97bb76f0ap-2, + 0x1.fffffffffffffp-3 + }, + { // Entry 524 + -0x1.015891c9eaef86da4a8a506fa1b18969p-3, + -0x1.0000000000001p-3 + }, + { // Entry 525 + 0x1.015891c9eaef86da4a8a506fa1b18969p-3, + 0x1.0000000000001p-3 + }, + { // Entry 526 + -0x1.015891c9eaef7699467a0f6b916c6494p-3, + -0x1.0p-3 + }, + { // Entry 527 + 0x1.015891c9eaef7699467a0f6b916c6494p-3, + 0x1.0p-3 + }, + { // Entry 528 + -0x1.015891c9eaef6e78c471eee9894ceabdp-3, + -0x1.fffffffffffffp-4 + }, + { // Entry 529 + 0x1.015891c9eaef6e78c471eee9894ceabdp-3, + 0x1.fffffffffffffp-4 + }, + { // Entry 530 + -0x1.005588ad375adddb2322b573d6963771p-4, + -0x1.0000000000001p-4 + }, + { // Entry 531 + 0x1.005588ad375adddb2322b573d6963771p-4, + 0x1.0000000000001p-4 + }, + { // Entry 532 + -0x1.005588ad375acdcb1312a563c685255ep-4, + -0x1.0p-4 + }, + { // Entry 533 + 0x1.005588ad375acdcb1312a563c685255ep-4, + 0x1.0p-4 + }, + { // Entry 534 + -0x1.005588ad375ac5c30b0a9d5bbe7d5dd7p-4, + -0x1.fffffffffffffp-5 + }, + { // Entry 535 + 0x1.005588ad375ac5c30b0a9d5bbe7d5dd7p-4, + 0x1.fffffffffffffp-5 + }, + { // Entry 536 + -0x1.001558891aee34b89ed43dd5ba702a52p-5, + -0x1.0000000000001p-5 + }, + { // Entry 537 + 0x1.001558891aee34b89ed43dd5ba702a52p-5, + 0x1.0000000000001p-5 + }, + { // Entry 538 + -0x1.001558891aee24b49dd3fdc5b66ee9f1p-5, + -0x1.0p-5 + }, + { // Entry 539 + 0x1.001558891aee24b49dd3fdc5b66ee9f1p-5, + 0x1.0p-5 + }, + { // Entry 540 + -0x1.001558891aee1cb29d53ddbdb46e79d9p-5, + -0x1.fffffffffffffp-6 + }, + { // Entry 541 + 0x1.001558891aee1cb29d53ddbdb46e79d9p-5, + 0x1.fffffffffffffp-6 + }, + { // Entry 542 + -0x1.000555888ad1d98f0d4a572aded438c7p-6, + -0x1.0000000000001p-6 + }, + { // Entry 543 + 0x1.000555888ad1d98f0d4a572aded438c7p-6, + 0x1.0000000000001p-6 + }, + { // Entry 544 + -0x1.000555888ad1c98e0d3a562aced328b5p-6, + -0x1.0p-6 + }, + { // Entry 545 + 0x1.000555888ad1c98e0d3a562aced328b5p-6, + 0x1.0p-6 + }, + { // Entry 546 + -0x1.000555888ad1c18d8d3255aac6d2acadp-6, + -0x1.fffffffffffffp-7 + }, + { // Entry 547 + 0x1.000555888ad1c18d8d3255aac6d2acadp-6, + 0x1.fffffffffffffp-7 + }, + { // Entry 548 + -0x1.000155588891bd3783d24fc85db13332p-7, + -0x1.0000000000001p-7 + }, + { // Entry 549 + 0x1.000155588891bd3783d24fc85db13332p-7, + 0x1.0000000000001p-7 + }, + { // Entry 550 + -0x1.000155588891ad3743d14fc45da12ef2p-7, + -0x1.0p-7 + }, + { // Entry 551 + 0x1.000155588891ad3743d14fc45da12ef2p-7, + 0x1.0p-7 + }, + { // Entry 552 + -0x1.000155588891a53723d0cfc25d992fd2p-7, + -0x1.fffffffffffffp-8 + }, + { // Entry 553 + 0x1.000155588891a53723d0cfc25d992fd2p-7, + 0x1.fffffffffffffp-8 + }, + { // Entry 554 + -0x1.000055558888bd1afe1f09341407a85bp-8, + -0x1.0000000000001p-8 + }, + { // Entry 555 + 0x1.000055558888bd1afe1f09341407a85bp-8, + 0x1.0000000000001p-8 + }, + { // Entry 556 + -0x1.000055558888ad1aee1ef9340407975ap-8, + -0x1.0p-8 + }, + { // Entry 557 + 0x1.000055558888ad1aee1ef9340407975ap-8, + 0x1.0p-8 + }, + { // Entry 558 + -0x1.000055558888a51ae61ef133fc078f9ap-8, + -0x1.fffffffffffffp-9 + }, + { // Entry 559 + 0x1.000055558888a51ae61ef133fc078f9ap-8, + 0x1.fffffffffffffp-9 + }, + { // Entry 560 + -0x1.000015555888991ad5c98d9e9b423144p-9, + -0x1.0000000000001p-9 + }, + { // Entry 561 + 0x1.000015555888991ad5c98d9e9b423144p-9, + 0x1.0000000000001p-9 + }, + { // Entry 562 + -0x1.000015555888891ad1c98c9e9b0230f4p-9, + -0x1.0p-9 + }, + { // Entry 563 + 0x1.000015555888891ad1c98c9e9b0230f4p-9, + 0x1.0p-9 + }, + { // Entry 564 + -0x1.000015555888811acfc98c1e9ae230fcp-9, + -0x1.fffffffffffffp-10 + }, + { // Entry 565 + 0x1.000015555888811acfc98c1e9ae230fcp-9, + 0x1.fffffffffffffp-10 + }, + { // Entry 566 + -0x1.000005555588988ad2ad375375aca0afp-10, + -0x1.0000000000001p-10 + }, + { // Entry 567 + 0x1.000005555588988ad2ad375375aca0afp-10, + 0x1.0000000000001p-10 + }, + { // Entry 568 + -0x1.000005555588888ad1ad374375aba09fp-10, + -0x1.0p-10 + }, + { // Entry 569 + 0x1.000005555588888ad1ad374375aba09fp-10, + 0x1.0p-10 + }, + { // Entry 570 + -0x1.000005555588808ad12d373b75ab20a3p-10, + -0x1.fffffffffffffp-11 + }, + { // Entry 571 + 0x1.000005555588808ad12d373b75ab20a3p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 572 + -0x1.000000055555658888898ad1ad2aee1ep-14, + -0x1.0000000000001p-14 + }, + { // Entry 573 + 0x1.000000055555658888898ad1ad2aee1ep-14, + 0x1.0000000000001p-14 + }, + { // Entry 574 + -0x1.000000055555558888888ad1ad1aee1ep-14, + -0x1.0p-14 + }, + { // Entry 575 + 0x1.000000055555558888888ad1ad1aee1ep-14, + 0x1.0p-14 + }, + { // Entry 576 + -0x1.0000000555554d8888880ad1ad12ee1ep-14, + -0x1.fffffffffffffp-15 + }, + { // Entry 577 + 0x1.0000000555554d8888880ad1ad12ee1ep-14, + 0x1.fffffffffffffp-15 + }, + { // Entry 578 + -0x1.00000000000010555555555555658888p-28, + -0x1.0000000000001p-28 + }, + { // Entry 579 + 0x1.00000000000010555555555555658888p-28, + 0x1.0000000000001p-28 + }, + { // Entry 580 + -0x1.00000000000000555555555555558888p-28, + -0x1.0p-28 + }, + { // Entry 581 + 0x1.00000000000000555555555555558888p-28, + 0x1.0p-28 + }, + { // Entry 582 + -0x1.fffffffffffff0aaaaaaaaaaaa9b1111p-29, + -0x1.fffffffffffffp-29 + }, + { // Entry 583 + 0x1.fffffffffffff0aaaaaaaaaaaa9b1111p-29, + 0x1.fffffffffffffp-29 + }, + { // Entry 584 + -0x1.00000000000010055555555555565588p-30, + -0x1.0000000000001p-30 + }, + { // Entry 585 + 0x1.00000000000010055555555555565588p-30, + 0x1.0000000000001p-30 + }, + { // Entry 586 + -0x1.00000000000000055555555555555588p-30, + -0x1.0p-30 + }, + { // Entry 587 + 0x1.00000000000000055555555555555588p-30, + 0x1.0p-30 + }, + { // Entry 588 + -0x1.fffffffffffff00aaaaaaaaaaaa9ab11p-31, + -0x1.fffffffffffffp-31 + }, + { // Entry 589 + 0x1.fffffffffffff00aaaaaaaaaaaa9ab11p-31, + 0x1.fffffffffffffp-31 + }, + { // Entry 590 + HUGE_VAL, + 0x1.0p0 + }, + { // Entry 591 + -HUGE_VAL, + -0x1.0p0 + }, + { // Entry 592 + 0x1.2b708872320e1d31e4b03f1086a9c047p4, + 0x1.fffffffffffffp-1 + }, + { // Entry 593 + -0x1.2b708872320e1d31e4b03f1086a9c047p4, + -0x1.fffffffffffffp-1 + }, + { // Entry 594 + 0x1.0f2eb070230688149a25318fd8d4ea0fp0, + 0x1.921fb54442d18p-1 + }, + { // Entry 595 + -0x1.0f2eb070230688149a25318fd8d4ea0fp0, + -0x1.921fb54442d18p-1 + }, + { // Entry 596 + 0x1.00000000000010p-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 597 + -0x1.00000000000010p-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 598 + 0x1.p-1022, + 0x1.0p-1022 + }, + { // Entry 599 + -0x1.p-1022, + -0x1.0p-1022 + }, + { // Entry 600 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 601 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 602 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 603 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 604 + 0x1.p-1073, + 0x1.0p-1073 + }, + { // Entry 605 + -0x1.p-1073, + -0x1.0p-1073 + }, + { // Entry 606 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 607 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 608 + 0.0, + 0.0 + }, + { // Entry 609 + -0.0, + -0.0 + } +}; diff --git a/tests/math_data/atanhf_intel_data.h b/tests/math_data/atanhf_intel_data.h new file mode 100644 index 000000000..9d8025a1c --- /dev/null +++ b/tests/math_data/atanhf_intel_data.h @@ -0,0 +1,2090 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_atanhf_intel_data[] = { + { // Entry 0 + -0x1.1ffc000000797af0120046e7dc31d3f5p-20, + -0x1.1ffcp-20 + }, + { // Entry 1 + 0x1.1ffc000000797af0120046e7dc31d3f5p-20, + 0x1.1ffcp-20 + }, + { // Entry 2 + -0x1.5f3287f902075197c786c1cf696101b4p-1, + -0x1.30d35cp-1 + }, + { // Entry 3 + 0x1.5f3287f902075197c786c1cf696101b4p-1, + 0x1.30d35cp-1 + }, + { // Entry 4 + -0x1.8a0ca6ffdb34c70bb4a5b23fb6e19d01p-1, + -0x1.4b1df6p-1 + }, + { // Entry 5 + 0x1.8a0ca6ffdb34c70bb4a5b23fb6e19d01p-1, + 0x1.4b1df6p-1 + }, + { // Entry 6 + -0x1.6d46ff0031931d74cbb9c2cfd9429d8cp-3, + -0x1.6973e0p-3 + }, + { // Entry 7 + 0x1.6d46ff0031931d74cbb9c2cfd9429d8cp-3, + 0x1.6973e0p-3 + }, + { // Entry 8 + -0x1.713f610010deb18ee2e239f1963a1405p-12, + -0x1.713f60p-12 + }, + { // Entry 9 + 0x1.713f610010deb18ee2e239f1963a1405p-12, + 0x1.713f60p-12 + }, + { // Entry 10 + -0x1.7141490014d5f81f903df4950464cda8p-12, + -0x1.714148p-12 + }, + { // Entry 11 + 0x1.7141490014d5f81f903df4950464cda8p-12, + 0x1.714148p-12 + }, + { // Entry 12 + -0x1.714177001535ac6e291f246ad5579b0ep-12, + -0x1.714176p-12 + }, + { // Entry 13 + 0x1.714177001535ac6e291f246ad5579b0ep-12, + 0x1.714176p-12 + }, + { // Entry 14 + -0x1.15963da938a6c10a74aafac840a012a1p0, + -0x1.96efa2p-1 + }, + { // Entry 15 + 0x1.15963da938a6c10a74aafac840a012a1p0, + 0x1.96efa2p-1 + }, + { // Entry 16 + -0x1.17f6e9a62565d644cd0022d91487ef7bp0, + -0x1.98acaep-1 + }, + { // Entry 17 + 0x1.17f6e9a62565d644cd0022d91487ef7bp0, + 0x1.98acaep-1 + }, + { // Entry 18 + -0x1.1ba0f2fffc8e369353caacfa549acbf2p0, + -0x1.9b4dc0p-1 + }, + { // Entry 19 + 0x1.1ba0f2fffc8e369353caacfa549acbf2p0, + 0x1.9b4dc0p-1 + }, + { // Entry 20 + -0x1.2dd9b663e5ae06cd47d4cca1f6139598p0, + -0x1.a782a6p-1 + }, + { // Entry 21 + 0x1.2dd9b663e5ae06cd47d4cca1f6139598p0, + 0x1.a782a6p-1 + }, + { // Entry 22 + -0x1.cd2af1003fb97ed31a696564871fd18ap-4, + -0x1.cb3a9ap-4 + }, + { // Entry 23 + 0x1.cd2af1003fb97ed31a696564871fd18ap-4, + 0x1.cb3a9ap-4 + }, + { // Entry 24 + -0x1.d077fc01fda53b80967d942b1ffe2193p-16, + -0x1.d077fcp-16 + }, + { // Entry 25 + 0x1.d077fc01fda53b80967d942b1ffe2193p-16, + 0x1.d077fcp-16 + }, + { // Entry 26 + -0x1.fb0335b41665a445bad16a5da2454d1ap-3, + -0x1.f0e7p-3 + }, + { // Entry 27 + 0x1.fb0335b41665a445bad16a5da2454d1ap-3, + 0x1.f0e7p-3 + }, + { // Entry 28 + -0x1.fbbbe9001627e7188cb48f38c4820e35p-3, + -0x1.f194d0p-3 + }, + { // Entry 29 + 0x1.fbbbe9001627e7188cb48f38c4820e35p-3, + 0x1.f194d0p-3 + }, + { // Entry 30 + -0x1.193d550095876f79105e76c75ca58b2fp-1, + -0x1.fffe04p-2 + }, + { // Entry 31 + 0x1.193d550095876f79105e76c75ca58b2fp-1, + 0x1.fffe04p-2 + }, + { // Entry 32 + -0x1.193ea5002587c5e868720bc46d87505bp-1, + -0x1.fffffcp-2 + }, + { // Entry 33 + 0x1.193ea5002587c5e868720bc46d87505bp-1, + 0x1.fffffcp-2 + }, + { // Entry 34 + 0x1.193ea7aad030a976a4198d55053b7cb5p-1, + 0x1.p-1 + }, + { // Entry 35 + -0x1.193ea7aad030a976a4198d55053b7cb5p-1, + -0x1.p-1 + }, + { // Entry 36 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 37 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 38 + 0x1.00000200000000000000155555d55556p-41, + 0x1.000002p-41 + }, + { // Entry 39 + -0x1.00000200000000000000155555d55556p-41, + -0x1.000002p-41 + }, + { // Entry 40 + 0x1.193ebd0025f7c5edf31cf5a0e285059ep-1, + 0x1.000010p-1 + }, + { // Entry 41 + -0x1.193ebd0025f7c5edf31cf5a0e285059ep-1, + -0x1.000010p-1 + }, + { // Entry 42 + 0x1.05901c768a92c5a23c8e8531ffe01945p-2, + 0x1.0004dap-2 + }, + { // Entry 43 + -0x1.05901c768a92c5a23c8e8531ffe01945p-2, + -0x1.0004dap-2 + }, + { // Entry 44 + 0x1.01d972ffff40cd1cf377322d5faca975p-6, + 0x1.01d4p-6 + }, + { // Entry 45 + -0x1.01d972ffff40cd1cf377322d5faca975p-6, + -0x1.01d4p-6 + }, + { // Entry 46 + 0x1.0b4d0560a980ef9bc645b2c29563e89fp-2, + 0x1.0564p-2 + }, + { // Entry 47 + -0x1.0b4d0560a980ef9bc645b2c29563e89fp-2, + -0x1.0564p-2 + }, + { // Entry 48 + 0x1.0616e1ffd00766707c845454688ac285p-5, + 0x1.06p-5 + }, + { // Entry 49 + -0x1.0616e1ffd00766707c845454688ac285p-5, + -0x1.06p-5 + }, + { // Entry 50 + 0x1.0c1a71e0f243aaabf988a086b92d8098p-2, + 0x1.0624p-2 + }, + { // Entry 51 + -0x1.0c1a71e0f243aaabf988a086b92d8098p-2, + -0x1.0624p-2 + }, + { // Entry 52 + 0x1.068016ffffd89ea5af86d140cc4499acp-9, + 0x1.0680p-9 + }, + { // Entry 53 + -0x1.068016ffffd89ea5af86d140cc4499acp-9, + -0x1.0680p-9 + }, + { // Entry 54 + 0x1.10f99a58d073173f64d078d1921d0abdp-2, + 0x1.0ab0p-2 + }, + { // Entry 55 + -0x1.10f99a58d073173f64d078d1921d0abdp-2, + -0x1.0ab0p-2 + }, + { // Entry 56 + 0x1.10022efcd204975cd5de2eb798c5a366p-4, + 0x1.0f9cp-4 + }, + { // Entry 57 + -0x1.10022efcd204975cd5de2eb798c5a366p-4, + -0x1.0f9cp-4 + }, + { // Entry 58 + 0x1.384c7bbb40817a713670eda9b1b1aacdp-1, + 0x1.1694p-1 + }, + { // Entry 59 + -0x1.384c7bbb40817a713670eda9b1b1aacdp-1, + -0x1.1694p-1 + }, + { // Entry 60 + 0x1.189a2700033273251e12d5eba90e4465p-3, + 0x1.16dcp-3 + }, + { // Entry 61 + -0x1.189a2700033273251e12d5eba90e4465p-3, + -0x1.16dcp-3 + }, + { // Entry 62 + 0x1.3a52accbc786f237ffb73633c18324fbp-1, + 0x1.18p-1 + }, + { // Entry 63 + -0x1.3a52accbc786f237ffb73633c18324fbp-1, + -0x1.18p-1 + }, + { // Entry 64 + 0x1.19c3b0fa86d540072c08c5d6b394b165p-3, + 0x1.18p-3 + }, + { // Entry 65 + -0x1.19c3b0fa86d540072c08c5d6b394b165p-3, + -0x1.18p-3 + }, + { // Entry 66 + 0x1.1c8f7300000b7dc0ff5b03e64623dec6p-4, + 0x1.1c1a7ap-4 + }, + { // Entry 67 + -0x1.1c8f7300000b7dc0ff5b03e64623dec6p-4, + -0x1.1c1a7ap-4 + }, + { // Entry 68 + 0x1.44f16a9bea7f03af529b037b235f31b5p-1, + 0x1.1f5cp-1 + }, + { // Entry 69 + -0x1.44f16a9bea7f03af529b037b235f31b5p-1, + -0x1.1f5cp-1 + }, + { // Entry 70 + 0x1.1ffc000000797af0120046e7dc31d3f5p-20, + 0x1.1ffcp-20 + }, + { // Entry 71 + -0x1.1ffc000000797af0120046e7dc31d3f5p-20, + -0x1.1ffcp-20 + }, + { // Entry 72 + 0x1.27f9cfc34385aff96fa7a25c9010711bp-2, + 0x1.1ffffep-2 + }, + { // Entry 73 + -0x1.27f9cfc34385aff96fa7a25c9010711bp-2, + -0x1.1ffffep-2 + }, + { // Entry 74 + 0x1.5deb9a83ee95c385ba5335580af08f08p-1, + 0x1.30p-1 + }, + { // Entry 75 + -0x1.5deb9a83ee95c385ba5335580af08f08p-1, + -0x1.30p-1 + }, + { // Entry 76 + 0x1.5e0e0298d9eec3ab8b4f4e1b8d295ac3p-1, + 0x1.301646p-1 + }, + { // Entry 77 + -0x1.5e0e0298d9eec3ab8b4f4e1b8d295ac3p-1, + -0x1.301646p-1 + }, + { // Entry 78 + 0x1.5e60e400006f52cb7692b6e8a51da384p-1, + 0x1.304be6p-1 + }, + { // Entry 79 + -0x1.5e60e400006f52cb7692b6e8a51da384p-1, + -0x1.304be6p-1 + }, + { // Entry 80 + 0x1.47f5170000024233854b6203d98d324fp-5, + 0x1.47c844p-5 + }, + { // Entry 81 + -0x1.47f5170000024233854b6203d98d324fp-5, + -0x1.47c844p-5 + }, + { // Entry 82 + 0x1.48ae1cfffeff307b13c17eb56fdcf7c2p-5, + 0x1.4880fep-5 + }, + { // Entry 83 + -0x1.48ae1cfffeff307b13c17eb56fdcf7c2p-5, + -0x1.4880fep-5 + }, + { // Entry 84 + 0x1.79d4c40000354d83f4c26c097b0e75fdp-2, + 0x1.6991dap-2 + }, + { // Entry 85 + -0x1.79d4c40000354d83f4c26c097b0e75fdp-2, + -0x1.6991dap-2 + }, + { // Entry 86 + 0x1.c7139f215feb3a72cf1b5e192f938ea4p-1, + 0x1.6bef72p-1 + }, + { // Entry 87 + -0x1.c7139f215feb3a72cf1b5e192f938ea4p-1, + -0x1.6bef72p-1 + }, + { // Entry 88 + 0x1.7140e3001401c1b014172d6fd91711aep-12, + 0x1.7140e2p-12 + }, + { // Entry 89 + -0x1.7140e3001401c1b014172d6fd91711aep-12, + -0x1.7140e2p-12 + }, + { // Entry 90 + 0x1.e05648db7af67a5476dcef31c7834740p-1, + 0x1.77fffep-1 + }, + { // Entry 91 + -0x1.e05648db7af67a5476dcef31c7834740p-1, + -0x1.77fffep-1 + }, + { // Entry 92 + 0x1.77fffe0000000010e5f5104d55b356b3p-30, + 0x1.77fffep-30 + }, + { // Entry 93 + -0x1.77fffe0000000010e5f5104d55b356b3p-30, + -0x1.77fffep-30 + }, + { // Entry 94 + 0x1.93b0aee21c2c808f5840a8fdec9984e1p-2, + 0x1.80p-2 + }, + { // Entry 95 + -0x1.93b0aee21c2c808f5840a8fdec9984e1p-2, + -0x1.80p-2 + }, + { // Entry 96 + 0x1.f22781be9e69629e565cb27d7e8be241p-1, + 0x1.800026p-1 + }, + { // Entry 97 + -0x1.f22781be9e69629e565cb27d7e8be241p-1, + -0x1.800026p-1 + }, + { // Entry 98 + 0x1.f22a81c2c1df6e290a34d78c0e42165fp-1, + 0x1.800176p-1 + }, + { // Entry 99 + -0x1.f22a81c2c1df6e290a34d78c0e42165fp-1, + -0x1.800176p-1 + }, + { // Entry 100 + 0x1.f4d9b1f449f9637049f465ad813677cdp-1, + 0x1.812ceap-1 + }, + { // Entry 101 + -0x1.f4d9b1f449f9637049f465ad813677cdp-1, + -0x1.812ceap-1 + }, + { // Entry 102 + 0x1.f6a98a347aefdfbfdfc26e6c5fd39d63p-1, + 0x1.81f5b6p-1 + }, + { // Entry 103 + -0x1.f6a98a347aefdfbfdfc26e6c5fd39d63p-1, + -0x1.81f5b6p-1 + }, + { // Entry 104 + 0x1.f6b16e036a1228e2d7592b99921a73fdp-1, + 0x1.81f91ep-1 + }, + { // Entry 105 + -0x1.f6b16e036a1228e2d7592b99921a73fdp-1, + -0x1.81f91ep-1 + }, + { // Entry 106 + 0x1.879115ffff8980f9da1405781afd63e0p-3, + 0x1.82dd3cp-3 + }, + { // Entry 107 + -0x1.879115ffff8980f9da1405781afd63e0p-3, + -0x1.82dd3cp-3 + }, + { // Entry 108 + 0x1.87f3fb0000ab210be606ca39761681bdp-7, + 0x1.87ef32p-7 + }, + { // Entry 109 + -0x1.87f3fb0000ab210be606ca39761681bdp-7, + -0x1.87ef32p-7 + }, + { // Entry 110 + 0x1.8c680b3adda5a66ad6d8da856236ff97p-7, + 0x1.8c6318p-7 + }, + { // Entry 111 + -0x1.8c680b3adda5a66ad6d8da856236ff97p-7, + -0x1.8c6318p-7 + }, + { // Entry 112 + 0x1.9aa64d00181abc40f45d08711a8a0e2dp-3, + 0x1.953bb8p-3 + }, + { // Entry 113 + -0x1.9aa64d00181abc40f45d08711a8a0e2dp-3, + -0x1.953bb8p-3 + }, + { // Entry 114 + 0x1.99ba390011821eb8ba2f398e3ec3cbd2p-4, + 0x1.985dc4p-4 + }, + { // Entry 115 + -0x1.99ba390011821eb8ba2f398e3ec3cbd2p-4, + -0x1.985dc4p-4 + }, + { // Entry 116 + 0x1.a05bacfcccc788b02291ff2a73385befp-5, + 0x1.9ffffep-5 + }, + { // Entry 117 + -0x1.a05bacfcccc788b02291ff2a73385befp-5, + -0x1.9ffffep-5 + }, + { // Entry 118 + 0x1.a64fb7002d9b9b7248958431d95f77ebp-4, + 0x1.a4d240p-4 + }, + { // Entry 119 + -0x1.a64fb7002d9b9b7248958431d95f77ebp-4, + -0x1.a4d240p-4 + }, + { // Entry 120 + 0x1.a64908fbec59b6b02d326674ded2f9f2p-5, + 0x1.a5e962p-5 + }, + { // Entry 121 + -0x1.a64908fbec59b6b02d326674ded2f9f2p-5, + -0x1.a5e962p-5 + }, + { // Entry 122 + 0x1.b192470000fb2118da687cc4160f98c6p-6, + 0x1.b17860p-6 + }, + { // Entry 123 + -0x1.b192470000fb2118da687cc4160f98c6p-6, + -0x1.b17860p-6 + }, + { // Entry 124 + 0x1.d6f45cc922663f64dfff1989368eafd0p-2, + 0x1.b8562ap-2 + }, + { // Entry 125 + -0x1.d6f45cc922663f64dfff1989368eafd0p-2, + -0x1.b8562ap-2 + }, + { // Entry 126 + 0x1.dad882760031b0b207eec53f2bad3a56p-2, + 0x1.bb80c8p-2 + }, + { // Entry 127 + -0x1.dad882760031b0b207eec53f2bad3a56p-2, + -0x1.bb80c8p-2 + }, + { // Entry 128 + 0x1.bcef0900070bb4d60dba7d7916e44f1cp-11, + 0x1.bcef02p-11 + }, + { // Entry 129 + -0x1.bcef0900070bb4d60dba7d7916e44f1cp-11, + -0x1.bcef02p-11 + }, + { // Entry 130 + 0x1.e0648f29a5cb8fa830357eb28463b371p-2, + 0x1.bfffbep-2 + }, + { // Entry 131 + -0x1.e0648f29a5cb8fa830357eb28463b371p-2, + -0x1.bfffbep-2 + }, + { // Entry 132 + 0x1.c2e5e80000474fca411deeabc2d871b2p-6, + 0x1.c2c8c6p-6 + }, + { // Entry 133 + -0x1.c2e5e80000474fca411deeabc2d871b2p-6, + -0x1.c2c8c6p-6 + }, + { // Entry 134 + 0x1.c997430019b045d79984044543bd4322p-4, + 0x1.c7b258p-4 + }, + { // Entry 135 + -0x1.c997430019b045d79984044543bd4322p-4, + -0x1.c7b258p-4 + }, + { // Entry 136 + 0x1.6cc8dca857314e6901156d00f8a3b682p0, + 0x1.c7fffep-1 + }, + { // Entry 137 + -0x1.6cc8dca857314e6901156d00f8a3b682p0, + -0x1.c7fffep-1 + }, + { // Entry 138 + 0x1.c7fffe01e245f9ab162301990550caa9p-16, + 0x1.c7fffep-16 + }, + { // Entry 139 + -0x1.c7fffe01e245f9ab162301990550caa9p-16, + -0x1.c7fffep-16 + }, + { // Entry 140 + 0x1.ed65267d01a1db540b37753c51d66426p-2, + 0x1.ca7436p-2 + }, + { // Entry 141 + -0x1.ed65267d01a1db540b37753c51d66426p-2, + -0x1.ca7436p-2 + }, + { // Entry 142 + 0x1.d48af32968fa3b34457bcff03db0622dp-3, + 0x1.cc8928p-3 + }, + { // Entry 143 + -0x1.d48af32968fa3b34457bcff03db0622dp-3, + -0x1.cc8928p-3 + }, + { // Entry 144 + 0x1.f0c2d8fffefca01290c2ef36330c9115p-2, + 0x1.cd242cp-2 + }, + { // Entry 145 + -0x1.f0c2d8fffefca01290c2ef36330c9115p-2, + -0x1.cd242cp-2 + }, + { // Entry 146 + 0x1.ce535efa32f0cec15b3bccf05c079f19p-5, + 0x1.cdd5e0p-5 + }, + { // Entry 147 + -0x1.ce535efa32f0cec15b3bccf05c079f19p-5, + -0x1.cdd5e0p-5 + }, + { // Entry 148 + 0x1.d0703e01fd8bbf96395ed2f62f54fdcap-16, + 0x1.d0703ep-16 + }, + { // Entry 149 + -0x1.d0703e01fd8bbf96395ed2f62f54fdcap-16, + -0x1.d0703ep-16 + }, + { // Entry 150 + 0x1.f84fd66cf58e3da9e2d75ce683cca2d0p-2, + 0x1.d32406p-2 + }, + { // Entry 151 + -0x1.f84fd66cf58e3da9e2d75ce683cca2d0p-2, + -0x1.d32406p-2 + }, + { // Entry 152 + 0x1.dca60100427d4d26515dcb19009e0fe7p-4, + 0x1.da822cp-4 + }, + { // Entry 153 + -0x1.dca60100427d4d26515dcb19009e0fe7p-4, + -0x1.da822cp-4 + }, + { // Entry 154 + 0x1.f19057907b6a6fe84ba8e4830b7a0799p-3, + 0x1.e7fffep-3 + }, + { // Entry 155 + -0x1.f19057907b6a6fe84ba8e4830b7a0799p-3, + -0x1.e7fffep-3 + }, + { // Entry 156 + 0x1.ef311b0049dc13b5b0e01b868b4cfc92p-4, + 0x1.eccb14p-4 + }, + { // Entry 157 + -0x1.ef311b0049dc13b5b0e01b868b4cfc92p-4, + -0x1.eccb14p-4 + }, + { // Entry 158 + 0x1.ee703b40bad448188d321c9cf1c77c2fp-6, + 0x1.ee49d2p-6 + }, + { // Entry 159 + -0x1.ee703b40bad448188d321c9cf1c77c2fp-6, + -0x1.ee49d2p-6 + }, + { // Entry 160 + 0x1.efa28ecceba94af00baf6a70399b27c5p-6, + 0x1.ef7bdep-6 + }, + { // Entry 161 + -0x1.efa28ecceba94af00baf6a70399b27c5p-6, + -0x1.ef7bdep-6 + }, + { // Entry 162 + 0x1.fa0dc7b72c16fcd1b16623d79ed72b48p-3, + 0x1.effffep-3 + }, + { // Entry 163 + -0x1.fa0dc7b72c16fcd1b16623d79ed72b48p-3, + -0x1.effffep-3 + }, + { // Entry 164 + 0x1.f479ce9e62f1de793e626c5e4cd483bfp-4, + 0x1.f1fffep-4 + }, + { // Entry 165 + -0x1.f479ce9e62f1de793e626c5e4cd483bfp-4, + -0x1.f1fffep-4 + }, + { // Entry 166 + 0x1.f48dfd004492424a2242a7f1b84fde43p-4, + 0x1.f213e0p-4 + }, + { // Entry 167 + -0x1.f48dfd004492424a2242a7f1b84fde43p-4, + -0x1.f213e0p-4 + }, + { // Entry 168 + 0x1.f55565004e1ba77f8c68954d58ad9522p-4, + 0x1.f2d854p-4 + }, + { // Entry 169 + -0x1.f55565004e1ba77f8c68954d58ad9522p-4, + -0x1.f2d854p-4 + }, + { // Entry 170 + 0x1.fec794ffff80de6f133ff791c5439d8ep-3, + 0x1.f47232p-3 + }, + { // Entry 171 + -0x1.fec794ffff80de6f133ff791c5439d8ep-3, + -0x1.f47232p-3 + }, + { // Entry 172 + 0x1.f813e9004d5cdfb063728666fb66e97fp-4, + 0x1.f58c5ep-4 + }, + { // Entry 173 + -0x1.f813e9004d5cdfb063728666fb66e97fp-4, + -0x1.f58c5ep-4 + }, + { // Entry 174 + 0x1.f7b721ffff991c706d90945105ec030fp-7, + 0x1.f7acfap-7 + }, + { // Entry 175 + -0x1.f7b721ffff991c706d90945105ec030fp-7, + -0x1.f7acfap-7 + }, + { // Entry 176 + 0x1.fbd5f50051fbc9e55c8b2be9e9e21851p-4, + 0x1.f93fe2p-4 + }, + { // Entry 177 + -0x1.fbd5f50051fbc9e55c8b2be9e9e21851p-4, + -0x1.f93fe2p-4 + }, + { // Entry 178 + 0x1.fcfaff0050f8ca3009ab7b1e46b4ec9dp-4, + 0x1.fa6074p-4 + }, + { // Entry 179 + -0x1.fcfaff0050f8ca3009ab7b1e46b4ec9dp-4, + -0x1.fa6074p-4 + }, + { // Entry 180 + 0x1.03a8a30006385ed65d745b5dec7c194ep-2, + 0x1.fc7746p-3 + }, + { // Entry 181 + -0x1.03a8a30006385ed65d745b5dec7c194ep-2, + -0x1.fc7746p-3 + }, + { // Entry 182 + 0x1.fe2a317243079e4fdd1cb855c975cdf1p-6, + 0x1.fep-6 + }, + { // Entry 183 + -0x1.fe2a317243079e4fdd1cb855c975cdf1p-6, + -0x1.fep-6 + }, + { // Entry 184 + 0x1.fe82db7456cf5b9b9edf1b4b77c994bdp-6, + 0x1.fe5894p-6 + }, + { // Entry 185 + -0x1.fe82db7456cf5b9b9edf1b4b77c994bdp-6, + -0x1.fe5894p-6 + }, + { // Entry 186 + 0x1.ffeaa710f5a6e8d16dc905e338c0200fp-7, + 0x1.ffdffep-7 + }, + { // Entry 187 + -0x1.ffeaa710f5a6e8d16dc905e338c0200fp-7, + -0x1.ffdffep-7 + }, + { // Entry 188 + 0x1.7d33cb0c02505f47778ae337ae72ec1fp2, + 0x1.fffe3ep-1 + }, + { // Entry 189 + -0x1.7d33cb0c02505f47778ae337ae72ec1fp2, + -0x1.fffe3ep-1 + }, + { // Entry 190 + 0x1.193e51002cdbc475975ff766fbd1f6b5p-1, + 0x1.ffff7ep-2 + }, + { // Entry 191 + -0x1.193e51002cdbc475975ff766fbd1f6b5p-1, + -0x1.ffff7ep-2 + }, + { // Entry 192 + 0x1.000514847a91cdaebaecfa77f6111dd9p-6, + 0x1.ffff7ep-7 + }, + { // Entry 193 + -0x1.000514847a91cdaebaecfa77f6111dd9p-6, + -0x1.ffff7ep-7 + }, + { // Entry 194 + 0x1.193ea5002587c5e868720bc46d87505bp-1, + 0x1.fffffcp-2 + }, + { // Entry 195 + -0x1.193ea5002587c5e868720bc46d87505bp-1, + -0x1.fffffcp-2 + }, + { // Entry 196 + 0x1.fffffcaaaaa71111155a35aa3dc3d06cp-13, + 0x1.fffffcp-13 + }, + { // Entry 197 + -0x1.fffffcaaaaa71111155a35aa3dc3d06cp-13, + -0x1.fffffcp-13 + }, + { // Entry 198 + -0x1.31dd2cd1386933d1d890b6a9703c16adp1, + -0x1.f77778p-1 + }, + { // Entry 199 + 0x1.31dd2cd1386933d1d890b6a9703c16adp1, + 0x1.f77778p-1 + }, + { // Entry 200 + -0x1.04f663adcdd5e8864c55a5751a0b17b7p1, + -0x1.eeeef0p-1 + }, + { // Entry 201 + 0x1.04f663adcdd5e8864c55a5751a0b17b7p1, + 0x1.eeeef0p-1 + }, + { // Entry 202 + -0x1.d4ef9ebd04658e641423a6ed3defe0dap0, + -0x1.e66668p-1 + }, + { // Entry 203 + 0x1.d4ef9ebd04658e641423a6ed3defe0dap0, + 0x1.e66668p-1 + }, + { // Entry 204 + -0x1.af0395037f075cc7baefa38ef81f508fp0, + -0x1.dddde0p-1 + }, + { // Entry 205 + 0x1.af0395037f075cc7baefa38ef81f508fp0, + 0x1.dddde0p-1 + }, + { // Entry 206 + -0x1.9157e83626a045c7caf65f13d23b0dd3p0, + -0x1.d55558p-1 + }, + { // Entry 207 + 0x1.9157e83626a045c7caf65f13d23b0dd3p0, + 0x1.d55558p-1 + }, + { // Entry 208 + -0x1.78e368cc158d8c46dcfa1f8a88963aa4p0, + -0x1.ccccd0p-1 + }, + { // Entry 209 + 0x1.78e368cc158d8c46dcfa1f8a88963aa4p0, + 0x1.ccccd0p-1 + }, + { // Entry 210 + -0x1.64077e53bbdd057c995616b489d53cf4p0, + -0x1.c44448p-1 + }, + { // Entry 211 + 0x1.64077e53bbdd057c995616b489d53cf4p0, + 0x1.c44448p-1 + }, + { // Entry 212 + -0x1.51cca9ffc51eb62dad1c2d513ab87a52p0, + -0x1.bbbbc0p-1 + }, + { // Entry 213 + 0x1.51cca9ffc51eb62dad1c2d513ab87a52p0, + 0x1.bbbbc0p-1 + }, + { // Entry 214 + -0x1.419343b452798f95458545b3a8e5c365p0, + -0x1.b33338p-1 + }, + { // Entry 215 + 0x1.419343b452798f95458545b3a8e5c365p0, + 0x1.b33338p-1 + }, + { // Entry 216 + -0x1.32ee4432223fd6ff7fc96b745a339d15p0, + -0x1.aaaab0p-1 + }, + { // Entry 217 + 0x1.32ee4432223fd6ff7fc96b745a339d15p0, + 0x1.aaaab0p-1 + }, + { // Entry 218 + -0x1.258fe3b6e537bb3292f6d7e4afbb9d07p0, + -0x1.a22228p-1 + }, + { // Entry 219 + 0x1.258fe3b6e537bb3292f6d7e4afbb9d07p0, + 0x1.a22228p-1 + }, + { // Entry 220 + -0x1.193eb08e5ea8c2c200b0e99c5a36fddep0, + -0x1.9999a0p-1 + }, + { // Entry 221 + 0x1.193eb08e5ea8c2c200b0e99c5a36fddep0, + 0x1.9999a0p-1 + }, + { // Entry 222 + -0x1.0dcf079da2f030ae3fbf6b6f92a2a743p0, + -0x1.911118p-1 + }, + { // Entry 223 + 0x1.0dcf079da2f030ae3fbf6b6f92a2a743p0, + 0x1.911118p-1 + }, + { // Entry 224 + -0x1.031efa1f0ecc8f3a906dd42d8c2123cbp0, + -0x1.888890p-1 + }, + { // Entry 225 + 0x1.031efa1f0ecc8f3a906dd42d8c2123cbp0, + 0x1.888890p-1 + }, + { // Entry 226 + -0x1.f2273d2c4ab521b4cd487640ff959135p-1, + -0x1.800008p-1 + }, + { // Entry 227 + 0x1.f2273d2c4ab521b4cd487640ff959135p-1, + 0x1.800008p-1 + }, + { // Entry 228 + -0x1.df2e7fe4879a14bed3444cebeb14e17ap-1, + -0x1.777780p-1 + }, + { // Entry 229 + 0x1.df2e7fe4879a14bed3444cebeb14e17ap-1, + 0x1.777780p-1 + }, + { // Entry 230 + -0x1.cd3033baff79597658ed84a70792b418p-1, + -0x1.6eeef8p-1 + }, + { // Entry 231 + 0x1.cd3033baff79597658ed84a70792b418p-1, + 0x1.6eeef8p-1 + }, + { // Entry 232 + -0x1.bc0ee367530d66cc841d5f9d30c2b886p-1, + -0x1.666670p-1 + }, + { // Entry 233 + 0x1.bc0ee367530d66cc841d5f9d30c2b886p-1, + 0x1.666670p-1 + }, + { // Entry 234 + -0x1.abb1dc08e18126620d575aabc793b2a9p-1, + -0x1.5ddde8p-1 + }, + { // Entry 235 + 0x1.abb1dc08e18126620d575aabc793b2a9p-1, + 0x1.5ddde8p-1 + }, + { // Entry 236 + -0x1.9c0432b20c814b3021011c479a51acefp-1, + -0x1.555560p-1 + }, + { // Entry 237 + 0x1.9c0432b20c814b3021011c479a51acefp-1, + 0x1.555560p-1 + }, + { // Entry 238 + -0x1.8cf4071c6b253657280e30019b42b6cbp-1, + -0x1.4cccd8p-1 + }, + { // Entry 239 + 0x1.8cf4071c6b253657280e30019b42b6cbp-1, + 0x1.4cccd8p-1 + }, + { // Entry 240 + -0x1.7e71f26de777bc532a40c40569e80be7p-1, + -0x1.444450p-1 + }, + { // Entry 241 + 0x1.7e71f26de777bc532a40c40569e80be7p-1, + 0x1.444450p-1 + }, + { // Entry 242 + -0x1.7070964a5465019869be4292807243adp-1, + -0x1.3bbbc8p-1 + }, + { // Entry 243 + 0x1.7070964a5465019869be4292807243adp-1, + 0x1.3bbbc8p-1 + }, + { // Entry 244 + -0x1.62e443efa416f35cfe72519ab5c49833p-1, + -0x1.333340p-1 + }, + { // Entry 245 + 0x1.62e443efa416f35cfe72519ab5c49833p-1, + 0x1.333340p-1 + }, + { // Entry 246 + -0x1.55c2b577a316f398743bc84818a8366dp-1, + -0x1.2aaab8p-1 + }, + { // Entry 247 + 0x1.55c2b577a316f398743bc84818a8366dp-1, + 0x1.2aaab8p-1 + }, + { // Entry 248 + -0x1.4902d4f8dcabba59533687adf378fc3bp-1, + -0x1.222230p-1 + }, + { // Entry 249 + 0x1.4902d4f8dcabba59533687adf378fc3bp-1, + 0x1.222230p-1 + }, + { // Entry 250 + -0x1.3c9c8e61aec973e370031a7719321089p-1, + -0x1.1999a8p-1 + }, + { // Entry 251 + 0x1.3c9c8e61aec973e370031a7719321089p-1, + 0x1.1999a8p-1 + }, + { // Entry 252 + -0x1.3088a9b5ad202b17e52d8601513662b0p-1, + -0x1.111120p-1 + }, + { // Entry 253 + 0x1.3088a9b5ad202b17e52d8601513662b0p-1, + 0x1.111120p-1 + }, + { // Entry 254 + -0x1.24c0abe8e973d6e99acbd15484fd64f1p-1, + -0x1.088898p-1 + }, + { // Entry 255 + 0x1.24c0abe8e973d6e99acbd15484fd64f1p-1, + 0x1.088898p-1 + }, + { // Entry 256 + -0x1.193ebd0025f7c5edf31cf5a0e285059ep-1, + -0x1.000010p-1 + }, + { // Entry 257 + 0x1.193ebd0025f7c5edf31cf5a0e285059ep-1, + 0x1.000010p-1 + }, + { // Entry 258 + 0x1.193ea7aad030a976a4198d55053b7cb5p-1, + 0x1.p-1 + }, + { // Entry 259 + -0x1.193ea7aad030a976a4198d55053b7cb5p-1, + -0x1.p-1 + }, + { // Entry 260 + 0x1.24c0961556d0aa95d6fb6c106b236048p-1, + 0x1.088888p-1 + }, + { // Entry 261 + -0x1.24c0961556d0aa95d6fb6c106b236048p-1, + -0x1.088888p-1 + }, + { // Entry 262 + 0x1.30889359736e9acf9152fe43f28f7dcdp-1, + 0x1.111110p-1 + }, + { // Entry 263 + -0x1.30889359736e9acf9152fe43f28f7dcdp-1, + -0x1.111110p-1 + }, + { // Entry 264 + 0x1.3c9c77714791547aab37a433668ebfb8p-1, + 0x1.199998p-1 + }, + { // Entry 265 + -0x1.3c9c77714791547aab37a433668ebfb8p-1, + -0x1.199998p-1 + }, + { // Entry 266 + 0x1.4902bd6778eba4dde3659bd4e4b3b796p-1, + 0x1.222220p-1 + }, + { // Entry 267 + -0x1.4902bd6778eba4dde3659bd4e4b3b796p-1, + -0x1.222220p-1 + }, + { // Entry 268 + 0x1.55c29d36f62e0342a6067b58817783bep-1, + 0x1.2aaaa8p-1 + }, + { // Entry 269 + -0x1.55c29d36f62e0342a6067b58817783bep-1, + -0x1.2aaaa8p-1 + }, + { // Entry 270 + 0x1.62e42aefa3a673577e1cbcc51d3a75b3p-1, + 0x1.333330p-1 + }, + { // Entry 271 + -0x1.62e42aefa3a673577e1cbcc51d3a75b3p-1, + -0x1.333330p-1 + }, + { // Entry 272 + 0x1.70707c78ea48dcd2be90243420138634p-1, + 0x1.3bbbb8p-1 + }, + { // Entry 273 + -0x1.70707c78ea48dcd2be90243420138634p-1, + -0x1.3bbbb8p-1 + }, + { // Entry 274 + 0x1.7e71d7b69209fbf8a31f61e28fb38405p-1, + 0x1.444440p-1 + }, + { // Entry 275 + -0x1.7e71d7b69209fbf8a31f61e28fb38405p-1, + -0x1.444440p-1 + }, + { // Entry 276 + 0x1.8cf3eb67c6bcfdb506baa6ecb5f2d950p-1, + 0x1.4cccc8p-1 + }, + { // Entry 277 + -0x1.8cf3eb67c6bcfdb506baa6ecb5f2d950p-1, + -0x1.4cccc8p-1 + }, + { // Entry 278 + 0x1.9c0415e53f585567855afd0c32aa7e17p-1, + 0x1.555550p-1 + }, + { // Entry 279 + -0x1.9c0415e53f585567855afd0c32aa7e17p-1, + -0x1.555550p-1 + }, + { // Entry 280 + 0x1.abb1be04e0a675ba1948b8fb1841584cp-1, + 0x1.5dddd8p-1 + }, + { // Entry 281 + -0x1.abb1be04e0a675ba1948b8fb1841584cp-1, + -0x1.5dddd8p-1 + }, + { // Entry 282 + 0x1.bc0ec407f36921e00a5bfee526dd0834p-1, + 0x1.666660p-1 + }, + { // Entry 283 + -0x1.bc0ec407f36921e00a5bfee526dd0834p-1, + -0x1.666660p-1 + }, + { // Entry 284 + 0x1.cd3012d5c08d242886fcc0f61668a3d5p-1, + 0x1.6eeee8p-1 + }, + { // Entry 285 + -0x1.cd3012d5c08d242886fcc0f61668a3d5p-1, + -0x1.6eeee8p-1 + }, + { // Entry 286 + 0x1.df2e5d46fda42cf27a71863b4cf7c7e6p-1, + 0x1.777770p-1 + }, + { // Entry 287 + -0x1.df2e5d46fda42cf27a71863b4cf7c7e6p-1, + -0x1.777770p-1 + }, + { // Entry 288 + 0x1.f227189a01908f60f615760148cb8e3fp-1, + 0x1.7ffff8p-1 + }, + { // Entry 289 + -0x1.f227189a01908f60f615760148cb8e3fp-1, + -0x1.7ffff8p-1 + }, + { // Entry 290 + 0x1.031ee6b6dd313b8e955cf0deb74b13d5p0, + 0x1.888880p-1 + }, + { // Entry 291 + -0x1.031ee6b6dd313b8e955cf0deb74b13d5p0, + -0x1.888880p-1 + }, + { // Entry 292 + 0x1.0dcef2e94717cf54ab5e3d4ae7c6ab03p0, + 0x1.911108p-1 + }, + { // Entry 293 + -0x1.0dcef2e94717cf54ab5e3d4ae7c6ab03p0, + -0x1.911108p-1 + }, + { // Entry 294 + 0x1.193e9a557b698cfbd9d4a767ef99c767p0, + 0x1.999990p-1 + }, + { // Entry 295 + -0x1.193e9a557b698cfbd9d4a767ef99c767p0, + -0x1.999990p-1 + }, + { // Entry 296 + 0x1.258fcbb1c5e534f37ad64a1e99a869e8p0, + 0x1.a22218p-1 + }, + { // Entry 297 + -0x1.258fcbb1c5e534f37ad64a1e99a869e8p0, + -0x1.a22218p-1 + }, + { // Entry 298 + 0x1.32ee2a03975b57f64a84528990be1f9ap0, + 0x1.aaaaa0p-1 + }, + { // Entry 299 + -0x1.32ee2a03975b57f64a84528990be1f9ap0, + -0x1.aaaaa0p-1 + }, + { // Entry 300 + 0x1.419326e02573d8b3acc7cbf76968fe33p0, + 0x1.b33328p-1 + }, + { // Entry 301 + -0x1.419326e02573d8b3acc7cbf76968fe33p0, + -0x1.b33328p-1 + }, + { // Entry 302 + 0x1.51cc89db34776ccef56dd618e02f1da6p0, + 0x1.bbbbb0p-1 + }, + { // Entry 303 + -0x1.51cc89db34776ccef56dd618e02f1da6p0, + -0x1.bbbbb0p-1 + }, + { // Entry 304 + 0x1.640759eae23a226a9d7c3926242da006p0, + 0x1.c44438p-1 + }, + { // Entry 305 + -0x1.640759eae23a226a9d7c3926242da006p0, + -0x1.c44438p-1 + }, + { // Entry 306 + 0x1.78e33eb126c4263142e4f9584dfaa238p0, + 0x1.ccccc0p-1 + }, + { // Entry 307 + -0x1.78e33eb126c4263142e4f9584dfaa238p0, + -0x1.ccccc0p-1 + }, + { // Entry 308 + 0x1.9157b61fe9d5041ad9f9720e3ae0d7c0p0, + 0x1.d55548p-1 + }, + { // Entry 309 + -0x1.9157b61fe9d5041ad9f9720e3ae0d7c0p0, + -0x1.d55548p-1 + }, + { // Entry 310 + 0x1.af0356f1e19ad530d89ec545995495b6p0, + 0x1.ddddd0p-1 + }, + { // Entry 311 + -0x1.af0356f1e19ad530d89ec545995495b6p0, + -0x1.ddddd0p-1 + }, + { // Entry 312 + 0x1.d4ef4caff7901be8dda0560383f995f5p0, + 0x1.e66658p-1 + }, + { // Entry 313 + -0x1.d4ef4caff7901be8dda0560383f995f5p0, + -0x1.e66658p-1 + }, + { // Entry 314 + 0x1.04f626a98f6c7775f5aa272dfa30aa0cp1, + 0x1.eeeee0p-1 + }, + { // Entry 315 + -0x1.04f626a98f6c7775f5aa272dfa30aa0cp1, + -0x1.eeeee0p-1 + }, + { // Entry 316 + 0x1.31dcb3cf7aadccb53ddc6ab3e5f44cf1p1, + 0x1.f77768p-1 + }, + { // Entry 317 + -0x1.31dcb3cf7aadccb53ddc6ab3e5f44cf1p1, + -0x1.f77768p-1 + }, + { // Entry 318 + -0x1.1542456b37d42c1c6b731df2db40f6c7p3, + -0x1.fffffep-1 + }, + { // Entry 319 + 0x1.1542456b37d42c1c6b731df2db40f6c7p3, + 0x1.fffffep-1 + }, + { // Entry 320 + -0x1.0a2b23e3bab72e81aed0380eac971caep3, + -0x1.fffffcp-1 + }, + { // Entry 321 + 0x1.0a2b23e3bab72e81aed0380eac971caep3, + 0x1.fffffcp-1 + }, + { // Entry 322 + -0x1.03ae5ae08ad1118501202fc82197e98ep3, + -0x1.fffffap-1 + }, + { // Entry 323 + 0x1.03ae5ae08ad1118501202fc82197e98ep3, + 0x1.fffffap-1 + }, + { // Entry 324 + 0x1.1542456b37d42c1c6b731df2db40f6c7p3, + 0x1.fffffep-1 + }, + { // Entry 325 + -0x1.1542456b37d42c1c6b731df2db40f6c7p3, + -0x1.fffffep-1 + }, + { // Entry 326 + 0x1.0a2b23e3bab72e81aed0380eac971caep3, + 0x1.fffffcp-1 + }, + { // Entry 327 + -0x1.0a2b23e3bab72e81aed0380eac971caep3, + -0x1.fffffcp-1 + }, + { // Entry 328 + 0x1.03ae5ae08ad1118501202fc82197e98ep3, + 0x1.fffffap-1 + }, + { // Entry 329 + -0x1.03ae5ae08ad1118501202fc82197e98ep3, + -0x1.fffffap-1 + }, + { // Entry 330 + 0x1.4a851923985f29e566d100aa672e9ae3p-3, + 0x1.47ae12p-3 + }, + { // Entry 331 + -0x1.4a851923985f29e566d100aa672e9ae3p-3, + -0x1.47ae12p-3 + }, + { // Entry 332 + 0x1.4a851b310bf87886f18db6831c7dbb5bp-3, + 0x1.47ae14p-3 + }, + { // Entry 333 + -0x1.4a851b310bf87886f18db6831c7dbb5bp-3, + -0x1.47ae14p-3 + }, + { // Entry 334 + 0x1.4a851d3e7f91f24c757b36332a215cb4p-3, + 0x1.47ae16p-3 + }, + { // Entry 335 + -0x1.4a851d3e7f91f24c757b36332a215cb4p-3, + -0x1.47ae16p-3 + }, + { // Entry 336 + -0x1.4a851d3e7f91f24c757b36332a215cb4p-3, + -0x1.47ae16p-3 + }, + { // Entry 337 + 0x1.4a851d3e7f91f24c757b36332a215cb4p-3, + 0x1.47ae16p-3 + }, + { // Entry 338 + -0x1.4a851b310bf87886f18db6831c7dbb5bp-3, + -0x1.47ae14p-3 + }, + { // Entry 339 + 0x1.4a851b310bf87886f18db6831c7dbb5bp-3, + 0x1.47ae14p-3 + }, + { // Entry 340 + -0x1.4a851923985f29e566d100aa672e9ae3p-3, + -0x1.47ae12p-3 + }, + { // Entry 341 + 0x1.4a851923985f29e566d100aa672e9ae3p-3, + 0x1.47ae12p-3 + }, + { // Entry 342 + 0x1.193ea6557adbc5e86add80b0ebf2cb85p-1, + 0x1.fffffep-2 + }, + { // Entry 343 + -0x1.193ea6557adbc5e86add80b0ebf2cb85p-1, + -0x1.fffffep-2 + }, + { // Entry 344 + 0x1.193ea7aad030a976a4198d55053b7cb5p-1, + 0x1.p-1 + }, + { // Entry 345 + -0x1.193ea7aad030a976a4198d55053b7cb5p-1, + -0x1.p-1 + }, + { // Entry 346 + 0x1.193eaa557add1b3dc34f47d111dfdba1p-1, + 0x1.000002p-1 + }, + { // Entry 347 + -0x1.193eaa557add1b3dc34f47d111dfdba1p-1, + -0x1.000002p-1 + }, + { // Entry 348 + 0x1.058aee9700341b95bc1c097b18171158p-2, + 0x1.fffffep-3 + }, + { // Entry 349 + -0x1.058aee9700341b95bc1c097b18171158p-2, + -0x1.fffffep-3 + }, + { // Entry 350 + 0x1.058aefa811451a7276bc2f82043b6a7dp-2, + 0x1.p-2 + }, + { // Entry 351 + -0x1.058aefa811451a7276bc2f82043b6a7dp-2, + -0x1.p-2 + }, + { // Entry 352 + 0x1.058af1ca33678565f2fe3a2d94083376p-2, + 0x1.000002p-2 + }, + { // Entry 353 + -0x1.058af1ca33678565f2fe3a2d94083376p-2, + -0x1.000002p-2 + }, + { // Entry 354 + 0x1.015890c5daae76a9c988ea53c9fdd571p-3, + 0x1.fffffep-4 + }, + { // Entry 355 + -0x1.015890c5daae76a9c988ea53c9fdd571p-3, + -0x1.fffffep-4 + }, + { // Entry 356 + 0x1.015891c9eaef7699467a0f6b916c6494p-3, + 0x1.p-3 + }, + { // Entry 357 + -0x1.015891c9eaef7699467a0f6b916c6494p-3, + -0x1.p-3 + }, + { // Entry 358 + 0x1.015893d20b718f3cd8df6c056dc045a9p-3, + 0x1.000002p-3 + }, + { // Entry 359 + -0x1.015893d20b718f3cd8df6c056dc045a9p-3, + -0x1.000002p-3 + }, + { // Entry 360 + 0x1.005587ac3659cdcc1515520e6dd371acp-4, + 0x1.fffffep-5 + }, + { // Entry 361 + -0x1.005587ac3659cdcc1515520e6dd371acp-4, + -0x1.fffffep-5 + }, + { // Entry 362 + 0x1.005588ad375acdcb1312a563c685255ep-4, + 0x1.p-4 + }, + { // Entry 363 + -0x1.005588ad375acdcb1312a563c685255ep-4, + -0x1.p-4 + }, + { // Entry 364 + 0x1.00558aaf395cd3d521277650da85a2b3p-4, + 0x1.000002p-4 + }, + { // Entry 365 + -0x1.00558aaf395cd3d521277650da85a2b3p-4, + -0x1.000002p-4 + }, + { // Entry 366 + 0x1.00155788dade20f3bd9fdc4d8c702791p-5, + 0x1.fffffep-6 + }, + { // Entry 367 + -0x1.00155788dade20f3bd9fdc4d8c702791p-5, + -0x1.fffffep-6 + }, + { // Entry 368 + 0x1.001558891aee24b49dd3fdc5b66ee9f1p-5, + 0x1.p-5 + }, + { // Entry 369 + -0x1.001558891aee24b49dd3fdc5b66ee9f1p-5, + -0x1.p-5 + }, + { // Entry 370 + 0x1.00155a899b0e2db71e84d97e04e64ed3p-5, + 0x1.000002p-5 + }, + { // Entry 371 + -0x1.00155a899b0e2db71e84d97e04e64ed3p-5, + -0x1.000002p-5 + }, + { // Entry 372 + 0x1.000554887ad0c98e0e3a70d6796dd00ap-6, + 0x1.fffffep-7 + }, + { // Entry 373 + -0x1.000554887ad0c98e0e3a70d6796dd00ap-6, + -0x1.fffffep-7 + }, + { // Entry 374 + 0x1.000555888ad1c98e0d3a562aced328b5p-6, + 0x1.p-6 + }, + { // Entry 375 + -0x1.000555888ad1c98e0d3a562aced328b5p-6, + -0x1.p-6 + }, + { // Entry 376 + 0x1.00055788aad3c9ee173b60f77d5e4818p-6, + 0x1.000002p-6 + }, + { // Entry 377 + -0x1.00055788aad3c9ee173b60f77d5e4818p-6, + -0x1.000002p-6 + }, + { // Entry 378 + 0x1.0001545884919d3b03f04f2aec3aad64p-7, + 0x1.fffffep-8 + }, + { // Entry 379 + -0x1.0001545884919d3b03f04f2aec3aad64p-7, + -0x1.fffffep-8 + }, + { // Entry 380 + 0x1.000155588891ad3743d14fc45da12ef2p-7, + 0x1.p-7 + }, + { // Entry 381 + -0x1.000155588891ad3743d14fc45da12ef2p-7, + -0x1.p-7 + }, + { // Entry 382 + 0x1.000157589091cd47c4535d7818762b69p-7, + 0x1.000002p-7 + }, + { // Entry 383 + -0x1.000157589091cd47c4535d7818762b69p-7, + -0x1.000002p-7 + }, + { // Entry 384 + 0x1.000054558788ac1bed20f7e1abb63c0bp-8, + 0x1.fffffep-9 + }, + { // Entry 385 + -0x1.000054558788ac1bed20f7e1abb63c0bp-8, + -0x1.fffffep-9 + }, + { // Entry 386 + 0x1.000055558888ad1aee1ef9340407975ap-8, + 0x1.p-8 + }, + { // Entry 387 + -0x1.000055558888ad1aee1ef9340407975ap-8, + -0x1.p-8 + }, + { // Entry 388 + 0x1.000057558a88af1ef026fdeac0c26c29p-8, + 0x1.000002p-8 + }, + { // Entry 389 + -0x1.000057558a88af1ef026fdeac0c26c29p-8, + -0x1.000002p-8 + }, + { // Entry 390 + 0x1.000014555848890b11c5ac88518c9f8bp-9, + 0x1.fffffep-10 + }, + { // Entry 391 + -0x1.000014555848890b11c5ac88518c9f8bp-9, + -0x1.fffffep-10 + }, + { // Entry 392 + 0x1.000015555888891ad1c98c9e9b0230f4p-9, + 0x1.p-9 + }, + { // Entry 393 + -0x1.000015555888891ad1c98c9e9b0230f4p-9, + -0x1.p-9 + }, + { // Entry 394 + 0x1.000017555908893bd1d20d4b76ad6c40p-9, + 0x1.000002p-9 + }, + { // Entry 395 + -0x1.000017555908893bd1d20d4b76ad6c40p-9, + -0x1.000002p-9 + }, + { // Entry 396 + 0x1.0000045555788889e1ad293e1f844b3dp-10, + 0x1.fffffep-11 + }, + { // Entry 397 + -0x1.0000045555788889e1ad293e1f844b3dp-10, + -0x1.fffffep-11 + }, + { // Entry 398 + 0x1.000005555588888ad1ad374375aba09fp-10, + 0x1.p-10 + }, + { // Entry 399 + -0x1.000005555588888ad1ad374375aba09fp-10, + -0x1.p-10 + }, + { // Entry 400 + 0x1.0000075555a8888d11ad5f6e23264b7cp-10, + 0x1.000002p-10 + }, + { // Entry 401 + -0x1.0000075555a8888d11ad5f6e23264b7cp-10, + -0x1.000002p-10 + }, + { // Entry 402 + 0x1.fffffe0aaaaa8b11112f15a3536b318fp-15, + 0x1.fffffep-15 + }, + { // Entry 403 + -0x1.fffffe0aaaaa8b11112f15a3536b318fp-15, + -0x1.fffffep-15 + }, + { // Entry 404 + 0x1.000000055555558888888ad1ad1aee1ep-14, + 0x1.p-14 + }, + { // Entry 405 + -0x1.000000055555558888888ad1ad1aee1ep-14, + -0x1.p-14 + }, + { // Entry 406 + 0x1.000002055555758888ca8ad1dfe598dap-14, + 0x1.000002p-14 + }, + { // Entry 407 + -0x1.000002055555758888ca8ad1dfe598dap-14, + -0x1.000002p-14 + }, + { // Entry 408 + 0x1.fffffe00000000aaaaa8aaaaacab1110p-29, + 0x1.fffffep-29 + }, + { // Entry 409 + -0x1.fffffe00000000aaaaa8aaaaacab1110p-29, + -0x1.fffffep-29 + }, + { // Entry 410 + 0x1.00000000000000555555555555558888p-28, + 0x1.p-28 + }, + { // Entry 411 + -0x1.00000000000000555555555555558888p-28, + -0x1.p-28 + }, + { // Entry 412 + 0x1.0000020000000055555755555955888bp-28, + 0x1.000002p-28 + }, + { // Entry 413 + -0x1.0000020000000055555755555955888bp-28, + -0x1.000002p-28 + }, + { // Entry 414 + 0x1.fffffe000000000aaaaa8aaaaacaab11p-31, + 0x1.fffffep-31 + }, + { // Entry 415 + -0x1.fffffe000000000aaaaa8aaaaacaab11p-31, + -0x1.fffffep-31 + }, + { // Entry 416 + 0x1.00000000000000055555555555555588p-30, + 0x1.p-30 + }, + { // Entry 417 + -0x1.00000000000000055555555555555588p-30, + -0x1.p-30 + }, + { // Entry 418 + 0x1.00000200000000055555755555955588p-30, + 0x1.000002p-30 + }, + { // Entry 419 + -0x1.00000200000000055555755555955588p-30, + -0x1.000002p-30 + }, + { // Entry 420 + -0x1.193eaa557add1b3dc34f47d111dfdba1p-1, + -0x1.000002p-1 + }, + { // Entry 421 + 0x1.193eaa557add1b3dc34f47d111dfdba1p-1, + 0x1.000002p-1 + }, + { // Entry 422 + -0x1.193ea7aad030a976a4198d55053b7cb5p-1, + -0x1.p-1 + }, + { // Entry 423 + 0x1.193ea7aad030a976a4198d55053b7cb5p-1, + 0x1.p-1 + }, + { // Entry 424 + -0x1.193ea6557adbc5e86add80b0ebf2cb85p-1, + -0x1.fffffep-2 + }, + { // Entry 425 + 0x1.193ea6557adbc5e86add80b0ebf2cb85p-1, + 0x1.fffffep-2 + }, + { // Entry 426 + -0x1.058af1ca33678565f2fe3a2d94083376p-2, + -0x1.000002p-2 + }, + { // Entry 427 + 0x1.058af1ca33678565f2fe3a2d94083376p-2, + 0x1.000002p-2 + }, + { // Entry 428 + -0x1.058aefa811451a7276bc2f82043b6a7dp-2, + -0x1.p-2 + }, + { // Entry 429 + 0x1.058aefa811451a7276bc2f82043b6a7dp-2, + 0x1.p-2 + }, + { // Entry 430 + -0x1.058aee9700341b95bc1c097b18171158p-2, + -0x1.fffffep-3 + }, + { // Entry 431 + 0x1.058aee9700341b95bc1c097b18171158p-2, + 0x1.fffffep-3 + }, + { // Entry 432 + -0x1.015893d20b718f3cd8df6c056dc045a9p-3, + -0x1.000002p-3 + }, + { // Entry 433 + 0x1.015893d20b718f3cd8df6c056dc045a9p-3, + 0x1.000002p-3 + }, + { // Entry 434 + -0x1.015891c9eaef7699467a0f6b916c6494p-3, + -0x1.p-3 + }, + { // Entry 435 + 0x1.015891c9eaef7699467a0f6b916c6494p-3, + 0x1.p-3 + }, + { // Entry 436 + -0x1.015890c5daae76a9c988ea53c9fdd571p-3, + -0x1.fffffep-4 + }, + { // Entry 437 + 0x1.015890c5daae76a9c988ea53c9fdd571p-3, + 0x1.fffffep-4 + }, + { // Entry 438 + -0x1.00558aaf395cd3d521277650da85a2b3p-4, + -0x1.000002p-4 + }, + { // Entry 439 + 0x1.00558aaf395cd3d521277650da85a2b3p-4, + 0x1.000002p-4 + }, + { // Entry 440 + -0x1.005588ad375acdcb1312a563c685255ep-4, + -0x1.p-4 + }, + { // Entry 441 + 0x1.005588ad375acdcb1312a563c685255ep-4, + 0x1.p-4 + }, + { // Entry 442 + -0x1.005587ac3659cdcc1515520e6dd371acp-4, + -0x1.fffffep-5 + }, + { // Entry 443 + 0x1.005587ac3659cdcc1515520e6dd371acp-4, + 0x1.fffffep-5 + }, + { // Entry 444 + -0x1.00155a899b0e2db71e84d97e04e64ed3p-5, + -0x1.000002p-5 + }, + { // Entry 445 + 0x1.00155a899b0e2db71e84d97e04e64ed3p-5, + 0x1.000002p-5 + }, + { // Entry 446 + -0x1.001558891aee24b49dd3fdc5b66ee9f1p-5, + -0x1.p-5 + }, + { // Entry 447 + 0x1.001558891aee24b49dd3fdc5b66ee9f1p-5, + 0x1.p-5 + }, + { // Entry 448 + -0x1.00155788dade20f3bd9fdc4d8c702791p-5, + -0x1.fffffep-6 + }, + { // Entry 449 + 0x1.00155788dade20f3bd9fdc4d8c702791p-5, + 0x1.fffffep-6 + }, + { // Entry 450 + -0x1.00055788aad3c9ee173b60f77d5e4818p-6, + -0x1.000002p-6 + }, + { // Entry 451 + 0x1.00055788aad3c9ee173b60f77d5e4818p-6, + 0x1.000002p-6 + }, + { // Entry 452 + -0x1.000555888ad1c98e0d3a562aced328b5p-6, + -0x1.p-6 + }, + { // Entry 453 + 0x1.000555888ad1c98e0d3a562aced328b5p-6, + 0x1.p-6 + }, + { // Entry 454 + -0x1.000554887ad0c98e0e3a70d6796dd00ap-6, + -0x1.fffffep-7 + }, + { // Entry 455 + 0x1.000554887ad0c98e0e3a70d6796dd00ap-6, + 0x1.fffffep-7 + }, + { // Entry 456 + -0x1.000157589091cd47c4535d7818762b69p-7, + -0x1.000002p-7 + }, + { // Entry 457 + 0x1.000157589091cd47c4535d7818762b69p-7, + 0x1.000002p-7 + }, + { // Entry 458 + -0x1.000155588891ad3743d14fc45da12ef2p-7, + -0x1.p-7 + }, + { // Entry 459 + 0x1.000155588891ad3743d14fc45da12ef2p-7, + 0x1.p-7 + }, + { // Entry 460 + -0x1.0001545884919d3b03f04f2aec3aad64p-7, + -0x1.fffffep-8 + }, + { // Entry 461 + 0x1.0001545884919d3b03f04f2aec3aad64p-7, + 0x1.fffffep-8 + }, + { // Entry 462 + -0x1.000057558a88af1ef026fdeac0c26c29p-8, + -0x1.000002p-8 + }, + { // Entry 463 + 0x1.000057558a88af1ef026fdeac0c26c29p-8, + 0x1.000002p-8 + }, + { // Entry 464 + -0x1.000055558888ad1aee1ef9340407975ap-8, + -0x1.p-8 + }, + { // Entry 465 + 0x1.000055558888ad1aee1ef9340407975ap-8, + 0x1.p-8 + }, + { // Entry 466 + -0x1.000054558788ac1bed20f7e1abb63c0bp-8, + -0x1.fffffep-9 + }, + { // Entry 467 + 0x1.000054558788ac1bed20f7e1abb63c0bp-8, + 0x1.fffffep-9 + }, + { // Entry 468 + -0x1.000017555908893bd1d20d4b76ad6c40p-9, + -0x1.000002p-9 + }, + { // Entry 469 + 0x1.000017555908893bd1d20d4b76ad6c40p-9, + 0x1.000002p-9 + }, + { // Entry 470 + -0x1.000015555888891ad1c98c9e9b0230f4p-9, + -0x1.p-9 + }, + { // Entry 471 + 0x1.000015555888891ad1c98c9e9b0230f4p-9, + 0x1.p-9 + }, + { // Entry 472 + -0x1.000014555848890b11c5ac88518c9f8bp-9, + -0x1.fffffep-10 + }, + { // Entry 473 + 0x1.000014555848890b11c5ac88518c9f8bp-9, + 0x1.fffffep-10 + }, + { // Entry 474 + -0x1.0000075555a8888d11ad5f6e23264b7cp-10, + -0x1.000002p-10 + }, + { // Entry 475 + 0x1.0000075555a8888d11ad5f6e23264b7cp-10, + 0x1.000002p-10 + }, + { // Entry 476 + -0x1.000005555588888ad1ad374375aba09fp-10, + -0x1.p-10 + }, + { // Entry 477 + 0x1.000005555588888ad1ad374375aba09fp-10, + 0x1.p-10 + }, + { // Entry 478 + -0x1.0000045555788889e1ad293e1f844b3dp-10, + -0x1.fffffep-11 + }, + { // Entry 479 + 0x1.0000045555788889e1ad293e1f844b3dp-10, + 0x1.fffffep-11 + }, + { // Entry 480 + -0x1.000002055555758888ca8ad1dfe598dap-14, + -0x1.000002p-14 + }, + { // Entry 481 + 0x1.000002055555758888ca8ad1dfe598dap-14, + 0x1.000002p-14 + }, + { // Entry 482 + -0x1.000000055555558888888ad1ad1aee1ep-14, + -0x1.p-14 + }, + { // Entry 483 + 0x1.000000055555558888888ad1ad1aee1ep-14, + 0x1.p-14 + }, + { // Entry 484 + -0x1.fffffe0aaaaa8b11112f15a3536b318fp-15, + -0x1.fffffep-15 + }, + { // Entry 485 + 0x1.fffffe0aaaaa8b11112f15a3536b318fp-15, + 0x1.fffffep-15 + }, + { // Entry 486 + -0x1.0000020000000055555755555955888bp-28, + -0x1.000002p-28 + }, + { // Entry 487 + 0x1.0000020000000055555755555955888bp-28, + 0x1.000002p-28 + }, + { // Entry 488 + -0x1.00000000000000555555555555558888p-28, + -0x1.p-28 + }, + { // Entry 489 + 0x1.00000000000000555555555555558888p-28, + 0x1.p-28 + }, + { // Entry 490 + -0x1.fffffe00000000aaaaa8aaaaacab1110p-29, + -0x1.fffffep-29 + }, + { // Entry 491 + 0x1.fffffe00000000aaaaa8aaaaacab1110p-29, + 0x1.fffffep-29 + }, + { // Entry 492 + -0x1.00000200000000055555755555955588p-30, + -0x1.000002p-30 + }, + { // Entry 493 + 0x1.00000200000000055555755555955588p-30, + 0x1.000002p-30 + }, + { // Entry 494 + -0x1.00000000000000055555555555555588p-30, + -0x1.p-30 + }, + { // Entry 495 + 0x1.00000000000000055555555555555588p-30, + 0x1.p-30 + }, + { // Entry 496 + -0x1.fffffe000000000aaaaa8aaaaacaab11p-31, + -0x1.fffffep-31 + }, + { // Entry 497 + 0x1.fffffe000000000aaaaa8aaaaacaab11p-31, + 0x1.fffffep-31 + }, + { // Entry 498 + HUGE_VALF, + 0x1.p0 + }, + { // Entry 499 + -HUGE_VALF, + -0x1.p0 + }, + { // Entry 500 + 0x1.1542456b37d42c1c6b731df2db40f6c7p3, + 0x1.fffffep-1 + }, + { // Entry 501 + -0x1.1542456b37d42c1c6b731df2db40f6c7p3, + -0x1.fffffep-1 + }, + { // Entry 502 + 0x1.0f2eb16521912336da989907b42e8493p0, + 0x1.921fb6p-1 + }, + { // Entry 503 + -0x1.0f2eb16521912336da989907b42e8493p0, + -0x1.921fb6p-1 + }, + { // Entry 504 + 0x1.000002p-126, + 0x1.000002p-126 + }, + { // Entry 505 + -0x1.000002p-126, + -0x1.000002p-126 + }, + { // Entry 506 + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 507 + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 508 + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 509 + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 510 + 0x1.fffff8p-127, + 0x1.fffff8p-127 + }, + { // Entry 511 + -0x1.fffff8p-127, + -0x1.fffff8p-127 + }, + { // Entry 512 + 0x1.p-148, + 0x1.p-148 + }, + { // Entry 513 + -0x1.p-148, + -0x1.p-148 + }, + { // Entry 514 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 515 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 516 + 0.0, + 0.0f + }, + { // Entry 517 + -0.0, + -0.0f + } +}; diff --git a/tests/math_data/cbrt_intel_data.h b/tests/math_data/cbrt_intel_data.h new file mode 100644 index 000000000..9bb47089c --- /dev/null +++ b/tests/math_data/cbrt_intel_data.h @@ -0,0 +1,2274 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_cbrt_intel_data[] = { + { // Entry 0 + -0x1.p-10, + -0x1.0p-30 + }, + { // Entry 1 + 0x1.p-10, + 0x1.0p-30 + }, + { // Entry 2 + -0x1.00000000007fffffffffc00000000035p-3, + -0x1.00000000018p-9 + }, + { // Entry 3 + 0x1.00000000007fffffffffc00000000035p-3, + 0x1.00000000018p-9 + }, + { // Entry 4 + -0x1.0000000007ffffffffc0000000035555p-340, + -0x1.00000000180p-1020 + }, + { // Entry 5 + 0x1.0000000007ffffffffc0000000035555p-340, + 0x1.00000000180p-1020 + }, + { // Entry 6 + -0x1.9986657fedfe4fd36e533ebb59e96ee6p-14, + -0x1.060p-40 + }, + { // Entry 7 + 0x1.9986657fedfe4fd36e533ebb59e96ee6p-14, + 0x1.060p-40 + }, + { // Entry 8 + -0x1.45abfb7ef7189911ba894c45eca1ddcap-1, + -0x1.0787c1fa77ce0p-2 + }, + { // Entry 9 + 0x1.45abfb7ef7189911ba894c45eca1ddcap-1, + 0x1.0787c1fa77ce0p-2 + }, + { // Entry 10 + -0x1.9e9ee2bee69fe80c4f73cb59ccb7f3d1p5, + -0x1.0fe6fc05ac8c0p17 + }, + { // Entry 11 + 0x1.9e9ee2bee69fe80c4f73cb59ccb7f3d1p5, + 0x1.0fe6fc05ac8c0p17 + }, + { // Entry 12 + -0x1.493b33358f83ff197c29192baacf2763p-9, + -0x1.10441104412p-26 + }, + { // Entry 13 + 0x1.493b33358f83ff197c29192baacf2763p-9, + 0x1.10441104412p-26 + }, + { // Entry 14 + -0x1.9f187bb994b4e822d4c29f84eda66145p-1, + -0x1.10d67c062d7e0p-1 + }, + { // Entry 15 + 0x1.9f187bb994b4e822d4c29f84eda66145p-1, + 0x1.10d67c062d7e0p-1 + }, + { // Entry 16 + -0x1.0af6562f82937800f6aaeb59ca8be923p-2, + -0x1.2250ab3726b08p-6 + }, + { // Entry 17 + 0x1.0af6562f82937800f6aaeb59ca8be923p-2, + 0x1.2250ab3726b08p-6 + }, + { // Entry 18 + -0x1.a9cd919402f48820501d0a16e616a1efp30, + -0x1.268029abf1585p92 + }, + { // Entry 19 + 0x1.a9cd919402f48820501d0a16e616a1efp30, + 0x1.268029abf1585p92 + }, + { // Entry 20 + -0x1.aa74fb53ace248137ec2a68f4e2c0e6ap-11, + -0x1.27dc102fbaaecp-31 + }, + { // Entry 21 + 0x1.aa74fb53ace248137ec2a68f4e2c0e6ap-11, + 0x1.27dc102fbaaecp-31 + }, + { // Entry 22 + -0x1.bfb5c1cdaa6ddfd032c8a87db7a19ca2p-5, + -0x1.5655956559580p-13 + }, + { // Entry 23 + 0x1.bfb5c1cdaa6ddfd032c8a87db7a19ca2p-5, + 0x1.5655956559580p-13 + }, + { // Entry 24 + -0x1.cb8a75541abed81fa799464451a558d3p30, + -0x1.7232560b9ccc6p92 + }, + { // Entry 25 + 0x1.cb8a75541abed81fa799464451a558d3p30, + 0x1.7232560b9ccc6p92 + }, + { // Entry 26 + -0x1.7d038d6155dc480a9f29e86566a5f43dp-356, + -0x1.a60p-1067 + }, + { // Entry 27 + 0x1.7d038d6155dc480a9f29e86566a5f43dp-356, + 0x1.a60p-1067 + }, + { // Entry 28 + -0x1.e3b9dfbcafcda8395331b22320212c4cp7, + -0x1.afc6abf5d0ce0p23 + }, + { // Entry 29 + 0x1.e3b9dfbcafcda8395331b22320212c4cp7, + 0x1.afc6abf5d0ce0p23 + }, + { // Entry 30 + -0x1.84ad603727a0508cbedd2bca0ec48725p0, + -0x1.bffa90d87aa98p1 + }, + { // Entry 31 + 0x1.84ad603727a0508cbedd2bca0ec48725p0, + 0x1.bffa90d87aa98p1 + }, + { // Entry 32 + -0x1.947c09fa258151cfeee85175bc41fb81p-3, + -0x1.f8e38e38e38e4p-8 + }, + { // Entry 33 + 0x1.947c09fa258151cfeee85175bc41fb81p-3, + 0x1.f8e38e38e38e4p-8 + }, + { // Entry 34 + -0x1.ffffffffffff9fffffffffffedffffffp-341, + -0x1.fffffffffffeep-1021 + }, + { // Entry 35 + 0x1.ffffffffffff9fffffffffffedffffffp-341, + 0x1.fffffffffffeep-1021 + }, + { // Entry 36 + 0x1.428a2f98d728c24ae0d4448847c4a6bap-341, + 0x1.0000000000003p-1022 + }, + { // Entry 37 + -0x1.428a2f98d728c24ae0d4448847c4a6bap-341, + -0x1.0000000000003p-1022 + }, + { // Entry 38 + 0x1.965fea53d6e3faf702e41590b070bffbp-14, + 0x1.0000000000006p-40 + }, + { // Entry 39 + -0x1.965fea53d6e3faf702e41590b070bffbp-14, + -0x1.0000000000006p-40 + }, + { // Entry 40 + 0x1.965fea53d6e3faf702e41590b070bffbp0, + 0x1.0000000000006p2 + }, + { // Entry 41 + -0x1.965fea53d6e3faf702e41590b070bffbp0, + -0x1.0000000000006p2 + }, + { // Entry 42 + 0x1.965fea53d6e607dd91906073bf1a35edp0, + 0x1.0000000000044p2 + }, + { // Entry 43 + -0x1.965fea53d6e607dd91906073bf1a35edp0, + -0x1.0000000000044p2 + }, + { // Entry 44 + 0x1.965fea53d6e697ca348e11e2a091d5b6p0, + 0x1.0000000000055p2 + }, + { // Entry 45 + -0x1.965fea53d6e697ca348e11e2a091d5b6p0, + -0x1.0000000000055p2 + }, + { // Entry 46 + 0x1.00000000000cbfffffffff5d70p1, + 0x1.0000000000264p3 + }, + { // Entry 47 + -0x1.00000000000cbfffffffff5d70p1, + -0x1.0000000000264p3 + }, + { // Entry 48 + 0x1.965fea53d702f7bcb128b0aa890997e0p0, + 0x1.00000000003afp2 + }, + { // Entry 49 + -0x1.965fea53d702f7bcb128b0aa890997e0p0, + -0x1.00000000003afp2 + }, + { // Entry 50 + 0x1.428a2f98d75e6fd4d753df927b6b1d4fp-14, + 0x1.00000000008p-41 + }, + { // Entry 51 + -0x1.428a2f98d75e6fd4d753df927b6b1d4fp-14, + -0x1.00000000008p-41 + }, + { // Entry 52 + 0x1.00000000007fffffffffc00000000035p-3, + 0x1.00000000018p-9 + }, + { // Entry 53 + -0x1.00000000007fffffffffc00000000035p-3, + -0x1.00000000018p-9 + }, + { // Entry 54 + 0x1.965fea53da1087ffad4108c4ea80cbc2p-14, + 0x1.00000000060p-40 + }, + { // Entry 55 + -0x1.965fea53da1087ffad4108c4ea80cbc2p-14, + -0x1.00000000060p-40 + }, + { // Entry 56 + 0x1.965fea53da4af7aa8f6e6d4048e52f2bp1, + 0x1.00000000066e7p5 + }, + { // Entry 57 + -0x1.965fea53da4af7aa8f6e6d4048e52f2bp1, + -0x1.00000000066e7p5 + }, + { // Entry 58 + 0x1.0000000007ffffffffc0000000035555p-340, + 0x1.00000000180p-1020 + }, + { // Entry 59 + -0x1.0000000007ffffffffc0000000035555p-340, + -0x1.00000000180p-1020 + }, + { // Entry 60 + 0x1.965fea55f54097c36a6737d85dd006dcp-40, + 0x1.0000000401004p-118 + }, + { // Entry 61 + -0x1.965fea55f54097c36a6737d85dd006dcp-40, + -0x1.0000000401004p-118 + }, + { // Entry 62 + 0x1.428a2fa15995e7ffff68534daa2646edp0, + 0x1.00000014430e2p1 + }, + { // Entry 63 + -0x1.428a2fa15995e7ffff68534daa2646edp0, + -0x1.00000014430e2p1 + }, + { // Entry 64 + 0x1.428a2fbea35a3d9d86d0a73d050d1379p-348, + 0x1.0000005a0p-1043 + }, + { // Entry 65 + -0x1.428a2fbea35a3d9d86d0a73d050d1379p-348, + -0x1.0000005a0p-1043 + }, + { // Entry 66 + 0x1.965ff2caa42317c00ffd791c040fb91dp-34, + 0x1.00000fff0p-100 + }, + { // Entry 67 + -0x1.965ff2caa42317c00ffd791c040fb91dp-34, + -0x1.00000fff0p-100 + }, + { // Entry 68 + 0x1.965ff2cb2b9860374c7a92e3bf79265dp-14, + 0x1.00001p-40 + }, + { // Entry 69 + -0x1.965ff2cb2b9860374c7a92e3bf79265dp-14, + -0x1.00001p-40 + }, + { // Entry 70 + 0x1.9660b58366b9c81443c564c8519c1649p-341, + 0x1.00018000008p-1021 + }, + { // Entry 71 + -0x1.9660b58366b9c81443c564c8519c1649p-341, + -0x1.00018000008p-1021 + }, + { // Entry 72 + 0x1.96639e80554d07f44482ed4edeb69024p-14, + 0x1.00070p-40 + }, + { // Entry 73 + -0x1.96639e80554d07f44482ed4edeb69024p-14, + -0x1.00070p-40 + }, + { // Entry 74 + 0x1.9665b2342f8d97ab827cc907bea6a6a0p-2, + 0x1.000aecf24b8bbp-4 + }, + { // Entry 75 + -0x1.9665b2342f8d97ab827cc907bea6a6a0p-2, + -0x1.000aecf24b8bbp-4 + }, + { // Entry 76 + 0x1.96664e51470857ba927fd8c83e4a668fp-2, + 0x1.000c14046c27cp-4 + }, + { // Entry 77 + -0x1.96664e51470857ba927fd8c83e4a668fp-2, + -0x1.000c14046c27cp-4 + }, + { // Entry 78 + 0x1.9681cd4d59cf3c49d09a44a6e5a71a0bp-4, + 0x1.00401004000dep-10 + }, + { // Entry 79 + -0x1.9681cd4d59cf3c49d09a44a6e5a71a0bp-4, + -0x1.00401004000dep-10 + }, + { // Entry 80 + 0x1.00254fe4e09a28161b19a150ed679c38p-340, + 0x1.007p-1020 + }, + { // Entry 81 + -0x1.00254fe4e09a28161b19a150ed679c38p-340, + -0x1.007p-1020 + }, + { // Entry 82 + 0x1.42b9323abafd78d0666f2ca1fbd9f8b9p-341, + 0x1.007p-1022 + }, + { // Entry 83 + -0x1.42b9323abafd78d0666f2ca1fbd9f8b9p-341, + -0x1.007p-1022 + }, + { // Entry 84 + 0x1.005a8aa11fd96610f475d13eb6f8247fp-340, + 0x1.011p-1020 + }, + { // Entry 85 + -0x1.005a8aa11fd96610f475d13eb6f8247fp-340, + -0x1.011p-1020 + }, + { // Entry 86 + 0x1.976e211b4a5fda2f3d9110f59316298ap-14, + 0x1.020p-40 + }, + { // Entry 87 + -0x1.976e211b4a5fda2f3d9110f59316298ap-14, + -0x1.020p-40 + }, + { // Entry 88 + 0x1.97f4c72a4cc937c8ec5808f7e0f23f1dp334, + 0x1.03001fc0eb6f0p1004 + }, + { // Entry 89 + -0x1.97f4c72a4cc937c8ec5808f7e0f23f1dp334, + -0x1.03001fc0eb6f0p1004 + }, + { // Entry 90 + 0x1.97f5f8160b8917c80d38a6af1f6f152bp0, + 0x1.03026484c3994p2 + }, + { // Entry 91 + -0x1.97f5f8160b8917c80d38a6af1f6f152bp0, + -0x1.03026484c3994p2 + }, + { // Entry 92 + 0x1.446c1fbe1a821a88b3a25b8549559d1cp-81, + 0x1.0482412090482p-242 + }, + { // Entry 93 + -0x1.446c1fbe1a821a88b3a25b8549559d1cp-81, + -0x1.0482412090482p-242 + }, + { // Entry 94 + 0x1.9986657fedfe4fd36e533ebb59e96ee6p-14, + 0x1.060p-40 + }, + { // Entry 95 + -0x1.9986657fedfe4fd36e533ebb59e96ee6p-14, + -0x1.060p-40 + }, + { // Entry 96 + 0x1.454088d15010f7f343422c761e601e61p-1, + 0x1.068341a0d0680p-2 + }, + { // Entry 97 + -0x1.454088d15010f7f343422c761e601e61p-1, + -0x1.068341a0d0680p-2 + }, + { // Entry 98 + 0x1.9a92c607cfd737e7521bc7f98770b170p2, + 0x1.08046a3c709e3p8 + }, + { // Entry 99 + -0x1.9a92c607cfd737e7521bc7f98770b170p2, + -0x1.08046a3c709e3p8 + }, + { // Entry 100 + 0x1.9a93cde71ba557e6218528c1cb0d6e32p-1, + 0x1.08066749584ddp-1 + }, + { // Entry 101 + -0x1.9a93cde71ba557e6218528c1cb0d6e32p-1, + -0x1.08066749584ddp-1 + }, + { // Entry 102 + 0x1.9a952773d350c7e97b4223564fd73be7p-347, + 0x1.080901ebap-1039 + }, + { // Entry 103 + -0x1.9a952773d350c7e97b4223564fd73be7p-347, + -0x1.080901ebap-1039 + }, + { // Entry 104 + 0x1.032ee63c56e3b55628c6400c742d93edp1, + 0x1.09ab38ed184bap3 + }, + { // Entry 105 + -0x1.032ee63c56e3b55628c6400c742d93edp1, + -0x1.09ab38ed184bap3 + }, + { // Entry 106 + 0x1.9b9968457c86a7d7dbb54f5a02fc037bp4, + 0x1.0a0056960e368p14 + }, + { // Entry 107 + -0x1.9b9968457c86a7d7dbb54f5a02fc037bp4, + -0x1.0a0056960e368p14 + }, + { // Entry 108 + 0x1.9e9f1f2d0855881624b60f77c042b78dp0, + 0x1.0fe772e9039f5p2 + }, + { // Entry 109 + -0x1.9e9f1f2d0855881624b60f77c042b78dp0, + -0x1.0fe772e9039f5p2 + }, + { // Entry 110 + 0x1.9ea753cde1bd0855df2edf015f707a04p1, + 0x1.0ff797ef1a3c3p5 + }, + { // Entry 111 + -0x1.9ea753cde1bd0855df2edf015f707a04p1, + -0x1.0ff797ef1a3c3p5 + }, + { // Entry 112 + 0x1.491fc152578ca7cdd8078fdafcb33036p-357, + 0x1.1p-1070 + }, + { // Entry 113 + -0x1.491fc152578ca7cdd8078fdafcb33036p-357, + -0x1.1p-1070 + }, + { // Entry 114 + 0x1.9eac9efc6e88d7c312cafbfcbd94b5b4p0, + 0x1.1002029e1aaddp2 + }, + { // Entry 115 + -0x1.9eac9efc6e88d7c312cafbfcbd94b5b4p0, + -0x1.1002029e1aaddp2 + }, + { // Entry 116 + 0x1.9f1445f47beb881feb8cc6da6423f1fap0, + 0x1.10ce2ee39f71bp2 + }, + { // Entry 117 + -0x1.9f1445f47beb881feb8cc6da6423f1fap0, + -0x1.10ce2ee39f71bp2 + }, + { // Entry 118 + 0x1.9f16f1b3849098203460c5bf7946e9ddp-1, + 0x1.10d37312af8fap-1 + }, + { // Entry 119 + -0x1.9f16f1b3849098203460c5bf7946e9ddp-1, + -0x1.10d37312af8fap-1 + }, + { // Entry 120 + 0x1.9f22b8991664081f68f99db9a1cc0b73p0, + 0x1.10eaac892a245p2 + }, + { // Entry 121 + -0x1.9f22b8991664081f68f99db9a1cc0b73p0, + -0x1.10eaac892a245p2 + }, + { // Entry 122 + 0x1.9f458921d52a281fafef2e225aaab6c6p0, + 0x1.112f5c03ecec0p2 + }, + { // Entry 123 + -0x1.9f458921d52a281fafef2e225aaab6c6p0, + -0x1.112f5c03ecec0p2 + }, + { // Entry 124 + 0x1.4c4c991ac651a84e0ff0656285977047p1, + 0x1.17f2cafabb46ap4 + }, + { // Entry 125 + -0x1.4c4c991ac651a84e0ff0656285977047p1, + -0x1.17f2cafabb46ap4 + }, + { // Entry 126 + 0x1.a430ecfcf44ee7dc4e735762947d3dc3p0, + 0x1.1b02602c908bfp2 + }, + { // Entry 127 + -0x1.a430ecfcf44ee7dc4e735762947d3dc3p0, + -0x1.1b02602c908bfp2 + }, + { // Entry 128 + 0x1.a6a556b95dffa828a9a81a921f87fa85p-4, + 0x1.1fff905c3adbcp-10 + }, + { // Entry 129 + -0x1.a6a556b95dffa828a9a81a921f87fa85p-4, + -0x1.1fff905c3adbcp-10 + }, + { // Entry 130 + 0x1.a6a58d55e307bdded6f0c26447e14afap-14, + 0x1.2p-40 + }, + { // Entry 131 + -0x1.a6a58d55e307bdded6f0c26447e14afap-14, + -0x1.2p-40 + }, + { // Entry 132 + 0x1.a741dcaa85c507f8f476871a86c8f2fbp-14, + 0x1.214p-40 + }, + { // Entry 133 + -0x1.a741dcaa85c507f8f476871a86c8f2fbp-14, + -0x1.214p-40 + }, + { // Entry 134 + 0x1.a9b9a98cfc11381defe6253a98938775p-4, + 0x1.2656ddd0ef9a9p-10 + }, + { // Entry 135 + -0x1.a9b9a98cfc11381defe6253a98938775p-4, + -0x1.2656ddd0ef9a9p-10 + }, + { // Entry 136 + 0x1.a9ce86294341981ffbd04f46339b7ca3p0, + 0x1.26822529cb997p2 + }, + { // Entry 137 + -0x1.a9ce86294341981ffbd04f46339b7ca3p0, + -0x1.26822529cb997p2 + }, + { // Entry 138 + 0x1.aa3393610111800c773e492ba03c0bc0p-4, + 0x1.2754041e0bd58p-10 + }, + { // Entry 139 + -0x1.aa3393610111800c773e492ba03c0bc0p-4, + -0x1.2754041e0bd58p-10 + }, + { // Entry 140 + 0x1.aa6eaf149711081267d4d3bcfb21576ap-1, + 0x1.27cef4d58fa06p-1 + }, + { // Entry 141 + -0x1.aa6eaf149711081267d4d3bcfb21576ap-1, + -0x1.27cef4d58fa06p-1 + }, + { // Entry 142 + 0x1.ab0111c4f67687eab45b47dba3899345p-14, + 0x1.290p-40 + }, + { // Entry 143 + -0x1.ab0111c4f67687eab45b47dba3899345p-14, + -0x1.290p-40 + }, + { // Entry 144 + 0x1.ab7d23f59ed937e12fad7075ab2a34f5p66, + 0x1.2a032f360b141p200 + }, + { // Entry 145 + -0x1.ab7d23f59ed937e12fad7075ab2a34f5p66, + -0x1.2a032f360b141p200 + }, + { // Entry 146 + 0x1.0e7fe920f31d3746275027b3282172eep-340, + 0x1.2e025c04b85fcp-1020 + }, + { // Entry 147 + -0x1.0e7fe920f31d3746275027b3282172eep-340, + -0x1.2e025c04b85fcp-1020 + }, + { // Entry 148 + 0x1.55aaaaae387217d53fbba423cebb1a2ep-2, + 0x1.304c1304c1304p-5 + }, + { // Entry 149 + -0x1.55aaaaae387217d53fbba423cebb1a2ep-2, + -0x1.304c1304c1304p-5 + }, + { // Entry 150 + 0x1.b3dd56a2b132e7fdf10074b0924288f1p32, + 0x1.3bdfee33b02f8p98 + }, + { // Entry 151 + -0x1.b3dd56a2b132e7fdf10074b0924288f1p32, + -0x1.3bdfee33b02f8p98 + }, + { // Entry 152 + 0x1.b439df3c2659081df6a3085c877c7cffp0, + 0x1.3ca946e736845p2 + }, + { // Entry 153 + -0x1.b439df3c2659081df6a3085c877c7cffp0, + -0x1.3ca946e736845p2 + }, + { // Entry 154 + 0x1.138291eabb92efba9fe0d9849a897aa5p-340, + 0x1.3f1aa4d984256p-1020 + }, + { // Entry 155 + -0x1.138291eabb92efba9fe0d9849a897aa5p-340, + -0x1.3f1aa4d984256p-1020 + }, + { // Entry 156 + 0x1.b5695d4850bf002f93a8951840fdbdc1p-14, + 0x1.3f4p-40 + }, + { // Entry 157 + -0x1.b5695d4850bf002f93a8951840fdbdc1p-14, + -0x1.3f4p-40 + }, + { // Entry 158 + 0x1.13c484138704e8100660522ff714d063p-2, + 0x1.3ffffffffffffp-6 + }, + { // Entry 159 + -0x1.13c484138704e8100660522ff714d063p-2, + -0x1.3ffffffffffffp-6 + }, + { // Entry 160 + 0x1.b67bc3075e4107fa3e70de5d4fa75b20p0, + 0x1.419a4a4598f5ap2 + }, + { // Entry 161 + -0x1.b67bc3075e4107fa3e70de5d4fa75b20p0, + -0x1.419a4a4598f5ap2 + }, + { // Entry 162 + 0x1.b94a867d7d37304bf35180360c8f26bap-11, + 0x1.47d1f47d1f471p-31 + }, + { // Entry 163 + -0x1.b94a867d7d37304bf35180360c8f26bap-11, + -0x1.47d1f47d1f471p-31 + }, + { // Entry 164 + 0x1.ba6940f949a5f802cb51c7c838c7308dp-2, + 0x1.4a5294a5294a5p-4 + }, + { // Entry 165 + -0x1.ba6940f949a5f802cb51c7c838c7308dp-2, + -0x1.4a5294a5294a5p-4 + }, + { // Entry 166 + 0x1.1765862491b577ffff674fac52ee428ep0, + 0x1.4ccccccf6cc89p0 + }, + { // Entry 167 + -0x1.1765862491b577ffff674fac52ee428ep0, + -0x1.4ccccccf6cc89p0 + }, + { // Entry 168 + 0x1.17658624b3b6a7ffff67369ed724b90ap0, + 0x1.4ccccccfe64bdp0 + }, + { // Entry 169 + -0x1.17658624b3b6a7ffff67369ed724b90ap0, + -0x1.4ccccccfe64bdp0 + }, + { // Entry 170 + 0x1.1765862ca9ee78000097306b13e0ad9bp0, + 0x1.4cccccec59b21p0 + }, + { // Entry 171 + -0x1.1765862ca9ee78000097306b13e0ad9bp0, + -0x1.4cccccec59b21p0 + }, + { // Entry 172 + 0x1.c04d1376c37e4817e18315bd6a9e85e3p-8, + 0x1.57b1272bb8441p-22 + }, + { // Entry 173 + -0x1.c04d1376c37e4817e18315bd6a9e85e3p-8, + -0x1.57b1272bb8441p-22 + }, + { // Entry 174 + 0x1.c06ebba26ccd500a0de09b79cc640f3dp-1, + 0x1.57fe95dbd7d28p-1 + }, + { // Entry 175 + -0x1.c06ebba26ccd500a0de09b79cc640f3dp-1, + -0x1.57fe95dbd7d28p-1 + }, + { // Entry 176 + 0x1.c0e29e3b4a9e87f43c4eb9d13de23aefp0, + 0x1.59098ae904084p2 + }, + { // Entry 177 + -0x1.c0e29e3b4a9e87f43c4eb9d13de23aefp0, + -0x1.59098ae904084p2 + }, + { // Entry 178 + 0x1.c3db07e1a14ac838412532030d4d4d78p0, + 0x1.5feea74303d38p2 + }, + { // Entry 179 + -0x1.c3db07e1a14ac838412532030d4d4d78p0, + -0x1.5feea74303d38p2 + }, + { // Entry 180 + 0x1.6d73ab7df4e47b07582a3ea009214428p-14, + 0x1.746p-41 + }, + { // Entry 181 + -0x1.6d73ab7df4e47b07582a3ea009214428p-14, + -0x1.746p-41 + }, + { // Entry 182 + 0x1.22622dd15ed89a9f922c42a1b1289769p-2, + 0x1.75ap-6 + }, + { // Entry 183 + -0x1.22622dd15ed89a9f922c42a1b1289769p-2, + -0x1.75ap-6 + }, + { // Entry 184 + 0x1.cd8515b56ceb3f41561edc76c9bf01b0p-14, + 0x1.770p-40 + }, + { // Entry 185 + -0x1.cd8515b56ceb3f41561edc76c9bf01b0p-14, + -0x1.770p-40 + }, + { // Entry 186 + 0x1.d449b6dbbc459812bdd21f77ccdfd045p-4, + 0x1.87bdb17ed3d1fp-10 + }, + { // Entry 187 + -0x1.d449b6dbbc459812bdd21f77ccdfd045p-4, + -0x1.87bdb17ed3d1fp-10 + }, + { // Entry 188 + 0x1.280a36cf6379ea8fdfafc89cc9d77091p-7, + 0x1.8be2f8be2f8b1p-21 + }, + { // Entry 189 + -0x1.280a36cf6379ea8fdfafc89cc9d77091p-7, + -0x1.8be2f8be2f8b1p-21 + }, + { // Entry 190 + 0x1.75460639f871b7ffff679bb948d1e585p0, + 0x1.8cccccd41928ap1 + }, + { // Entry 191 + -0x1.75460639f871b7ffff679bb948d1e585p0, + -0x1.8cccccd41928ap1 + }, + { // Entry 192 + 0x1.d7bd00808f8337d9a59ba78f7f1d6790p-1, + 0x1.9076c775b5273p-1 + }, + { // Entry 193 + -0x1.d7bd00808f8337d9a59ba78f7f1d6790p-1, + -0x1.9076c775b5273p-1 + }, + { // Entry 194 + 0x1.d7e64dc80f7097f1129998d4da209031p-14, + 0x1.90ep-40 + }, + { // Entry 195 + -0x1.d7e64dc80f7097f1129998d4da209031p-14, + -0x1.90ep-40 + }, + { // Entry 196 + 0x1.da7c2ab04f88d7e99ecbfecf1a524bcbp-14, + 0x1.978p-40 + }, + { // Entry 197 + -0x1.da7c2ab04f88d7e99ecbfecf1a524bcbp-14, + -0x1.978p-40 + }, + { // Entry 198 + 0x1.dad49d2409c36ff2d4c9b994a1547f79p-4, + 0x1.98640c41ec378p-10 + }, + { // Entry 199 + -0x1.dad49d2409c36ff2d4c9b994a1547f79p-4, + -0x1.98640c41ec378p-10 + }, + { // Entry 200 + 0x1.79eafa03cd0c9b7054cf5184f3432188p-1, + 0x1.9bcbd6d204234p-2 + }, + { // Entry 201 + -0x1.79eafa03cd0c9b7054cf5184f3432188p-1, + -0x1.9bcbd6d204234p-2 + }, + { // Entry 202 + 0x1.7a41970365eebffe84779d36e5b55ff9p-4, + 0x1.9ce739ce739c1p-11 + }, + { // Entry 203 + -0x1.7a41970365eebffe84779d36e5b55ff9p-4, + -0x1.9ce739ce739c1p-11 + }, + { // Entry 204 + 0x1.dd182f9eccd338154df52c8068d21c58p-4, + 0x1.9e429e92b01aap-10 + }, + { // Entry 205 + -0x1.dd182f9eccd338154df52c8068d21c58p-4, + -0x1.9e429e92b01aap-10 + }, + { // Entry 206 + 0x1.7b184c99eafd98080039f19cdaba9566p-2, + 0x1.9fa7e9fa7e9f8p-5 + }, + { // Entry 207 + -0x1.7b184c99eafd98080039f19cdaba9566p-2, + -0x1.9fa7e9fa7e9f8p-5 + }, + { // Entry 208 + 0x1.2cf888f8db02e80cf78a32d60db9310ep-1, + 0x1.ap-3 + }, + { // Entry 209 + -0x1.2cf888f8db02e80cf78a32d60db9310ep-1, + -0x1.ap-3 + }, + { // Entry 210 + 0x1.7d9d668054af70ab308f4cce4f06da18p-12, + 0x1.a80p-35 + }, + { // Entry 211 + -0x1.7d9d668054af70ab308f4cce4f06da18p-12, + -0x1.a80p-35 + }, + { // Entry 212 + 0x1.7f867ca5bf7fd8000095d700659c419bp1, + 0x1.ae666667ef215p4 + }, + { // Entry 213 + -0x1.7f867ca5bf7fd8000095d700659c419bp1, + -0x1.ae666667ef215p4 + }, + { // Entry 214 + 0x1.e3ce44a1a91cb00d803d37f957814cd0p-1, + 0x1.affd4ad81d672p-1 + }, + { // Entry 215 + -0x1.e3ce44a1a91cb00d803d37f957814cd0p-1, + -0x1.affd4ad81d672p-1 + }, + { // Entry 216 + 0x1.807936a48a0f47ffff8f15d7f7433972p1, + 0x1.b199999b7b95cp4 + }, + { // Entry 217 + -0x1.807936a48a0f47ffff8f15d7f7433972p1, + -0x1.b199999b7b95cp4 + }, + { // Entry 218 + 0x1.e59391f23400e00084dca80338a86267p-14, + 0x1.b4cp-40 + }, + { // Entry 219 + -0x1.e59391f23400e00084dca80338a86267p-14, + -0x1.b4cp-40 + }, + { // Entry 220 + 0x1.32e4d254e0dc255221323a5c06838a1ap0, + 0x1.b90bf360408b6p0 + }, + { // Entry 221 + -0x1.32e4d254e0dc255221323a5c06838a1ap0, + -0x1.b90bf360408b6p0 + }, + { // Entry 222 + 0x1.e86c9f7f43066f552417904aa615b9a0p3, + 0x1.bc7acad8dd5acp11 + }, + { // Entry 223 + -0x1.e86c9f7f43066f552417904aa615b9a0p3, + -0x1.bc7acad8dd5acp11 + }, + { // Entry 224 + 0x1.e9b5dba58189dbbca0a6d76e870ebb59p-348, + 0x1.cp-1042 + }, + { // Entry 225 + -0x1.e9b5dba58189dbbca0a6d76e870ebb59p-348, + -0x1.cp-1042 + }, + { // Entry 226 + 0x1.eac78857bf50afff5f93dd134572416dp-11, + 0x1.c2f0bc2f0bc21p-31 + }, + { // Entry 227 + -0x1.eac78857bf50afff5f93dd134572416dp-11, + -0x1.c2f0bc2f0bc21p-31 + }, + { // Entry 228 + 0x1.ec05b532dfa5c62bee423818abe2bee1p-14, + 0x1.c66p-40 + }, + { // Entry 229 + -0x1.ec05b532dfa5c62bee423818abe2bee1p-14, + -0x1.c66p-40 + }, + { // Entry 230 + 0x1.ee6a99864dfff7f9fa4d2ad7424eaa16p0, + 0x1.cd0a43a2eeb58p2 + }, + { // Entry 231 + -0x1.ee6a99864dfff7f9fa4d2ad7424eaa16p0, + -0x1.cd0a43a2eeb58p2 + }, + { // Entry 232 + 0x1.3943209755b3d556bbdf7b713db939cbp0, + 0x1.d513b4b6d224dp0 + }, + { // Entry 233 + -0x1.3943209755b3d556bbdf7b713db939cbp0, + -0x1.d513b4b6d224dp0 + }, + { // Entry 234 + 0x1.396bdc60bdb41f01722a27e291122a02p0, + 0x1.d5cac80757178p0 + }, + { // Entry 235 + -0x1.396bdc60bdb41f01722a27e291122a02p0, + -0x1.d5cac80757178p0 + }, + { // Entry 236 + 0x1.8ae2d99c67b21d4a107cd7180cb6047cp0, + 0x1.d5cac80757234p1 + }, + { // Entry 237 + -0x1.8ae2d99c67b21d4a107cd7180cb6047cp0, + -0x1.d5cac80757234p1 + }, + { // Entry 238 + 0x1.8ae2d99c67b3b0c177f3b4d020019db3p0, + 0x1.d5cac8075728ep1 + }, + { // Entry 239 + -0x1.8ae2d99c67b3b0c177f3b4d020019db3p0, + -0x1.d5cac8075728ep1 + }, + { // Entry 240 + 0x1.f51a62037e9555df224a09e8431605ecp-348, + 0x1.ep-1042 + }, + { // Entry 241 + -0x1.f51a62037e9555df224a09e8431605ecp-348, + -0x1.ep-1042 + }, + { // Entry 242 + 0x1.8f1aa664697648005040ca059dec2aa7p1, + 0x1.e501f9914b497p4 + }, + { // Entry 243 + -0x1.8f1aa664697648005040ca059dec2aa7p1, + -0x1.e501f9914b497p4 + }, + { // Entry 244 + 0x1.91d389680d252578c71bd969e9e5df7cp-12, + 0x1.ef0p-35 + }, + { // Entry 245 + -0x1.91d389680d252578c71bd969e9e5df7cp-12, + -0x1.ef0p-35 + }, + { // Entry 246 + 0x1.fa9c3138585675b633ac519bbe7eb6cap-1, + 0x1.fp-1 + }, + { // Entry 247 + -0x1.fa9c3138585675b633ac519bbe7eb6cap-1, + -0x1.fp-1 + }, + { // Entry 248 + 0x1.92a20771ff112584a4790389196565d1p0, + 0x1.f1fca6c583c30p1 + }, + { // Entry 249 + -0x1.92a20771ff112584a4790389196565d1p0, + -0x1.f1fca6c583c30p1 + }, + { // Entry 250 + 0x1.fd7cd96ce16437fdae1d4bfb787b426fp-14, + 0x1.f88p-40 + }, + { // Entry 251 + -0x1.fd7cd96ce16437fdae1d4bfb787b426fp-14, + -0x1.f88p-40 + }, + { // Entry 252 + 0x1.fe9c895bb318681d0b5408d96d1beae5p-1, + 0x1.fbd87fc327a2dp-1 + }, + { // Entry 253 + -0x1.fe9c895bb318681d0b5408d96d1beae5p-1, + -0x1.fbd87fc327a2dp-1 + }, + { // Entry 254 + 0x1.feb271deb951f820004e9934bbbf7e43p-1, + 0x1.fc19e0f734ee1p-1 + }, + { // Entry 255 + -0x1.feb271deb951f820004e9934bbbf7e43p-1, + -0x1.fc19e0f734ee1p-1 + }, + { // Entry 256 + 0x1.9583540d8fdae068f8c9ddb6ceab0c37p-14, + 0x1.fccp-41 + }, + { // Entry 257 + -0x1.9583540d8fdae068f8c9ddb6ceab0c37p-14, + -0x1.fccp-41 + }, + { // Entry 258 + 0x1.feee5cca3c43bff6182abd6ea83a6125p-1, + 0x1.fcccccccccccdp-1 + }, + { // Entry 259 + -0x1.feee5cca3c43bff6182abd6ea83a6125p-1, + -0x1.fcccccccccccdp-1 + }, + { // Entry 260 + 0x1.96143e1178b6a02e01899e1296e91759p-2, + 0x1.fee22eb294d1cp-5 + }, + { // Entry 261 + -0x1.96143e1178b6a02e01899e1296e91759p-2, + -0x1.fee22eb294d1cp-5 + }, + { // Entry 262 + 0x1.ffa545425dad5803a4c5925748cce2a0p-341, + 0x1.feeffffffffffp-1021 + }, + { // Entry 263 + -0x1.ffa545425dad5803a4c5925748cce2a0p-341, + -0x1.feeffffffffffp-1021 + }, + { // Entry 264 + 0x1.ffb49f9263cfa814d8ba77ebbb974678p-4, + 0x1.ff1e000000070p-10 + }, + { // Entry 265 + -0x1.ffb49f9263cfa814d8ba77ebbb974678p-4, + -0x1.ff1e000000070p-10 + }, + { // Entry 266 + 0x1.ffc5b3203ea9282e4a10ace3963e1fbbp1, + 0x1.ff512d4a5d2dcp5 + }, + { // Entry 267 + -0x1.ffc5b3203ea9282e4a10ace3963e1fbbp1, + -0x1.ff512d4a5d2dcp5 + }, + { // Entry 268 + 0x1.965207315dc4902bd076fcf408a70902p-1, + 0x1.ffcb843a0a6cbp-2 + }, + { // Entry 269 + -0x1.965207315dc4902bd076fcf408a70902p-1, + -0x1.ffcb843a0a6cbp-2 + }, + { // Entry 270 + 0x1.965316982580502bb83c58cdaeb3a369p0, + 0x1.ffcf85cbf1176p1 + }, + { // Entry 271 + -0x1.965316982580502bb83c58cdaeb3a369p0, + -0x1.ffcf85cbf1176p1 + }, + { // Entry 272 + 0x1.42801af6b3a2a61ff5fa71d0a6845a9bp-340, + 0x1.ffcffffffffffp-1020 + }, + { // Entry 273 + -0x1.42801af6b3a2a61ff5fa71d0a6845a9bp-340, + -0x1.ffcffffffffffp-1020 + }, + { // Entry 274 + 0x1.965fea101c3caaac6eab292aa5769bcap-14, + 0x1.fffffefffffffp-41 + }, + { // Entry 275 + -0x1.965fea101c3caaac6eab292aa5769bcap-14, + -0x1.fffffefffffffp-41 + }, + { // Entry 276 + 0x1.fffffff555554fc71c718c3f35a9339fp-14, + 0x1.ffffffdffffffp-40 + }, + { // Entry 277 + -0x1.fffffff555554fc71c718c3f35a9339fp-14, + -0x1.ffffffdffffffp-40 + }, + { // Entry 278 + 0x1.965fea4d7d641a86999ad2b1b38192d3p-14, + 0x1.ffffffe7fffffp-41 + }, + { // Entry 279 + -0x1.965fea4d7d641a86999ad2b1b38192d3p-14, + -0x1.ffffffe7fffffp-41 + }, + { // Entry 280 + 0x1.965fea4d7d641a86999ad2b1b38192d3p0, + 0x1.ffffffe7fffffp1 + }, + { // Entry 281 + -0x1.965fea4d7d641a86999ad2b1b38192d3p0, + -0x1.ffffffe7fffffp1 + }, + { // Entry 282 + 0x1.965fea4d7d641a86999ad2b1b38192d3p13, + 0x1.ffffffe7fffffp40 + }, + { // Entry 283 + -0x1.965fea4d7d641a86999ad2b1b38192d3p13, + -0x1.ffffffe7fffffp40 + }, + { // Entry 284 + 0x1.fffffffd55554ffc71c70e30fcc8817fp-14, + 0x1.fffffff7fffffp-40 + }, + { // Entry 285 + -0x1.fffffffd55554ffc71c70e30fcc8817fp-14, + -0x1.fffffff7fffffp-40 + }, + { // Entry 286 + 0x1.fffffffffff34fffffffffaf837fffffp-1, + 0x1.ffffffffffd9fp-1 + }, + { // Entry 287 + -0x1.fffffffffff34fffffffffaf837fffffp-1, + -0x1.ffffffffffd9fp-1 + }, + { // Entry 288 + 0x1.fffffffffff9ffffffffffedffffffffp-341, + 0x1.ffffffffffee0p-1021 + }, + { // Entry 289 + -0x1.fffffffffff9ffffffffffedffffffffp-341, + -0x1.ffffffffffee0p-1021 + }, + { // Entry 290 + 0x1.ffffffffffff9fffffffffffedffffffp-341, + 0x1.fffffffffffeep-1021 + }, + { // Entry 291 + -0x1.ffffffffffff9fffffffffffedffffffp-341, + -0x1.fffffffffffeep-1021 + }, + { // Entry 292 + 0x1.965fea53d6e38034b41ac1fbdae9a22fp-14, + 0x1.fffffffffffefp-41 + }, + { // Entry 293 + -0x1.965fea53d6e38034b41ac1fbdae9a22fp-14, + -0x1.fffffffffffefp-41 + }, + { // Entry 294 + 0x1.965fea53d6e38034b41ac1fbdae9a22fp0, + 0x1.fffffffffffefp1 + }, + { // Entry 295 + -0x1.965fea53d6e38034b41ac1fbdae9a22fp0, + -0x1.fffffffffffefp1 + }, + { // Entry 296 + 0x1.965fea53d6e38034b41ac1fbdae9a22fp13, + 0x1.fffffffffffefp40 + }, + { // Entry 297 + -0x1.965fea53d6e38034b41ac1fbdae9a22fp13, + -0x1.fffffffffffefp40 + }, + { // Entry 298 + 0x1.ffffffffffffeaaaaaaaaaaaa9c71c71p-14, + 0x1.ffffffffffffcp-40 + }, + { // Entry 299 + -0x1.ffffffffffffeaaaaaaaaaaaa9c71c71p-14, + -0x1.ffffffffffffcp-40 + }, + { // Entry 300 + 0x1.ffffffffffffeaaaaaaaaaaaa9c71c71p-341, + 0x1.ffffffffffffcp-1021 + }, + { // Entry 301 + -0x1.ffffffffffffeaaaaaaaaaaaa9c71c71p-341, + -0x1.ffffffffffffcp-1021 + }, + { // Entry 302 + 0x1.428a2f98d728a76a078787ef8fb5d54bp-340, + 0x1.ffffffffffffep-1020 + }, + { // Entry 303 + -0x1.428a2f98d728a76a078787ef8fb5d54bp-340, + -0x1.ffffffffffffep-1020 + }, + { // Entry 304 + 0x1.965fea53d6e3bfb3b0b7db8f7ec17d0fp-341, + 0x1.ffffffffffffep-1022 + }, + { // Entry 305 + -0x1.965fea53d6e3bfb3b0b7db8f7ec17d0fp-341, + -0x1.ffffffffffffep-1022 + }, + { // Entry 306 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 307 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 308 + 0x1.0ce9d573f43b4429b89ec57945e5d434p0, + 0x1.28ba2e8ba2e8cp0 + }, + { // Entry 309 + -0x1.0ce9d573f43b4429b89ec57945e5d434p0, + -0x1.28ba2e8ba2e8cp0 + }, + { // Entry 310 + 0x1.18b16f086288d6f00ce5c5780fcb86f0p0, + 0x1.51745d1745d18p0 + }, + { // Entry 311 + -0x1.18b16f086288d6f00ce5c5780fcb86f0p0, + -0x1.51745d1745d18p0 + }, + { // Entry 312 + 0x1.238f2c8477adc049b515c7f78f3ae422p0, + 0x1.7a2e8ba2e8ba4p0 + }, + { // Entry 313 + -0x1.238f2c8477adc049b515c7f78f3ae422p0, + -0x1.7a2e8ba2e8ba4p0 + }, + { // Entry 314 + 0x1.2dabb7e49e39ff2a10deddc33bc81fccp0, + 0x1.a2e8ba2e8ba30p0 + }, + { // Entry 315 + -0x1.2dabb7e49e39ff2a10deddc33bc81fccp0, + -0x1.a2e8ba2e8ba30p0 + }, + { // Entry 316 + 0x1.372579fd08bf3f740d425e125a1352ffp0, + 0x1.cba2e8ba2e8bcp0 + }, + { // Entry 317 + -0x1.372579fd08bf3f740d425e125a1352ffp0, + -0x1.cba2e8ba2e8bcp0 + }, + { // Entry 318 + 0x1.4013dac5da2a703e1c77ca4721acee1cp0, + 0x1.f45d1745d1748p0 + }, + { // Entry 319 + -0x1.4013dac5da2a703e1c77ca4721acee1cp0, + -0x1.f45d1745d1748p0 + }, + { // Entry 320 + 0x1.48894c52b3445f6f84012f405de32fa2p0, + 0x1.0e8ba2e8ba2eap1 + }, + { // Entry 321 + -0x1.48894c52b3445f6f84012f405de32fa2p0, + -0x1.0e8ba2e8ba2eap1 + }, + { // Entry 322 + 0x1.5094a1d6e6b639229cdb3810b410cd5cp0, + 0x1.22e8ba2e8ba30p1 + }, + { // Entry 323 + -0x1.5094a1d6e6b639229cdb3810b410cd5cp0, + -0x1.22e8ba2e8ba30p1 + }, + { // Entry 324 + 0x1.5841f8c61fd58c8dad04fdec3cf0af73p0, + 0x1.3745d1745d176p1 + }, + { // Entry 325 + -0x1.5841f8c61fd58c8dad04fdec3cf0af73p0, + -0x1.3745d1745d176p1 + }, + { // Entry 326 + 0x1.5f9b5c16910ae69ed06d3e621a09f184p0, + 0x1.4ba2e8ba2e8bcp1 + }, + { // Entry 327 + -0x1.5f9b5c16910ae69ed06d3e621a09f184p0, + -0x1.4ba2e8ba2e8bcp1 + }, + { // Entry 328 + 0x1.66a9398ba2a3a698c051df109f770e88p0, + 0x1.6000000000002p1 + }, + { // Entry 329 + -0x1.66a9398ba2a3a698c051df109f770e88p0, + -0x1.6000000000002p1 + }, + { // Entry 330 + 0x1.6d72b7dcc7672cfcef1093936e2afe79p0, + 0x1.745d1745d1748p1 + }, + { // Entry 331 + -0x1.6d72b7dcc7672cfcef1093936e2afe79p0, + -0x1.745d1745d1748p1 + }, + { // Entry 332 + 0x1.73fdf738e55e14736c80bd51b7812f30p0, + 0x1.88ba2e8ba2e8ep1 + }, + { // Entry 333 + -0x1.73fdf738e55e14736c80bd51b7812f30p0, + -0x1.88ba2e8ba2e8ep1 + }, + { // Entry 334 + 0x1.7a504269f3f8eaacfe698899d72d5624p0, + 0x1.9d1745d1745d4p1 + }, + { // Entry 335 + -0x1.7a504269f3f8eaacfe698899d72d5624p0, + -0x1.9d1745d1745d4p1 + }, + { // Entry 336 + 0x1.806e34d4af571a8ec04858e9296e6f3bp0, + 0x1.b1745d1745d1ap1 + }, + { // Entry 337 + -0x1.806e34d4af571a8ec04858e9296e6f3bp0, + -0x1.b1745d1745d1ap1 + }, + { // Entry 338 + 0x1.865bd841493085e78103debe7c1f93c8p0, + 0x1.c5d1745d17460p1 + }, + { // Entry 339 + -0x1.865bd841493085e78103debe7c1f93c8p0, + -0x1.c5d1745d17460p1 + }, + { // Entry 340 + 0x1.8c1cbc7cd4e55e886cb4a94f63941b44p0, + 0x1.da2e8ba2e8ba6p1 + }, + { // Entry 341 + -0x1.8c1cbc7cd4e55e886cb4a94f63941b44p0, + -0x1.da2e8ba2e8ba6p1 + }, + { // Entry 342 + 0x1.91b40a4df21132c467d86553807600cdp0, + 0x1.ee8ba2e8ba2ecp1 + }, + { // Entry 343 + -0x1.91b40a4df21132c467d86553807600cdp0, + -0x1.ee8ba2e8ba2ecp1 + }, + { // Entry 344 + 0x1.972492d08e2c99d904b83bd8d8b5b7b7p0, + 0x1.01745d1745d19p2 + }, + { // Entry 345 + -0x1.972492d08e2c99d904b83bd8d8b5b7b7p0, + -0x1.01745d1745d19p2 + }, + { // Entry 346 + 0x1.9c70dc04b206ec6b858fbed95865bda0p0, + 0x1.0ba2e8ba2e8bcp2 + }, + { // Entry 347 + -0x1.9c70dc04b206ec6b858fbed95865bda0p0, + -0x1.0ba2e8ba2e8bcp2 + }, + { // Entry 348 + 0x1.a19b2b2929306e418bc85ca14b471159p0, + 0x1.15d1745d1745fp2 + }, + { // Entry 349 + -0x1.a19b2b2929306e418bc85ca14b471159p0, + -0x1.15d1745d1745fp2 + }, + { // Entry 350 + 0x1.a6a58d55e307cd862806e73ea3aa75dcp0, + 0x1.2000000000002p2 + }, + { // Entry 351 + -0x1.a6a58d55e307cd862806e73ea3aa75dcp0, + -0x1.2000000000002p2 + }, + { // Entry 352 + 0x1.ab91deaee6e7398a4db8d908e1d20b42p0, + 0x1.2a2e8ba2e8ba5p2 + }, + { // Entry 353 + -0x1.ab91deaee6e7398a4db8d908e1d20b42p0, + -0x1.2a2e8ba2e8ba5p2 + }, + { // Entry 354 + 0x1.b061d074afb8809398fc89026fd75a85p0, + 0x1.345d1745d1748p2 + }, + { // Entry 355 + -0x1.b061d074afb8809398fc89026fd75a85p0, + -0x1.345d1745d1748p2 + }, + { // Entry 356 + 0x1.b516ee27c2d35cf59a75730f88f173e0p0, + 0x1.3e8ba2e8ba2ebp2 + }, + { // Entry 357 + -0x1.b516ee27c2d35cf59a75730f88f173e0p0, + -0x1.3e8ba2e8ba2ebp2 + }, + { // Entry 358 + 0x1.b9b2a1e9f9da334490d48cb02cb4bf58p0, + 0x1.48ba2e8ba2e8ep2 + }, + { // Entry 359 + -0x1.b9b2a1e9f9da334490d48cb02cb4bf58p0, + -0x1.48ba2e8ba2e8ep2 + }, + { // Entry 360 + 0x1.be36383f4756f16d777bfee1465b907ep0, + 0x1.52e8ba2e8ba31p2 + }, + { // Entry 361 + -0x1.be36383f4756f16d777bfee1465b907ep0, + -0x1.52e8ba2e8ba31p2 + }, + { // Entry 362 + 0x1.c2a2e349098e1ce3cf090c892ec047cap0, + 0x1.5d1745d1745d4p2 + }, + { // Entry 363 + -0x1.c2a2e349098e1ce3cf090c892ec047cap0, + -0x1.5d1745d1745d4p2 + }, + { // Entry 364 + 0x1.c6f9bd91c721629d7d05a54a3b34c8fep0, + 0x1.6745d1745d177p2 + }, + { // Entry 365 + -0x1.c6f9bd91c721629d7d05a54a3b34c8fep0, + -0x1.6745d1745d177p2 + }, + { // Entry 366 + 0x1.cb3bcc7b190568ede2e1277438cb7dc0p0, + 0x1.71745d1745d1ap2 + }, + { // Entry 367 + -0x1.cb3bcc7b190568ede2e1277438cb7dc0p0, + -0x1.71745d1745d1ap2 + }, + { // Entry 368 + 0x1.cf6a025c48d470136550753b069eb686p0, + 0x1.7ba2e8ba2e8bdp2 + }, + { // Entry 369 + -0x1.cf6a025c48d470136550753b069eb686p0, + -0x1.7ba2e8ba2e8bdp2 + }, + { // Entry 370 + 0x1.d385405d97057c2d90e63f01cb80587dp0, + 0x1.85d1745d17460p2 + }, + { // Entry 371 + -0x1.d385405d97057c2d90e63f01cb80587dp0, + -0x1.85d1745d17460p2 + }, + { // Entry 372 + 0x1.d78e581a0c130b55a8fe17e4c041698cp0, + 0x1.9000000000003p2 + }, + { // Entry 373 + -0x1.d78e581a0c130b55a8fe17e4c041698cp0, + -0x1.9000000000003p2 + }, + { // Entry 374 + 0x1.db860d100d75f2cb69726e75e5a5a9a0p0, + 0x1.9a2e8ba2e8ba6p2 + }, + { // Entry 375 + -0x1.db860d100d75f2cb69726e75e5a5a9a0p0, + -0x1.9a2e8ba2e8ba6p2 + }, + { // Entry 376 + 0x1.df6d15e795af02a9c5484050b847db7dp0, + 0x1.a45d1745d1749p2 + }, + { // Entry 377 + -0x1.df6d15e795af02a9c5484050b847db7dp0, + -0x1.a45d1745d1749p2 + }, + { // Entry 378 + 0x1.e3441d93d4a6e4350c223c240878382cp0, + 0x1.ae8ba2e8ba2ecp2 + }, + { // Entry 379 + -0x1.e3441d93d4a6e4350c223c240878382cp0, + -0x1.ae8ba2e8ba2ecp2 + }, + { // Entry 380 + 0x1.e70bc455167843aff629b746acfdb954p0, + 0x1.b8ba2e8ba2e8fp2 + }, + { // Entry 381 + -0x1.e70bc455167843aff629b746acfdb954p0, + -0x1.b8ba2e8ba2e8fp2 + }, + { // Entry 382 + 0x1.eac4a09f102dc54392e2d4473d85908cp0, + 0x1.c2e8ba2e8ba32p2 + }, + { // Entry 383 + -0x1.eac4a09f102dc54392e2d4473d85908cp0, + -0x1.c2e8ba2e8ba32p2 + }, + { // Entry 384 + 0x1.ee6f3fe7143487345a5bdd055002660cp0, + 0x1.cd1745d1745d5p2 + }, + { // Entry 385 + -0x1.ee6f3fe7143487345a5bdd055002660cp0, + -0x1.cd1745d1745d5p2 + }, + { // Entry 386 + 0x1.f20c275d2d02fed5358f1cbf6bde21f6p0, + 0x1.d745d1745d178p2 + }, + { // Entry 387 + -0x1.f20c275d2d02fed5358f1cbf6bde21f6p0, + -0x1.d745d1745d178p2 + }, + { // Entry 388 + 0x1.f59bd492aecb81e8f922dfb0a070b22cp0, + 0x1.e1745d1745d1bp2 + }, + { // Entry 389 + -0x1.f59bd492aecb81e8f922dfb0a070b22cp0, + -0x1.e1745d1745d1bp2 + }, + { // Entry 390 + 0x1.f91ebe1075131607e1dbc3ce239d00d2p0, + 0x1.eba2e8ba2e8bep2 + }, + { // Entry 391 + -0x1.f91ebe1075131607e1dbc3ce239d00d2p0, + -0x1.eba2e8ba2e8bep2 + }, + { // Entry 392 + 0x1.fc9553deb389bb042ac0e43d2dcb675dp0, + 0x1.f5d1745d17461p2 + }, + { // Entry 393 + -0x1.fc9553deb389bb042ac0e43d2dcb675dp0, + -0x1.f5d1745d17461p2 + }, + { // Entry 394 + 0x1.p1, + 0x1.0p3 + }, + { // Entry 395 + -0x1.p1, + -0x1.0p3 + }, + { // Entry 396 + 0x1.428a2f98d728ae223ddab715be250d0cp33, + 0x1.0p100 + }, + { // Entry 397 + -0x1.428a2f98d728ae223ddab715be250d0cp33, + -0x1.0p100 + }, + { // Entry 398 + 0x1.4cf38fa1af1c8e60b99ab1c90a701828p33, + 0x1.199999999999ap100 + }, + { // Entry 399 + -0x1.4cf38fa1af1c8e60b99ab1c90a701828p33, + -0x1.199999999999ap100 + }, + { // Entry 400 + 0x1.56bfea66ef78d5074657b3dee42b5e0cp33, + 0x1.3333333333334p100 + }, + { // Entry 401 + -0x1.56bfea66ef78d5074657b3dee42b5e0cp33, + -0x1.3333333333334p100 + }, + { // Entry 402 + 0x1.60048365d4c9ff9b67f93498f33785eap33, + 0x1.4cccccccccccep100 + }, + { // Entry 403 + -0x1.60048365d4c9ff9b67f93498f33785eap33, + -0x1.4cccccccccccep100 + }, + { // Entry 404 + 0x1.68d25a9bdf483c622a268591832b9e0cp33, + 0x1.6666666666668p100 + }, + { // Entry 405 + -0x1.68d25a9bdf483c622a268591832b9e0cp33, + -0x1.6666666666668p100 + }, + { // Entry 406 + 0x1.7137449123ef700f67831ee169a0f859p33, + 0x1.8000000000002p100 + }, + { // Entry 407 + -0x1.7137449123ef700f67831ee169a0f859p33, + -0x1.8000000000002p100 + }, + { // Entry 408 + 0x1.793eace1a3426c2ab31f0f7242cbda04p33, + 0x1.999999999999cp100 + }, + { // Entry 409 + -0x1.793eace1a3426c2ab31f0f7242cbda04p33, + -0x1.999999999999cp100 + }, + { // Entry 410 + 0x1.80f22109df4e9aabf15aa42b09a56fe4p33, + 0x1.b333333333336p100 + }, + { // Entry 411 + -0x1.80f22109df4e9aabf15aa42b09a56fe4p33, + -0x1.b333333333336p100 + }, + { // Entry 412 + 0x1.8859b5bd7e46d0b16729348cdc72c851p33, + 0x1.cccccccccccd0p100 + }, + { // Entry 413 + -0x1.8859b5bd7e46d0b16729348cdc72c851p33, + -0x1.cccccccccccd0p100 + }, + { // Entry 414 + 0x1.8f7c5264003808599b16e8bbfa290ef6p33, + 0x1.e66666666666ap100 + }, + { // Entry 415 + -0x1.8f7c5264003808599b16e8bbfa290ef6p33, + -0x1.e66666666666ap100 + }, + { // Entry 416 + 0x1.965fea53d6e3c82b05999ab43dc4def1p33, + 0x1.0p101 + }, + { // Entry 417 + -0x1.965fea53d6e3c82b05999ab43dc4def1p33, + -0x1.0p101 + }, + { // Entry 418 + 0x1.965fea53d6e3c82b05999ab43dc4def1p66, + 0x1.0p200 + }, + { // Entry 419 + -0x1.965fea53d6e3c82b05999ab43dc4def1p66, + -0x1.0p200 + }, + { // Entry 420 + 0x1.a37e13dc4b3bbdc9f070bbccaee9e708p66, + 0x1.199999999999ap200 + }, + { // Entry 421 + -0x1.a37e13dc4b3bbdc9f070bbccaee9e708p66, + -0x1.199999999999ap200 + }, + { // Entry 422 + 0x1.afd66803b2c0cb28b8149b63f2e5b8e9p66, + 0x1.3333333333334p200 + }, + { // Entry 423 + -0x1.afd66803b2c0cb28b8149b63f2e5b8e9p66, + -0x1.3333333333334p200 + }, + { // Entry 424 + 0x1.bb83b127e934396de5002f26845693c2p66, + 0x1.4cccccccccccep200 + }, + { // Entry 425 + -0x1.bb83b127e934396de5002f26845693c2p66, + -0x1.4cccccccccccep200 + }, + { // Entry 426 + 0x1.c69b5a72f1a9a3d5297dfa071329d303p66, + 0x1.6666666666668p200 + }, + { // Entry 427 + -0x1.c69b5a72f1a9a3d5297dfa071329d303p66, + -0x1.6666666666668p200 + }, + { // Entry 428 + 0x1.d12ed0af1a27fc29a341295b82254417p66, + 0x1.8000000000002p200 + }, + { // Entry 429 + -0x1.d12ed0af1a27fc29a341295b82254417p66, + -0x1.8000000000002p200 + }, + { // Entry 430 + 0x1.db4c7760bcff3665b7f68aed854e789bp66, + 0x1.999999999999cp200 + }, + { // Entry 431 + -0x1.db4c7760bcff3665b7f68aed854e789bp66, + -0x1.999999999999cp200 + }, + { // Entry 432 + 0x1.e50057a6819032342f0b19647f70fc87p66, + 0x1.b333333333336p200 + }, + { // Entry 433 + -0x1.e50057a6819032342f0b19647f70fc87p66, + -0x1.b333333333336p200 + }, + { // Entry 434 + 0x1.ee549fe7085e87e59ca6a43631166ee4p66, + 0x1.cccccccccccd0p200 + }, + { // Entry 435 + -0x1.ee549fe7085e87e59ca6a43631166ee4p66, + -0x1.cccccccccccd0p200 + }, + { // Entry 436 + 0x1.f75202ec86e0c47a6b05c229a6b58c64p66, + 0x1.e66666666666ap200 + }, + { // Entry 437 + -0x1.f75202ec86e0c47a6b05c229a6b58c64p66, + -0x1.e66666666666ap200 + }, + { // Entry 438 + 0x1.p67, + 0x1.0p201 + }, + { // Entry 439 + -0x1.p67, + -0x1.0p201 + }, + { // Entry 440 + 0x1.428a2f98d728ae223ddab715be250d0cp333, + 0x1.0p1000 + }, + { // Entry 441 + -0x1.428a2f98d728ae223ddab715be250d0cp333, + -0x1.0p1000 + }, + { // Entry 442 + 0x1.4cf38fa1af1c8e60b99ab1c90a701828p333, + 0x1.199999999999ap1000 + }, + { // Entry 443 + -0x1.4cf38fa1af1c8e60b99ab1c90a701828p333, + -0x1.199999999999ap1000 + }, + { // Entry 444 + 0x1.56bfea66ef78d5074657b3dee42b5e0cp333, + 0x1.3333333333334p1000 + }, + { // Entry 445 + -0x1.56bfea66ef78d5074657b3dee42b5e0cp333, + -0x1.3333333333334p1000 + }, + { // Entry 446 + 0x1.60048365d4c9ff9b67f93498f33785eap333, + 0x1.4cccccccccccep1000 + }, + { // Entry 447 + -0x1.60048365d4c9ff9b67f93498f33785eap333, + -0x1.4cccccccccccep1000 + }, + { // Entry 448 + 0x1.68d25a9bdf483c622a268591832b9e0cp333, + 0x1.6666666666668p1000 + }, + { // Entry 449 + -0x1.68d25a9bdf483c622a268591832b9e0cp333, + -0x1.6666666666668p1000 + }, + { // Entry 450 + 0x1.7137449123ef700f67831ee169a0f859p333, + 0x1.8000000000002p1000 + }, + { // Entry 451 + -0x1.7137449123ef700f67831ee169a0f859p333, + -0x1.8000000000002p1000 + }, + { // Entry 452 + 0x1.793eace1a3426c2ab31f0f7242cbda04p333, + 0x1.999999999999cp1000 + }, + { // Entry 453 + -0x1.793eace1a3426c2ab31f0f7242cbda04p333, + -0x1.999999999999cp1000 + }, + { // Entry 454 + 0x1.80f22109df4e9aabf15aa42b09a56fe4p333, + 0x1.b333333333336p1000 + }, + { // Entry 455 + -0x1.80f22109df4e9aabf15aa42b09a56fe4p333, + -0x1.b333333333336p1000 + }, + { // Entry 456 + 0x1.8859b5bd7e46d0b16729348cdc72c851p333, + 0x1.cccccccccccd0p1000 + }, + { // Entry 457 + -0x1.8859b5bd7e46d0b16729348cdc72c851p333, + -0x1.cccccccccccd0p1000 + }, + { // Entry 458 + 0x1.8f7c5264003808599b16e8bbfa290ef6p333, + 0x1.e66666666666ap1000 + }, + { // Entry 459 + -0x1.8f7c5264003808599b16e8bbfa290ef6p333, + -0x1.e66666666666ap1000 + }, + { // Entry 460 + 0x1.965fea53d6e3c82b05999ab43dc4def1p333, + 0x1.0p1001 + }, + { // Entry 461 + -0x1.965fea53d6e3c82b05999ab43dc4def1p333, + -0x1.0p1001 + }, + { // Entry 462 + 0x1.965fea53d6e3c3ef5b28bb21de4e77c6p0, + 0x1.fffffffffffffp1 + }, + { // Entry 463 + -0x1.965fea53d6e3c3ef5b28bb21de4e77c6p0, + -0x1.fffffffffffffp1 + }, + { // Entry 464 + 0x1.965fea53d6e3c82b05999ab43dc4def1p0, + 0x1.0p2 + }, + { // Entry 465 + -0x1.965fea53d6e3c82b05999ab43dc4def1p0, + -0x1.0p2 + }, + { // Entry 466 + 0x1.965fea53d6e3d0a25a7b59d8fc6df2a0p0, + 0x1.0000000000001p2 + }, + { // Entry 467 + -0x1.965fea53d6e3d0a25a7b59d8fc6df2a0p0, + -0x1.0000000000001p2 + }, + { // Entry 468 + 0x1.428a2f98d728aac622b11f82a6f666c9p0, + 0x1.fffffffffffffp0 + }, + { // Entry 469 + -0x1.428a2f98d728aac622b11f82a6f666c9p0, + -0x1.fffffffffffffp0 + }, + { // Entry 470 + 0x1.428a2f98d728ae223ddab715be250d0cp0, + 0x1.0p1 + }, + { // Entry 471 + -0x1.428a2f98d728ae223ddab715be250d0cp0, + -0x1.0p1 + }, + { // Entry 472 + 0x1.428a2f98d728b4da742de63bec4c97dep0, + 0x1.0000000000001p1 + }, + { // Entry 473 + -0x1.428a2f98d728b4da742de63bec4c97dep0, + -0x1.0000000000001p1 + }, + { // Entry 474 + 0x1.fffffffffffffaaaaaaaaaaaaa9c71c7p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 475 + -0x1.fffffffffffffaaaaaaaaaaaaa9c71c7p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 476 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 477 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 478 + 0x1.0000000000000555555555555538e38ep0, + 0x1.0000000000001p0 + }, + { // Entry 479 + -0x1.0000000000000555555555555538e38ep0, + -0x1.0000000000001p0 + }, + { // Entry 480 + 0x1.965fea53d6e3c3ef5b28bb21de4e77c6p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 481 + -0x1.965fea53d6e3c3ef5b28bb21de4e77c6p-1, + -0x1.fffffffffffffp-2 + }, + { // Entry 482 + 0x1.965fea53d6e3c82b05999ab43dc4def1p-1, + 0x1.0p-1 + }, + { // Entry 483 + -0x1.965fea53d6e3c82b05999ab43dc4def1p-1, + -0x1.0p-1 + }, + { // Entry 484 + 0x1.965fea53d6e3d0a25a7b59d8fc6df2a0p-1, + 0x1.0000000000001p-1 + }, + { // Entry 485 + -0x1.965fea53d6e3d0a25a7b59d8fc6df2a0p-1, + -0x1.0000000000001p-1 + }, + { // Entry 486 + 0x1.428a2f98d728aac622b11f82a6f666c9p-1, + 0x1.fffffffffffffp-3 + }, + { // Entry 487 + -0x1.428a2f98d728aac622b11f82a6f666c9p-1, + -0x1.fffffffffffffp-3 + }, + { // Entry 488 + 0x1.428a2f98d728ae223ddab715be250d0cp-1, + 0x1.0p-2 + }, + { // Entry 489 + -0x1.428a2f98d728ae223ddab715be250d0cp-1, + -0x1.0p-2 + }, + { // Entry 490 + 0x1.428a2f98d728b4da742de63bec4c97dep-1, + 0x1.0000000000001p-2 + }, + { // Entry 491 + -0x1.428a2f98d728b4da742de63bec4c97dep-1, + -0x1.0000000000001p-2 + }, + { // Entry 492 + 0x1.fffffffffffffaaaaaaaaaaaaa9c71c7p-2, + 0x1.fffffffffffffp-4 + }, + { // Entry 493 + -0x1.fffffffffffffaaaaaaaaaaaaa9c71c7p-2, + -0x1.fffffffffffffp-4 + }, + { // Entry 494 + 0x1.p-1, + 0x1.0p-3 + }, + { // Entry 495 + -0x1.p-1, + -0x1.0p-3 + }, + { // Entry 496 + 0x1.0000000000000555555555555538e38ep-1, + 0x1.0000000000001p-3 + }, + { // Entry 497 + -0x1.0000000000000555555555555538e38ep-1, + -0x1.0000000000001p-3 + }, + { // Entry 498 + 0x1.965fea53d6e3c3ef5b28bb21de4e77c6p-2, + 0x1.fffffffffffffp-5 + }, + { // Entry 499 + -0x1.965fea53d6e3c3ef5b28bb21de4e77c6p-2, + -0x1.fffffffffffffp-5 + }, + { // Entry 500 + 0x1.965fea53d6e3c82b05999ab43dc4def1p-2, + 0x1.0p-4 + }, + { // Entry 501 + -0x1.965fea53d6e3c82b05999ab43dc4def1p-2, + -0x1.0p-4 + }, + { // Entry 502 + 0x1.965fea53d6e3d0a25a7b59d8fc6df2a0p-2, + 0x1.0000000000001p-4 + }, + { // Entry 503 + -0x1.965fea53d6e3d0a25a7b59d8fc6df2a0p-2, + -0x1.0000000000001p-4 + }, + { // Entry 504 + 0x1.428a2f98d728aac622b11f82a6f666c9p-2, + 0x1.fffffffffffffp-6 + }, + { // Entry 505 + -0x1.428a2f98d728aac622b11f82a6f666c9p-2, + -0x1.fffffffffffffp-6 + }, + { // Entry 506 + 0x1.428a2f98d728ae223ddab715be250d0cp-2, + 0x1.0p-5 + }, + { // Entry 507 + -0x1.428a2f98d728ae223ddab715be250d0cp-2, + -0x1.0p-5 + }, + { // Entry 508 + 0x1.428a2f98d728b4da742de63bec4c97dep-2, + 0x1.0000000000001p-5 + }, + { // Entry 509 + -0x1.428a2f98d728b4da742de63bec4c97dep-2, + -0x1.0000000000001p-5 + }, + { // Entry 510 + 0x1.fffffffffffffaaaaaaaaaaaaa9c71c7p-3, + 0x1.fffffffffffffp-7 + }, + { // Entry 511 + -0x1.fffffffffffffaaaaaaaaaaaaa9c71c7p-3, + -0x1.fffffffffffffp-7 + }, + { // Entry 512 + 0x1.p-2, + 0x1.0p-6 + }, + { // Entry 513 + -0x1.p-2, + -0x1.0p-6 + }, + { // Entry 514 + 0x1.0000000000000555555555555538e38ep-2, + 0x1.0000000000001p-6 + }, + { // Entry 515 + -0x1.0000000000000555555555555538e38ep-2, + -0x1.0000000000001p-6 + }, + { // Entry 516 + 0x1.p-358, + 0x1.0p-1074 + }, + { // Entry 517 + -0x1.p-358, + -0x1.0p-1074 + }, + { // Entry 518 + -0x1.p-358, + -0x1.0p-1074 + }, + { // Entry 519 + 0x1.p-358, + 0x1.0p-1074 + }, + { // Entry 520 + 0x1.428a2f98d728aac622b11f82a6f666c9p341, + 0x1.fffffffffffffp1023 + }, + { // Entry 521 + -0x1.428a2f98d728aac622b11f82a6f666c9p341, + -0x1.fffffffffffffp1023 + }, + { // Entry 522 + -0x1.428a2f98d728aac622b11f82a6f666c9p341, + -0x1.fffffffffffffp1023 + }, + { // Entry 523 + 0x1.428a2f98d728aac622b11f82a6f666c9p341, + 0x1.fffffffffffffp1023 + }, + { // Entry 524 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 525 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 526 + 0x1.428a2f98d728aac622b11f82a6f666c9p341, + 0x1.fffffffffffffp1023 + }, + { // Entry 527 + -0x1.428a2f98d728aac622b11f82a6f666c9p341, + -0x1.fffffffffffffp1023 + }, + { // Entry 528 + 0x1.428a2f98d728a76a078787ef8fb5d54bp341, + 0x1.ffffffffffffep1023 + }, + { // Entry 529 + -0x1.428a2f98d728a76a078787ef8fb5d54bp341, + -0x1.ffffffffffffep1023 + }, + { // Entry 530 + 0x1.76ef7e73104b77508331312871c1baeap0, + 0x1.921fb54442d18p1 + }, + { // Entry 531 + -0x1.76ef7e73104b77508331312871c1baeap0, + -0x1.921fb54442d18p1 + }, + { // Entry 532 + 0x1.2996264e0e3fdb54d3ab251146a24027p0, + 0x1.921fb54442d18p0 + }, + { // Entry 533 + -0x1.2996264e0e3fdb54d3ab251146a24027p0, + -0x1.921fb54442d18p0 + }, + { // Entry 534 + 0x1.d8639fdcb60ea0b871238ad028637d9fp-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 535 + -0x1.d8639fdcb60ea0b871238ad028637d9fp-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 536 + 0x1.p1, + 0x1.0p3 + }, + { // Entry 537 + -0x1.p1, + -0x1.0p3 + }, + { // Entry 538 + 0x1.428a2f98d728ae223ddab715be250d0cp0, + 0x1.0p1 + }, + { // Entry 539 + -0x1.428a2f98d728ae223ddab715be250d0cp0, + -0x1.0p1 + }, + { // Entry 540 + 0x1.0000000000000555555555555538e38ep0, + 0x1.0000000000001p0 + }, + { // Entry 541 + -0x1.0000000000000555555555555538e38ep0, + -0x1.0000000000001p0 + }, + { // Entry 542 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 543 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 544 + 0x1.fffffffffffffaaaaaaaaaaaaa9c71c7p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 545 + -0x1.fffffffffffffaaaaaaaaaaaaa9c71c7p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 546 + 0x1.428a2f98d728b4da742de63bec4c97dep-341, + 0x1.0000000000001p-1022 + }, + { // Entry 547 + -0x1.428a2f98d728b4da742de63bec4c97dep-341, + -0x1.0000000000001p-1022 + }, + { // Entry 548 + 0x1.428a2f98d728ae223ddab715be250d0cp-341, + 0x1.0p-1022 + }, + { // Entry 549 + -0x1.428a2f98d728ae223ddab715be250d0cp-341, + -0x1.0p-1022 + }, + { // Entry 550 + 0x1.428a2f98d728a76a078787ef8fb5d54bp-341, + 0x1.ffffffffffffep-1023 + }, + { // Entry 551 + -0x1.428a2f98d728a76a078787ef8fb5d54bp-341, + -0x1.ffffffffffffep-1023 + }, + { // Entry 552 + 0x1.428a2f98d728a0b1d13458c960fef09cp-341, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 553 + -0x1.428a2f98d728a0b1d13458c960fef09cp-341, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 554 + 0x1.428a2f98d728ae223ddab715be250d0cp-358, + 0x1.0p-1073 + }, + { // Entry 555 + -0x1.428a2f98d728ae223ddab715be250d0cp-358, + -0x1.0p-1073 + }, + { // Entry 556 + 0x1.p-358, + 0x1.0p-1074 + }, + { // Entry 557 + -0x1.p-358, + -0x1.0p-1074 + }, + { // Entry 558 + 0.0, + 0.0 + }, + { // Entry 559 + -0.0, + -0.0 + }, + { // Entry 560 + 0x1.80p1, + 0x1.bp4 + }, + { // Entry 561 + -0x1.80p1, + -0x1.bp4 + }, + { // Entry 562 + 0x1.40p2, + 0x1.f40p6 + }, + { // Entry 563 + -0x1.40p2, + -0x1.f40p6 + } +}; diff --git a/tests/math_data/cbrtf_intel_data.h b/tests/math_data/cbrtf_intel_data.h new file mode 100644 index 000000000..5ce73dfa7 --- /dev/null +++ b/tests/math_data/cbrtf_intel_data.h @@ -0,0 +1,1754 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_cbrtf_intel_data[] = { + { // Entry 0 + -0x1.00007fffc000355520003aaa663936aap-42, + -0x1.000180p-126 + }, + { // Entry 1 + 0x1.00007fffc000355520003aaa663936aap-42, + 0x1.000180p-126 + }, + { // Entry 2 + -0x1.0000ffff0001aaa7555caa998e62715fp-2, + -0x1.0003p-6 + }, + { // Entry 3 + 0x1.0000ffff0001aaa7555caa998e62715fp-2, + 0x1.0003p-6 + }, + { // Entry 4 + -0x1.007c2715b6911795158a4d4cc45b8d59p2, + -0x1.01752ap6 + }, + { // Entry 5 + 0x1.007c2715b6911795158a4d4cc45b8d59p2, + 0x1.01752ap6 + }, + { // Entry 6 + -0x1.0b9ccd06011fce363b7a50a0a3b8e26cp1, + -0x1.247112p3 + }, + { // Entry 7 + 0x1.0b9ccd06011fce363b7a50a0a3b8e26cp1, + 0x1.247112p3 + }, + { // Entry 8 + -0x1.aa863b0a38d00e125cbd173f60ddbb68p1, + -0x1.27fff8p5 + }, + { // Entry 9 + 0x1.aa863b0a38d00e125cbd173f60ddbb68p1, + 0x1.27fff8p5 + }, + { // Entry 10 + -0x1.b0ff4b0cf530be2de450549f985f42afp-3, + -0x1.35ae80p-7 + }, + { // Entry 11 + 0x1.b0ff4b0cf530be2de450549f985f42afp-3, + 0x1.35ae80p-7 + }, + { // Entry 12 + -0x1.d30d4d0027a339e3355b6acc1d16b858p-11, + -0x1.84a5b6p-31 + }, + { // Entry 13 + 0x1.d30d4d0027a339e3355b6acc1d16b858p-11, + 0x1.84a5b6p-31 + }, + { // Entry 14 + -0x1.7bc7460098a24fb469f60dedd0c113cep-4, + -0x1.a1e880p-11 + }, + { // Entry 15 + 0x1.7bc7460098a24fb469f60dedd0c113cep-4, + 0x1.a1e880p-11 + }, + { // Entry 16 + -0x1.e18718fd2b5e5307048d4417449467b6p-11, + -0x1.a9ea80p-31 + }, + { // Entry 17 + 0x1.e18718fd2b5e5307048d4417449467b6p-11, + 0x1.a9ea80p-31 + }, + { // Entry 18 + -0x1.e3082be3326da6c23ae338a3f121dd1fp-11, + -0x1.adeb80p-31 + }, + { // Entry 19 + 0x1.e3082be3326da6c23ae338a3f121dd1fp-11, + 0x1.adeb80p-31 + }, + { // Entry 20 + 0x1.965ff706d5d0ceecd979f25d2bd0f2dcp-14, + 0x1.000018p-40 + }, + { // Entry 21 + -0x1.965ff706d5d0ceecd979f25d2bd0f2dcp-14, + -0x1.000018p-40 + }, + { // Entry 22 + 0x1.96602e0e72a7fdf15e33145af6f263d8p0, + 0x1.000080p2 + }, + { // Entry 23 + -0x1.96602e0e72a7fdf15e33145af6f263d8p0, + -0x1.000080p2 + }, + { // Entry 24 + 0x1.96603efd1611ff8ea190cefd028f4506p-14, + 0x1.0000a0p-40 + }, + { // Entry 25 + -0x1.96603efd1611ff8ea190cefd028f4506p-14, + -0x1.0000a0p-40 + }, + { // Entry 26 + 0x1.00003ffff00006aaa755572aa998e434p-2, + 0x1.0000c0p-6 + }, + { // Entry 27 + -0x1.00003ffff00006aaa755572aa998e434p-2, + -0x1.0000c0p-6 + }, + { // Entry 28 + 0x1.966060da58aa5d0c57334a9a680c3e14p-14, + 0x1.0000e0p-40 + }, + { // Entry 29 + -0x1.966060da58aa5d0c57334a9a680c3e14p-14, + -0x1.0000e0p-40 + }, + { // Entry 30 + 0x1.428ad0dd9e52d1023b2faca281049d23p-42, + 0x1.000180p-125 + }, + { // Entry 31 + -0x1.428ad0dd9e52d1023b2faca281049d23p-42, + -0x1.000180p-125 + }, + { // Entry 32 + 0x1.00007fffc000355520003aaa663936aap-42, + 0x1.000180p-126 + }, + { // Entry 33 + -0x1.00007fffc000355520003aaa663936aap-42, + -0x1.000180p-126 + }, + { // Entry 34 + 0x1.966118fd0fff4af1016786c52473d739p0, + 0x1.00023cp2 + }, + { // Entry 35 + -0x1.966118fd0fff4af1016786c52473d739p0, + -0x1.00023cp2 + }, + { // Entry 36 + 0x1.0000ffff0001aaa7555caa998e62715fp-2, + 0x1.0003p-6 + }, + { // Entry 37 + -0x1.0000ffff0001aaa7555caa998e62715fp-2, + -0x1.0003p-6 + }, + { // Entry 38 + 0x1.9661c46c3f2accbc3b2879ecc64c5563p-42, + 0x1.000380p-124 + }, + { // Entry 39 + -0x1.9661c46c3f2accbc3b2879ecc64c5563p-42, + -0x1.000380p-124 + }, + { // Entry 40 + 0x1.000954fe3e2e3b3fc203c0f1122ef525p-2, + 0x1.001cp-6 + }, + { // Entry 41 + -0x1.000954fe3e2e3b3fc203c0f1122ef525p-2, + -0x1.001cp-6 + }, + { // Entry 42 + 0x1.000fff001aa755ca9990d15f4978c319p-1, + 0x1.0030p-3 + }, + { // Entry 43 + -0x1.000fff001aa755ca9990d15f4978c319p-1, + -0x1.0030p-3 + }, + { // Entry 44 + 0x1.000fff001aa755ca9990d15f4978c319p-2, + 0x1.0030p-6 + }, + { // Entry 45 + -0x1.000fff001aa755ca9990d15f4978c319p-2, + -0x1.0030p-6 + }, + { // Entry 46 + 0x1.96e94efe3bb4f031f6fd29764c187ba9p-14, + 0x1.0104p-40 + }, + { // Entry 47 + -0x1.96e94efe3bb4f031f6fd29764c187ba9p-14, + -0x1.0104p-40 + }, + { // Entry 48 + 0x1.4354f47046b122c8269cefa33f6945e0p-12, + 0x1.01e4p-35 + }, + { // Entry 49 + -0x1.4354f47046b122c8269cefa33f6945e0p-12, + -0x1.01e4p-35 + }, + { // Entry 50 + 0x1.435ce4ffe5df0ed6186f37c8cd55dfcdp-14, + 0x1.01f7p-41 + }, + { // Entry 51 + -0x1.435ce4ffe5df0ed6186f37c8cd55dfcdp-14, + -0x1.01f7p-41 + }, + { // Entry 52 + 0x1.43da6b00005c39b0e6c7c4cec8063f45p0, + 0x1.0323dep1 + }, + { // Entry 53 + -0x1.43da6b00005c39b0e6c7c4cec8063f45p0, + -0x1.0323dep1 + }, + { // Entry 54 + 0x1.998ca5fd9079c0acf8d0c470551815c4p-14, + 0x1.060cp-40 + }, + { // Entry 55 + -0x1.998ca5fd9079c0acf8d0c470551815c4p-14, + -0x1.060cp-40 + }, + { // Entry 56 + 0x1.998ebb71eaf54f2b63663678acd9c1b0p-14, + 0x1.0610p-40 + }, + { // Entry 57 + -0x1.998ebb71eaf54f2b63663678acd9c1b0p-14, + -0x1.0610p-40 + }, + { // Entry 58 + 0x1.454f770000009a77b66758620294365fp-1, + 0x1.06a76ap-2 + }, + { // Entry 59 + -0x1.454f770000009a77b66758620294365fp-1, + -0x1.06a76ap-2 + }, + { // Entry 60 + 0x1.9ap-4, + 0x1.06e9aap-10 + }, + { // Entry 61 + -0x1.9ap-4, + -0x1.06e9aap-10 + }, + { // Entry 62 + 0x1.9a2dc6da8c05f5e76488d08a9d68aab3p0, + 0x1.0741c4p2 + }, + { // Entry 63 + -0x1.9a2dc6da8c05f5e76488d08a9d68aab3p0, + -0x1.0741c4p2 + }, + { // Entry 64 + 0x1.9b67b1a6ed6fd1c14e0973d1bbdffc44p-14, + 0x1.09a0p-40 + }, + { // Entry 65 + -0x1.9b67b1a6ed6fd1c14e0973d1bbdffc44p-14, + -0x1.09a0p-40 + }, + { // Entry 66 + 0x1.46ffc700366b1255b7648b4899b98d5ap-14, + 0x1.0ac4p-41 + }, + { // Entry 67 + -0x1.46ffc700366b1255b7648b4899b98d5ap-14, + -0x1.0ac4p-41 + }, + { // Entry 68 + 0x1.9c1f2ad69d37542ebe215ede37325f7dp-14, + 0x1.0b04p-40 + }, + { // Entry 69 + -0x1.9c1f2ad69d37542ebe215ede37325f7dp-14, + -0x1.0b04p-40 + }, + { // Entry 70 + 0x1.9c8148004106b29bacdfd646ccb890bbp-2, + 0x1.0bc2e2p-4 + }, + { // Entry 71 + -0x1.9c8148004106b29bacdfd646ccb890bbp-2, + -0x1.0bc2e2p-4 + }, + { // Entry 72 + 0x1.478a7bb572cc90cef3596fd852b532cdp0, + 0x1.0c1808p1 + }, + { // Entry 73 + -0x1.478a7bb572cc90cef3596fd852b532cdp0, + -0x1.0c1808p1 + }, + { // Entry 74 + 0x1.9d2397032cef4ebe8a2c5c889a8876a1p-1, + 0x1.0cff70p-1 + }, + { // Entry 75 + -0x1.9d2397032cef4ebe8a2c5c889a8876a1p-1, + -0x1.0cff70p-1 + }, + { // Entry 76 + 0x1.9e20b8d6240f02f0eaf930fdf441789ep0, + 0x1.0eef12p2 + }, + { // Entry 77 + -0x1.9e20b8d6240f02f0eaf930fdf441789ep0, + -0x1.0eef12p2 + }, + { // Entry 78 + 0x1.9ead3105d958ea7ec76503944303ef7dp2, + 0x1.100322p8 + }, + { // Entry 79 + -0x1.9ead3105d958ea7ec76503944303ef7dp2, + -0x1.100322p8 + }, + { // Entry 80 + 0x1.9f2faffdef6461c09455448fa928b9c3p-1, + 0x1.110440p-1 + }, + { // Entry 81 + -0x1.9f2faffdef6461c09455448fa928b9c3p-1, + -0x1.110440p-1 + }, + { // Entry 82 + 0x1.a0dfb8137c3e91c3f3e838645b454f05p-14, + 0x1.145cp-40 + }, + { // Entry 83 + -0x1.a0dfb8137c3e91c3f3e838645b454f05p-14, + -0x1.145cp-40 + }, + { // Entry 84 + 0x1.a2311b035270313c9ca7f92e42644378p-1, + 0x1.16fd1ep-1 + }, + { // Entry 85 + -0x1.a2311b035270313c9ca7f92e42644378p-1, + -0x1.16fd1ep-1 + }, + { // Entry 86 + 0x1.a25e7efd01b4c7f69f01fe96f643494fp-14, + 0x1.1758p-40 + }, + { // Entry 87 + -0x1.a25e7efd01b4c7f69f01fe96f643494fp-14, + -0x1.1758p-40 + }, + { // Entry 88 + 0x1.a28a68ffbdfb7eb6667d2cdd341cd234p-14, + 0x1.17b0p-40 + }, + { // Entry 89 + -0x1.a28a68ffbdfb7eb6667d2cdd341cd234p-14, + -0x1.17b0p-40 + }, + { // Entry 90 + 0x1.a2b24d04a7585fdde607a7f42d370876p-42, + 0x1.18p-124 + }, + { // Entry 91 + -0x1.a2b24d04a7585fdde607a7f42d370876p-42, + -0x1.18p-124 + }, + { // Entry 92 + 0x1.a480db076345638b28d0b5d97e216402p-14, + 0x1.1ba4p-40 + }, + { // Entry 93 + -0x1.a480db076345638b28d0b5d97e216402p-14, + -0x1.1ba4p-40 + }, + { // Entry 94 + 0x1.4e11970614cfe9395e7c524b2922ed62p-14, + 0x1.1c71c8p-41 + }, + { // Entry 95 + -0x1.4e11970614cfe9395e7c524b2922ed62p-14, + -0x1.1c71c8p-41 + }, + { // Entry 96 + 0x1.a524ac009e9723d4018859285260a132p-14, + 0x1.1cf0p-40 + }, + { // Entry 97 + -0x1.a524ac009e9723d4018859285260a132p-14, + -0x1.1cf0p-40 + }, + { // Entry 98 + 0x1.a5b64e6d1ad233a593368ac2163d6b7dp-14, + 0x1.1e18p-40 + }, + { // Entry 99 + -0x1.a5b64e6d1ad233a593368ac2163d6b7dp-14, + -0x1.1e18p-40 + }, + { // Entry 100 + 0x1.a6a58c5b6df5c725e3ec4ab187301586p-14, + 0x1.1ffffep-40 + }, + { // Entry 101 + -0x1.a6a58c5b6df5c725e3ec4ab187301586p-14, + -0x1.1ffffep-40 + }, + { // Entry 102 + 0x1.acp-4, + 0x1.2b1530p-10 + }, + { // Entry 103 + -0x1.acp-4, + -0x1.2b1530p-10 + }, + { // Entry 104 + 0x1.5500563b025a26e6cde7846c60dd1a63p0, + 0x1.2e85dcp1 + }, + { // Entry 105 + -0x1.5500563b025a26e6cde7846c60dd1a63p0, + -0x1.2e85dcp1 + }, + { // Entry 106 + 0x1.57bfb300c89d535ddc61f9b3d999dc1ep0, + 0x1.35e4f8p1 + }, + { // Entry 107 + -0x1.57bfb300c89d535ddc61f9b3d999dc1ep0, + -0x1.35e4f8p1 + }, + { // Entry 108 + 0x1.b2e9430bd21aae846599fdf68e51e1e6p-1, + 0x1.39ce70p-1 + }, + { // Entry 109 + -0x1.b2e9430bd21aae846599fdf68e51e1e6p-1, + -0x1.39ce70p-1 + }, + { // Entry 110 + 0x1.b40a010c84eac96d410f8ba21fda3f22p0, + 0x1.3c4114p2 + }, + { // Entry 111 + -0x1.b40a010c84eac96d410f8ba21fda3f22p0, + -0x1.3c4114p2 + }, + { // Entry 112 + 0x1.c5d8590ca543fcb1c0bfb46e90e419bep0, + 0x1.6499f6p2 + }, + { // Entry 113 + -0x1.c5d8590ca543fcb1c0bfb46e90e419bep0, + -0x1.6499f6p2 + }, + { // Entry 114 + 0x1.c6791f0cb47f19f16d083c211d10420bp0, + 0x1.661576p2 + }, + { // Entry 115 + -0x1.c6791f0cb47f19f16d083c211d10420bp0, + -0x1.661576p2 + }, + { // Entry 116 + 0x1.c71f7f0cd5c51d6bb49a93023a9a652dp-1, + 0x1.679f4ap-1 + }, + { // Entry 117 + -0x1.c71f7f0cd5c51d6bb49a93023a9a652dp-1, + -0x1.679f4ap-1 + }, + { // Entry 118 + 0x1.c728c50c9eca36360c22256e33e42dc2p0, + 0x1.67b546p2 + }, + { // Entry 119 + -0x1.c728c50c9eca36360c22256e33e42dc2p0, + -0x1.67b546p2 + }, + { // Entry 120 + 0x1.1fb2b50224020b9a31b5e09844e1348dp-1, + 0x1.6b5ad6p-3 + }, + { // Entry 121 + -0x1.1fb2b50224020b9a31b5e09844e1348dp-1, + -0x1.6b5ad6p-3 + }, + { // Entry 122 + 0x1.6ab560ffff8428b4d453bae089599bbap-1, + 0x1.6c0d4ap-2 + }, + { // Entry 123 + -0x1.6ab560ffff8428b4d453bae089599bbap-1, + -0x1.6c0d4ap-2 + }, + { // Entry 124 + 0x1.cdee0281e74e9710c68918089b9a62f2p-42, + 0x1.77fffep-124 + }, + { // Entry 125 + -0x1.cdee0281e74e9710c68918089b9a62f2p-42, + -0x1.77fffep-124 + }, + { // Entry 126 + 0x1.d11fb6f9f76e1fd19de47cbe7090dffbp-43, + 0x1.7fda9cp-127 + }, + { // Entry 127 + -0x1.d11fb6f9f76e1fd19de47cbe7090dffbp-43, + -0x1.7fda9cp-127 + }, + { // Entry 128 + 0x1.7ad659001595cf1b272d5984d8001451p-2, + 0x1.9ecf20p-5 + }, + { // Entry 129 + -0x1.7ad659001595cf1b272d5984d8001451p-2, + -0x1.9ecf20p-5 + }, + { // Entry 130 + 0x1.7ad659001595cf1b272d5984d8001451p-41, + 0x1.9ecf20p-122 + }, + { // Entry 131 + -0x1.7ad659001595cf1b272d5984d8001451p-41, + -0x1.9ecf20p-122 + }, + { // Entry 132 + 0x1.df1025ff8b1feb85afffe8b0cce5c6c1p-1, + 0x1.a368d0p-1 + }, + { // Entry 133 + -0x1.df1025ff8b1feb85afffe8b0cce5c6c1p-1, + -0x1.a368d0p-1 + }, + { // Entry 134 + 0x1.dfa5d2ff7b31fa9b073558a718dd7beap-3, + 0x1.a4f268p-7 + }, + { // Entry 135 + -0x1.dfa5d2ff7b31fa9b073558a718dd7beap-3, + -0x1.a4f268p-7 + }, + { // Entry 136 + 0x1.e14d56805a724bfafe4ad3bdbf27694fp0, + 0x1.a9514ep2 + }, + { // Entry 137 + -0x1.e14d56805a724bfafe4ad3bdbf27694fp0, + -0x1.a9514ep2 + }, + { // Entry 138 + 0x1.e2df53063263dd47f4e3b4be5d8acd20p-2, + 0x1.ad7e78p-4 + }, + { // Entry 139 + -0x1.e2df53063263dd47f4e3b4be5d8acd20p-2, + -0x1.ad7e78p-4 + }, + { // Entry 140 + 0x1.eb5752ff94df0f59dec8df36f4cc1b31p-41, + 0x1.c47d8cp-121 + }, + { // Entry 141 + -0x1.eb5752ff94df0f59dec8df36f4cc1b31p-41, + -0x1.c47d8cp-121 + }, + { // Entry 142 + 0x1.ebe5df03d9d653e93e8fd07e1190dca7p-2, + 0x1.c607d2p-4 + }, + { // Entry 143 + -0x1.ebe5df03d9d653e93e8fd07e1190dca7p-2, + -0x1.c607d2p-4 + }, + { // Entry 144 + 0x1.ecp-3, + 0x1.c65030p-7 + }, + { // Entry 145 + -0x1.ecp-3, + -0x1.c65030p-7 + }, + { // Entry 146 + 0x1.ed53c2fed7938cfe7d57506934d72ep-43, + 0x1.c9fff0p-127 + }, + { // Entry 147 + -0x1.ed53c2fed7938cfe7d57506934d72ep-43, + -0x1.c9fff0p-127 + }, + { // Entry 148 + 0x1.87d30f000003670b89545d5765e0e462p-2, + 0x1.caf302p-5 + }, + { // Entry 149 + -0x1.87d30f000003670b89545d5765e0e462p-2, + -0x1.caf302p-5 + }, + { // Entry 150 + 0x1.37964effff778957b16b4208af77a9b9p-1, + 0x1.cd97a8p-3 + }, + { // Entry 151 + -0x1.37964effff778957b16b4208af77a9b9p-1, + -0x1.cd97a8p-3 + }, + { // Entry 152 + 0x1.ef78e20aee43030728af06495ee66d87p-14, + 0x1.cffffep-40 + }, + { // Entry 153 + -0x1.ef78e20aee43030728af06495ee66d87p-14, + -0x1.cffffep-40 + }, + { // Entry 154 + 0x1.f060ceff8db83f2f87077b938a0de67fp-1, + 0x1.d28cc4p-1 + }, + { // Entry 155 + -0x1.f060ceff8db83f2f87077b938a0de67fp-1, + -0x1.d28cc4p-1 + }, + { // Entry 156 + 0x1.f0d282ff86ba2828aff1098a7563fc5bp-1, + 0x1.d3cdaap-1 + }, + { // Entry 157 + -0x1.f0d282ff86ba2828aff1098a7563fc5bp-1, + -0x1.d3cdaap-1 + }, + { // Entry 158 + 0x1.f1a89236719cd91fce63ecac19a53d56p0, + 0x1.d62b5ap2 + }, + { // Entry 159 + -0x1.f1a89236719cd91fce63ecac19a53d56p0, + -0x1.d62b5ap2 + }, + { // Entry 160 + 0x1.f1c2bfc0386315c501e39e3ac19c4279p-1, + 0x1.d67590p-1 + }, + { // Entry 161 + -0x1.f1c2bfc0386315c501e39e3ac19c4279p-1, + -0x1.d67590p-1 + }, + { // Entry 162 + 0x1.f2p-4, + 0x1.d72352p-10 + }, + { // Entry 163 + -0x1.f2p-4, + -0x1.d72352p-10 + }, + { // Entry 164 + 0x1.f21c203557858a7f1c78b0cb14718fa0p0, + 0x1.d7732ap2 + }, + { // Entry 165 + -0x1.f21c203557858a7f1c78b0cb14718fa0p0, + -0x1.d7732ap2 + }, + { // Entry 166 + 0x1.f21cf4389d599ec5022b876e9dab8142p-8, + 0x1.d77584p-22 + }, + { // Entry 167 + -0x1.f21cf4389d599ec5022b876e9dab8142p-8, + -0x1.d77584p-22 + }, + { // Entry 168 + 0x1.f250a10528fd3cf7552e65df7a4956f7p2, + 0x1.d8084ep8 + }, + { // Entry 169 + -0x1.f250a10528fd3cf7552e65df7a4956f7p2, + -0x1.d8084ep8 + }, + { // Entry 170 + 0x1.8be60f000087a7c285d12416d0b0cb96p-5, + 0x1.d96a4ap-14 + }, + { // Entry 171 + -0x1.8be60f000087a7c285d12416d0b0cb96p-5, + -0x1.d96a4ap-14 + }, + { // Entry 172 + 0x1.3a7bb8ffff77ce75cfe33eca149a6a50p-1, + 0x1.da956cp-3 + }, + { // Entry 173 + -0x1.3a7bb8ffff77ce75cfe33eca149a6a50p-1, + -0x1.da956cp-3 + }, + { // Entry 174 + 0x1.f5477afcf320bd46a28a22db0896968ep0, + 0x1.e081a4p2 + }, + { // Entry 175 + -0x1.f5477afcf320bd46a28a22db0896968ep0, + -0x1.e081a4p2 + }, + { // Entry 176 + 0x1.f63e0aff87cf1648687fec920f40ac1ap-3, + 0x1.e3480ap-7 + }, + { // Entry 177 + -0x1.f63e0aff87cf1648687fec920f40ac1ap-3, + -0x1.e3480ap-7 + }, + { // Entry 178 + 0x1.f64d78ff83bdecdd6abbbb5c278476c2p2, + 0x1.e37496p8 + }, + { // Entry 179 + -0x1.f64d78ff83bdecdd6abbbb5c278476c2p2, + -0x1.e37496p8 + }, + { // Entry 180 + 0x1.f67dbc1e6250897b0e90aa1d01d222c7p-14, + 0x1.e3fffep-40 + }, + { // Entry 181 + -0x1.f67dbc1e6250897b0e90aa1d01d222c7p-14, + -0x1.e3fffep-40 + }, + { // Entry 182 + 0x1.f696a6ff9280045087896842b6ed5614p0, + 0x1.e44802p2 + }, + { // Entry 183 + -0x1.f696a6ff9280045087896842b6ed5614p0, + -0x1.e44802p2 + }, + { // Entry 184 + 0x1.f6b6e4ff4a938651705569091603de15p0, + 0x1.e4a53cp2 + }, + { // Entry 185 + -0x1.f6b6e4ff4a938651705569091603de15p0, + -0x1.e4a53cp2 + }, + { // Entry 186 + 0x1.3de6d50029c5bbf888e67bae14879833p-1, + 0x1.ea3a80p-3 + }, + { // Entry 187 + -0x1.3de6d50029c5bbf888e67bae14879833p-1, + -0x1.ea3a80p-3 + }, + { // Entry 188 + 0x1.fc5fc5d0ad07f38ec9b17b1f7d4e1717p0, + 0x1.f532fep2 + }, + { // Entry 189 + -0x1.fc5fc5d0ad07f38ec9b17b1f7d4e1717p0, + -0x1.f532fep2 + }, + { // Entry 190 + 0x1.fc7d65d0f6b174adf860b9de60ce7b24p-1, + 0x1.f58aa2p-1 + }, + { // Entry 191 + -0x1.fc7d65d0f6b174adf860b9de60ce7b24p-1, + -0x1.f58aa2p-1 + }, + { // Entry 192 + 0x1.40d9df284bdbddbc87772703bfc95645p-42, + 0x1.f7fffep-126 + }, + { // Entry 193 + -0x1.40d9df284bdbddbc87772703bfc95645p-42, + -0x1.f7fffep-126 + }, + { // Entry 194 + 0x1.945120ffff77f4d7e68f17a43da19205p-1, + 0x1.f842f0p-2 + }, + { // Entry 195 + -0x1.945120ffff77f4d7e68f17a43da19205p-1, + -0x1.f842f0p-2 + }, + { // Entry 196 + 0x1.fd92627ea97689afac4039869f00e4aep-43, + 0x1.f8bffcp-127 + }, + { // Entry 197 + -0x1.fd92627ea97689afac4039869f00e4aep-43, + -0x1.f8bffcp-127 + }, + { // Entry 198 + 0x1.feff7ee99408c9b222d85d44d72d687fp-14, + 0x1.fcfffep-40 + }, + { // Entry 199 + -0x1.feff7ee99408c9b222d85d44d72d687fp-14, + -0x1.fcfffep-40 + }, + { // Entry 200 + 0x1.4217cb047241feeb78c9a78591f7bc72p-42, + 0x1.fddffep-126 + }, + { // Entry 201 + -0x1.4217cb047241feeb78c9a78591f7bc72p-42, + -0x1.fddffep-126 + }, + { // Entry 202 + 0x1.fffa53efe9ebf75d6e114db81461dc7ep-43, + 0x1.ffeefcp-127 + }, + { // Entry 203 + -0x1.fffa53efe9ebf75d6e114db81461dc7ep-43, + -0x1.ffeefcp-127 + }, + { // Entry 204 + 0x1.965cbd06313b1d823e96d5c4737221fbp13, + 0x1.fff3fep40 + }, + { // Entry 205 + -0x1.965cbd06313b1d823e96d5c4737221fbp13, + -0x1.fff3fep40 + }, + { // Entry 206 + 0x1.42897306f46b887b6eb89d9b502e1782p-2, + 0x1.fffc7ep-6 + }, + { // Entry 207 + -0x1.42897306f46b887b6eb89d9b502e1782p-2, + -0x1.fffc7ep-6 + }, + { // Entry 208 + 0x1.42897306f46b887b6eb89d9b502e1782p-42, + 0x1.fffc7ep-126 + }, + { // Entry 209 + -0x1.42897306f46b887b6eb89d9b502e1782p-42, + -0x1.fffc7ep-126 + }, + { // Entry 210 + 0x1.965fb7005dcfa5daf92e3ebc255183c2p13, + 0x1.ffff3ep40 + }, + { // Entry 211 + -0x1.965fb7005dcfa5daf92e3ebc255183c2p13, + -0x1.ffff3ep40 + }, + { // Entry 212 + 0x1.fffff3ffffb7fffd2fffde3ffe427fe7p-42, + 0x1.ffffdcp-124 + }, + { // Entry 213 + -0x1.fffff3ffffb7fffd2fffde3ffe427fe7p-42, + -0x1.ffffdcp-124 + }, + { // Entry 214 + 0x1.fffffdfffffdfffffcaaaaa3fffff155p-14, + 0x1.fffffap-40 + }, + { // Entry 215 + -0x1.fffffdfffffdfffffcaaaaa3fffff155p-14, + -0x1.fffffap-40 + }, + { // Entry 216 + 0x1.965fe944ec46dbaa04d0e2812cfbefb0p-42, + 0x1.fffffcp-125 + }, + { // Entry 217 + -0x1.965fe944ec46dbaa04d0e2812cfbefb0p-42, + -0x1.fffffcp-125 + }, + { // Entry 218 + 0x1.55984b0000856675bab5f168f2e53b1ap-1, + 0x1.301afep-2 + }, + { // Entry 219 + -0x1.55984b0000856675bab5f168f2e53b1ap-1, + -0x1.301afep-2 + }, + { // Entry 220 + 0x1.p0, + 0x1.p0 + }, + { // Entry 221 + -0x1.p0, + -0x1.p0 + }, + { // Entry 222 + 0x1.0ce9d549c583299981fd71ff4fb99542p0, + 0x1.28ba2ep0 + }, + { // Entry 223 + -0x1.0ce9d549c583299981fd71ff4fb99542p0, + -0x1.28ba2ep0 + }, + { // Entry 224 + 0x1.18b16ebaf3cb379fae9ca7124ed79cffp0, + 0x1.51745cp0 + }, + { // Entry 225 + -0x1.18b16ebaf3cb379fae9ca7124ed79cffp0, + -0x1.51745cp0 + }, + { // Entry 226 + 0x1.238f2c18d09933e19014663c566270fcp0, + 0x1.7a2e8ap0 + }, + { // Entry 227 + -0x1.238f2c18d09933e19014663c566270fcp0, + -0x1.7a2e8ap0 + }, + { // Entry 228 + 0x1.2dabb75e8acb9144f6b52cda420fefaap0, + 0x1.a2e8b8p0 + }, + { // Entry 229 + -0x1.2dabb75e8acb9144f6b52cda420fefaap0, + -0x1.a2e8b8p0 + }, + { // Entry 230 + 0x1.3725795f7ddf1e78729e44a17e53d61ep0, + 0x1.cba2e6p0 + }, + { // Entry 231 + -0x1.3725795f7ddf1e78729e44a17e53d61ep0, + -0x1.cba2e6p0 + }, + { // Entry 232 + 0x1.4013da13344ab46d4137da308b33cf09p0, + 0x1.f45d14p0 + }, + { // Entry 233 + -0x1.4013da13344ab46d4137da308b33cf09p0, + -0x1.f45d14p0 + }, + { // Entry 234 + 0x1.48894bf47f0d516d9880c85daea2ba0ep0, + 0x1.0e8ba2p1 + }, + { // Entry 235 + -0x1.48894bf47f0d516d9880c85daea2ba0ep0, + -0x1.0e8ba2p1 + }, + { // Entry 236 + 0x1.5094a1c4f343bd5747ddd428a2e21726p0, + 0x1.22e8bap1 + }, + { // Entry 237 + -0x1.5094a1c4f343bd5747ddd428a2e21726p0, + -0x1.22e8bap1 + }, + { // Entry 238 + 0x1.5841f8f99a25bf1c33fed0059f449f12p0, + 0x1.3745d2p1 + }, + { // Entry 239 + -0x1.5841f8f99a25bf1c33fed0059f449f12p0, + -0x1.3745d2p1 + }, + { // Entry 240 + 0x1.5f9b5c89b6723a4740b02d00e63ed8c5p0, + 0x1.4ba2eap1 + }, + { // Entry 241 + -0x1.5f9b5c89b6723a4740b02d00e63ed8c5p0, + -0x1.4ba2eap1 + }, + { // Entry 242 + 0x1.66a93a398814835bf64bd954530c2e24p0, + 0x1.600002p1 + }, + { // Entry 243 + -0x1.66a93a398814835bf64bd954530c2e24p0, + -0x1.600002p1 + }, + { // Entry 244 + 0x1.6d72b8c12f197ccd2a891dce2b3420ccp0, + 0x1.745d1ap1 + }, + { // Entry 245 + -0x1.6d72b8c12f197ccd2a891dce2b3420ccp0, + -0x1.745d1ap1 + }, + { // Entry 246 + 0x1.73fdf8501e9f51315cd9208aeb0df5fdp0, + 0x1.88ba32p1 + }, + { // Entry 247 + -0x1.73fdf8501e9f51315cd9208aeb0df5fdp0, + -0x1.88ba32p1 + }, + { // Entry 248 + 0x1.7a5043b0c25062c3a77f012041ed0dd3p0, + 0x1.9d174ap1 + }, + { // Entry 249 + -0x1.7a5043b0c25062c3a77f012041ed0dd3p0, + -0x1.9d174ap1 + }, + { // Entry 250 + 0x1.806e3648370d0107430e69be51ba6181p0, + 0x1.b17462p1 + }, + { // Entry 251 + -0x1.806e3648370d0107430e69be51ba6181p0, + -0x1.b17462p1 + }, + { // Entry 252 + 0x1.865bd9deffdb100981101a7bb371c6b8p0, + 0x1.c5d17ap1 + }, + { // Entry 253 + -0x1.865bd9deffdb100981101a7bb371c6b8p0, + -0x1.c5d17ap1 + }, + { // Entry 254 + 0x1.8c1cbe427502dcf0e5ddaa6cde822e1fp0, + 0x1.da2e92p1 + }, + { // Entry 255 + -0x1.8c1cbe427502dcf0e5ddaa6cde822e1fp0, + -0x1.da2e92p1 + }, + { // Entry 256 + 0x1.91b40c3970fa45b45e1ec4f180366a63p0, + 0x1.ee8baap1 + }, + { // Entry 257 + -0x1.91b40c3970fa45b45e1ec4f180366a63p0, + -0x1.ee8baap1 + }, + { // Entry 258 + 0x1.9724945921484b9f5eb5ded43b84d0a6p0, + 0x1.017460p2 + }, + { // Entry 259 + -0x1.9724945921484b9f5eb5ded43b84d0a6p0, + -0x1.017460p2 + }, + { // Entry 260 + 0x1.9c70ddb3118685770f9b9f2ed474a9d0p0, + 0x1.0ba2ecp2 + }, + { // Entry 261 + -0x1.9c70ddb3118685770f9b9f2ed474a9d0p0, + -0x1.0ba2ecp2 + }, + { // Entry 262 + 0x1.a19b2cfb98d6b98fca487b40078f60f8p0, + 0x1.15d178p2 + }, + { // Entry 263 + -0x1.a19b2cfb98d6b98fca487b40078f60f8p0, + -0x1.15d178p2 + }, + { // Entry 264 + 0x1.a6a58f4acd2830ccf461068bd78b43dfp0, + 0x1.200004p2 + }, + { // Entry 265 + -0x1.a6a58f4acd2830ccf461068bd78b43dfp0, + -0x1.200004p2 + }, + { // Entry 266 + 0x1.ab91e0c4d7beb2de033eb06c97ff2623p0, + 0x1.2a2e90p2 + }, + { // Entry 267 + -0x1.ab91e0c4d7beb2de033eb06c97ff2623p0, + -0x1.2a2e90p2 + }, + { // Entry 268 + 0x1.b061d2aa517a9271e11f29270be275c2p0, + 0x1.345d1cp2 + }, + { // Entry 269 + -0x1.b061d2aa517a9271e11f29270be275c2p0, + -0x1.345d1cp2 + }, + { // Entry 270 + 0x1.b516f07bda4aaf3cbb849ded81335246p0, + 0x1.3e8ba8p2 + }, + { // Entry 271 + -0x1.b516f07bda4aaf3cbb849ded81335246p0, + -0x1.3e8ba8p2 + }, + { // Entry 272 + 0x1.b9b2a45b63834be7e92068f4eff7d21fp0, + 0x1.48ba34p2 + }, + { // Entry 273 + -0x1.b9b2a45b63834be7e92068f4eff7d21fp0, + -0x1.48ba34p2 + }, + { // Entry 274 + 0x1.be363accf4e07fa728c35cb0445f056bp0, + 0x1.52e8c0p2 + }, + { // Entry 275 + -0x1.be363accf4e07fa728c35cb0445f056bp0, + -0x1.52e8c0p2 + }, + { // Entry 276 + 0x1.c2a2e5f1ffae47369528dd6baf39165dp0, + 0x1.5d174cp2 + }, + { // Entry 277 + -0x1.c2a2e5f1ffae47369528dd6baf39165dp0, + -0x1.5d174cp2 + }, + { // Entry 278 + 0x1.c6f9c0551bb2a258d6a396ca52615749p0, + 0x1.6745d8p2 + }, + { // Entry 279 + -0x1.c6f9c0551bb2a258d6a396ca52615749p0, + -0x1.6745d8p2 + }, + { // Entry 280 + 0x1.cb3bcf57f15ff14a02f69b42213ee5c6p0, + 0x1.717464p2 + }, + { // Entry 281 + -0x1.cb3bcf57f15ff14a02f69b42213ee5c6p0, + -0x1.717464p2 + }, + { // Entry 282 + 0x1.cf6a0551d85b12144ae1377a6a9b72b2p0, + 0x1.7ba2f0p2 + }, + { // Entry 283 + -0x1.cf6a0551d85b12144ae1377a6a9b72b2p0, + -0x1.7ba2f0p2 + }, + { // Entry 284 + 0x1.d385436b1dde883e39c480d710236941p0, + 0x1.85d17cp2 + }, + { // Entry 285 + -0x1.d385436b1dde883e39c480d710236941p0, + -0x1.85d17cp2 + }, + { // Entry 286 + 0x1.d78e5b3ed606f3cb13a91f1357f91657p0, + 0x1.900008p2 + }, + { // Entry 287 + -0x1.d78e5b3ed606f3cb13a91f1357f91657p0, + -0x1.900008p2 + }, + { // Entry 288 + 0x1.db86104b70ee77d6387ad03f5a44c6b3p0, + 0x1.9a2e94p2 + }, + { // Entry 289 + -0x1.db86104b70ee77d6387ad03f5a44c6b3p0, + -0x1.9a2e94p2 + }, + { // Entry 290 + 0x1.df6d1938f2d285672ba023837c7650a3p0, + 0x1.a45d20p2 + }, + { // Entry 291 + -0x1.df6d1938f2d285672ba023837c7650a3p0, + -0x1.a45d20p2 + }, + { // Entry 292 + 0x1.e34420fa948c2d5fc8ce30e75343315bp0, + 0x1.ae8bacp2 + }, + { // Entry 293 + -0x1.e34420fa948c2d5fc8ce30e75343315bp0, + -0x1.ae8bacp2 + }, + { // Entry 294 + 0x1.e70bc7d0aa6f9a8c1a90bdfd23944160p0, + 0x1.b8ba38p2 + }, + { // Entry 295 + -0x1.e70bc7d0aa6f9a8c1a90bdfd23944160p0, + -0x1.b8ba38p2 + }, + { // Entry 296 + 0x1.eac4a42ef11caabdbf485346bb85dca9p0, + 0x1.c2e8c4p2 + }, + { // Entry 297 + -0x1.eac4a42ef11caabdbf485346bb85dca9p0, + -0x1.c2e8c4p2 + }, + { // Entry 298 + 0x1.ee6f438ac201cc83c3551ec3ec88f765p0, + 0x1.cd1750p2 + }, + { // Entry 299 + -0x1.ee6f438ac201cc83c3551ec3ec88f765p0, + -0x1.cd1750p2 + }, + { // Entry 300 + 0x1.f20c2b142e1141f944a5bd436f899fd8p0, + 0x1.d745dcp2 + }, + { // Entry 301 + -0x1.f20c2b142e1141f944a5bd436f899fd8p0, + -0x1.d745dcp2 + }, + { // Entry 302 + 0x1.f59bd85c8f80600f9a9091ac4ae69b2bp0, + 0x1.e17468p2 + }, + { // Entry 303 + -0x1.f59bd85c8f80600f9a9091ac4ae69b2bp0, + -0x1.e17468p2 + }, + { // Entry 304 + 0x1.f91ec1ecc7699ea908b3dc91bb2117d7p0, + 0x1.eba2f4p2 + }, + { // Entry 305 + -0x1.f91ec1ecc7699ea908b3dc91bb2117d7p0, + -0x1.eba2f4p2 + }, + { // Entry 306 + 0x1.fc9557cd0eaee03376a0df6d1ba5d501p0, + 0x1.f5d180p2 + }, + { // Entry 307 + -0x1.fc9557cd0eaee03376a0df6d1ba5d501p0, + -0x1.f5d180p2 + }, + { // Entry 308 + 0x1.p1, + 0x1.p3 + }, + { // Entry 309 + -0x1.p1, + -0x1.p3 + }, + { // Entry 310 + 0x1.428a2f98d728ae223ddab715be250d0cp33, + 0x1.p100 + }, + { // Entry 311 + -0x1.428a2f98d728ae223ddab715be250d0cp33, + -0x1.p100 + }, + { // Entry 312 + 0x1.4cf38fca0ab1d0dd5e3f8b10df7de89dp33, + 0x1.19999ap100 + }, + { // Entry 313 + -0x1.4cf38fca0ab1d0dd5e3f8b10df7de89dp33, + -0x1.19999ap100 + }, + { // Entry 314 + 0x1.56bfeab31a1e9d53e75261e0f714927bp33, + 0x1.333334p100 + }, + { // Entry 315 + -0x1.56bfeab31a1e9d53e75261e0f714927bp33, + -0x1.333334p100 + }, + { // Entry 316 + 0x1.600483d224f2459cbe9a69151151c908p33, + 0x1.4ccccep100 + }, + { // Entry 317 + -0x1.600483d224f2459cbe9a69151151c908p33, + -0x1.4ccccep100 + }, + { // Entry 318 + 0x1.68d25b2553fccd180af10eec660ead4dp33, + 0x1.666668p100 + }, + { // Entry 319 + -0x1.68d25b2553fccd180af10eec660ead4dp33, + -0x1.666668p100 + }, + { // Entry 320 + 0x1.713745353c7f5d6125705b069ec452b8p33, + 0x1.800002p100 + }, + { // Entry 321 + -0x1.713745353c7f5d6125705b069ec452b8p33, + -0x1.800002p100 + }, + { // Entry 322 + 0x1.793ead9e429872e2b3fe619f7f25153cp33, + 0x1.99999cp100 + }, + { // Entry 323 + -0x1.793ead9e429872e2b3fe619f7f25153cp33, + -0x1.99999cp100 + }, + { // Entry 324 + 0x1.80f221dd370feca7c7efbe496a84ee22p33, + 0x1.b33336p100 + }, + { // Entry 325 + -0x1.80f221dd370feca7c7efbe496a84ee22p33, + -0x1.b33336p100 + }, + { // Entry 326 + 0x1.8859b6a5ff499f31338b11076fb457bap33, + 0x1.ccccd0p100 + }, + { // Entry 327 + -0x1.8859b6a5ff499f31338b11076fb457bap33, + -0x1.ccccd0p100 + }, + { // Entry 328 + 0x1.8f7c53604ebc3a1267eb6083464ac3a6p33, + 0x1.e6666ap100 + }, + { // Entry 329 + -0x1.8f7c53604ebc3a1267eb6083464ac3a6p33, + -0x1.e6666ap100 + }, + { // Entry 330 + 0x1.965fea53d6e3c82b05999ab43dc4def1p33, + 0x1.p101 + }, + { // Entry 331 + -0x1.965fea53d6e3c82b05999ab43dc4def1p33, + -0x1.p101 + }, + { // Entry 332 + 0x1.965fe9cc61957f119f89d08a8918481ep0, + 0x1.fffffep1 + }, + { // Entry 333 + -0x1.965fe9cc61957f119f89d08a8918481ep0, + -0x1.fffffep1 + }, + { // Entry 334 + 0x1.965fea53d6e3c82b05999ab43dc4def1p0, + 0x1.p2 + }, + { // Entry 335 + -0x1.965fea53d6e3c82b05999ab43dc4def1p0, + -0x1.p2 + }, + { // Entry 336 + 0x1.965feb62c17f4b733617ccc56909e9f9p0, + 0x1.000002p2 + }, + { // Entry 337 + -0x1.965feb62c17f4b733617ccc56909e9f9p0, + -0x1.000002p2 + }, + { // Entry 338 + 0x1.428a2f2d53c3575963d11c9df5d9ad83p0, + 0x1.fffffep0 + }, + { // Entry 339 + -0x1.428a2f2d53c3575963d11c9df5d9ad83p0, + -0x1.fffffep0 + }, + { // Entry 340 + 0x1.428a2f98d728ae223ddab715be250d0cp0, + 0x1.p1 + }, + { // Entry 341 + -0x1.428a2f98d728ae223ddab715be250d0cp0, + -0x1.p1 + }, + { // Entry 342 + 0x1.428a306fddf284ad27ff7ccb79aabf3cp0, + 0x1.000002p1 + }, + { // Entry 343 + -0x1.428a306fddf284ad27ff7ccb79aabf3cp0, + -0x1.000002p1 + }, + { // Entry 344 + 0x1.ffffff5555551c71c6fcd6e9cb5339e1p-1, + 0x1.fffffep-1 + }, + { // Entry 345 + -0x1.ffffff5555551c71c6fcd6e9cb5339e1p-1, + -0x1.fffffep-1 + }, + { // Entry 346 + 0x1.p0, + 0x1.p0 + }, + { // Entry 347 + -0x1.p0, + -0x1.p0 + }, + { // Entry 348 + 0x1.000000aaaaaa38e38eb74f028086d9fcp0, + 0x1.000002p0 + }, + { // Entry 349 + -0x1.000000aaaaaa38e38eb74f028086d9fcp0, + -0x1.000002p0 + }, + { // Entry 350 + 0x1.965fe9cc61957f119f89d08a8918481ep-1, + 0x1.fffffep-2 + }, + { // Entry 351 + -0x1.965fe9cc61957f119f89d08a8918481ep-1, + -0x1.fffffep-2 + }, + { // Entry 352 + 0x1.965fea53d6e3c82b05999ab43dc4def1p-1, + 0x1.p-1 + }, + { // Entry 353 + -0x1.965fea53d6e3c82b05999ab43dc4def1p-1, + -0x1.p-1 + }, + { // Entry 354 + 0x1.965feb62c17f4b733617ccc56909e9f9p-1, + 0x1.000002p-1 + }, + { // Entry 355 + -0x1.965feb62c17f4b733617ccc56909e9f9p-1, + -0x1.000002p-1 + }, + { // Entry 356 + 0x1.428a2f2d53c3575963d11c9df5d9ad83p-1, + 0x1.fffffep-3 + }, + { // Entry 357 + -0x1.428a2f2d53c3575963d11c9df5d9ad83p-1, + -0x1.fffffep-3 + }, + { // Entry 358 + 0x1.428a2f98d728ae223ddab715be250d0cp-1, + 0x1.p-2 + }, + { // Entry 359 + -0x1.428a2f98d728ae223ddab715be250d0cp-1, + -0x1.p-2 + }, + { // Entry 360 + 0x1.428a306fddf284ad27ff7ccb79aabf3cp-1, + 0x1.000002p-2 + }, + { // Entry 361 + -0x1.428a306fddf284ad27ff7ccb79aabf3cp-1, + -0x1.000002p-2 + }, + { // Entry 362 + 0x1.ffffff5555551c71c6fcd6e9cb5339e1p-2, + 0x1.fffffep-4 + }, + { // Entry 363 + -0x1.ffffff5555551c71c6fcd6e9cb5339e1p-2, + -0x1.fffffep-4 + }, + { // Entry 364 + 0x1.p-1, + 0x1.p-3 + }, + { // Entry 365 + -0x1.p-1, + -0x1.p-3 + }, + { // Entry 366 + 0x1.000000aaaaaa38e38eb74f028086d9fcp-1, + 0x1.000002p-3 + }, + { // Entry 367 + -0x1.000000aaaaaa38e38eb74f028086d9fcp-1, + -0x1.000002p-3 + }, + { // Entry 368 + 0x1.965fe9cc61957f119f89d08a8918481ep-2, + 0x1.fffffep-5 + }, + { // Entry 369 + -0x1.965fe9cc61957f119f89d08a8918481ep-2, + -0x1.fffffep-5 + }, + { // Entry 370 + 0x1.965fea53d6e3c82b05999ab43dc4def1p-2, + 0x1.p-4 + }, + { // Entry 371 + -0x1.965fea53d6e3c82b05999ab43dc4def1p-2, + -0x1.p-4 + }, + { // Entry 372 + 0x1.965feb62c17f4b733617ccc56909e9f9p-2, + 0x1.000002p-4 + }, + { // Entry 373 + -0x1.965feb62c17f4b733617ccc56909e9f9p-2, + -0x1.000002p-4 + }, + { // Entry 374 + 0x1.428a2f2d53c3575963d11c9df5d9ad83p-2, + 0x1.fffffep-6 + }, + { // Entry 375 + -0x1.428a2f2d53c3575963d11c9df5d9ad83p-2, + -0x1.fffffep-6 + }, + { // Entry 376 + 0x1.428a2f98d728ae223ddab715be250d0cp-2, + 0x1.p-5 + }, + { // Entry 377 + -0x1.428a2f98d728ae223ddab715be250d0cp-2, + -0x1.p-5 + }, + { // Entry 378 + 0x1.428a306fddf284ad27ff7ccb79aabf3cp-2, + 0x1.000002p-5 + }, + { // Entry 379 + -0x1.428a306fddf284ad27ff7ccb79aabf3cp-2, + -0x1.000002p-5 + }, + { // Entry 380 + 0x1.ffffff5555551c71c6fcd6e9cb5339e1p-3, + 0x1.fffffep-7 + }, + { // Entry 381 + -0x1.ffffff5555551c71c6fcd6e9cb5339e1p-3, + -0x1.fffffep-7 + }, + { // Entry 382 + 0x1.p-2, + 0x1.p-6 + }, + { // Entry 383 + -0x1.p-2, + -0x1.p-6 + }, + { // Entry 384 + 0x1.000000aaaaaa38e38eb74f028086d9fcp-2, + 0x1.000002p-6 + }, + { // Entry 385 + -0x1.000000aaaaaa38e38eb74f028086d9fcp-2, + -0x1.000002p-6 + }, + { // Entry 386 + 0x1.428a2f98d728ae223ddab715be250d0cp-50, + 0x1.p-149 + }, + { // Entry 387 + -0x1.428a2f98d728ae223ddab715be250d0cp-50, + -0x1.p-149 + }, + { // Entry 388 + -0x1.428a2f98d728ae223ddab715be250d0cp-50, + -0x1.p-149 + }, + { // Entry 389 + 0x1.428a2f98d728ae223ddab715be250d0cp-50, + 0x1.p-149 + }, + { // Entry 390 + 0x1.965fe9cc61957f119f89d08a8918481ep42, + 0x1.fffffep127 + }, + { // Entry 391 + -0x1.965fe9cc61957f119f89d08a8918481ep42, + -0x1.fffffep127 + }, + { // Entry 392 + -0x1.965fe9cc61957f119f89d08a8918481ep42, + -0x1.fffffep127 + }, + { // Entry 393 + 0x1.965fe9cc61957f119f89d08a8918481ep42, + 0x1.fffffep127 + }, + { // Entry 394 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 395 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 396 + 0x1.965fe9cc61957f119f89d08a8918481ep42, + 0x1.fffffep127 + }, + { // Entry 397 + -0x1.965fe9cc61957f119f89d08a8918481ep42, + -0x1.fffffep127 + }, + { // Entry 398 + 0x1.965fe944ec46dbaa04d0e2812cfbefb0p42, + 0x1.fffffcp127 + }, + { // Entry 399 + -0x1.965fe944ec46dbaa04d0e2812cfbefb0p42, + -0x1.fffffcp127 + }, + { // Entry 400 + 0x1.76ef7ead6985271fe7617b1da5065543p0, + 0x1.921fb6p1 + }, + { // Entry 401 + -0x1.76ef7ead6985271fe7617b1da5065543p0, + -0x1.921fb6p1 + }, + { // Entry 402 + 0x1.2996267c5deedc47b88ccae60aa2742ap0, + 0x1.921fb6p0 + }, + { // Entry 403 + -0x1.2996267c5deedc47b88ccae60aa2742ap0, + -0x1.921fb6p0 + }, + { // Entry 404 + 0x1.d863a02639c8222baeb0d484991e52cdp-1, + 0x1.921fb6p-1 + }, + { // Entry 405 + -0x1.d863a02639c8222baeb0d484991e52cdp-1, + -0x1.921fb6p-1 + }, + { // Entry 406 + 0x1.p1, + 0x1.p3 + }, + { // Entry 407 + -0x1.p1, + -0x1.p3 + }, + { // Entry 408 + 0x1.428a2f98d728ae223ddab715be250d0cp0, + 0x1.p1 + }, + { // Entry 409 + -0x1.428a2f98d728ae223ddab715be250d0cp0, + -0x1.p1 + }, + { // Entry 410 + 0x1.000000aaaaaa38e38eb74f028086d9fcp0, + 0x1.000002p0 + }, + { // Entry 411 + -0x1.000000aaaaaa38e38eb74f028086d9fcp0, + -0x1.000002p0 + }, + { // Entry 412 + 0x1.p0, + 0x1.p0 + }, + { // Entry 413 + -0x1.p0, + -0x1.p0 + }, + { // Entry 414 + 0x1.ffffff5555551c71c6fcd6e9cb5339e1p-1, + 0x1.fffffep-1 + }, + { // Entry 415 + -0x1.ffffff5555551c71c6fcd6e9cb5339e1p-1, + -0x1.fffffep-1 + }, + { // Entry 416 + 0x1.000000aaaaaa38e38eb74f028086d9fcp-42, + 0x1.000002p-126 + }, + { // Entry 417 + -0x1.000000aaaaaa38e38eb74f028086d9fcp-42, + -0x1.000002p-126 + }, + { // Entry 418 + 0x1.p-42, + 0x1.p-126 + }, + { // Entry 419 + -0x1.p-42, + -0x1.p-126 + }, + { // Entry 420 + 0x1.fffffeaaaaa9c71c70ca45869598bfe9p-43, + 0x1.fffffcp-127 + }, + { // Entry 421 + -0x1.fffffeaaaaa9c71c70ca45869598bfe9p-43, + -0x1.fffffcp-127 + }, + { // Entry 422 + 0x1.fffffd555551c71c69e0650db20a4b26p-43, + 0x1.fffff8p-127 + }, + { // Entry 423 + -0x1.fffffd555551c71c69e0650db20a4b26p-43, + -0x1.fffff8p-127 + }, + { // Entry 424 + 0x1.965fea53d6e3c82b05999ab43dc4def1p-50, + 0x1.p-148 + }, + { // Entry 425 + -0x1.965fea53d6e3c82b05999ab43dc4def1p-50, + -0x1.p-148 + }, + { // Entry 426 + 0x1.428a2f98d728ae223ddab715be250d0cp-50, + 0x1.p-149 + }, + { // Entry 427 + -0x1.428a2f98d728ae223ddab715be250d0cp-50, + -0x1.p-149 + }, + { // Entry 428 + 0.0, + 0.0f + }, + { // Entry 429 + -0.0, + -0.0f + }, + { // Entry 430 + 0x1.80p1, + 0x1.b0p4 + }, + { // Entry 431 + -0x1.80p1, + -0x1.b0p4 + }, + { // Entry 432 + 0x1.40p2, + 0x1.f4p6 + }, + { // Entry 433 + -0x1.40p2, + -0x1.f4p6 + } +}; diff --git a/tests/math_data/ceil_intel_data.h b/tests/math_data/ceil_intel_data.h new file mode 100644 index 000000000..33096abd0 --- /dev/null +++ b/tests/math_data/ceil_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_ceil_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.0p-1074 + }, + { // Entry 1 + -0.0, + -0.0 + }, + { // Entry 2 + 0x1.p0, + 0x1.0p-1074 + }, + { // Entry 3 + 0x1.p0, + 0x1.fffffffffffffp-2 + }, + { // Entry 4 + 0x1.p0, + 0x1.0p-1 + }, + { // Entry 5 + 0x1.p0, + 0x1.0000000000001p-1 + }, + { // Entry 6 + 0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 8 + 0x1.p1, + 0x1.0000000000001p0 + }, + { // Entry 9 + 0x1.p1, + 0x1.7ffffffffffffp0 + }, + { // Entry 10 + 0x1.p1, + 0x1.8p0 + }, + { // Entry 11 + 0x1.p1, + 0x1.8000000000001p0 + }, + { // Entry 12 + 0x1.p1, + 0x1.fffffffffffffp0 + }, + { // Entry 13 + 0x1.p1, + 0x1.0p1 + }, + { // Entry 14 + 0x1.80p1, + 0x1.0000000000001p1 + }, + { // Entry 15 + 0x1.80p1, + 0x1.3ffffffffffffp1 + }, + { // Entry 16 + 0x1.80p1, + 0x1.4p1 + }, + { // Entry 17 + 0x1.80p1, + 0x1.4000000000001p1 + }, + { // Entry 18 + 0x1.90p6, + 0x1.8ffffffffffffp6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.9p6 + }, + { // Entry 20 + 0x1.94p6, + 0x1.9000000000001p6 + }, + { // Entry 21 + 0x1.94p6, + 0x1.91fffffffffffp6 + }, + { // Entry 22 + 0x1.94p6, + 0x1.920p6 + }, + { // Entry 23 + 0x1.94p6, + 0x1.9200000000001p6 + }, + { // Entry 24 + 0x1.f4p9, + 0x1.f3fffffffffffp9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f40p9 + }, + { // Entry 26 + 0x1.f480p9, + 0x1.f400000000001p9 + }, + { // Entry 27 + 0x1.f480p9, + 0x1.f43ffffffffffp9 + }, + { // Entry 28 + 0x1.f480p9, + 0x1.f44p9 + }, + { // Entry 29 + 0x1.f480p9, + 0x1.f440000000001p9 + }, + { // Entry 30 + 0x1.p50, + 0x1.fffffffffffffp49 + }, + { // Entry 31 + 0x1.p50, + 0x1.0p50 + }, + { // Entry 32 + 0x1.00000000000040p50, + 0x1.0000000000001p50 + }, + { // Entry 33 + 0x1.p51, + 0x1.fffffffffffffp50 + }, + { // Entry 34 + 0x1.p51, + 0x1.0p51 + }, + { // Entry 35 + 0x1.00000000000020p51, + 0x1.0000000000001p51 + }, + { // Entry 36 + 0x1.p52, + 0x1.fffffffffffffp51 + }, + { // Entry 37 + 0x1.p52, + 0x1.0p52 + }, + { // Entry 38 + 0x1.00000000000010p52, + 0x1.0000000000001p52 + }, + { // Entry 39 + 0x1.fffffffffffff0p52, + 0x1.fffffffffffffp52 + }, + { // Entry 40 + 0x1.p53, + 0x1.0p53 + }, + { // Entry 41 + 0x1.00000000000010p53, + 0x1.0000000000001p53 + }, + { // Entry 42 + 0x1.fffffffffffff0p53, + 0x1.fffffffffffffp53 + }, + { // Entry 43 + 0x1.p54, + 0x1.0p54 + }, + { // Entry 44 + 0x1.00000000000010p54, + 0x1.0000000000001p54 + }, + { // Entry 45 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 46 + -0.0, + -0x1.0000000000001p-1 + }, + { // Entry 47 + -0.0, + -0x1.0p-1 + }, + { // Entry 48 + -0.0, + -0x1.fffffffffffffp-2 + }, + { // Entry 49 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 51 + -0.0, + -0x1.fffffffffffffp-1 + }, + { // Entry 52 + -0x1.p0, + -0x1.8000000000001p0 + }, + { // Entry 53 + -0x1.p0, + -0x1.8p0 + }, + { // Entry 54 + -0x1.p0, + -0x1.7ffffffffffffp0 + }, + { // Entry 55 + -0x1.p1, + -0x1.0000000000001p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.0p1 + }, + { // Entry 57 + -0x1.p0, + -0x1.fffffffffffffp0 + }, + { // Entry 58 + -0x1.p1, + -0x1.4000000000001p1 + }, + { // Entry 59 + -0x1.p1, + -0x1.4p1 + }, + { // Entry 60 + -0x1.p1, + -0x1.3ffffffffffffp1 + }, + { // Entry 61 + -0x1.90p6, + -0x1.9000000000001p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.9p6 + }, + { // Entry 63 + -0x1.8cp6, + -0x1.8ffffffffffffp6 + }, + { // Entry 64 + -0x1.90p6, + -0x1.9200000000001p6 + }, + { // Entry 65 + -0x1.90p6, + -0x1.920p6 + }, + { // Entry 66 + -0x1.90p6, + -0x1.91fffffffffffp6 + }, + { // Entry 67 + -0x1.f4p9, + -0x1.f400000000001p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f40p9 + }, + { // Entry 69 + -0x1.f380p9, + -0x1.f3fffffffffffp9 + }, + { // Entry 70 + -0x1.f4p9, + -0x1.f440000000001p9 + }, + { // Entry 71 + -0x1.f4p9, + -0x1.f44p9 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f43ffffffffffp9 + }, + { // Entry 73 + -0x1.p50, + -0x1.0000000000001p50 + }, + { // Entry 74 + -0x1.p50, + -0x1.0p50 + }, + { // Entry 75 + -0x1.ffffffffffff80p49, + -0x1.fffffffffffffp49 + }, + { // Entry 76 + -0x1.p51, + -0x1.0000000000001p51 + }, + { // Entry 77 + -0x1.p51, + -0x1.0p51 + }, + { // Entry 78 + -0x1.ffffffffffffc0p50, + -0x1.fffffffffffffp50 + }, + { // Entry 79 + -0x1.00000000000010p52, + -0x1.0000000000001p52 + }, + { // Entry 80 + -0x1.p52, + -0x1.0p52 + }, + { // Entry 81 + -0x1.ffffffffffffe0p51, + -0x1.fffffffffffffp51 + }, + { // Entry 82 + -0x1.00000000000010p53, + -0x1.0000000000001p53 + }, + { // Entry 83 + -0x1.p53, + -0x1.0p53 + }, + { // Entry 84 + -0x1.fffffffffffff0p52, + -0x1.fffffffffffffp52 + }, + { // Entry 85 + -0x1.00000000000010p54, + -0x1.0000000000001p54 + }, + { // Entry 86 + -0x1.p54, + -0x1.0p54 + }, + { // Entry 87 + -0x1.fffffffffffff0p53, + -0x1.fffffffffffffp53 + }, + { // Entry 88 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 89 + 0x1.p30, + 0x1.fffffffffffffp29 + }, + { // Entry 90 + 0x1.p30, + 0x1.0p30 + }, + { // Entry 91 + 0x1.00000004p30, + 0x1.0000000000001p30 + }, + { // Entry 92 + 0x1.fffffff8p30, + 0x1.fffffff7ffffep30 + }, + { // Entry 93 + 0x1.fffffff8p30, + 0x1.fffffff7fffffp30 + }, + { // Entry 94 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 95 + 0x1.fffffffcp30, + 0x1.fffffff800001p30 + }, + { // Entry 96 + 0x1.fffffffcp30, + 0x1.fffffff800002p30 + }, + { // Entry 97 + 0x1.fffffffcp30, + 0x1.fffffff9ffffep30 + }, + { // Entry 98 + 0x1.fffffffcp30, + 0x1.fffffff9fffffp30 + }, + { // Entry 99 + 0x1.fffffffcp30, + 0x1.fffffffa0p30 + }, + { // Entry 100 + 0x1.fffffffcp30, + 0x1.fffffffa00001p30 + }, + { // Entry 101 + 0x1.fffffffcp30, + 0x1.fffffffa00002p30 + }, + { // Entry 102 + 0x1.fffffffcp30, + 0x1.fffffffbffffep30 + }, + { // Entry 103 + 0x1.fffffffcp30, + 0x1.fffffffbfffffp30 + }, + { // Entry 104 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 105 + 0x1.p31, + 0x1.fffffffc00001p30 + }, + { // Entry 106 + 0x1.p31, + 0x1.fffffffc00002p30 + }, + { // Entry 107 + 0x1.p31, + 0x1.fffffffdffffep30 + }, + { // Entry 108 + 0x1.p31, + 0x1.fffffffdfffffp30 + }, + { // Entry 109 + 0x1.p31, + 0x1.fffffffe0p30 + }, + { // Entry 110 + 0x1.p31, + 0x1.fffffffe00001p30 + }, + { // Entry 111 + 0x1.p31, + 0x1.fffffffe00002p30 + }, + { // Entry 112 + 0x1.p31, + 0x1.ffffffffffffep30 + }, + { // Entry 113 + 0x1.p31, + 0x1.fffffffffffffp30 + }, + { // Entry 114 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 115 + 0x1.00000002p31, + 0x1.0000000000001p31 + }, + { // Entry 116 + 0x1.00000002p31, + 0x1.0000000000002p31 + }, + { // Entry 117 + 0x1.00000002p31, + 0x1.00000000ffffep31 + }, + { // Entry 118 + 0x1.00000002p31, + 0x1.00000000fffffp31 + }, + { // Entry 119 + 0x1.00000002p31, + 0x1.000000010p31 + }, + { // Entry 120 + 0x1.00000002p31, + 0x1.0000000100001p31 + }, + { // Entry 121 + 0x1.00000002p31, + 0x1.0000000100002p31 + }, + { // Entry 122 + 0x1.ffffffe0p30, + 0x1.ffffffep30 + }, + { // Entry 123 + 0x1.ffffffe4p30, + 0x1.ffffffe40p30 + }, + { // Entry 124 + 0x1.ffffffe8p30, + 0x1.ffffffe80p30 + }, + { // Entry 125 + 0x1.ffffffecp30, + 0x1.ffffffec0p30 + }, + { // Entry 126 + 0x1.fffffff0p30, + 0x1.fffffffp30 + }, + { // Entry 127 + 0x1.fffffff4p30, + 0x1.fffffff40p30 + }, + { // Entry 128 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 129 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 130 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 131 + 0x1.00000002p31, + 0x1.000000020p31 + }, + { // Entry 132 + -0x1.p30, + -0x1.0000000000001p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.0p30 + }, + { // Entry 134 + -0x1.fffffff8p29, + -0x1.fffffffffffffp29 + }, + { // Entry 135 + -0x1.fffffff8p30, + -0x1.fffffff800002p30 + }, + { // Entry 136 + -0x1.fffffff8p30, + -0x1.fffffff800001p30 + }, + { // Entry 137 + -0x1.fffffff8p30, + -0x1.fffffff80p30 + }, + { // Entry 138 + -0x1.fffffff4p30, + -0x1.fffffff7fffffp30 + }, + { // Entry 139 + -0x1.fffffff4p30, + -0x1.fffffff7ffffep30 + }, + { // Entry 140 + -0x1.fffffff8p30, + -0x1.fffffffa00002p30 + }, + { // Entry 141 + -0x1.fffffff8p30, + -0x1.fffffffa00001p30 + }, + { // Entry 142 + -0x1.fffffff8p30, + -0x1.fffffffa0p30 + }, + { // Entry 143 + -0x1.fffffff8p30, + -0x1.fffffff9fffffp30 + }, + { // Entry 144 + -0x1.fffffff8p30, + -0x1.fffffff9ffffep30 + }, + { // Entry 145 + -0x1.fffffffcp30, + -0x1.fffffffc00002p30 + }, + { // Entry 146 + -0x1.fffffffcp30, + -0x1.fffffffc00001p30 + }, + { // Entry 147 + -0x1.fffffffcp30, + -0x1.fffffffc0p30 + }, + { // Entry 148 + -0x1.fffffff8p30, + -0x1.fffffffbfffffp30 + }, + { // Entry 149 + -0x1.fffffff8p30, + -0x1.fffffffbffffep30 + }, + { // Entry 150 + -0x1.fffffffcp30, + -0x1.fffffffe00002p30 + }, + { // Entry 151 + -0x1.fffffffcp30, + -0x1.fffffffe00001p30 + }, + { // Entry 152 + -0x1.fffffffcp30, + -0x1.fffffffe0p30 + }, + { // Entry 153 + -0x1.fffffffcp30, + -0x1.fffffffdfffffp30 + }, + { // Entry 154 + -0x1.fffffffcp30, + -0x1.fffffffdffffep30 + }, + { // Entry 155 + -0x1.p31, + -0x1.0000000000002p31 + }, + { // Entry 156 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 158 + -0x1.fffffffcp30, + -0x1.fffffffffffffp30 + }, + { // Entry 159 + -0x1.fffffffcp30, + -0x1.ffffffffffffep30 + }, + { // Entry 160 + -0x1.p31, + -0x1.0000000100002p31 + }, + { // Entry 161 + -0x1.p31, + -0x1.0000000100001p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.000000010p31 + }, + { // Entry 163 + -0x1.p31, + -0x1.00000000fffffp31 + }, + { // Entry 164 + -0x1.p31, + -0x1.00000000ffffep31 + }, + { // Entry 165 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 166 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 167 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 168 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 169 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 170 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 171 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 172 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 173 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 174 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 175 + 0x1.ffffffffffffe0p61, + 0x1.ffffffffffffep61 + }, + { // Entry 176 + 0x1.fffffffffffff0p61, + 0x1.fffffffffffffp61 + }, + { // Entry 177 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 178 + 0x1.00000000000010p62, + 0x1.0000000000001p62 + }, + { // Entry 179 + 0x1.00000000000020p62, + 0x1.0000000000002p62 + }, + { // Entry 180 + 0x1.ffffffffffffe0p62, + 0x1.ffffffffffffep62 + }, + { // Entry 181 + 0x1.fffffffffffff0p62, + 0x1.fffffffffffffp62 + }, + { // Entry 182 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 183 + 0x1.00000000000010p63, + 0x1.0000000000001p63 + }, + { // Entry 184 + 0x1.00000000000020p63, + 0x1.0000000000002p63 + }, + { // Entry 185 + 0x1.ffffffffffffe0p63, + 0x1.ffffffffffffep63 + }, + { // Entry 186 + 0x1.fffffffffffff0p63, + 0x1.fffffffffffffp63 + }, + { // Entry 187 + 0x1.p64, + 0x1.0p64 + }, + { // Entry 188 + 0x1.00000000000010p64, + 0x1.0000000000001p64 + }, + { // Entry 189 + 0x1.00000000000020p64, + 0x1.0000000000002p64 + }, + { // Entry 190 + -0x1.00000000000020p62, + -0x1.0000000000002p62 + }, + { // Entry 191 + -0x1.00000000000010p62, + -0x1.0000000000001p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 193 + -0x1.fffffffffffff0p61, + -0x1.fffffffffffffp61 + }, + { // Entry 194 + -0x1.ffffffffffffe0p61, + -0x1.ffffffffffffep61 + }, + { // Entry 195 + -0x1.00000000000020p63, + -0x1.0000000000002p63 + }, + { // Entry 196 + -0x1.00000000000010p63, + -0x1.0000000000001p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 198 + -0x1.fffffffffffff0p62, + -0x1.fffffffffffffp62 + }, + { // Entry 199 + -0x1.ffffffffffffe0p62, + -0x1.ffffffffffffep62 + }, + { // Entry 200 + -0x1.00000000000020p64, + -0x1.0000000000002p64 + }, + { // Entry 201 + -0x1.00000000000010p64, + -0x1.0000000000001p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.0p64 + }, + { // Entry 203 + -0x1.fffffffffffff0p63, + -0x1.fffffffffffffp63 + }, + { // Entry 204 + -0x1.ffffffffffffe0p63, + -0x1.ffffffffffffep63 + }, + { // Entry 205 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 209 + 0x1.fffffffcp30, + 0x1.fffffffbfffffp30 + }, + { // Entry 210 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 211 + 0x1.p31, + 0x1.fffffffc00001p30 + }, + { // Entry 212 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 214 + -0x1.fffffffcp30, + -0x1.fffffffffffffp30 + }, + { // Entry 215 + 0x1.p2, + 0x1.fffffffffffffp1 + }, + { // Entry 216 + 0x1.p2, + 0x1.0p2 + }, + { // Entry 217 + 0x1.40p2, + 0x1.0000000000001p2 + }, + { // Entry 218 + 0x1.p3, + 0x1.fffffffffffffp2 + }, + { // Entry 219 + 0x1.p3, + 0x1.0p3 + }, + { // Entry 220 + 0x1.20p3, + 0x1.0000000000001p3 + }, + { // Entry 221 + 0x1.p4, + 0x1.fffffffffffffp3 + }, + { // Entry 222 + 0x1.p4, + 0x1.0p4 + }, + { // Entry 223 + 0x1.10p4, + 0x1.0000000000001p4 + }, + { // Entry 224 + 0x1.p5, + 0x1.fffffffffffffp4 + }, + { // Entry 225 + 0x1.p5, + 0x1.0p5 + }, + { // Entry 226 + 0x1.08p5, + 0x1.0000000000001p5 + }, + { // Entry 227 + 0x1.p6, + 0x1.fffffffffffffp5 + }, + { // Entry 228 + 0x1.p6, + 0x1.0p6 + }, + { // Entry 229 + 0x1.04p6, + 0x1.0000000000001p6 + }, + { // Entry 230 + 0x1.p7, + 0x1.fffffffffffffp6 + }, + { // Entry 231 + 0x1.p7, + 0x1.0p7 + }, + { // Entry 232 + 0x1.02p7, + 0x1.0000000000001p7 + }, + { // Entry 233 + 0x1.p8, + 0x1.fffffffffffffp7 + }, + { // Entry 234 + 0x1.p8, + 0x1.0p8 + }, + { // Entry 235 + 0x1.01p8, + 0x1.0000000000001p8 + }, + { // Entry 236 + 0x1.p9, + 0x1.fffffffffffffp8 + }, + { // Entry 237 + 0x1.p9, + 0x1.0p9 + }, + { // Entry 238 + 0x1.0080p9, + 0x1.0000000000001p9 + }, + { // Entry 239 + 0x1.p10, + 0x1.fffffffffffffp9 + }, + { // Entry 240 + 0x1.p10, + 0x1.0p10 + }, + { // Entry 241 + 0x1.0040p10, + 0x1.0000000000001p10 + }, + { // Entry 242 + 0x1.p11, + 0x1.fffffffffffffp10 + }, + { // Entry 243 + 0x1.p11, + 0x1.0p11 + }, + { // Entry 244 + 0x1.0020p11, + 0x1.0000000000001p11 + }, + { // Entry 245 + 0x1.p12, + 0x1.fffffffffffffp11 + }, + { // Entry 246 + 0x1.p12, + 0x1.0p12 + }, + { // Entry 247 + 0x1.0010p12, + 0x1.0000000000001p12 + }, + { // Entry 248 + 0x1.40p2, + 0x1.1ffffffffffffp2 + }, + { // Entry 249 + 0x1.40p2, + 0x1.2p2 + }, + { // Entry 250 + 0x1.40p2, + 0x1.2000000000001p2 + }, + { // Entry 251 + 0x1.20p3, + 0x1.0ffffffffffffp3 + }, + { // Entry 252 + 0x1.20p3, + 0x1.1p3 + }, + { // Entry 253 + 0x1.20p3, + 0x1.1000000000001p3 + }, + { // Entry 254 + 0x1.10p4, + 0x1.07fffffffffffp4 + }, + { // Entry 255 + 0x1.10p4, + 0x1.080p4 + }, + { // Entry 256 + 0x1.10p4, + 0x1.0800000000001p4 + }, + { // Entry 257 + 0x1.08p5, + 0x1.03fffffffffffp5 + }, + { // Entry 258 + 0x1.08p5, + 0x1.040p5 + }, + { // Entry 259 + 0x1.08p5, + 0x1.0400000000001p5 + }, + { // Entry 260 + 0x1.04p6, + 0x1.01fffffffffffp6 + }, + { // Entry 261 + 0x1.04p6, + 0x1.020p6 + }, + { // Entry 262 + 0x1.04p6, + 0x1.0200000000001p6 + }, + { // Entry 263 + 0x1.02p7, + 0x1.00fffffffffffp7 + }, + { // Entry 264 + 0x1.02p7, + 0x1.010p7 + }, + { // Entry 265 + 0x1.02p7, + 0x1.0100000000001p7 + }, + { // Entry 266 + 0x1.01p8, + 0x1.007ffffffffffp8 + }, + { // Entry 267 + 0x1.01p8, + 0x1.008p8 + }, + { // Entry 268 + 0x1.01p8, + 0x1.0080000000001p8 + }, + { // Entry 269 + 0x1.0080p9, + 0x1.003ffffffffffp9 + }, + { // Entry 270 + 0x1.0080p9, + 0x1.004p9 + }, + { // Entry 271 + 0x1.0080p9, + 0x1.0040000000001p9 + }, + { // Entry 272 + 0x1.0040p10, + 0x1.001ffffffffffp10 + }, + { // Entry 273 + 0x1.0040p10, + 0x1.002p10 + }, + { // Entry 274 + 0x1.0040p10, + 0x1.0020000000001p10 + }, + { // Entry 275 + 0x1.0080p10, + 0x1.005ffffffffffp10 + }, + { // Entry 276 + 0x1.0080p10, + 0x1.006p10 + }, + { // Entry 277 + 0x1.0080p10, + 0x1.0060000000001p10 + }, + { // Entry 278 + 0x1.0020p11, + 0x1.000ffffffffffp11 + }, + { // Entry 279 + 0x1.0020p11, + 0x1.001p11 + }, + { // Entry 280 + 0x1.0020p11, + 0x1.0010000000001p11 + }, + { // Entry 281 + 0x1.0010p12, + 0x1.0007fffffffffp12 + }, + { // Entry 282 + 0x1.0010p12, + 0x1.00080p12 + }, + { // Entry 283 + 0x1.0010p12, + 0x1.0008000000001p12 + }, + { // Entry 284 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 285 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 286 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 287 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 288 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 289 + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 290 + 0x1.p2, + 0x1.921fb54442d18p1 + }, + { // Entry 291 + -0x1.80p1, + -0x1.921fb54442d18p1 + }, + { // Entry 292 + 0x1.p1, + 0x1.921fb54442d18p0 + }, + { // Entry 293 + -0x1.p0, + -0x1.921fb54442d18p0 + }, + { // Entry 294 + 0x1.p1, + 0x1.0000000000001p0 + }, + { // Entry 295 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 298 + 0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 299 + -0.0, + -0x1.fffffffffffffp-1 + }, + { // Entry 300 + 0x1.p0, + 0x1.921fb54442d18p-1 + }, + { // Entry 301 + -0.0, + -0x1.921fb54442d18p-1 + }, + { // Entry 302 + 0x1.p0, + 0x1.0000000000001p-1022 + }, + { // Entry 303 + -0.0, + -0x1.0000000000001p-1022 + }, + { // Entry 304 + 0x1.p0, + 0x1.0p-1022 + }, + { // Entry 305 + -0.0, + -0x1.0p-1022 + }, + { // Entry 306 + 0x1.p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 307 + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 308 + 0x1.p0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 309 + -0.0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 310 + 0x1.p0, + 0x1.0p-1073 + }, + { // Entry 311 + -0.0, + -0x1.0p-1073 + }, + { // Entry 312 + 0x1.p0, + 0x1.0p-1074 + }, + { // Entry 313 + -0.0, + -0x1.0p-1074 + }, + { // Entry 314 + 0.0, + 0.0 + }, + { // Entry 315 + -0.0, + -0.0 + }, + { // Entry 316 + 0x1.p1, + 0x1.8p0 + }, + { // Entry 317 + -0x1.p0, + -0x1.8p0 + }, + { // Entry 318 + 0x1.80p1, + 0x1.4p1 + }, + { // Entry 319 + -0x1.p1, + -0x1.4p1 + }, + { // Entry 320 + 0x1.p0, + 0x1.fffffp-2 + }, + { // Entry 321 + 0x1.p0, + 0x1.0p-1 + }, + { // Entry 322 + 0x1.p0, + 0x1.00001p-1 + }, + { // Entry 323 + -0.0, + -0x1.fffffp-2 + }, + { // Entry 324 + -0.0, + -0x1.0p-1 + }, + { // Entry 325 + -0.0, + -0x1.00001p-1 + }, + { // Entry 326 + 0x1.p1, + 0x1.80001p0 + }, + { // Entry 327 + 0x1.p1, + 0x1.7ffffp0 + }, + { // Entry 328 + -0x1.p0, + -0x1.80001p0 + }, + { // Entry 329 + -0x1.p0, + -0x1.7ffffp0 + } +}; diff --git a/tests/math_data/ceilf_intel_data.h b/tests/math_data/ceilf_intel_data.h new file mode 100644 index 000000000..4b5240600 --- /dev/null +++ b/tests/math_data/ceilf_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_ceilf_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.p-149 + }, + { // Entry 1 + 0.0, + 0.0 + }, + { // Entry 2 + 0x1.p0, + 0x1.p-149 + }, + { // Entry 3 + 0x1.p0, + 0x1.fffffep-2 + }, + { // Entry 4 + 0x1.p0, + 0x1.p-1 + }, + { // Entry 5 + 0x1.p0, + 0x1.000002p-1 + }, + { // Entry 6 + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.p0 + }, + { // Entry 8 + 0x1.p1, + 0x1.000002p0 + }, + { // Entry 9 + 0x1.p1, + 0x1.7ffffep0 + }, + { // Entry 10 + 0x1.p1, + 0x1.80p0 + }, + { // Entry 11 + 0x1.p1, + 0x1.800002p0 + }, + { // Entry 12 + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 13 + 0x1.p1, + 0x1.p1 + }, + { // Entry 14 + 0x1.80p1, + 0x1.000002p1 + }, + { // Entry 15 + 0x1.80p1, + 0x1.3ffffep1 + }, + { // Entry 16 + 0x1.80p1, + 0x1.40p1 + }, + { // Entry 17 + 0x1.80p1, + 0x1.400002p1 + }, + { // Entry 18 + 0x1.90p6, + 0x1.8ffffep6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.90p6 + }, + { // Entry 20 + 0x1.94p6, + 0x1.900002p6 + }, + { // Entry 21 + 0x1.94p6, + 0x1.91fffep6 + }, + { // Entry 22 + 0x1.94p6, + 0x1.92p6 + }, + { // Entry 23 + 0x1.94p6, + 0x1.920002p6 + }, + { // Entry 24 + 0x1.f4p9, + 0x1.f3fffep9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f4p9 + }, + { // Entry 26 + 0x1.f480p9, + 0x1.f40002p9 + }, + { // Entry 27 + 0x1.f480p9, + 0x1.f43ffep9 + }, + { // Entry 28 + 0x1.f480p9, + 0x1.f440p9 + }, + { // Entry 29 + 0x1.f480p9, + 0x1.f44002p9 + }, + { // Entry 30 + 0x1.p21, + 0x1.fffffep20 + }, + { // Entry 31 + 0x1.p21, + 0x1.p21 + }, + { // Entry 32 + 0x1.000008p21, + 0x1.000002p21 + }, + { // Entry 33 + 0x1.p22, + 0x1.fffffep21 + }, + { // Entry 34 + 0x1.p22, + 0x1.p22 + }, + { // Entry 35 + 0x1.000004p22, + 0x1.000002p22 + }, + { // Entry 36 + 0x1.p23, + 0x1.fffffep22 + }, + { // Entry 37 + 0x1.p23, + 0x1.p23 + }, + { // Entry 38 + 0x1.000002p23, + 0x1.000002p23 + }, + { // Entry 39 + 0x1.fffffep23, + 0x1.fffffep23 + }, + { // Entry 40 + 0x1.p24, + 0x1.p24 + }, + { // Entry 41 + 0x1.000002p24, + 0x1.000002p24 + }, + { // Entry 42 + 0x1.fffffep24, + 0x1.fffffep24 + }, + { // Entry 43 + 0x1.p25, + 0x1.p25 + }, + { // Entry 44 + 0x1.000002p25, + 0x1.000002p25 + }, + { // Entry 45 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 46 + -0.0, + -0x1.000002p-1 + }, + { // Entry 47 + -0.0, + -0x1.p-1 + }, + { // Entry 48 + -0.0, + -0x1.fffffep-2 + }, + { // Entry 49 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.p0 + }, + { // Entry 51 + -0.0, + -0x1.fffffep-1 + }, + { // Entry 52 + -0x1.p0, + -0x1.800002p0 + }, + { // Entry 53 + -0x1.p0, + -0x1.80p0 + }, + { // Entry 54 + -0x1.p0, + -0x1.7ffffep0 + }, + { // Entry 55 + -0x1.p1, + -0x1.000002p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.p1 + }, + { // Entry 57 + -0x1.p0, + -0x1.fffffep0 + }, + { // Entry 58 + -0x1.p1, + -0x1.400002p1 + }, + { // Entry 59 + -0x1.p1, + -0x1.40p1 + }, + { // Entry 60 + -0x1.p1, + -0x1.3ffffep1 + }, + { // Entry 61 + -0x1.90p6, + -0x1.900002p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.90p6 + }, + { // Entry 63 + -0x1.8cp6, + -0x1.8ffffep6 + }, + { // Entry 64 + -0x1.90p6, + -0x1.920002p6 + }, + { // Entry 65 + -0x1.90p6, + -0x1.92p6 + }, + { // Entry 66 + -0x1.90p6, + -0x1.91fffep6 + }, + { // Entry 67 + -0x1.f4p9, + -0x1.f40002p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f4p9 + }, + { // Entry 69 + -0x1.f380p9, + -0x1.f3fffep9 + }, + { // Entry 70 + -0x1.f4p9, + -0x1.f44002p9 + }, + { // Entry 71 + -0x1.f4p9, + -0x1.f440p9 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f43ffep9 + }, + { // Entry 73 + -0x1.p21, + -0x1.000002p21 + }, + { // Entry 74 + -0x1.p21, + -0x1.p21 + }, + { // Entry 75 + -0x1.fffff0p20, + -0x1.fffffep20 + }, + { // Entry 76 + -0x1.p22, + -0x1.000002p22 + }, + { // Entry 77 + -0x1.p22, + -0x1.p22 + }, + { // Entry 78 + -0x1.fffff8p21, + -0x1.fffffep21 + }, + { // Entry 79 + -0x1.000002p23, + -0x1.000002p23 + }, + { // Entry 80 + -0x1.p23, + -0x1.p23 + }, + { // Entry 81 + -0x1.fffffcp22, + -0x1.fffffep22 + }, + { // Entry 82 + -0x1.000002p24, + -0x1.000002p24 + }, + { // Entry 83 + -0x1.p24, + -0x1.p24 + }, + { // Entry 84 + -0x1.fffffep23, + -0x1.fffffep23 + }, + { // Entry 85 + -0x1.000002p25, + -0x1.000002p25 + }, + { // Entry 86 + -0x1.p25, + -0x1.p25 + }, + { // Entry 87 + -0x1.fffffep24, + -0x1.fffffep24 + }, + { // Entry 88 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 89 + 0x1.fffffep29, + 0x1.fffffep29 + }, + { // Entry 90 + 0x1.p30, + 0x1.p30 + }, + { // Entry 91 + 0x1.000002p30, + 0x1.000002p30 + }, + { // Entry 92 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 93 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 94 + 0x1.p31, + 0x1.p31 + }, + { // Entry 95 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 96 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 97 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 98 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 99 + 0x1.p31, + 0x1.p31 + }, + { // Entry 100 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 101 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 102 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 103 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 104 + 0x1.p31, + 0x1.p31 + }, + { // Entry 105 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 106 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 107 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 108 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 109 + 0x1.p31, + 0x1.p31 + }, + { // Entry 110 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 111 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 112 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 113 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 114 + 0x1.p31, + 0x1.p31 + }, + { // Entry 115 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 116 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 117 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 118 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 119 + 0x1.p31, + 0x1.p31 + }, + { // Entry 120 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 121 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 122 + 0x1.p31, + 0x1.p31 + }, + { // Entry 123 + 0x1.p31, + 0x1.p31 + }, + { // Entry 124 + 0x1.p31, + 0x1.p31 + }, + { // Entry 125 + 0x1.p31, + 0x1.p31 + }, + { // Entry 126 + 0x1.p31, + 0x1.p31 + }, + { // Entry 127 + 0x1.p31, + 0x1.p31 + }, + { // Entry 128 + 0x1.p31, + 0x1.p31 + }, + { // Entry 129 + 0x1.p31, + 0x1.p31 + }, + { // Entry 130 + 0x1.p31, + 0x1.p31 + }, + { // Entry 131 + 0x1.p31, + 0x1.p31 + }, + { // Entry 132 + -0x1.000002p30, + -0x1.000002p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.p30 + }, + { // Entry 134 + -0x1.fffffep29, + -0x1.fffffep29 + }, + { // Entry 135 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 136 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 137 + -0x1.p31, + -0x1.p31 + }, + { // Entry 138 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 139 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 140 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 141 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 142 + -0x1.p31, + -0x1.p31 + }, + { // Entry 143 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 144 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 145 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 146 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 147 + -0x1.p31, + -0x1.p31 + }, + { // Entry 148 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 149 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 150 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 151 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 152 + -0x1.p31, + -0x1.p31 + }, + { // Entry 153 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 154 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 155 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 156 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.p31 + }, + { // Entry 158 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 159 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 160 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 161 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.p31 + }, + { // Entry 163 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 164 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 165 + -0x1.p31, + -0x1.p31 + }, + { // Entry 166 + -0x1.p31, + -0x1.p31 + }, + { // Entry 167 + -0x1.p31, + -0x1.p31 + }, + { // Entry 168 + -0x1.p31, + -0x1.p31 + }, + { // Entry 169 + -0x1.p31, + -0x1.p31 + }, + { // Entry 170 + -0x1.p31, + -0x1.p31 + }, + { // Entry 171 + -0x1.p31, + -0x1.p31 + }, + { // Entry 172 + -0x1.p31, + -0x1.p31 + }, + { // Entry 173 + -0x1.p31, + -0x1.p31 + }, + { // Entry 174 + -0x1.p31, + -0x1.p31 + }, + { // Entry 175 + 0x1.fffffcp61, + 0x1.fffffcp61 + }, + { // Entry 176 + 0x1.fffffep61, + 0x1.fffffep61 + }, + { // Entry 177 + 0x1.p62, + 0x1.p62 + }, + { // Entry 178 + 0x1.000002p62, + 0x1.000002p62 + }, + { // Entry 179 + 0x1.000004p62, + 0x1.000004p62 + }, + { // Entry 180 + 0x1.fffffcp62, + 0x1.fffffcp62 + }, + { // Entry 181 + 0x1.fffffep62, + 0x1.fffffep62 + }, + { // Entry 182 + 0x1.p63, + 0x1.p63 + }, + { // Entry 183 + 0x1.000002p63, + 0x1.000002p63 + }, + { // Entry 184 + 0x1.000004p63, + 0x1.000004p63 + }, + { // Entry 185 + 0x1.fffffcp63, + 0x1.fffffcp63 + }, + { // Entry 186 + 0x1.fffffep63, + 0x1.fffffep63 + }, + { // Entry 187 + 0x1.p64, + 0x1.p64 + }, + { // Entry 188 + 0x1.000002p64, + 0x1.000002p64 + }, + { // Entry 189 + 0x1.000004p64, + 0x1.000004p64 + }, + { // Entry 190 + -0x1.000004p62, + -0x1.000004p62 + }, + { // Entry 191 + -0x1.000002p62, + -0x1.000002p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.p62 + }, + { // Entry 193 + -0x1.fffffep61, + -0x1.fffffep61 + }, + { // Entry 194 + -0x1.fffffcp61, + -0x1.fffffcp61 + }, + { // Entry 195 + -0x1.000004p63, + -0x1.000004p63 + }, + { // Entry 196 + -0x1.000002p63, + -0x1.000002p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.p63 + }, + { // Entry 198 + -0x1.fffffep62, + -0x1.fffffep62 + }, + { // Entry 199 + -0x1.fffffcp62, + -0x1.fffffcp62 + }, + { // Entry 200 + -0x1.000004p64, + -0x1.000004p64 + }, + { // Entry 201 + -0x1.000002p64, + -0x1.000002p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.p64 + }, + { // Entry 203 + -0x1.fffffep63, + -0x1.fffffep63 + }, + { // Entry 204 + -0x1.fffffcp63, + -0x1.fffffcp63 + }, + { // Entry 205 + 0x1.p62, + 0x1.p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.p63 + }, + { // Entry 209 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 210 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 211 + 0x1.p31, + 0x1.p31 + }, + { // Entry 212 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.p31 + }, + { // Entry 214 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 215 + 0x1.p2, + 0x1.fffffep1 + }, + { // Entry 216 + 0x1.p2, + 0x1.p2 + }, + { // Entry 217 + 0x1.40p2, + 0x1.000002p2 + }, + { // Entry 218 + 0x1.p3, + 0x1.fffffep2 + }, + { // Entry 219 + 0x1.p3, + 0x1.p3 + }, + { // Entry 220 + 0x1.20p3, + 0x1.000002p3 + }, + { // Entry 221 + 0x1.p4, + 0x1.fffffep3 + }, + { // Entry 222 + 0x1.p4, + 0x1.p4 + }, + { // Entry 223 + 0x1.10p4, + 0x1.000002p4 + }, + { // Entry 224 + 0x1.p5, + 0x1.fffffep4 + }, + { // Entry 225 + 0x1.p5, + 0x1.p5 + }, + { // Entry 226 + 0x1.08p5, + 0x1.000002p5 + }, + { // Entry 227 + 0x1.p6, + 0x1.fffffep5 + }, + { // Entry 228 + 0x1.p6, + 0x1.p6 + }, + { // Entry 229 + 0x1.04p6, + 0x1.000002p6 + }, + { // Entry 230 + 0x1.p7, + 0x1.fffffep6 + }, + { // Entry 231 + 0x1.p7, + 0x1.p7 + }, + { // Entry 232 + 0x1.02p7, + 0x1.000002p7 + }, + { // Entry 233 + 0x1.p8, + 0x1.fffffep7 + }, + { // Entry 234 + 0x1.p8, + 0x1.p8 + }, + { // Entry 235 + 0x1.01p8, + 0x1.000002p8 + }, + { // Entry 236 + 0x1.p9, + 0x1.fffffep8 + }, + { // Entry 237 + 0x1.p9, + 0x1.p9 + }, + { // Entry 238 + 0x1.0080p9, + 0x1.000002p9 + }, + { // Entry 239 + 0x1.p10, + 0x1.fffffep9 + }, + { // Entry 240 + 0x1.p10, + 0x1.p10 + }, + { // Entry 241 + 0x1.0040p10, + 0x1.000002p10 + }, + { // Entry 242 + 0x1.p11, + 0x1.fffffep10 + }, + { // Entry 243 + 0x1.p11, + 0x1.p11 + }, + { // Entry 244 + 0x1.0020p11, + 0x1.000002p11 + }, + { // Entry 245 + 0x1.p12, + 0x1.fffffep11 + }, + { // Entry 246 + 0x1.p12, + 0x1.p12 + }, + { // Entry 247 + 0x1.0010p12, + 0x1.000002p12 + }, + { // Entry 248 + 0x1.40p2, + 0x1.1ffffep2 + }, + { // Entry 249 + 0x1.40p2, + 0x1.20p2 + }, + { // Entry 250 + 0x1.40p2, + 0x1.200002p2 + }, + { // Entry 251 + 0x1.20p3, + 0x1.0ffffep3 + }, + { // Entry 252 + 0x1.20p3, + 0x1.10p3 + }, + { // Entry 253 + 0x1.20p3, + 0x1.100002p3 + }, + { // Entry 254 + 0x1.10p4, + 0x1.07fffep4 + }, + { // Entry 255 + 0x1.10p4, + 0x1.08p4 + }, + { // Entry 256 + 0x1.10p4, + 0x1.080002p4 + }, + { // Entry 257 + 0x1.08p5, + 0x1.03fffep5 + }, + { // Entry 258 + 0x1.08p5, + 0x1.04p5 + }, + { // Entry 259 + 0x1.08p5, + 0x1.040002p5 + }, + { // Entry 260 + 0x1.04p6, + 0x1.01fffep6 + }, + { // Entry 261 + 0x1.04p6, + 0x1.02p6 + }, + { // Entry 262 + 0x1.04p6, + 0x1.020002p6 + }, + { // Entry 263 + 0x1.02p7, + 0x1.00fffep7 + }, + { // Entry 264 + 0x1.02p7, + 0x1.01p7 + }, + { // Entry 265 + 0x1.02p7, + 0x1.010002p7 + }, + { // Entry 266 + 0x1.01p8, + 0x1.007ffep8 + }, + { // Entry 267 + 0x1.01p8, + 0x1.0080p8 + }, + { // Entry 268 + 0x1.01p8, + 0x1.008002p8 + }, + { // Entry 269 + 0x1.0080p9, + 0x1.003ffep9 + }, + { // Entry 270 + 0x1.0080p9, + 0x1.0040p9 + }, + { // Entry 271 + 0x1.0080p9, + 0x1.004002p9 + }, + { // Entry 272 + 0x1.0040p10, + 0x1.001ffep10 + }, + { // Entry 273 + 0x1.0040p10, + 0x1.0020p10 + }, + { // Entry 274 + 0x1.0040p10, + 0x1.002002p10 + }, + { // Entry 275 + 0x1.0080p10, + 0x1.005ffep10 + }, + { // Entry 276 + 0x1.0080p10, + 0x1.0060p10 + }, + { // Entry 277 + 0x1.0080p10, + 0x1.006002p10 + }, + { // Entry 278 + 0x1.0020p11, + 0x1.000ffep11 + }, + { // Entry 279 + 0x1.0020p11, + 0x1.0010p11 + }, + { // Entry 280 + 0x1.0020p11, + 0x1.001002p11 + }, + { // Entry 281 + 0x1.0010p12, + 0x1.0007fep12 + }, + { // Entry 282 + 0x1.0010p12, + 0x1.0008p12 + }, + { // Entry 283 + 0x1.0010p12, + 0x1.000802p12 + }, + { // Entry 284 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 285 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 286 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 287 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 288 + 0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 289 + -0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 290 + 0x1.p2, + 0x1.921fb6p1 + }, + { // Entry 291 + -0x1.80p1, + -0x1.921fb6p1 + }, + { // Entry 292 + 0x1.p1, + 0x1.921fb6p0 + }, + { // Entry 293 + -0x1.p0, + -0x1.921fb6p0 + }, + { // Entry 294 + 0x1.p1, + 0x1.000002p0 + }, + { // Entry 295 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.p0 + }, + { // Entry 298 + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 299 + -0.0, + -0x1.fffffep-1 + }, + { // Entry 300 + 0x1.p0, + 0x1.921fb6p-1 + }, + { // Entry 301 + -0.0, + -0x1.921fb6p-1 + }, + { // Entry 302 + 0x1.p0, + 0x1.000002p-126 + }, + { // Entry 303 + -0.0, + -0x1.000002p-126 + }, + { // Entry 304 + 0x1.p0, + 0x1.p-126 + }, + { // Entry 305 + -0.0, + -0x1.p-126 + }, + { // Entry 306 + 0x1.p0, + 0x1.fffffcp-127 + }, + { // Entry 307 + -0.0, + -0x1.fffffcp-127 + }, + { // Entry 308 + 0x1.p0, + 0x1.fffff8p-127 + }, + { // Entry 309 + -0.0, + -0x1.fffff8p-127 + }, + { // Entry 310 + 0x1.p0, + 0x1.p-148 + }, + { // Entry 311 + -0.0, + -0x1.p-148 + }, + { // Entry 312 + 0x1.p0, + 0x1.p-149 + }, + { // Entry 313 + -0.0, + -0x1.p-149 + }, + { // Entry 314 + 0.0, + 0.0f + }, + { // Entry 315 + -0.0, + -0.0f + }, + { // Entry 316 + 0x1.p1, + 0x1.80p0 + }, + { // Entry 317 + -0x1.p0, + -0x1.80p0 + }, + { // Entry 318 + 0x1.80p1, + 0x1.40p1 + }, + { // Entry 319 + -0x1.p1, + -0x1.40p1 + }, + { // Entry 320 + 0x1.p0, + 0x1.fffff0p-2 + }, + { // Entry 321 + 0x1.p0, + 0x1.p-1 + }, + { // Entry 322 + 0x1.p0, + 0x1.000010p-1 + }, + { // Entry 323 + -0.0, + -0x1.fffff0p-2 + }, + { // Entry 324 + -0.0, + -0x1.p-1 + }, + { // Entry 325 + -0.0, + -0x1.000010p-1 + }, + { // Entry 326 + 0x1.p1, + 0x1.800010p0 + }, + { // Entry 327 + 0x1.p1, + 0x1.7ffff0p0 + }, + { // Entry 328 + -0x1.p0, + -0x1.800010p0 + }, + { // Entry 329 + -0x1.p0, + -0x1.7ffff0p0 + } +}; diff --git a/tests/math_data/copysign_intel_data.h b/tests/math_data/copysign_intel_data.h new file mode 100644 index 000000000..1478f1e08 --- /dev/null +++ b/tests/math_data/copysign_intel_data.h @@ -0,0 +1,1458 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_copysign_intel_data[] = { + { // Entry 0 + -0x1.p-10, + -0x1.0p-10, + -0x1.0p-10 + }, + { // Entry 1 + 0x1.p-10, + -0x1.0p-10, + 0x1.0p-10 + }, + { // Entry 2 + -0x1.p-10, + 0x1.0p-10, + -0x1.0p-10 + }, + { // Entry 3 + 0x1.p-10, + 0x1.0p-10, + 0x1.0p-10 + }, + { // Entry 4 + -0x1.40p3, + -0x1.4p3, + -0x1.4p3 + }, + { // Entry 5 + 0x1.40p3, + -0x1.4p3, + 0x1.4p3 + }, + { // Entry 6 + -0x1.40p3, + 0x1.4p3, + -0x1.4p3 + }, + { // Entry 7 + 0x1.40p3, + 0x1.4p3, + 0x1.4p3 + }, + { // Entry 8 + -0x1.p-1073, + -0x1.0p-1073, + -0x1.0p-1074 + }, + { // Entry 9 + -0x1.p-1073, + -0x1.0p-1073, + -0.0 + }, + { // Entry 10 + 0x1.p-1073, + -0x1.0p-1073, + 0x1.0p-1074 + }, + { // Entry 11 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 12 + -0x1.p-1074, + -0x1.0p-1074, + -0.0 + }, + { // Entry 13 + 0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 14 + -0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 15 + -0.0, + -0.0, + -0.0 + }, + { // Entry 16 + 0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 17 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 18 + -0x1.p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 19 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 20 + -0x1.p-1073, + 0x1.0p-1073, + -0x1.0p-1074 + }, + { // Entry 21 + -0x1.p-1073, + 0x1.0p-1073, + -0.0 + }, + { // Entry 22 + 0x1.p-1073, + 0x1.0p-1073, + 0x1.0p-1074 + }, + { // Entry 23 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 24 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 25 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 26 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 27 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 28 + -0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 29 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 30 + 0x1.p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 31 + 0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 32 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 33 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 34 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 35 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 36 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 37 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 38 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 39 + 0x1.00000000000020p-1023, + -0x1.0000000000002p-1023, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 40 + 0x1.00000000000020p-1023, + -0x1.0000000000002p-1023, + 0x1.0p-1023 + }, + { // Entry 41 + 0x1.00000000000020p-1023, + -0x1.0000000000002p-1023, + 0x1.0000000000002p-1023 + }, + { // Entry 42 + 0x1.p-1023, + -0x1.0p-1023, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 43 + 0x1.p-1023, + -0x1.0p-1023, + 0x1.0p-1023 + }, + { // Entry 44 + 0x1.p-1023, + -0x1.0p-1023, + 0x1.0000000000002p-1023 + }, + { // Entry 45 + 0x1.ffffffffffffc0p-1024, + -0x1.ffffffffffffcp-1024, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 46 + 0x1.ffffffffffffc0p-1024, + -0x1.ffffffffffffcp-1024, + 0x1.0p-1023 + }, + { // Entry 47 + 0x1.ffffffffffffc0p-1024, + -0x1.ffffffffffffcp-1024, + 0x1.0000000000002p-1023 + }, + { // Entry 48 + 0x1.00000000000010p0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 49 + 0x1.00000000000010p0, + -0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 50 + 0x1.00000000000010p0, + -0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 51 + 0x1.p0, + -0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 52 + 0x1.p0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 53 + 0x1.p0, + -0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 54 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 55 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 56 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 57 + 0x1.00000000000010p1023, + -0x1.0000000000001p1023, + 0x1.fffffffffffffp1022 + }, + { // Entry 58 + 0x1.00000000000010p1023, + -0x1.0000000000001p1023, + 0x1.0p1023 + }, + { // Entry 59 + 0x1.00000000000010p1023, + -0x1.0000000000001p1023, + 0x1.0000000000001p1023 + }, + { // Entry 60 + 0x1.p1023, + -0x1.0p1023, + 0x1.fffffffffffffp1022 + }, + { // Entry 61 + 0x1.p1023, + -0x1.0p1023, + 0x1.0p1023 + }, + { // Entry 62 + 0x1.p1023, + -0x1.0p1023, + 0x1.0000000000001p1023 + }, + { // Entry 63 + 0x1.fffffffffffff0p1022, + -0x1.fffffffffffffp1022, + 0x1.fffffffffffffp1022 + }, + { // Entry 64 + 0x1.fffffffffffff0p1022, + -0x1.fffffffffffffp1022, + 0x1.0p1023 + }, + { // Entry 65 + 0x1.fffffffffffff0p1022, + -0x1.fffffffffffffp1022, + 0x1.0000000000001p1023 + }, + { // Entry 66 + -0x1.ffffffffffffc0p-1024, + 0x1.ffffffffffffcp-1024, + -0x1.0000000000002p-1023 + }, + { // Entry 67 + -0x1.ffffffffffffc0p-1024, + 0x1.ffffffffffffcp-1024, + -0x1.0p-1023 + }, + { // Entry 68 + -0x1.ffffffffffffc0p-1024, + 0x1.ffffffffffffcp-1024, + -0x1.ffffffffffffcp-1024 + }, + { // Entry 69 + -0x1.p-1023, + 0x1.0p-1023, + -0x1.0000000000002p-1023 + }, + { // Entry 70 + -0x1.p-1023, + 0x1.0p-1023, + -0x1.0p-1023 + }, + { // Entry 71 + -0x1.p-1023, + 0x1.0p-1023, + -0x1.ffffffffffffcp-1024 + }, + { // Entry 72 + -0x1.00000000000020p-1023, + 0x1.0000000000002p-1023, + -0x1.0000000000002p-1023 + }, + { // Entry 73 + -0x1.00000000000020p-1023, + 0x1.0000000000002p-1023, + -0x1.0p-1023 + }, + { // Entry 74 + -0x1.00000000000020p-1023, + 0x1.0000000000002p-1023, + -0x1.ffffffffffffcp-1024 + }, + { // Entry 75 + -0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 76 + -0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 77 + -0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 78 + -0x1.p0, + 0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 79 + -0x1.p0, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 80 + -0x1.p0, + 0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 81 + -0x1.00000000000010p0, + 0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 82 + -0x1.00000000000010p0, + 0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 83 + -0x1.00000000000010p0, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 84 + -0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + -0x1.0000000000001p1023 + }, + { // Entry 85 + -0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + -0x1.0p1023 + }, + { // Entry 86 + -0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + -0x1.fffffffffffffp1022 + }, + { // Entry 87 + -0x1.p1023, + 0x1.0p1023, + -0x1.0000000000001p1023 + }, + { // Entry 88 + -0x1.p1023, + 0x1.0p1023, + -0x1.0p1023 + }, + { // Entry 89 + -0x1.p1023, + 0x1.0p1023, + -0x1.fffffffffffffp1022 + }, + { // Entry 90 + -0x1.00000000000010p1023, + 0x1.0000000000001p1023, + -0x1.0000000000001p1023 + }, + { // Entry 91 + -0x1.00000000000010p1023, + 0x1.0000000000001p1023, + -0x1.0p1023 + }, + { // Entry 92 + -0x1.00000000000010p1023, + 0x1.0000000000001p1023, + -0x1.fffffffffffffp1022 + }, + { // Entry 93 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 94 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 95 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 96 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 97 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 98 + HUGE_VAL, + HUGE_VAL, + 0.0 + }, + { // Entry 99 + -HUGE_VAL, + HUGE_VAL, + -0.0 + }, + { // Entry 100 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 101 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 102 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 103 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p0 + }, + { // Entry 104 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 105 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 106 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 107 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 108 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 109 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 110 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 111 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 112 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 113 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 114 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 115 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 116 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p0 + }, + { // Entry 117 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 118 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 119 + 0x1.p-1022, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 120 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 121 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 122 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 123 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 124 + 0x1.p-1022, + 0x1.0p-1022, + 0.0 + }, + { // Entry 125 + -0x1.p-1022, + 0x1.0p-1022, + -0.0 + }, + { // Entry 126 + -0x1.p-1022, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 127 + -0x1.p-1022, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 128 + -0x1.p-1022, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 129 + -0x1.p-1022, + 0x1.0p-1022, + -0x1.0p0 + }, + { // Entry 130 + -0x1.p-1022, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 131 + -0x1.p-1022, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 132 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 133 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 134 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 135 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 136 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 137 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 138 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 139 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 140 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 141 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 142 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p0 + }, + { // Entry 143 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 144 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 145 + 0x1.p-1074, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 146 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 147 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 148 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 149 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 150 + 0x1.p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 151 + -0x1.p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 152 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 153 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 154 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 155 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.0p0 + }, + { // Entry 156 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 157 + -0x1.p-1074, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 158 + 0.0, + 0.0, + HUGE_VAL + }, + { // Entry 159 + 0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 160 + 0.0, + 0.0, + 0x1.0p-1022 + }, + { // Entry 161 + 0.0, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 162 + 0.0, + 0.0, + 0x1.0p-1074 + }, + { // Entry 163 + 0.0, + 0.0, + 0.0 + }, + { // Entry 164 + -0.0, + 0.0, + -0.0 + }, + { // Entry 165 + -0.0, + 0.0, + -0x1.0p-1074 + }, + { // Entry 166 + -0.0, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 167 + -0.0, + 0.0, + -0x1.0p-1022 + }, + { // Entry 168 + -0.0, + 0.0, + -0x1.0p0 + }, + { // Entry 169 + -0.0, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 170 + -0.0, + 0.0, + -HUGE_VAL + }, + { // Entry 171 + 0.0, + -0.0, + HUGE_VAL + }, + { // Entry 172 + 0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 173 + 0.0, + -0.0, + 0x1.0p-1022 + }, + { // Entry 174 + 0.0, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 175 + 0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 176 + 0.0, + -0.0, + 0.0 + }, + { // Entry 177 + -0.0, + -0.0, + -0.0 + }, + { // Entry 178 + -0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 179 + -0.0, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 180 + -0.0, + -0.0, + -0x1.0p-1022 + }, + { // Entry 181 + -0.0, + -0.0, + -0x1.0p0 + }, + { // Entry 182 + -0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 183 + -0.0, + -0.0, + -HUGE_VAL + }, + { // Entry 184 + 0x1.p-1074, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 185 + 0x1.p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 186 + 0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 187 + 0x1.p-1074, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 188 + 0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 189 + 0x1.p-1074, + -0x1.0p-1074, + 0.0 + }, + { // Entry 190 + -0x1.p-1074, + -0x1.0p-1074, + -0.0 + }, + { // Entry 191 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 192 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 193 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 194 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p0 + }, + { // Entry 195 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 196 + -0x1.p-1074, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 197 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 198 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 199 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 200 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 201 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 202 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 203 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 204 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 205 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 206 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 207 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p0 + }, + { // Entry 208 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 209 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 210 + 0x1.p-1022, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 211 + 0x1.p-1022, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 212 + 0x1.p-1022, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 213 + 0x1.p-1022, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 214 + 0x1.p-1022, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 215 + 0x1.p-1022, + -0x1.0p-1022, + 0.0 + }, + { // Entry 216 + -0x1.p-1022, + -0x1.0p-1022, + -0.0 + }, + { // Entry 217 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 218 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 219 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 220 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.0p0 + }, + { // Entry 221 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 222 + -0x1.p-1022, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 223 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + HUGE_VAL + }, + { // Entry 224 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp1023 + }, + { // Entry 225 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0x1.0p-1022 + }, + { // Entry 226 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0x1.ffffffffffffep-1023 + }, + { // Entry 227 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 228 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0.0 + }, + { // Entry 229 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 230 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 231 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -0x1.ffffffffffffep-1023 + }, + { // Entry 232 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -0x1.0p-1022 + }, + { // Entry 233 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 234 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -0x1.fffffffffffffp1023 + }, + { // Entry 235 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -HUGE_VAL + }, + { // Entry 236 + 0x1.p0, + -0x1.0p0, + HUGE_VAL + }, + { // Entry 237 + 0x1.p0, + -0x1.0p0, + 0x1.fffffffffffffp1023 + }, + { // Entry 238 + 0x1.p0, + -0x1.0p0, + 0x1.0p-1022 + }, + { // Entry 239 + 0x1.p0, + -0x1.0p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 240 + 0x1.p0, + -0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 241 + 0x1.p0, + -0x1.0p0, + 0.0 + }, + { // Entry 242 + -0x1.p0, + -0x1.0p0, + -0.0 + }, + { // Entry 243 + -0x1.p0, + -0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 244 + -0x1.p0, + -0x1.0p0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 245 + -0x1.p0, + -0x1.0p0, + -0x1.0p-1022 + }, + { // Entry 246 + -0x1.p0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 247 + -0x1.p0, + -0x1.0p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 248 + -0x1.p0, + -0x1.0p0, + -HUGE_VAL + }, + { // Entry 249 + 0x1.00000000000010p0, + -0x1.0000000000001p0, + HUGE_VAL + }, + { // Entry 250 + 0x1.00000000000010p0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp1023 + }, + { // Entry 251 + 0x1.00000000000010p0, + -0x1.0000000000001p0, + 0x1.0p-1022 + }, + { // Entry 252 + 0x1.00000000000010p0, + -0x1.0000000000001p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 253 + 0x1.00000000000010p0, + -0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 254 + 0x1.00000000000010p0, + -0x1.0000000000001p0, + 0.0 + }, + { // Entry 255 + -0x1.00000000000010p0, + -0x1.0000000000001p0, + -0.0 + }, + { // Entry 256 + -0x1.00000000000010p0, + -0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 257 + -0x1.00000000000010p0, + -0x1.0000000000001p0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 258 + -0x1.00000000000010p0, + -0x1.0000000000001p0, + -0x1.0p-1022 + }, + { // Entry 259 + -0x1.00000000000010p0, + -0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 260 + -0x1.00000000000010p0, + -0x1.0000000000001p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 261 + -0x1.00000000000010p0, + -0x1.0000000000001p0, + -HUGE_VAL + }, + { // Entry 262 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 263 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 264 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 265 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 266 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 267 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 268 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 269 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 270 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 271 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 272 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p0 + }, + { // Entry 273 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 274 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 275 + HUGE_VAL, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 276 + HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 277 + HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 278 + HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 279 + HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 280 + HUGE_VAL, + -HUGE_VAL, + 0.0 + }, + { // Entry 281 + -HUGE_VAL, + -HUGE_VAL, + -0.0 + }, + { // Entry 282 + -HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 283 + -HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 284 + -HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 285 + -HUGE_VAL, + -HUGE_VAL, + -0x1.0p0 + }, + { // Entry 286 + -HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 287 + -HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL + } +}; diff --git a/tests/math_data/copysignf_intel_data.h b/tests/math_data/copysignf_intel_data.h new file mode 100644 index 000000000..58a579d1b --- /dev/null +++ b/tests/math_data/copysignf_intel_data.h @@ -0,0 +1,1458 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_copysignf_intel_data[] = { + { // Entry 0 + -0x1.p-10, + -0x1.p-10, + -0x1.p-10 + }, + { // Entry 1 + 0x1.p-10, + -0x1.p-10, + 0x1.p-10 + }, + { // Entry 2 + -0x1.p-10, + 0x1.p-10, + -0x1.p-10 + }, + { // Entry 3 + 0x1.p-10, + 0x1.p-10, + 0x1.p-10 + }, + { // Entry 4 + -0x1.40p3, + -0x1.40p3, + -0x1.40p3 + }, + { // Entry 5 + 0x1.40p3, + -0x1.40p3, + 0x1.40p3 + }, + { // Entry 6 + -0x1.40p3, + 0x1.40p3, + -0x1.40p3 + }, + { // Entry 7 + 0x1.40p3, + 0x1.40p3, + 0x1.40p3 + }, + { // Entry 8 + -0x1.p-148, + -0x1.p-148, + -0x1.p-149 + }, + { // Entry 9 + 0x1.p-148, + -0x1.p-148, + 0.0 + }, + { // Entry 10 + 0x1.p-148, + -0x1.p-148, + 0x1.p-149 + }, + { // Entry 11 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 12 + 0x1.p-149, + -0x1.p-149, + 0.0 + }, + { // Entry 13 + 0x1.p-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 14 + -0.0, + 0.0, + -0x1.p-149 + }, + { // Entry 15 + 0.0, + 0.0, + 0.0 + }, + { // Entry 16 + 0.0, + 0.0, + 0x1.p-149 + }, + { // Entry 17 + -0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 18 + 0x1.p-149, + 0x1.p-149, + 0.0 + }, + { // Entry 19 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 20 + -0x1.p-148, + 0x1.p-148, + -0x1.p-149 + }, + { // Entry 21 + 0x1.p-148, + 0x1.p-148, + 0.0 + }, + { // Entry 22 + 0x1.p-148, + 0x1.p-148, + 0x1.p-149 + }, + { // Entry 23 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 24 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 25 + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 26 + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 27 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 28 + -0.0, + 0.0, + -0x1.fffffep127 + }, + { // Entry 29 + -0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 30 + 0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 31 + 0.0, + 0.0, + 0x1.fffffep127 + }, + { // Entry 32 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 33 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 34 + 0x1.fffffep127, + -0x1.fffffep127, + 0.0 + }, + { // Entry 35 + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 36 + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 37 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0 + }, + { // Entry 38 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 39 + 0x1.000004p-127, + -0x1.000004p-127, + 0x1.fffff8p-128 + }, + { // Entry 40 + 0x1.000004p-127, + -0x1.000004p-127, + 0x1.p-127 + }, + { // Entry 41 + 0x1.000004p-127, + -0x1.000004p-127, + 0x1.000004p-127 + }, + { // Entry 42 + 0x1.p-127, + -0x1.p-127, + 0x1.fffff8p-128 + }, + { // Entry 43 + 0x1.p-127, + -0x1.p-127, + 0x1.p-127 + }, + { // Entry 44 + 0x1.p-127, + -0x1.p-127, + 0x1.000004p-127 + }, + { // Entry 45 + 0x1.fffff8p-128, + -0x1.fffff8p-128, + 0x1.fffff8p-128 + }, + { // Entry 46 + 0x1.fffff8p-128, + -0x1.fffff8p-128, + 0x1.p-127 + }, + { // Entry 47 + 0x1.fffff8p-128, + -0x1.fffff8p-128, + 0x1.000004p-127 + }, + { // Entry 48 + 0x1.000002p0, + -0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 49 + 0x1.000002p0, + -0x1.000002p0, + 0x1.p0 + }, + { // Entry 50 + 0x1.000002p0, + -0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 51 + 0x1.p0, + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 52 + 0x1.p0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 53 + 0x1.p0, + -0x1.p0, + 0x1.000002p0 + }, + { // Entry 54 + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 55 + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 56 + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 57 + 0x1.000002p127, + -0x1.000002p127, + 0x1.fffffep126 + }, + { // Entry 58 + 0x1.000002p127, + -0x1.000002p127, + 0x1.p127 + }, + { // Entry 59 + 0x1.000002p127, + -0x1.000002p127, + 0x1.000002p127 + }, + { // Entry 60 + 0x1.p127, + -0x1.p127, + 0x1.fffffep126 + }, + { // Entry 61 + 0x1.p127, + -0x1.p127, + 0x1.p127 + }, + { // Entry 62 + 0x1.p127, + -0x1.p127, + 0x1.000002p127 + }, + { // Entry 63 + 0x1.fffffep126, + -0x1.fffffep126, + 0x1.fffffep126 + }, + { // Entry 64 + 0x1.fffffep126, + -0x1.fffffep126, + 0x1.p127 + }, + { // Entry 65 + 0x1.fffffep126, + -0x1.fffffep126, + 0x1.000002p127 + }, + { // Entry 66 + -0x1.fffff8p-128, + 0x1.fffff8p-128, + -0x1.000004p-127 + }, + { // Entry 67 + -0x1.fffff8p-128, + 0x1.fffff8p-128, + -0x1.p-127 + }, + { // Entry 68 + -0x1.fffff8p-128, + 0x1.fffff8p-128, + -0x1.fffff8p-128 + }, + { // Entry 69 + -0x1.p-127, + 0x1.p-127, + -0x1.000004p-127 + }, + { // Entry 70 + -0x1.p-127, + 0x1.p-127, + -0x1.p-127 + }, + { // Entry 71 + -0x1.p-127, + 0x1.p-127, + -0x1.fffff8p-128 + }, + { // Entry 72 + -0x1.000004p-127, + 0x1.000004p-127, + -0x1.000004p-127 + }, + { // Entry 73 + -0x1.000004p-127, + 0x1.000004p-127, + -0x1.p-127 + }, + { // Entry 74 + -0x1.000004p-127, + 0x1.000004p-127, + -0x1.fffff8p-128 + }, + { // Entry 75 + -0x1.fffffep-1, + 0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 76 + -0x1.fffffep-1, + 0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 77 + -0x1.fffffep-1, + 0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 78 + -0x1.p0, + 0x1.p0, + -0x1.000002p0 + }, + { // Entry 79 + -0x1.p0, + 0x1.p0, + -0x1.p0 + }, + { // Entry 80 + -0x1.p0, + 0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 81 + -0x1.000002p0, + 0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 82 + -0x1.000002p0, + 0x1.000002p0, + -0x1.p0 + }, + { // Entry 83 + -0x1.000002p0, + 0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 84 + -0x1.fffffep126, + 0x1.fffffep126, + -0x1.000002p127 + }, + { // Entry 85 + -0x1.fffffep126, + 0x1.fffffep126, + -0x1.p127 + }, + { // Entry 86 + -0x1.fffffep126, + 0x1.fffffep126, + -0x1.fffffep126 + }, + { // Entry 87 + -0x1.p127, + 0x1.p127, + -0x1.000002p127 + }, + { // Entry 88 + -0x1.p127, + 0x1.p127, + -0x1.p127 + }, + { // Entry 89 + -0x1.p127, + 0x1.p127, + -0x1.fffffep126 + }, + { // Entry 90 + -0x1.000002p127, + 0x1.000002p127, + -0x1.000002p127 + }, + { // Entry 91 + -0x1.000002p127, + 0x1.000002p127, + -0x1.p127 + }, + { // Entry 92 + -0x1.000002p127, + 0x1.000002p127, + -0x1.fffffep126 + }, + { // Entry 93 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 94 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 95 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 96 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 97 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 98 + HUGE_VALF, + HUGE_VALF, + 0.0f + }, + { // Entry 99 + -HUGE_VALF, + HUGE_VALF, + -0.0f + }, + { // Entry 100 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 101 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 102 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 103 + -HUGE_VALF, + HUGE_VALF, + -0x1.p0 + }, + { // Entry 104 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 105 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 106 + 0x1.fffffep127, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 107 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 108 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 109 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 110 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 111 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 112 + -0x1.fffffep127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 113 + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 114 + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 115 + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 116 + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.p0 + }, + { // Entry 117 + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 118 + -0x1.fffffep127, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 119 + 0x1.p-126, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 120 + 0x1.p-126, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 121 + 0x1.p-126, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 122 + 0x1.p-126, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 123 + 0x1.p-126, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 124 + 0x1.p-126, + 0x1.p-126, + 0.0f + }, + { // Entry 125 + -0x1.p-126, + 0x1.p-126, + -0.0f + }, + { // Entry 126 + -0x1.p-126, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 127 + -0x1.p-126, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 128 + -0x1.p-126, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 129 + -0x1.p-126, + 0x1.p-126, + -0x1.p0 + }, + { // Entry 130 + -0x1.p-126, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 131 + -0x1.p-126, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 132 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 133 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 134 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 135 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 136 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 137 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 138 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 139 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 140 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 141 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 142 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p0 + }, + { // Entry 143 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 144 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 145 + 0x1.p-149, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 146 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 147 + 0x1.p-149, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 148 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 149 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 150 + 0x1.p-149, + 0x1.p-149, + 0.0f + }, + { // Entry 151 + -0x1.p-149, + 0x1.p-149, + -0.0f + }, + { // Entry 152 + -0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 153 + -0x1.p-149, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 154 + -0x1.p-149, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 155 + -0x1.p-149, + 0x1.p-149, + -0x1.p0 + }, + { // Entry 156 + -0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 157 + -0x1.p-149, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 158 + 0.0, + 0.0f, + HUGE_VALF + }, + { // Entry 159 + 0.0, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 160 + 0.0, + 0.0f, + 0x1.p-126 + }, + { // Entry 161 + 0.0, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 162 + 0.0, + 0.0f, + 0x1.p-149 + }, + { // Entry 163 + 0.0, + 0.0f, + 0.0f + }, + { // Entry 164 + -0.0, + 0.0f, + -0.0f + }, + { // Entry 165 + -0.0, + 0.0f, + -0x1.p-149 + }, + { // Entry 166 + -0.0, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 167 + -0.0, + 0.0f, + -0x1.p-126 + }, + { // Entry 168 + -0.0, + 0.0f, + -0x1.p0 + }, + { // Entry 169 + -0.0, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 170 + -0.0, + 0.0f, + -HUGE_VALF + }, + { // Entry 171 + 0.0, + -0.0f, + HUGE_VALF + }, + { // Entry 172 + 0.0, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 173 + 0.0, + -0.0f, + 0x1.p-126 + }, + { // Entry 174 + 0.0, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 175 + 0.0, + -0.0f, + 0x1.p-149 + }, + { // Entry 176 + 0.0, + -0.0f, + 0.0f + }, + { // Entry 177 + -0.0, + -0.0f, + -0.0f + }, + { // Entry 178 + -0.0, + -0.0f, + -0x1.p-149 + }, + { // Entry 179 + -0.0, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 180 + -0.0, + -0.0f, + -0x1.p-126 + }, + { // Entry 181 + -0.0, + -0.0f, + -0x1.p0 + }, + { // Entry 182 + -0.0, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 183 + -0.0, + -0.0f, + -HUGE_VALF + }, + { // Entry 184 + 0x1.p-149, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 185 + 0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 186 + 0x1.p-149, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 187 + 0x1.p-149, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 188 + 0x1.p-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 189 + 0x1.p-149, + -0x1.p-149, + 0.0f + }, + { // Entry 190 + -0x1.p-149, + -0x1.p-149, + -0.0f + }, + { // Entry 191 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 192 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 193 + -0x1.p-149, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 194 + -0x1.p-149, + -0x1.p-149, + -0x1.p0 + }, + { // Entry 195 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 196 + -0x1.p-149, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 197 + 0x1.fffffcp-127, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 198 + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 199 + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 200 + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 201 + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 202 + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 203 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 204 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 205 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 206 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 207 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p0 + }, + { // Entry 208 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 209 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 210 + 0x1.p-126, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 211 + 0x1.p-126, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 212 + 0x1.p-126, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 213 + 0x1.p-126, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 214 + 0x1.p-126, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 215 + 0x1.p-126, + -0x1.p-126, + 0.0f + }, + { // Entry 216 + -0x1.p-126, + -0x1.p-126, + -0.0f + }, + { // Entry 217 + -0x1.p-126, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 218 + -0x1.p-126, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 219 + -0x1.p-126, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 220 + -0x1.p-126, + -0x1.p-126, + -0x1.p0 + }, + { // Entry 221 + -0x1.p-126, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 222 + -0x1.p-126, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 223 + 0x1.fffffep-1, + -0x1.fffffep-1, + HUGE_VALF + }, + { // Entry 224 + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.fffffep127 + }, + { // Entry 225 + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.p-126 + }, + { // Entry 226 + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.fffffcp-127 + }, + { // Entry 227 + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 228 + 0x1.fffffep-1, + -0x1.fffffep-1, + 0.0f + }, + { // Entry 229 + -0x1.fffffep-1, + -0x1.fffffep-1, + -0.0f + }, + { // Entry 230 + -0x1.fffffep-1, + -0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 231 + -0x1.fffffep-1, + -0x1.fffffep-1, + -0x1.fffffcp-127 + }, + { // Entry 232 + -0x1.fffffep-1, + -0x1.fffffep-1, + -0x1.p-126 + }, + { // Entry 233 + -0x1.fffffep-1, + -0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 234 + -0x1.fffffep-1, + -0x1.fffffep-1, + -0x1.fffffep127 + }, + { // Entry 235 + -0x1.fffffep-1, + -0x1.fffffep-1, + -HUGE_VALF + }, + { // Entry 236 + 0x1.p0, + -0x1.p0, + HUGE_VALF + }, + { // Entry 237 + 0x1.p0, + -0x1.p0, + 0x1.fffffep127 + }, + { // Entry 238 + 0x1.p0, + -0x1.p0, + 0x1.p-126 + }, + { // Entry 239 + 0x1.p0, + -0x1.p0, + 0x1.fffffcp-127 + }, + { // Entry 240 + 0x1.p0, + -0x1.p0, + 0x1.p-149 + }, + { // Entry 241 + 0x1.p0, + -0x1.p0, + 0.0f + }, + { // Entry 242 + -0x1.p0, + -0x1.p0, + -0.0f + }, + { // Entry 243 + -0x1.p0, + -0x1.p0, + -0x1.p-149 + }, + { // Entry 244 + -0x1.p0, + -0x1.p0, + -0x1.fffffcp-127 + }, + { // Entry 245 + -0x1.p0, + -0x1.p0, + -0x1.p-126 + }, + { // Entry 246 + -0x1.p0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 247 + -0x1.p0, + -0x1.p0, + -0x1.fffffep127 + }, + { // Entry 248 + -0x1.p0, + -0x1.p0, + -HUGE_VALF + }, + { // Entry 249 + 0x1.000002p0, + -0x1.000002p0, + HUGE_VALF + }, + { // Entry 250 + 0x1.000002p0, + -0x1.000002p0, + 0x1.fffffep127 + }, + { // Entry 251 + 0x1.000002p0, + -0x1.000002p0, + 0x1.p-126 + }, + { // Entry 252 + 0x1.000002p0, + -0x1.000002p0, + 0x1.fffffcp-127 + }, + { // Entry 253 + 0x1.000002p0, + -0x1.000002p0, + 0x1.p-149 + }, + { // Entry 254 + 0x1.000002p0, + -0x1.000002p0, + 0.0f + }, + { // Entry 255 + -0x1.000002p0, + -0x1.000002p0, + -0.0f + }, + { // Entry 256 + -0x1.000002p0, + -0x1.000002p0, + -0x1.p-149 + }, + { // Entry 257 + -0x1.000002p0, + -0x1.000002p0, + -0x1.fffffcp-127 + }, + { // Entry 258 + -0x1.000002p0, + -0x1.000002p0, + -0x1.p-126 + }, + { // Entry 259 + -0x1.000002p0, + -0x1.000002p0, + -0x1.p0 + }, + { // Entry 260 + -0x1.000002p0, + -0x1.000002p0, + -0x1.fffffep127 + }, + { // Entry 261 + -0x1.000002p0, + -0x1.000002p0, + -HUGE_VALF + }, + { // Entry 262 + 0x1.fffffep127, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 263 + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 264 + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 265 + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 266 + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 267 + 0x1.fffffep127, + -0x1.fffffep127, + 0.0f + }, + { // Entry 268 + -0x1.fffffep127, + -0x1.fffffep127, + -0.0f + }, + { // Entry 269 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 270 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 271 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 272 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.p0 + }, + { // Entry 273 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 274 + -0x1.fffffep127, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 275 + HUGE_VALF, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 276 + HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 277 + HUGE_VALF, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 278 + HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 279 + HUGE_VALF, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 280 + HUGE_VALF, + -HUGE_VALF, + 0.0f + }, + { // Entry 281 + -HUGE_VALF, + -HUGE_VALF, + -0.0f + }, + { // Entry 282 + -HUGE_VALF, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 283 + -HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 284 + -HUGE_VALF, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 285 + -HUGE_VALF, + -HUGE_VALF, + -0x1.p0 + }, + { // Entry 286 + -HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 287 + -HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF + } +}; diff --git a/tests/math_cos_intel_data.h b/tests/math_data/cos_intel_data.h similarity index 100% rename from tests/math_cos_intel_data.h rename to tests/math_data/cos_intel_data.h diff --git a/tests/math_cosf_intel_data.h b/tests/math_data/cosf_intel_data.h similarity index 100% rename from tests/math_cosf_intel_data.h rename to tests/math_data/cosf_intel_data.h diff --git a/tests/math_data/cosh_intel_data.h b/tests/math_data/cosh_intel_data.h new file mode 100644 index 000000000..2a8fe82a3 --- /dev/null +++ b/tests/math_data/cosh_intel_data.h @@ -0,0 +1,2934 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_cosh_intel_data[] = { + { // Entry 0 + 0x1.f9225f7e3193c80156e29378c34b23d3p831, + -0x1.20b0659d8a7e1p9 + }, + { // Entry 1 + 0x1.f9225f7e3193c80156e29378c34b23d3p831, + 0x1.20b0659d8a7e1p9 + }, + { // Entry 2 + 0x1.e128d3a99c4b28216511a7ad98d106f0p911, + -0x1.3c640p9 + }, + { // Entry 3 + 0x1.e128d3a99c4b28216511a7ad98d106f0p911, + 0x1.3c640p9 + }, + { // Entry 4 + 0x1.f5f62d444f24c3bee8aeb75a413b8101p941, + -0x1.46cf1a4e8eff8p9 + }, + { // Entry 5 + 0x1.f5f62d444f24c3bee8aeb75a413b8101p941, + 0x1.46cf1a4e8eff8p9 + }, + { // Entry 6 + 0x1.fd0d27f4cfe98801d15fa2d48e5a54c0p952, + -0x1.4aa0d96719fc6p9 + }, + { // Entry 7 + 0x1.fd0d27f4cfe98801d15fa2d48e5a54c0p952, + 0x1.4aa0d96719fc6p9 + }, + { // Entry 8 + 0x1.eb34f0a92ee7280128c114f07d355776p958, + -0x1.4cb09e65eb930p9 + }, + { // Entry 9 + 0x1.eb34f0a92ee7280128c114f07d355776p958, + 0x1.4cb09e65eb930p9 + }, + { // Entry 10 + 0x1.d2108e9aa1b124168960a67f1cb28b07p960, + -0x1.4d5b56d5b55acp9 + }, + { // Entry 11 + 0x1.d2108e9aa1b124168960a67f1cb28b07p960, + 0x1.4d5b56d5b55acp9 + }, + { // Entry 12 + 0x1.f68d7cf30e0123c2164c1368d213f9b5p970, + -0x1.50dc3739dde8ep9 + }, + { // Entry 13 + 0x1.f68d7cf30e0123c2164c1368d213f9b5p970, + 0x1.50dc3739dde8ep9 + }, + { // Entry 14 + 0x1.fd799430443f0800ef2fcf2cd9da9697p975, + -0x1.529994bb15795p9 + }, + { // Entry 15 + 0x1.fd799430443f0800ef2fcf2cd9da9697p975, + 0x1.529994bb15795p9 + }, + { // Entry 16 + 0x1.e7b36eb1f1e698017d905c91e25df616p1005, + -0x1.5cf9ace27d120p9 + }, + { // Entry 17 + 0x1.e7b36eb1f1e698017d905c91e25df616p1005, + 0x1.5cf9ace27d120p9 + }, + { // Entry 18 + 0x1.f3ae6e6ad6cf33f952b8d7d26abcd946p1013, + -0x1.5fc2907bbfb53p9 + }, + { // Entry 19 + 0x1.f3ae6e6ad6cf33f952b8d7d26abcd946p1013, + 0x1.5fc2907bbfb53p9 + }, + { // Entry 20 + 0x1.fffffffffeb2a1b0e263ac68076ed4e0p1022, + -0x1.62e42fefa39eap9 + }, + { // Entry 21 + 0x1.fffffffffeb2a1b0e263ac68076ed4e0p1022, + 0x1.62e42fefa39eap9 + }, + { // Entry 22 + 0x1.000004a24e558c02a9470bd8d4f869a3p0, + -0x1.85acfb6cf0992p-11 + }, + { // Entry 23 + 0x1.000004a24e558c02a9470bd8d4f869a3p0, + 0x1.85acfb6cf0992p-11 + }, + { // Entry 24 + 0x1.p0, + -0x1.9p-1069 + }, + { // Entry 25 + 0x1.p0, + 0x1.9p-1069 + }, + { // Entry 26 + 0x1.14c128b1a7c2b69f584c42e1f5d24e43p0, + -0x1.999999999999ap-2 + }, + { // Entry 27 + 0x1.14c128b1a7c2b69f584c42e1f5d24e43p0, + 0x1.999999999999ap-2 + }, + { // Entry 28 + 0x1.580485993cf5380007b6f3dfb3426795p1, + -0x1.a52f2fff26658p0 + }, + { // Entry 29 + 0x1.580485993cf5380007b6f3dfb3426795p1, + 0x1.a52f2fff26658p0 + }, + { // Entry 30 + 0x1.786cf5655ff2cf9f3e2f91013f3f8c31p9, + -0x1.d449f6b92fb70p2 + }, + { // Entry 31 + 0x1.786cf5655ff2cf9f3e2f91013f3f8c31p9, + 0x1.d449f6b92fb70p2 + }, + { // Entry 32 + 0x1.072f2f89ddc2f7a6dd2420f4fde2c244p0, + -0x1.e411ac17c616dp-3 + }, + { // Entry 33 + 0x1.072f2f89ddc2f7a6dd2420f4fde2c244p0, + 0x1.e411ac17c616dp-3 + }, + { // Entry 34 + 0x1.0000000000200000000000aaaaaaaaaap0, + 0x1.0p-21 + }, + { // Entry 35 + 0x1.0000000000200000000000aaaaaaaaaap0, + -0x1.0p-21 + }, + { // Entry 36 + 0x1.000000000000080000000000000aaaaap0, + 0x1.0p-26 + }, + { // Entry 37 + 0x1.000000000000080000000000000aaaaap0, + -0x1.0p-26 + }, + { // Entry 38 + 0x1.95e54c5dd42177f53f4d5219df11ca3bp183, + 0x1.0p7 + }, + { // Entry 39 + 0x1.95e54c5dd42177f53f4d5219df11ca3bp183, + -0x1.0p7 + }, + { // Entry 40 + 0x1.0000000000000000000020p0, + 0x1.0000000000001p-41 + }, + { // Entry 41 + 0x1.0000000000000000000020p0, + -0x1.0000000000001p-41 + }, + { // Entry 42 + 0x1.p0, + 0x1.0000000000001p-352 + }, + { // Entry 43 + 0x1.p0, + -0x1.0000000000001p-352 + }, + { // Entry 44 + 0x1.749eaa93f4e98ffecd44eae03d0a1d5bp10, + 0x1.0000000000003p3 + }, + { // Entry 45 + 0x1.749eaa93f4e98ffecd44eae03d0a1d5bp10, + -0x1.0000000000003p3 + }, + { // Entry 46 + 0x1.41c7a8814c78683cdbc165597ca61d23p368, + 0x1.0000000000007p8 + }, + { // Entry 47 + 0x1.41c7a8814c78683cdbc165597ca61d23p368, + -0x1.0000000000007p8 + }, + { // Entry 48 + 0x1.000000000000080000000000110aaaaap0, + 0x1.0000000000011p-26 + }, + { // Entry 49 + 0x1.000000000000080000000000110aaaaap0, + -0x1.0000000000011p-26 + }, + { // Entry 50 + 0x1.8b07551d9f67f7fdc0ff67bf92a962fdp0, + 0x1.0000000000102p0 + }, + { // Entry 51 + 0x1.8b07551d9f67f7fdc0ff67bf92a962fdp0, + -0x1.0000000000102p0 + }, + { // Entry 52 + 0x1.1f43fcc5952c37ff0506eaa1b0c216eep45, + 0x1.0000000006345p5 + }, + { // Entry 53 + 0x1.1f43fcc5952c37ff0506eaa1b0c216eep45, + -0x1.0000000006345p5 + }, + { // Entry 54 + 0x1.94dbdfbb66bc651ee76572119d9c1c4cp737, + 0x1.0000202p9 + }, + { // Entry 55 + 0x1.94dbdfbb66bc651ee76572119d9c1c4cp737, + -0x1.0000202p9 + }, + { // Entry 56 + 0x1.203fc65a034d07ffda891f0ce56a69b6p45, + 0x1.00070p5 + }, + { // Entry 57 + 0x1.203fc65a034d07ffda891f0ce56a69b6p45, + -0x1.00070p5 + }, + { // Entry 58 + 0x1.000000000000080100080000000aad55p0, + 0x1.001p-26 + }, + { // Entry 59 + 0x1.000000000000080100080000000aad55p0, + -0x1.001p-26 + }, + { // Entry 60 + 0x1.75e54432c8551fabeec3248201e6c2ccp10, + 0x1.001c0p3 + }, + { // Entry 61 + 0x1.75e54432c8551fabeec3248201e6c2ccp10, + -0x1.001c0p3 + }, + { // Entry 62 + 0x1.e708d6f7a319258034ee3b204d26ca92p1, + 0x1.018p1 + }, + { // Entry 63 + 0x1.e708d6f7a319258034ee3b204d26ca92p1, + -0x1.018p1 + }, + { // Entry 64 + 0x1.0000216287cecc0d0dc2c5304f513db1p0, + 0x1.057b17480eb6bp-9 + }, + { // Entry 65 + 0x1.0000216287cecc0d0dc2c5304f513db1p0, + -0x1.057b17480eb6bp-9 + }, + { // Entry 66 + 0x1.000008637bdd480001e95efd80447405p0, + 0x1.0624dd41d1d06p-10 + }, + { // Entry 67 + 0x1.000008637bdd480001e95efd80447405p0, + -0x1.0624dd41d1d06p-10 + }, + { // Entry 68 + 0x1.fe87c460adc0882fbe85314df418d2b4p1, + 0x1.07bd69f72017dp1 + }, + { // Entry 69 + 0x1.fe87c460adc0882fbe85314df418d2b4p1, + -0x1.07bd69f72017dp1 + }, + { // Entry 70 + 0x1.0000000000220800000000c10560p0, + 0x1.080p-21 + }, + { // Entry 71 + 0x1.0000000000220800000000c10560p0, + -0x1.080p-21 + }, + { // Entry 72 + 0x1.f39a59f250416803923a1c1e1528d74dp10, + 0x1.0962589625894p3 + }, + { // Entry 73 + 0x1.f39a59f250416803923a1c1e1528d74dp10, + -0x1.0962589625894p3 + }, + { // Entry 74 + 0x1.09c4fe008ebbf7feff9c55742944c979p47, + 0x1.0a77d78f63c77p5 + }, + { // Entry 75 + 0x1.09c4fe008ebbf7feff9c55742944c979p47, + -0x1.0a77d78f63c77p5 + }, + { // Entry 76 + 0x1.250e830d17c53ffff0f0a7b37c3274aep0, + 0x1.1044110441104p-1 + }, + { // Entry 77 + 0x1.250e830d17c53ffff0f0a7b37c3274aep0, + -0x1.1044110441104p-1 + }, + { // Entry 78 + 0x1.0000024ff524ec0206bcebcbcb8fd2d8p0, + 0x1.1343b94c10b91p-11 + }, + { // Entry 79 + 0x1.0000024ff524ec0206bcebcbcb8fd2d8p0, + -0x1.1343b94c10b91p-11 + }, + { // Entry 80 + 0x1.a4e4693413b9970755c15633af25f96bp399, + 0x1.15c18de877563p8 + }, + { // Entry 81 + 0x1.a4e4693413b9970755c15633af25f96bp399, + -0x1.15c18de877563p8 + }, + { // Entry 82 + 0x1.a7b0a63b771487fe7ea3e4c4c6a5986cp0, + 0x1.170p0 + }, + { // Entry 83 + 0x1.a7b0a63b771487fe7ea3e4c4c6a5986cp0, + -0x1.170p0 + }, + { // Entry 84 + 0x1.2040f2a1ab52f6519acd0a68e44e2672p2, + 0x1.17cp1 + }, + { // Entry 85 + 0x1.2040f2a1ab52f6519acd0a68e44e2672p2, + -0x1.17cp1 + }, + { // Entry 86 + 0x1.ffffffffffff691afdbf851f5ebecf8fp24, + 0x1.205966f2b4f12p4 + }, + { // Entry 87 + 0x1.ffffffffffff691afdbf851f5ebecf8fp24, + -0x1.205966f2b4f12p4 + }, + { // Entry 88 + 0x1.79842c1bcf0097ff7fb2dd182713e67ap207, + 0x1.2120481204831p7 + }, + { // Entry 89 + 0x1.79842c1bcf0097ff7fb2dd182713e67ap207, + -0x1.2120481204831p7 + }, + { // Entry 90 + 0x1.29fbb84ba8876b368d8a9db5c1e1454dp0, + 0x1.215c31dfb06bep-1 + }, + { // Entry 91 + 0x1.29fbb84ba8876b368d8a9db5c1e1454dp0, + -0x1.215c31dfb06bep-1 + }, + { // Entry 92 + 0x1.eaa521edf1bc28014602191ce618c05fp845, + 0x1.2586ca9cf411bp9 + }, + { // Entry 93 + 0x1.eaa521edf1bc28014602191ce618c05fp845, + -0x1.2586ca9cf411bp9 + }, + { // Entry 94 + 0x1.6a09e667f3b873e3fe3a64632e382c20p25, + 0x1.25e4f7b2737f7p4 + }, + { // Entry 95 + 0x1.6a09e667f3b873e3fe3a64632e382c20p25, + -0x1.25e4f7b2737f7p4 + }, + { // Entry 96 + 0x1.57261d902201780090571fb5bf70f618p12, + 0x1.29b98d2ca77bfp3 + }, + { // Entry 97 + 0x1.57261d902201780090571fb5bf70f618p12, + -0x1.29b98d2ca77bfp3 + }, + { // Entry 98 + 0x1.bfa86b3a08ba080003331b84fa809b78p5, + 0x1.2dee0f9476ef0p2 + }, + { // Entry 99 + 0x1.bfa86b3a08ba080003331b84fa809b78p5, + -0x1.2dee0f9476ef0p2 + }, + { // Entry 100 + 0x1.ca2d30aee8c837f93c016463c234beb0p0, + 0x1.2fap0 + }, + { // Entry 101 + 0x1.ca2d30aee8c837f93c016463c234beb0p0, + -0x1.2fap0 + }, + { // Entry 102 + 0x1.dc851a55686d48012add3c02a54cc4d9p875, + 0x1.2fe8bcd183299p9 + }, + { // Entry 103 + 0x1.dc851a55686d48012add3c02a54cc4d9p875, + -0x1.2fe8bcd183299p9 + }, + { // Entry 104 + 0x1.ff12f7296b0408017eaaf48fbf280399p877, + 0x1.30a324d6033b5p9 + }, + { // Entry 105 + 0x1.ff12f7296b0408017eaaf48fbf280399p877, + -0x1.30a324d6033b5p9 + }, + { // Entry 106 + 0x1.0000b839f863b3e4bcae71b55072ca80p0, + 0x1.331f2adbaf98dp-8 + }, + { // Entry 107 + 0x1.0000b839f863b3e4bcae71b55072ca80p0, + -0x1.331f2adbaf98dp-8 + }, + { // Entry 108 + 0x1.f3a98884eba4bc32647b7ac3c5404f85p26, + 0x1.3623c0c9e9d5ap4 + }, + { // Entry 109 + 0x1.f3a98884eba4bc32647b7ac3c5404f85p26, + -0x1.3623c0c9e9d5ap4 + }, + { // Entry 110 + 0x1.75a07cfb107ca6ba9dba1e2c2cedd659p453, + 0x1.3b11206005429p8 + }, + { // Entry 111 + 0x1.75a07cfb107ca6ba9dba1e2c2cedd659p453, + -0x1.3b11206005429p8 + }, + { // Entry 112 + 0x1.f1ef9c8a4fdae801b19f8e42eff2c4a8p929, + 0x1.42a565e456e04p9 + }, + { // Entry 113 + 0x1.f1ef9c8a4fdae801b19f8e42eff2c4a8p929, + -0x1.42a565e456e04p9 + }, + { // Entry 114 + 0x1.f4ec44194b642801a4afd4c50633e8aap937, + 0x1.456bf23e02428p9 + }, + { // Entry 115 + 0x1.f4ec44194b642801a4afd4c50633e8aap937, + -0x1.456bf23e02428p9 + }, + { // Entry 116 + 0x1.ea91d9533b394801bf3d3ec8f88de568p938, + 0x1.45c1feef8086cp9 + }, + { // Entry 117 + 0x1.ea91d9533b394801bf3d3ec8f88de568p938, + -0x1.45c1feef8086cp9 + }, + { // Entry 118 + 0x1.4dbe273792bde7fc45ff4f687bf81f94p6, + 0x1.478p2 + }, + { // Entry 119 + 0x1.4dbe273792bde7fc45ff4f687bf81f94p6, + -0x1.478p2 + }, + { // Entry 120 + 0x1.a1732beffb81e80f059be59df088e0dcp2, + 0x1.480p1 + }, + { // Entry 121 + 0x1.a1732beffb81e80f059be59df088e0dcp2, + -0x1.480p1 + }, + { // Entry 122 + 0x1.f292b709c70c9039aec2c978d1d7e73ep0, + 0x1.494p0 + }, + { // Entry 123 + 0x1.f292b709c70c9039aec2c978d1d7e73ep0, + -0x1.494p0 + }, + { // Entry 124 + 0x1.a6c83c0fd645320793a014725c3d6e2dp2, + 0x1.49a4d26934980p1 + }, + { // Entry 125 + 0x1.a6c83c0fd645320793a014725c3d6e2dp2, + -0x1.49a4d26934980p1 + }, + { // Entry 126 + 0x1.14ff8ce7eedcf7ff00c85c22990fd0fep951, + 0x1.49fa3bc9fa3bcp9 + }, + { // Entry 127 + 0x1.14ff8ce7eedcf7ff00c85c22990fd0fep951, + -0x1.49fa3bc9fa3bcp9 + }, + { // Entry 128 + 0x1.f6c6651de70d704c55837250811c86ddp0, + 0x1.4bcp0 + }, + { // Entry 129 + 0x1.f6c6651de70d704c55837250811c86ddp0, + -0x1.4bcp0 + }, + { // Entry 130 + 0x1.c18c56303fe66fff9d9b8c47655f12c0p2, + 0x1.51965d2b59826p1 + }, + { // Entry 131 + 0x1.c18c56303fe66fff9d9b8c47655f12c0p2, + -0x1.51965d2b59826p1 + }, + { // Entry 132 + 0x1.eeac3d912b1ce80100df042cfb33c06ep59, + 0x1.51fafb7826f27p5 + }, + { // Entry 133 + 0x1.eeac3d912b1ce80100df042cfb33c06ep59, + -0x1.51fafb7826f27p5 + }, + { // Entry 134 + 0x1.9548e9688fb2e800c466e7d893328f68p991, + 0x1.5807dc787a5d5p9 + }, + { // Entry 135 + 0x1.9548e9688fb2e800c466e7d893328f68p991, + -0x1.5807dc787a5d5p9 + }, + { // Entry 136 + 0x1.000003a93be72bffaeb829ad23f9901bp0, + 0x1.5a5c6af3cbf35p-11 + }, + { // Entry 137 + 0x1.000003a93be72bffaeb829ad23f9901bp0, + -0x1.5a5c6af3cbf35p-11 + }, + { // Entry 138 + 0x1.8d35b12c48404800034bee73c998316fp14, + 0x1.5ac4908a754c1p3 + }, + { // Entry 139 + 0x1.8d35b12c48404800034bee73c998316fp14, + -0x1.5ac4908a754c1p3 + }, + { // Entry 140 + 0x1.f2a3c29fc6d723a63e349bbcd7894a8ap1007, + 0x1.5dadf5d1e452cp9 + }, + { // Entry 141 + 0x1.f2a3c29fc6d723a63e349bbcd7894a8ap1007, + -0x1.5dadf5d1e452cp9 + }, + { // Entry 142 + 0x1.edcb14879613e80176087c1a76dec97cp1008, + 0x1.5e056ed40e56ep9 + }, + { // Entry 143 + 0x1.edcb14879613e80176087c1a76dec97cp1008, + -0x1.5e056ed40e56ep9 + }, + { // Entry 144 + 0x1.96faa872a06aa3003f5158de9c570302p1023, + 0x1.631f86ac0611bp9 + }, + { // Entry 145 + 0x1.96faa872a06aa3003f5158de9c570302p1023, + -0x1.631f86ac0611bp9 + }, + { // Entry 146 + 0x1.bf668fc6f4f9d31f753c408261bb02b4p1023, + 0x1.632ba58eae071p9 + }, + { // Entry 147 + 0x1.bf668fc6f4f9d31f753c408261bb02b4p1023, + -0x1.632ba58eae071p9 + }, + { // Entry 148 + 0x1.ffffffffbcd3ae595303e74abb3fd75dp1023, + 0x1.633ce8fb9f771p9 + }, + { // Entry 149 + 0x1.ffffffffbcd3ae595303e74abb3fd75dp1023, + -0x1.633ce8fb9f771p9 + }, + { // Entry 150 + 0x1.fffffffff093ae594ed7508a02429436p1023, + 0x1.633ce8fb9f840p9 + }, + { // Entry 151 + 0x1.fffffffff093ae594ed7508a02429436p1023, + -0x1.633ce8fb9f840p9 + }, + { // Entry 152 + 0x1.fffffffff713ae594eafc080a48289f9p1023, + 0x1.633ce8fb9f85ap9 + }, + { // Entry 153 + 0x1.fffffffff713ae594eafc080a48289f9p1023, + -0x1.633ce8fb9f85ap9 + }, + { // Entry 154 + 0x1.1350a413023bfffffe14156b2ad2a0aap1, + 0x1.6666666678dc9p0 + }, + { // Entry 155 + 0x1.1350a413023bfffffe14156b2ad2a0aap1, + -0x1.6666666678dc9p0 + }, + { // Entry 156 + 0x1.4152c1863ba8280001cbf788e6aa237cp0, + 0x1.66666666a6b7ep-1 + }, + { // Entry 157 + 0x1.4152c1863ba8280001cbf788e6aa237cp0, + -0x1.66666666a6b7ep-1 + }, + { // Entry 158 + 0x1.ffffd47fb735b800740691174c7f5813p31, + 0x1.6dfb50131e66dp4 + }, + { // Entry 159 + 0x1.ffffd47fb735b800740691174c7f5813p31, + -0x1.6dfb50131e66dp4 + }, + { // Entry 160 + 0x1.23aaacaf304fbfffff85f2e03f117872p3, + 0x1.733333335c84ap1 + }, + { // Entry 161 + 0x1.23aaacaf304fbfffff85f2e03f117872p3, + -0x1.733333335c84ap1 + }, + { // Entry 162 + 0x1.000000000047f4008000035ee023fep0, + 0x1.7fep-21 + }, + { // Entry 163 + 0x1.000000000047f4008000035ee023fep0, + -0x1.7fep-21 + }, + { // Entry 164 + 0x1.f0e3e5b6c17c02a799c306dbc1b1a8ecp555, + 0x1.820d92fc4b42ap8 + }, + { // Entry 165 + 0x1.f0e3e5b6c17c02a799c306dbc1b1a8ecp555, + -0x1.820d92fc4b42ap8 + }, + { // Entry 166 + 0x1.9d55555ab98f4817a9f90acefca23523p140, + 0x1.88d9eff243ec8p6 + }, + { // Entry 167 + 0x1.9d55555ab98f4817a9f90acefca23523p140, + -0x1.88d9eff243ec8p6 + }, + { // Entry 168 + 0x1.04c5f3d75091e8012559fb87285a99dep0, + 0x1.8aep-3 + }, + { // Entry 169 + 0x1.04c5f3d75091e8012559fb87285a99dep0, + -0x1.8aep-3 + }, + { // Entry 170 + 0x1.50a125ad300e5802736ad2f68de9efdap0, + 0x1.8c6318c6318c4p-1 + }, + { // Entry 171 + 0x1.50a125ad300e5802736ad2f68de9efdap0, + -0x1.8c6318c6318c4p-1 + }, + { // Entry 172 + 0x1.a2cc09e2e7dd780005c588bf2ebd2d28p35, + 0x1.9720cc66f1cbbp4 + }, + { // Entry 173 + 0x1.a2cc09e2e7dd780005c588bf2ebd2d28p35, + -0x1.9720cc66f1cbbp4 + }, + { // Entry 174 + 0x1.49ea5b155646500001cb3c7a14d4f641p1, + 0x1.99999999b8db8p0 + }, + { // Entry 175 + 0x1.49ea5b155646500001cb3c7a14d4f641p1, + -0x1.99999999b8db8p0 + }, + { // Entry 176 + 0x1.0147f40224ea77fffe35f63e0620c28ep0, + 0x1.99999999bbe1bp-4 + }, + { // Entry 177 + 0x1.0147f40224ea77fffe35f63e0620c28ep0, + -0x1.99999999bbe1bp-4 + }, + { // Entry 178 + 0x1.0523184b26181ffffe5ad5f60af39607p0, + 0x1.9999999ab6eebp-3 + }, + { // Entry 179 + 0x1.0523184b26181ffffe5ad5f60af39607p0, + -0x1.9999999ab6eebp-3 + }, + { // Entry 180 + 0x1.0147f4022697680001b3e13f009af80bp0, + 0x1.9999999ac7857p-4 + }, + { // Entry 181 + 0x1.0147f4022697680001b3e13f009af80bp0, + -0x1.9999999ac7857p-4 + }, + { // Entry 182 + 0x1.0523184b290290000199de7723bc799dp0, + 0x1.9999999b2aca1p-3 + }, + { // Entry 183 + 0x1.0523184b290290000199de7723bc799dp0, + -0x1.9999999b2aca1p-3 + }, + { // Entry 184 + 0x1.0147f402280ed80001d59eeac36ba73dp0, + 0x1.9999999bb1c77p-4 + }, + { // Entry 185 + 0x1.0147f402280ed80001d59eeac36ba73dp0, + -0x1.9999999bb1c77p-4 + }, + { // Entry 186 + 0x1.ffffffffffed457a42e161456cf862b2p590, + 0x1.9a57d76d152fcp8 + }, + { // Entry 187 + 0x1.ffffffffffed457a42e161456cf862b2p590, + -0x1.9a57d76d152fcp8 + }, + { // Entry 188 + 0x1.6375401c4fbbf8003386ea381d3fe669p0, + 0x1.b5daed76bb580p-1 + }, + { // Entry 189 + 0x1.6375401c4fbbf8003386ea381d3fe669p0, + -0x1.b5daed76bb580p-1 + }, + { // Entry 190 + 0x1.f30605e8b5451805101b3ea033bab41cp8, + 0x1.b9f89e22629b5p2 + }, + { // Entry 191 + 0x1.f30605e8b5451805101b3ea033bab41cp8, + -0x1.b9f89e22629b5p2 + }, + { // Entry 192 + 0x1.f309ebf823d108054159f278e16ad109p8, + 0x1.b9f91e22629b5p2 + }, + { // Entry 193 + 0x1.f309ebf823d108054159f278e16ad109p8, + -0x1.b9f91e22629b5p2 + }, + { // Entry 194 + 0x1.185c2bf1d5276fffd73fd51a307743a4p0, + 0x1.bb4p-2 + }, + { // Entry 195 + 0x1.185c2bf1d5276fffd73fd51a307743a4p0, + -0x1.bb4p-2 + }, + { // Entry 196 + 0x1.0005ffd0c797f7ff1970be180784a55cp0, + 0x1.bb6p-7 + }, + { // Entry 197 + 0x1.0005ffd0c797f7ff1970be180784a55cp0, + -0x1.bb6p-7 + }, + { // Entry 198 + 0x1.968ef6ceade7f60edc2b4f0265da6ba4p640, + 0x1.bcc517b553c93p8 + }, + { // Entry 199 + 0x1.968ef6ceade7f60edc2b4f0265da6ba4p640, + -0x1.bcc517b553c93p8 + }, + { // Entry 200 + 0x1.7b972e453783930f202a8aa455bb6c01p1, + 0x1.c02p0 + }, + { // Entry 201 + 0x1.7b972e453783930f202a8aa455bb6c01p1, + -0x1.c02p0 + }, + { // Entry 202 + 0x1.7eec19d4dcbc738baa1a1114dee049b8p1, + 0x1.c28p0 + }, + { // Entry 203 + 0x1.7eec19d4dcbc738baa1a1114dee049b8p1, + -0x1.c28p0 + }, + { // Entry 204 + 0x1.0656561cbe53c7fffdb60e1b054d8f16p0, + 0x1.c6c2e93467e80p-3 + }, + { // Entry 205 + 0x1.0656561cbe53c7fffdb60e1b054d8f16p0, + -0x1.c6c2e93467e80p-3 + }, + { // Entry 206 + 0x1.06a2b3e7b603e800c2f4167761b30bf8p0, + 0x1.d14bf83b48ec3p-3 + }, + { // Entry 207 + 0x1.06a2b3e7b603e800c2f4167761b30bf8p0, + -0x1.d14bf83b48ec3p-3 + }, + { // Entry 208 + 0x1.fb4d9de0ad845677ec6fc467c2ca9f9ap19, + 0x1.d18p3 + }, + { // Entry 209 + 0x1.fb4d9de0ad845677ec6fc467c2ca9f9ap19, + -0x1.d18p3 + }, + { // Entry 210 + 0x1.73a6cd8f2f6d681e70f9695a25f39c35p0, + 0x1.d60p-1 + }, + { // Entry 211 + 0x1.73a6cd8f2f6d681e70f9695a25f39c35p0, + -0x1.d60p-1 + }, + { // Entry 212 + 0x1.9fb7158a225e000047f44f47edad0545p1, + 0x1.d8b5f14439f87p0 + }, + { // Entry 213 + 0x1.9fb7158a225e000047f44f47edad0545p1, + -0x1.d8b5f14439f87p0 + }, + { // Entry 214 + 0x1.ea40b4c3630d1000615de8737ec4857cp9, + 0x1.e532a134b958cp2 + }, + { // Entry 215 + 0x1.ea40b4c3630d1000615de8737ec4857cp9, + -0x1.e532a134b958cp2 + }, + { // Entry 216 + 0x1.dbca9263f840fca48450e408fa36b56bp177, + 0x1.effffffffffffp6 + }, + { // Entry 217 + 0x1.dbca9263f840fca48450e408fa36b56bp177, + -0x1.effffffffffffp6 + }, + { // Entry 218 + 0x1.01e4fad3b993aa1a52d036790b34e1cep0, + 0x1.f1fffffffffffp-4 + }, + { // Entry 219 + 0x1.01e4fad3b993aa1a52d036790b34e1cep0, + -0x1.f1fffffffffffp-4 + }, + { // Entry 220 + 0x1.07a6bb7edb5de8000669b121a48f81e9p0, + 0x1.f37a7a76cbc72p-3 + }, + { // Entry 221 + 0x1.07a6bb7edb5de8000669b121a48f81e9p0, + -0x1.f37a7a76cbc72p-3 + }, + { // Entry 222 + 0x1.d1ee8e62b2098fff7b22532973b4ccp1, + 0x1.f73a29b8fcc22p0 + }, + { // Entry 223 + 0x1.d1ee8e62b2098fff7b22532973b4ccp1, + -0x1.f73a29b8fcc22p0 + }, + { // Entry 224 + 0x1.f617a27e250ce1b06488e5167c0849a8p90, + 0x1.fdfffffffffffp5 + }, + { // Entry 225 + 0x1.f617a27e250ce1b06488e5167c0849a8p90, + -0x1.fdfffffffffffp5 + }, + { // Entry 226 + 0x1.000000000007f4018180a8332feed269p0, + 0x1.fe7f9fe7f9fc1p-23 + }, + { // Entry 227 + 0x1.000000000007f4018180a8332feed269p0, + -0x1.fe7f9fe7f9fc1p-23 + }, + { // Entry 228 + 0x1.000007f7824c94120eb9c3be21444195p0, + 0x1.feeffffffffffp-11 + }, + { // Entry 229 + 0x1.000007f7824c94120eb9c3be21444195p0, + -0x1.feeffffffffffp-11 + }, + { // Entry 230 + 0x1.dfa36f8e6bf72fa8a934ef27b5231b54p1, + 0x1.feeffffffffffp0 + }, + { // Entry 231 + 0x1.dfa36f8e6bf72fa8a934ef27b5231b54p1, + -0x1.feeffffffffffp0 + }, + { // Entry 232 + 0x1.08086ec43bf6287590f3692c2b8d555dp0, + 0x1.ffb886fe444c0p-3 + }, + { // Entry 233 + 0x1.08086ec43bf6287590f3692c2b8d555dp0, + -0x1.ffb886fe444c0p-3 + }, + { // Entry 234 + 0x1.080972995a2b573ac07666762f1a0b72p0, + 0x1.ffd8af33686dbp-3 + }, + { // Entry 235 + 0x1.080972995a2b573ac07666762f1a0b72p0, + -0x1.ffd8af33686dbp-3 + }, + { // Entry 236 + 0x1.6d4fd9ab47c9200073aa8127a2419ac8p737, + 0x1.ffe5effffffffp8 + }, + { // Entry 237 + 0x1.6d4fd9ab47c9200073aa8127a2419ac8p737, + -0x1.ffe5effffffffp8 + }, + { // Entry 238 + 0x1.74418e8eaca63c82e25a9f7d06548e5dp10, + 0x1.ffeffffffffffp2 + }, + { // Entry 239 + 0x1.74418e8eaca63c82e25a9f7d06548e5dp10, + -0x1.ffeffffffffffp2 + }, + { // Entry 240 + 0x1.080a3deb46ec08a56cbd7f1bde2759b0p0, + 0x1.fff1d77ffffffp-3 + }, + { // Entry 241 + 0x1.080a3deb46ec08a56cbd7f1bde2759b0p0, + -0x1.fff1d77ffffffp-3 + }, + { // Entry 242 + 0x1.941a855acbf7a7ffc58b32660a23ba32p737, + 0x1.ffffc5dffffffp8 + }, + { // Entry 243 + 0x1.941a855acbf7a7ffc58b32660a23ba32p737, + -0x1.ffffc5dffffffp8 + }, + { // Entry 244 + 0x1.95e4816b60a8d769724b586e4deb3b1bp183, + 0x1.fffffdfffffffp6 + }, + { // Entry 245 + 0x1.95e4816b60a8d769724b586e4deb3b1bp183, + -0x1.fffffdfffffffp6 + }, + { // Entry 246 + 0x1.080ab0589b61286b6d41402698d5bfeep0, + 0x1.ffffff7ffffffp-3 + }, + { // Entry 247 + 0x1.080ab0589b61286b6d41402698d5bfeep0, + -0x1.ffffff7ffffffp-3 + }, + { // Entry 248 + 0x1.20ac18541756f8007b9a2f43dab0cc9cp0, + 0x1.ffffff8ffffffp-2 + }, + { // Entry 249 + 0x1.20ac18541756f8007b9a2f43dab0cc9cp0, + -0x1.ffffff8ffffffp-2 + }, + { // Entry 250 + 0x1.e18fa0deb98c68008c19676612286a2dp1, + 0x1.ffffffffbffffp0 + }, + { // Entry 251 + 0x1.e18fa0deb98c68008c19676612286a2dp1, + -0x1.ffffffffbffffp0 + }, + { // Entry 252 + 0x1.p0, + 0x1.fffffffff7fffp-352 + }, + { // Entry 253 + 0x1.p0, + -0x1.fffffffff7fffp-352 + }, + { // Entry 254 + 0x1.0f2ebd0a7fc177f6fa2a0a4e6bb2f696p22, + 0x1.fffffffffff7fp3 + }, + { // Entry 255 + 0x1.0f2ebd0a7fc177f6fa2a0a4e6bb2f696p22, + -0x1.fffffffffff7fp3 + }, + { // Entry 256 + 0x1.e18fa0df2d99b84e92f43b9b47f7341ep1, + 0x1.fffffffffffeep0 + }, + { // Entry 257 + 0x1.e18fa0df2d99b84e92f43b9b47f7341ep1, + -0x1.fffffffffffeep0 + }, + { // Entry 258 + 0x1.b4ee858de3e5a800f659793765248fb4p4, + 0x1.ffffffffffff5p1 + }, + { // Entry 259 + 0x1.b4ee858de3e5a800f659793765248fb4p4, + -0x1.ffffffffffff5p1 + }, + { // Entry 260 + 0x1.p0, + 0x1.ffffffffffffdp-200 + }, + { // Entry 261 + 0x1.p0, + -0x1.ffffffffffffdp-200 + }, + { // Entry 262 + 0x1.0000000000001ffffffffffffcaaaaaap0, + 0x1.ffffffffffffep-26 + }, + { // Entry 263 + 0x1.0000000000001ffffffffffffcaaaaaap0, + -0x1.ffffffffffffep-26 + }, + { // Entry 264 + 0x1.00000000000007ffffffffffff0aaaaap0, + 0x1.ffffffffffffep-27 + }, + { // Entry 265 + 0x1.00000000000007ffffffffffff0aaaaap0, + -0x1.ffffffffffffep-27 + }, + { // Entry 266 + 0x1.9476504ba82057f69310608c30e76cebp737, + 0x1.ffffffffffffep8 + }, + { // Entry 267 + 0x1.9476504ba82057f69310608c30e76cebp737, + -0x1.ffffffffffffep8 + }, + { // Entry 268 + 0x1.p0, + 0.0 + }, + { // Entry 269 + 0x1.00a7413869e0bc675ef8f8059bcc3722p0, + 0x1.2492492492492p-4 + }, + { // Entry 270 + 0x1.00a7413869e0bc675ef8f8059bcc3722p0, + -0x1.2492492492492p-4 + }, + { // Entry 271 + 0x1.029ddf6df7f29c6e5531c853aa7ef551p0, + 0x1.2492492492492p-3 + }, + { // Entry 272 + 0x1.029ddf6df7f29c6e5531c853aa7ef551p0, + -0x1.2492492492492p-3 + }, + { // Entry 273 + 0x1.05e66b632df1253b01df69be9ece44e3p0, + 0x1.b6db6db6db6dbp-3 + }, + { // Entry 274 + 0x1.05e66b632df1253b01df69be9ece44e3p0, + -0x1.b6db6db6db6dbp-3 + }, + { // Entry 275 + 0x1.0a852f6aef4fd03008a8aa0554865518p0, + 0x1.2492492492492p-2 + }, + { // Entry 276 + 0x1.0a852f6aef4fd03008a8aa0554865518p0, + -0x1.2492492492492p-2 + }, + { // Entry 277 + 0x1.10803503a700f31eb1d4ed9defcba588p0, + 0x1.6db6db6db6db6p-2 + }, + { // Entry 278 + 0x1.10803503a700f31eb1d4ed9defcba588p0, + -0x1.6db6db6db6db6p-2 + }, + { // Entry 279 + 0x1.17df4cbabde0a25651179bc95d273b63p0, + 0x1.b6db6db6db6dap-2 + }, + { // Entry 280 + 0x1.17df4cbabde0a25651179bc95d273b63p0, + -0x1.b6db6db6db6dap-2 + }, + { // Entry 281 + 0x1.20ac1862ae8d021a4e365577227270b1p0, + 0x1.ffffffffffffep-2 + }, + { // Entry 282 + 0x1.20ac1862ae8d021a4e365577227270b1p0, + -0x1.ffffffffffffep-2 + }, + { // Entry 283 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + 0x1.0p-1 + }, + { // Entry 284 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + -0x1.0p-1 + }, + { // Entry 285 + 0x1.2af217a90e6dec39004f56495cd43505p0, + 0x1.2492492492492p-1 + }, + { // Entry 286 + 0x1.2af217a90e6dec39004f56495cd43505p0, + -0x1.2492492492492p-1 + }, + { // Entry 287 + 0x1.36beb71cfe154fa26b865cb1a3cb8a5fp0, + 0x1.4924924924924p-1 + }, + { // Entry 288 + 0x1.36beb71cfe154fa26b865cb1a3cb8a5fp0, + -0x1.4924924924924p-1 + }, + { // Entry 289 + 0x1.442161b9a30711902871e6d507913362p0, + 0x1.6db6db6db6db6p-1 + }, + { // Entry 290 + 0x1.442161b9a30711902871e6d507913362p0, + -0x1.6db6db6db6db6p-1 + }, + { // Entry 291 + 0x1.532b950b9683060720f579e323e93474p0, + 0x1.9249249249248p-1 + }, + { // Entry 292 + 0x1.532b950b9683060720f579e323e93474p0, + -0x1.9249249249248p-1 + }, + { // Entry 293 + 0x1.63f0f80b9c6bb0519d8eae2c3ccbbd98p0, + 0x1.b6db6db6db6dap-1 + }, + { // Entry 294 + 0x1.63f0f80b9c6bb0519d8eae2c3ccbbd98p0, + -0x1.b6db6db6db6dap-1 + }, + { // Entry 295 + 0x1.768774cc7f49764e7589347e3613d36bp0, + 0x1.db6db6db6db6cp-1 + }, + { // Entry 296 + 0x1.768774cc7f49764e7589347e3613d36bp0, + -0x1.db6db6db6db6cp-1 + }, + { // Entry 297 + 0x1.8b07551d9f54f1f51d63c148150ff9f0p0, + 0x1.ffffffffffffep-1 + }, + { // Entry 298 + 0x1.8b07551d9f54f1f51d63c148150ff9f0p0, + -0x1.ffffffffffffep-1 + }, + { // Entry 299 + 0x1.p0, + 0.0 + }, + { // Entry 300 + 0x1.0009a148b0e06dc3d0614c40dd1468d6p0, + 0x1.18de5ab277f45p-6 + }, + { // Entry 301 + 0x1.0009a148b0e06dc3d0614c40dd1468d6p0, + -0x1.18de5ab277f45p-6 + }, + { // Entry 302 + 0x1.002685dc3cf39cdb36154a8c673f400bp0, + 0x1.18de5ab277f45p-5 + }, + { // Entry 303 + 0x1.002685dc3cf39cdb36154a8c673f400bp0, + -0x1.18de5ab277f45p-5 + }, + { // Entry 304 + 0x1.0056afe71e837cc56169a00a96535d60p0, + 0x1.a54d880bb3ee8p-5 + }, + { // Entry 305 + 0x1.0056afe71e837cc56169a00a96535d60p0, + -0x1.a54d880bb3ee8p-5 + }, + { // Entry 306 + 0x1.009a2308fa8fcdaddee63777dbb370e6p0, + 0x1.18de5ab277f45p-4 + }, + { // Entry 307 + 0x1.009a2308fa8fcdaddee63777dbb370e6p0, + -0x1.18de5ab277f45p-4 + }, + { // Entry 308 + 0x1.00f0e454e69896dbe7bfa42c490502bbp0, + 0x1.5f15f15f15f16p-4 + }, + { // Entry 309 + 0x1.00f0e454e69896dbe7bfa42c490502bbp0, + -0x1.5f15f15f15f16p-4 + }, + { // Entry 310 + 0x1.015afa51ca5a8c6a812cb74010fd2339p0, + 0x1.a54d880bb3ee7p-4 + }, + { // Entry 311 + 0x1.015afa51ca5a8c6a812cb74010fd2339p0, + -0x1.a54d880bb3ee7p-4 + }, + { // Entry 312 + 0x1.01d86cfadd84bef42effbee90fd3b265p0, + 0x1.eb851eb851eb8p-4 + }, + { // Entry 313 + 0x1.01d86cfadd84bef42effbee90fd3b265p0, + -0x1.eb851eb851eb8p-4 + }, + { // Entry 314 + 0x1.01d86cfadd84bef42effbee90fd3b265p0, + 0x1.eb851eb851eb8p-4 + }, + { // Entry 315 + 0x1.01d86cfadd84bef42effbee90fd3b265p0, + -0x1.eb851eb851eb8p-4 + }, + { // Entry 316 + 0x1.02068cf05597373684859565fe36babfp0, + 0x1.01767dce434aap-3 + }, + { // Entry 317 + 0x1.02068cf05597373684859565fe36babfp0, + -0x1.01767dce434aap-3 + }, + { // Entry 318 + 0x1.0236d50fb0daff9feea39dcae5219685p0, + 0x1.0d2a6c405d9f8p-3 + }, + { // Entry 319 + 0x1.0236d50fb0daff9feea39dcae5219685p0, + -0x1.0d2a6c405d9f8p-3 + }, + { // Entry 320 + 0x1.026945c041710aacb6e5b3c7fb2aa37ap0, + 0x1.18de5ab277f46p-3 + }, + { // Entry 321 + 0x1.026945c041710aacb6e5b3c7fb2aa37ap0, + -0x1.18de5ab277f46p-3 + }, + { // Entry 322 + 0x1.029ddf6df7f29d011dd86bfe01ec3683p0, + 0x1.2492492492494p-3 + }, + { // Entry 323 + 0x1.029ddf6df7f29d011dd86bfe01ec3683p0, + -0x1.2492492492494p-3 + }, + { // Entry 324 + 0x1.02d4a289645849faf12a95a92d2534d5p0, + 0x1.30463796ac9e2p-3 + }, + { // Entry 325 + 0x1.02d4a289645849faf12a95a92d2534d5p0, + -0x1.30463796ac9e2p-3 + }, + { // Entry 326 + 0x1.030d8f87b6ead4a0bc7464b33dbba3aap0, + 0x1.3bfa2608c6f30p-3 + }, + { // Entry 327 + 0x1.030d8f87b6ead4a0bc7464b33dbba3aap0, + -0x1.3bfa2608c6f30p-3 + }, + { // Entry 328 + 0x1.0348a6e2c13df5fb3d99c361a1bb9dcbp0, + 0x1.47ae147ae147bp-3 + }, + { // Entry 329 + 0x1.0348a6e2c13df5fb3d99c361a1bb9dcbp0, + -0x1.47ae147ae147bp-3 + }, + { // Entry 330 + 0x1.0348a6e2c13df5fb3d99c361a1bb9dcbp0, + 0x1.47ae147ae147bp-3 + }, + { // Entry 331 + 0x1.0348a6e2c13df5fb3d99c361a1bb9dcbp0, + -0x1.47ae147ae147bp-3 + }, + { // Entry 332 + 0x1.0a19d6de605abf08129cddde1636dd2ap0, + 0x1.1eb851eb851ecp-2 + }, + { // Entry 333 + 0x1.0a19d6de605abf08129cddde1636dd2ap0, + -0x1.1eb851eb851ecp-2 + }, + { // Entry 334 + 0x1.14c128b1a7c2b69f584c42e1f5d24e43p0, + 0x1.999999999999ap-2 + }, + { // Entry 335 + 0x1.14c128b1a7c2b69f584c42e1f5d24e43p0, + -0x1.999999999999ap-2 + }, + { // Entry 336 + 0x1.2365ee6c60d331135d0b3ad315833363p0, + 0x1.0a3d70a3d70a4p-1 + }, + { // Entry 337 + 0x1.2365ee6c60d331135d0b3ad315833363p0, + -0x1.0a3d70a3d70a4p-1 + }, + { // Entry 338 + 0x1.363e341f66160527d93c30b63d619a60p0, + 0x1.47ae147ae147bp-1 + }, + { // Entry 339 + 0x1.363e341f66160527d93c30b63d619a60p0, + -0x1.47ae147ae147bp-1 + }, + { // Entry 340 + 0x1.4d8f87572582badd7439620bd7e9590bp0, + 0x1.851eb851eb852p-1 + }, + { // Entry 341 + 0x1.4d8f87572582badd7439620bd7e9590bp0, + -0x1.851eb851eb852p-1 + }, + { // Entry 342 + 0x1.69aff7d0ce135dcd1a6ec2e65d0a89dfp0, + 0x1.c28f5c28f5c29p-1 + }, + { // Entry 343 + 0x1.69aff7d0ce135dcd1a6ec2e65d0a89dfp0, + -0x1.c28f5c28f5c29p-1 + }, + { // Entry 344 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + 0x1.0p0 + }, + { // Entry 345 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + -0x1.0p0 + }, + { // Entry 346 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + 0x1.0p0 + }, + { // Entry 347 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + -0x1.0p0 + }, + { // Entry 348 + 0x1.c035cc3cf78edf8213cbad9479090d14p7, + 0x1.86bc88cbf1b67p2 + }, + { // Entry 349 + 0x1.c035cc3cf78edf8213cbad9479090d14p7, + -0x1.86bc88cbf1b67p2 + }, + { // Entry 350 + 0x1.20af6cbb4ba69598ec939d7de84f588dp15, + 0x1.66bc88cbf1b67p3 + }, + { // Entry 351 + 0x1.20af6cbb4ba69598ec939d7de84f588dp15, + -0x1.66bc88cbf1b67p3 + }, + { // Entry 352 + 0x1.73e096cf57b5505242fb8e3b8be68034p22, + 0x1.050d6698f548dp4 + }, + { // Entry 353 + 0x1.73e096cf57b5505242fb8e3b8be68034p22, + -0x1.050d6698f548dp4 + }, + { // Entry 354 + 0x1.df0b13a84513e2dfcb4b2dd0b765caf4p29, + 0x1.56bc88cbf1b67p4 + }, + { // Entry 355 + 0x1.df0b13a84513e2dfcb4b2dd0b765caf4p29, + -0x1.56bc88cbf1b67p4 + }, + { // Entry 356 + 0x1.348bc1e018bc593ce3145e9f4c06b22cp37, + 0x1.a86baafeee241p4 + }, + { // Entry 357 + 0x1.348bc1e018bc593ce3145e9f4c06b22cp37, + -0x1.a86baafeee241p4 + }, + { // Entry 358 + 0x1.8d761a3398942448ea796cb7e602a205p44, + 0x1.fa1acd31ea91bp4 + }, + { // Entry 359 + 0x1.8d761a3398942448ea796cb7e602a205p44, + -0x1.fa1acd31ea91bp4 + }, + { // Entry 360 + 0x1.ffffffffffff9ede67b7a30e671c79e2p51, + 0x1.25e4f7b2737fap5 + }, + { // Entry 361 + 0x1.ffffffffffff9ede67b7a30e671c79e2p51, + -0x1.25e4f7b2737fap5 + }, + { // Entry 362 + 0x1.00000000ffff654361c5613c8dcf8b38p15, + 0x1.62e42fefa39eep3 + }, + { // Entry 363 + 0x1.00000000ffff654361c5613c8dcf8b38p15, + -0x1.62e42fefa39eep3 + }, + { // Entry 364 + 0x1.00000000ffffe54361c4e13c60713c1ap15, + 0x1.62e42fefa39efp3 + }, + { // Entry 365 + 0x1.00000000ffffe54361c4e13c60713c1ap15, + -0x1.62e42fefa39efp3 + }, + { // Entry 366 + 0x1.000000010000654361c4613c7312ecfdp15, + 0x1.62e42fefa39f0p3 + }, + { // Entry 367 + 0x1.000000010000654361c4613c7312ecfdp15, + -0x1.62e42fefa39f0p3 + }, + { // Entry 368 + 0x1.0000ffffffffb2a1fe40b25d88d964f9p7, + 0x1.62e42fefa39eep2 + }, + { // Entry 369 + 0x1.0000ffffffffb2a1fe40b25d88d964f9p7, + -0x1.62e42fefa39eep2 + }, + { // Entry 370 + 0x1.0000fffffffff2a1be40b25d7d81c5dap7, + 0x1.62e42fefa39efp2 + }, + { // Entry 371 + 0x1.0000fffffffff2a1be40b25d7d81c5dap7, + -0x1.62e42fefa39efp2 + }, + { // Entry 372 + 0x1.00010000000032a17e40b25d822a36bbp7, + 0x1.62e42fefa39f0p2 + }, + { // Entry 373 + 0x1.00010000000032a17e40b25d822a36bbp7, + -0x1.62e42fefa39f0p2 + }, + { // Entry 374 + 0x1.00ffffffffffd9778798c06e53331924p3, + 0x1.62e42fefa39eep1 + }, + { // Entry 375 + 0x1.00ffffffffffd9778798c06e53331924p3, + -0x1.62e42fefa39eep1 + }, + { // Entry 376 + 0x1.00fffffffffff9578798c06e505a5e4dp3, + 0x1.62e42fefa39efp1 + }, + { // Entry 377 + 0x1.00fffffffffff9578798c06e505a5e4dp3, + -0x1.62e42fefa39efp1 + }, + { // Entry 378 + 0x1.01000000000019378798c06e5185a376p3, + 0x1.62e42fefa39f0p1 + }, + { // Entry 379 + 0x1.01000000000019378798c06e5185a376p3, + -0x1.62e42fefa39f0p1 + }, + { // Entry 380 + 0x1.0fffffffffffeddde5750f42f95f3159p1, + 0x1.62e42fefa39eep0 + }, + { // Entry 381 + 0x1.0fffffffffffeddde5750f42f95f3159p1, + -0x1.62e42fefa39eep0 + }, + { // Entry 382 + 0x1.0ffffffffffffcdde5750f42f89e6089p1, + 0x1.62e42fefa39efp0 + }, + { // Entry 383 + 0x1.0ffffffffffffcdde5750f42f89e6089p1, + -0x1.62e42fefa39efp0 + }, + { // Entry 384 + 0x1.1000000000000bdde5750f42f8ed8fb8p1, + 0x1.62e42fefa39f0p0 + }, + { // Entry 385 + 0x1.1000000000000bdde5750f42f8ed8fb8p1, + -0x1.62e42fefa39f0p0 + }, + { // Entry 386 + 0x1.3ffffffffffff8bf2895394dfd443ba8p0, + 0x1.62e42fefa39eep-1 + }, + { // Entry 387 + 0x1.3ffffffffffff8bf2895394dfd443ba8p0, + -0x1.62e42fefa39eep-1 + }, + { // Entry 388 + 0x1.3ffffffffffffebf2895394dfd0b85c5p0, + 0x1.62e42fefa39efp-1 + }, + { // Entry 389 + 0x1.3ffffffffffffebf2895394dfd0b85c5p0, + -0x1.62e42fefa39efp-1 + }, + { // Entry 390 + 0x1.40000000000004bf2895394dfd22cfe2p0, + 0x1.62e42fefa39f0p-1 + }, + { // Entry 391 + 0x1.40000000000004bf2895394dfd22cfe2p0, + -0x1.62e42fefa39f0p-1 + }, + { // Entry 392 + 0x1.0f876ccdf6cd9510dcd50357a7335f9dp0, + 0x1.62e42fefa39eep-2 + }, + { // Entry 393 + 0x1.0f876ccdf6cd9510dcd50357a7335f9dp0, + -0x1.62e42fefa39eep-2 + }, + { // Entry 394 + 0x1.0f876ccdf6cd967ae6bb6b4b63f0609bp0, + 0x1.62e42fefa39efp-2 + }, + { // Entry 395 + 0x1.0f876ccdf6cd967ae6bb6b4b63f0609bp0, + -0x1.62e42fefa39efp-2 + }, + { // Entry 396 + 0x1.0f876ccdf6cd97e4f0a1d33f20be5a0fp0, + 0x1.62e42fefa39f0p-2 + }, + { // Entry 397 + 0x1.0f876ccdf6cd97e4f0a1d33f20be5a0fp0, + -0x1.62e42fefa39f0p-2 + }, + { // Entry 398 + 0x1.03da6eb6f9075e7d98810fe96fe74840p0, + 0x1.62e42fefa39eep-3 + }, + { // Entry 399 + 0x1.03da6eb6f9075e7d98810fe96fe74840p0, + -0x1.62e42fefa39eep-3 + }, + { // Entry 400 + 0x1.03da6eb6f9075ed6c364e82e43cc51c1p0, + 0x1.62e42fefa39efp-3 + }, + { // Entry 401 + 0x1.03da6eb6f9075ed6c364e82e43cc51c1p0, + -0x1.62e42fefa39efp-3 + }, + { // Entry 402 + 0x1.03da6eb6f9075f2fee48c07317b56aadp0, + 0x1.62e42fefa39f0p-3 + }, + { // Entry 403 + 0x1.03da6eb6f9075f2fee48c07317b56aadp0, + -0x1.62e42fefa39f0p-3 + }, + { // Entry 404 + 0x1.00f62557d91df3638b0ba7ca488b2839p0, + 0x1.62e42fefa39eep-4 + }, + { // Entry 405 + 0x1.00f62557d91df3638b0ba7ca488b2839p0, + -0x1.62e42fefa39eep-4 + }, + { // Entry 406 + 0x1.00f62557d91df379c06a17c64244c1a5p0, + 0x1.62e42fefa39efp-4 + }, + { // Entry 407 + 0x1.00f62557d91df379c06a17c64244c1a5p0, + -0x1.62e42fefa39efp-4 + }, + { // Entry 408 + 0x1.00f62557d91df38ff5c887c23bff5c07p0, + 0x1.62e42fefa39f0p-4 + }, + { // Entry 409 + 0x1.00f62557d91df38ff5c887c23bff5c07p0, + -0x1.62e42fefa39f0p-4 + }, + { // Entry 410 + 0x1.003d81f25e8be1244ef875be32e5fbb0p0, + 0x1.62e42fefa39eep-5 + }, + { // Entry 411 + 0x1.003d81f25e8be1244ef875be32e5fbb0p0, + -0x1.62e42fefa39eep-5 + }, + { // Entry 412 + 0x1.003d81f25e8be129dafae45b35704d8ap0, + 0x1.62e42fefa39efp-5 + }, + { // Entry 413 + 0x1.003d81f25e8be129dafae45b35704d8ap0, + -0x1.62e42fefa39efp-5 + }, + { // Entry 414 + 0x1.003d81f25e8be12f66fd52f837fadf75p0, + 0x1.62e42fefa39f0p-5 + }, + { // Entry 415 + 0x1.003d81f25e8be12f66fd52f837fadf75p0, + -0x1.62e42fefa39f0p-5 + }, + { // Entry 416 + 0x1.000f60066540a372cf2f0ea5d3ca7e8bp0, + 0x1.62e42fefa39eep-6 + }, + { // Entry 417 + 0x1.000f60066540a372cf2f0ea5d3ca7e8bp0, + -0x1.62e42fefa39eep-6 + }, + { // Entry 418 + 0x1.000f60066540a374321a5962997281b2p0, + 0x1.62e42fefa39efp-6 + }, + { // Entry 419 + 0x1.000f60066540a374321a5962997281b2p0, + -0x1.62e42fefa39efp-6 + }, + { // Entry 420 + 0x1.000f60066540a3759505a41f5f1a94dbp0, + 0x1.62e42fefa39f0p-6 + }, + { // Entry 421 + 0x1.000f60066540a3759505a41f5f1a94dbp0, + -0x1.62e42fefa39f0p-6 + }, + { // Entry 422 + 0x1.000000000000ca87c3898cffd1bcd954p31, + -0x1.62e42fefa39f0p4 + }, + { // Entry 423 + 0x1.000000000000ca87c3898cffd1bcd954p31, + 0x1.62e42fefa39f0p4 + }, + { // Entry 424 + 0x1.ffffffffffff950f871319ff0e6e2b95p30, + -0x1.62e42fefa39efp4 + }, + { // Entry 425 + 0x1.ffffffffffff950f871319ff0e6e2b95p30, + 0x1.62e42fefa39efp4 + }, + { // Entry 426 + 0x1.fffffffffffd950f87131a007962a482p30, + -0x1.62e42fefa39eep4 + }, + { // Entry 427 + 0x1.fffffffffffd950f87131a007962a482p30, + 0x1.62e42fefa39eep4 + }, + { // Entry 428 + 0x1.000000010000654361c4613c7312ecfdp15, + -0x1.62e42fefa39f0p3 + }, + { // Entry 429 + 0x1.000000010000654361c4613c7312ecfdp15, + 0x1.62e42fefa39f0p3 + }, + { // Entry 430 + 0x1.00000000ffffe54361c4e13c60713c1ap15, + -0x1.62e42fefa39efp3 + }, + { // Entry 431 + 0x1.00000000ffffe54361c4e13c60713c1ap15, + 0x1.62e42fefa39efp3 + }, + { // Entry 432 + 0x1.00000000ffff654361c5613c8dcf8b38p15, + -0x1.62e42fefa39eep3 + }, + { // Entry 433 + 0x1.00000000ffff654361c5613c8dcf8b38p15, + 0x1.62e42fefa39eep3 + }, + { // Entry 434 + 0x1.00010000000032a17e40b25d822a36bbp7, + -0x1.62e42fefa39f0p2 + }, + { // Entry 435 + 0x1.00010000000032a17e40b25d822a36bbp7, + 0x1.62e42fefa39f0p2 + }, + { // Entry 436 + 0x1.0000fffffffff2a1be40b25d7d81c5dap7, + -0x1.62e42fefa39efp2 + }, + { // Entry 437 + 0x1.0000fffffffff2a1be40b25d7d81c5dap7, + 0x1.62e42fefa39efp2 + }, + { // Entry 438 + 0x1.0000ffffffffb2a1fe40b25d88d964f9p7, + -0x1.62e42fefa39eep2 + }, + { // Entry 439 + 0x1.0000ffffffffb2a1fe40b25d88d964f9p7, + 0x1.62e42fefa39eep2 + }, + { // Entry 440 + 0x1.01000000000019378798c06e5185a376p3, + -0x1.62e42fefa39f0p1 + }, + { // Entry 441 + 0x1.01000000000019378798c06e5185a376p3, + 0x1.62e42fefa39f0p1 + }, + { // Entry 442 + 0x1.00fffffffffff9578798c06e505a5e4dp3, + -0x1.62e42fefa39efp1 + }, + { // Entry 443 + 0x1.00fffffffffff9578798c06e505a5e4dp3, + 0x1.62e42fefa39efp1 + }, + { // Entry 444 + 0x1.00ffffffffffd9778798c06e53331924p3, + -0x1.62e42fefa39eep1 + }, + { // Entry 445 + 0x1.00ffffffffffd9778798c06e53331924p3, + 0x1.62e42fefa39eep1 + }, + { // Entry 446 + 0x1.1000000000000bdde5750f42f8ed8fb8p1, + -0x1.62e42fefa39f0p0 + }, + { // Entry 447 + 0x1.1000000000000bdde5750f42f8ed8fb8p1, + 0x1.62e42fefa39f0p0 + }, + { // Entry 448 + 0x1.0ffffffffffffcdde5750f42f89e6089p1, + -0x1.62e42fefa39efp0 + }, + { // Entry 449 + 0x1.0ffffffffffffcdde5750f42f89e6089p1, + 0x1.62e42fefa39efp0 + }, + { // Entry 450 + 0x1.0fffffffffffeddde5750f42f95f3159p1, + -0x1.62e42fefa39eep0 + }, + { // Entry 451 + 0x1.0fffffffffffeddde5750f42f95f3159p1, + 0x1.62e42fefa39eep0 + }, + { // Entry 452 + 0x1.40000000000004bf2895394dfd22cfe2p0, + -0x1.62e42fefa39f0p-1 + }, + { // Entry 453 + 0x1.40000000000004bf2895394dfd22cfe2p0, + 0x1.62e42fefa39f0p-1 + }, + { // Entry 454 + 0x1.3ffffffffffffebf2895394dfd0b85c5p0, + -0x1.62e42fefa39efp-1 + }, + { // Entry 455 + 0x1.3ffffffffffffebf2895394dfd0b85c5p0, + 0x1.62e42fefa39efp-1 + }, + { // Entry 456 + 0x1.3ffffffffffff8bf2895394dfd443ba8p0, + -0x1.62e42fefa39eep-1 + }, + { // Entry 457 + 0x1.3ffffffffffff8bf2895394dfd443ba8p0, + 0x1.62e42fefa39eep-1 + }, + { // Entry 458 + 0x1.0f876ccdf6cd97e4f0a1d33f20be5a0fp0, + -0x1.62e42fefa39f0p-2 + }, + { // Entry 459 + 0x1.0f876ccdf6cd97e4f0a1d33f20be5a0fp0, + 0x1.62e42fefa39f0p-2 + }, + { // Entry 460 + 0x1.0f876ccdf6cd967ae6bb6b4b63f0609bp0, + -0x1.62e42fefa39efp-2 + }, + { // Entry 461 + 0x1.0f876ccdf6cd967ae6bb6b4b63f0609bp0, + 0x1.62e42fefa39efp-2 + }, + { // Entry 462 + 0x1.0f876ccdf6cd9510dcd50357a7335f9dp0, + -0x1.62e42fefa39eep-2 + }, + { // Entry 463 + 0x1.0f876ccdf6cd9510dcd50357a7335f9dp0, + 0x1.62e42fefa39eep-2 + }, + { // Entry 464 + 0x1.03da6eb6f9075f2fee48c07317b56aadp0, + -0x1.62e42fefa39f0p-3 + }, + { // Entry 465 + 0x1.03da6eb6f9075f2fee48c07317b56aadp0, + 0x1.62e42fefa39f0p-3 + }, + { // Entry 466 + 0x1.03da6eb6f9075ed6c364e82e43cc51c1p0, + -0x1.62e42fefa39efp-3 + }, + { // Entry 467 + 0x1.03da6eb6f9075ed6c364e82e43cc51c1p0, + 0x1.62e42fefa39efp-3 + }, + { // Entry 468 + 0x1.03da6eb6f9075e7d98810fe96fe74840p0, + -0x1.62e42fefa39eep-3 + }, + { // Entry 469 + 0x1.03da6eb6f9075e7d98810fe96fe74840p0, + 0x1.62e42fefa39eep-3 + }, + { // Entry 470 + 0x1.00f62557d91df38ff5c887c23bff5c07p0, + -0x1.62e42fefa39f0p-4 + }, + { // Entry 471 + 0x1.00f62557d91df38ff5c887c23bff5c07p0, + 0x1.62e42fefa39f0p-4 + }, + { // Entry 472 + 0x1.00f62557d91df379c06a17c64244c1a5p0, + -0x1.62e42fefa39efp-4 + }, + { // Entry 473 + 0x1.00f62557d91df379c06a17c64244c1a5p0, + 0x1.62e42fefa39efp-4 + }, + { // Entry 474 + 0x1.00f62557d91df3638b0ba7ca488b2839p0, + -0x1.62e42fefa39eep-4 + }, + { // Entry 475 + 0x1.00f62557d91df3638b0ba7ca488b2839p0, + 0x1.62e42fefa39eep-4 + }, + { // Entry 476 + 0x1.003d81f25e8be12f66fd52f837fadf75p0, + -0x1.62e42fefa39f0p-5 + }, + { // Entry 477 + 0x1.003d81f25e8be12f66fd52f837fadf75p0, + 0x1.62e42fefa39f0p-5 + }, + { // Entry 478 + 0x1.003d81f25e8be129dafae45b35704d8ap0, + -0x1.62e42fefa39efp-5 + }, + { // Entry 479 + 0x1.003d81f25e8be129dafae45b35704d8ap0, + 0x1.62e42fefa39efp-5 + }, + { // Entry 480 + 0x1.003d81f25e8be1244ef875be32e5fbb0p0, + -0x1.62e42fefa39eep-5 + }, + { // Entry 481 + 0x1.003d81f25e8be1244ef875be32e5fbb0p0, + 0x1.62e42fefa39eep-5 + }, + { // Entry 482 + 0x1.bfeb3206958461e0cd949b740397374bp262, + 0x1.6db6db6db6db7p7 + }, + { // Entry 483 + 0x1.bfeb3206958461e0cd949b740397374bp262, + -0x1.6db6db6db6db7p7 + }, + { // Entry 484 + 0x1.ee4adffc4816c196cc85c579b49b713cp341, + 0x1.db6db6db6db6ep7 + }, + { // Entry 485 + 0x1.ee4adffc4816c196cc85c579b49b713cp341, + -0x1.db6db6db6db6ep7 + }, + { // Entry 486 + 0x1.10bbd304e4d53317191db80168f41e88p421, + 0x1.2492492492492p8 + }, + { // Entry 487 + 0x1.10bbd304e4d53317191db80168f41e88p421, + -0x1.2492492492492p8 + }, + { // Entry 488 + 0x1.2cf8621aa3eacbce3c5c6aac7a52e872p500, + 0x1.5b6db6db6db6dp8 + }, + { // Entry 489 + 0x1.2cf8621aa3eacbce3c5c6aac7a52e872p500, + -0x1.5b6db6db6db6dp8 + }, + { // Entry 490 + 0x1.4c21539572c19b59fc629129d307d9b1p579, + 0x1.9249249249248p8 + }, + { // Entry 491 + 0x1.4c21539572c19b59fc629129d307d9b1p579, + -0x1.9249249249248p8 + }, + { // Entry 492 + 0x1.6e8422b4db33b6293cd44cd1c65585b2p658, + 0x1.c924924924923p8 + }, + { // Entry 493 + 0x1.6e8422b4db33b6293cd44cd1c65585b2p658, + -0x1.c924924924923p8 + }, + { // Entry 494 + 0x1.6dde4c855f3397cd05f383e2ad5ef219p935, + 0x1.4492492492492p9 + }, + { // Entry 495 + 0x1.6dde4c855f3397cd05f383e2ad5ef219p935, + -0x1.4492492492492p9 + }, + { // Entry 496 + 0x1.a178d253fc35a0b9802d9cd5f67cb7efp948, + 0x1.4924924924924p9 + }, + { // Entry 497 + 0x1.a178d253fc35a0b9802d9cd5f67cb7efp948, + -0x1.4924924924924p9 + }, + { // Entry 498 + 0x1.dc5a9c97ea13a0062828386dc2460ac2p961, + 0x1.4db6db6db6db6p9 + }, + { // Entry 499 + 0x1.dc5a9c97ea13a0062828386dc2460ac2p961, + -0x1.4db6db6db6db6p9 + }, + { // Entry 500 + 0x1.0fc53c727155d9dd001733d4258e3203p975, + 0x1.5249249249248p9 + }, + { // Entry 501 + 0x1.0fc53c727155d9dd001733d4258e3203p975, + -0x1.5249249249248p9 + }, + { // Entry 502 + 0x1.361a22f5879a158106bee1e89ea2a4d7p988, + 0x1.56db6db6db6dap9 + }, + { // Entry 503 + 0x1.361a22f5879a158106bee1e89ea2a4d7p988, + -0x1.56db6db6db6dap9 + }, + { // Entry 504 + 0x1.61d716eca93811f8d8288649dc2cee65p1001, + 0x1.5b6db6db6db6cp9 + }, + { // Entry 505 + 0x1.61d716eca93811f8d8288649dc2cee65p1001, + -0x1.5b6db6db6db6cp9 + }, + { // Entry 506 + HUGE_VAL, + 0x1.76db6db6db6dbp9 + }, + { // Entry 507 + HUGE_VAL, + -0x1.76db6db6db6dbp9 + }, + { // Entry 508 + HUGE_VAL, + 0x1.8db6db6db6db6p9 + }, + { // Entry 509 + HUGE_VAL, + -0x1.8db6db6db6db6p9 + }, + { // Entry 510 + HUGE_VAL, + 0x1.a492492492491p9 + }, + { // Entry 511 + HUGE_VAL, + -0x1.a492492492491p9 + }, + { // Entry 512 + HUGE_VAL, + 0x1.bb6db6db6db6cp9 + }, + { // Entry 513 + HUGE_VAL, + -0x1.bb6db6db6db6cp9 + }, + { // Entry 514 + HUGE_VAL, + 0x1.d249249249247p9 + }, + { // Entry 515 + HUGE_VAL, + -0x1.d249249249247p9 + }, + { // Entry 516 + HUGE_VAL, + 0x1.e924924924922p9 + }, + { // Entry 517 + HUGE_VAL, + -0x1.e924924924922p9 + }, + { // Entry 518 + 0x1.93bf4ec282efb320a57f9ae02e01ae51p1014, + -0x1.6p9 + }, + { // Entry 519 + 0x1.93bf4ec282efb320a57f9ae02e01ae51p1014, + 0x1.6p9 + }, + { // Entry 520 + 0x1.61d716eca99087be9352df5d131a5dd2p1001, + -0x1.5b6db6db6db6ep9 + }, + { // Entry 521 + 0x1.61d716eca99087be9352df5d131a5dd2p1001, + 0x1.5b6db6db6db6ep9 + }, + { // Entry 522 + 0x1.361a22f587e79c09c420d21ecffc00cdp988, + -0x1.56db6db6db6dcp9 + }, + { // Entry 523 + 0x1.361a22f587e79c09c420d21ecffc00cdp988, + 0x1.56db6db6db6dcp9 + }, + { // Entry 524 + 0x1.0fc53c727199cb2c1cb391c8c6b1cb5bp975, + -0x1.524924924924ap9 + }, + { // Entry 525 + 0x1.0fc53c727199cb2c1cb391c8c6b1cb5bp975, + 0x1.524924924924ap9 + }, + { // Entry 526 + 0x1.dc5a9c97ea8ab6ad4e22cc3898b4d422p961, + -0x1.4db6db6db6db8p9 + }, + { // Entry 527 + 0x1.dc5a9c97ea8ab6ad4e22cc3898b4d422p961, + 0x1.4db6db6db6db8p9 + }, + { // Entry 528 + 0x1.a178d253fc9dfeee152cb749eb6f6339p948, + -0x1.4924924924926p9 + }, + { // Entry 529 + 0x1.a178d253fc9dfeee152cb749eb6f6339p948, + 0x1.4924924924926p9 + }, + { // Entry 530 + 0x1.6dde4c855f8f0f60274b5c37930499f5p935, + -0x1.4492492492494p9 + }, + { // Entry 531 + 0x1.6dde4c855f8f0f60274b5c37930499f5p935, + 0x1.4492492492494p9 + }, + { // Entry 532 + 0x1.40a4b9c271c8c4271fbcc3df336e0edbp922, + -0x1.4000000000002p9 + }, + { // Entry 533 + 0x1.40a4b9c271c8c4271fbcc3df336e0edbp922, + 0x1.4000000000002p9 + }, + { // Entry 534 + 0x1.p0, + -0x1.0p-1074 + }, + { // Entry 535 + 0x1.p0, + 0x1.0p-1074 + }, + { // Entry 536 + 0x1.p0, + -0.0 + }, + { // Entry 537 + 0x1.p0, + 0x1.0p-1074 + }, + { // Entry 538 + 0x1.p0, + -0x1.0p-1074 + }, + { // Entry 539 + 0x1.01d86cfadd84bed563ca81e639d82de4p0, + 0x1.eb851eb851eb7p-4 + }, + { // Entry 540 + 0x1.01d86cfadd84bed563ca81e639d82de4p0, + -0x1.eb851eb851eb7p-4 + }, + { // Entry 541 + 0x1.01d86cfadd84bef42effbee90fd3b265p0, + 0x1.eb851eb851eb8p-4 + }, + { // Entry 542 + 0x1.01d86cfadd84bef42effbee90fd3b265p0, + -0x1.eb851eb851eb8p-4 + }, + { // Entry 543 + 0x1.01d86cfadd84bf12fa34fbebe5d038bep0, + 0x1.eb851eb851eb9p-4 + }, + { // Entry 544 + 0x1.01d86cfadd84bf12fa34fbebe5d038bep0, + -0x1.eb851eb851eb9p-4 + }, + { // Entry 545 + 0x1.20ac1862ae8d042fe838523e9530a73ep0, + 0x1.fffffffffffffp-2 + }, + { // Entry 546 + 0x1.20ac1862ae8d042fe838523e9530a73ep0, + -0x1.fffffffffffffp-2 + }, + { // Entry 547 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + 0x1.0p-1 + }, + { // Entry 548 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + -0x1.0p-1 + }, + { // Entry 549 + 0x1.20ac1862ae8d0a70b63e4894edd78b6ep0, + 0x1.0000000000001p-1 + }, + { // Entry 550 + 0x1.20ac1862ae8d0a70b63e4894edd78b6ep0, + -0x1.0000000000001p-1 + }, + { // Entry 551 + 0x1.8b07551d9f54fb5bed45e8a4d5a91742p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 552 + 0x1.8b07551d9f54fb5bed45e8a4d5a91742p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 553 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + 0x1.0p0 + }, + { // Entry 554 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + -0x1.0p0 + }, + { // Entry 555 + 0x1.8b07551d9f5517905cec5ebb19c4fa39p0, + 0x1.0000000000001p0 + }, + { // Entry 556 + 0x1.8b07551d9f5517905cec5ebb19c4fa39p0, + -0x1.0000000000001p0 + }, + { // Entry 557 + 0x1.ab5adb9c435e4cc33d1386d805bcc667p30, + 0x1.5ffffffffffffp4 + }, + { // Entry 558 + 0x1.ab5adb9c435e4cc33d1386d805bcc667p30, + -0x1.5ffffffffffffp4 + }, + { // Entry 559 + 0x1.ab5adb9c435ff81e18afca372828a676p30, + 0x1.6p4 + }, + { // Entry 560 + 0x1.ab5adb9c435ff81e18afca372828a676p30, + -0x1.6p4 + }, + { // Entry 561 + 0x1.ab5adb9c4361a378f44c0d97f5ef6222p30, + 0x1.6000000000001p4 + }, + { // Entry 562 + 0x1.ab5adb9c4361a378f44c0d97f5ef6222p30, + -0x1.6000000000001p4 + }, + { // Entry 563 + 0x1.226af33b1fdae7ecca102ad6b7f98a06p32, + 0x1.6ffffffffffffp4 + }, + { // Entry 564 + 0x1.226af33b1fdae7ecca102ad6b7f98a06p32, + -0x1.6ffffffffffffp4 + }, + { // Entry 565 + 0x1.226af33b1fdc0a57bd4b4ab2311b5cdfp32, + 0x1.7p4 + }, + { // Entry 566 + 0x1.226af33b1fdc0a57bd4b4ab2311b5cdfp32, + -0x1.7p4 + }, + { // Entry 567 + 0x1.226af33b1fdd2cc2b0866a8ecca822f4p32, + 0x1.7000000000001p4 + }, + { // Entry 568 + 0x1.226af33b1fdd2cc2b0866a8ecca822f4p32, + -0x1.7000000000001p4 + }, + { // Entry 569 + 0x1.fffffffffffb9ede67b7a313295faa73p51, + 0x1.25e4f7b2737f9p5 + }, + { // Entry 570 + 0x1.fffffffffffb9ede67b7a313295faa73p51, + -0x1.25e4f7b2737f9p5 + }, + { // Entry 571 + 0x1.ffffffffffff9ede67b7a30e671c79e2p51, + 0x1.25e4f7b2737fap5 + }, + { // Entry 572 + 0x1.ffffffffffff9ede67b7a30e671c79e2p51, + -0x1.25e4f7b2737fap5 + }, + { // Entry 573 + 0x1.000000000001cf6f33dbd188d26ca4a9p52, + 0x1.25e4f7b2737fbp5 + }, + { // Entry 574 + 0x1.000000000001cf6f33dbd188d26ca4a9p52, + -0x1.25e4f7b2737fbp5 + }, + { // Entry 575 + 0x1.6a09e667f3b73b2e9b132d51434e682dp52, + 0x1.28aac01252c6cp5 + }, + { // Entry 576 + 0x1.6a09e667f3b73b2e9b132d51434e682dp52, + -0x1.28aac01252c6cp5 + }, + { // Entry 577 + 0x1.6a09e667f3ba0f4267e314c28dbf6b23p52, + 0x1.28aac01252c6dp5 + }, + { // Entry 578 + 0x1.6a09e667f3ba0f4267e314c28dbf6b23p52, + -0x1.28aac01252c6dp5 + }, + { // Entry 579 + 0x1.6a09e667f3bce35634b2fc39805807b9p52, + 0x1.28aac01252c6ep5 + }, + { // Entry 580 + 0x1.6a09e667f3bce35634b2fc39805807b9p52, + -0x1.28aac01252c6ep5 + }, + { // Entry 581 + 0x1.ffffffffff93ae594e9be425a010bdecp1023, + 0x1.633ce8fb9f87cp9 + }, + { // Entry 582 + 0x1.ffffffffff93ae594e9be425a010bdecp1023, + -0x1.633ce8fb9f87cp9 + }, + { // Entry 583 + 0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + 0x1.633ce8fb9f87dp9 + }, + { // Entry 584 + 0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + -0x1.633ce8fb9f87dp9 + }, + { // Entry 585 + HUGE_VAL, + 0x1.633ce8fb9f87ep9 + }, + { // Entry 586 + HUGE_VAL, + -0x1.633ce8fb9f87ep9 + }, + { // Entry 587 + HUGE_VAL, + -0x1.633ce8fb9f87ep9 + }, + { // Entry 588 + HUGE_VAL, + 0x1.633ce8fb9f87ep9 + }, + { // Entry 589 + 0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + -0x1.633ce8fb9f87dp9 + }, + { // Entry 590 + 0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + 0x1.633ce8fb9f87dp9 + }, + { // Entry 591 + 0x1.ffffffffff93ae594e9be425a010bdecp1023, + -0x1.633ce8fb9f87cp9 + }, + { // Entry 592 + 0x1.ffffffffff93ae594e9be425a010bdecp1023, + 0x1.633ce8fb9f87cp9 + }, + { // Entry 593 + 0x1.0000000000000007ffffffffffff800ap0, + 0x1.fffffffffffffp-31 + }, + { // Entry 594 + 0x1.0000000000000007ffffffffffff800ap0, + -0x1.fffffffffffffp-31 + }, + { // Entry 595 + 0x1.0000000000000008000000000000000ap0, + 0x1.0p-30 + }, + { // Entry 596 + 0x1.0000000000000008000000000000000ap0, + -0x1.0p-30 + }, + { // Entry 597 + 0x1.0000000000000008000000000001000ap0, + 0x1.0000000000001p-30 + }, + { // Entry 598 + 0x1.0000000000000008000000000001000ap0, + -0x1.0000000000001p-30 + }, + { // Entry 599 + 0x1.0000000200000000aaaa8aaac16c016cp0, + 0x1.fffffffffffffp-16 + }, + { // Entry 600 + 0x1.0000000200000000aaaa8aaac16c016cp0, + -0x1.fffffffffffffp-16 + }, + { // Entry 601 + 0x1.0000000200000000aaaaaaaac16c16c1p0, + 0x1.0p-15 + }, + { // Entry 602 + 0x1.0000000200000000aaaaaaaac16c16c1p0, + -0x1.0p-15 + }, + { // Entry 603 + 0x1.0000000200000000aaaaeaaac16c416cp0, + 0x1.0000000000001p-15 + }, + { // Entry 604 + 0x1.0000000200000000aaaaeaaac16c416cp0, + -0x1.0000000000001p-15 + }, + { // Entry 605 + 0x1.0008000aaab05b06d073fbf35675d3c7p0, + 0x1.fffffffffffffp-7 + }, + { // Entry 606 + 0x1.0008000aaab05b06d073fbf35675d3c7p0, + -0x1.fffffffffffffp-7 + }, + { // Entry 607 + 0x1.0008000aaab05b0750755149bcdca034p0, + 0x1.0p-6 + }, + { // Entry 608 + 0x1.0008000aaab05b0750755149bcdca034p0, + -0x1.0p-6 + }, + { // Entry 609 + 0x1.0008000aaab05b085077fbf689aa450ep0, + 0x1.0000000000001p-6 + }, + { // Entry 610 + 0x1.0008000aaab05b085077fbf689aa450ep0, + -0x1.0000000000001p-6 + }, + { // Entry 611 + 0x1.002000aaac16c30a31d59c22178e80d2p0, + 0x1.fffffffffffffp-6 + }, + { // Entry 612 + 0x1.002000aaac16c30a31d59c22178e80d2p0, + -0x1.fffffffffffffp-6 + }, + { // Entry 613 + 0x1.002000aaac16c30c31eaf1bbb1901947p0, + 0x1.0p-5 + }, + { // Entry 614 + 0x1.002000aaac16c30c31eaf1bbb1901947p0, + -0x1.0p-5 + }, + { // Entry 615 + 0x1.002000aaac16c31032159ceee5937a38p0, + 0x1.0000000000001p-5 + }, + { // Entry 616 + 0x1.002000aaac16c31032159ceee5937a38p0, + -0x1.0000000000001p-5 + }, + { // Entry 617 + 0x1.00800aab05b1fb1c50429ea2694ccac8p0, + 0x1.fffffffffffffp-5 + }, + { // Entry 618 + 0x1.00800aab05b1fb1c50429ea2694ccac8p0, + -0x1.fffffffffffffp-5 + }, + { // Entry 619 + 0x1.00800aab05b1fb245198050937bb0368p0, + 0x1.0p-4 + }, + { // Entry 620 + 0x1.00800aab05b1fb245198050937bb0368p0, + -0x1.0p-4 + }, + { // Entry 621 + 0x1.00800aab05b1fb345442d1d6d4983508p0, + 0x1.0000000000001p-4 + }, + { // Entry 622 + 0x1.00800aab05b1fb345442d1d6d4983508p0, + -0x1.0000000000001p-4 + }, + { // Entry 623 + 0x1.0200aac16db6edcc80b33b1062033cc7p0, + 0x1.fffffffffffffp-4 + }, + { // Entry 624 + 0x1.0200aac16db6edcc80b33b1062033cc7p0, + -0x1.fffffffffffffp-4 + }, + { // Entry 625 + 0x1.0200aac16db6edec960cd51207e46c1ep0, + 0x1.0p-3 + }, + { // Entry 626 + 0x1.0200aac16db6edec960cd51207e46c1ep0, + -0x1.0p-3 + }, + { // Entry 627 + 0x1.0200aac16db6ee2cc0c0091553a9d0cep0, + 0x1.0000000000001p-3 + }, + { // Entry 628 + 0x1.0200aac16db6ee2cc0c0091553a9d0cep0, + -0x1.0000000000001p-3 + }, + { // Entry 629 + 0x1.080ab05ca6145e5b88296b187f06805fp0, + 0x1.fffffffffffffp-3 + }, + { // Entry 630 + 0x1.080ab05ca6145e5b88296b187f06805fp0, + -0x1.fffffffffffffp-3 + }, + { // Entry 631 + 0x1.080ab05ca6145edcde90399c8713a384p0, + 0x1.0p-2 + }, + { // Entry 632 + 0x1.080ab05ca6145edcde90399c8713a384p0, + -0x1.0p-2 + }, + { // Entry 633 + 0x1.080ab05ca6145fdf8b5dd6a4973a4a4ep0, + 0x1.0000000000001p-2 + }, + { // Entry 634 + 0x1.080ab05ca6145fdf8b5dd6a4973a4a4ep0, + -0x1.0000000000001p-2 + }, + { // Entry 635 + 0x1.e18fa0df2d9ba58f58936095ae8d9969p1, + 0x1.fffffffffffffp0 + }, + { // Entry 636 + 0x1.e18fa0df2d9ba58f58936095ae8d9969p1, + -0x1.fffffffffffffp0 + }, + { // Entry 637 + 0x1.e18fa0df2d9bc29327f717774d0c0661p1, + 0x1.0p1 + }, + { // Entry 638 + 0x1.e18fa0df2d9bc29327f717774d0c0661p1, + -0x1.0p1 + }, + { // Entry 639 + 0x1.e18fa0df2d9bfc9ac6be853a8fad8f33p1, + 0x1.0000000000001p1 + }, + { // Entry 640 + 0x1.e18fa0df2d9bfc9ac6be853a8fad8f33p1, + -0x1.0000000000001p1 + }, + { // Entry 641 + 0x1.b4ee858de3e7c9cd569e3d719b38d342p4, + 0x1.fffffffffffffp1 + }, + { // Entry 642 + 0x1.b4ee858de3e7c9cd569e3d719b38d342p4, + -0x1.fffffffffffffp1 + }, + { // Entry 643 + 0x1.b4ee858de3e80061c6a51dddf960f317p4, + 0x1.0p2 + }, + { // Entry 644 + 0x1.b4ee858de3e80061c6a51dddf960f317p4, + -0x1.0p2 + }, + { // Entry 645 + 0x1.b4ee858de3e86d8aa6b2deb6ca2c6104p4, + 0x1.0000000000001p2 + }, + { // Entry 646 + 0x1.b4ee858de3e86d8aa6b2deb6ca2c6104p4, + -0x1.0000000000001p2 + }, + { // Entry 647 + 0x1.749eaa93f4e703e92c604cbb82b0787ap10, + 0x1.fffffffffffffp2 + }, + { // Entry 648 + 0x1.749eaa93f4e703e92c604cbb82b0787ap10, + -0x1.fffffffffffffp2 + }, + { // Entry 649 + 0x1.749eaa93f4e76110d5a587e50e4d3dc3p10, + 0x1.0p3 + }, + { // Entry 650 + 0x1.749eaa93f4e76110d5a587e50e4d3dc3p10, + -0x1.0p3 + }, + { // Entry 651 + 0x1.749eaa93f4e81b60282ffe386b648851p10, + 0x1.0000000000001p3 + }, + { // Entry 652 + 0x1.749eaa93f4e81b60282ffe386b648851p10, + -0x1.0000000000001p3 + }, + { // Entry 653 + 0x1.0f2ebd0a800543a63cca0142899e262fp22, + 0x1.fffffffffffffp3 + }, + { // Entry 654 + 0x1.0f2ebd0a800543a63cca0142899e262fp22, + -0x1.fffffffffffffp3 + }, + { // Entry 655 + 0x1.0f2ebd0a8005cb3d9b4f414186aba4d7p22, + 0x1.0p4 + }, + { // Entry 656 + 0x1.0f2ebd0a8005cb3d9b4f414186aba4d7p22, + -0x1.0p4 + }, + { // Entry 657 + 0x1.0f2ebd0a8006da6c5859c1404c29aff0p22, + 0x1.0000000000001p4 + }, + { // Entry 658 + 0x1.0f2ebd0a8006da6c5859c1404c29aff0p22, + -0x1.0000000000001p4 + }, + { // Entry 659 + 0x1.1f43fcc4b661a8944ac389c44c1372ffp45, + 0x1.fffffffffffffp4 + }, + { // Entry 660 + 0x1.1f43fcc4b661a8944ac389c44c1372ffp45, + -0x1.fffffffffffffp4 + }, + { // Entry 661 + 0x1.1f43fcc4b662c7d8478840268449bc25p45, + 0x1.0p5 + }, + { // Entry 662 + 0x1.1f43fcc4b662c7d8478840268449bc25p45, + -0x1.0p5 + }, + { // Entry 663 + 0x1.1f43fcc4b66506604111acee528244bfp45, + 0x1.0000000000001p5 + }, + { // Entry 664 + 0x1.1f43fcc4b66506604111acee528244bfp45, + -0x1.0000000000001p5 + }, + { // Entry 665 + 0x1.425982cf597a4d52c89ea857bbaa807ap91, + 0x1.fffffffffffffp5 + }, + { // Entry 666 + 0x1.425982cf597a4d52c89ea857bbaa807ap91, + -0x1.fffffffffffffp5 + }, + { // Entry 667 + 0x1.425982cf597cd205ce3d5b4edb031756p91, + 0x1.0p6 + }, + { // Entry 668 + 0x1.425982cf597cd205ce3d5b4edb031756p91, + -0x1.0p6 + }, + { // Entry 669 + 0x1.425982cf5981db6bd97ac14c35e666c6p91, + 0x1.0000000000001p6 + }, + { // Entry 670 + 0x1.425982cf5981db6bd97ac14c35e666c6p91, + -0x1.0000000000001p6 + }, + { // Entry 671 + 0x1.95e54c5dd41b20600dd601a0ae672ff4p183, + 0x1.fffffffffffffp6 + }, + { // Entry 672 + 0x1.95e54c5dd41b20600dd601a0ae672ff4p183, + -0x1.fffffffffffffp6 + }, + { // Entry 673 + 0x1.95e54c5dd42177f53f4d5219df11ca3bp183, + 0x1.0p7 + }, + { // Entry 674 + 0x1.95e54c5dd42177f53f4d5219df11ca3bp183, + -0x1.0p7 + }, + { // Entry 675 + 0x1.95e54c5dd42e271fa23bf3585b655060p183, + 0x1.0000000000001p7 + }, + { // Entry 676 + 0x1.95e54c5dd42e271fa23bf3585b655060p183, + -0x1.0000000000001p7 + }, + { // Entry 677 + 0x1.41c7a8814be192a5df25b042af824efdp368, + 0x1.fffffffffffffp7 + }, + { // Entry 678 + 0x1.41c7a8814be192a5df25b042af824efdp368, + -0x1.fffffffffffffp7 + }, + { // Entry 679 + 0x1.41c7a8814beba0e323300f777da65854p368, + 0x1.0p8 + }, + { // Entry 680 + 0x1.41c7a8814beba0e323300f777da65854p368, + -0x1.0p8 + }, + { // Entry 681 + 0x1.41c7a8814bffbd5dab44ced26faccbfbp368, + 0x1.0000000000001p8 + }, + { // Entry 682 + 0x1.41c7a8814bffbd5dab44ced26faccbfbp368, + -0x1.0000000000001p8 + }, + { // Entry 683 + 0x1.9476504ba8399f5b97cae35beb78c3c5p737, + 0x1.fffffffffffffp8 + }, + { // Entry 684 + 0x1.9476504ba8399f5b97cae35beb78c3c5p737, + -0x1.fffffffffffffp8 + }, + { // Entry 685 + 0x1.9476504ba852e6c09c8567c01c5a6648p737, + 0x1.0p9 + }, + { // Entry 686 + 0x1.9476504ba852e6c09c8567c01c5a6648p737, + -0x1.0p9 + }, + { // Entry 687 + 0x1.9476504ba885758aa5fa7545e10e8e46p737, + 0x1.0000000000001p9 + }, + { // Entry 688 + 0x1.9476504ba885758aa5fa7545e10e8e46p737, + -0x1.0000000000001p9 + }, + { // Entry 689 + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 690 + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 691 + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 692 + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 693 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 694 + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 695 + HUGE_VAL, + 0x1.ffffffffffffep1023 + }, + { // Entry 696 + 0x1.72f147fee40004f636960fb65616f933p3, + 0x1.921fb54442d18p1 + }, + { // Entry 697 + 0x1.412cc2a8d4e9df8319ceee45d93f21f3p1, + 0x1.921fb54442d18p0 + }, + { // Entry 698 + 0x1.8b07551d9f5517905cec5ebb19c4fa39p0, + 0x1.0000000000001p0 + }, + { // Entry 699 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + 0x1.0p0 + }, + { // Entry 700 + 0x1.8b07551d9f54fb5bed45e8a4d5a91742p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 701 + 0x1.531994ce525b97d489c1beb383943240p0, + 0x1.921fb54442d18p-1 + }, + { // Entry 702 + 0x1.p0, + 0x1.0000000000001p-1022 + }, + { // Entry 703 + 0x1.p0, + 0x1.0p-1022 + }, + { // Entry 704 + 0x1.p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 705 + 0x1.p0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 706 + 0x1.p0, + 0x1.0p-1073 + }, + { // Entry 707 + 0x1.p0, + 0x1.0p-1074 + }, + { // Entry 708 + 0x1.p0, + 0.0 + }, + { // Entry 709 + 0x1.p0, + -0.0 + }, + { // Entry 710 + 0x1.p0, + -0x1.0p-1074 + }, + { // Entry 711 + 0x1.p0, + -0x1.0p-1073 + }, + { // Entry 712 + 0x1.p0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 713 + 0x1.p0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 714 + 0x1.p0, + -0x1.0p-1022 + }, + { // Entry 715 + 0x1.p0, + -0x1.0000000000001p-1022 + }, + { // Entry 716 + 0x1.531994ce525b97d489c1beb383943240p0, + -0x1.921fb54442d18p-1 + }, + { // Entry 717 + 0x1.8b07551d9f54fb5bed45e8a4d5a91742p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 718 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + -0x1.0p0 + }, + { // Entry 719 + 0x1.8b07551d9f5517905cec5ebb19c4fa39p0, + -0x1.0000000000001p0 + }, + { // Entry 720 + 0x1.412cc2a8d4e9df8319ceee45d93f21f3p1, + -0x1.921fb54442d18p0 + }, + { // Entry 721 + 0x1.72f147fee40004f636960fb65616f933p3, + -0x1.921fb54442d18p1 + }, + { // Entry 722 + HUGE_VAL, + -0x1.ffffffffffffep1023 + }, + { // Entry 723 + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 724 + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 725 + 0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + 0x1.633ce8fb9f87dp9 + }, + { // Entry 726 + 0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + -0x1.633ce8fb9f87dp9 + }, + { // Entry 727 + HUGE_VAL, + 0x1.633ce8fb9f87ep9 + }, + { // Entry 728 + HUGE_VAL, + -0x1.633ce8fb9f87ep9 + } +}; diff --git a/tests/math_data/coshf_intel_data.h b/tests/math_data/coshf_intel_data.h new file mode 100644 index 000000000..813b1b3fa --- /dev/null +++ b/tests/math_data/coshf_intel_data.h @@ -0,0 +1,2438 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_coshf_intel_data[] = { + { // Entry 0 + 0x1.2ae06100e62be904fdb5bc85681d5aaep11, + -0x1.0f1fb2p3 + }, + { // Entry 1 + 0x1.2ae06100e62be904fdb5bc85681d5aaep11, + 0x1.0f1fb2p3 + }, + { // Entry 2 + 0x1.0000000000000000000c87785d6188p0, + -0x1.405f90p-38 + }, + { // Entry 3 + 0x1.0000000000000000000c87785d6188p0, + 0x1.405f90p-38 + }, + { // Entry 4 + 0x1.4f1fe6fffd055403a0afa5f61f7ad456p122, + -0x1.561b10p6 + }, + { // Entry 5 + 0x1.4f1fe6fffd055403a0afa5f61f7ad456p122, + 0x1.561b10p6 + }, + { // Entry 6 + 0x1.d2f2227ae4dd65b581071b0f40467c30p122, + -0x1.576ebcp6 + }, + { // Entry 7 + 0x1.d2f2227ae4dd65b581071b0f40467c30p122, + 0x1.576ebcp6 + }, + { // Entry 8 + 0x1.936b41047c7f4ef20acbfc3ab28adde1p7, + -0x1.7fff80p2 + }, + { // Entry 9 + 0x1.936b41047c7f4ef20acbfc3ab28adde1p7, + 0x1.7fff80p2 + }, + { // Entry 10 + 0x1.0000017f58437ac57be86eaf878afddap0, + -0x1.bb06ccp-12 + }, + { // Entry 11 + 0x1.0000017f58437ac57be86eaf878afddap0, + 0x1.bb06ccp-12 + }, + { // Entry 12 + 0x1.fbacf4ca702a97945d7c7d78c0bdad47p8, + -0x1.bb1240p2 + }, + { // Entry 13 + 0x1.fbacf4ca702a97945d7c7d78c0bdad47p8, + 0x1.bb1240p2 + }, + { // Entry 14 + 0x1.0000017fb2c9b9e288983fa06ce62b04p0, + -0x1.bb3b18p-12 + }, + { // Entry 15 + 0x1.0000017fb2c9b9e288983fa06ce62b04p0, + 0x1.bb3b18p-12 + }, + { // Entry 16 + 0x1.0000070003551fecea0dae6d0551de10p0, + -0x1.deef12p-11 + }, + { // Entry 17 + 0x1.0000070003551fecea0dae6d0551de10p0, + 0x1.deef12p-11 + }, + { // Entry 18 + 0x1.01fe2b000874d8917b3a73fd080542f7p0, + -0x1.fec090p-4 + }, + { // Entry 19 + 0x1.01fe2b000874d8917b3a73fd080542f7p0, + 0x1.fec090p-4 + }, + { // Entry 20 + 0x1.0000000000200000000000aaaaaaaaaap0, + 0x1.p-21 + }, + { // Entry 21 + 0x1.0000000000200000000000aaaaaaaaaap0, + -0x1.p-21 + }, + { // Entry 22 + 0x1.p0, + 0x1.p-149 + }, + { // Entry 23 + 0x1.p0, + -0x1.p-149 + }, + { // Entry 24 + 0x1.0000000000000000000020000080p0, + 0x1.000002p-41 + }, + { // Entry 25 + 0x1.0000000000000000000020000080p0, + -0x1.000002p-41 + }, + { // Entry 26 + 0x1.749f1f059aafac3e3ae482f732034f99p10, + 0x1.00000ap3 + }, + { // Entry 27 + 0x1.749f1f059aafac3e3ae482f732034f99p10, + -0x1.00000ap3 + }, + { // Entry 28 + 0x1.080ab13efd4e998566b0693a9a7731a8p0, + 0x1.00000ep-2 + }, + { // Entry 29 + 0x1.080ab13efd4e998566b0693a9a7731a8p0, + -0x1.00000ep-2 + }, + { // Entry 30 + 0x1.0200ab01986c25f1377dd85169c7ccf5p0, + 0x1.000010p-3 + }, + { // Entry 31 + 0x1.0200ab01986c25f1377dd85169c7ccf5p0, + -0x1.000010p-3 + }, + { // Entry 32 + 0x1.e190fd0d6db8db09b5aad2f89bb2ad76p1, + 0x1.000060p1 + }, + { // Entry 33 + 0x1.e190fd0d6db8db09b5aad2f89bb2ad76p1, + -0x1.000060p1 + }, + { // Entry 34 + 0x1.b4f4eaff04f265d5f55aecad94412877p4, + 0x1.0000f0p2 + }, + { // Entry 35 + 0x1.b4f4eaff04f265d5f55aecad94412877p4, + -0x1.0000f0p2 + }, + { // Entry 36 + 0x1.76112f028a8233c6be52ddd0d11dd50fp10, + 0x1.001fc2p3 + }, + { // Entry 37 + 0x1.76112f028a8233c6be52ddd0d11dd50fp10, + -0x1.001fc2p3 + }, + { // Entry 38 + 0x1.e203bf2a6f104d990d9610afb6c8b014p1, + 0x1.0020p1 + }, + { // Entry 39 + 0x1.e203bf2a6f104d990d9610afb6c8b014p1, + -0x1.0020p1 + }, + { // Entry 40 + 0x1.080cc501591cc669c4cc8cd1a5891727p0, + 0x1.0020f0p-2 + }, + { // Entry 41 + 0x1.080cc501591cc669c4cc8cd1a5891727p0, + -0x1.0020f0p-2 + }, + { // Entry 42 + 0x1.7d15790923fc59b8d7d10a8c5d3adc48p10, + 0x1.00b8p3 + }, + { // Entry 43 + 0x1.7d15790923fc59b8d7d10a8c5d3adc48p10, + -0x1.00b8p3 + }, + { // Entry 44 + 0x1.00818500020c06cedbd38d34eee6ab54p0, + 0x1.0179p-4 + }, + { // Entry 45 + 0x1.00818500020c06cedbd38d34eee6ab54p0, + -0x1.0179p-4 + }, + { // Entry 46 + 0x1.8d17e7030b8e9690e01964bd2c8be94bp0, + 0x1.01bfc2p0 + }, + { // Entry 47 + 0x1.8d17e7030b8e9690e01964bd2c8be94bp0, + -0x1.01bfc2p0 + }, + { // Entry 48 + 0x1.8e34430073e0e9199e68ad3bca9ed793p10, + 0x1.0220p3 + }, + { // Entry 49 + 0x1.8e34430073e0e9199e68ad3bca9ed793p10, + -0x1.0220p3 + }, + { // Entry 50 + 0x1.93dc630008b669187e515dc7aa42f486p0, + 0x1.0760p0 + }, + { // Entry 51 + 0x1.93dc630008b669187e515dc7aa42f486p0, + -0x1.0760p0 + }, + { // Entry 52 + 0x1.bf1abedb9fcde794ba793b6b505eb17bp22, + 0x1.08p4 + }, + { // Entry 53 + 0x1.bf1abedb9fcde794ba793b6b505eb17bp22, + -0x1.08p4 + }, + { // Entry 54 + 0x1.89acdf26f99012ec527c5ea1162aa095p46, + 0x1.0810eep5 + }, + { // Entry 55 + 0x1.89acdf26f99012ec527c5ea1162aa095p46, + -0x1.0810eep5 + }, + { // Entry 56 + 0x1.9506d202339691daa92242c890d53037p0, + 0x1.0854p0 + }, + { // Entry 57 + 0x1.9506d202339691daa92242c890d53037p0, + -0x1.0854p0 + }, + { // Entry 58 + 0x1.97a75b0008810be285110dcff331ac17p0, + 0x1.0a759cp0 + }, + { // Entry 59 + 0x1.97a75b0008810be285110dcff331ac17p0, + -0x1.0a759cp0 + }, + { // Entry 60 + 0x1.a229dffff61e1494787d29ddf23b0a5cp0, + 0x1.12c4p0 + }, + { // Entry 61 + 0x1.a229dffff61e1494787d29ddf23b0a5cp0, + -0x1.12c4p0 + }, + { // Entry 62 + 0x1.a308650a09916a1f65dd2e3040dac8e6p0, + 0x1.1370p0 + }, + { // Entry 63 + 0x1.a308650a09916a1f65dd2e3040dac8e6p0, + -0x1.1370p0 + }, + { // Entry 64 + 0x1.af7c88b59f8cb90273d971210f9ebaf1p0, + 0x1.1cd4p0 + }, + { // Entry 65 + 0x1.af7c88b59f8cb90273d971210f9ebaf1p0, + -0x1.1cd4p0 + }, + { // Entry 66 + 0x1.b145deddd4b7287e0976b134aaea1e59p0, + 0x1.1e24p0 + }, + { // Entry 67 + 0x1.b145deddd4b7287e0976b134aaea1e59p0, + -0x1.1e24p0 + }, + { // Entry 68 + 0x1.000002802632eecaa00848be2e43e7e8p0, + 0x1.1e4004p-11 + }, + { // Entry 69 + 0x1.000002802632eecaa00848be2e43e7e8p0, + -0x1.1e4004p-11 + }, + { // Entry 70 + 0x1.00000280ae0c9376d02c0ee2eec07b9cp0, + 0x1.1e5e62p-11 + }, + { // Entry 71 + 0x1.00000280ae0c9376d02c0ee2eec07b9cp0, + -0x1.1e5e62p-11 + }, + { // Entry 72 + 0x1.000a0d419b4ad7325cced6e3df2432b7p0, + 0x1.1ef4p-6 + }, + { // Entry 73 + 0x1.000a0d419b4ad7325cced6e3df2432b7p0, + -0x1.1ef4p-6 + }, + { // Entry 74 + 0x1.b267ed723f88f82136ba366db2171548p0, + 0x1.1ef8p0 + }, + { // Entry 75 + 0x1.b267ed723f88f82136ba366db2171548p0, + -0x1.1ef8p0 + }, + { // Entry 76 + 0x1.d7fd050e42bfb9da524bda1b668ed20ep24, + 0x1.1f0c1cp4 + }, + { // Entry 77 + 0x1.d7fd050e42bfb9da524bda1b668ed20ep24, + -0x1.1f0c1cp4 + }, + { // Entry 78 + 0x1.02b05b0000fe430b8ec0ab0008934320p0, + 0x1.2892c0p-3 + }, + { // Entry 79 + 0x1.02b05b0000fe430b8ec0ab0008934320p0, + -0x1.2892c0p-3 + }, + { // Entry 80 + 0x1.b56d7b0019ebe1980a88bfc98b96f903p5, + 0x1.2c733cp2 + }, + { // Entry 81 + 0x1.b56d7b0019ebe1980a88bfc98b96f903p5, + -0x1.2c733cp2 + }, + { // Entry 82 + 0x1.2dde070027e555af93bf4b3a296fe1e4p0, + 0x1.2e16d8p-1 + }, + { // Entry 83 + 0x1.2dde070027e555af93bf4b3a296fe1e4p0, + -0x1.2e16d8p-1 + }, + { // Entry 84 + 0x1.0bbbe7000001e6b3b455efdab53e4ee4p0, + 0x1.34de30p-2 + }, + { // Entry 85 + 0x1.0bbbe7000001e6b3b455efdab53e4ee4p0, + -0x1.34de30p-2 + }, + { // Entry 86 + 0x1.d6daeadc0aa386a2df7fee2f9b758bdbp0, + 0x1.38p0 + }, + { // Entry 87 + 0x1.d6daeadc0aa386a2df7fee2f9b758bdbp0, + -0x1.38p0 + }, + { // Entry 88 + 0x1.ec7e880bf432acf0cdb3055c89eca119p0, + 0x1.459506p0 + }, + { // Entry 89 + 0x1.ec7e880bf432acf0cdb3055c89eca119p0, + -0x1.459506p0 + }, + { // Entry 90 + 0x1.9a74150aa235ee7c81eb0c8a84e5756ep2, + 0x1.45cf6ap1 + }, + { // Entry 91 + 0x1.9a74150aa235ee7c81eb0c8a84e5756ep2, + -0x1.45cf6ap1 + }, + { // Entry 92 + 0x1.f7c601c26a0aab07acb3aed129529860p116, + 0x1.4719c6p6 + }, + { // Entry 93 + 0x1.f7c601c26a0aab07acb3aed129529860p116, + -0x1.4719c6p6 + }, + { // Entry 94 + 0x1.feb75137e73fc5511a1cdda1ce6ea73bp116, + 0x1.4727cap6 + }, + { // Entry 95 + 0x1.feb75137e73fc5511a1cdda1ce6ea73bp116, + -0x1.4727cap6 + }, + { // Entry 96 + 0x1.392fe100303ac2c0f653a3ac40bb345ep0, + 0x1.5028p-1 + }, + { // Entry 97 + 0x1.392fe100303ac2c0f653a3ac40bb345ep0, + -0x1.5028p-1 + }, + { // Entry 98 + 0x1.7eca310b2cc18f1b14012b1aba75d191p6, + 0x1.5046a4p2 + }, + { // Entry 99 + 0x1.7eca310b2cc18f1b14012b1aba75d191p6, + -0x1.5046a4p2 + }, + { // Entry 100 + 0x1.03b968ffff0215bfacc70c1cc8cbeb01p0, + 0x1.5cea44p-3 + }, + { // Entry 101 + 0x1.03b968ffff0215bfacc70c1cc8cbeb01p0, + -0x1.5cea44p-3 + }, + { // Entry 102 + 0x1.fbdabac97ac130517ca085001de97a8dp6, + 0x1.625ebcp2 + }, + { // Entry 103 + 0x1.fbdabac97ac130517ca085001de97a8dp6, + -0x1.625ebcp2 + }, + { // Entry 104 + 0x1.ffe308fff60483750a8a66c93e16da96p126, + 0x1.62e3f6p6 + }, + { // Entry 105 + 0x1.ffe308fff60483750a8a66c93e16da96p126, + -0x1.62e3f6p6 + }, + { // Entry 106 + 0x1.0021063836b49dcc89e4c5aab5e911d1p127, + 0x1.62e4b4p6 + }, + { // Entry 107 + 0x1.0021063836b49dcc89e4c5aab5e911d1p127, + -0x1.62e4b4p6 + }, + { // Entry 108 + 0x1.03dd38ffff0116b4128076a495ccd814p0, + 0x1.636444p-3 + }, + { // Entry 109 + 0x1.03dd38ffff0116b4128076a495ccd814p0, + -0x1.636444p-3 + }, + { // Entry 110 + 0x1.3887c59fb04d434e609610c148d9b8cep127, + 0x1.63b080p6 + }, + { // Entry 111 + 0x1.3887c59fb04d434e609610c148d9b8cep127, + -0x1.63b080p6 + }, + { // Entry 112 + 0x1.f40a2c6c7e4eec4c0ed1fae32d255e23p127, + 0x1.6591c4p6 + }, + { // Entry 113 + 0x1.f40a2c6c7e4eec4c0ed1fae32d255e23p127, + -0x1.6591c4p6 + }, + { // Entry 114 + 0x1.ff70ec400b9c2d8dee878e30b56339bep127, + 0x1.65a8dap6 + }, + { // Entry 115 + 0x1.ff70ec400b9c2d8dee878e30b56339bep127, + -0x1.65a8dap6 + }, + { // Entry 116 + 0x1.00fe75ffffa2579f73eddb26932641adp0, + 0x1.68d502p-4 + }, + { // Entry 117 + 0x1.00fe75ffffa2579f73eddb26932641adp0, + -0x1.68d502p-4 + }, + { // Entry 118 + 0x1.00000100034d4d82cc659ba42fd9eee7p0, + 0x1.6a0c3cp-12 + }, + { // Entry 119 + 0x1.00000100034d4d82cc659ba42fd9eee7p0, + -0x1.6a0c3cp-12 + }, + { // Entry 120 + 0x1.0437b0ffff6fc3960703849d04864d19p0, + 0x1.733eaap-3 + }, + { // Entry 121 + 0x1.0437b0ffff6fc3960703849d04864d19p0, + -0x1.733eaap-3 + }, + { // Entry 122 + 0x1.00045900028b76cee4330cc36105004cp0, + 0x1.797124p-7 + }, + { // Entry 123 + 0x1.00045900028b76cee4330cc36105004cp0, + -0x1.797124p-7 + }, + { // Entry 124 + 0x1.11aeed0000fda977f1d894606c13127ep0, + 0x1.7a730cp-2 + }, + { // Entry 125 + 0x1.11aeed0000fda977f1d894606c13127ep0, + -0x1.7a730cp-2 + }, + { // Entry 126 + 0x1.01182efffcd14b33d45c900ed03e5b8dp0, + 0x1.7a9e50p-4 + }, + { // Entry 127 + 0x1.01182efffcd14b33d45c900ed03e5b8dp0, + -0x1.7a9e50p-4 + }, + { // Entry 128 + 0x1.046a6700030d4af8985007e85b4af3a7p0, + 0x1.7bd6b6p-3 + }, + { // Entry 129 + 0x1.046a6700030d4af8985007e85b4af3a7p0, + -0x1.7bd6b6p-3 + }, + { // Entry 130 + 0x1.5df91cfff86f7210fa16368df0698fa9p16, + 0x1.8313eap3 + }, + { // Entry 131 + 0x1.5df91cfff86f7210fa16368df0698fa9p16, + -0x1.8313eap3 + }, + { // Entry 132 + 0x1.049b050001c808a9415533afc7a84886p0, + 0x1.83e5a8p-3 + }, + { // Entry 133 + 0x1.049b050001c808a9415533afc7a84886p0, + -0x1.83e5a8p-3 + }, + { // Entry 134 + 0x1.04b1a500027f89a1b0fe4148983e18a2p0, + 0x1.87970cp-3 + }, + { // Entry 135 + 0x1.04b1a500027f89a1b0fe4148983e18a2p0, + -0x1.87970cp-3 + }, + { // Entry 136 + 0x1.982aa4f9d6ecf2daf29ef6311c7db8e1p16, + 0x1.88p3 + }, + { // Entry 137 + 0x1.982aa4f9d6ecf2daf29ef6311c7db8e1p16, + -0x1.88p3 + }, + { // Entry 138 + 0x1.d501950e8ef23c5acbb78e6bf7a4441cp7, + 0x1.89a39ep2 + }, + { // Entry 139 + 0x1.d501950e8ef23c5acbb78e6bf7a4441cp7, + -0x1.89a39ep2 + }, + { // Entry 140 + 0x1.dab77d041ed5ae09f1194336e1dfeca4p16, + 0x1.8cd558p3 + }, + { // Entry 141 + 0x1.dab77d041ed5ae09f1194336e1dfeca4p16, + -0x1.8cd558p3 + }, + { // Entry 142 + 0x1.0013770002a06bda5ded556406e34a54p0, + 0x1.8f4f3ep-6 + }, + { // Entry 143 + 0x1.0013770002a06bda5ded556406e34a54p0, + -0x1.8f4f3ep-6 + }, + { // Entry 144 + 0x1.014a8c000001724bcf21bcc9cd4ef647p0, + 0x1.9b3716p-4 + }, + { // Entry 145 + 0x1.014a8c000001724bcf21bcc9cd4ef647p0, + -0x1.9b3716p-4 + }, + { // Entry 146 + 0x1.92c1df0aa08c8949d2dbfb61712636eap3, + 0x1.9cb164p1 + }, + { // Entry 147 + 0x1.92c1df0aa08c8949d2dbfb61712636eap3, + -0x1.9cb164p1 + }, + { // Entry 148 + 0x1.5b2598fffffe38fde28ab3e6f6c93922p0, + 0x1.a4299cp-1 + }, + { // Entry 149 + 0x1.5b2598fffffe38fde28ab3e6f6c93922p0, + -0x1.a4299cp-1 + }, + { // Entry 150 + 0x1.056ea5020eb4607e8800e56175b95427p0, + 0x1.a52932p-3 + }, + { // Entry 151 + 0x1.056ea5020eb4607e8800e56175b95427p0, + -0x1.a52932p-3 + }, + { // Entry 152 + 0x1.16928f0000bf926291ed9efa582cceabp0, + 0x1.aaeae4p-2 + }, + { // Entry 153 + 0x1.16928f0000bf926291ed9efa582cceabp0, + -0x1.aaeae4p-2 + }, + { // Entry 154 + 0x1.01731affff02859bd1fc2e3d3d5c6afcp0, + 0x1.b3b0fcp-4 + }, + { // Entry 155 + 0x1.01731affff02859bd1fc2e3d3d5c6afcp0, + -0x1.b3b0fcp-4 + }, + { // Entry 156 + 0x1.fc3b5ac8614a73e8394fe9e1bf341a5dp3, + 0x1.ba8aa8p1 + }, + { // Entry 157 + 0x1.fc3b5ac8614a73e8394fe9e1bf341a5dp3, + -0x1.ba8aa8p1 + }, + { // Entry 158 + 0x1.fcb698cebefbdde087f940e13637b997p3, + 0x1.baa9bep1 + }, + { // Entry 159 + 0x1.fcb698cebefbdde087f940e13637b997p3, + -0x1.baa9bep1 + }, + { // Entry 160 + 0x1.0062890000000a2005177a360b8dafadp0, + 0x1.c12a50p-5 + }, + { // Entry 161 + 0x1.0062890000000a2005177a360b8dafadp0, + -0x1.c12a50p-5 + }, + { // Entry 162 + 0x1.861ce90a2cd945e2796a70034a062f90p1, + 0x1.c78c2cp0 + }, + { // Entry 163 + 0x1.861ce90a2cd945e2796a70034a062f90p1, + -0x1.c78c2cp0 + }, + { // Entry 164 + 0x1.0000196200326194f36f87a9a10954bcp0, + 0x1.c7fffep-10 + }, + { // Entry 165 + 0x1.0000196200326194f36f87a9a10954bcp0, + -0x1.c7fffep-10 + }, + { // Entry 166 + 0x1.1a6044ffff019be7fe431534c1e1e91cp0, + 0x1.ccef52p-2 + }, + { // Entry 167 + 0x1.1a6044ffff019be7fe431534c1e1e91cp0, + -0x1.ccef52p-2 + }, + { // Entry 168 + 0x1.908de10afd9f5aa0badc075a8aa14ccfp1, + 0x1.ceb1c0p0 + }, + { // Entry 169 + 0x1.908de10afd9f5aa0badc075a8aa14ccfp1, + -0x1.ceb1c0p0 + }, + { // Entry 170 + 0x1.a060ab08be7164a09546b5ce15970e38p1, + 0x1.d9239cp0 + }, + { // Entry 171 + 0x1.a060ab08be7164a09546b5ce15970e38p1, + -0x1.d9239cp0 + }, + { // Entry 172 + 0x1.d344e10e8bcea00ac4844a3448be9a5ep9, + 0x1.e21ff0p2 + }, + { // Entry 173 + 0x1.d344e10e8bcea00ac4844a3448be9a5ep9, + -0x1.e21ff0p2 + }, + { // Entry 174 + 0x1.01dbabfffffdc890992101e9e0230177p0, + 0x1.ed342ap-4 + }, + { // Entry 175 + 0x1.01dbabfffffdc890992101e9e0230177p0, + -0x1.ed342ap-4 + }, + { // Entry 176 + 0x1.75caa702ac31fcaca703cb767e704732p21, + 0x1.f4169ap3 + }, + { // Entry 177 + 0x1.75caa702ac31fcaca703cb767e704732p21, + -0x1.f4169ap3 + }, + { // Entry 178 + 0x1.2d11ceffa73d603eca961e07fbcd0749p89, + 0x1.f45dp5 + }, + { // Entry 179 + 0x1.2d11ceffa73d603eca961e07fbcd0749p89, + -0x1.f45dp5 + }, + { // Entry 180 + 0x1.00001f0200613f54e018eaccc7690671p0, + 0x1.f7fffep-10 + }, + { // Entry 181 + 0x1.00001f0200613f54e018eaccc7690671p0, + -0x1.f7fffep-10 + }, + { // Entry 182 + 0x1.fe8bfd38762490c7f68e80a4bdf3a17dp89, + 0x1.f896a2p5 + }, + { // Entry 183 + 0x1.fe8bfd38762490c7f68e80a4bdf3a17dp89, + -0x1.f896a2p5 + }, + { // Entry 184 + 0x1.d6cfcac57d6baaa29de57c93e576abc5p1, + 0x1.f9fffep0 + }, + { // Entry 185 + 0x1.d6cfcac57d6baaa29de57c93e576abc5p1, + -0x1.f9fffep0 + }, + { // Entry 186 + 0x1.ddbfa30e4771719e07c1da78c0971b46p1, + 0x1.fde37ep0 + }, + { // Entry 187 + 0x1.ddbfa30e4771719e07c1da78c0971b46p1, + -0x1.fde37ep0 + }, + { // Entry 188 + 0x1.007f0aff9995a3000c7c95095a06f71dp0, + 0x1.fdfffep-5 + }, + { // Entry 189 + 0x1.007f0aff9995a3000c7c95095a06f71dp0, + -0x1.fdfffep-5 + }, + { // Entry 190 + 0x1.207137000101ef6a6756beb0ea45b857p0, + 0x1.fe3b2ep-2 + }, + { // Entry 191 + 0x1.207137000101ef6a6756beb0ea45b857p0, + -0x1.fe3b2ep-2 + }, + { // Entry 192 + 0x1.6f8f53c3ebac6dfffe8a9b6e088ac07fp10, + 0x1.ff1ffep2 + }, + { // Entry 193 + 0x1.6f8f53c3ebac6dfffe8a9b6e088ac07fp10, + -0x1.ff1ffep2 + }, + { // Entry 194 + 0x1.b261741c4fb3f1036d9f845f3564af2dp4, + 0x1.ff3ffep1 + }, + { // Entry 195 + 0x1.b261741c4fb3f1036d9f845f3564af2dp4, + -0x1.ff3ffep1 + }, + { // Entry 196 + 0x1.3d59d2d8b22b41c2bb6334c9be7be902p91, + 0x1.ffdffep5 + }, + { // Entry 197 + 0x1.3d59d2d8b22b41c2bb6334c9be7be902p91, + -0x1.ffdffep5 + }, + { // Entry 198 + 0x1.e1559d035ec13f82913aeeb61fab20d4p1, + 0x1.ffe0p0 + }, + { // Entry 199 + 0x1.e1559d035ec13f82913aeeb61fab20d4p1, + -0x1.ffe0p0 + }, + { // Entry 200 + 0x1.1f0508e3c8278fe10a2e8c9020c8176dp45, + 0x1.fffc7ep4 + }, + { // Entry 201 + 0x1.1f0508e3c8278fe10a2e8c9020c8176dp45, + -0x1.fffc7ep4 + }, + { // Entry 202 + 0x1.0f13feffff8e14e72398e58d6258a1dcp22, + 0x1.fffcd8p3 + }, + { // Entry 203 + 0x1.0f13feffff8e14e72398e58d6258a1dcp22, + -0x1.fffcd8p3 + }, + { // Entry 204 + 0x1.e18dcd02b202413a4a76037efe716feep1, + 0x1.fffefep0 + }, + { // Entry 205 + 0x1.e18dcd02b202413a4a76037efe716feep1, + -0x1.fffefep0 + }, + { // Entry 206 + 0x1.1f3661fed887e1ea6b1c49c86e62c65cp45, + 0x1.ffff3ep4 + }, + { // Entry 207 + 0x1.1f3661fed887e1ea6b1c49c86e62c65cp45, + -0x1.ffff3ep4 + }, + { // Entry 208 + 0x1.20ac14ff94619db4d2e40af1cf118f50p0, + 0x1.ffffe6p-2 + }, + { // Entry 209 + 0x1.20ac14ff94619db4d2e40af1cf118f50p0, + -0x1.ffffe6p-2 + }, + { // Entry 210 + 0x1.000001fffff8aaaaad6c16d05ca5ba42p0, + 0x1.fffffcp-12 + }, + { // Entry 211 + 0x1.000001fffff8aaaaad6c16d05ca5ba42p0, + -0x1.fffffcp-12 + }, + { // Entry 212 + 0x1.1c74a6ffff27037aed89be799ae87d89p0, + 0x1.de7314p-2 + }, + { // Entry 213 + 0x1.1c74a6ffff27037aed89be799ae87d89p0, + -0x1.de7314p-2 + }, + { // Entry 214 + 0x1.p0, + 0.0 + }, + { // Entry 215 + 0x1.00a7413964dddf629669c3500f708459p0, + 0x1.24924ap-4 + }, + { // Entry 216 + 0x1.00a7413964dddf629669c3500f708459p0, + -0x1.24924ap-4 + }, + { // Entry 217 + 0x1.029ddf71e67714aabadecb6c34881466p0, + 0x1.24924ap-3 + }, + { // Entry 218 + 0x1.029ddf71e67714aabadecb6c34881466p0, + -0x1.24924ap-3 + }, + { // Entry 219 + 0x1.05e66b72f920ca534e1daa0b86a4e7ebp0, + 0x1.b6db70p-3 + }, + { // Entry 220 + 0x1.05e66b72f920ca534e1daa0b86a4e7ebp0, + -0x1.b6db70p-3 + }, + { // Entry 221 + 0x1.0a852f7ad288abd0695c503777bc0195p0, + 0x1.24924ap-2 + }, + { // Entry 222 + 0x1.0a852f7ad288abd0695c503777bc0195p0, + -0x1.24924ap-2 + }, + { // Entry 223 + 0x1.10803510fe36a3f7c842ab6a75c8b006p0, + 0x1.6db6dcp-2 + }, + { // Entry 224 + 0x1.10803510fe36a3f7c842ab6a75c8b006p0, + -0x1.6db6dcp-2 + }, + { // Entry 225 + 0x1.17df4cc2d21000190b5383b6becd7becp0, + 0x1.b6db6ep-2 + }, + { // Entry 226 + 0x1.17df4cc2d21000190b5383b6becd7becp0, + -0x1.b6db6ep-2 + }, + { // Entry 227 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + 0x1.p-1 + }, + { // Entry 228 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + -0x1.p-1 + }, + { // Entry 229 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + 0x1.p-1 + }, + { // Entry 230 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + -0x1.p-1 + }, + { // Entry 231 + 0x1.2af217eb37e2369650003997bb02d72cp0, + 0x1.24924ap-1 + }, + { // Entry 232 + 0x1.2af217eb37e2369650003997bb02d72cp0, + -0x1.24924ap-1 + }, + { // Entry 233 + 0x1.36beb7b3f8f237e48efcda7fba85def5p0, + 0x1.492494p-1 + }, + { // Entry 234 + 0x1.36beb7b3f8f237e48efcda7fba85def5p0, + -0x1.492494p-1 + }, + { // Entry 235 + 0x1.442162b93f2d4967b2bac87d988998cap0, + 0x1.6db6dep-1 + }, + { // Entry 236 + 0x1.442162b93f2d4967b2bac87d988998cap0, + -0x1.6db6dep-1 + }, + { // Entry 237 + 0x1.532b9688fe84749d71a9627934d00a05p0, + 0x1.924928p-1 + }, + { // Entry 238 + 0x1.532b9688fe84749d71a9627934d00a05p0, + -0x1.924928p-1 + }, + { // Entry 239 + 0x1.63f0fa1d8b27abf7928a83538f1fb402p0, + 0x1.b6db72p-1 + }, + { // Entry 240 + 0x1.63f0fa1d8b27abf7928a83538f1fb402p0, + -0x1.b6db72p-1 + }, + { // Entry 241 + 0x1.7687778b78c8571fbd5f4165fc052aefp0, + 0x1.db6dbcp-1 + }, + { // Entry 242 + 0x1.7687778b78c8571fbd5f4165fc052aefp0, + -0x1.db6dbcp-1 + }, + { // Entry 243 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + 0x1.p0 + }, + { // Entry 244 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + -0x1.p0 + }, + { // Entry 245 + 0x1.p0, + 0.0 + }, + { // Entry 246 + 0x1.0009a148a4a36317b768fa180d3b7eb3p0, + 0x1.18de5ap-6 + }, + { // Entry 247 + 0x1.0009a148a4a36317b768fa180d3b7eb3p0, + -0x1.18de5ap-6 + }, + { // Entry 248 + 0x1.002685dc0bfd9abdddd455b13ea887d9p0, + 0x1.18de5ap-5 + }, + { // Entry 249 + 0x1.002685dc0bfd9abdddd455b13ea887d9p0, + -0x1.18de5ap-5 + }, + { // Entry 250 + 0x1.0056afe719b255038e559e394cf4b79ep0, + 0x1.a54d88p-5 + }, + { // Entry 251 + 0x1.0056afe719b255038e559e394cf4b79ep0, + -0x1.a54d88p-5 + }, + { // Entry 252 + 0x1.009a2308369a4cbf9683178ebb9d9c79p0, + 0x1.18de5ap-4 + }, + { // Entry 253 + 0x1.009a2308369a4cbf9683178ebb9d9c79p0, + -0x1.18de5ap-4 + }, + { // Entry 254 + 0x1.00f0e45304846d3a9b651810b40ff363p0, + 0x1.5f15f0p-4 + }, + { // Entry 255 + 0x1.00f0e45304846d3a9b651810b40ff363p0, + -0x1.5f15f0p-4 + }, + { // Entry 256 + 0x1.015afa4e6af7cc67145b966628015d41p0, + 0x1.a54d86p-4 + }, + { // Entry 257 + 0x1.015afa4e6af7cc67145b966628015d41p0, + -0x1.a54d86p-4 + }, + { // Entry 258 + 0x1.01d86cf5a15f8cd3898947526a322461p0, + 0x1.eb851cp-4 + }, + { // Entry 259 + 0x1.01d86cf5a15f8cd3898947526a322461p0, + -0x1.eb851cp-4 + }, + { // Entry 260 + 0x1.01d86cf97ac630fce74cd5d5243b3b2fp0, + 0x1.eb851ep-4 + }, + { // Entry 261 + 0x1.01d86cf97ac630fce74cd5d5243b3b2fp0, + -0x1.eb851ep-4 + }, + { // Entry 262 + 0x1.02068cf11e341bea4584e926b9b87a5cp0, + 0x1.01767ep-3 + }, + { // Entry 263 + 0x1.02068cf11e341bea4584e926b9b87a5cp0, + -0x1.01767ep-3 + }, + { // Entry 264 + 0x1.0236d50ea15f24974c4f2f784695f8f3p0, + 0x1.0d2a6cp-3 + }, + { // Entry 265 + 0x1.0236d50ea15f24974c4f2f784695f8f3p0, + -0x1.0d2a6cp-3 + }, + { // Entry 266 + 0x1.026945bd2fc314aa539bd2b0a1344e6ap0, + 0x1.18de5ap-3 + }, + { // Entry 267 + 0x1.026945bd2fc314aa539bd2b0a1344e6ap0, + -0x1.18de5ap-3 + }, + { // Entry 268 + 0x1.029ddf68b9ecab97a543140ab7bc196ap0, + 0x1.249248p-3 + }, + { // Entry 269 + 0x1.029ddf68b9ecab97a543140ab7bc196ap0, + -0x1.249248p-3 + }, + { // Entry 270 + 0x1.02d4a281cfc743376f69f8b9b0167a5ep0, + 0x1.304636p-3 + }, + { // Entry 271 + 0x1.02d4a281cfc743376f69f8b9b0167a5ep0, + -0x1.304636p-3 + }, + { // Entry 272 + 0x1.030d8f7da18db0864f478300e780a951p0, + 0x1.3bfa24p-3 + }, + { // Entry 273 + 0x1.030d8f7da18db0864f478300e780a951p0, + -0x1.3bfa24p-3 + }, + { // Entry 274 + 0x1.0348a6d600c50ac4ab832e474121e8b1p0, + 0x1.47ae12p-3 + }, + { // Entry 275 + 0x1.0348a6d600c50ac4ab832e474121e8b1p0, + -0x1.47ae12p-3 + }, + { // Entry 276 + 0x1.0348a6e049689d30b2d20b0135f3fee4p0, + 0x1.47ae14p-3 + }, + { // Entry 277 + 0x1.0348a6e049689d30b2d20b0135f3fee4p0, + -0x1.47ae14p-3 + }, + { // Entry 278 + 0x1.0a19d6dfd42b9ebd573de2bdeff3362ep0, + 0x1.1eb852p-2 + }, + { // Entry 279 + 0x1.0a19d6dfd42b9ebd573de2bdeff3362ep0, + -0x1.1eb852p-2 + }, + { // Entry 280 + 0x1.14c128bc2baac3f4f83f16b43fc69324p0, + 0x1.99999ap-2 + }, + { // Entry 281 + 0x1.14c128bc2baac3f4f83f16b43fc69324p0, + -0x1.99999ap-2 + }, + { // Entry 282 + 0x1.2365ee3fd57c998640a3796967b6c022p0, + 0x1.0a3d70p-1 + }, + { // Entry 283 + 0x1.2365ee3fd57c998640a3796967b6c022p0, + -0x1.0a3d70p-1 + }, + { // Entry 284 + 0x1.363e33f5565998f1b5221773f03eea8bp0, + 0x1.47ae14p-1 + }, + { // Entry 285 + 0x1.363e33f5565998f1b5221773f03eea8bp0, + -0x1.47ae14p-1 + }, + { // Entry 286 + 0x1.4d8f8734eeb43c686239fc3930bfba17p0, + 0x1.851eb8p-1 + }, + { // Entry 287 + 0x1.4d8f8734eeb43c686239fc3930bfba17p0, + -0x1.851eb8p-1 + }, + { // Entry 288 + 0x1.69aff7bc5d60108b348ed38b803eb445p0, + 0x1.c28f5cp-1 + }, + { // Entry 289 + 0x1.69aff7bc5d60108b348ed38b803eb445p0, + -0x1.c28f5cp-1 + }, + { // Entry 290 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + 0x1.p0 + }, + { // Entry 291 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + -0x1.p0 + }, + { // Entry 292 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + 0x1.p0 + }, + { // Entry 293 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + -0x1.p0 + }, + { // Entry 294 + 0x1.96953e5f15bebb0924d95e56e73390d3p3, + 0x1.9de826p1 + }, + { // Entry 295 + 0x1.96953e5f15bebb0924d95e56e73390d3p3, + -0x1.9de826p1 + }, + { // Entry 296 + 0x1.d9a541d64593911611959440ebb98fd2p6, + 0x1.5de826p2 + }, + { // Entry 297 + 0x1.d9a541d64593911611959440ebb98fd2p6, + -0x1.5de826p2 + }, + { // Entry 298 + 0x1.144daf73b05567a8ab0aec06359687bap10, + 0x1.ecdc38p2 + }, + { // Entry 299 + 0x1.144daf73b05567a8ab0aec06359687bap10, + -0x1.ecdc38p2 + }, + { // Entry 300 + 0x1.425f2a5819d974b4f9180a62110d48cbp13, + 0x1.3de826p3 + }, + { // Entry 301 + 0x1.425f2a5819d974b4f9180a62110d48cbp13, + -0x1.3de826p3 + }, + { // Entry 302 + 0x1.781f001bd3e350656b057368a4313822p16, + 0x1.856230p3 + }, + { // Entry 303 + 0x1.781f001bd3e350656b057368a4313822p16, + -0x1.856230p3 + }, + { // Entry 304 + 0x1.b6d506c59eb76d627415a6c9ee480b4fp19, + 0x1.ccdc3ap3 + }, + { // Entry 305 + 0x1.b6d506c59eb76d627415a6c9ee480b4fp19, + -0x1.ccdc3ap3 + }, + { // Entry 306 + 0x1.ffffc188aceab11124fe9a02b928f7d8p22, + 0x1.0a2b22p4 + }, + { // Entry 307 + 0x1.ffffc188aceab11124fe9a02b928f7d8p22, + -0x1.0a2b22p4 + }, + { // Entry 308 + 0x1.ffffc107c9f093819e76e37c08510f7cp14, + 0x1.62e42cp3 + }, + { // Entry 309 + 0x1.ffffc107c9f093819e76e37c08510f7cp14, + -0x1.62e42cp3 + }, + { // Entry 310 + 0x1.ffffe107c700d006790970a8222e21d8p14, + 0x1.62e42ep3 + }, + { // Entry 311 + 0x1.ffffe107c700d006790970a8222e21d8p14, + -0x1.62e42ep3 + }, + { // Entry 312 + 0x1.00000083e30886362db194a7754d1c73p15, + 0x1.62e430p3 + }, + { // Entry 313 + 0x1.00000083e30886362db194a7754d1c73p15, + -0x1.62e430p3 + }, + { // Entry 314 + 0x1.0000f04181beb2dc0da3230eba1ddad8p7, + 0x1.62e42cp2 + }, + { // Entry 315 + 0x1.0000f04181beb2dc0da3230eba1ddad8p7, + -0x1.62e42cp2 + }, + { // Entry 316 + 0x1.0000f8417960be0c77cfbad2eff76201p7, + 0x1.62e42ep2 + }, + { // Entry 317 + 0x1.0000f8417960be0c77cfbad2eff76201p7, + -0x1.62e42ep2 + }, + { // Entry 318 + 0x1.000100417142c97af25aac1bff8f3466p7, + 0x1.62e430p2 + }, + { // Entry 319 + 0x1.000100417142c97af25aac1bff8f3466p7, + -0x1.62e430p2 + }, + { // Entry 320 + 0x1.00fff82898287284d209c2639aecd8ebp3, + 0x1.62e42cp1 + }, + { // Entry 321 + 0x1.00fff82898287284d209c2639aecd8ebp3, + -0x1.62e42cp1 + }, + { // Entry 322 + 0x1.00fffc249810ddeb04d17e9fa71cc514p3, + 0x1.62e42ep1 + }, + { // Entry 323 + 0x1.00fffc249810ddeb04d17e9fa71cc514p3, + -0x1.62e42ep1 + }, + { // Entry 324 + 0x1.0100002098095950f9e2bbfefca756b6p3, + 0x1.62e430p1 + }, + { // Entry 325 + 0x1.0100002098095950f9e2bbfefca756b6p3, + -0x1.62e430p1 + }, + { // Entry 326 + 0x1.0ffffc4f56a336e3739f7e70b0a17ffcp1, + 0x1.62e42cp0 + }, + { // Entry 327 + 0x1.0ffffc4f56a336e3739f7e70b0a17ffcp1, + -0x1.62e42cp0 + }, + { // Entry 328 + 0x1.0ffffe2f569cf9a7ca3f579d60a5bafap1, + 0x1.62e42ep0 + }, + { // Entry 329 + 0x1.0ffffe2f569cf9a7ca3f579d60a5bafap1, + -0x1.62e42ep0 + }, + { // Entry 330 + 0x1.1000000f569afc6c199c8b3f61f3c735p1, + 0x1.62e430p0 + }, + { // Entry 331 + 0x1.1000000f569afc6c199c8b3f61f3c735p1, + -0x1.62e430p0 + }, + { // Entry 332 + 0x1.3ffffe8622a6d075816c2559de31a12ep0, + 0x1.62e42cp-1 + }, + { // Entry 333 + 0x1.3ffffe8622a6d075816c2559de31a12ep0, + -0x1.62e42cp-1 + }, + { // Entry 334 + 0x1.3fffff4622a4faaf3eeaf3be7155a93cp0, + 0x1.62e42ep-1 + }, + { // Entry 335 + 0x1.3fffff4622a4faaf3eeaf3be7155a93cp0, + -0x1.62e42ep-1 + }, + { // Entry 336 + 0x1.4000000622a464e8fbafe4c819d39acfp0, + 0x1.62e430p-1 + }, + { // Entry 337 + 0x1.4000000622a464e8fbafe4c819d39acfp0, + -0x1.62e430p-1 + }, + { // Entry 338 + 0x1.0f876c74e688b38ec8cc993bed72c369p0, + 0x1.62e42cp-2 + }, + { // Entry 339 + 0x1.0f876c74e688b38ec8cc993bed72c369p0, + -0x1.62e42cp-2 + }, + { // Entry 340 + 0x1.0f876ca227c51ce5c5f21e4840d6475ap0, + 0x1.62e42ep-2 + }, + { // Entry 341 + 0x1.0f876ca227c51ce5c5f21e4840d6475ap0, + -0x1.62e42ep-2 + }, + { // Entry 342 + 0x1.0f876ccf6901ca1e9e402d45dcdd46afp0, + 0x1.62e430p-2 + }, + { // Entry 343 + 0x1.0f876ccf6901ca1e9e402d45dcdd46afp0, + -0x1.62e430p-2 + }, + { // Entry 344 + 0x1.03da6ea1097c3f9cd57e7b65bc92ecc4p0, + 0x1.62e42cp-3 + }, + { // Entry 345 + 0x1.03da6ea1097c3f9cd57e7b65bc92ecc4p0, + -0x1.62e42cp-3 + }, + { // Entry 346 + 0x1.03da6eac2ed8a2cdd0fa87a50311cc5dp0, + 0x1.62e42ep-3 + }, + { // Entry 347 + 0x1.03da6eac2ed8a2cdd0fa87a50311cc5dp0, + -0x1.62e42ep-3 + }, + { // Entry 348 + 0x1.03da6eb75435163c736156d1d3d3308ep0, + 0x1.62e430p-3 + }, + { // Entry 349 + 0x1.03da6eb75435163c736156d1d3d3308ep0, + -0x1.62e430p-3 + }, + { // Entry 350 + 0x1.00f62552627bf74a0ad4ba77e8ab78a2p0, + 0x1.62e42cp-4 + }, + { // Entry 351 + 0x1.00f62552627bf74a0ad4ba77e8ab78a2p0, + -0x1.62e42cp-4 + }, + { // Entry 352 + 0x1.00f625552927bf649d646b851be50016p0, + 0x1.62e42ep-4 + }, + { // Entry 353 + 0x1.00f625552927bf649d646b851be50016p0, + -0x1.62e42ep-4 + }, + { // Entry 354 + 0x1.00f62557efd38b8308897136ee1d709ep0, + 0x1.62e430p-4 + }, + { // Entry 355 + 0x1.00f62557efd38b8308897136ee1d709ep0, + -0x1.62e430p-4 + }, + { // Entry 356 + 0x1.003d81f101375095ca54e321283ef77bp0, + 0x1.62e42cp-5 + }, + { // Entry 357 + 0x1.003d81f101375095ca54e321283ef77bp0, + -0x1.62e42cp-5 + }, + { // Entry 358 + 0x1.003d81f1b2b79cf13e8af72bdc1a3a96p0, + 0x1.62e42ep-5 + }, + { // Entry 359 + 0x1.003d81f1b2b79cf13e8af72bdc1a3a96p0, + -0x1.62e42ep-5 + }, + { // Entry 360 + 0x1.003d81f26437ea4cf042fce94792844bp0, + 0x1.62e430p-5 + }, + { // Entry 361 + 0x1.003d81f26437ea4cf042fce94792844bp0, + -0x1.62e430p-5 + }, + { // Entry 362 + 0x1.000f60060df0bdbdb94a9aa61dfeb8e8p0, + 0x1.62e42cp-6 + }, + { // Entry 363 + 0x1.000f60060df0bdbdb94a9aa61dfeb8e8p0, + -0x1.62e42cp-6 + }, + { // Entry 364 + 0x1.000f60063a4e26b757e72d4936a13599p0, + 0x1.62e42ep-6 + }, + { // Entry 365 + 0x1.000f60063a4e26b757e72d4936a13599p0, + -0x1.62e42ep-6 + }, + { // Entry 366 + 0x1.000f600666ab8ff0fa5bc17ae2cd6176p0, + 0x1.62e430p-6 + }, + { // Entry 367 + 0x1.000f600666ab8ff0fa5bc17ae2cd6176p0, + -0x1.62e430p-6 + }, + { // Entry 368 + 0x1.00000105c611505e7f74a30e6d20e850p31, + -0x1.62e430p4 + }, + { // Entry 369 + 0x1.00000105c611505e7f74a30e6d20e850p31, + 0x1.62e430p4 + }, + { // Entry 370 + 0x1.ffffc20b8fe12f121740ea8acb959525p30, + -0x1.62e42ep4 + }, + { // Entry 371 + 0x1.ffffc20b8fe12f121740ea8acb959525p30, + 0x1.62e42ep4 + }, + { // Entry 372 + 0x1.ffff820b9b9fbc6f5ddabe5f5d55c831p30, + -0x1.62e42cp4 + }, + { // Entry 373 + 0x1.ffff820b9b9fbc6f5ddabe5f5d55c831p30, + 0x1.62e42cp4 + }, + { // Entry 374 + 0x1.00000083e30886362db194a7754d1c73p15, + -0x1.62e430p3 + }, + { // Entry 375 + 0x1.00000083e30886362db194a7754d1c73p15, + 0x1.62e430p3 + }, + { // Entry 376 + 0x1.ffffe107c700d006790970a8222e21d8p14, + -0x1.62e42ep3 + }, + { // Entry 377 + 0x1.ffffe107c700d006790970a8222e21d8p14, + 0x1.62e42ep3 + }, + { // Entry 378 + 0x1.ffffc107c9f093819e76e37c08510f7cp14, + -0x1.62e42cp3 + }, + { // Entry 379 + 0x1.ffffc107c9f093819e76e37c08510f7cp14, + 0x1.62e42cp3 + }, + { // Entry 380 + 0x1.000100417142c97af25aac1bff8f3466p7, + -0x1.62e430p2 + }, + { // Entry 381 + 0x1.000100417142c97af25aac1bff8f3466p7, + 0x1.62e430p2 + }, + { // Entry 382 + 0x1.0000f8417960be0c77cfbad2eff76201p7, + -0x1.62e42ep2 + }, + { // Entry 383 + 0x1.0000f8417960be0c77cfbad2eff76201p7, + 0x1.62e42ep2 + }, + { // Entry 384 + 0x1.0000f04181beb2dc0da3230eba1ddad8p7, + -0x1.62e42cp2 + }, + { // Entry 385 + 0x1.0000f04181beb2dc0da3230eba1ddad8p7, + 0x1.62e42cp2 + }, + { // Entry 386 + 0x1.0100002098095950f9e2bbfefca756b6p3, + -0x1.62e430p1 + }, + { // Entry 387 + 0x1.0100002098095950f9e2bbfefca756b6p3, + 0x1.62e430p1 + }, + { // Entry 388 + 0x1.00fffc249810ddeb04d17e9fa71cc514p3, + -0x1.62e42ep1 + }, + { // Entry 389 + 0x1.00fffc249810ddeb04d17e9fa71cc514p3, + 0x1.62e42ep1 + }, + { // Entry 390 + 0x1.00fff82898287284d209c2639aecd8ebp3, + -0x1.62e42cp1 + }, + { // Entry 391 + 0x1.00fff82898287284d209c2639aecd8ebp3, + 0x1.62e42cp1 + }, + { // Entry 392 + 0x1.1000000f569afc6c199c8b3f61f3c735p1, + -0x1.62e430p0 + }, + { // Entry 393 + 0x1.1000000f569afc6c199c8b3f61f3c735p1, + 0x1.62e430p0 + }, + { // Entry 394 + 0x1.0ffffe2f569cf9a7ca3f579d60a5bafap1, + -0x1.62e42ep0 + }, + { // Entry 395 + 0x1.0ffffe2f569cf9a7ca3f579d60a5bafap1, + 0x1.62e42ep0 + }, + { // Entry 396 + 0x1.0ffffc4f56a336e3739f7e70b0a17ffcp1, + -0x1.62e42cp0 + }, + { // Entry 397 + 0x1.0ffffc4f56a336e3739f7e70b0a17ffcp1, + 0x1.62e42cp0 + }, + { // Entry 398 + 0x1.4000000622a464e8fbafe4c819d39acfp0, + -0x1.62e430p-1 + }, + { // Entry 399 + 0x1.4000000622a464e8fbafe4c819d39acfp0, + 0x1.62e430p-1 + }, + { // Entry 400 + 0x1.3fffff4622a4faaf3eeaf3be7155a93cp0, + -0x1.62e42ep-1 + }, + { // Entry 401 + 0x1.3fffff4622a4faaf3eeaf3be7155a93cp0, + 0x1.62e42ep-1 + }, + { // Entry 402 + 0x1.3ffffe8622a6d075816c2559de31a12ep0, + -0x1.62e42cp-1 + }, + { // Entry 403 + 0x1.3ffffe8622a6d075816c2559de31a12ep0, + 0x1.62e42cp-1 + }, + { // Entry 404 + 0x1.0f876ccf6901ca1e9e402d45dcdd46afp0, + -0x1.62e430p-2 + }, + { // Entry 405 + 0x1.0f876ccf6901ca1e9e402d45dcdd46afp0, + 0x1.62e430p-2 + }, + { // Entry 406 + 0x1.0f876ca227c51ce5c5f21e4840d6475ap0, + -0x1.62e42ep-2 + }, + { // Entry 407 + 0x1.0f876ca227c51ce5c5f21e4840d6475ap0, + 0x1.62e42ep-2 + }, + { // Entry 408 + 0x1.0f876c74e688b38ec8cc993bed72c369p0, + -0x1.62e42cp-2 + }, + { // Entry 409 + 0x1.0f876c74e688b38ec8cc993bed72c369p0, + 0x1.62e42cp-2 + }, + { // Entry 410 + 0x1.03da6eb75435163c736156d1d3d3308ep0, + -0x1.62e430p-3 + }, + { // Entry 411 + 0x1.03da6eb75435163c736156d1d3d3308ep0, + 0x1.62e430p-3 + }, + { // Entry 412 + 0x1.03da6eac2ed8a2cdd0fa87a50311cc5dp0, + -0x1.62e42ep-3 + }, + { // Entry 413 + 0x1.03da6eac2ed8a2cdd0fa87a50311cc5dp0, + 0x1.62e42ep-3 + }, + { // Entry 414 + 0x1.03da6ea1097c3f9cd57e7b65bc92ecc4p0, + -0x1.62e42cp-3 + }, + { // Entry 415 + 0x1.03da6ea1097c3f9cd57e7b65bc92ecc4p0, + 0x1.62e42cp-3 + }, + { // Entry 416 + 0x1.00f62557efd38b8308897136ee1d709ep0, + -0x1.62e430p-4 + }, + { // Entry 417 + 0x1.00f62557efd38b8308897136ee1d709ep0, + 0x1.62e430p-4 + }, + { // Entry 418 + 0x1.00f625552927bf649d646b851be50016p0, + -0x1.62e42ep-4 + }, + { // Entry 419 + 0x1.00f625552927bf649d646b851be50016p0, + 0x1.62e42ep-4 + }, + { // Entry 420 + 0x1.00f62552627bf74a0ad4ba77e8ab78a2p0, + -0x1.62e42cp-4 + }, + { // Entry 421 + 0x1.00f62552627bf74a0ad4ba77e8ab78a2p0, + 0x1.62e42cp-4 + }, + { // Entry 422 + 0x1.003d81f26437ea4cf042fce94792844bp0, + -0x1.62e430p-5 + }, + { // Entry 423 + 0x1.003d81f26437ea4cf042fce94792844bp0, + 0x1.62e430p-5 + }, + { // Entry 424 + 0x1.003d81f1b2b79cf13e8af72bdc1a3a96p0, + -0x1.62e42ep-5 + }, + { // Entry 425 + 0x1.003d81f1b2b79cf13e8af72bdc1a3a96p0, + 0x1.62e42ep-5 + }, + { // Entry 426 + 0x1.003d81f101375095ca54e321283ef77bp0, + -0x1.62e42cp-5 + }, + { // Entry 427 + 0x1.003d81f101375095ca54e321283ef77bp0, + 0x1.62e42cp-5 + }, + { // Entry 428 + 0x1.p0, + -0x1.p-149 + }, + { // Entry 429 + 0x1.p0, + 0x1.p-149 + }, + { // Entry 430 + 0x1.p0, + 0.0 + }, + { // Entry 431 + 0x1.p0, + 0x1.p-149 + }, + { // Entry 432 + 0x1.p0, + -0x1.p-149 + }, + { // Entry 433 + 0x1.01d86cf5a15f8cd3898947526a322461p0, + 0x1.eb851cp-4 + }, + { // Entry 434 + 0x1.01d86cf5a15f8cd3898947526a322461p0, + -0x1.eb851cp-4 + }, + { // Entry 435 + 0x1.01d86cf97ac630fce74cd5d5243b3b2fp0, + 0x1.eb851ep-4 + }, + { // Entry 436 + 0x1.01d86cf97ac630fce74cd5d5243b3b2fp0, + -0x1.eb851ep-4 + }, + { // Entry 437 + 0x1.01d86cfd542cd92da6c44a42f7099d65p0, + 0x1.eb8520p-4 + }, + { // Entry 438 + 0x1.01d86cfd542cd92da6c44a42f7099d65p0, + -0x1.eb8520p-4 + }, + { // Entry 439 + 0x1.20ac181ffb4ceac216e8b489c48dd3dfp0, + 0x1.fffffep-2 + }, + { // Entry 440 + 0x1.20ac181ffb4ceac216e8b489c48dd3dfp0, + -0x1.fffffep-2 + }, + { // Entry 441 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + 0x1.p-1 + }, + { // Entry 442 + 0x1.20ac1862ae8d0645823a4f060800e88cp0, + -0x1.p-1 + }, + { // Entry 443 + 0x1.20ac18e8150e15cd6b3833b87109804fp0, + 0x1.000002p-1 + }, + { // Entry 444 + 0x1.20ac18e8150e15cd6b3833b87109804fp0, + -0x1.000002p-1 + }, + { // Entry 445 + 0x1.8b0753f0c559855acf5f13552a0c357bp0, + 0x1.fffffep-1 + }, + { // Entry 446 + 0x1.8b0753f0c559855acf5f13552a0c357bp0, + -0x1.fffffep-1 + }, + { // Entry 447 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + 0x1.p0 + }, + { // Entry 448 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + -0x1.p0 + }, + { // Entry 449 + 0x1.8b0757775350a4a8993fc156eb4fc808p0, + 0x1.000002p0 + }, + { // Entry 450 + 0x1.8b0757775350a4a8993fc156eb4fc808p0, + -0x1.000002p0 + }, + { // Entry 451 + 0x1.ab5aa630eb432545b54cdaf7f455210cp30, + 0x1.5ffffep4 + }, + { // Entry 452 + 0x1.ab5aa630eb432545b54cdaf7f455210cp30, + -0x1.5ffffep4 + }, + { // Entry 453 + 0x1.ab5adb9c435ff81e18afca372828a676p30, + 0x1.60p4 + }, + { // Entry 454 + 0x1.ab5adb9c435ff81e18afca372828a676p30, + -0x1.60p4 + }, + { // Entry 455 + 0x1.ab5b1107a22a3664ed2273254e849a81p30, + 0x1.600002p4 + }, + { // Entry 456 + 0x1.ab5b1107a22a3664ed2273254e849a81p30, + -0x1.600002p4 + }, + { // Entry 457 + 0x1.226aceedc3b97c2a7eac95e7562be263p32, + 0x1.6ffffep4 + }, + { // Entry 458 + 0x1.226aceedc3b97c2a7eac95e7562be263p32, + -0x1.6ffffep4 + }, + { // Entry 459 + 0x1.226af33b1fdc0a57bd4b4ab2311b5cdfp32, + 0x1.70p4 + }, + { // Entry 460 + 0x1.226af33b1fdc0a57bd4b4ab2311b5cdfp32, + -0x1.70p4 + }, + { // Entry 461 + 0x1.226b178880884451e86af2dfaf4ed9e0p32, + 0x1.700002p4 + }, + { // Entry 462 + 0x1.226b178880884451e86af2dfaf4ed9e0p32, + -0x1.700002p4 + }, + { // Entry 463 + 0x1.ffff8188b8b99accb59239a999795cedp22, + 0x1.0a2b20p4 + }, + { // Entry 464 + 0x1.ffff8188b8b99accb59239a999795cedp22, + -0x1.0a2b20p4 + }, + { // Entry 465 + 0x1.ffffc188aceab11124fe9a02b928f7d8p22, + 0x1.0a2b22p4 + }, + { // Entry 466 + 0x1.ffffc188aceab11124fe9a02b928f7d8p22, + -0x1.0a2b22p4 + }, + { // Entry 467 + 0x1.000000c4548de32ddb90a7e53a66ba0ap23, + 0x1.0a2b24p4 + }, + { // Entry 468 + 0x1.000000c4548de32ddb90a7e53a66ba0ap23, + -0x1.0a2b24p4 + }, + { // Entry 469 + 0x1.ffffc2c458b36e7e18cb1f214e7b10ffp10, + 0x1.0a2b20p3 + }, + { // Entry 470 + 0x1.ffffc2c458b36e7e18cb1f214e7b10ffp10, + -0x1.0a2b20p3 + }, + { // Entry 471 + 0x1.ffffe2c4559fb3e81fbe2bbb12e12ae1p10, + 0x1.0a2b22p3 + }, + { // Entry 472 + 0x1.ffffe2c4559fb3e81fbe2bbb12e12ae1p10, + -0x1.0a2b22p3 + }, + { // Entry 473 + 0x1.000001622a45fc9a75838159b3d10509p11, + 0x1.0a2b24p3 + }, + { // Entry 474 + 0x1.000001622a45fc9a75838159b3d10509p11, + -0x1.0a2b24p3 + }, + { // Entry 475 + 0x1.fffed83ee2532ac846bdff097cd2f43bp127, + 0x1.65a9f6p6 + }, + { // Entry 476 + 0x1.fffed83ee2532ac846bdff097cd2f43bp127, + -0x1.65a9f6p6 + }, + { // Entry 477 + 0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + 0x1.65a9f8p6 + }, + { // Entry 478 + 0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + -0x1.65a9f8p6 + }, + { // Entry 479 + HUGE_VALF, + 0x1.65a9fap6 + }, + { // Entry 480 + HUGE_VALF, + -0x1.65a9fap6 + }, + { // Entry 481 + HUGE_VALF, + -0x1.65a9fap6 + }, + { // Entry 482 + HUGE_VALF, + 0x1.65a9fap6 + }, + { // Entry 483 + 0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + -0x1.65a9f8p6 + }, + { // Entry 484 + 0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + 0x1.65a9f8p6 + }, + { // Entry 485 + 0x1.fffed83ee2532ac846bdff097cd2f43bp127, + -0x1.65a9f6p6 + }, + { // Entry 486 + 0x1.fffed83ee2532ac846bdff097cd2f43bp127, + 0x1.65a9f6p6 + }, + { // Entry 487 + 0x1.0000000000000007fffff0000008000ap0, + 0x1.fffffep-31 + }, + { // Entry 488 + 0x1.0000000000000007fffff0000008000ap0, + -0x1.fffffep-31 + }, + { // Entry 489 + 0x1.0000000000000008000000000000000ap0, + 0x1.p-30 + }, + { // Entry 490 + 0x1.0000000000000008000000000000000ap0, + -0x1.p-30 + }, + { // Entry 491 + 0x1.0000000000000008000020000020000ap0, + 0x1.000002p-30 + }, + { // Entry 492 + 0x1.0000000000000008000020000020000ap0, + -0x1.000002p-30 + }, + { // Entry 493 + 0x1.00000001fffffc00aaaca80016c56b8ep0, + 0x1.fffffep-16 + }, + { // Entry 494 + 0x1.00000001fffffc00aaaca80016c56b8ep0, + -0x1.fffffep-16 + }, + { // Entry 495 + 0x1.0000000200000000aaaaaaaac16c16c1p0, + 0x1.p-15 + }, + { // Entry 496 + 0x1.0000000200000000aaaaaaaac16c16c1p0, + -0x1.p-15 + }, + { // Entry 497 + 0x1.0000000200000800aab2b00016d16d27p0, + 0x1.000002p-15 + }, + { // Entry 498 + 0x1.0000000200000800aab2b00016d16d27p0, + -0x1.000002p-15 + }, + { // Entry 499 + 0x1.0008000a9ab0306483e877d147f6d18ap0, + 0x1.fffffep-7 + }, + { // Entry 500 + 0x1.0008000a9ab0306483e877d147f6d18ap0, + -0x1.fffffep-7 + }, + { // Entry 501 + 0x1.0008000aaab05b0750755149bcdca034p0, + 0x1.p-6 + }, + { // Entry 502 + 0x1.0008000aaab05b0750755149bcdca034p0, + -0x1.p-6 + }, + { // Entry 503 + 0x1.0008000acab0b07ceb0f063ba7bbfa54p0, + 0x1.000002p-6 + }, + { // Entry 504 + 0x1.0008000acab0b07ceb0f063ba7bbfa54p0, + -0x1.000002p-6 + }, + { // Entry 505 + 0x1.002000aa6c14187902aad2ffba74cf2cp0, + 0x1.fffffep-6 + }, + { // Entry 506 + 0x1.002000aa6c14187902aad2ffba74cf2cp0, + -0x1.fffffep-6 + }, + { // Entry 507 + 0x1.002000aaac16c30c31eaf1bbb1901947p0, + 0x1.p-5 + }, + { // Entry 508 + 0x1.002000aaac16c30c31eaf1bbb1901947p0, + -0x1.p-5 + }, + { // Entry 509 + 0x1.002000ab2c1c18f2a86baf44b183af72p0, + 0x1.000002p-5 + }, + { // Entry 510 + 0x1.002000ab2c1c18f2a86baf44b183af72p0, + -0x1.000002p-5 + }, + { // Entry 511 + 0x1.00800aaa05874ed7b7cf8f4b5e6fdb38p0, + 0x1.fffffep-5 + }, + { // Entry 512 + 0x1.00800aaa05874ed7b7cf8f4b5e6fdb38p0, + -0x1.fffffep-5 + }, + { // Entry 513 + 0x1.00800aab05b1fb245198050937bb0368p0, + 0x1.p-4 + }, + { // Entry 514 + 0x1.00800aab05b1fb245198050937bb0368p0, + -0x1.p-4 + }, + { // Entry 515 + 0x1.00800aad060756bf0548f2962af04df6p0, + 0x1.000002p-4 + }, + { // Entry 516 + 0x1.00800aad060756bf0548f2962af04df6p0, + -0x1.000002p-4 + }, + { // Entry 517 + 0x1.0200aabd6b0bbcb062a61f361828f822p0, + 0x1.fffffep-4 + }, + { // Entry 518 + 0x1.0200aabd6b0bbcb062a61f361828f822p0, + -0x1.fffffep-4 + }, + { // Entry 519 + 0x1.0200aac16db6edec960cd51207e46c1ep0, + 0x1.p-3 + }, + { // Entry 520 + 0x1.0200aac16db6edec960cd51207e46c1ep0, + -0x1.p-3 + }, + { // Entry 521 + 0x1.0200aac9730d5c7d04db61f9275b83fap0, + 0x1.000002p-3 + }, + { // Entry 522 + 0x1.0200aac9730d5c7d04db61f9275b83fap0, + -0x1.000002p-3 + }, + { // Entry 523 + 0x1.080ab04c7b478d4cb3110d491046c9c9p0, + 0x1.fffffep-3 + }, + { // Entry 524 + 0x1.080ab04c7b478d4cb3110d491046c9c9p0, + -0x1.fffffep-3 + }, + { // Entry 525 + 0x1.080ab05ca6145edcde90399c8713a384p0, + 0x1.p-2 + }, + { // Entry 526 + 0x1.080ab05ca6145edcde90399c8713a384p0, + -0x1.p-2 + }, + { // Entry 527 + 0x1.080ab07cfbae337f36a0f41414d9d0c8p0, + 0x1.000002p-2 + }, + { // Entry 528 + 0x1.080ab07cfbae337f36a0f41414d9d0c8p0, + -0x1.000002p-2 + }, + { // Entry 529 + 0x1.e18f9d3eb3b30ed6335c902418fb7234p1, + 0x1.fffffep0 + }, + { // Entry 530 + 0x1.e18f9d3eb3b30ed6335c902418fb7234p1, + -0x1.fffffep0 + }, + { // Entry 531 + 0x1.e18fa0df2d9bc29327f717774d0c0661p1, + 0x1.p1 + }, + { // Entry 532 + 0x1.e18fa0df2d9bc29327f717774d0c0661p1, + -0x1.p1 + }, + { // Entry 533 + 0x1.e18fa8202183bcc8aa243133423f76ffp1, + 0x1.000002p1 + }, + { // Entry 534 + 0x1.e18fa8202183bcc8aa243133423f76ffp1, + -0x1.000002p1 + }, + { // Entry 535 + 0x1.b4ee7ebb55f4cbc854b082e732092507p4, + 0x1.fffffep1 + }, + { // Entry 536 + 0x1.b4ee7ebb55f4cbc854b082e732092507p4, + -0x1.fffffep1 + }, + { // Entry 537 + 0x1.b4ee858de3e80061c6a51dddf960f317p4, + 0x1.p2 + }, + { // Entry 538 + 0x1.b4ee858de3e80061c6a51dddf960f317p4, + -0x1.p2 + }, + { // Entry 539 + 0x1.b4ee93330020564e2251f0a10e247060p4, + 0x1.000002p2 + }, + { // Entry 540 + 0x1.b4ee93330020564e2251f0a10e247060p4, + -0x1.000002p2 + }, + { // Entry 541 + 0x1.749e9eeeffed4d8079070cc441b07e51p10, + 0x1.fffffep2 + }, + { // Entry 542 + 0x1.749e9eeeffed4d8079070cc441b07e51p10, + -0x1.fffffep2 + }, + { // Entry 543 + 0x1.749eaa93f4e76110d5a587e50e4d3dc3p10, + 0x1.p3 + }, + { // Entry 544 + 0x1.749eaa93f4e76110d5a587e50e4d3dc3p10, + -0x1.p3 + }, + { // Entry 545 + 0x1.749ec1dddff2ff3467178750bda1362bp10, + 0x1.000002p3 + }, + { // Entry 546 + 0x1.749ec1dddff2ff3467178750bda1362bp10, + -0x1.000002p3 + }, + { // Entry 547 + 0x1.0f2eac1794bcba9969899739333d575dp22, + 0x1.fffffep3 + }, + { // Entry 548 + 0x1.0f2eac1794bcba9969899739333d575dp22, + -0x1.fffffep3 + }, + { // Entry 549 + 0x1.0f2ebd0a8005cb3d9b4f414186aba4d7p22, + 0x1.p4 + }, + { // Entry 550 + 0x1.0f2ebd0a8005cb3d9b4f414186aba4d7p22, + -0x1.p4 + }, + { // Entry 551 + 0x1.0f2edef059c578ce114742bef842a70bp22, + 0x1.000002p4 + }, + { // Entry 552 + 0x1.0f2edef059c578ce114742bef842a70bp22, + -0x1.000002p4 + }, + { // Entry 553 + 0x1.1f43d8dc3908b8ed87a5abe34855b461p45, + 0x1.fffffep4 + }, + { // Entry 554 + 0x1.1f43d8dc3908b8ed87a5abe34855b461p45, + -0x1.fffffep4 + }, + { // Entry 555 + 0x1.1f43fcc4b662c7d8478840268449bc25p45, + 0x1.p5 + }, + { // Entry 556 + 0x1.1f43fcc4b662c7d8478840268449bc25p45, + -0x1.p5 + }, + { // Entry 557 + 0x1.1f444495be8e1616a1e5e396b9caac6bp45, + 0x1.000002p5 + }, + { // Entry 558 + 0x1.1f444495be8e1616a1e5e396b9caac6bp45, + -0x1.000002p5 + }, + { // Entry 559 + 0x1.4259323902dbc6e62e3e07ce26cd904cp91, + 0x1.fffffep5 + }, + { // Entry 560 + 0x1.4259323902dbc6e62e3e07ce26cd904cp91, + -0x1.fffffep5 + }, + { // Entry 561 + 0x1.425982cf597cd205ce3d5b4edb031756p91, + 0x1.p6 + }, + { // Entry 562 + 0x1.425982cf597cd205ce3d5b4edb031756p91, + -0x1.p6 + }, + { // Entry 563 + 0x1.425a23fc432fb5d556006a4d8e7ee11bp91, + 0x1.000002p6 + }, + { // Entry 564 + 0x1.425a23fc432fb5d556006a4d8e7ee11bp91, + -0x1.000002p6 + }, + { // Entry 565 + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 566 + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 567 + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 568 + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 569 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 570 + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 571 + HUGE_VALF, + 0x1.fffffcp127 + }, + { // Entry 572 + 0x1.72f14a1ced856a7e65c1607d36ef64b3p3, + 0x1.921fb6p1 + }, + { // Entry 573 + 0x1.412cc380da7cb6987dff68ad77932f5dp1, + 0x1.921fb6p0 + }, + { // Entry 574 + 0x1.8b0757775350a4a8993fc156eb4fc808p0, + 0x1.000002p0 + }, + { // Entry 575 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + 0x1.p0 + }, + { // Entry 576 + 0x1.8b0753f0c559855acf5f13552a0c357bp0, + 0x1.fffffep-1 + }, + { // Entry 577 + 0x1.5319951fdd08d95643a6762c2beffae2p0, + 0x1.921fb6p-1 + }, + { // Entry 578 + 0x1.p0, + 0x1.000002p-126 + }, + { // Entry 579 + 0x1.p0, + 0x1.p-126 + }, + { // Entry 580 + 0x1.p0, + 0x1.fffffcp-127 + }, + { // Entry 581 + 0x1.p0, + 0x1.fffff8p-127 + }, + { // Entry 582 + 0x1.p0, + 0x1.p-148 + }, + { // Entry 583 + 0x1.p0, + 0x1.p-149 + }, + { // Entry 584 + 0x1.p0, + 0.0f + }, + { // Entry 585 + 0x1.p0, + -0.0f + }, + { // Entry 586 + 0x1.p0, + -0x1.p-149 + }, + { // Entry 587 + 0x1.p0, + -0x1.p-148 + }, + { // Entry 588 + 0x1.p0, + -0x1.fffff8p-127 + }, + { // Entry 589 + 0x1.p0, + -0x1.fffffcp-127 + }, + { // Entry 590 + 0x1.p0, + -0x1.p-126 + }, + { // Entry 591 + 0x1.p0, + -0x1.000002p-126 + }, + { // Entry 592 + 0x1.5319951fdd08d95643a6762c2beffae2p0, + -0x1.921fb6p-1 + }, + { // Entry 593 + 0x1.8b0753f0c559855acf5f13552a0c357bp0, + -0x1.fffffep-1 + }, + { // Entry 594 + 0x1.8b07551d9f5504c2bd28100196a4f66ap0, + -0x1.p0 + }, + { // Entry 595 + 0x1.8b0757775350a4a8993fc156eb4fc808p0, + -0x1.000002p0 + }, + { // Entry 596 + 0x1.412cc380da7cb6987dff68ad77932f5dp1, + -0x1.921fb6p0 + }, + { // Entry 597 + 0x1.72f14a1ced856a7e65c1607d36ef64b3p3, + -0x1.921fb6p1 + }, + { // Entry 598 + HUGE_VALF, + -0x1.fffffcp127 + }, + { // Entry 599 + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 600 + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 601 + 0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + 0x1.65a9f8p6 + }, + { // Entry 602 + 0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + -0x1.65a9f8p6 + }, + { // Entry 603 + HUGE_VALF, + 0x1.65a9fap6 + }, + { // Entry 604 + HUGE_VALF, + -0x1.65a9fap6 + } +}; diff --git a/tests/math_data/exp2_intel_data.h b/tests/math_data/exp2_intel_data.h new file mode 100644 index 000000000..51f2690fa --- /dev/null +++ b/tests/math_data/exp2_intel_data.h @@ -0,0 +1,1342 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_exp2_intel_data[] = { + { // Entry 0 + 0x1.7550685a42c638000000000000845a47p0, + 0x1.16a76ec41b516p-1 + }, + { // Entry 1 + 0x1.89d948a94fe16fffffffffffff2cd3bdp0, + 0x1.3e34fa6ab969ep-1 + }, + { // Entry 2 + 0x1.90661da12d5288000000000000b1b5f1p0, + 0x1.4a63ff1d53f53p-1 + }, + { // Entry 3 + 0x1.cd6b37edeceaf7ffffffffffff7681d4p0, + 0x1.b32a6c92d1185p-1 + }, + { // Entry 4 + 0x1.1ba39ff28e3e9fffffffffffffc69c44p1, + 0x1.25dd9eedac79ap0 + }, + { // Entry 5 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 6 + 0x1.fffffffe9d1bd010d75fee7817e4dfc0p-1, + -0x1.0000000000001p-32 + }, + { // Entry 7 + 0x1.ffffffffffa746f404171ff3199aeed7p-1025, + -0x1.0000000000001p10 + }, + { // Entry 8 + 0x1.fe9d96b2a23d882193f7b993586f2602p-1, + -0x1.000000000006ap-8 + }, + { // Entry 9 + 0x1.ffffffff8a2a3c157c3b7f18ebab642dp-1025, + -0x1.0000000000154p10 + }, + { // Entry 10 + 0x1.ea4afa2a47b9bffeb53a92123e2892d5p-1, + -0x1.000000001p-4 + }, + { // Entry 11 + 0x1.6a09d3c7fa7857ffff5d816eb683ef4bp-1, + -0x1.000025fffffafp-1 + }, + { // Entry 12 + 0x1.fe9d966c1fb8a82de91ee9a29410d9a9p-1, + -0x1.0000330p-8 + }, + { // Entry 13 + 0x1.fa764417ff7da7fd252560ea61130296p-1, + -0x1.011p-6 + }, + { // Entry 14 + 0x1.e3ef96693f8579bbc20fc1cbf9decfc3p-1031, + -0x1.01853479d6414p10 + }, + { // Entry 15 + 0x1.171354a3dac90fb1c06ced94bc098564p-1058, + -0x1.0878080p10 + }, + { // Entry 16 + 0x1.00000000018f40b5ed994a2726414d06p-1074, + -0x1.0c7fffffffff7p10 + }, + { // Entry 17 + 0x1.00000000002c5c85fdf477b662b26945p-1074, + -0x1.0c7ffffffffffp10 + }, + { // Entry 18 + 0.0, + -0x1.0c80000000001p10 + }, + { // Entry 19 + 0.0, + -0x1.0c80400000001p10 + }, + { // Entry 20 + 0.0, + -0x1.0cbffffffffffp10 + }, + { // Entry 21 + 0.0, + -0x1.0ccp10 + }, + { // Entry 22 + 0x1.5fa21f48b380a7ff88e685255cd2b0b9p-68, + -0x1.0e2b14f637093p6 + }, + { // Entry 23 + 0x1.fffff3deb381580911bb0a338d5013d3p-1, + -0x1.180p-21 + }, + { // Entry 24 + 0x1.f220c9bfc3e5e802d3d2299f1c0cb896p-1, + -0x1.44ap-5 + }, + { // Entry 25 + 0x1.d2c416640bb58800000302d88dd4794dp-6, + -0x1.488a5a88d8627p2 + }, + { // Entry 26 + 0x1.7477fe65ed9eb801fb78e9f8195947dep-6, + -0x1.5d60a85cec862p2 + }, + { // Entry 27 + 0x1.fffffffffe01d7fb1785c9ab108f85f0p-1, + -0x1.7p-40 + }, + { // Entry 28 + 0x1.f710064ffbdf6800ff354e934260dd45p-1, + -0x1.a04p-6 + }, + { // Entry 29 + 0x1.81db2699d647e80119a5ff6578562368p-1, + -0x1.a1ep-2 + }, + { // Entry 30 + 0x1.18a82c07fc46d8033bd0fd06418f1d83p-1, + -0x1.bc137c829fe3fp-1 + }, + { // Entry 31 + 0x1.ffffd71ab8e1c7ffc23bb97e6431b6fep-1, + -0x1.d7ffep-20 + }, + { // Entry 32 + 0x1.b23dd2fbd9253801d5963064eb734a2fp-1, + -0x1.e6b30cdff66eap-3 + }, + { // Entry 33 + 0x1.9afdae5fa109f7fffb555a32c170d8b1p-32, + -0x1.f512959c9fef8p4 + }, + { // Entry 34 + 0x1.6ae5f40c2d268001595637d720fdaa90p-1, + -0x1.fc7f1fc7f1fc8p-2 + }, + { // Entry 35 + 0x1.aed49b5eb5803001fcd049a3732b31f0p-1, + -0x1.fdfffffffffffp-3 + }, + { // Entry 36 + 0x1.0000000d6a752800a91630539c6e7b0fp-1022, + -0x1.fefffffff6529p9 + }, + { // Entry 37 + 0x1.0000000c0790f7ff6249d8418e1b82c0p-1022, + -0x1.fefffffff7529p9 + }, + { // Entry 38 + 0x1.5ab07dd4854a1800e36cd5ae47a685bep-256, + -0x1.ff1ffffffffffp7 + }, + { // Entry 39 + 0x1.6a0bdc4db4d7b1f4e35e43dfc85817a7p-1, + -0x1.fff7fffffffffp-2 + }, + { // Entry 40 + 0x1.ffffffffffffffffffffffffe9d20bc1p-1, + -0x1.fff8e61eadd48p-101 + }, + { // Entry 41 + 0x1.ffd3a5705a0a3800003de8f068ba8fddp-1, + -0x1.ffff87bffffffp-12 + }, + { // Entry 42 + 0x1.fffff4e8de9f48000386a775899517eap-1, + -0x1.ffffffff07fffp-22 + }, + { // Entry 43 + 0x1.ffffd3a37bee1800966e6c9e9bb48496p-1, + -0x1.ffffffff3ffffp-20 + }, + { // Entry 44 + 0x1.0000000b561edfff7762203e6d954ab4p-1024, + -0x1.fffffffff7d29p9 + }, + { // Entry 45 + 0x1.00000004da8277ffff5d73afe24f21c3p-512, + -0x1.fffffffff8ff7p8 + }, + { // Entry 46 + 0x1.000000003851761b6d88f829becd3315p-1024, + -0x1.ffffffffffd76p9 + }, + { // Entry 47 + 0x1.000000001e533f989be7040824423450p-1024, + -0x1.ffffffffffea2p9 + }, + { // Entry 48 + 0x1.000000001111998e372040e1786d816fp-1024, + -0x1.fffffffffff3bp9 + }, + { // Entry 49 + 0x1.0000000004550915cce8b2fc4d47a539p-1024, + -0x1.fffffffffffcep9 + }, + { // Entry 50 + 0x1.0000000001fe2804e87d30cf8acc59c7p-1024, + -0x1.fffffffffffe9p9 + }, + { // Entry 51 + 0x1.0000000001205966f2b5938a5a957ce4p-1024, + -0x1.ffffffffffff3p9 + }, + { // Entry 52 + 0x1.fffffffffe9d1bd0105cdc21cead428cp-1, + -0x1.ffffffffffffep-41 + }, + { // Entry 53 + 0x1.ffffffffffa746f404171ff8a52bae95p-1, + -0x1.ffffffffffffep-43 + }, + { // Entry 54 + 0x1.0000000000162e42fefa3ae53369388cp-1024, + -0x1.fffffffffffffp9 + }, + { // Entry 55 + 0x1.p0, + 0x1.0p-1074 + }, + { // Entry 56 + 0x1.6a09e667f3bcd0e0448ff2152c56bf1fp0, + 0x1.0000000000001p-1 + }, + { // Entry 57 + 0x1.00000000b17217f80f4f00c1ff23da21p0, + 0x1.0000000000001p-32 + }, + { // Entry 58 + 0x1.00000000b17217f80f4f434cc820f6eep0, + 0x1.0000000000007p-32 + }, + { // Entry 59 + 0x1.02c9a3e7780fe800c728e7d486fcf31cp0, + 0x1.0000000003838p-6 + }, + { // Entry 60 + 0x1.6a09e66cc184b000004ee13300eefeedp0, + 0x1.00000009cd189p-1 + }, + { // Entry 61 + 0x1.00b1afde7b1cb801287776b699278174p0, + 0x1.000051bcd60e7p-8 + }, + { // Entry 62 + 0x1.0058c89a0da927ffd4f54c7681eb068dp0, + 0x1.00007ffffffaep-9 + }, + { // Entry 63 + 0x1.059b67dbb73747ffc7559f37ef913157p0, + 0x1.000ffffc0p-5 + }, + { // Entry 64 + 0x1.6b14ea048ba6b4a8a77fd275a20dcb27p0, + 0x1.022p-1 + }, + { // Entry 65 + 0x1.002d711c9fe27ffffff45a9e519be99fp0, + 0x1.0624de0b877a9p-10 + }, + { // Entry 66 + 0x1.002d711dd65f77fffff9a30e18baff60p0, + 0x1.0624e50a0bee1p-10 + }, + { // Entry 67 + 0x1.002d711f4c5b7800000671d15bb60667p0, + 0x1.0624ed76bb986p-10 + }, + { // Entry 68 + 0x1.1a7c0713c14c2fffff5e7085d7140701p4, + 0x1.0916fbd16a4a4p2 + }, + { // Entry 69 + 0x1.0005f0eeca476ff5746e77918f305622p0, + 0x1.1244912449101p-13 + }, + { // Entry 70 + 0x1.7550685a42c638000000000000845a47p0, + 0x1.16a76ec41b516p-1 + }, + { // Entry 71 + 0x1.76e219f44e8077fffbf691327e18a6a6p0, + 0x1.19c09494b839ep-1 + }, + { // Entry 72 + 0x1.3738d72e851d08007f94aec04e720143p0, + 0x1.2090482412080p-2 + }, + { // Entry 73 + 0x1.5ebcb0c3a5e8cfffff403cfc89af025dp2, + 0x1.3a24bc9f747a4p1 + }, + { // Entry 74 + 0x1.eff948ab8687f801d8c0b52d4fd1abc4p4, + 0x1.3d104d551d81cp2 + }, + { // Entry 75 + 0x1.f662aa67062f68312afcbb64ee7a0cacp19, + 0x1.3f8ffa3f6c716p4 + }, + { // Entry 76 + 0x1.3dc642457d0857ff16fb3b9bc0c86814p1, + 0x1.4fd6031ce2f59p0 + }, + { // Entry 77 + 0x1.0000000075571ffffe9287b8913490cap0, + 0x1.529297e4d4730p-33 + }, + { // Entry 78 + 0x1.428a2f98d728980287cd19f22ba23342p0, + 0x1.555555555554fp-2 + }, + { // Entry 79 + 0x1.0792c37435e5b801a9bae4219f11a6a9p0, + 0x1.588f0a4eac13ep-5 + }, + { // Entry 80 + 0x1.e0eaa5e12b62b7feff0ae982bc9b0e20p2, + 0x1.746f2dac4c4aep1 + }, + { // Entry 81 + 0x1.e8f597a375b908310b9fd1892b940fddp2, + 0x1.777f3eb118644p1 + }, + { // Entry 82 + 0x1.e212d1cd92af580000065ae4d335fcd5p5, + 0x1.7a70623a65055p2 + }, + { // Entry 83 + 0x1.6e176769832437ff0078b13791381962p1, + 0x1.841c84bf02c93p0 + }, + { // Entry 84 + 0x1.0000000010e578000152b56232aab68ep0, + 0x1.86055129c133fp-36 + }, + { // Entry 85 + 0x1.1f98e30b070717f047944e564fb68949p6, + 0x1.8abef85ac27cap2 + }, + { // Entry 86 + 0x1.29f209f62cd1bfffffb442fc666ab002p6, + 0x1.8e0287eb30572p2 + }, + { // Entry 87 + 0x1.2e6eb60fef9e9801a703d7b8b727760dp50, + 0x1.91ec7b1ec7c3dp5 + }, + { // Entry 88 + 0x1.125fbee3a8f4b000006b01ac6c39fae3p0, + 0x1.999999b6966b1p-4 + }, + { // Entry 89 + 0x1.125fbef60d23f7fffff990af4ad356dep0, + 0x1.99999b42b010ep-4 + }, + { // Entry 90 + 0x1.2df89d68ecd817feffbc8a02489a2c31p3, + 0x1.9e7f87cd813d0p1 + }, + { // Entry 91 + 0x1.7b0837a01c4bf7fffb4b24ca92057ec8p844, + 0x1.a64878765d9c6p9 + }, + { // Entry 92 + 0x1.279417bd1ee58000d657c88e959aa30ap0, + 0x1.a8cp-3 + }, + { // Entry 93 + 0x1.24e4cfa950d85801e4e97cf588eae855p858, + 0x1.ad18dca75151cp9 + }, + { // Entry 94 + 0x1.c9d7d9b687fd58033eb56233acd2e743p858, + 0x1.ad6b5ad6b5ad6p9 + }, + { // Entry 95 + 0x1.099ad18ba452580179e84b9f367c24fcp0, + 0x1.b34cc4566d0b8p-5 + }, + { // Entry 96 + 0x1.75db048626cc9801fdd8328e5e7c2ed3p55, + 0x1.bc5ee5fb5abdfp5 + }, + { // Entry 97 + 0x1.04eb9df9467ea8006ec2ae40fe4aa9a2p0, + 0x1.c20p-6 + }, + { // Entry 98 + 0x1.7336a662f7a3080000321c761912bb4dp3, + 0x1.c49f19020be99p1 + }, + { // Entry 99 + 0x1.00051180218ca7fffffa98a0aca1602bp0, + 0x1.d3f4cfa7e9e54p-14 + }, + { // Entry 100 + 0x1.0000146bb81ea0003b62e3d6d908a708p0, + 0x1.d76p-20 + }, + { // Entry 101 + 0x1.e7ede8155f4148013c4232abc7194d4dp0, + 0x1.dc6e371b8dcp-1 + }, + { // Entry 102 + 0x1.e96b5624c8f3e80004759e1237e298dfp1, + 0x1.ef57627bcd18dp0 + }, + { // Entry 103 + 0x1.661bd0e767ee37ffff6f19dcbf13f733p0, + 0x1.efe02bcccc3e0p-2 + }, + { // Entry 104 + 0x1.0b216e27ad0157ffb7b07aee744bc64bp0, + 0x1.f70p-5 + }, + { // Entry 105 + 0x1.fbda9b237a1437feffee12944ccc2abep1, + 0x1.fcff3fcff3fccp0 + }, + { // Entry 106 + 0x1.f0f5d9e1ab4cc825f655007e8ce8352fp7, + 0x1.fd3f46397c92cp2 + }, + { // Entry 107 + 0x1.fc52e836980af7fffb69887832df36bep1, + 0x1.fd56b236e47b0p0 + }, + { // Entry 108 + 0x1.fe974a46f07b082d32ce3627adbe734bp1, + 0x1.fefb71b3e5192p0 + }, + { // Entry 109 + 0x1.30558126879a682ff3f16fbfef12a959p0, + 0x1.fefffffffffffp-3 + }, + { // Entry 110 + 0x1.ea4afa2a3e59980143381c0d66f06241p511, + 0x1.ffeffffffff7fp8 + }, + { // Entry 111 + 0x1.ffd9308364f08f6f2617da7d0b994aeep1023, + 0x1.fffff1fffffffp9 + }, + { // Entry 112 + 0x1.ffffffffaa55e7ffffaa8e6b5f871352p0, + 0x1.ffffffff84699p-1 + }, + { // Entry 113 + 0x1.p0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 114 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1, + -0x1.0p-1 + }, + { // Entry 115 + 0x1.7b29358d41a6466f059badebc0f3ef2ap-1, + -0x1.bbbbbbbbbbbbcp-2 + }, + { // Entry 116 + 0x1.8d17d2b770067dd0b560997d709462f2p-1, + -0x1.7777777777778p-2 + }, + { // Entry 117 + 0x1.9fdf8bcce533d3850499cd91b4fe1b45p-1, + -0x1.3333333333334p-2 + }, + { // Entry 118 + 0x1.b38aa5682153ea10ec6aaf03b1e19a17p-1, + -0x1.ddddddddddde0p-3 + }, + { // Entry 119 + 0x1.c823e074ec128dd3e5a22665f53de430p-1, + -0x1.5555555555558p-3 + }, + { // Entry 120 + 0x1.ddb680117ab119ddf7de23abf70a974ap-1, + -0x1.999999999999fp-4 + }, + { // Entry 121 + 0x1.f44e4fb6c55d6f8461f0c24a6561e8cfp-1, + -0x1.111111111111cp-5 + }, + { // Entry 122 + 0x1.05fbd4d5b4d597517f2f14990c7c1d74p0, + 0x1.1111111111106p-5 + }, + { // Entry 123 + 0x1.125fbee250663e39a600925ecaf87e7ap0, + 0x1.9999999999994p-4 + }, + { // Entry 124 + 0x1.1f59ac3c7d6bf83c0aac08f864d917a0p0, + 0x1.5555555555552p-3 + }, + { // Entry 125 + 0x1.2cf0b5245e8f288fd79fb13137352d3cp0, + 0x1.ddddddddddddap-3 + }, + { // Entry 126 + 0x1.3b2c47bff8328699545ebbc1b8224569p0, + 0x1.3333333333331p-2 + }, + { // Entry 127 + 0x1.4a142c2b2e71dbfc2b446735ddfe02fep0, + 0x1.7777777777775p-2 + }, + { // Entry 128 + 0x1.59b088b8f29ed26e4afc853d2242f3dcp0, + 0x1.bbbbbbbbbbbb9p-2 + }, + { // Entry 129 + 0x1.6a09e667f3bcbd45589bc56188452388p0, + 0x1.ffffffffffffdp-2 + }, + { // Entry 130 + 0x1.p48, + 0x1.8p5 + }, + { // Entry 131 + 0x1.51cb453b953666ae8a73c377e704a131p48, + 0x1.8333333333333p5 + }, + { // Entry 132 + 0x1.bdb8cdadbe110aebd2ba26668f1a053fp48, + 0x1.8666666666666p5 + }, + { // Entry 133 + 0x1.2611186bae6654d144153826a8cbde6ap49, + 0x1.8999999999999p5 + }, + { // Entry 134 + 0x1.8406003b2ae41864a49eea54994df36fp49, + 0x1.8ccccccccccccp5 + }, + { // Entry 135 + 0x1.fffffffffffd3a37a020b8c4054cb869p49, + 0x1.8ffffffffffffp5 + }, + { // Entry 136 + 0x1.51cb453b953492665c6d2fb15083f6e2p50, + 0x1.9333333333332p5 + }, + { // Entry 137 + 0x1.bdb8cdadbe0ea104fa428cab0d5125a2p50, + 0x1.9666666666665p5 + }, + { // Entry 138 + 0x1.2611186bae64bd27820627b1e4c3f179p51, + 0x1.9999999999998p5 + }, + { // Entry 139 + 0x1.8406003b2ae1fe7a7a4c90ae9e7a858ep51, + 0x1.9cccccccccccbp5 + }, + { // Entry 140 + 0x1.fffffffffffa746f4041718be29130c3p51, + 0x1.9fffffffffffep5 + }, + { // Entry 141 + 0x1.p-52, + -0x1.ap5 + }, + { // Entry 142 + 0x1.51cb453b953666ae8a73c377e704a131p-52, + -0x1.9cccccccccccdp5 + }, + { // Entry 143 + 0x1.bdb8cdadbe110aebd2ba26668f1a053fp-52, + -0x1.999999999999ap5 + }, + { // Entry 144 + 0x1.2611186bae6654d144153826a8cbde6ap-51, + -0x1.9666666666667p5 + }, + { // Entry 145 + 0x1.8406003b2ae41864a49eea54994df36fp-51, + -0x1.9333333333334p5 + }, + { // Entry 146 + 0x1.fffffffffffd3a37a020b8c4054cb869p-51, + -0x1.9000000000001p5 + }, + { // Entry 147 + 0x1.51cb453b953492665c6d2fb15083f6e2p-50, + -0x1.8cccccccccccep5 + }, + { // Entry 148 + 0x1.bdb8cdadbe0ea104fa428cab0d5125a2p-50, + -0x1.899999999999bp5 + }, + { // Entry 149 + 0x1.2611186bae64bd27820627b1e4c3f179p-49, + -0x1.8666666666668p5 + }, + { // Entry 150 + 0x1.8406003b2ae1fe7a7a4c90ae9e7a858ep-49, + -0x1.8333333333335p5 + }, + { // Entry 151 + 0x1.fffffffffffa746f4041718be29130c3p-49, + -0x1.8000000000002p5 + }, + { // Entry 152 + 0x1.p768, + 0x1.8p9 + }, + { // Entry 153 + 0x1.p-896, + -0x1.cp9 + }, + { // Entry 154 + HUGE_VAL, + 0x1.4p12 + }, + { // Entry 155 + 0.0, + -0x1.6p12 + }, + { // Entry 156 + 0x1.ffffffffffd3a37a020b8e0d90ed7f3fp1023, + 0x1.fffffffffffffp9 + }, + { // Entry 157 + 0x1.p-1074, + -0x1.0c8p10 + }, + { // Entry 158 + 0x1.ffffffffffa746f404171ff3199aeed7p-1025, + -0x1.0000000000001p10 + }, + { // Entry 159 + 0x1.p-1024, + -0x1.0p10 + }, + { // Entry 160 + 0x1.0000000000162e42fefa3ae53369388cp-1024, + -0x1.fffffffffffffp9 + }, + { // Entry 161 + 0x1.ffffffffffd3a37a020b8e0d90ed7f3fp-513, + -0x1.0000000000001p9 + }, + { // Entry 162 + 0x1.p-512, + -0x1.0p9 + }, + { // Entry 163 + 0x1.00000000000b17217f7d1d351a389d40p-512, + -0x1.fffffffffffffp8 + }, + { // Entry 164 + 0x1.ffffffffffe9d1bd0105c68bc97ec194p-257, + -0x1.0000000000001p8 + }, + { // Entry 165 + 0x1.p-256, + -0x1.0p8 + }, + { // Entry 166 + 0x1.0000000000058b90bfbe8e8b2d3d4edep-256, + -0x1.fffffffffffffp7 + }, + { // Entry 167 + 0x1.fffffffffff4e8de8082e32725016147p-129, + -0x1.0000000000001p7 + }, + { // Entry 168 + 0x1.p-128, + -0x1.0p7 + }, + { // Entry 169 + 0x1.000000000002c5c85fdf4741bea6e77fp-128, + -0x1.fffffffffffffp6 + }, + { // Entry 170 + 0x1.fffffffffffa746f4041718be29130c3p-65, + -0x1.0000000000001p6 + }, + { // Entry 171 + 0x1.p-64, + -0x1.0p6 + }, + { // Entry 172 + 0x1.00000000000162e42fefa39fe95583c3p-64, + -0x1.fffffffffffffp5 + }, + { // Entry 173 + 0x1.fffffffffffd3a37a020b8c4054cb869p-33, + -0x1.0000000000001p5 + }, + { // Entry 174 + 0x1.p-32, + -0x1.0p5 + }, + { // Entry 175 + 0x1.000000000000b17217f7d1cfb72b45e2p-32, + -0x1.fffffffffffffp4 + }, + { // Entry 176 + 0x1.fffffffffffe9d1bd0105c6187a76436p-17, + -0x1.0000000000001p4 + }, + { // Entry 177 + 0x1.p-16, + -0x1.0p4 + }, + { // Entry 178 + 0x1.00000000000058b90bfbe8e7cc35c3f1p-16, + -0x1.fffffffffffffp3 + }, + { // Entry 179 + 0x1.ffffffffffff4e8de8082e30a513f41bp-9, + -0x1.0000000000001p3 + }, + { // Entry 180 + 0x1.p-8, + -0x1.0p3 + }, + { // Entry 181 + 0x1.0000000000002c5c85fdf473e242ea38p-8, + -0x1.fffffffffffffp2 + }, + { // Entry 182 + 0x1.ffffffffffffa746f40417184ada0a8ep-5, + -0x1.0000000000001p2 + }, + { // Entry 183 + 0x1.p-4, + -0x1.0p2 + }, + { // Entry 184 + 0x1.000000000000162e42fefa39f02b772cp-4, + -0x1.fffffffffffffp1 + }, + { // Entry 185 + 0x1.ffffffffffffd3a37a020b8c23810967p-3, + -0x1.0000000000001p1 + }, + { // Entry 186 + 0x1.p-2, + -0x1.0p1 + }, + { // Entry 187 + 0x1.0000000000000b17217f7d1cf7d83c1ap-2, + -0x1.fffffffffffffp0 + }, + { // Entry 188 + 0x1.ffffffffffffe9d1bd0105c6114585bbp-2, + -0x1.0000000000001p0 + }, + { // Entry 189 + 0x1.p-1, + -0x1.0p0 + }, + { // Entry 190 + 0x1.000000000000058b90bfbe8e7bdcbe2ep-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 191 + 0x1.ffffffffffe9d1bd0105c68bc97ec194p511, + 0x1.fffffffffffffp8 + }, + { // Entry 192 + 0x1.p512, + 0x1.0p9 + }, + { // Entry 193 + 0x1.0000000000162e42fefa3ae53369388cp512, + 0x1.0000000000001p9 + }, + { // Entry 194 + 0x1.fffffffffff4e8de8082e32725016147p255, + 0x1.fffffffffffffp7 + }, + { // Entry 195 + 0x1.p256, + 0x1.0p8 + }, + { // Entry 196 + 0x1.00000000000b17217f7d1d351a389d40p256, + 0x1.0000000000001p8 + }, + { // Entry 197 + 0x1.fffffffffffa746f4041718be29130c3p127, + 0x1.fffffffffffffp6 + }, + { // Entry 198 + 0x1.p128, + 0x1.0p7 + }, + { // Entry 199 + 0x1.0000000000058b90bfbe8e8b2d3d4edep128, + 0x1.0000000000001p7 + }, + { // Entry 200 + 0x1.fffffffffffd3a37a020b8c4054cb869p63, + 0x1.fffffffffffffp5 + }, + { // Entry 201 + 0x1.p64, + 0x1.0p6 + }, + { // Entry 202 + 0x1.000000000002c5c85fdf4741bea6e77fp64, + 0x1.0000000000001p6 + }, + { // Entry 203 + 0x1.fffffffffffe9d1bd0105c6187a76436p31, + 0x1.fffffffffffffp4 + }, + { // Entry 204 + 0x1.p32, + 0x1.0p5 + }, + { // Entry 205 + 0x1.00000000000162e42fefa39fe95583c3p32, + 0x1.0000000000001p5 + }, + { // Entry 206 + 0x1.ffffffffffff4e8de8082e30a513f41bp15, + 0x1.fffffffffffffp3 + }, + { // Entry 207 + 0x1.p16, + 0x1.0p4 + }, + { // Entry 208 + 0x1.000000000000b17217f7d1cfb72b45e2p16, + 0x1.0000000000001p4 + }, + { // Entry 209 + 0x1.ffffffffffffa746f40417184ada0a8ep7, + 0x1.fffffffffffffp2 + }, + { // Entry 210 + 0x1.p8, + 0x1.0p3 + }, + { // Entry 211 + 0x1.00000000000058b90bfbe8e7cc35c3f1p8, + 0x1.0000000000001p3 + }, + { // Entry 212 + 0x1.ffffffffffffd3a37a020b8c23810967p3, + 0x1.fffffffffffffp1 + }, + { // Entry 213 + 0x1.p4, + 0x1.0p2 + }, + { // Entry 214 + 0x1.0000000000002c5c85fdf473e242ea38p4, + 0x1.0000000000001p2 + }, + { // Entry 215 + 0x1.ffffffffffffe9d1bd0105c6114585bbp1, + 0x1.fffffffffffffp0 + }, + { // Entry 216 + 0x1.p2, + 0x1.0p1 + }, + { // Entry 217 + 0x1.000000000000162e42fefa39f02b772cp2, + 0x1.0000000000001p1 + }, + { // Entry 218 + 0x1.fffffffffffff4e8de8082e30884031fp0, + 0x1.fffffffffffffp-1 + }, + { // Entry 219 + 0x1.p1, + 0x1.0p0 + }, + { // Entry 220 + 0x1.0000000000000b17217f7d1cf7d83c1ap1, + 0x1.0000000000001p0 + }, + { // Entry 221 + 0x1.6a09e667f3bcc131216634b8a8ffb7b0p-1, + -0x1.0000000000001p-1 + }, + { // Entry 222 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1, + -0x1.0p-1 + }, + { // Entry 223 + 0x1.6a09e667f3bcccf47bc582be0b70aea4p-1, + -0x1.fffffffffffffp-2 + }, + { // Entry 224 + 0x1.ae89f995ad3ad13ebe2fd437cdc4d86bp-1, + -0x1.0000000000001p-2 + }, + { // Entry 225 + 0x1.ae89f995ad3ad5e8734d1773205a7fbcp-1, + -0x1.0p-2 + }, + { // Entry 226 + 0x1.ae89f995ad3ad83d4ddbb910c9aa2c84p-1, + -0x1.fffffffffffffp-3 + }, + { // Entry 227 + 0x1.d5818dcfba486fd2c0b58591353e1431p-1, + -0x1.0000000000001p-3 + }, + { // Entry 228 + 0x1.d5818dcfba48725da05aeb66e0dca9f5p-1, + -0x1.0p-3 + }, + { // Entry 229 + 0x1.d5818dcfba4873a3102d9e51b6ad4734p-1, + -0x1.fffffffffffffp-4 + }, + { // Entry 230 + 0x1.ea4afa2a490d97051edfd6f5de84f1fep-1, + -0x1.0000000000001p-4 + }, + { // Entry 231 + 0x1.ea4afa2a490d9858f73a18f5db301f86p-1, + -0x1.0p-4 + }, + { // Entry 232 + 0x1.ea4afa2a490d9902e36739f5d9860ea0p-1, + -0x1.fffffffffffffp-5 + }, + { // Entry 233 + 0x1.f50765b6e45405c75396b27147029cc0p-1, + -0x1.0000000000001p-5 + }, + { // Entry 234 + 0x1.f50765b6e4540674f84b762862baff99p-1, + -0x1.0p-5 + }, + { // Entry 235 + 0x1.f50765b6e45406cbcaa5d803f0974796p-1, + -0x1.fffffffffffffp-6 + }, + { // Entry 236 + 0x1.fa7c1819e90d8291461c9eac38e21676p-1, + -0x1.0000000000001p-6 + }, + { // Entry 237 + 0x1.fa7c1819e90d82e90a7e74b263c1dc06p-1, + -0x1.0p-6 + }, + { // Entry 238 + 0x1.fa7c1819e90d8314ecaf5fb57931c482p-1, + -0x1.fffffffffffffp-7 + }, + { // Entry 239 + 0x1.fd3c22b8f71f106b3c73a454f80c00ecp-1, + -0x1.0000000000001p-7 + }, + { // Entry 240 + 0x1.fd3c22b8f71f10975ba4b32bcf3a5e12p-1, + -0x1.0p-7 + }, + { // Entry 241 + 0x1.fd3c22b8f71f10ad6b3d3a973ad18e15p-1, + -0x1.fffffffffffffp-8 + }, + { // Entry 242 + 0x1.fe9d96b2a23d9134414ed15eb175bc62p-1, + -0x1.0000000000001p-8 + }, + { // Entry 243 + 0x1.fe9d96b2a23d914a6037442fde31baf8p-1, + -0x1.0p-8 + }, + { // Entry 244 + 0x1.fe9d96b2a23d91556fab7d98748fba9fp-1, + -0x1.fffffffffffffp-9 + }, + { // Entry 245 + 0x1.ff4eaca4391b5d982b2a046646772a87p-1, + -0x1.0000000000001p-9 + }, + { // Entry 246 + 0x1.ff4eaca4391b5da33e743691f7298b12p-1, + -0x1.0p-9 + }, + { // Entry 247 + 0x1.ff4eaca4391b5da8c8194fa7cf82bb6ep-1, + -0x1.fffffffffffffp-10 + }, + { // Entry 248 + 0x1.ffa74ea381efc2121cd91a3e6475a7d8p-1, + -0x1.0000000000001p-10 + }, + { // Entry 249 + 0x1.ffa74ea381efc217a773f15c025f7c0dp-1, + -0x1.0p-10 + }, + { // Entry 250 + 0x1.ffa74ea381efc21a6cc15cead154662dp-1, + -0x1.fffffffffffffp-11 + }, + { // Entry 251 + 0x1.fff4e8fd40080cc795b0e5e46a91f0ffp-1, + -0x1.0000000000001p-13 + }, + { // Entry 252 + 0x1.fff4e8fd40080cc8471f25ef2480b00bp-1, + -0x1.0p-13 + }, + { // Entry 253 + 0x1.fff4e8fd40080cc89fd645f481780f90p-1, + -0x1.fffffffffffffp-14 + }, + { // Entry 254 + 0x1.6a09e667f3bcc51cea30a40fc9c52aecp0, + 0x1.fffffffffffffp-2 + }, + { // Entry 255 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.0p-1 + }, + { // Entry 256 + 0x1.6a09e667f3bcd0e0448ff2152c56bf1fp0, + 0x1.0000000000001p-1 + }, + { // Entry 257 + 0x1.306fe0a31b7151388348ff0de074c5a3p0, + 0x1.fffffffffffffp-3 + }, + { // Entry 258 + 0x1.306fe0a31b7152de8d5a46305c85edecp0, + 0x1.0p-2 + }, + { // Entry 259 + 0x1.306fe0a31b71562aa17cd47554af19b4p0, + 0x1.0000000000001p-2 + }, + { // Entry 260 + 0x1.172b83c7d517ad0c7647240cbf259d0dp0, + 0x1.fffffffffffffp-4 + }, + { // Entry 261 + 0x1.172b83c7d517adcdf7c8c50eb14a7920p0, + 0x1.0p-3 + }, + { // Entry 262 + 0x1.172b83c7d517af50facc07129595c3a8p0, + 0x1.0000000000001p-3 + }, + { // Entry 263 + 0x1.0b5586cf9890f5cce4ef0d92edf98f81p0, + 0x1.fffffffffffffp-5 + }, + { // Entry 264 + 0x1.0b5586cf9890f6298b92b71842a98364p0, + 0x1.0p-4 + }, + { // Entry 265 + 0x1.0b5586cf9890f6e2d8da0a22ec09cb7dp0, + 0x1.0000000000001p-4 + }, + { // Entry 266 + 0x1.059b0d31585743812721a46bbd07f042p0, + 0x1.fffffffffffffp-6 + }, + { // Entry 267 + 0x1.059b0d31585743ae7c548eb68ca417fep0, + 0x1.0p-5 + }, + { // Entry 268 + 0x1.059b0d315857440926ba634c2bdc7f06p0, + 0x1.0000000000001p-5 + }, + { // Entry 269 + 0x1.02c9a3e778060ed08bb2bf3a4c4bffddp0, + 0x1.fffffffffffffp-7 + }, + { // Entry 270 + 0x1.02c9a3e778060ee6f7caca4f7a29bde9p0, + 0x1.0p-6 + }, + { // Entry 271 + 0x1.02c9a3e778060f13cffae079d5e53fd5p0, + 0x1.0000000000001p-6 + }, + { // Entry 272 + 0x1.0163da9fb33356cd23daa2a4de92b010p0, + 0x1.fffffffffffffp-8 + }, + { // Entry 273 + 0x1.0163da9fb33356d84a66ae336dcdfa40p0, + 0x1.0p-7 + }, + { // Entry 274 + 0x1.0163da9fb33356ee977ec5508c449011p0, + 0x1.0000000000001p-7 + }, + { // Entry 275 + 0x1.00b1afa5abcbed5b9a41071a509ceaf7p0, + 0x1.fffffffffffffp-9 + }, + { // Entry 276 + 0x1.00b1afa5abcbed6129ab13ec11dc9544p0, + 0x1.0p-8 + }, + { // Entry 277 + 0x1.00b1afa5abcbed6c487f2d8f945bea39p0, + 0x1.0000000000001p-8 + }, + { // Entry 278 + 0x1.0058c86da1c09e9f385b4a201180af89p0, + 0x1.fffffffffffffp-10 + }, + { // Entry 279 + 0x1.0058c86da1c09ea1ff19d294cf2f679cp0, + 0x1.0p-9 + }, + { // Entry 280 + 0x1.0058c86da1c09ea78c96e37e4a8cd7d8p0, + 0x1.0000000000001p-9 + }, + { // Entry 281 + 0x1.002c605e2e8cec4f0a000b089708b90dp0, + 0x1.fffffffffffffp-11 + }, + { // Entry 282 + 0x1.002c605e2e8cec506d21bfc89a23a010p0, + 0x1.0p-10 + }, + { // Entry 283 + 0x1.002c605e2e8cec5333652948a0596e1cp0, + 0x1.0000000000001p-10 + }, + { // Entry 284 + 0x1.00058ba01fb9f96d404f58b2f213c6ccp0, + 0x1.fffffffffffffp-14 + }, + { // Entry 285 + 0x1.00058ba01fb9f96d6cacd4b180917c3ep0, + 0x1.0p-13 + }, + { // Entry 286 + 0x1.00058ba01fb9f96dc567ccae9d8ce721p0, + 0x1.0000000000001p-13 + }, + { // Entry 287 + 0.0, + -0x1.0c80000000001p10 + }, + { // Entry 288 + 0x1.p-1074, + -0x1.0c8p10 + }, + { // Entry 289 + 0x1.00000000002c5c85fdf477b662b26945p-1074, + -0x1.0c7ffffffffffp10 + }, + { // Entry 290 + 0.0, + -0x1.0cc0000000001p10 + }, + { // Entry 291 + 0.0, + -0x1.0ccp10 + }, + { // Entry 292 + 0.0, + -0x1.0cbffffffffffp10 + }, + { // Entry 293 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 294 + 0.0, + -HUGE_VAL + }, + { // Entry 295 + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 296 + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 297 + 0x1.1a6637e666f82e1bf9bdc293e110c586p3, + 0x1.921fb54442d18p1 + }, + { // Entry 298 + 0x1.d0231bd5e9cfd1c56d8c57fb9adc16e1p-4, + -0x1.921fb54442d18p1 + }, + { // Entry 299 + 0x1.7c3f73e5e9df4955e51db2c96c4cd483p1, + 0x1.921fb54442d18p0 + }, + { // Entry 300 + 0x1.58b3940afed165e46fbb76d0cb01dd87p-2, + -0x1.921fb54442d18p0 + }, + { // Entry 301 + 0x1.0000000000000b17217f7d1cf7d83c1ap1, + 0x1.0000000000001p0 + }, + { // Entry 302 + 0x1.ffffffffffffe9d1bd0105c6114585bbp-2, + -0x1.0000000000001p0 + }, + { // Entry 303 + 0x1.p1, + 0x1.0p0 + }, + { // Entry 304 + 0x1.p-1, + -0x1.0p0 + }, + { // Entry 305 + 0x1.fffffffffffff4e8de8082e30884031fp0, + 0x1.fffffffffffffp-1 + }, + { // Entry 306 + 0x1.000000000000058b90bfbe8e7bdcbe2ep-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 307 + 0x1.b93bbf8582e129341e24ff465142adfap0, + 0x1.921fb54442d18p-1 + }, + { // Entry 308 + 0x1.290ee6a5e83cf78da063060a3f50cc7fp-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 309 + 0x1.p0, + 0x1.0p-1022 + }, + { // Entry 310 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p-1022 + }, + { // Entry 311 + 0x1.p0, + 0x1.0000000000001p-1022 + }, + { // Entry 312 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0000000000001p-1022 + }, + { // Entry 313 + 0x1.p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 314 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffep-1023 + }, + { // Entry 315 + 0x1.p0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 316 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 317 + 0x1.p0, + 0x1.0p-1073 + }, + { // Entry 318 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p-1073 + }, + { // Entry 319 + 0x1.p0, + 0x1.0p-1074 + }, + { // Entry 320 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 321 + 0x1.p0, + 0.0 + }, + { // Entry 322 + 0x1.p0, + -0.0 + }, + { // Entry 323 + 0x1.ffffffffffd3a37a020b8e0d90ed7f3fp1023, + 0x1.fffffffffffffp9 + }, + { // Entry 324 + HUGE_VAL, + 0x1.0p10 + }, + { // Entry 325 + 0x1.p-1022, + -0x1.ff0p9 + }, + { // Entry 326 + 0x1.ffffffffffd3a37a020b8e0d90ed7f3fp-1023, + -0x1.ff00000000001p9 + }, + { // Entry 327 + 0x1.p125, + 0x1.f40p6 + }, + { // Entry 328 + 0x1.p-125, + -0x1.f40p6 + }, + { // Entry 329 + 0x1.p2, + 0x1.0p1 + }, + { // Entry 330 + 0x1.p-2, + -0x1.0p1 + } +}; diff --git a/tests/math_data/exp2f_intel_data.h b/tests/math_data/exp2f_intel_data.h new file mode 100644 index 000000000..5dc52ac77 --- /dev/null +++ b/tests/math_data/exp2f_intel_data.h @@ -0,0 +1,1126 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_exp2f_intel_data[] = { + { // Entry 0 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.p-149 + }, + { // Entry 1 + 0x1.p-128, + -0x1.p7 + }, + { // Entry 2 + 0x1.fffe9d1c4b0f37f413d44c66c0481834p-129, + -0x1.000002p7 + }, + { // Entry 3 + 0x1.ae89930028efb7886635034db7054020p-1, + -0x1.000160p-2 + }, + { // Entry 4 + 0x1.ffa72300006e20fa0359c57f1b36a8e6p-1, + -0x1.007ep-10 + }, + { // Entry 5 + 0x1.f4f5d8ffcfec5e7b589aa48f5b5d9017p-1, + -0x1.019ep-5 + }, + { // Entry 6 + 0x1.1c0df9b94df3cdb41628976927bf54e5p-129, + -0x1.01b330p7 + }, + { // Entry 7 + 0x1.e9f0bd0139ec689f72fb67c4e2ca601cp-1, + -0x1.0440p-4 + }, + { // Entry 8 + 0x1.5effb0fffd19b4376d4e6ae2b16b3a21p-1, + -0x1.16e0p-1 + }, + { // Entry 9 + 0x1.d737a7fa4dbf2cfb6dba6ec6817ed03bp-2, + -0x1.1ea8p0 + }, + { // Entry 10 + 0x1.a4e5b30000f59daf40326c212c5a2fcbp-1, + -0x1.2175bcp-2 + }, + { // Entry 11 + 0x1.9f7f16feb25f3000d062055413068a97p-19, + -0x1.24d228p4 + }, + { // Entry 12 + 0x1.00063d164d3512a13946a9d4477d594fp-149, + -0x1.29ffeep7 + }, + { // Entry 13 + 0.0f, + -0x1.2a0002p7 + }, + { // Entry 14 + 0.0f, + -0x1.2a0004p7 + }, + { // Entry 15 + 0.0f, + -0x1.2a14c0p7 + }, + { // Entry 16 + 0.0f, + -0x1.2c000ap7 + }, + { // Entry 17 + 0x1.a0d9ecffff19d4152b82c660dc209a77p-1, + -0x1.2fbad0p-2 + }, + { // Entry 18 + 0x1.c6052f00589d4f803738f8fcf36fa00bp-1, + -0x1.6318d0p-3 + }, + { // Entry 19 + 0x1.f7cbf0fffe32af4dda01fb5554e5bdd5p-1, + -0x1.7dc8e6p-6 + }, + { // Entry 20 + 0x1.994b4f09b6ee04bdf5b421d4e95dd38ep-107, + -0x1.a94ac2p6 + }, + { // Entry 21 + 0x1.9768dd0bafc9d9b1a97a54711d499b74p-4, + -0x1.aa326cp1 + }, + { // Entry 22 + 0x1.d58197fb38fa3c1fe12e7ad59c08ff21p-8, + -0x1.c7fffep2 + }, + { // Entry 23 + 0x1.6d7a68b2e47d3110712df2595c91f23cp-1, + -0x1.f207fep-2 + }, + { // Entry 24 + 0x1.be9e93477301949016bc2c2b50bfe2cap-126, + -0x1.f4c9d4p6 + }, + { // Entry 25 + 0x1.d61027f7bae9f1964c205dfcbe3f4679p-1, + -0x1.f8fe40p-4 + }, + { // Entry 26 + 0x1.4c6fea0579dc794e989c3505e39be48fp-127, + -0x1.fa7e04p6 + }, + { // Entry 27 + 0x1.d5da00fff7fc53eb4fff78cd7d1f080bp-1, + -0x1.fba72ap-4 + }, + { // Entry 28 + 0x1.05c9d13b70cff2cde5f75b870dacca62p-127, + -0x1.fbdef8p6 + }, + { // Entry 29 + 0x1.d5d2f0fa1f23ba0b7a06c89cc0128f77p-1, + -0x1.fbfffep-4 + }, + { // Entry 30 + 0x1.ea5a64f56a7ba762fe38fe8eb4a9dd03p-1, + -0x1.fe8c64p-5 + }, + { // Entry 31 + 0x1.ea4cccf5323b8c4405f1a736e586738fp-1, + -0x1.ffd40cp-5 + }, + { // Entry 32 + 0x1.0026deff8e53c240976d296b38100d8ap-16, + -0x1.fff8fep3 + }, + { // Entry 33 + 0x1.ea4b39f81ba66804ecab3d71073e27b3p-1, + -0x1.fff9fep-5 + }, + { // Entry 34 + 0x1.007969bfdcbdfb3e58bdf333f53a3c1dp-128, + -0x1.fffd44p6 + }, + { // Entry 35 + 0x1.0056b360e5a2dfe9ee49875dd529e33bp-128, + -0x1.fffe0cp6 + }, + { // Entry 36 + 0x1.fff4e90010d7f0f5d5e88ed4851d1542p-1, + -0x1.ffff7ep-14 + }, + { // Entry 37 + 0x1.001154ba7ed485fbf804cd8280d4ca0fp-128, + -0x1.ffff9cp6 + }, + { // Entry 38 + 0x1.d58194f64f579173d9ee5d3c576ef523p-1, + -0x1.ffffa6p-4 + }, + { // Entry 39 + 0x1.f50767075372b29c5577b7a9610f8d69p-1, + -0x1.ffffc2p-6 + }, + { // Entry 40 + 0x1.6a09f2a8c76a7a3cfef0de81f2b79d8ep-1, + -0x1.ffffcep-2 + }, + { // Entry 41 + 0x1.ae89fed49903eff01fb8da20ee306a5ep-1, + -0x1.ffffdcp-3 + }, + { // Entry 42 + 0x1.00533afff5eeac6d2dc9023c0b872bdap1, + 0x1.0078p0 + }, + { // Entry 43 + 0x1.6a4a9ea1370039bb654a21a808d42ea9p0, + 0x1.0084p-1 + }, + { // Entry 44 + 0x1.6c0213db20e12d00b593e21b41ec6f7bp0, + 0x1.0401e0p-1 + }, + { // Entry 45 + 0x1.6d7c62dea2f8a79892ffb0a423c8312dp0, + 0x1.07p-1 + }, + { // Entry 46 + 0x1.02ea9d000ca7a3d1c9f2feff1d75d9e8p0, + 0x1.0bc2f0p-6 + }, + { // Entry 47 + 0x1.78d0620424ed2002d0f36cb6012c092cp0, + 0x1.1d8cp-1 + }, + { // Entry 48 + 0x1.8fbcc30b8a9d1ea185426ae7254fa29ap4, + 0x1.29256ap2 + }, + { // Entry 49 + 0x1.39e44cfffffe38aff28704c732b540fdp0, + 0x1.2d2eb8p-2 + }, + { // Entry 50 + 0x1.9394c50a159080ad377f98e1d382d21ap0, + 0x1.503cf0p-1 + }, + { // Entry 51 + 0x1.96718703f6190777431ca8e9c8d1e441p0, + 0x1.557558p-1 + }, + { // Entry 52 + 0x1.be25dcfffffde8b04e7c7b1baec7abdbp2, + 0x1.669390p1 + }, + { // Entry 53 + 0x1.7ca40f0c7bdc8b5683fc0560c6159f18p24, + 0x1.892816p4 + }, + { // Entry 54 + 0x1.2536aaffff141c8870e8d4c2352e92eap0, + 0x1.9103c2p-3 + }, + { // Entry 55 + 0x1.7ca44ef297d9c32fe00db5598642e868p1, + 0x1.92819ep0 + }, + { // Entry 56 + 0x1.000008ff47d7ee2ce82ae0bdaaa55772p0, + 0x1.9f5dc8p-21 + }, + { // Entry 57 + 0x1.93cdf30bca3f1ccc6eeb23eb6545f0fdp6, + 0x1.aa14b2p2 + }, + { // Entry 58 + 0x1.13252d0000f4b53775393a04dbee6cd3p0, + 0x1.aa2fc0p-4 + }, + { // Entry 59 + 0x1.28eb540000c5e726057f3ee56612a843p0, + 0x1.b61f44p-3 + }, + { // Entry 60 + 0x1.b5fead000022a86ec9bc4232da47f2fbp1, + 0x1.c65754p0 + }, + { // Entry 61 + 0x1.de844cffff0b21e0a471e9d560a514cbp0, + 0x1.ce0ac0p-1 + }, + { // Entry 62 + 0x1.000504ffff072985d71458d5d453850ep0, + 0x1.cf72b2p-14 + }, + { // Entry 63 + 0x1.c1c278fffb6bc7da81e20c43aeb9ce92p1, + 0x1.d02174p0 + }, + { // Entry 64 + 0x1.e1ae78ffff0000b5ca88867f54dcc891p0, + 0x1.d2e940p-1 + }, + { // Entry 65 + 0x1.1535d3000000cd03211e77e8de4eb7d2p0, + 0x1.d65f1cp-4 + }, + { // Entry 66 + 0x1.00051c0000007f998be0d45ef35f3d57p0, + 0x1.d7be2ep-14 + }, + { // Entry 67 + 0x1.f294d4fffeba9ad4fe553bc197fac243p0, + 0x1.ec62p-1 + }, + { // Entry 68 + 0x1.f294d4fffeba9ad4fe553bc197fac243p30, + 0x1.ef6310p4 + }, + { // Entry 69 + 0x1.ea3cb509a95f60a5d4162ea7e476f787p3, + 0x1.f7faa0p1 + }, + { // Entry 70 + 0x1.03343b47502c1f28eb63e7f42392c024p127, + 0x1.fc1260p6 + }, + { // Entry 71 + 0x1.16fc8b0000c873958ce77b558bb04b77p0, + 0x1.fc1d68p-4 + }, + { // Entry 72 + 0x1.69ea89000a943cbb444fe33ef6484b14p0, + 0x1.ff7ffep-2 + }, + { // Entry 73 + 0x1.69f25d08c9bdef92b155047e4e2700f8p0, + 0x1.ff9ff2p-2 + }, + { // Entry 74 + 0x1.ffef58078cd6d0d5f1fe65744c616496p3, + 0x1.fff9fep1 + }, + { // Entry 75 + 0x1.fff37b0a5ebca011d756edb4d62e7666p7, + 0x1.fffdbep2 + }, + { // Entry 76 + 0x1.fffe180726a04201907cd73f88488d80p31, + 0x1.ffffeap4 + }, + { // Entry 77 + 0x1.00000000000000000000000000000b17p0, + 0x1.fffffcp-117 + }, + { // Entry 78 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1, + -0x1.p-1 + }, + { // Entry 79 + 0x1.7b29357bbc48d2953781228b2e9ba474p-1, + -0x1.bbbbbcp-2 + }, + { // Entry 80 + 0x1.8d17d292bd084f608099344c40ba156ap-1, + -0x1.777778p-2 + }, + { // Entry 81 + 0x1.9fdf8b933e38a099e8b275aa655d720dp-1, + -0x1.333334p-2 + }, + { // Entry 82 + 0x1.b38aa517a000872460ce450b415297eep-1, + -0x1.dddde0p-3 + }, + { // Entry 83 + 0x1.c823e00b880a561008d5c1556a842a74p-1, + -0x1.555558p-3 + }, + { // Entry 84 + 0x1.ddb67fb66b77c35102ce41874e657eb6p-1, + -0x1.99999ep-4 + }, + { // Entry 85 + 0x1.f44e4f6ba2528a510e8a7cb8e11930bdp-1, + -0x1.111118p-5 + }, + { // Entry 86 + 0x1.05fbd4b8f440f2c1ccdb5cddeff66b41p0, + 0x1.11110cp-5 + }, + { // Entry 87 + 0x1.125fbecf4bc054e03912db82366b6cb5p0, + 0x1.999998p-4 + }, + { // Entry 88 + 0x1.1f59ac1b4b3e82b6e5a66ac50a8857dbp0, + 0x1.555554p-3 + }, + { // Entry 89 + 0x1.2cf0b4f3b26e63c9d3cb40b4bae31586p0, + 0x1.dddddcp-3 + }, + { // Entry 90 + 0x1.3b2c477e6e5f87fea4b02ead824f269ap0, + 0x1.333332p-2 + }, + { // Entry 91 + 0x1.4a142bd74a641ce0ee908779b7d214fcp0, + 0x1.777776p-2 + }, + { // Entry 92 + 0x1.59b088511d77ab47295346cb3a773b28p0, + 0x1.bbbbbap-2 + }, + { // Entry 93 + 0x1.6a09e5ea7aa390dbf868b7278b744829p0, + 0x1.fffffep-2 + }, + { // Entry 94 + 0x1.p48, + 0x1.80p5 + }, + { // Entry 95 + 0x1.51cb5ca59853a1e54593c77e7eb8db83p48, + 0x1.833334p5 + }, + { // Entry 96 + 0x1.bdb90b780b33357a359a52b9f7ce88d2p48, + 0x1.866668p5 + }, + { // Entry 97 + 0x1.26115591f845278abb13016348ac2f38p49, + 0x1.89999cp5 + }, + { // Entry 98 + 0x1.84066bd07579e097880a08553b47167ap49, + 0x1.8cccd0p5 + }, + { // Entry 99 + 0x1.000058b91b5bc9ae2eed81e9b7d4cfacp50, + 0x1.900004p5 + }, + { // Entry 100 + 0x1.51cbd1b7c03c121b017b7a63e5e7df2cp50, + 0x1.933338p5 + }, + { // Entry 101 + 0x1.bdb9a5f1f180173634542f42d5122e11p50, + 0x1.96666cp5 + }, + { // Entry 102 + 0x1.2611bb7c8fa36f3a6c96868064ca2d31p51, + 0x1.9999a0p5 + }, + { // Entry 103 + 0x1.8406f24b3ca53ff6aff423c41ab06efap51, + 0x1.9cccd4p5 + }, + { // Entry 104 + 0x1.p52, + 0x1.a0p5 + }, + { // Entry 105 + 0x1.p-52, + -0x1.a0p5 + }, + { // Entry 106 + 0x1.51cb5ca59853a1e54593c77e7eb8db83p-52, + -0x1.9cccccp5 + }, + { // Entry 107 + 0x1.bdb90b780b33357a359a52b9f7ce88d2p-52, + -0x1.999998p5 + }, + { // Entry 108 + 0x1.26115591f845278abb13016348ac2f38p-51, + -0x1.966664p5 + }, + { // Entry 109 + 0x1.84066bd07579e097880a08553b47167ap-51, + -0x1.933330p5 + }, + { // Entry 110 + 0x1.000058b91b5bc9ae2eed81e9b7d4cfacp-50, + -0x1.8ffffcp5 + }, + { // Entry 111 + 0x1.51cbd1b7c03c121b017b7a63e5e7df2cp-50, + -0x1.8cccc8p5 + }, + { // Entry 112 + 0x1.bdb9a5f1f180173634542f42d5122e11p-50, + -0x1.899994p5 + }, + { // Entry 113 + 0x1.2611bb7c8fa36f3a6c96868064ca2d31p-49, + -0x1.866660p5 + }, + { // Entry 114 + 0x1.8406f24b3ca53ff6aff423c41ab06efap-49, + -0x1.83332cp5 + }, + { // Entry 115 + 0x1.p-48, + -0x1.80p5 + }, + { // Entry 116 + HUGE_VALF, + 0x1.80p9 + }, + { // Entry 117 + 0.0f, + -0x1.c0p9 + }, + { // Entry 118 + HUGE_VALF, + 0x1.40p12 + }, + { // Entry 119 + 0.0f, + -0x1.60p12 + }, + { // Entry 120 + 0x1.ffff4e8e06c7e8a2a84daed8ec56d6c3p127, + 0x1.fffffep6 + }, + { // Entry 121 + 0x1.p-149, + -0x1.2ap7 + }, + { // Entry 122 + 0x1.fffe9d1c4b0f37f413d44c66c0481834p-129, + -0x1.000002p7 + }, + { // Entry 123 + 0x1.p-128, + -0x1.p7 + }, + { // Entry 124 + 0x1.000058b91b5bc9ae2eed81e9b7d4cfacp-128, + -0x1.fffffep6 + }, + { // Entry 125 + 0x1.ffff4e8e06c7e8a2a84daed8ec56d6c3p-65, + -0x1.000002p6 + }, + { // Entry 126 + 0x1.p-64, + -0x1.p6 + }, + { // Entry 127 + 0x1.00002c5c89d5ec6ca4d7c8acc017b7c9p-64, + -0x1.fffffep5 + }, + { // Entry 128 + 0x1.ffffa746fbb4062677bd0f506f391265p-33, + -0x1.000002p5 + }, + { // Entry 129 + 0x1.p-32, + -0x1.p5 + }, + { // Entry 130 + 0x1.0000162e43f4f831060e02d839a9d16dp-32, + -0x1.fffffep4 + }, + { // Entry 131 + 0x1.ffffd3a37bee075de43d49b9f60d05b0p-17, + -0x1.000002p4 + }, + { // Entry 132 + 0x1.p-16, + -0x1.p4 + }, + { // Entry 133 + 0x1.00000b1721bcfc99d9f890ea06911763p-16, + -0x1.fffffep3 + }, + { // Entry 134 + 0x1.ffffe9d1bd7c04bc4825147a8c0e63e3p-9, + -0x1.000002p3 + }, + { // Entry 135 + 0x1.p-8, + -0x1.p3 + }, + { // Entry 136 + 0x1.0000058b90cf1e6d97f9ca14dbcc1628p-8, + -0x1.fffffep2 + }, + { // Entry 137 + 0x1.fffff4e8de9f42a0cf11f7912ea17ee2p-5, + -0x1.000002p2 + }, + { // Entry 138 + 0x1.p-4, + -0x1.p2 + }, + { // Entry 139 + 0x1.000002c5c863b73f016468f6bac5ca2cp-4, + -0x1.fffffep1 + }, + { // Entry 140 + 0x1.fffffa746f47f160fcf890e3b801aeddp-3, + -0x1.000002p1 + }, + { // Entry 141 + 0x1.p-2, + -0x1.p1 + }, + { // Entry 142 + 0x1.00000162e430e5a18f6119e3c02282a5p-2, + -0x1.fffffep0 + }, + { // Entry 143 + 0x1.fffffd3a37a20cb4a12e24eaf25e3907p-2, + -0x1.000002p0 + }, + { // Entry 144 + 0x1.p-1, + -0x1.p0 + }, + { // Entry 145 + 0x1.000000b1721835514b86e6d96efd1bffp-1, + -0x1.fffffep-1 + }, + { // Entry 146 + 0x1.ffffa746fbb4062677bd0f506f391265p63, + 0x1.fffffep5 + }, + { // Entry 147 + 0x1.p64, + 0x1.p6 + }, + { // Entry 148 + 0x1.000058b91b5bc9ae2eed81e9b7d4cfacp64, + 0x1.000002p6 + }, + { // Entry 149 + 0x1.ffffd3a37bee075de43d49b9f60d05b0p31, + 0x1.fffffep4 + }, + { // Entry 150 + 0x1.p32, + 0x1.p5 + }, + { // Entry 151 + 0x1.00002c5c89d5ec6ca4d7c8acc017b7c9p32, + 0x1.000002p5 + }, + { // Entry 152 + 0x1.ffffe9d1bd7c04bc4825147a8c0e63e3p15, + 0x1.fffffep3 + }, + { // Entry 153 + 0x1.p16, + 0x1.p4 + }, + { // Entry 154 + 0x1.0000162e43f4f831060e02d839a9d16dp16, + 0x1.000002p4 + }, + { // Entry 155 + 0x1.fffff4e8de9f42a0cf11f7912ea17ee2p7, + 0x1.fffffep2 + }, + { // Entry 156 + 0x1.p8, + 0x1.p3 + }, + { // Entry 157 + 0x1.00000b1721bcfc99d9f890ea06911763p8, + 0x1.000002p3 + }, + { // Entry 158 + 0x1.fffffa746f47f160fcf890e3b801aeddp3, + 0x1.fffffep1 + }, + { // Entry 159 + 0x1.p4, + 0x1.p2 + }, + { // Entry 160 + 0x1.0000058b90cf1e6d97f9ca14dbcc1628p4, + 0x1.000002p2 + }, + { // Entry 161 + 0x1.fffffd3a37a20cb4a12e24eaf25e3907p1, + 0x1.fffffep0 + }, + { // Entry 162 + 0x1.p2, + 0x1.p1 + }, + { // Entry 163 + 0x1.000002c5c863b73f016468f6bac5ca2cp2, + 0x1.000002p1 + }, + { // Entry 164 + 0x1.fffffe9d1bd08b5b58ee4879a122966ep0, + 0x1.fffffep-1 + }, + { // Entry 165 + 0x1.p1, + 0x1.p0 + }, + { // Entry 166 + 0x1.00000162e430e5a18f6119e3c02282a5p1, + 0x1.000002p0 + }, + { // Entry 167 + 0x1.6a09e56d018a842b90dd06c362fef7adp-1, + -0x1.000002p-1 + }, + { // Entry 168 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1, + -0x1.p-1 + }, + { // Entry 169 + 0x1.6a09e6e56cd62cb1c0a32dacee6c1513p-1, + -0x1.fffffep-2 + }, + { // Entry 170 + 0x1.ae89f9007697475c5ad3c1ca20c5ef35p-1, + -0x1.000002p-2 + }, + { // Entry 171 + 0x1.ae89f995ad3ad5e8734d1773205a7fbcp-1, + -0x1.p-2 + }, + { // Entry 172 + 0x1.ae89f9e0488cb092fcee839efbf3fc4cp-1, + -0x1.fffffep-3 + }, + { // Entry 173 + 0x1.d5818d7e5e53ccaf85be04f92de7e9bfp-1, + -0x1.000002p-3 + }, + { // Entry 174 + 0x1.d5818dcfba48725da05aeb66e0dca9f5p-1, + -0x1.p-3 + }, + { // Entry 175 + 0x1.d5818df86842ca7e21cae1385c97eb97p-1, + -0x1.fffffep-4 + }, + { // Entry 176 + 0x1.ea4af9ffce0251f017bdb97010c11824p-1, + -0x1.000002p-4 + }, + { // Entry 177 + 0x1.ea4afa2a490d9858f73a18f5db301f86p-1, + -0x1.p-4 + }, + { // Entry 178 + 0x1.ea4afa3f86933ceebf0b1d7e2966b3fbp-1, + -0x1.fffffep-5 + }, + { // Entry 179 + 0x1.f50765a12fbd6e767118fa02bcb3a0d1p-1, + -0x1.000002p-5 + }, + { // Entry 180 + 0x1.f50765b6e4540674f84b762862baff99p-1, + -0x1.p-5 + }, + { // Entry 181 + 0x1.f50765c1be9f52ce811823dc464b40d5p-1, + -0x1.fffffep-6 + }, + { // Entry 182 + 0x1.fa7c180ef0814846b01522e83717ad71p-1, + -0x1.000002p-6 + }, + { // Entry 183 + 0x1.fa7c1819e90d82e90a7e74b263c1dc06p-1, + -0x1.p-6 + }, + { // Entry 184 + 0x1.fa7c181f6553a05107e91b90eea42d9dp-1, + -0x1.fffffep-7 + }, + { // Entry 185 + 0x1.fd3c22b37338eec4260da36a7b7f5bf3p-1, + -0x1.000002p-7 + }, + { // Entry 186 + 0x1.fd3c22b8f71f10975ba4b32bcf3a5e12p-1, + -0x1.p-7 + }, + { // Entry 187 + 0x1.fd3c22bbb9122186b26b482799ce40c7p-1, + -0x1.fffffep-8 + }, + { // Entry 188 + 0x1.fe9d96afde6082f2254715efc5f6ad7ep-1, + -0x1.000002p-8 + }, + { // Entry 189 + 0x1.fe9d96b2a23d914a6037442fde31baf8p-1, + -0x1.p-8 + }, + { // Entry 190 + 0x1.fe9d96b4042c1877edacd889b36d1cd5p-1, + -0x1.fffffep-9 + }, + { // Entry 191 + 0x1.ff4eaca2d6b2175e4332494fb1c24589p-1, + -0x1.000002p-9 + }, + { // Entry 192 + 0x1.ff4eaca4391b5da33e743691f7298b12p-1, + -0x1.p-9 + }, + { // Entry 193 + 0x1.ff4eaca4ea5000c618347451421210cbp-1, + -0x1.fffffep-10 + }, + { // Entry 194 + 0x1.ffa74ea2d09c67341271213869921167p-1, + -0x1.000002p-10 + }, + { // Entry 195 + 0x1.ffa74ea381efc217a773f15c025f7c0dp-1, + -0x1.p-10 + }, + { // Entry 196 + 0x1.ffa74ea3da996f8989012938d02dddfep-1, + -0x1.fffffep-11 + }, + { // Entry 197 + 0x1.fff4e8fd29da44c6f05c4a5baf1c2bedp-1, + -0x1.000002p-13 + }, + { // Entry 198 + 0x1.fff4e8fd40080cc8471f25ef2480b00bp-1, + -0x1.p-13 + }, + { // Entry 199 + 0x1.fff4e8fd4b1ef0c8f2dcd0f35ca5afeep-1, + -0x1.fffffep-14 + }, + { // Entry 200 + 0x1.6a09e5ea7aa390dbf868b7278b744829p0, + 0x1.fffffep-2 + }, + { // Entry 201 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.p-1 + }, + { // Entry 202 + 0x1.6a09e762e5efbbd7217018250a3ab194p0, + 0x1.000002p-1 + }, + { // Entry 203 + 0x1.306fe06e5a2f2e8c620f7e55cc803dbap0, + 0x1.fffffep-3 + }, + { // Entry 204 + 0x1.306fe0a31b7152de8d5a46305c85edecp0, + 0x1.p-2 + }, + { // Entry 205 + 0x1.306fe10c9df5b6efbd400b7806005fa9p0, + 0x1.000002p-2 + }, + { // Entry 206 + 0x1.172b83afa4e77ab9fb14ed6d59000b58p0, + 0x1.fffffep-4 + }, + { // Entry 207 + 0x1.172b83c7d517adcdf7c8c50eb14a7920p0, + 0x1.p-3 + }, + { // Entry 208 + 0x1.172b83f835781a3f7a959adc6f517010p0, + 0x1.000002p-3 + }, + { // Entry 209 + 0x1.0b5586c403bc8139197ebf6ce09ca7f8p0, + 0x1.fffffep-5 + }, + { // Entry 210 + 0x1.0b5586cf9890f6298b92b71842a98364p0, + 0x1.p-4 + }, + { // Entry 211 + 0x1.0b5586e6c239e18bc2c6e6800e1a354ep0, + 0x1.000002p-4 + }, + { // Entry 212 + 0x1.059b0d2badb0e674d86f3abe58578c7dp0, + 0x1.fffffep-6 + }, + { // Entry 213 + 0x1.059b0d31585743ae7c548eb68ca417fep0, + 0x1.p-5 + }, + { // Entry 214 + 0x1.059b0d3cada3fe80087460f12b3f85d7p0, + 0x1.000002p-5 + }, + { // Entry 215 + 0x1.02c9a3e4aa830d8834bdc95da605d425p0, + 0x1.fffffep-7 + }, + { // Entry 216 + 0x1.02c9a3e778060ee6f7caca4f7a29bde9p0, + 0x1.p-6 + }, + { // Entry 217 + 0x1.02c9a3ed130c11bbcdfd15f6cb45777ap0, + 0x1.000002p-6 + }, + { // Entry 218 + 0x1.0163da9e4e61d5676fd32618f2719b20p0, + 0x1.fffffep-8 + }, + { // Entry 219 + 0x1.0163da9fb33356d84a66ae336dcdfa40p0, + 0x1.p-7 + }, + { // Entry 220 + 0x1.0163daa27cd659bfcb8505a08a66849ap0, + 0x1.000002p-7 + }, + { // Entry 221 + 0x1.00b1afa4f9deabc72f2d49f63a281424p0, + 0x1.fffffep-9 + }, + { // Entry 222 + 0x1.00b1afa5abcbed6129ab13ec11dc9544p0, + 0x1.p-8 + }, + { // Entry 223 + 0x1.00b1afa70fa6709690a3abda4929ec25p0, + 0x1.000002p-8 + }, + { // Entry 224 + 0x1.0058c86d48e8cd9376c92f8fe93335b6p0, + 0x1.fffffep-10 + }, + { // Entry 225 + 0x1.0058c86da1c09ea1ff19d294cf2f679cp0, + 0x1.p-9 + }, + { // Entry 226 + 0x1.0058c86e537040bf6c1a50920426e07fp0, + 0x1.000002p-9 + }, + { // Entry 227 + 0x1.002c605e0228b5b870970538ff3283dcp0, + 0x1.fffffep-11 + }, + { // Entry 228 + 0x1.002c605e2e8cec506d21bfc89a23a010p0, + 0x1.p-10 + }, + { // Entry 229 + 0x1.002c605e875559807d4b02cd5ace5723p0, + 0x1.000002p-10 + }, + { // Entry 230 + 0x1.00058ba01a2e49ed9aec7e37918c1a4ap0, + 0x1.fffffep-14 + }, + { // Entry 231 + 0x1.00058ba01fb9f96d6cacd4b180917c3ep0, + 0x1.p-13 + }, + { // Entry 232 + 0x1.00058ba02ad1586d1089c2dee94ea420p0, + 0x1.000002p-13 + }, + { // Entry 233 + 0.0f, + -0x1.2a0002p7 + }, + { // Entry 234 + 0x1.p-149, + -0x1.2ap7 + }, + { // Entry 235 + 0x1.0000b17255775c040618bf4a4ade83fcp-149, + -0x1.29fffep7 + }, + { // Entry 236 + 0.0f, + -0x1.2c0002p7 + }, + { // Entry 237 + 0.0f, + -0x1.2cp7 + }, + { // Entry 238 + 0.0f, + -0x1.2bfffep7 + }, + { // Entry 239 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 240 + 0.0, + -HUGE_VALF + }, + { // Entry 241 + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 242 + 0.0f, + -0x1.fffffep127 + }, + { // Entry 243 + 0x1.1a66390580a2c585f3de207decb2766dp3, + 0x1.921fb6p1 + }, + { // Entry 244 + 0x1.d02319fe0cc8c798aae9bec1c301fce2p-4, + -0x1.921fb6p1 + }, + { // Entry 245 + 0x1.7c3f74a733d032aa52d1a81682e9aa9cp1, + 0x1.921fb6p0 + }, + { // Entry 246 + 0x1.58b3935bc68e5b61b8988445da3312edp-2, + -0x1.921fb6p0 + }, + { // Entry 247 + 0x1.00000162e430e5a18f6119e3c02282a5p1, + 0x1.000002p0 + }, + { // Entry 248 + 0x1.fffffd3a37a20cb4a12e24eaf25e3907p-2, + -0x1.000002p0 + }, + { // Entry 249 + 0x1.p1, + 0x1.p0 + }, + { // Entry 250 + 0x1.p-1, + -0x1.p0 + }, + { // Entry 251 + 0x1.fffffe9d1bd08b5b58ee4879a122966ep0, + 0x1.fffffep-1 + }, + { // Entry 252 + 0x1.000000b1721835514b86e6d96efd1bffp-1, + -0x1.fffffep-1 + }, + { // Entry 253 + 0x1.b93bbff5a7e572bcd51227c9b33976f0p0, + 0x1.921fb6p-1 + }, + { // Entry 254 + 0x1.290ee65a6808cb3ac67a086b51909f9dp-1, + -0x1.921fb6p-1 + }, + { // Entry 255 + 0x1.00000000000000000000000000000002p0, + 0x1.p-126 + }, + { // Entry 256 + 0x1.fffffffffffffffffffffffffffffffap-1, + -0x1.p-126 + }, + { // Entry 257 + 0x1.00000000000000000000000000000002p0, + 0x1.000002p-126 + }, + { // Entry 258 + 0x1.fffffffffffffffffffffffffffffffap-1, + -0x1.000002p-126 + }, + { // Entry 259 + 0x1.00000000000000000000000000000002p0, + 0x1.fffffcp-127 + }, + { // Entry 260 + 0x1.fffffffffffffffffffffffffffffffap-1, + -0x1.fffffcp-127 + }, + { // Entry 261 + 0x1.00000000000000000000000000000002p0, + 0x1.fffff8p-127 + }, + { // Entry 262 + 0x1.fffffffffffffffffffffffffffffffap-1, + -0x1.fffff8p-127 + }, + { // Entry 263 + 0x1.p0, + 0x1.p-148 + }, + { // Entry 264 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.p-148 + }, + { // Entry 265 + 0x1.p0, + 0x1.p-149 + }, + { // Entry 266 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.p-149 + }, + { // Entry 267 + 0x1.p0, + 0.0f + }, + { // Entry 268 + 0x1.p0, + -0.0f + }, + { // Entry 269 + 0x1.ffff4e8e06c7e8a2a84daed8ec56d6c3p127, + 0x1.fffffep6 + }, + { // Entry 270 + HUGE_VALF, + 0x1.p7 + }, + { // Entry 271 + 0x1.p-126, + -0x1.f8p6 + }, + { // Entry 272 + 0x1.ffff4e8e06c7e8a2a84daed8ec56d6c3p-127, + -0x1.f80002p6 + }, + { // Entry 273 + 0x1.p125, + 0x1.f4p6 + }, + { // Entry 274 + 0x1.p-125, + -0x1.f4p6 + }, + { // Entry 275 + 0x1.p2, + 0x1.p1 + }, + { // Entry 276 + 0x1.p-2, + -0x1.p1 + } +}; diff --git a/tests/math_exp_intel_data.h b/tests/math_data/exp_intel_data.h similarity index 100% rename from tests/math_exp_intel_data.h rename to tests/math_data/exp_intel_data.h diff --git a/tests/math_expf_intel_data.h b/tests/math_data/expf_intel_data.h similarity index 100% rename from tests/math_expf_intel_data.h rename to tests/math_data/expf_intel_data.h diff --git a/tests/math_data/expm1_intel_data.h b/tests/math_data/expm1_intel_data.h new file mode 100644 index 000000000..be90c8dc1 --- /dev/null +++ b/tests/math_data/expm1_intel_data.h @@ -0,0 +1,1570 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_expm1_intel_data[] = { + { // Entry 0 + -0x1.ffffffffff0000000000555555555540p-41, + -0x1.0p-40 + }, + { // Entry 1 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p30 + }, + { // Entry 2 + -0x1.fe0154aaeed8738220213bf805c9a017p-8, + -0x1.0000000000002p-7 + }, + { // Entry 3 + -0x1.ffffffffffa000000000055555555556p-42, + -0x1.00000000001p-41 + }, + { // Entry 4 + -0x1.fe0154aaef571540b64b8485cc828f04p-8, + -0x1.00000000003ffp-7 + }, + { // Entry 5 + -0x1.43a54e4eb0119800b5b8f35e2b4e7e81p-1, + -0x1.000000002p0 + }, + { // Entry 6 + -0x1.bacf4c925373696fd21f24ae89354a32p-1, + -0x1.003p1 + }, + { // Entry 7 + -0x1.fcc2556e8534300e63c12f8a5a1106b6p-7, + -0x1.006p-6 + }, + { // Entry 8 + -0x1.bdaeea20744956636e2e888fc1809651p-1, + -0x1.059def2b2f2c4p1 + }, + { // Entry 9 + -0x1.07ffffffff77e00000002ecafffffff3p-40, + -0x1.080p-40 + }, + { // Entry 10 + -0x1.1b19e5e90e6538002ec4e9f63c1927a9p-3, + -0x1.30ae80687cd57p-3 + }, + { // Entry 11 + -0x1.d23c83e5c923a8d750b23742ad5d2d3dp-1, + -0x1.3519530a863ffp1 + }, + { // Entry 12 + -0x1.34533cf44744c7f7dfe24cc81ce93a5ep-4, + -0x1.408c0a43cd97cp-4 + }, + { // Entry 13 + -0x1.79c6caa9e49af4463cee3d526a8e1762p-1, + -0x1.56bccf9c08f94p0 + }, + { // Entry 14 + -0x1.7de898bb4a1814449fc9bf5a787f2ce3p-1, + -0x1.5ebe08ce59440p0 + }, + { // Entry 15 + -0x1.fde856b4a6b0d7fc360a96572944a5edp-1, + -0x1.5ffffffffff80p2 + }, + { // Entry 16 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.6p9 + }, + { // Entry 17 + -0x1.7f637276db37ab8b4f8af38ad62afdb3p-1, + -0x1.61abd3bb638ffp0 + }, + { // Entry 18 + -0x1.7fd3858818630ad9afd1179848ee2effp-1, + -0x1.628b4a70e8586p0 + }, + { // Entry 19 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62ep9 + }, + { // Entry 20 + -0x1.785b18f5275d64a3f5fda9ef739d80b5p-8, + -0x1.7970cf2265b9ap-8 + }, + { // Entry 21 + -0x1.8b92870fa2b597fe9b02c25e9ad8a3cep-4, + -0x1.ap-4 + }, + { // Entry 22 + -0x1.b57abe9ba86d56e26962c5525f1347a7p-8, + -0x1.b6f238c2a040ap-8 + }, + { // Entry 23 + -0x1.b57abe9ba88897ff1194f673b12e2258p-8, + -0x1.b6f238c2a05c1p-8 + }, + { // Entry 24 + -0x1.b57abe9ba88917245435a89f6cc2597ep-8, + -0x1.b6f238c2a05c9p-8 + }, + { // Entry 25 + -0x1.b76f5651d19c26f8956b99cf61f3f2efp-6, + -0x1.bd6f7bfa7895ep-6 + }, + { // Entry 26 + -0x1.b76f5651d3bc6710b0229be3f9607089p-6, + -0x1.bd6f7bfa7ac52p-6 + }, + { // Entry 27 + -0x1.a78c2b7ae21669f0f3cd37c10528267ep-1, + -0x1.c18p0 + }, + { // Entry 28 + -0x1.2b8ded3132d61ffff49548b6ec6ec8c6p-1, + -0x1.c26p-1 + }, + { // Entry 29 + -0x1.ac6b158d953de99425206483bdcd2b28p-1, + -0x1.dp0 + }, + { // Entry 30 + -0x1.ffefffffffffe8007ffe000000954f55p-54, + -0x1.ffeffffffffffp-54 + }, + { // Entry 31 + -0x1.bab52178ee9089cf090261ec85161b44p-1, + -0x1.ffff3ffffffffp0 + }, + { // Entry 32 + -0x1.f69f5523ef47a800c36704994de6bf7cp-1, + -0x1.fffffffffe9efp1 + }, + { // Entry 33 + -0x1.fe0154aaee98b381f5a12261d8cf0352p-8, + -0x1.ffffffffffcp-8 + }, + { // Entry 34 + -0x1.92e9a0720d3027f60f578a2cd30d104ep-2, + -0x1.ffffffffffe7fp-2 + }, + { // Entry 35 + -0x1.bab5557101f8c8d73cd274ba659b2727p-1, + -0x1.ffffffffffffep0 + }, + { // Entry 36 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffep7 + }, + { // Entry 37 + 0x1.000000000080000000002aaaaaaaaab5p-40, + 0x1.0p-40 + }, + { // Entry 38 + 0x1.000000000000080000000000002aaaaap-52, + 0x1.0p-52 + }, + { // Entry 39 + 0x1.9476504ba885758aa5fa7545e10e8e46p738, + 0x1.0000000000001p9 + }, + { // Entry 40 + 0x1.0f2ebb2c65d9a80081ac2e65e8025ab1p23, + 0x1.000000020p4 + }, + { // Entry 41 + 0x1.e5208c8ebb607ad767c1adb2ae9616f4p739, + 0x1.007p9 + }, + { // Entry 42 + 0x1.040000000084080000002cb2b5555560p-40, + 0x1.040p-40 + }, + { // Entry 43 + 0x1.c61e8108cb3b100f4a9641fe4b59d5a2p0, + 0x1.052f742bb53d6p0 + }, + { // Entry 44 + 0x1.06466f97b426d000000a905602d7fb69p-10, + 0x1.0624decad85d9p-10 + }, + { // Entry 45 + 0x1.65591a3a7b9fabe891c2ea5f47a6bb96p-1, + 0x1.0f0ffffffffffp-1 + }, + { // Entry 46 + 0x1.66f0fb901f2bd45d99c3ae0c5506ad7fp-1, + 0x1.1p-1 + }, + { // Entry 47 + 0x1.26beacef84dda800ee87d91d88c199a7p-6, + 0x1.242p-6 + }, + { // Entry 48 + 0x1.11f6270d25be700ef7c34d02a29974f1p53, + 0x1.266fd7cddff42p5 + }, + { // Entry 49 + 0x1.2d26216139d81006bcd5c876ca600a38p53, + 0x1.27319e818c230p5 + }, + { // Entry 50 + 0x1.4d13fbb1a00192785df27257f060e683p53, + 0x1.280p5 + }, + { // Entry 51 + 0x1.60c9b536e33bafefc62bca96f884a22ep53, + 0x1.2875bd6dab630p5 + }, + { // Entry 52 + 0x1.8244f738ab986fcb022374240d8605cap53, + 0x1.292f6d8d306c3p5 + }, + { // Entry 53 + 0x1.f4b1ecd508504fdbe96629980d48a020p53, + 0x1.2b42ce6e584ebp5 + }, + { // Entry 54 + 0x1.88a122d234b394b88696ada7f7c11a0ap865, + 0x1.2c0p9 + }, + { // Entry 55 + 0x1.6641633703ea28000010995bb7c4b21dp-2, + 0x1.33333342022a7p-2 + }, + { // Entry 56 + 0x1.04dadee28c11c800fb9094435c1de727p7, + 0x1.38389c48b0fcep2 + }, + { // Entry 57 + 0x1.007848baed8b37c3e6cc3bfb1a101644p58, + 0x1.41a28cd5395c0p5 + }, + { // Entry 58 + 0x1.0c719229fb04b7c21ec3e0d7f2aed918p58, + 0x1.42000000040p5 + }, + { // Entry 59 + 0x1.10924600307447c139d9bb2f82ff9a27p58, + 0x1.421f4066cf2fcp5 + }, + { // Entry 60 + 0x1.31d215d36b1cc7c023dacc0edfa71bebp58, + 0x1.430af90c17e36p5 + }, + { // Entry 61 + 0x1.379553b19df207c01565e5f16d485d4dp58, + 0x1.4331346ca6ce7p5 + }, + { // Entry 62 + 0x1.379553b498da57c00fec0a571dd48a6fp58, + 0x1.4331346cba64fp5 + }, + { // Entry 63 + 0x1.4bc2fdce156117bf5a49805dd419c072p58, + 0x1.43b1b79351f4ep5 + }, + { // Entry 64 + 0x1.cf392076a1bdd7bf0d53e64efec10053p58, + 0x1.465d52b8b0596p5 + }, + { // Entry 65 + 0x1.df8028d08d7bf7c01a066c0bca539e5ap58, + 0x1.46a40dae90670p5 + }, + { // Entry 66 + 0x1.ea57988e94c817bf8f52f84ed3df88b0p58, + 0x1.46d1d7d9e8a98p5 + }, + { // Entry 67 + 0x1.cb419b9279b35763d113e6c5db79dc54p943, + 0x1.471c71c71c71cp9 + }, + { // Entry 68 + 0x1.f1345355d78ba4bf7b3fd1e3ecbf7dfdp948, + 0x1.48e2388e2391cp9 + }, + { // Entry 69 + 0x1.55ab836495abe800005ca6d200952433p1, + 0x1.4cccccce8ce97p0 + }, + { // Entry 70 + 0x1.6a77c2478bdb150bbc8ea756bbb8570bp970, + 0x1.5059aabfe5765p9 + }, + { // Entry 71 + 0x1.e1afc1f1512b7428d3d28c586dcd7da0p974, + 0x1.51e0f4c70ecdap9 + }, + { // Entry 72 + 0x1.5b1bac52655bf015d0c0897352cff074p-8, + 0x1.5a312e2d5469ep-8 + }, + { // Entry 73 + 0x1.5d98a8b1c5b8a043f872dce4155ba02dp-8, + 0x1.5caacc5a85cadp-8 + }, + { // Entry 74 + 0x1.f2a3c29fc6d723a63e349bbcd7894a8ap1008, + 0x1.5dadf5d1e452cp9 + }, + { // Entry 75 + 0x1.624ca1ace3f15973a463b539c79a29fdp-8, + 0x1.615856f590456p-8 + }, + { // Entry 76 + 0x1.624ca1ace613a9790c0e0fcff924bb7fp-8, + 0x1.615856f59264cp-8 + }, + { // Entry 77 + 0x1.fffffffffc72a1b0e266677220702371p1023, + 0x1.62e42fefa39e1p9 + }, + { // Entry 78 + 0x1.66bb6f898c6b5fb5d846de17be366ad0p-8, + 0x1.65c100ffac3fdp-8 + }, + { // Entry 79 + 0x1.03854c2737b8d7ffffa5944ecc584479p0, + 0x1.66666668c8bc0p-1 + }, + { // Entry 80 + 0x1.ad445f949fa7d34496e83174e2786b07p-2, + 0x1.668p-2 + }, + { // Entry 81 + 0x1.67ad945f2f1d9fe2b66dc062db7996efp-8, + 0x1.66b1d3ec2054fp-8 + }, + { // Entry 82 + 0x1.ae35f07f55b872de4707744c0a26ae90p-2, + 0x1.672a28295e9c9p-2 + }, + { // Entry 83 + 0x1.78a4af6b33748fe2cb05dd6a4bfa7056p-8, + 0x1.7790abed48f5ap-8 + }, + { // Entry 84 + 0x1.7bcae2fa3a8cc8cce95336f706279e5ap-8, + 0x1.7ab23f3a26807p-8 + }, + { // Entry 85 + 0x1.7ce527adde0b88d06ecba195c7b0aa4cp-8, + 0x1.7bcae2fa3adbep-8 + }, + { // Entry 86 + 0x1.7ce527ade0f5d8d09fcd9764c82d1274p-8, + 0x1.7bcae2fa3dc1ep-8 + }, + { // Entry 87 + 0x1.7e0110f8b0e678d4a8586472ae7bc1d2p-8, + 0x1.7ce527ade25b4p-8 + }, + { // Entry 88 + 0x1.7f1ea28925a638dc0db4fbf091b90b09p-8, + 0x1.7e0110f8b0c8cp-8 + }, + { // Entry 89 + 0x1.803de018c41128de07c3aaf8cd79d45cp-8, + 0x1.7f1ea28926651p-8 + }, + { // Entry 90 + 0x1.fe31152b7ef6b1e0a8b9fec7ecdd85a4p553, + 0x1.8p8 + }, + { // Entry 91 + 0x1.d38c898541cf95544db45ffc7e46fd16p-2, + 0x1.812p-2 + }, + { // Entry 92 + 0x1.8527a1ecdbec28000500f2ef81065e65p-7, + 0x1.82dcb4e52cab1p-7 + }, + { // Entry 93 + 0x1.8fe5e61a83cad7fcee78aa274e8dc654p-9, + 0x1.8f4a0b9ff7ed0p-9 + }, + { // Entry 94 + 0x1.e9306d671550b7fce52fe384e236ed51p-2, + 0x1.8fep-2 + }, + { // Entry 95 + 0x1.aec7b35c8c209fffffe76d4ac148ca7ap-4, + 0x1.9999999be6ebep-4 + }, + { // Entry 96 + 0x1.c56ecf3ddea747ffffa1cfcd9266f384p-3, + 0x1.999999a7f45f9p-3 + }, + { // Entry 97 + 0x1.f7a0e4d5067effffffc2bf0d03877722p-2, + 0x1.999999a867f17p-2 + }, + { // Entry 98 + 0x1.f7a0e4d8af7c480000325c9866d3f666p-2, + 0x1.999999aadc06ap-2 + }, + { // Entry 99 + 0x1.fc8ecabe156a92f92ccd95f742d5f70fp-2, + 0x1.9ce61d3061544p-2 + }, + { // Entry 100 + 0x1.c8082a8e3022880002e39fa93786b0cep-4, + 0x1.b062a2df1de98p-4 + }, + { // Entry 101 + 0x1.b5e1f0f0c1d798a5b169cb191cd0c621p-8, + 0x1.b46d1b46e5ccep-8 + }, + { // Entry 102 + 0x1.b5e9fa9919edd8bafdec03458df49c11p-8, + 0x1.b4751746e5ccdp-8 + }, + { // Entry 103 + 0x1.b5e9fa9919ede8d65c8bacd72cd2a89cp-8, + 0x1.b4751746e5ccep-8 + }, + { // Entry 104 + 0x1.b7594565a4b428b4734e2c9b43bec612p-8, + 0x1.b5e1f0f0af677p-8 + }, + { // Entry 105 + 0x1.cf7fce3931c5e7ffe406b08dc477f91bp-8, + 0x1.cdde2e3d70c6dp-8 + }, + { // Entry 106 + 0x1.cf44b5362775480990d2193fdac2a6c2p-9, + 0x1.ce739ce735ce2p-9 + }, + { // Entry 107 + 0x1.8260dae0f18853ff9edaf44b27ba17b2p0, + 0x1.d70a3d70a3d71p-1 + }, + { // Entry 108 + 0x1.dec5c594a41bb72f3ab6a63927f8e80dp-8, + 0x1.dd083d2908a81p-8 + }, + { // Entry 109 + 0x1.e08690c3fb77571e49537d4d5f69aaf2p-8, + 0x1.dec5c594ecfbcp-8 + }, + { // Entry 110 + 0x1.e6f8da92954ce80b660157d3ae9f4e70p-9, + 0x1.e611d78dcf946p-9 + }, + { // Entry 111 + 0x1.95e784ba628073ff77d2f7ed4d6201bcp0, + 0x1.e65f036272239p-1 + }, + { // Entry 112 + 0x1.e7d8753271e7a80359bd34ac05d687f5p-9, + 0x1.e6f09e1a48351p-9 + }, + { // Entry 113 + 0x1.98df5c213427f4084f77d615f3544c56p0, + 0x1.e8a974c5d39f7p-1 + }, + { // Entry 114 + 0x1.9f5b8bec582e4b59bb698dbd2576ed44p0, + 0x1.eda1b9b5dff58p-1 + }, + { // Entry 115 + 0x1.f1be12f8f20cf876bccb9e47e3eb30b8p-7, + 0x1.ee0p-7 + }, + { // Entry 116 + 0x1.f15c950aadd3178e4e8d488691307274p-8, + 0x1.ef7bdef7bdef2p-8 + }, + { // Entry 117 + 0x1.f4647ce7fdefc80415bb8c747bed498ep-9, + 0x1.f3709599bd0a0p-9 + }, + { // Entry 118 + 0x1.fbfc81c0062a280bc3db8a3918010b6ap-9, + 0x1.fb01276ad538bp-9 + }, + { // Entry 119 + 0x1.4231178c2348f5f77eedb27dc404f616p734, + 0x1.fcfffffffffffp8 + }, + { // Entry 120 + 0x1.74218bce788eb46746b38b578759ecc0p11, + 0x1.ffeffffffffffp2 + }, + { // Entry 121 + 0x1.00000000009ff7ffffffea9aaaaaaa63p-39, + 0x1.ffffffffff3ffp-40 + }, + { // Entry 122 + 0x1.0000000000000ffffffffffffeaaaaaap-50, + 0x1.ffffffffffffep-51 + }, + { // Entry 123 + 0x1.ffffffffffffe7ffffffffffff155555p-54, + 0x1.ffffffffffffep-54 + }, + { // Entry 124 + 0x1.00000000007ff80000002aa2aaaaaab5p-40, + 0x1.fffffffffffffp-41 + }, + { // Entry 125 + 0x1.304d6aeca25253146dec9182369ba415p69, + 0x1.7ffffffffffffp5 + }, + { // Entry 126 + 0x1.304d6aeca254b3af43c5d6293d5f65c7p69, + 0x1.8p5 + }, + { // Entry 127 + 0x1.304d6aeca257144a199f1ad50558d32cp69, + 0x1.8000000000001p5 + }, + { // Entry 128 + -0x1.ffffffffffffffffffc0e327b6954e21p-1, + -0x1.a000000000001p5 + }, + { // Entry 129 + -0x1.ffffffffffffffffffc0e327b6954da3p-1, + -0x1.ap5 + }, + { // Entry 130 + -0x1.ffffffffffffffffffc0e327b6954d25p-1, + -0x1.9ffffffffffffp5 + }, + { // Entry 131 + 0x1.55779b984f395dea36a277b8bee2c64cp115, + 0x1.3ffffffffffffp6 + }, + { // Entry 132 + 0x1.55779b984f3eb3c8a503b4a8e2487d98p115, + 0x1.4p6 + }, + { // Entry 133 + 0x1.55779b984f4409a71364f1ae5d27ee69p115, + 0x1.4000000000001p6 + }, + { // Entry 134 + -0x1.fffffffffffffffffffffffffffffffbp-1, + -0x1.6000000000001p6 + }, + { // Entry 135 + -0x1.fffffffffffffffffffffffffffffffbp-1, + -0x1.6p6 + }, + { // Entry 136 + -0x1.fffffffffffffffffffffffffffffffbp-1, + -0x1.5ffffffffffffp6 + }, + { // Entry 137 + 0x1.40a4b9c27150866176d22f2139d1d40fp923, + 0x1.3ffffffffffffp9 + }, + { // Entry 138 + 0x1.40a4b9c271789af8af205bb34f743337p923, + 0x1.4p9 + }, + { // Entry 139 + 0x1.40a4b9c271a0af8fe76e8d47f7fd9c26p923, + 0x1.4000000000001p9 + }, + { // Entry 140 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.6000000000001p9 + }, + { // Entry 141 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.6p9 + }, + { // Entry 142 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.5ffffffffffffp9 + }, + { // Entry 143 + 0x1.03996528e072b78a330480884c79baf7p75, + 0x1.9ffffffffffffp5 + }, + { // Entry 144 + 0x1.03996528e074bebcfd56416fc2c0eb92p75, + 0x1.ap5 + }, + { // Entry 145 + 0x1.03996528e076c5efc7a8025b476db0d0p75, + 0x1.a000000000001p5 + }, + { // Entry 146 + -0x1.fffffffffffffffff28a2a28e2df408cp-1, + -0x1.8000000000001p5 + }, + { // Entry 147 + -0x1.fffffffffffffffff28a2a28e2df25a0p-1, + -0x1.8p5 + }, + { // Entry 148 + -0x1.fffffffffffffffff28a2a28e2df0ab5p-1, + -0x1.7ffffffffffffp5 + }, + { // Entry 149 + 0x1.f1056dc7bf1b0fc857b67999f503526fp126, + 0x1.5ffffffffffffp6 + }, + { // Entry 150 + 0x1.f1056dc7bf22d3de0ed57615bc501f87p126, + 0x1.6p6 + }, + { // Entry 151 + 0x1.f1056dc7bf2a97f3c5f472b093f3c91bp126, + 0x1.6000000000001p6 + }, + { // Entry 152 + -0x1.ffffffffffffffffffffffffffffd004p-1, + -0x1.4000000000001p6 + }, + { // Entry 153 + -0x1.ffffffffffffffffffffffffffffd004p-1, + -0x1.4p6 + }, + { // Entry 154 + -0x1.ffffffffffffffffffffffffffffd004p-1, + -0x1.3ffffffffffffp6 + }, + { // Entry 155 + 0x1.93bf4ec282bd3b36cd2f4011488a8364p1015, + 0x1.5ffffffffffffp9 + }, + { // Entry 156 + 0x1.93bf4ec282efb320a57f9ae02e01ae51p1015, + 0x1.6p9 + }, + { // Entry 157 + 0x1.93bf4ec283222b0a7dcffbfe10b3e34ap1015, + 0x1.6000000000001p9 + }, + { // Entry 158 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.4000000000001p9 + }, + { // Entry 159 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.4p9 + }, + { // Entry 160 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.3ffffffffffffp9 + }, + { // Entry 161 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.1cb90bfbe8e7cp9 + }, + { // Entry 162 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.397217f7d1cf8p9 + }, + { // Entry 163 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.562b23f3bab73p9 + }, + { // Entry 164 + -0x1.0000000000000654361c4c67fbf90232p-1, + -0x1.62e42fefa39f0p-1 + }, + { // Entry 165 + -0x1.fffffffffffffca86c3898cff81747c6p-2, + -0x1.62e42fefa39efp-1 + }, + { // Entry 166 + -0x1.ffffffffffffeca86c3898cff7bc8b28p-2, + -0x1.62e42fefa39eep-1 + }, + { // Entry 167 + -0x1.2bec3330188676e1ed35fec1b10e40dcp-2, + -0x1.62e42fefa39f0p-2 + }, + { // Entry 168 + -0x1.2bec333018866b919e02bf23cad327f3p-2, + -0x1.62e42fefa39efp-2 + }, + { // Entry 169 + -0x1.2bec3330188660414ecf7f85e46acdcdp-2, + -0x1.62e42fefa39eep-2 + }, + { // Entry 170 + -0x1.45d819a94b14b3030eebbb9c6d4a2ce8p-3, + -0x1.62e42fefa39f0p-3 + }, + { // Entry 171 + -0x1.45d819a94b14a58ebf1f0e3296a2beb6p-3, + -0x1.62e42fefa39efp-3 + }, + { // Entry 172 + -0x1.45d819a94b14981a6f5260c8bfe067e5p-3, + -0x1.62e42fefa39eep-3 + }, + { // Entry 173 + -0x1.53f391822dbc78ae783b45864b0aa398p-4, + -0x1.62e42fefa39f0p-4 + }, + { // Entry 174 + -0x1.53f391822dbc6a026bccc7b4077bfc0ap-4, + -0x1.62e42fefa39efp-4 + }, + { // Entry 175 + -0x1.53f391822dbc5b565f5e49e1c3dea870p-4, + -0x1.62e42fefa39eep-4 + }, + { // Entry 176 + -0x1.5b505d5b6f26868f9677878648368b11p-5, + -0x1.62e42fefa39f0p-5 + }, + { // Entry 177 + -0x1.5b505d5b6f26773d3ea6353ddb75fe46p-5, + -0x1.62e42fefa39efp-5 + }, + { // Entry 178 + -0x1.5b505d5b6f2667eae6d4e2f56eadc84fp-5, + -0x1.62e42fefa39eep-5 + }, + { // Entry 179 + -0x1.5f134923757f3dc3f347d61df5fb6626p-6, + -0x1.62e42fefa39f0p-6 + }, + { // Entry 180 + -0x1.5f134923757f2e1bb81a1efb55c8e21cp-6, + -0x1.62e42fefa39efp-6 + }, + { // Entry 181 + -0x1.5f134923757f1e737cec67d8b5927402p-6, + -0x1.62e42fefa39eep-6 + }, + { // Entry 182 + 0x1.66c34c5615d0d7db1473bac29ad1b98dp-6, + 0x1.62e42fefa39eep-6 + }, + { // Entry 183 + 0x1.66c34c5615d0e834c546d0480f09bb89p-6, + 0x1.62e42fefa39efp-6 + }, + { // Entry 184 + 0x1.66c34c5615d0f88e7619e5cd8345d3f0p-6, + 0x1.62e42fefa39f0p-6 + }, + { // Entry 185 + 0x1.6ab0d9f3121eb0fea4f25282282cb459p-5, + 0x1.62e42fefa39eep-5 + }, + { // Entry 186 + 0x1.6ab0d9f3121ec1b3fd5f4c0b37896101p-5, + 0x1.62e42fefa39efp-5 + }, + { // Entry 187 + 0x1.6ab0d9f3121ed26955cc459446ee6856p-5, + 0x1.62e42fefa39f0p-5 + }, + { // Entry 188 + 0x1.72b83c7d517ac7c7c0d3432ad543afa6p-4, + 0x1.62e42fefa39eep-4 + }, + { // Entry 189 + 0x1.72b83c7d517ad93a790fc07c501430c3p-4, + 0x1.62e42fefa39efp-4 + }, + { // Entry 190 + 0x1.72b83c7d517aeaad314c3dcdcaf62498p-4, + 0x1.62e42fefa39f0p-4 + }, + { // Entry 191 + 0x1.837f0518db8a7ff3f7635f5fbe54ebe8p-3, + 0x1.62e42fefa39eep-3 + }, + { // Entry 192 + 0x1.837f0518db8a92faf56d9116d367dad5p-3, + 0x1.62e42fefa39efp-3 + }, + { // Entry 193 + 0x1.837f0518db8aa601f377c2cde8a0d7bep-3, + 0x1.62e42fefa39f0p-3 + }, + { // Entry 194 + 0x1.a827999fcef308c835779a431e05cabbp-2, + 0x1.62e42fefa39eep-2 + }, + { // Entry 195 + 0x1.a827999fcef31f68d3de197eea562ccep-2, + 0x1.62e42fefa39efp-2 + }, + { // Entry 196 + 0x1.a827999fcef33609724498bab701115ap-2, + 0x1.62e42fefa39f0p-2 + }, + { // Entry 197 + 0x1.ffffffffffffd950d871319ff0ef3435p-1, + 0x1.62e42fefa39eep-1 + }, + { // Entry 198 + 0x1.fffffffffffff950d871319ff039baf9p-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 199 + 0x1.0000000000000ca86c3898cff84220dep0, + 0x1.62e42fefa39f0p-1 + }, + { // Entry 200 + 0x1.7fffffffffffd950d871319ff1aa4328p1, + 0x1.62e42fefa39eep0 + }, + { // Entry 201 + 0x1.7ffffffffffff950d871319ff03f50afp1, + 0x1.62e42fefa39efp0 + }, + { // Entry 202 + 0x1.8000000000001950d871319ff0d45e36p1, + 0x1.62e42fefa39f0p0 + }, + { // Entry 203 + 0x1.dfffffffffffb2a1b0e2633fe640c21bp3, + 0x1.62e42fefa39eep1 + }, + { // Entry 204 + 0x1.dffffffffffff2a1b0e2633fe094f837p3, + 0x1.62e42fefa39efp1 + }, + { // Entry 205 + 0x1.e0000000000032a1b0e2633fe2e92e54p3, + 0x1.62e42fefa39f0p1 + }, + { // Entry 206 + 0x1.fdffffffffff654361c4c67fd8327361p7, + 0x1.62e42fefa39eep2 + }, + { // Entry 207 + 0x1.fdffffffffffe54361c4c67fc1834bd3p7, + 0x1.62e42fefa39efp2 + }, + { // Entry 208 + 0x1.fe0000000000654361c4c67fcad42444p7, + 0x1.62e42fefa39f0p2 + }, + { // Entry 209 + 0x1.fffdfffffffeca86c3898cffdf28a36fp15, + 0x1.62e42fefa39eep3 + }, + { // Entry 210 + 0x1.fffdffffffffca86c3898cff846c0534p15, + 0x1.62e42fefa39efp3 + }, + { // Entry 211 + 0x1.fffe00000000ca86c3898cffa9af66f9p15, + 0x1.62e42fefa39f0p3 + }, + { // Entry 212 + 0x1.fffffffdfffd950d87131a007960398fp31, + 0x1.62e42fefa39eep4 + }, + { // Entry 213 + 0x1.fffffffdffff950d871319ff0e6dc0a3p31, + 0x1.62e42fefa39efp4 + }, + { // Entry 214 + 0x1.fffffffe0001950d871319ffa37b47b6p31, + 0x1.62e42fefa39f0p4 + }, + { // Entry 215 + 0x1.ffffffffffb2a1b0e26345b8dfe00697p1023, + 0x1.62e42fefa39eep9 + }, + { // Entry 216 + 0x1.fffffffffff2a1b0e263400d15fc52ffp1023, + 0x1.62e42fefa39efp9 + }, + { // Entry 217 + HUGE_VAL, + 0x1.62e42fefa39f0p9 + }, + { // Entry 218 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.72e42fefa39f0p9 + }, + { // Entry 219 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.72e42fefa39efp9 + }, + { // Entry 220 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.72e42fefa39eep9 + }, + { // Entry 221 + -0x1.c5041854df7d5ed1e4b8c796ef6ef281p-3, + -0x1.0000000000001p-2 + }, + { // Entry 222 + -0x1.c5041854df7d45e5f51a1b14e4b86234p-3, + -0x1.0p-2 + }, + { // Entry 223 + -0x1.c5041854df7d396ffd4ac4d3df37b827p-3, + -0x1.fffffffffffffp-3 + }, + { // Entry 224 + -0x1.e14aed893eef58797f12838f2b969ac0p-4, + -0x1.0000000000001p-3 + }, + { // Entry 225 + -0x1.e14aed893eef3c3c14ed960d0a2b5054p-4, + -0x1.0p-3 + }, + { // Entry 226 + -0x1.e14aed893eef2e1d5fdb1f4bf9607d0ep-4, + -0x1.fffffffffffffp-4 + }, + { // Entry 227 + -0x1.f0540438fd5c4fb179fdc0f96e33a687p-5, + -0x1.0000000000001p-4 + }, + { // Entry 228 + -0x1.f0540438fd5c31a1ce01f9f6ca74502bp-5, + -0x1.0p-4 + }, + { // Entry 229 + -0x1.f0540438fd5c2299f804167578895f1dp-5, + -0x1.fffffffffffffp-5 + }, + { // Entry 230 + -0x1.f8152aee9450fc6df41295c712a2cfcbp-6, + -0x1.0000000000001p-5 + }, + { // Entry 231 + -0x1.f8152aee9450dd69fea80d113b1945c7p-6, + -0x1.0p-5 + }, + { // Entry 232 + -0x1.f8152aee9450cde803f2c8b64f4eb008p-6, + -0x1.fffffffffffffp-6 + }, + { // Entry 233 + -0x1.fc055004416dd58cbbb4a9b4ef23fb67p-7, + -0x1.0000000000001p-6 + }, + { // Entry 234 + -0x1.fc055004416db60bbd08aac54a956e76p-7, + -0x1.0p-6 + }, + { // Entry 235 + -0x1.fc055004416da64b3db2ab4d784b33e6p-7, + -0x1.fffffffffffffp-7 + }, + { // Entry 236 + -0x1.fe0154aaeed853c1e04bd155e0d61457p-8, + -0x1.0000000000001p-7 + }, + { // Entry 237 + -0x1.fe0154aaeed83401a07666b3bbde908fp-8, + -0x1.0p-7 + }, + { // Entry 238 + -0x1.fe0154aaeed82421808bb162a96151a8p-8, + -0x1.fffffffffffffp-8 + }, + { // Entry 239 + -0x1.ff0055400443ae32f1e9274ffa299d5dp-9, + -0x1.0000000000001p-8 + }, + { // Entry 240 + -0x1.ff00554004438e52e1ee7b503e63818cp-9, + -0x1.0p-8 + }, + { // Entry 241 + -0x1.ff00554004437e62d9f12550607fb463p-9, + -0x1.fffffffffffffp-9 + }, + { // Entry 242 + -0x1.ff801552aaef092effe8945b04b60168p-10, + -0x1.0000000000001p-9 + }, + { // Entry 243 + -0x1.ff801552aaeee93efbe93ef05c2dcb20p-10, + -0x1.0p-9 + }, + { // Entry 244 + -0x1.ff801552aaeed946f9e9943b07e9502cp-10, + -0x1.fffffffffffffp-10 + }, + { // Entry 245 + -0x1.ffc005550004640ec40c0e6e9887b0c9p-11, + -0x1.0000000000001p-10 + }, + { // Entry 246 + -0x1.ffc0055500044416c30c23c298990114p-11, + -0x1.0p-10 + }, + { // Entry 247 + -0x1.ffc005550004341ac28c2e6c98a17946p-11, + -0x1.fffffffffffffp-11 + }, + { // Entry 248 + -0x1.fff80015552acaedee97e99bef6c42ffp-14, + -0x1.0000000000001p-13 + }, + { // Entry 249 + -0x1.fff80015552aaaeeee93e9a69a01a076p-14, + -0x1.0p-13 + }, + { // Entry 250 + -0x1.fff80015552a9aef6e91e9abef4c4932p-14, + -0x1.fffffffffffffp-14 + }, + { // Entry 251 + 0x1.22d78f0fa0618f943ff0bb2de7cfdf0cp-2, + 0x1.fffffffffffffp-3 + }, + { // Entry 252 + 0x1.22d78f0fa06199d9ef0eda6eaaf94d3bp-2, + 0x1.0p-2 + }, + { // Entry 253 + 0x1.22d78f0fa061ae654d4b18f03189cbb3p-2, + 0x1.0000000000001p-2 + }, + { // Entry 254 + 0x1.10b022db7ae673d6bb2140ac1ce40bp-3, + 0x1.fffffffffffffp-4 + }, + { // Entry 255 + 0x1.10b022db7ae67ce76b441c27035c6a13p-3, + 0x1.0p-3 + }, + { // Entry 256 + 0x1.10b022db7ae68f08cb89d31cd0685a4ap-3, + 0x1.0000000000001p-3 + }, + { // Entry 257 + 0x1.082b577d34ed74d70455df87e5de0894p-4, + 0x1.fffffffffffffp-5 + }, + { // Entry 258 + 0x1.082b577d34ed7d5b1a019e225c9a951bp-4, + 0x1.0p-4 + }, + { // Entry 259 + 0x1.082b577d34ed8e6345591b574a20744bp-4, + 0x1.0000000000001p-4 + }, + { // Entry 260 + 0x1.040ac0224fd9298077606ce10b478c97p-5, + 0x1.fffffffffffffp-6 + }, + { // Entry 261 + 0x1.040ac0224fd931c17a1075750192f4d5p-5, + 0x1.0p-5 + }, + { // Entry 262 + 0x1.040ac0224fd942437f70869cee2ff613p-5, + 0x1.0000000000001p-5 + }, + { // Entry 263 + 0x1.0202ad5778e4568dd8d74f51f70f7d9cp-6, + 0x1.fffffffffffffp-7 + }, + { // Entry 264 + 0x1.0202ad5778e45eae192cfa41139ad15bp-6, + 0x1.0p-6 + }, + { // Entry 265 + 0x1.0202ad5778e46eee99d8501f4cb484f2p-6, + 0x1.0000000000001p-6 + }, + { // Entry 266 + 0x1.0100ab00222d7e0921b6ae3791767825p-7, + 0x1.fffffffffffffp-8 + }, + { // Entry 267 + 0x1.0100ab00222d861931c15e39b44e9937p-7, + 0x1.0p-7 + }, + { // Entry 268 + 0x1.0100ab00222d963951d6be3dfa005e5fp-7, + 0x1.0000000000001p-7 + }, + { // Entry 269 + 0x1.00802ab55777ca8226417cbfee2ff38bp-8, + 0x1.fffffffffffffp-9 + }, + { // Entry 270 + 0x1.00802ab55777d28a2a42d26aa9ee67bcp-8, + 0x1.0p-8 + }, + { // Entry 271 + 0x1.00802ab55777e29a32457dc0216c10dfp-8, + 0x1.0000000000001p-8 + }, + { // Entry 272 + 0x1.00400aac00221cf682ab5035e9096355p-9, + 0x1.fffffffffffffp-10 + }, + { // Entry 273 + 0x1.00400aac002224fa83ab7ae5e991e737p-9, + 0x1.0p-9 + }, + { // Entry 274 + 0x1.00400aac0022350285abd045eaa34f2bp-9, + 0x1.0000000000001p-9 + }, + { // Entry 275 + 0x1.002002aad5576f8c39739c649f2fc237p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 276 + 0x1.002002aad557778e39b3a1ba49dea952p-10, + 0x1.0p-10 + }, + { // Entry 277 + 0x1.002002aad55787923a33ac659f3ca792p-10, + 0x1.0000000000001p-10 + }, + { // Entry 278 + 0x1.0004000aaabff821e24ea52ba86932b8p-13, + 0x1.fffffffffffffp-14 + }, + { // Entry 279 + 0x1.0004000aaac00022224fa52e531931c1p-13, + 0x1.0p-13 + }, + { // Entry 280 + 0x1.0004000aaac01022a251a533a87935d2p-13, + 0x1.0000000000001p-13 + }, + { // Entry 281 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0000000000001p9 + }, + { // Entry 282 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p9 + }, + { // Entry 283 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp8 + }, + { // Entry 284 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0000000000001p8 + }, + { // Entry 285 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p8 + }, + { // Entry 286 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp7 + }, + { // Entry 287 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0000000000001p7 + }, + { // Entry 288 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p7 + }, + { // Entry 289 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp6 + }, + { // Entry 290 + -0x1.ffffffffffffffffffffffe6962b8cdep-1, + -0x1.0000000000001p6 + }, + { // Entry 291 + -0x1.ffffffffffffffffffffffe6962b8cdep-1, + -0x1.0p6 + }, + { // Entry 292 + -0x1.ffffffffffffffffffffffe6962b8cdep-1, + -0x1.fffffffffffffp5 + }, + { // Entry 293 + -0x1.fffffffffff8dee6c227a6f43aa81530p-1, + -0x1.0000000000001p5 + }, + { // Entry 294 + -0x1.fffffffffff8dee6c227a6e5f875997fp-1, + -0x1.0p5 + }, + { // Entry 295 + -0x1.fffffffffff8dee6c227a6ded75c5ba7p-1, + -0x1.fffffffffffffp4 + }, + { // Entry 296 + -0x1.fffffc395488a22f4a6b5eb875ea5a66p-1, + -0x1.0000000000001p4 + }, + { // Entry 297 + -0x1.fffffc395488a22f46a4b3411819a2eep-1, + -0x1.0p4 + }, + { // Entry 298 + -0x1.fffffc395488a22f44c15d85693145c7p-1, + -0x1.fffffffffffffp3 + }, + { // Entry 299 + -0x1.ffd407bdf7dfb0bc84275b4125a96eb7p-1, + -0x1.0000000000001p3 + }, + { // Entry 300 + -0x1.ffd407bdf7dfb0a688065730fe0231c2p-1, + -0x1.0p3 + }, + { // Entry 301 + -0x1.ffd407bdf7dfb09b89f5d528ea2a7402p-1, + -0x1.fffffffffffffp2 + }, + { // Entry 302 + -0x1.f69f5523ef61881c365f838e3cece5d4p-1, + -0x1.0000000000001p2 + }, + { // Entry 303 + -0x1.f69f5523ef6185c40ba87f669ea8ee15p-1, + -0x1.0p2 + }, + { // Entry 304 + -0x1.f69f5523ef618497f64cfd52cf4eae35p-1, + -0x1.fffffffffffffp1 + }, + { // Entry 305 + -0x1.bab5557101f8da29e776343c313b029ep-1, + -0x1.0000000000001p1 + }, + { // Entry 306 + -0x1.bab5557101f8d1809224547b4bf5aa38p-1, + -0x1.0p1 + }, + { // Entry 307 + -0x1.bab5557101f8cd2be77b649ad8eb0e05p-1, + -0x1.fffffffffffffp0 + }, + { // Entry 308 + -0x1.43a54e4e98864d90355d87727adb37e7p-1, + -0x1.0000000000001p0 + }, + { // Entry 309 + -0x1.43a54e4e988641ca8a4270fadf560de4p-1, + -0x1.0p0 + }, + { // Entry 310 + -0x1.43a54e4e98863be7b4b4e5bf114cd6e0p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 311 + 0x1.9476504ba8399f5b97cae35beb78c3c5p738, + 0x1.fffffffffffffp8 + }, + { // Entry 312 + 0x1.9476504ba852e6c09c8567c01c5a6648p738, + 0x1.0p9 + }, + { // Entry 313 + 0x1.9476504ba885758aa5fa7545e10e8e46p738, + 0x1.0000000000001p9 + }, + { // Entry 314 + 0x1.41c7a8814be192a5df25b042af824efdp369, + 0x1.fffffffffffffp7 + }, + { // Entry 315 + 0x1.41c7a8814beba0e323300f777da65854p369, + 0x1.0p8 + }, + { // Entry 316 + 0x1.41c7a8814bffbd5dab44ced26faccbfbp369, + 0x1.0000000000001p8 + }, + { // Entry 317 + 0x1.95e54c5dd41b20600dd601a0ae672ff4p184, + 0x1.fffffffffffffp6 + }, + { // Entry 318 + 0x1.95e54c5dd42177f53f4d5219df11ca3bp184, + 0x1.0p7 + }, + { // Entry 319 + 0x1.95e54c5dd42e271fa23bf3585b655060p184, + 0x1.0000000000001p7 + }, + { // Entry 320 + 0x1.425982cf597a4d52c89ea847bbaa807ap92, + 0x1.fffffffffffffp5 + }, + { // Entry 321 + 0x1.425982cf597cd205ce3d5b3edb031756p92, + 0x1.0p6 + }, + { // Entry 322 + 0x1.425982cf5981db6bd97ac13c35e666c6p92, + 0x1.0000000000001p6 + }, + { // Entry 323 + 0x1.1f43fcc4b65da8944ac389b609e0f74ep46, + 0x1.fffffffffffffp4 + }, + { // Entry 324 + 0x1.1f43fcc4b65ec7d84788401842174074p46, + 0x1.0p5 + }, + { // Entry 325 + 0x1.1f43fcc4b66106604111ace0104fc90ep46, + 0x1.0000000000001p5 + }, + { // Entry 326 + 0x1.0f2ebb0a80017cfac56c30874afbab98p23, + 0x1.fffffffffffffp3 + }, + { // Entry 327 + 0x1.0f2ebb0a8002049223f170882b5ee5efp23, + 0x1.0p4 + }, + { // Entry 328 + 0x1.0f2ebb0a800313c0e0fbf08ab7886866p23, + 0x1.0000000000001p4 + }, + { // Entry 329 + 0x1.747ea7d470c681e43618ec18d53f1b21p11, + 0x1.fffffffffffffp2 + }, + { // Entry 330 + 0x1.747ea7d470c6df0be00e084a815d1de6p11, + 0x1.0p3 + }, + { // Entry 331 + 0x1.747ea7d470c7995b33f840ae1f76e2e7p11, + 0x1.0000000000001p3 + }, + { // Entry 332 + 0x1.acc902e273a54fdfb6777166e6760dfbp5, + 0x1.fffffffffffffp1 + }, + { // Entry 333 + 0x1.acc902e273a58678d6d3bfdb93db96d0p5, + 0x1.0p2 + }, + { // Entry 334 + 0x1.acc902e273a5f3ab178c5cc50320149cp5, + 0x1.0000000000001p2 + }, + { // Entry 335 + 0x1.98e64b8d4ddabf34d582cd2909aafb2ap2, + 0x1.fffffffffffffp0 + }, + { // Entry 336 + 0x1.98e64b8d4ddadcc33a3ba206b68abba8p2, + 0x1.0p1 + }, + { // Entry 337 + 0x1.98e64b8d4ddb17e003ad4bc215d4ef86p2, + 0x1.0000000000001p1 + }, + { // Entry 338 + 0x1.b7e151628aed14abb4e6442933f899f6p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 339 + 0x1.b7e151628aed2a6abf7158809cf4f3c7p0, + 0x1.0p0 + }, + { // Entry 340 + 0x1.b7e151628aed55e8d487812f70f79067p0, + 0x1.0000000000001p0 + }, + { // Entry 341 + 0x1.ffc045692fc9dbc7b7e032576e5e26f8p1023, + 0x1.62e41ffffffffp9 + }, + { // Entry 342 + 0x1.ffc045693009d3d065062f9267dff55ep1023, + 0x1.62e42p9 + }, + { // Entry 343 + 0x1.ffc045693049cbd9122c34cc62776884p1023, + 0x1.62e4200000001p9 + }, + { // Entry 344 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.72e4200000001p9 + }, + { // Entry 345 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.72e42p9 + }, + { // Entry 346 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.72e41ffffffffp9 + }, + { // Entry 347 + HUGE_VAL, + 0x1.0p1020 + }, + { // Entry 348 + HUGE_VAL, + 0x1.999999999999ap1020 + }, + { // Entry 349 + HUGE_VAL, + 0x1.199999999999ap1021 + }, + { // Entry 350 + HUGE_VAL, + 0x1.6666666666667p1021 + }, + { // Entry 351 + HUGE_VAL, + 0x1.b333333333334p1021 + }, + { // Entry 352 + HUGE_VAL, + 0x1.0p1022 + }, + { // Entry 353 + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 354 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 355 + -0x1.p0, + -HUGE_VAL + }, + { // Entry 356 + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 357 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp1023 + }, + { // Entry 358 + HUGE_VAL, + 0x1.ffffffffffffep1023 + }, + { // Entry 359 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffep1023 + }, + { // Entry 360 + 0x1.624046eb09338d2991a30893e7f4108dp4, + 0x1.921fb54442d18p1 + }, + { // Entry 361 + -0x1.e9dfdd84a671066b619f1bb23ba2eb2fp-1, + -0x1.921fb54442d18p1 + }, + { // Entry 362 + 0x1.e7bdb90ab26bdf555eaf19da7f043f2cp1, + 0x1.921fb54442d18p0 + }, + { // Entry 363 + -0x1.9590cee42260813cac44f53b3217ed19p-1, + -0x1.921fb54442d18p0 + }, + { // Entry 364 + 0x1.b7e151628aed55e8d487812f70f79067p0, + 0x1.0000000000001p0 + }, + { // Entry 365 + -0x1.43a54e4e98864d90355d87727adb37e7p-1, + -0x1.0000000000001p0 + }, + { // Entry 366 + 0x1.b7e151628aed2a6abf7158809cf4f3c7p0, + 0x1.0p0 + }, + { // Entry 367 + -0x1.43a54e4e988641ca8a4270fadf560de4p-1, + -0x1.0p0 + }, + { // Entry 368 + 0x1.b7e151628aed14abb4e6442933f899f6p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 369 + -0x1.43a54e4e98863be7b4b4e5bf114cd6e0p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 370 + 0x1.317acd28e3954ab0b8e398654f25590ap0, + 0x1.921fb54442d18p-1 + }, + { // Entry 371 + -0x1.168f47187dbc360f4ac035fc8ff9e913p-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 372 + 0x1.00000000000010p-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 373 + -0x1.0000000000000fffffffffffffffffffp-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 374 + 0x1.p-1022, + 0x1.0p-1022 + }, + { // Entry 375 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022 + }, + { // Entry 376 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 377 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 378 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 379 + -0x1.ffffffffffffbfffffffffffffffffffp-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 380 + 0x1.p-1073, + 0x1.0p-1073 + }, + { // Entry 381 + -0x1.ffffffffffffffffffffffffffffffffp-1074, + -0x1.0p-1073 + }, + { // Entry 382 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 383 + -0.0, + -0x1.0p-1074 + }, + { // Entry 384 + 0.0, + 0.0 + }, + { // Entry 385 + -0.0, + -0.0 + }, + { // Entry 386 + 0x1.fffffffffff2a1b0e263400d15fc52ffp1023, + 0x1.62e42fefa39efp9 + }, + { // Entry 387 + HUGE_VAL, + 0x1.62e42fefa39f0p9 + } +}; diff --git a/tests/math_data/expm1f_intel_data.h b/tests/math_data/expm1f_intel_data.h new file mode 100644 index 000000000..f6f6bc2ba --- /dev/null +++ b/tests/math_data/expm1f_intel_data.h @@ -0,0 +1,1182 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_expm1f_intel_data[] = { + { // Entry 0 + -0x1.fffff00000555554000004444438e38ep-21, + -0x1.p-20 + }, + { // Entry 1 + -0x1.fffff800001555552aaaaaeeeeee93e9p-22, + -0x1.p-21 + }, + { // Entry 2 + -0x1.ffffff00000055555540000004444443p-25, + -0x1.p-24 + }, + { // Entry 3 + -0x1.fffff40000155555bffffd99999b8e38p-21, + -0x1.000002p-20 + }, + { // Entry 4 + -0x1.000000fffffcaaaaaa55555acccccb6cp-23, + -0x1.000002p-23 + }, + { // Entry 5 + -0x1.92ead6fcef62fa8ffd6dddea52cb775dp-2, + -0x1.0001p-1 + }, + { // Entry 6 + -0x1.0003ffffff7ffbfff8002aacaab2aaaap-40, + -0x1.0004p-40 + }, + { // Entry 7 + -0x1.43eb2700073d423819fa85ce534f3bf1p-1, + -0x1.005fp0 + }, + { // Entry 8 + -0x1.c59998f074353c5d0492e23cfecbc1f5p-3, + -0x1.0060p-2 + }, + { // Entry 9 + -0x1.f48a2ae5cc72d28e4ff5d3940c608146p-5, + -0x1.023ep-4 + }, + { // Entry 10 + -0x1.f2be57002fc371093dd9623ec6cdcf88p-4, + -0x1.09e940p-3 + }, + { // Entry 11 + -0x1.4b3b8cffff78b97a60ce841d99138e34p-1, + -0x1.0a866cp0 + }, + { // Entry 12 + -0x1.1e37fafffb5de84ddb61ac58d96c6109p-21, + -0x1.1e38p-21 + }, + { // Entry 13 + -0x1.c96006fff735d59b28cc8226e99bd811p-2, + -0x1.2efd0ap-1 + }, + { // Entry 14 + -0x1.d30023003cc4589a4a217749a50959dcp-1, + -0x1.374118p1 + }, + { // Entry 15 + -0x1.7e8bcef9c4fe9e0ac2d05310f5cbd8f2p-1, + -0x1.60p0 + }, + { // Entry 16 + -0x1.fffffffffffffffffffffffffffffffbp-1, + -0x1.60p6 + }, + { // Entry 17 + -0x1.9758b6f38b012949e7b93c7f27202a48p-3, + -0x1.c62ee0p-3 + }, + { // Entry 18 + -0x1.751b2169ee200a7bb4f26bccb619a80ep-2, + -0x1.cffffep-2 + }, + { // Entry 19 + -0x1.a066d300130ff4e4fc65bad0a7f72ca1p-3, + -0x1.d1848cp-3 + }, + { // Entry 20 + -0x1.fffff6ffff2933320eb3310fc95c97a5p-1, + -0x1.e434dep3 + }, + { // Entry 21 + -0x1.fffff7fffffffffffffffffffffffffcp-127, + -0x1.fffff8p-127 + }, + { // Entry 22 + -0x1.ffffffffffffffffffffffe6961ed7f0p-1, + -0x1.fffffcp5 + }, + { // Entry 23 + 0x1.0100ab00222d861931c15e39b44e9937p-7, + 0x1.p-7 + }, + { // Entry 24 + 0x1.00000400000aaaaac000002222224fa4p-21, + 0x1.p-21 + }, + { // Entry 25 + 0x1.bcab8900011ff456b56212f998951e38p0, + 0x1.01c18ep0 + }, + { // Entry 26 + 0x1.b61e5ca3a5e30b2f0a03f28af9ce0084p93, + 0x1.04p6 + }, + { // Entry 27 + 0x1.c62b1d7eea9cc6f6ea3ff782be73b0cbp0, + 0x1.0534p0 + }, + { // Entry 28 + 0x1.aef1abc1b1c54e2429d81ddb79775eefp94, + 0x1.06b4e0p6 + }, + { // Entry 29 + 0x1.94c2590c0ac9993e93aa8acaf1046c73p96, + 0x1.0c0040p6 + }, + { // Entry 30 + 0x1.2a7938fffec9616b4d631cb33d990160p-3, + 0x1.16a150p-3 + }, + { // Entry 31 + 0x1.752a64ffff6149fa0bd6f95bb10bf8e8p-1, + 0x1.184b62p-1 + }, + { // Entry 32 + 0x1.37703d00002d814e4605b09d7ef15368p-4, + 0x1.2c2a90p-4 + }, + { // Entry 33 + 0x1.44835afffef0f01e2e400989de81bd82p-3, + 0x1.2d3b76p-3 + }, + { // Entry 34 + 0x1.021c84fffff5d54e4229ede943f4a168p7, + 0x1.378cb4p2 + }, + { // Entry 35 + 0x1.ff2ac4707dee3cd35848bdb4d4296824p124, + 0x1.5a912cp6 + }, + { // Entry 36 + 0x1.7ff7f6932445d2e31f1b7c20d7c7d871p126, + 0x1.5ef7bcp6 + }, + { // Entry 37 + 0x1.f916467349b058b9c38906911b856052p126, + 0x1.60107cp6 + }, + { // Entry 38 + 0x1.f76ba46733f4146a0f94b3d1311494bap127, + 0x1.62d2e2p6 + }, + { // Entry 39 + 0x1.fff1086632b0e9b93bc5be44d9c1dea5p127, + 0x1.62e412p6 + }, + { // Entry 40 + 0x1.8dbe63000000d7dc67e2e67575c06599p-3, + 0x1.6b7d8ap-3 + }, + { // Entry 41 + 0x1.9185a8fffe5a4f000eb5ab63da3bfa3fp-3, + 0x1.6ea6e2p-3 + }, + { // Entry 42 + 0x1.e5fa73631c80571bb785e84b1dff0fb4p70, + 0x1.894a52p5 + }, + { // Entry 43 + 0x1.dfc5e500a0d64765f069273b7e215719p-2, + 0x1.897ba8p-2 + }, + { // Entry 44 + 0x1.9a6e870bbb7b2779cded78be9b91a2dap71, + 0x1.8d7bdep5 + }, + { // Entry 45 + 0x1.fb180600000c0175ee1c8855daaebdb6p1, + 0x1.9a0bccp0 + }, + { // Entry 46 + 0x1.00f200ffff918c60a6f122a3b475e0fep-1, + 0x1.a074b8p-2 + }, + { // Entry 47 + 0x1.c6b4aa00000bf2d58223ca9249b47316p-4, + 0x1.af311ap-4 + }, + { // Entry 48 + 0x1.e1bcd4fffe314487556a09bb0c8a7551p-3, + 0x1.b0a4d4p-3 + }, + { // Entry 49 + 0x1.d62649fffff82b1e6698411a08145a29p-4, + 0x1.bd11a8p-4 + }, + { // Entry 50 + 0x1.05161b00011b9313efed24a09a8cb044p-2, + 0x1.d11ebap-3 + }, + { // Entry 51 + 0x1.9a92e90baa2969fa8c71bb3c2be8bb40p85, + 0x1.db1e7ep5 + }, + { // Entry 52 + 0x1.e63ebcfffee84008206c45435ee52722p-14, + 0x1.e63786p-14 + }, + { // Entry 53 + 0x1.9768d30002d89bbd7f87c2131074c9c5p0, + 0x1.e788b8p-1 + }, + { // Entry 54 + 0x1.6e23d980dd2d2fba285ff30446a78914p5, + 0x1.ec2f24p1 + }, + { // Entry 55 + 0x1.a664d8ed7cc33ede965392722b0d87bfp22, + 0x1.f7fffep3 + }, + { // Entry 56 + 0x1.b6904dfffe42514279db71397b7ffb45p0, + 0x1.ff07cep-1 + }, + { // Entry 57 + 0x1.b6b11ea799b7c71cf2f6b9659c8155c6p0, + 0x1.ff1ffep-1 + }, + { // Entry 58 + 0x1.3d59d2d8b22b41c2bb6334b9be7be902p92, + 0x1.ffdffep5 + }, + { // Entry 59 + 0x1.00000b00000aaaa78fffe97777a4d832p-19, + 0x1.fffff6p-20 + }, + { // Entry 60 + 0x1.fffff800000000000000000000000003p-127, + 0x1.fffff8p-127 + }, + { // Entry 61 + 0x1.000001fffffaaaaa8ffffff77777fa4fp-21, + 0x1.fffffcp-22 + }, + { // Entry 62 + 0x1.4258e1a2c0604eea1e874d7004e6dfb9p92, + 0x1.fffffcp5 + }, + { // Entry 63 + 0x1.00000700001aaaaadd55554ccccba7d2p-20, + 0x1.fffffep-21 + }, + { // Entry 64 + 0x1.304d1ed9511bf5a69db20e4cdbf6d8ffp69, + 0x1.7ffffep5 + }, + { // Entry 65 + 0x1.304d6aeca254b3af43c5d6293d5f65c7p69, + 0x1.80p5 + }, + { // Entry 66 + 0x1.304db70006924866b41845097c91e488p69, + 0x1.800002p5 + }, + { // Entry 67 + -0x1.ffffffffffffffffffc0e3377dc96717p-1, + -0x1.a00002p5 + }, + { // Entry 68 + -0x1.ffffffffffffffffffc0e327b6954da3p-1, + -0x1.a0p5 + }, + { // Entry 69 + -0x1.ffffffffffffffffffc0e317ef5d4261p-1, + -0x1.9ffffep5 + }, + { // Entry 70 + 0x1.5576f0dcac21787f2d57b14a700204e3p115, + 0x1.3ffffep6 + }, + { // Entry 71 + 0x1.55779b984f3eb3c8a503b4a8e2487d98p115, + 0x1.40p6 + }, + { // Entry 72 + 0x1.5578465447b9d5f83246af1e48e8025bp115, + 0x1.400002p6 + }, + { // Entry 73 + -0x1.fffffffffffffffffffffffffffffffbp-1, + -0x1.600002p6 + }, + { // Entry 74 + -0x1.fffffffffffffffffffffffffffffffbp-1, + -0x1.60p6 + }, + { // Entry 75 + -0x1.fffffffffffffffffffffffffffffffbp-1, + -0x1.5ffffep6 + }, + { // Entry 76 + 0x1.039924428f47511c03c75dd623bc47e1p75, + 0x1.9ffffep5 + }, + { // Entry 77 + 0x1.03996528e074bebcfd56416fc2c0eb92p75, + 0x1.a0p5 + }, + { // Entry 78 + 0x1.0399a60f41dbc2b085021312f505089dp75, + 0x1.a00002p5 + }, + { // Entry 79 + -0x1.fffffffffffffffff28a2d8657e93e43p-1, + -0x1.800002p5 + }, + { // Entry 80 + -0x1.fffffffffffffffff28a2a28e2df25a0p-1, + -0x1.80p5 + }, + { // Entry 81 + -0x1.fffffffffffffffff28a26cb6cfdafa0p-1, + -0x1.7ffffep5 + }, + { // Entry 82 + 0x1.f1047545465f97aad6774dfe16b960dep126, + 0x1.5ffffep6 + }, + { // Entry 83 + 0x1.f1056dc7bf22d3de0ed57615bc501f87p126, + 0x1.60p6 + }, + { // Entry 84 + 0x1.f106664ab4276b833993050c9aa09a91p126, + 0x1.600002p6 + }, + { // Entry 85 + -0x1.ffffffffffffffffffffffffffffd004p-1, + -0x1.400002p6 + }, + { // Entry 86 + -0x1.ffffffffffffffffffffffffffffd004p-1, + -0x1.40p6 + }, + { // Entry 87 + -0x1.ffffffffffffffffffffffffffffd004p-1, + -0x1.3ffffep6 + }, + { // Entry 88 + -0x1.ffffffffffffffffffffffffffa57347p-1, + -0x1.274768p6 + }, + { // Entry 89 + -0x1.fffffffffffffffffffffffffffffebdp-1, + -0x1.4e8ed0p6 + }, + { // Entry 90 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.75d638p6 + }, + { // Entry 91 + -0x1.000000082e308632c06d5d65136575eap-1, + -0x1.62e430p-1 + }, + { // Entry 92 + -0x1.fffffe105c601cc1e199f9261fc7dbe6p-2, + -0x1.62e42ep-1 + }, + { // Entry 93 + -0x1.fffffc105c5d2d1e406993e20adc02bfp-2, + -0x1.62e42cp-1 + }, + { // Entry 94 + -0x1.2bec333baa280850b6bf9111bb873f60p-2, + -0x1.62e430p-2 + }, + { // Entry 95 + -0x1.2bec31d1a0414ba3511c18f32bb55d63p-2, + -0x1.62e42ep-2 + }, + { // Entry 96 + -0x1.2bec30679659d9f0f7ed08e4eb06dfefp-2, + -0x1.62e42cp-2 + }, + { // Entry 97 + -0x1.45d819b70d12db9f1551331188790df6p-3, + -0x1.62e430p-3 + }, + { // Entry 98 + -0x1.45d81808831913911ad15724d9d51211p-3, + -0x1.62e42ep-3 + }, + { // Entry 99 + -0x1.45d81659f91edfe0a1d20369bbdaa485p-3, + -0x1.62e42cp-3 + }, + { // Entry 100 + -0x1.53f391912e7f21ab50219d67aa32363ap-4, + -0x1.62e430p-4 + }, + { // Entry 101 + -0x1.53f38fbbacf136790727bc2da36b8afcp-4, + -0x1.62e42ep-4 + }, + { // Entry 102 + -0x1.53f38de62b6310968c6cc9a7616b33cbp-4, + -0x1.62e42cp-4 + }, + { // Entry 103 + -0x1.5b505d6b19f4b405dbb6b9ef18ad9e35p-5, + -0x1.62e430p-5 + }, + { // Entry 104 + -0x1.5b505b80cefa7b6523305e22a4c06c28p-5, + -0x1.62e42ep-5 + }, + { // Entry 105 + -0x1.5b5059968400241fbb0583252b4c1185p-5, + -0x1.62e42cp-5 + }, + { // Entry 106 + -0x1.5f1349337820aba6ac332ded98347904p-6, + -0x1.62e430p-6 + }, + { // Entry 107 + -0x1.5f13473e70baed6e4fa19cb1aefb9a04p-6, + -0x1.62e42ep-6 + }, + { // Entry 108 + -0x1.5f13454969551f8db7e1db11f47dc315p-6, + -0x1.62e42cp-6 + }, + { // Entry 109 + 0x1.66c3485061b3fe6a5d2f2e20f3da3783p-6, + 0x1.62e42cp-6 + }, + { // Entry 110 + 0x1.66c34a5b97ce491a4338414cff9666e6p-6, + 0x1.62e42ep-6 + }, + { // Entry 111 + 0x1.66c34c66cde8a423da13eb5efee5340ep-6, + 0x1.62e430p-6 + }, + { // Entry 112 + 0x1.6ab0d5d6d1d44992503e4b6f3b09f07ep-5, + 0x1.62e42cp-5 + }, + { // Entry 113 + 0x1.6ab0d7ed7ce1b7b4c5ee2919ab4f11e6p-5, + 0x1.62e42ep-5 + }, + { // Entry 114 + 0x1.6ab0da0427ef4741ec75f440fd4eb0f9p-5, + 0x1.62e430p-5 + }, + { // Entry 115 + 0x1.72b838327ae1f9d7e70418a476da480dp-4, + 0x1.62e42cp-4 + }, + { // Entry 116 + 0x1.72b83a60d1e9230cb3b52cd1200b8dcdp-4, + 0x1.62e42ep-4 + }, + { // Entry 117 + 0x1.72b83c8f28f0920c614fc4456de049fcp-4, + 0x1.62e430p-4 + }, + { // Entry 118 + 0x1.837f006a90e2d9adf9b9b9c5850970d1p-3, + 0x1.62e42cp-3 + }, + { // Entry 119 + 0x1.837f02cb70a3406e2a79d1750af1d7e2p-3, + 0x1.62e42ep-3 + }, + { // Entry 120 + 0x1.837f052c50643f664b66a02ec5ac16dbp-3, + 0x1.62e430p-3 + }, + { // Entry 121 + 0x1.a827940eca9f76673e51d2c4569cfb3ap-2, + 0x1.62e42cp-2 + }, + { // Entry 122 + 0x1.a82796e2de6a32d180ad0b353267983bp-2, + 0x1.62e42ep-2 + }, + { // Entry 123 + 0x1.a82799b6f2365945a8c0fb40a27174dap-2, + 0x1.62e430p-2 + }, + { // Entry 124 + 0x1.fffff820b8c9d86525e55f587e34861ap-1, + 0x1.62e42cp-1 + }, + { // Entry 125 + 0x1.fffffc20b8c3f91dec78cb8cd53a92e3p-1, + 0x1.62e42ep-1 + }, + { // Entry 126 + 0x1.000000105c610ceb57967842bd59f094p0, + 0x1.62e430p-1 + }, + { // Entry 127 + 0x1.7ffff820b8d19779692fb0fcc0281246p1, + 0x1.62e42cp0 + }, + { // Entry 128 + 0x1.7ffffc20b8c5d8eaff4ac013cf734639p1, + 0x1.62e42ep0 + }, + { // Entry 129 + 0x1.80000020b8c21a5c85e8b244ed151cd8p1, + 0x1.62e430p0 + }, + { // Entry 130 + 0x1.dffff04171c22b43a28d8088c347bf1fp3, + 0x1.62e42cp1 + }, + { // Entry 131 + 0x1.dffff8417193310a429b71e70d792186p3, + 0x1.62e42ep1 + }, + { // Entry 132 + 0x1.e0000041718436d066c07ca312f8b318p3, + 0x1.62e430p1 + }, + { // Entry 133 + 0x1.fdffe082e40047c89dfa41d09c1e1ef8p7, + 0x1.62e42cp2 + }, + { // Entry 134 + 0x1.fdfff082e3445ee55b3fa84a5dd849c9p7, + 0x1.62e42ep2 + }, + { // Entry 135 + 0x1.fe000082e30875fe393de286837f485dp7, + 0x1.62e430p2 + }, + { // Entry 136 + 0x1.fffdc105c9f0548760a823b0dfdaeb66p15, + 0x1.62e42cp3 + }, + { // Entry 137 + 0x1.fffde105c700b10c3e2a549fbdebb0dap15, + 0x1.62e42ep3 + }, + { // Entry 138 + 0x1.fffe0105c6110d722173b0ea5050713ap15, + 0x1.62e430p3 + }, + { // Entry 139 + 0x1.ffff82099b9fbc6d5dda406ad9f93354p31, + 0x1.62e42cp4 + }, + { // Entry 140 + 0x1.ffffc2098fe12f101740ac9653f78fe3p31, + 0x1.62e42ep4 + }, + { // Entry 141 + 0x1.00000104c611505d7f74a41433312dp32, + 0x1.62e430p4 + }, + { // Entry 142 + 0x1.fffe082f28688d3872ab8aa69f3dc356p127, + 0x1.62e42cp6 + }, + { // Entry 143 + 0x1.ffff082e6c7fed1d3fd5cff7e1f6058fp127, + 0x1.62e42ep6 + }, + { // Entry 144 + HUGE_VALF, + 0x1.62e430p6 + }, + { // Entry 145 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9d1da2p6 + }, + { // Entry 146 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9d1da0p6 + }, + { // Entry 147 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9d1d9ep6 + }, + { // Entry 148 + -0x1.c5041b725d705416b9a2fe9ecfd0f12fp-3, + -0x1.000002p-2 + }, + { // Entry 149 + -0x1.c5041854df7d45e5f51a1b14e4b86234p-3, + -0x1.p-2 + }, + { // Entry 150 + -0x1.c50416c620832945f52a143b7ab9cc40p-3, + -0x1.fffffep-3 + }, + { // Entry 151 + -0x1.e14af110ec3368f6b0943acd54603c38p-4, + -0x1.000002p-3 + }, + { // Entry 152 + -0x1.e14aed893eef3c3c14ed960d0a2b5054p-4, + -0x1.p-3 + }, + { // Entry 153 + -0x1.e14aebc5684cd12688af02d3c4c33ae5p-4, + -0x1.fffffep-4 + }, + { // Entry 154 + -0x1.f05407faf2db6e62ca86b906177f8ab4p-5, + -0x1.000002p-4 + }, + { // Entry 155 + -0x1.f0540438fd5c31a1ce01f9f6ca74502bp-5, + -0x1.p-4 + }, + { // Entry 156 + -0x1.f0540258029c6629cdc6e0688e0c17d1p-5, + -0x1.fffffep-5 + }, + { // Entry 157 + -0x1.f8152ecf12fe0f7cc4305325eb3cc27ep-6, + -0x1.000002p-5 + }, + { // Entry 158 + -0x1.f8152aee9450dd69fea80d113b1945c7p-6, + -0x1.p-5 + }, + { // Entry 159 + -0x1.f81528fe54fa2d1da3d441866c2e2c68p-6, + -0x1.fffffep-6 + }, + { // Entry 160 + -0x1.fc0553f461432629324524f0e3968455p-7, + -0x1.000002p-6 + }, + { // Entry 161 + -0x1.fc055004416db60bbd08aac54a956e76p-7, + -0x1.p-6 + }, + { // Entry 162 + -0x1.fc054e0c3182f22ca2e9fdd61fb3c4d6p-7, + -0x1.fffffep-7 + }, + { // Entry 163 + -0x1.fe0158a2f6d2d965d520469a1b630418p-8, + -0x1.000002p-7 + }, + { // Entry 164 + -0x1.fe0154aaeed83401a07666b3bbde908fp-8, + -0x1.p-7 + }, + { // Entry 165 + -0x1.fe0152aeeadadb5b7a2976ba2d283634p-8, + -0x1.fffffep-8 + }, + { // Entry 166 + -0x1.ff00593c0642dfd6d7680bd2846289e8p-9, + -0x1.000002p-8 + }, + { // Entry 167 + -0x1.ff00554004438e52e1ee7b503e63818cp-9, + -0x1.p-8 + }, + { // Entry 168 + -0x1.ff0053420343e293e5b233ee2249277bp-9, + -0x1.fffffep-9 + }, + { // Entry 169 + -0x1.ff801950ab6ed1ed50ba61050b26a7c2p-10, + -0x1.000002p-9 + }, + { // Entry 170 + -0x1.ff801552aaeee93efbe93ef05c2dcb20p-10, + -0x1.p-9 + }, + { // Entry 171 + -0x1.ff801353aaaef3689150b624e4d2f2dap-10, + -0x1.fffffep-10 + }, + { // Entry 172 + -0x1.ffc009540024406c8302028c7714cceap-11, + -0x1.000002p-10 + }, + { // Entry 173 + -0x1.ffc0055500044416c30c23c298990114p-11, + -0x1.p-10 + }, + { // Entry 174 + -0x1.ffc003557ff4452c130b34ed9d5c017ep-11, + -0x1.fffffep-11 + }, + { // Entry 175 + -0x1.fff80415352b2acd9a413af860684c9cp-14, + -0x1.000002p-13 + }, + { // Entry 176 + -0x1.fff80015552aaaeeee93e9a69a01a076p-14, + -0x1.p-13 + }, + { // Entry 177 + -0x1.fff7fe15652a6ae7997d3dfdfecc3a6bp-14, + -0x1.fffffep-14 + }, + { // Entry 178 + 0x1.22d78dc6ea7dff08931d74663f93346dp-2, + 0x1.fffffep-3 + }, + { // Entry 179 + 0x1.22d78f0fa06199d9ef0eda6eaaf94d3bp-2, + 0x1.p-2 + }, + { // Entry 180 + 0x1.22d791a10c29c60511d91ff00eb6fedap-2, + 0x1.000002p-2 + }, + { // Entry 181 + 0x1.10b021b964e233996eb974cb64f11f96p-3, + 0x1.fffffep-4 + }, + { // Entry 182 + 0x1.10b022db7ae67ce76b441c27035c6a13p-3, + 0x1.p-3 + }, + { // Entry 183 + 0x1.10b0251fa6ef7c4ba6003cf91fe85dc9p-3, + 0x1.000002p-3 + }, + { // Entry 184 + 0x1.082b566cb2380e0be0d559a0150172f7p-4, + 0x1.fffffep-5 + }, + { // Entry 185 + 0x1.082b577d34ed7d5b1a019e225c9a951bp-4, + 0x1.p-4 + }, + { // Entry 186 + 0x1.082b599e3a588f120e61af4869c98421p-4, + 0x1.000002p-4 + }, + { // Entry 187 + 0x1.040abf1a2f8334cf7c9ee0b1d34ae144p-5, + 0x1.fffffep-6 + }, + { // Entry 188 + 0x1.040ac0224fd931c17a1075750192f4d5p-5, + 0x1.p-5 + }, + { // Entry 189 + 0x1.040ac232908544687d03fabf568a3de2p-5, + 0x1.000002p-5 + }, + { // Entry 190 + 0x1.0202ac5370d9ab5845b0e78f0b42a783p-6, + 0x1.fffffep-7 + }, + { // Entry 191 + 0x1.0202ad5778e45eae192cfa41139ad15bp-6, + 0x1.p-6 + }, + { // Entry 192 + 0x1.0202af5f88f9d18a20a5b04c4fc86c51p-6, + 0x1.000002p-6 + }, + { // Entry 193 + 0x1.0100a9fe202c311aef67a75b93d0aff7p-7, + 0x1.fffffep-8 + }, + { // Entry 194 + 0x1.0100ab00222d861931c15e39b44e9937p-7, + 0x1.p-7 + }, + { // Entry 195 + 0x1.0100ad0426303621c27cd3ff977212f4p-7, + 0x1.000002p-7 + }, + { // Entry 196 + 0x1.008029b456f7a855530b151055fcccd9p-8, + 0x1.fffffep-9 + }, + { // Entry 197 + 0x1.00802ab55777d28a2a42d26aa9ee67bcp-8, + 0x1.p-8 + }, + { // Entry 198 + 0x1.00802cb7587829f6da32ce4058b94099p-8, + 0x1.000002p-8 + }, + { // Entry 199 + 0x1.004009ab80021fe4a3a269b377bf18d6p-9, + 0x1.fffffep-10 + }, + { // Entry 200 + 0x1.00400aac002224fa83ab7ae5e991e737p-9, + 0x1.p-9 + }, + { // Entry 201 + 0x1.00400cad006230a703eda58bed592121p-9, + 0x1.000002p-9 + }, + { // Entry 202 + 0x1.002001aa954f77038c5ec3e966c711f3p-10, + 0x1.fffffep-11 + }, + { // Entry 203 + 0x1.002002aad557778e39b3a1ba49dea952p-10, + 0x1.p-10 + }, + { // Entry 204 + 0x1.002004ab55677963c4635dec1c0ebe87p-10, + 0x1.000002p-10 + }, + { // Entry 205 + 0x1.0003ff0aa2bfe025cd19a5ad38b10c96p-13, + 0x1.fffffep-14 + }, + { // Entry 206 + 0x1.0004000aaac00022224fa52e531931c1p-13, + 0x1.p-13 + }, + { // Entry 207 + 0x1.0004020abac04032cd7ba730cfeb8c1ep-13, + 0x1.000002p-13 + }, + { // Entry 208 + -0x1.ffffffffffffffffffffffe6963841c5p-1, + -0x1.000002p6 + }, + { // Entry 209 + -0x1.ffffffffffffffffffffffe6962b8cdep-1, + -0x1.p6 + }, + { // Entry 210 + -0x1.ffffffffffffffffffffffe696253268p-1, + -0x1.fffffep5 + }, + { // Entry 211 + -0x1.fffffffffff8dee88a6dbd53498e13ccp-1, + -0x1.000002p5 + }, + { // Entry 212 + -0x1.fffffffffff8dee6c227a6e5f875997fp-1, + -0x1.p5 + }, + { // Entry 213 + -0x1.fffffffffff8dee5de0470e8ba3e9067p-1, + -0x1.fffffep4 + }, + { // Entry 214 + -0x1.fffffc3955017796a5082c3f27acd321p-1, + -0x1.000002p4 + }, + { // Entry 215 + -0x1.fffffc395488a22f46a4b3411819a2eep-1, + -0x1.p4 + }, + { // Entry 216 + -0x1.fffffc39544c3775ed71e1eab18a7021p-1, + -0x1.fffffep3 + }, + { // Entry 217 + -0x1.ffd407c0b763bb2c6c6d1f372c7be8d8p-1, + -0x1.000002p3 + }, + { // Entry 218 + -0x1.ffd407bdf7dfb0a688065730fe0231c2p-1, + -0x1.p3 + }, + { // Entry 219 + -0x1.ffd407bc981d9ae67d3bdf5125871e80p-1, + -0x1.fffffep2 + }, + { // Entry 220 + -0x1.f69f556ef4b73a33a7188427d84778e4p-1, + -0x1.000002p2 + }, + { // Entry 221 + -0x1.f69f5523ef6185c40ba87f669ea8ee15p-1, + -0x1.p2 + }, + { // Entry 222 + -0x1.f69f54fe6cb5ca7c3a7b03828a0e81ebp-1, + -0x1.fffffep1 + }, + { // Entry 223 + -0x1.bab556862ca0e3235d497e670376d71fp-1, + -0x1.000002p1 + }, + { // Entry 224 + -0x1.bab5557101f8d1809224547b4bf5aa38p-1, + -0x1.p1 + }, + { // Entry 225 + -0x1.bab554e66ca328ef2e4cf602f5709f13p-1, + -0x1.fffffep0 + }, + { // Entry 226 + -0x1.43a54fc74de82be41b573089f7ac0364p-1, + -0x1.000002p0 + }, + { // Entry 227 + -0x1.43a54e4e988641ca8a4270fadf560de4p-1, + -0x1.p0 + }, + { // Entry 228 + -0x1.43a54d923dd43235b78c235547ec9cdcp-1, + -0x1.fffffep-1 + }, + { // Entry 229 + 0x1.4259323902dbc6e62e3e07be26cd904cp92, + 0x1.fffffep5 + }, + { // Entry 230 + 0x1.425982cf597cd205ce3d5b3edb031756p92, + 0x1.p6 + }, + { // Entry 231 + 0x1.425a23fc432fb5d556006a3d8e7ee11bp92, + 0x1.000002p6 + }, + { // Entry 232 + 0x1.1f43d8dc3904b8ed87a5abd50621706ap46, + 0x1.fffffep4 + }, + { // Entry 233 + 0x1.1f43fcc4b65ec7d84788401842174074p46, + 0x1.p5 + }, + { // Entry 234 + 0x1.1f444495be8a1616a1e5e388779bc146p46, + 0x1.000002p5 + }, + { // Entry 235 + 0x1.0f2eaa1794b8f3edb5c10d26a51f420fp23, + 0x1.fffffep3 + }, + { // Entry 236 + 0x1.0f2ebb0a8002049223f170882b5ee5efp23, + 0x1.p4 + }, + { // Entry 237 + 0x1.0f2edcf059c1b22312bed964006ee633p23, + 0x1.000002p4 + }, + { // Entry 238 + 0x1.747e9c2f7bb6cf5a276ee08236c2d6c3p11, + 0x1.fffffep2 + }, + { // Entry 239 + 0x1.747ea7d470c6df0be00e084a815d1de6p11, + 0x1.p3 + }, + { // Entry 240 + 0x1.747ebf1e5bfe757019de4e22b113fde9p11, + 0x1.000002p3 + }, + { // Entry 241 + 0x1.acc8fc0f4fa7a2f2459a6ef53c315f0fp5, + 0x1.fffffep1 + }, + { // Entry 242 + 0x1.acc902e273a58678d6d3bfdb93db96d0p5, + 0x1.p2 + }, + { // Entry 243 + 0x1.acc91088bbf33336f0ee52b1ad858e43p5, + 0x1.000002p2 + }, + { // Entry 244 + 0x1.98e647db814773f419262ee477a98616p2, + 0x1.fffffep0 + }, + { // Entry 245 + 0x1.98e64b8d4ddadcc33a3ba206b68abba8p2, + 0x1.p1 + }, + { // Entry 246 + 0x1.98e652f0e717d92d15cd610022ae51e3p2, + 0x1.000002p1 + }, + { // Entry 247 + 0x1.b7e14eaaa99d23d07a843854f80eb965p0, + 0x1.fffffep-1 + }, + { // Entry 248 + 0x1.b7e151628aed2a6abf7158809cf4f3c7p0, + 0x1.p0 + }, + { // Entry 249 + 0x1.b7e156d24d955f43402b1af2d27591c2p0, + 0x1.000002p0 + }, + { // Entry 250 + HUGE_VALF, + 0x1.p124 + }, + { // Entry 251 + HUGE_VALF, + 0x1.99999ap124 + }, + { // Entry 252 + HUGE_VALF, + 0x1.19999ap125 + }, + { // Entry 253 + HUGE_VALF, + 0x1.666668p125 + }, + { // Entry 254 + HUGE_VALF, + 0x1.b33334p125 + }, + { // Entry 255 + HUGE_VALF, + 0x1.p126 + }, + { // Entry 256 + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 257 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 258 + -0x1.p0, + -HUGE_VALF + }, + { // Entry 259 + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 260 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffep127 + }, + { // Entry 261 + HUGE_VALF, + 0x1.fffffcp127 + }, + { // Entry 262 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffcp127 + }, + { // Entry 263 + 0x1.6240490a165620d9b922aaa22a8e4c09p4, + 0x1.921fb6p1 + }, + { // Entry 264 + -0x1.e9dfdda51a16cb6a6c29449e73dceabap-1, + -0x1.921fb6p1 + }, + { // Entry 265 + 0x1.e7bdbace4109994c2555657347d02f77p1, + 0x1.921fb6p0 + }, + { // Entry 266 + -0x1.9590cf323040b06ca55a506162a742f5p-1, + -0x1.921fb6p0 + }, + { // Entry 267 + 0x1.b7e156d24d955f43402b1af2d27591c2p0, + 0x1.000002p0 + }, + { // Entry 268 + -0x1.43a54fc74de82be41b573089f7ac0364p-1, + -0x1.000002p0 + }, + { // Entry 269 + 0x1.b7e151628aed2a6abf7158809cf4f3c7p0, + 0x1.p0 + }, + { // Entry 270 + -0x1.43a54e4e988641ca8a4270fadf560de4p-1, + -0x1.p0 + }, + { // Entry 271 + 0x1.b7e14eaaa99d23d07a843854f80eb965p0, + 0x1.fffffep-1 + }, + { // Entry 272 + -0x1.43a54d923dd43235b78c235547ec9cdcp-1, + -0x1.fffffep-1 + }, + { // Entry 273 + 0x1.317acdf6c5663201980ec69bd74868acp0, + 0x1.921fb6p-1 + }, + { // Entry 274 + -0x1.168f476e16a8feaa2183b486fed0e5cep-1, + -0x1.921fb6p-1 + }, + { // Entry 275 + 0x1.00000200000000000000000000000002p-126, + 0x1.000002p-126 + }, + { // Entry 276 + -0x1.000001fffffffffffffffffffffffffdp-126, + -0x1.000002p-126 + }, + { // Entry 277 + 0x1.00000000000000000000000000000002p-126, + 0x1.p-126 + }, + { // Entry 278 + -0x1.fffffffffffffffffffffffffffffffcp-127, + -0x1.p-126 + }, + { // Entry 279 + 0x1.fffffc00000000000000000000000003p-127, + 0x1.fffffcp-127 + }, + { // Entry 280 + -0x1.fffffbfffffffffffffffffffffffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 281 + 0x1.fffff800000000000000000000000003p-127, + 0x1.fffff8p-127 + }, + { // Entry 282 + -0x1.fffff7fffffffffffffffffffffffffcp-127, + -0x1.fffff8p-127 + }, + { // Entry 283 + 0x1.p-148, + 0x1.p-148 + }, + { // Entry 284 + -0x1.ffffffffffffffffffffffffffffffffp-149, + -0x1.p-148 + }, + { // Entry 285 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 286 + -0.0f, + -0x1.p-149 + }, + { // Entry 287 + 0.0, + 0.0f + }, + { // Entry 288 + -0.0, + -0.0f + }, + { // Entry 289 + 0x1.ffff082e6c7fed1d3fd5cff7e1f6058fp127, + 0x1.62e42ep6 + }, + { // Entry 290 + HUGE_VALF, + 0x1.62e430p6 + } +}; diff --git a/tests/math_data/fabs_intel_data.h b/tests/math_data/fabs_intel_data.h new file mode 100644 index 000000000..92db0caaa --- /dev/null +++ b/tests/math_data/fabs_intel_data.h @@ -0,0 +1,494 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_fabs_intel_data[] = { + { // Entry 0 + 0x1.p-10, + -0x1.0p-10 + }, + { // Entry 1 + 0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 2 + 0.0, + -0.0 + }, + { // Entry 3 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 4 + 0x1.fffffffffffff0p999, + 0x1.fffffffffffffp999 + }, + { // Entry 5 + 0x1.p1000, + 0x1.0p1000 + }, + { // Entry 6 + 0x1.00000000000010p1000, + 0x1.0000000000001p1000 + }, + { // Entry 7 + 0x1.fffffffffffff0p199, + 0x1.fffffffffffffp199 + }, + { // Entry 8 + 0x1.p200, + 0x1.0p200 + }, + { // Entry 9 + 0x1.00000000000010p200, + 0x1.0000000000001p200 + }, + { // Entry 10 + 0x1.fffffffffffff0p99, + 0x1.fffffffffffffp99 + }, + { // Entry 11 + 0x1.p100, + 0x1.0p100 + }, + { // Entry 12 + 0x1.00000000000010p100, + 0x1.0000000000001p100 + }, + { // Entry 13 + 0x1.fffffffffffff0p19, + 0x1.fffffffffffffp19 + }, + { // Entry 14 + 0x1.p20, + 0x1.0p20 + }, + { // Entry 15 + 0x1.00000000000010p20, + 0x1.0000000000001p20 + }, + { // Entry 16 + 0x1.fffffffffffff0p14, + 0x1.fffffffffffffp14 + }, + { // Entry 17 + 0x1.p15, + 0x1.0p15 + }, + { // Entry 18 + 0x1.00000000000010p15, + 0x1.0000000000001p15 + }, + { // Entry 19 + 0x1.fffffffffffff0p9, + 0x1.fffffffffffffp9 + }, + { // Entry 20 + 0x1.p10, + 0x1.0p10 + }, + { // Entry 21 + 0x1.00000000000010p10, + 0x1.0000000000001p10 + }, + { // Entry 22 + 0x1.fffffffffffff0p8, + 0x1.fffffffffffffp8 + }, + { // Entry 23 + 0x1.p9, + 0x1.0p9 + }, + { // Entry 24 + 0x1.00000000000010p9, + 0x1.0000000000001p9 + }, + { // Entry 25 + 0x1.fffffffffffff0p6, + 0x1.fffffffffffffp6 + }, + { // Entry 26 + 0x1.p7, + 0x1.0p7 + }, + { // Entry 27 + 0x1.00000000000010p7, + 0x1.0000000000001p7 + }, + { // Entry 28 + 0x1.fffffffffffff0p4, + 0x1.fffffffffffffp4 + }, + { // Entry 29 + 0x1.p5, + 0x1.0p5 + }, + { // Entry 30 + 0x1.00000000000010p5, + 0x1.0000000000001p5 + }, + { // Entry 31 + 0x1.fffffffffffff0p3, + 0x1.fffffffffffffp3 + }, + { // Entry 32 + 0x1.p4, + 0x1.0p4 + }, + { // Entry 33 + 0x1.00000000000010p4, + 0x1.0000000000001p4 + }, + { // Entry 34 + 0x1.fffffffffffff0p2, + 0x1.fffffffffffffp2 + }, + { // Entry 35 + 0x1.p3, + 0x1.0p3 + }, + { // Entry 36 + 0x1.00000000000010p3, + 0x1.0000000000001p3 + }, + { // Entry 37 + 0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1 + }, + { // Entry 38 + 0x1.p2, + 0x1.0p2 + }, + { // Entry 39 + 0x1.00000000000010p2, + 0x1.0000000000001p2 + }, + { // Entry 40 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp0 + }, + { // Entry 41 + 0x1.p1, + 0x1.0p1 + }, + { // Entry 42 + 0x1.00000000000010p1, + 0x1.0000000000001p1 + }, + { // Entry 43 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 44 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 45 + 0x1.00000000000010p0, + 0x1.0000000000001p0 + }, + { // Entry 46 + 0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 47 + 0x1.p-1, + 0x1.0p-1 + }, + { // Entry 48 + 0x1.00000000000010p-1, + 0x1.0000000000001p-1 + }, + { // Entry 49 + 0x1.fffffffffffff0p-3, + 0x1.fffffffffffffp-3 + }, + { // Entry 50 + 0x1.p-2, + 0x1.0p-2 + }, + { // Entry 51 + 0x1.00000000000010p-2, + 0x1.0000000000001p-2 + }, + { // Entry 52 + 0x1.fffffffffffff0p-4, + 0x1.fffffffffffffp-4 + }, + { // Entry 53 + 0x1.p-3, + 0x1.0p-3 + }, + { // Entry 54 + 0x1.00000000000010p-3, + 0x1.0000000000001p-3 + }, + { // Entry 55 + 0x1.fffffffffffff0p-5, + 0x1.fffffffffffffp-5 + }, + { // Entry 56 + 0x1.p-4, + 0x1.0p-4 + }, + { // Entry 57 + 0x1.00000000000010p-4, + 0x1.0000000000001p-4 + }, + { // Entry 58 + 0x1.fffffffffffff0p-6, + 0x1.fffffffffffffp-6 + }, + { // Entry 59 + 0x1.p-5, + 0x1.0p-5 + }, + { // Entry 60 + 0x1.00000000000010p-5, + 0x1.0000000000001p-5 + }, + { // Entry 61 + 0x1.fffffffffffff0p-8, + 0x1.fffffffffffffp-8 + }, + { // Entry 62 + 0x1.p-7, + 0x1.0p-7 + }, + { // Entry 63 + 0x1.00000000000010p-7, + 0x1.0000000000001p-7 + }, + { // Entry 64 + 0x1.fffffffffffff0p-10, + 0x1.fffffffffffffp-10 + }, + { // Entry 65 + 0x1.p-9, + 0x1.0p-9 + }, + { // Entry 66 + 0x1.00000000000010p-9, + 0x1.0000000000001p-9 + }, + { // Entry 67 + 0x1.fffffffffffff0p-11, + 0x1.fffffffffffffp-11 + }, + { // Entry 68 + 0x1.p-10, + 0x1.0p-10 + }, + { // Entry 69 + 0x1.00000000000010p-10, + 0x1.0000000000001p-10 + }, + { // Entry 70 + 0x1.fffffffffffff0p-16, + 0x1.fffffffffffffp-16 + }, + { // Entry 71 + 0x1.p-15, + 0x1.0p-15 + }, + { // Entry 72 + 0x1.00000000000010p-15, + 0x1.0000000000001p-15 + }, + { // Entry 73 + 0x1.fffffffffffff0p-21, + 0x1.fffffffffffffp-21 + }, + { // Entry 74 + 0x1.p-20, + 0x1.0p-20 + }, + { // Entry 75 + 0x1.00000000000010p-20, + 0x1.0000000000001p-20 + }, + { // Entry 76 + 0x1.fffffffffffff0p-101, + 0x1.fffffffffffffp-101 + }, + { // Entry 77 + 0x1.p-100, + 0x1.0p-100 + }, + { // Entry 78 + 0x1.00000000000010p-100, + 0x1.0000000000001p-100 + }, + { // Entry 79 + 0x1.fffffffffffff0p-201, + 0x1.fffffffffffffp-201 + }, + { // Entry 80 + 0x1.p-200, + 0x1.0p-200 + }, + { // Entry 81 + 0x1.00000000000010p-200, + 0x1.0000000000001p-200 + }, + { // Entry 82 + 0x1.fffffffffffff0p-1001, + 0x1.fffffffffffffp-1001 + }, + { // Entry 83 + 0x1.p-1000, + 0x1.0p-1000 + }, + { // Entry 84 + 0x1.00000000000010p-1000, + 0x1.0000000000001p-1000 + }, + { // Entry 85 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 86 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 87 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 88 + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 89 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 90 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 91 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 92 + 0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 93 + 0x1.921fb54442d180p1, + 0x1.921fb54442d18p1 + }, + { // Entry 94 + 0x1.921fb54442d180p1, + -0x1.921fb54442d18p1 + }, + { // Entry 95 + 0x1.921fb54442d180p0, + 0x1.921fb54442d18p0 + }, + { // Entry 96 + 0x1.921fb54442d180p0, + -0x1.921fb54442d18p0 + }, + { // Entry 97 + 0x1.00000000000010p0, + 0x1.0000000000001p0 + }, + { // Entry 98 + 0x1.00000000000010p0, + -0x1.0000000000001p0 + }, + { // Entry 99 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 100 + 0x1.p0, + -0x1.0p0 + }, + { // Entry 101 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 102 + 0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 103 + 0x1.921fb54442d180p-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 104 + 0x1.921fb54442d180p-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 105 + 0x1.00000000000010p-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 106 + 0x1.00000000000010p-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 107 + 0x1.p-1022, + 0x1.0p-1022 + }, + { // Entry 108 + 0x1.p-1022, + -0x1.0p-1022 + }, + { // Entry 109 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 110 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 111 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 112 + 0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 113 + 0x1.p-1073, + 0x1.0p-1073 + }, + { // Entry 114 + 0x1.p-1073, + -0x1.0p-1073 + }, + { // Entry 115 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 116 + 0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 117 + 0.0, + 0.0 + }, + { // Entry 118 + 0.0, + -0.0 + } +}; diff --git a/tests/math_data/fabsf_intel_data.h b/tests/math_data/fabsf_intel_data.h new file mode 100644 index 000000000..eb426b674 --- /dev/null +++ b/tests/math_data/fabsf_intel_data.h @@ -0,0 +1,446 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_fabsf_intel_data[] = { + { // Entry 0 + 0x1.p-10, + -0x1.p-10 + }, + { // Entry 1 + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 2 + 0.0, + 0.0 + }, + { // Entry 3 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 4 + 0x1.fffffep99, + 0x1.fffffep99 + }, + { // Entry 5 + 0x1.p100, + 0x1.p100 + }, + { // Entry 6 + 0x1.000002p100, + 0x1.000002p100 + }, + { // Entry 7 + 0x1.fffffep19, + 0x1.fffffep19 + }, + { // Entry 8 + 0x1.p20, + 0x1.p20 + }, + { // Entry 9 + 0x1.000002p20, + 0x1.000002p20 + }, + { // Entry 10 + 0x1.fffffep14, + 0x1.fffffep14 + }, + { // Entry 11 + 0x1.p15, + 0x1.p15 + }, + { // Entry 12 + 0x1.000002p15, + 0x1.000002p15 + }, + { // Entry 13 + 0x1.fffffep9, + 0x1.fffffep9 + }, + { // Entry 14 + 0x1.p10, + 0x1.p10 + }, + { // Entry 15 + 0x1.000002p10, + 0x1.000002p10 + }, + { // Entry 16 + 0x1.fffffep8, + 0x1.fffffep8 + }, + { // Entry 17 + 0x1.p9, + 0x1.p9 + }, + { // Entry 18 + 0x1.000002p9, + 0x1.000002p9 + }, + { // Entry 19 + 0x1.fffffep6, + 0x1.fffffep6 + }, + { // Entry 20 + 0x1.p7, + 0x1.p7 + }, + { // Entry 21 + 0x1.000002p7, + 0x1.000002p7 + }, + { // Entry 22 + 0x1.fffffep4, + 0x1.fffffep4 + }, + { // Entry 23 + 0x1.p5, + 0x1.p5 + }, + { // Entry 24 + 0x1.000002p5, + 0x1.000002p5 + }, + { // Entry 25 + 0x1.fffffep3, + 0x1.fffffep3 + }, + { // Entry 26 + 0x1.p4, + 0x1.p4 + }, + { // Entry 27 + 0x1.000002p4, + 0x1.000002p4 + }, + { // Entry 28 + 0x1.fffffep2, + 0x1.fffffep2 + }, + { // Entry 29 + 0x1.p3, + 0x1.p3 + }, + { // Entry 30 + 0x1.000002p3, + 0x1.000002p3 + }, + { // Entry 31 + 0x1.fffffep1, + 0x1.fffffep1 + }, + { // Entry 32 + 0x1.p2, + 0x1.p2 + }, + { // Entry 33 + 0x1.000002p2, + 0x1.000002p2 + }, + { // Entry 34 + 0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 35 + 0x1.p1, + 0x1.p1 + }, + { // Entry 36 + 0x1.000002p1, + 0x1.000002p1 + }, + { // Entry 37 + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 38 + 0x1.p0, + 0x1.p0 + }, + { // Entry 39 + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 40 + 0x1.fffffep-2, + 0x1.fffffep-2 + }, + { // Entry 41 + 0x1.p-1, + 0x1.p-1 + }, + { // Entry 42 + 0x1.000002p-1, + 0x1.000002p-1 + }, + { // Entry 43 + 0x1.fffffep-3, + 0x1.fffffep-3 + }, + { // Entry 44 + 0x1.p-2, + 0x1.p-2 + }, + { // Entry 45 + 0x1.000002p-2, + 0x1.000002p-2 + }, + { // Entry 46 + 0x1.fffffep-4, + 0x1.fffffep-4 + }, + { // Entry 47 + 0x1.p-3, + 0x1.p-3 + }, + { // Entry 48 + 0x1.000002p-3, + 0x1.000002p-3 + }, + { // Entry 49 + 0x1.fffffep-5, + 0x1.fffffep-5 + }, + { // Entry 50 + 0x1.p-4, + 0x1.p-4 + }, + { // Entry 51 + 0x1.000002p-4, + 0x1.000002p-4 + }, + { // Entry 52 + 0x1.fffffep-6, + 0x1.fffffep-6 + }, + { // Entry 53 + 0x1.p-5, + 0x1.p-5 + }, + { // Entry 54 + 0x1.000002p-5, + 0x1.000002p-5 + }, + { // Entry 55 + 0x1.fffffep-8, + 0x1.fffffep-8 + }, + { // Entry 56 + 0x1.p-7, + 0x1.p-7 + }, + { // Entry 57 + 0x1.000002p-7, + 0x1.000002p-7 + }, + { // Entry 58 + 0x1.fffffep-10, + 0x1.fffffep-10 + }, + { // Entry 59 + 0x1.p-9, + 0x1.p-9 + }, + { // Entry 60 + 0x1.000002p-9, + 0x1.000002p-9 + }, + { // Entry 61 + 0x1.fffffep-11, + 0x1.fffffep-11 + }, + { // Entry 62 + 0x1.p-10, + 0x1.p-10 + }, + { // Entry 63 + 0x1.000002p-10, + 0x1.000002p-10 + }, + { // Entry 64 + 0x1.fffffep-16, + 0x1.fffffep-16 + }, + { // Entry 65 + 0x1.p-15, + 0x1.p-15 + }, + { // Entry 66 + 0x1.000002p-15, + 0x1.000002p-15 + }, + { // Entry 67 + 0x1.fffffep-21, + 0x1.fffffep-21 + }, + { // Entry 68 + 0x1.p-20, + 0x1.p-20 + }, + { // Entry 69 + 0x1.000002p-20, + 0x1.000002p-20 + }, + { // Entry 70 + 0x1.fffffep-101, + 0x1.fffffep-101 + }, + { // Entry 71 + 0x1.p-100, + 0x1.p-100 + }, + { // Entry 72 + 0x1.000002p-100, + 0x1.000002p-100 + }, + { // Entry 73 + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 74 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 75 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 76 + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 77 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 78 + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 79 + 0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 80 + 0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 81 + 0x1.921fb6p1, + 0x1.921fb6p1 + }, + { // Entry 82 + 0x1.921fb6p1, + -0x1.921fb6p1 + }, + { // Entry 83 + 0x1.921fb6p0, + 0x1.921fb6p0 + }, + { // Entry 84 + 0x1.921fb6p0, + -0x1.921fb6p0 + }, + { // Entry 85 + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 86 + 0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 87 + 0x1.p0, + 0x1.p0 + }, + { // Entry 88 + 0x1.p0, + -0x1.p0 + }, + { // Entry 89 + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 90 + 0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 91 + 0x1.921fb6p-1, + 0x1.921fb6p-1 + }, + { // Entry 92 + 0x1.921fb6p-1, + -0x1.921fb6p-1 + }, + { // Entry 93 + 0x1.000002p-126, + 0x1.000002p-126 + }, + { // Entry 94 + 0x1.000002p-126, + -0x1.000002p-126 + }, + { // Entry 95 + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 96 + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 97 + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 98 + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 99 + 0x1.fffff8p-127, + 0x1.fffff8p-127 + }, + { // Entry 100 + 0x1.fffff8p-127, + -0x1.fffff8p-127 + }, + { // Entry 101 + 0x1.p-148, + 0x1.p-148 + }, + { // Entry 102 + 0x1.p-148, + -0x1.p-148 + }, + { // Entry 103 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 104 + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 105 + 0.0, + 0.0f + }, + { // Entry 106 + 0.0, + -0.0f + } +}; diff --git a/tests/math_data/fdim_intel_data.h b/tests/math_data/fdim_intel_data.h new file mode 100644 index 000000000..c448d9620 --- /dev/null +++ b/tests/math_data/fdim_intel_data.h @@ -0,0 +1,1788 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_fdim_intel_data[] = { + { // Entry 0 + 0x1.334d6a161e4f48p-2, + -0x1.999999999999fp-3, + -0x1.000d1b71758e2p-1 + }, + { // Entry 1 + 0x1.99b3d07c84b5c8p-2, + -0x1.999999999999fp-3, + -0x1.33404ea4a8c16p-1 + }, + { // Entry 2 + 0x1.99999999999988p-12, + -0x1.999999999999fp-13, + -0x1.3333333333334p-11 + }, + { // Entry 3 + 0x1.f07c1f07c1f0f8p-12, + -0x1.dbcc48676f2f9p-13, + -0x1.6f31219dbcc46p-11 + }, + { // Entry 4 + 0x1.111e2c82869f18p-1, + -0x1.ddddddddddde1p-2, + -0x1.00068db8bac71p0 + }, + { // Entry 5 + 0x1.111e2c82869ea8p-1, + -0x1.dddddddddddefp-2, + -0x1.00068db8bac71p0 + }, + { // Entry 6 + 0x1.p1, + 0x1.0p-1074, + -0x1.0p1 + }, + { // Entry 7 + 0x1.af286bca1af30800000000000080p-4, + 0x1.0000000000001p-57, + -0x1.af286bca1af30p-4 + }, + { // Entry 8 + 0x1.0000000000000fffffffffffffffffffp350, + 0x1.0000000000001p350, + 0x1.af286bca1af20p-4 + }, + { // Entry 9 + 0x1.af286bca1af30800800000000080p-4, + 0x1.0010000000001p-57, + -0x1.af286bca1af30p-4 + }, + { // Entry 10 + 0x1.0c30c30c30c308p-10, + 0x1.8618618618610p-15, + -0x1.0p-10 + }, + { // Entry 11 + 0x1.a4924924924938p-2, + 0x1.ffffffffffffep-4, + -0x1.2492492492494p-2 + }, + { // Entry 12 + 0x1.7ffffffffffff8p-51, + 0x1.ffffffffffffep-53, + -0x1.0p-51 + }, + { // Entry 13 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.9p-1068 + }, + { // Entry 14 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 15 + 0.0, + -0x1.4p3, + -0x1.4p3 + }, + { // Entry 16 + 0x1.p1, + -0x1.0p3, + -0x1.4p3 + }, + { // Entry 17 + 0x1.p2, + -0x1.8p2, + -0x1.4p3 + }, + { // Entry 18 + 0x1.80p2, + -0x1.0p2, + -0x1.4p3 + }, + { // Entry 19 + 0x1.p3, + -0x1.0p1, + -0x1.4p3 + }, + { // Entry 20 + 0x1.40p3, + 0.0, + -0x1.4p3 + }, + { // Entry 21 + 0x1.80p3, + 0x1.0p1, + -0x1.4p3 + }, + { // Entry 22 + 0x1.c0p3, + 0x1.0p2, + -0x1.4p3 + }, + { // Entry 23 + 0x1.p4, + 0x1.8p2, + -0x1.4p3 + }, + { // Entry 24 + 0x1.20p4, + 0x1.0p3, + -0x1.4p3 + }, + { // Entry 25 + 0x1.40p4, + 0x1.4p3, + -0x1.4p3 + }, + { // Entry 26 + 0.0, + -0x1.8p-1073, + -0x1.8p-1073 + }, + { // Entry 27 + 0.0, + -0x1.8p-1073, + -0x1.0p-1073 + }, + { // Entry 28 + 0.0, + -0x1.8p-1073, + -0x1.0p-1074 + }, + { // Entry 29 + 0.0, + -0x1.8p-1073, + -0.0 + }, + { // Entry 30 + 0.0, + -0x1.8p-1073, + 0x1.0p-1074 + }, + { // Entry 31 + 0.0, + -0x1.8p-1073, + 0x1.0p-1073 + }, + { // Entry 32 + 0.0, + -0x1.8p-1073, + 0x1.8p-1073 + }, + { // Entry 33 + 0x1.p-1074, + -0x1.0p-1073, + -0x1.8p-1073 + }, + { // Entry 34 + 0.0, + -0x1.0p-1073, + -0x1.0p-1073 + }, + { // Entry 35 + 0.0, + -0x1.0p-1073, + -0x1.0p-1074 + }, + { // Entry 36 + 0.0, + -0x1.0p-1073, + -0.0 + }, + { // Entry 37 + 0.0, + -0x1.0p-1073, + 0x1.0p-1074 + }, + { // Entry 38 + 0.0, + -0x1.0p-1073, + 0x1.0p-1073 + }, + { // Entry 39 + 0.0, + -0x1.0p-1073, + 0x1.8p-1073 + }, + { // Entry 40 + 0x1.p-1073, + -0x1.0p-1074, + -0x1.8p-1073 + }, + { // Entry 41 + 0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1073 + }, + { // Entry 42 + 0.0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 43 + 0.0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 44 + 0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 45 + 0.0, + -0x1.0p-1074, + 0x1.0p-1073 + }, + { // Entry 46 + 0.0, + -0x1.0p-1074, + 0x1.8p-1073 + }, + { // Entry 47 + 0x1.80p-1073, + -0.0, + -0x1.8p-1073 + }, + { // Entry 48 + 0x1.p-1073, + -0.0, + -0x1.0p-1073 + }, + { // Entry 49 + 0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 50 + 0.0, + -0.0, + -0.0 + }, + { // Entry 51 + 0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 52 + 0.0, + -0.0, + 0x1.0p-1073 + }, + { // Entry 53 + 0.0, + -0.0, + 0x1.8p-1073 + }, + { // Entry 54 + 0x1.p-1072, + 0x1.0p-1074, + -0x1.8p-1073 + }, + { // Entry 55 + 0x1.80p-1073, + 0x1.0p-1074, + -0x1.0p-1073 + }, + { // Entry 56 + 0x1.p-1073, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 57 + 0x1.p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 58 + 0.0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 59 + 0.0, + 0x1.0p-1074, + 0x1.0p-1073 + }, + { // Entry 60 + 0.0, + 0x1.0p-1074, + 0x1.8p-1073 + }, + { // Entry 61 + 0x1.40p-1072, + 0x1.0p-1073, + -0x1.8p-1073 + }, + { // Entry 62 + 0x1.p-1072, + 0x1.0p-1073, + -0x1.0p-1073 + }, + { // Entry 63 + 0x1.80p-1073, + 0x1.0p-1073, + -0x1.0p-1074 + }, + { // Entry 64 + 0x1.p-1073, + 0x1.0p-1073, + -0.0 + }, + { // Entry 65 + 0x1.p-1074, + 0x1.0p-1073, + 0x1.0p-1074 + }, + { // Entry 66 + 0.0, + 0x1.0p-1073, + 0x1.0p-1073 + }, + { // Entry 67 + 0.0, + 0x1.0p-1073, + 0x1.8p-1073 + }, + { // Entry 68 + 0x1.80p-1072, + 0x1.8p-1073, + -0x1.8p-1073 + }, + { // Entry 69 + 0x1.40p-1072, + 0x1.8p-1073, + -0x1.0p-1073 + }, + { // Entry 70 + 0x1.p-1072, + 0x1.8p-1073, + -0x1.0p-1074 + }, + { // Entry 71 + 0x1.80p-1073, + 0x1.8p-1073, + -0.0 + }, + { // Entry 72 + 0x1.p-1073, + 0x1.8p-1073, + 0x1.0p-1074 + }, + { // Entry 73 + 0x1.p-1074, + 0x1.8p-1073, + 0x1.0p-1073 + }, + { // Entry 74 + 0.0, + 0x1.8p-1073, + 0x1.8p-1073 + }, + { // Entry 75 + 0.0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 76 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 77 + 0.0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 78 + 0.0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 79 + 0x1.p-1073, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 80 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 81 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 82 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 83 + 0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 84 + 0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 85 + 0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 86 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1022, + -0x1.fffffffffffffp1022 + }, + { // Entry 87 + 0.0, + 0x1.ffffffffffffcp-1024, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 88 + 0.0, + 0x1.ffffffffffffcp-1024, + 0x1.0p-1023 + }, + { // Entry 89 + 0.0, + 0x1.ffffffffffffcp-1024, + 0x1.0000000000002p-1023 + }, + { // Entry 90 + 0x1.p-1074, + 0x1.0p-1023, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 91 + 0.0, + 0x1.0p-1023, + 0x1.0p-1023 + }, + { // Entry 92 + 0.0, + 0x1.0p-1023, + 0x1.0000000000002p-1023 + }, + { // Entry 93 + 0x1.p-1073, + 0x1.0000000000002p-1023, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 94 + 0x1.p-1074, + 0x1.0000000000002p-1023, + 0x1.0p-1023 + }, + { // Entry 95 + 0.0, + 0x1.0000000000002p-1023, + 0x1.0000000000002p-1023 + }, + { // Entry 96 + 0.0, + 0x1.fffffffffffffp-51, + 0x1.fffffffffffffp-51 + }, + { // Entry 97 + 0.0, + 0x1.fffffffffffffp-51, + 0x1.0p-50 + }, + { // Entry 98 + 0.0, + 0x1.fffffffffffffp-51, + 0x1.0000000000001p-50 + }, + { // Entry 99 + 0x1.p-103, + 0x1.0p-50, + 0x1.fffffffffffffp-51 + }, + { // Entry 100 + 0.0, + 0x1.0p-50, + 0x1.0p-50 + }, + { // Entry 101 + 0.0, + 0x1.0p-50, + 0x1.0000000000001p-50 + }, + { // Entry 102 + 0x1.80p-102, + 0x1.0000000000001p-50, + 0x1.fffffffffffffp-51 + }, + { // Entry 103 + 0x1.p-102, + 0x1.0000000000001p-50, + 0x1.0p-50 + }, + { // Entry 104 + 0.0, + 0x1.0000000000001p-50, + 0x1.0000000000001p-50 + }, + { // Entry 105 + 0.0, + 0x1.fffffffffffffp-11, + 0x1.fffffffffffffp-11 + }, + { // Entry 106 + 0.0, + 0x1.fffffffffffffp-11, + 0x1.0p-10 + }, + { // Entry 107 + 0.0, + 0x1.fffffffffffffp-11, + 0x1.0000000000001p-10 + }, + { // Entry 108 + 0x1.p-63, + 0x1.0p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 109 + 0.0, + 0x1.0p-10, + 0x1.0p-10 + }, + { // Entry 110 + 0.0, + 0x1.0p-10, + 0x1.0000000000001p-10 + }, + { // Entry 111 + 0x1.80p-62, + 0x1.0000000000001p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 112 + 0x1.p-62, + 0x1.0000000000001p-10, + 0x1.0p-10 + }, + { // Entry 113 + 0.0, + 0x1.0000000000001p-10, + 0x1.0000000000001p-10 + }, + { // Entry 114 + 0.0, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 115 + 0.0, + 0x1.fffffffffffffp-2, + 0x1.0p-1 + }, + { // Entry 116 + 0.0, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-1 + }, + { // Entry 117 + 0x1.p-54, + 0x1.0p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 118 + 0.0, + 0x1.0p-1, + 0x1.0p-1 + }, + { // Entry 119 + 0.0, + 0x1.0p-1, + 0x1.0000000000001p-1 + }, + { // Entry 120 + 0x1.80p-53, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 121 + 0x1.p-53, + 0x1.0000000000001p-1, + 0x1.0p-1 + }, + { // Entry 122 + 0.0, + 0x1.0000000000001p-1, + 0x1.0000000000001p-1 + }, + { // Entry 123 + 0.0, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp0 + }, + { // Entry 124 + 0.0, + 0x1.fffffffffffffp0, + 0x1.0p1 + }, + { // Entry 125 + 0.0, + 0x1.fffffffffffffp0, + 0x1.0000000000001p1 + }, + { // Entry 126 + 0x1.p-52, + 0x1.0p1, + 0x1.fffffffffffffp0 + }, + { // Entry 127 + 0.0, + 0x1.0p1, + 0x1.0p1 + }, + { // Entry 128 + 0.0, + 0x1.0p1, + 0x1.0000000000001p1 + }, + { // Entry 129 + 0x1.80p-51, + 0x1.0000000000001p1, + 0x1.fffffffffffffp0 + }, + { // Entry 130 + 0x1.p-51, + 0x1.0000000000001p1, + 0x1.0p1 + }, + { // Entry 131 + 0.0, + 0x1.0000000000001p1, + 0x1.0000000000001p1 + }, + { // Entry 132 + 0.0, + 0x1.fffffffffffffp9, + 0x1.fffffffffffffp9 + }, + { // Entry 133 + 0.0, + 0x1.fffffffffffffp9, + 0x1.0p10 + }, + { // Entry 134 + 0.0, + 0x1.fffffffffffffp9, + 0x1.0000000000001p10 + }, + { // Entry 135 + 0x1.p-43, + 0x1.0p10, + 0x1.fffffffffffffp9 + }, + { // Entry 136 + 0.0, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 137 + 0.0, + 0x1.0p10, + 0x1.0000000000001p10 + }, + { // Entry 138 + 0x1.80p-42, + 0x1.0000000000001p10, + 0x1.fffffffffffffp9 + }, + { // Entry 139 + 0x1.p-42, + 0x1.0000000000001p10, + 0x1.0p10 + }, + { // Entry 140 + 0.0, + 0x1.0000000000001p10, + 0x1.0000000000001p10 + }, + { // Entry 141 + 0.0, + 0x1.fffffffffffffp49, + 0x1.fffffffffffffp49 + }, + { // Entry 142 + 0.0, + 0x1.fffffffffffffp49, + 0x1.0p50 + }, + { // Entry 143 + 0.0, + 0x1.fffffffffffffp49, + 0x1.0000000000001p50 + }, + { // Entry 144 + 0x1.p-3, + 0x1.0p50, + 0x1.fffffffffffffp49 + }, + { // Entry 145 + 0.0, + 0x1.0p50, + 0x1.0p50 + }, + { // Entry 146 + 0.0, + 0x1.0p50, + 0x1.0000000000001p50 + }, + { // Entry 147 + 0x1.80p-2, + 0x1.0000000000001p50, + 0x1.fffffffffffffp49 + }, + { // Entry 148 + 0x1.p-2, + 0x1.0000000000001p50, + 0x1.0p50 + }, + { // Entry 149 + 0.0, + 0x1.0000000000001p50, + 0x1.0000000000001p50 + }, + { // Entry 150 + 0.0, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp1022 + }, + { // Entry 151 + 0.0, + 0x1.fffffffffffffp1022, + 0x1.0p1023 + }, + { // Entry 152 + 0.0, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p1023 + }, + { // Entry 153 + 0x1.p970, + 0x1.0p1023, + 0x1.fffffffffffffp1022 + }, + { // Entry 154 + 0.0, + 0x1.0p1023, + 0x1.0p1023 + }, + { // Entry 155 + 0.0, + 0x1.0p1023, + 0x1.0000000000001p1023 + }, + { // Entry 156 + 0x1.80p971, + 0x1.0000000000001p1023, + 0x1.fffffffffffffp1022 + }, + { // Entry 157 + 0x1.p971, + 0x1.0000000000001p1023, + 0x1.0p1023 + }, + { // Entry 158 + 0.0, + 0x1.0000000000001p1023, + 0x1.0000000000001p1023 + }, + { // Entry 159 + 0.0, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 160 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 161 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 162 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 163 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 164 + HUGE_VAL, + HUGE_VAL, + 0.0 + }, + { // Entry 165 + HUGE_VAL, + HUGE_VAL, + -0.0 + }, + { // Entry 166 + HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 167 + HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 168 + HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 169 + HUGE_VAL, + HUGE_VAL, + -0x1.0p0 + }, + { // Entry 170 + HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 171 + HUGE_VAL, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 172 + 0.0, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 173 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 174 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 175 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 176 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 177 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 178 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 179 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 180 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 181 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 182 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p0 + }, + { // Entry 183 + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 184 + HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 185 + 0.0, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 186 + 0.0, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 187 + 0.0, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 188 + 0x1.p-1074, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 189 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 190 + 0x1.p-1022, + 0x1.0p-1022, + 0.0 + }, + { // Entry 191 + 0x1.p-1022, + 0x1.0p-1022, + -0.0 + }, + { // Entry 192 + 0x1.00000000000010p-1022, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 193 + 0x1.fffffffffffff0p-1022, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 194 + 0x1.p-1021, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 195 + 0x1.p0, + 0x1.0p-1022, + -0x1.0p0 + }, + { // Entry 196 + 0x1.fffffffffffff0p1023, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 197 + HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 198 + 0.0, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 199 + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 200 + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 201 + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 202 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 203 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 204 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 205 + 0x1.p-1022, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 206 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 207 + 0x1.fffffffffffff0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 208 + 0x1.p0, + 0x1.ffffffffffffep-1023, + -0x1.0p0 + }, + { // Entry 209 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 210 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 211 + 0.0, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 212 + 0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 213 + 0.0, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 214 + 0.0, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 215 + 0.0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 216 + 0x1.p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 217 + 0x1.p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 218 + 0x1.p-1073, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 219 + 0x1.p-1022, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 220 + 0x1.00000000000010p-1022, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 221 + 0x1.p0, + 0x1.0p-1074, + -0x1.0p0 + }, + { // Entry 222 + 0x1.fffffffffffff0p1023, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 223 + HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 224 + 0.0, + 0.0, + HUGE_VAL + }, + { // Entry 225 + 0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 226 + 0.0, + 0.0, + 0x1.0p-1022 + }, + { // Entry 227 + 0.0, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 228 + 0.0, + 0.0, + 0x1.0p-1074 + }, + { // Entry 229 + 0.0, + 0.0, + 0.0 + }, + { // Entry 230 + 0.0, + 0.0, + -0.0 + }, + { // Entry 231 + 0x1.p-1074, + 0.0, + -0x1.0p-1074 + }, + { // Entry 232 + 0x1.ffffffffffffe0p-1023, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 233 + 0x1.p-1022, + 0.0, + -0x1.0p-1022 + }, + { // Entry 234 + 0x1.p0, + 0.0, + -0x1.0p0 + }, + { // Entry 235 + 0x1.fffffffffffff0p1023, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 236 + HUGE_VAL, + 0.0, + -HUGE_VAL + }, + { // Entry 237 + 0.0, + -0.0, + HUGE_VAL + }, + { // Entry 238 + 0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 239 + 0.0, + -0.0, + 0x1.0p-1022 + }, + { // Entry 240 + 0.0, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 241 + 0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 242 + 0.0, + -0.0, + 0.0 + }, + { // Entry 243 + 0.0, + -0.0, + -0.0 + }, + { // Entry 244 + 0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 245 + 0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 246 + 0x1.p-1022, + -0.0, + -0x1.0p-1022 + }, + { // Entry 247 + 0x1.p0, + -0.0, + -0x1.0p0 + }, + { // Entry 248 + 0x1.fffffffffffff0p1023, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 249 + HUGE_VAL, + -0.0, + -HUGE_VAL + }, + { // Entry 250 + 0.0, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 251 + 0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 252 + 0.0, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 253 + 0.0, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 254 + 0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 255 + 0.0, + -0x1.0p-1074, + 0.0 + }, + { // Entry 256 + 0.0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 257 + 0.0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 258 + 0x1.ffffffffffffc0p-1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 259 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 260 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p-1074, + -0x1.0p0 + }, + { // Entry 261 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 262 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 263 + 0.0, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 264 + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 265 + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 266 + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 267 + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 268 + 0.0, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 269 + 0.0, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 270 + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 271 + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 272 + 0x1.p-1074, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 273 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffep-1023, + -0x1.0p0 + }, + { // Entry 274 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 275 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 276 + 0.0, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 277 + 0.0, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 278 + 0.0, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 279 + 0.0, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 280 + 0.0, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 281 + 0.0, + -0x1.0p-1022, + 0.0 + }, + { // Entry 282 + 0.0, + -0x1.0p-1022, + -0.0 + }, + { // Entry 283 + 0.0, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 284 + 0.0, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 285 + 0.0, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 286 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p-1022, + -0x1.0p0 + }, + { // Entry 287 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 288 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 289 + 0.0, + -0x1.fffffffffffffp-1, + HUGE_VAL + }, + { // Entry 290 + 0.0, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp1023 + }, + { // Entry 291 + 0.0, + -0x1.fffffffffffffp-1, + 0x1.0p-1022 + }, + { // Entry 292 + 0.0, + -0x1.fffffffffffffp-1, + 0x1.ffffffffffffep-1023 + }, + { // Entry 293 + 0.0, + -0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 294 + 0.0, + -0x1.fffffffffffffp-1, + 0.0 + }, + { // Entry 295 + 0.0, + -0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 296 + 0.0, + -0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 297 + 0.0, + -0x1.fffffffffffffp-1, + -0x1.ffffffffffffep-1023 + }, + { // Entry 298 + 0.0, + -0x1.fffffffffffffp-1, + -0x1.0p-1022 + }, + { // Entry 299 + 0x1.p-53, + -0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 300 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.fffffffffffffp-1, + -0x1.fffffffffffffp1023 + }, + { // Entry 301 + HUGE_VAL, + -0x1.fffffffffffffp-1, + -HUGE_VAL + }, + { // Entry 302 + 0.0, + -0x1.0p0, + HUGE_VAL + }, + { // Entry 303 + 0.0, + -0x1.0p0, + 0x1.fffffffffffffp1023 + }, + { // Entry 304 + 0.0, + -0x1.0p0, + 0x1.0p-1022 + }, + { // Entry 305 + 0.0, + -0x1.0p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 306 + 0.0, + -0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 307 + 0.0, + -0x1.0p0, + 0.0 + }, + { // Entry 308 + 0.0, + -0x1.0p0, + -0.0 + }, + { // Entry 309 + 0.0, + -0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 310 + 0.0, + -0x1.0p0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 311 + 0.0, + -0x1.0p0, + -0x1.0p-1022 + }, + { // Entry 312 + 0.0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 313 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 314 + HUGE_VAL, + -0x1.0p0, + -HUGE_VAL + }, + { // Entry 315 + 0.0, + -0x1.0000000000001p0, + HUGE_VAL + }, + { // Entry 316 + 0.0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp1023 + }, + { // Entry 317 + 0.0, + -0x1.0000000000001p0, + 0x1.0p-1022 + }, + { // Entry 318 + 0.0, + -0x1.0000000000001p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 319 + 0.0, + -0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 320 + 0.0, + -0x1.0000000000001p0, + 0.0 + }, + { // Entry 321 + 0.0, + -0x1.0000000000001p0, + -0.0 + }, + { // Entry 322 + 0.0, + -0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 323 + 0.0, + -0x1.0000000000001p0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 324 + 0.0, + -0x1.0000000000001p0, + -0x1.0p-1022 + }, + { // Entry 325 + 0.0, + -0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 326 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0000000000001p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 327 + HUGE_VAL, + -0x1.0000000000001p0, + -HUGE_VAL + }, + { // Entry 328 + 0.0, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 329 + 0.0, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 330 + 0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 331 + 0.0, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 332 + 0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 333 + 0.0, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 334 + 0.0, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 335 + 0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 336 + 0.0, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 337 + 0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 338 + 0.0, + -0x1.fffffffffffffp1023, + -0x1.0p0 + }, + { // Entry 339 + 0.0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 340 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 341 + 0.0, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 342 + 0.0, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 343 + 0.0, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 344 + 0.0, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 345 + 0.0, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 346 + 0.0, + -HUGE_VAL, + 0.0 + }, + { // Entry 347 + 0.0, + -HUGE_VAL, + -0.0 + }, + { // Entry 348 + 0.0, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 349 + 0.0, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 350 + 0.0, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 351 + 0.0, + -HUGE_VAL, + -0x1.0p0 + }, + { // Entry 352 + 0.0, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 353 + 0.0, + -HUGE_VAL, + -HUGE_VAL + } +}; diff --git a/tests/math_data/fdimf_intel_data.h b/tests/math_data/fdimf_intel_data.h new file mode 100644 index 000000000..eb05983a3 --- /dev/null +++ b/tests/math_data/fdimf_intel_data.h @@ -0,0 +1,1793 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_fdimf_intel_data[] = { + { // Entry 0 + 0x1.861861p-14, + -0x1.86187ep-15, + -0x1.249250p-13 + }, + { // Entry 1 + 0x1.334d69p-2, + -0x1.99999ep-3, + -0x1.000d1cp-1 + }, + { // Entry 2 + 0x1.99b3d1p-2, + -0x1.99999ep-3, + -0x1.334050p-1 + }, + { // Entry 3 + 0x1.999999p-12, + -0x1.99999ep-13, + -0x1.333334p-11 + }, + { // Entry 4 + 0x1.111e2bp-1, + -0x1.dddde2p-2, + -0x1.00068ep0 + }, + { // Entry 5 + 0x1.111e29p-1, + -0x1.dddde6p-2, + -0x1.00068ep0 + }, + { // Entry 6 + 0x1.04a781p-11, + -0x1.f6b0fep-12, + -0x1.p-10 + }, + { // Entry 7 + 0x1.02960bp-11, + -0x1.fad3eap-12, + -0x1.p-10 + }, + { // Entry 8 + 0x1.p1, + 0x1.p-149, + -0x1.p1 + }, + { // Entry 9 + 0x1.000001fffffffffffff286bac0p73, + 0x1.000002p73, + 0x1.af28a8p-4 + }, + { // Entry 10 + 0x1.249269p-2, + 0x1.08p-21, + -0x1.249248p-2 + }, + { // Entry 11 + 0x1.af2851p-4, + 0x1.08p-23, + -0x1.af2830p-4 + }, + { // Entry 12 + 0x1.000021p-24, + 0x1.08p-43, + -0x1.p-24 + }, + { // Entry 13 + 0x1.4ff4d3p3, + 0x1.083d28p2, + -0x1.97ac7ep2 + }, + { // Entry 14 + 0x1.fffffcp127, + 0x1.fffffcp127, + -0x1.90p-143 + }, + { // Entry 15 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 16 + 0.0, + -0x1.40p3, + -0x1.40p3 + }, + { // Entry 17 + 0x1.p1, + -0x1.p3, + -0x1.40p3 + }, + { // Entry 18 + 0x1.p2, + -0x1.80p2, + -0x1.40p3 + }, + { // Entry 19 + 0x1.80p2, + -0x1.p2, + -0x1.40p3 + }, + { // Entry 20 + 0x1.p3, + -0x1.p1, + -0x1.40p3 + }, + { // Entry 21 + 0x1.40p3, + 0.0, + -0x1.40p3 + }, + { // Entry 22 + 0x1.80p3, + 0x1.p1, + -0x1.40p3 + }, + { // Entry 23 + 0x1.c0p3, + 0x1.p2, + -0x1.40p3 + }, + { // Entry 24 + 0x1.p4, + 0x1.80p2, + -0x1.40p3 + }, + { // Entry 25 + 0x1.20p4, + 0x1.p3, + -0x1.40p3 + }, + { // Entry 26 + 0x1.40p4, + 0x1.40p3, + -0x1.40p3 + }, + { // Entry 27 + 0.0, + -0x1.80p-148, + -0x1.80p-148 + }, + { // Entry 28 + 0.0, + -0x1.80p-148, + -0x1.p-148 + }, + { // Entry 29 + 0.0, + -0x1.80p-148, + -0x1.p-149 + }, + { // Entry 30 + 0.0, + -0x1.80p-148, + 0.0 + }, + { // Entry 31 + 0.0, + -0x1.80p-148, + 0x1.p-149 + }, + { // Entry 32 + 0.0, + -0x1.80p-148, + 0x1.p-148 + }, + { // Entry 33 + 0.0, + -0x1.80p-148, + 0x1.80p-148 + }, + { // Entry 34 + 0x1.p-149, + -0x1.p-148, + -0x1.80p-148 + }, + { // Entry 35 + 0.0, + -0x1.p-148, + -0x1.p-148 + }, + { // Entry 36 + 0.0, + -0x1.p-148, + -0x1.p-149 + }, + { // Entry 37 + 0.0, + -0x1.p-148, + 0.0 + }, + { // Entry 38 + 0.0, + -0x1.p-148, + 0x1.p-149 + }, + { // Entry 39 + 0.0, + -0x1.p-148, + 0x1.p-148 + }, + { // Entry 40 + 0.0, + -0x1.p-148, + 0x1.80p-148 + }, + { // Entry 41 + 0x1.p-148, + -0x1.p-149, + -0x1.80p-148 + }, + { // Entry 42 + 0x1.p-149, + -0x1.p-149, + -0x1.p-148 + }, + { // Entry 43 + 0.0, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 44 + 0.0, + -0x1.p-149, + 0.0 + }, + { // Entry 45 + 0.0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 46 + 0.0, + -0x1.p-149, + 0x1.p-148 + }, + { // Entry 47 + 0.0, + -0x1.p-149, + 0x1.80p-148 + }, + { // Entry 48 + 0x1.80p-148, + 0.0, + -0x1.80p-148 + }, + { // Entry 49 + 0x1.p-148, + 0.0, + -0x1.p-148 + }, + { // Entry 50 + 0x1.p-149, + 0.0, + -0x1.p-149 + }, + { // Entry 51 + 0.0, + 0.0, + 0.0 + }, + { // Entry 52 + 0.0, + 0.0, + 0x1.p-149 + }, + { // Entry 53 + 0.0, + 0.0, + 0x1.p-148 + }, + { // Entry 54 + 0.0, + 0.0, + 0x1.80p-148 + }, + { // Entry 55 + 0x1.p-147, + 0x1.p-149, + -0x1.80p-148 + }, + { // Entry 56 + 0x1.80p-148, + 0x1.p-149, + -0x1.p-148 + }, + { // Entry 57 + 0x1.p-148, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 58 + 0x1.p-149, + 0x1.p-149, + 0.0 + }, + { // Entry 59 + 0.0, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 60 + 0.0, + 0x1.p-149, + 0x1.p-148 + }, + { // Entry 61 + 0.0, + 0x1.p-149, + 0x1.80p-148 + }, + { // Entry 62 + 0x1.40p-147, + 0x1.p-148, + -0x1.80p-148 + }, + { // Entry 63 + 0x1.p-147, + 0x1.p-148, + -0x1.p-148 + }, + { // Entry 64 + 0x1.80p-148, + 0x1.p-148, + -0x1.p-149 + }, + { // Entry 65 + 0x1.p-148, + 0x1.p-148, + 0.0 + }, + { // Entry 66 + 0x1.p-149, + 0x1.p-148, + 0x1.p-149 + }, + { // Entry 67 + 0.0, + 0x1.p-148, + 0x1.p-148 + }, + { // Entry 68 + 0.0, + 0x1.p-148, + 0x1.80p-148 + }, + { // Entry 69 + 0x1.80p-147, + 0x1.80p-148, + -0x1.80p-148 + }, + { // Entry 70 + 0x1.40p-147, + 0x1.80p-148, + -0x1.p-148 + }, + { // Entry 71 + 0x1.p-147, + 0x1.80p-148, + -0x1.p-149 + }, + { // Entry 72 + 0x1.80p-148, + 0x1.80p-148, + 0.0 + }, + { // Entry 73 + 0x1.p-148, + 0x1.80p-148, + 0x1.p-149 + }, + { // Entry 74 + 0x1.p-149, + 0x1.80p-148, + 0x1.p-148 + }, + { // Entry 75 + 0.0, + 0x1.80p-148, + 0x1.80p-148 + }, + { // Entry 76 + 0.0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 77 + 0.0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 78 + 0.0, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 79 + 0.0, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 80 + 0x1.p-148, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 81 + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 82 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0 + }, + { // Entry 83 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 84 + 0.0, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 85 + 0.0, + 0.0, + 0x1.fffffep127 + }, + { // Entry 86 + 0.0, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 87 + 0x1.fffffep127, + 0x1.fffffep126, + -0x1.fffffep126 + }, + { // Entry 88 + 0.0, + 0x1.fffff8p-128, + 0x1.fffff8p-128 + }, + { // Entry 89 + 0.0, + 0x1.fffff8p-128, + 0x1.p-127 + }, + { // Entry 90 + 0.0, + 0x1.fffff8p-128, + 0x1.000004p-127 + }, + { // Entry 91 + 0x1.p-149, + 0x1.p-127, + 0x1.fffff8p-128 + }, + { // Entry 92 + 0.0, + 0x1.p-127, + 0x1.p-127 + }, + { // Entry 93 + 0.0, + 0x1.p-127, + 0x1.000004p-127 + }, + { // Entry 94 + 0x1.p-148, + 0x1.000004p-127, + 0x1.fffff8p-128 + }, + { // Entry 95 + 0x1.p-149, + 0x1.000004p-127, + 0x1.p-127 + }, + { // Entry 96 + 0.0, + 0x1.000004p-127, + 0x1.000004p-127 + }, + { // Entry 97 + 0.0, + 0x1.fffffep-51, + 0x1.fffffep-51 + }, + { // Entry 98 + 0.0, + 0x1.fffffep-51, + 0x1.p-50 + }, + { // Entry 99 + 0.0, + 0x1.fffffep-51, + 0x1.000002p-50 + }, + { // Entry 100 + 0x1.p-74, + 0x1.p-50, + 0x1.fffffep-51 + }, + { // Entry 101 + 0.0, + 0x1.p-50, + 0x1.p-50 + }, + { // Entry 102 + 0.0, + 0x1.p-50, + 0x1.000002p-50 + }, + { // Entry 103 + 0x1.80p-73, + 0x1.000002p-50, + 0x1.fffffep-51 + }, + { // Entry 104 + 0x1.p-73, + 0x1.000002p-50, + 0x1.p-50 + }, + { // Entry 105 + 0.0, + 0x1.000002p-50, + 0x1.000002p-50 + }, + { // Entry 106 + 0.0, + 0x1.fffffep-11, + 0x1.fffffep-11 + }, + { // Entry 107 + 0.0, + 0x1.fffffep-11, + 0x1.p-10 + }, + { // Entry 108 + 0.0, + 0x1.fffffep-11, + 0x1.000002p-10 + }, + { // Entry 109 + 0x1.p-34, + 0x1.p-10, + 0x1.fffffep-11 + }, + { // Entry 110 + 0.0, + 0x1.p-10, + 0x1.p-10 + }, + { // Entry 111 + 0.0, + 0x1.p-10, + 0x1.000002p-10 + }, + { // Entry 112 + 0x1.80p-33, + 0x1.000002p-10, + 0x1.fffffep-11 + }, + { // Entry 113 + 0x1.p-33, + 0x1.000002p-10, + 0x1.p-10 + }, + { // Entry 114 + 0.0, + 0x1.000002p-10, + 0x1.000002p-10 + }, + { // Entry 115 + 0.0, + 0x1.fffffep-2, + 0x1.fffffep-2 + }, + { // Entry 116 + 0.0, + 0x1.fffffep-2, + 0x1.p-1 + }, + { // Entry 117 + 0.0, + 0x1.fffffep-2, + 0x1.000002p-1 + }, + { // Entry 118 + 0x1.p-25, + 0x1.p-1, + 0x1.fffffep-2 + }, + { // Entry 119 + 0.0, + 0x1.p-1, + 0x1.p-1 + }, + { // Entry 120 + 0.0, + 0x1.p-1, + 0x1.000002p-1 + }, + { // Entry 121 + 0x1.80p-24, + 0x1.000002p-1, + 0x1.fffffep-2 + }, + { // Entry 122 + 0x1.p-24, + 0x1.000002p-1, + 0x1.p-1 + }, + { // Entry 123 + 0.0, + 0x1.000002p-1, + 0x1.000002p-1 + }, + { // Entry 124 + 0.0, + 0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 125 + 0.0, + 0x1.fffffep0, + 0x1.p1 + }, + { // Entry 126 + 0.0, + 0x1.fffffep0, + 0x1.000002p1 + }, + { // Entry 127 + 0x1.p-23, + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 128 + 0.0, + 0x1.p1, + 0x1.p1 + }, + { // Entry 129 + 0.0, + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 130 + 0x1.80p-22, + 0x1.000002p1, + 0x1.fffffep0 + }, + { // Entry 131 + 0x1.p-22, + 0x1.000002p1, + 0x1.p1 + }, + { // Entry 132 + 0.0, + 0x1.000002p1, + 0x1.000002p1 + }, + { // Entry 133 + 0.0, + 0x1.fffffep9, + 0x1.fffffep9 + }, + { // Entry 134 + 0.0, + 0x1.fffffep9, + 0x1.p10 + }, + { // Entry 135 + 0.0, + 0x1.fffffep9, + 0x1.000002p10 + }, + { // Entry 136 + 0x1.p-14, + 0x1.p10, + 0x1.fffffep9 + }, + { // Entry 137 + 0.0, + 0x1.p10, + 0x1.p10 + }, + { // Entry 138 + 0.0, + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 139 + 0x1.80p-13, + 0x1.000002p10, + 0x1.fffffep9 + }, + { // Entry 140 + 0x1.p-13, + 0x1.000002p10, + 0x1.p10 + }, + { // Entry 141 + 0.0, + 0x1.000002p10, + 0x1.000002p10 + }, + { // Entry 142 + 0.0, + 0x1.fffffep49, + 0x1.fffffep49 + }, + { // Entry 143 + 0.0, + 0x1.fffffep49, + 0x1.p50 + }, + { // Entry 144 + 0.0, + 0x1.fffffep49, + 0x1.000002p50 + }, + { // Entry 145 + 0x1.p26, + 0x1.p50, + 0x1.fffffep49 + }, + { // Entry 146 + 0.0, + 0x1.p50, + 0x1.p50 + }, + { // Entry 147 + 0.0, + 0x1.p50, + 0x1.000002p50 + }, + { // Entry 148 + 0x1.80p27, + 0x1.000002p50, + 0x1.fffffep49 + }, + { // Entry 149 + 0x1.p27, + 0x1.000002p50, + 0x1.p50 + }, + { // Entry 150 + 0.0, + 0x1.000002p50, + 0x1.000002p50 + }, + { // Entry 151 + 0.0, + 0x1.fffffep126, + 0x1.fffffep126 + }, + { // Entry 152 + 0.0, + 0x1.fffffep126, + 0x1.p127 + }, + { // Entry 153 + 0.0, + 0x1.fffffep126, + 0x1.000002p127 + }, + { // Entry 154 + 0x1.p103, + 0x1.p127, + 0x1.fffffep126 + }, + { // Entry 155 + 0.0, + 0x1.p127, + 0x1.p127 + }, + { // Entry 156 + 0.0, + 0x1.p127, + 0x1.000002p127 + }, + { // Entry 157 + 0x1.80p104, + 0x1.000002p127, + 0x1.fffffep126 + }, + { // Entry 158 + 0x1.p104, + 0x1.000002p127, + 0x1.p127 + }, + { // Entry 159 + 0.0, + 0x1.000002p127, + 0x1.000002p127 + }, + { // Entry 160 + 0.0, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 161 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 162 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 163 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 164 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 165 + HUGE_VALF, + HUGE_VALF, + 0.0f + }, + { // Entry 166 + HUGE_VALF, + HUGE_VALF, + -0.0f + }, + { // Entry 167 + HUGE_VALF, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 168 + HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 169 + HUGE_VALF, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 170 + HUGE_VALF, + HUGE_VALF, + -0x1.p0 + }, + { // Entry 171 + HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 172 + HUGE_VALF, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 173 + 0.0, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 174 + 0.0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 175 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 176 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 177 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 178 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 179 + 0x1.fffffep127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 180 + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 181 + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 182 + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 183 + 0x1.fffffe00000000000000000000000002p127, + 0x1.fffffep127, + -0x1.p0 + }, + { // Entry 184 + HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 185 + HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 186 + 0.0, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 187 + 0.0, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 188 + 0.0, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 189 + 0x1.p-149, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 190 + 0x1.fffffcp-127, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 191 + 0x1.p-126, + 0x1.p-126, + 0.0f + }, + { // Entry 192 + 0x1.p-126, + 0x1.p-126, + -0.0f + }, + { // Entry 193 + 0x1.000002p-126, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 194 + 0x1.fffffep-126, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 195 + 0x1.p-125, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 196 + 0x1.00000000000000000000000000000004p0, + 0x1.p-126, + -0x1.p0 + }, + { // Entry 197 + 0x1.fffffep127, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 198 + HUGE_VALF, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 199 + 0.0, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 200 + 0.0, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 201 + 0.0, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 202 + 0.0, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 203 + 0x1.fffff8p-127, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 204 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 205 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 206 + 0x1.p-126, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 207 + 0x1.fffffcp-126, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 208 + 0x1.fffffep-126, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 209 + 0x1.00000000000000000000000000000003p0, + 0x1.fffffcp-127, + -0x1.p0 + }, + { // Entry 210 + 0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 211 + HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 212 + 0.0, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 213 + 0.0, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 214 + 0.0, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 215 + 0.0, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 216 + 0.0, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 217 + 0x1.p-149, + 0x1.p-149, + 0.0f + }, + { // Entry 218 + 0x1.p-149, + 0x1.p-149, + -0.0f + }, + { // Entry 219 + 0x1.p-148, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 220 + 0x1.p-126, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 221 + 0x1.000002p-126, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 222 + 0x1.p0, + 0x1.p-149, + -0x1.p0 + }, + { // Entry 223 + 0x1.fffffep127, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 224 + HUGE_VALF, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 225 + 0.0, + 0.0f, + HUGE_VALF + }, + { // Entry 226 + 0.0, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 227 + 0.0, + 0.0f, + 0x1.p-126 + }, + { // Entry 228 + 0.0, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 229 + 0.0, + 0.0f, + 0x1.p-149 + }, + { // Entry 230 + 0.0, + 0.0f, + 0.0f + }, + { // Entry 231 + 0.0, + 0.0f, + -0.0f + }, + { // Entry 232 + 0x1.p-149, + 0.0f, + -0x1.p-149 + }, + { // Entry 233 + 0x1.fffffcp-127, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 234 + 0x1.p-126, + 0.0f, + -0x1.p-126 + }, + { // Entry 235 + 0x1.p0, + 0.0f, + -0x1.p0 + }, + { // Entry 236 + 0x1.fffffep127, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 237 + HUGE_VALF, + 0.0f, + -HUGE_VALF + }, + { // Entry 238 + 0.0, + -0.0f, + HUGE_VALF + }, + { // Entry 239 + 0.0, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 240 + 0.0, + -0.0f, + 0x1.p-126 + }, + { // Entry 241 + 0.0, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 242 + 0.0, + -0.0f, + 0x1.p-149 + }, + { // Entry 243 + 0.0, + -0.0f, + 0.0f + }, + { // Entry 244 + 0.0, + -0.0f, + -0.0f + }, + { // Entry 245 + 0x1.p-149, + -0.0f, + -0x1.p-149 + }, + { // Entry 246 + 0x1.fffffcp-127, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 247 + 0x1.p-126, + -0.0f, + -0x1.p-126 + }, + { // Entry 248 + 0x1.p0, + -0.0f, + -0x1.p0 + }, + { // Entry 249 + 0x1.fffffep127, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 250 + HUGE_VALF, + -0.0f, + -HUGE_VALF + }, + { // Entry 251 + 0.0, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 252 + 0.0, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 253 + 0.0, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 254 + 0.0, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 255 + 0.0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 256 + 0.0, + -0x1.p-149, + 0.0f + }, + { // Entry 257 + 0.0, + -0x1.p-149, + -0.0f + }, + { // Entry 258 + 0.0, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 259 + 0x1.fffff8p-127, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 260 + 0x1.fffffcp-127, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 261 + 0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.p-149, + -0x1.p0 + }, + { // Entry 262 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 263 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 264 + 0.0, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 265 + 0.0, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 266 + 0.0, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 267 + 0.0, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 268 + 0.0, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 269 + 0.0, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 270 + 0.0, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 271 + 0.0, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 272 + 0.0, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 273 + 0x1.p-149, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 274 + 0x1.fffffffffffffffffffffffffffffff8p-1, + -0x1.fffffcp-127, + -0x1.p0 + }, + { // Entry 275 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 276 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 277 + 0.0, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 278 + 0.0, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 279 + 0.0, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 280 + 0.0, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 281 + 0.0, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 282 + 0.0, + -0x1.p-126, + 0.0f + }, + { // Entry 283 + 0.0, + -0x1.p-126, + -0.0f + }, + { // Entry 284 + 0.0, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 285 + 0.0, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 286 + 0.0, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 287 + 0x1.fffffffffffffffffffffffffffffff8p-1, + -0x1.p-126, + -0x1.p0 + }, + { // Entry 288 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 289 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 290 + 0.0, + -0x1.fffffep-1, + HUGE_VALF + }, + { // Entry 291 + 0.0, + -0x1.fffffep-1, + 0x1.fffffep127 + }, + { // Entry 292 + 0.0, + -0x1.fffffep-1, + 0x1.p-126 + }, + { // Entry 293 + 0.0, + -0x1.fffffep-1, + 0x1.fffffcp-127 + }, + { // Entry 294 + 0.0, + -0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 295 + 0.0, + -0x1.fffffep-1, + 0.0f + }, + { // Entry 296 + 0.0, + -0x1.fffffep-1, + -0.0f + }, + { // Entry 297 + 0.0, + -0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 298 + 0.0, + -0x1.fffffep-1, + -0x1.fffffcp-127 + }, + { // Entry 299 + 0.0, + -0x1.fffffep-1, + -0x1.p-126 + }, + { // Entry 300 + 0x1.p-24, + -0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 301 + 0x1.fffffdfffffffffffffffffffffffffep127, + -0x1.fffffep-1, + -0x1.fffffep127 + }, + { // Entry 302 + HUGE_VALF, + -0x1.fffffep-1, + -HUGE_VALF + }, + { // Entry 303 + 0.0, + -0x1.p0, + HUGE_VALF + }, + { // Entry 304 + 0.0, + -0x1.p0, + 0x1.fffffep127 + }, + { // Entry 305 + 0.0, + -0x1.p0, + 0x1.p-126 + }, + { // Entry 306 + 0.0, + -0x1.p0, + 0x1.fffffcp-127 + }, + { // Entry 307 + 0.0, + -0x1.p0, + 0x1.p-149 + }, + { // Entry 308 + 0.0, + -0x1.p0, + 0.0f + }, + { // Entry 309 + 0.0, + -0x1.p0, + -0.0f + }, + { // Entry 310 + 0.0, + -0x1.p0, + -0x1.p-149 + }, + { // Entry 311 + 0.0, + -0x1.p0, + -0x1.fffffcp-127 + }, + { // Entry 312 + 0.0, + -0x1.p0, + -0x1.p-126 + }, + { // Entry 313 + 0.0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 314 + 0x1.fffffdfffffffffffffffffffffffffep127, + -0x1.p0, + -0x1.fffffep127 + }, + { // Entry 315 + HUGE_VALF, + -0x1.p0, + -HUGE_VALF + }, + { // Entry 316 + 0.0, + -0x1.000002p0, + HUGE_VALF + }, + { // Entry 317 + 0.0, + -0x1.000002p0, + 0x1.fffffep127 + }, + { // Entry 318 + 0.0, + -0x1.000002p0, + 0x1.p-126 + }, + { // Entry 319 + 0.0, + -0x1.000002p0, + 0x1.fffffcp-127 + }, + { // Entry 320 + 0.0, + -0x1.000002p0, + 0x1.p-149 + }, + { // Entry 321 + 0.0, + -0x1.000002p0, + 0.0f + }, + { // Entry 322 + 0.0, + -0x1.000002p0, + -0.0f + }, + { // Entry 323 + 0.0, + -0x1.000002p0, + -0x1.p-149 + }, + { // Entry 324 + 0.0, + -0x1.000002p0, + -0x1.fffffcp-127 + }, + { // Entry 325 + 0.0, + -0x1.000002p0, + -0x1.p-126 + }, + { // Entry 326 + 0.0, + -0x1.000002p0, + -0x1.p0 + }, + { // Entry 327 + 0x1.fffffdfffffffffffffffffffffffffdp127, + -0x1.000002p0, + -0x1.fffffep127 + }, + { // Entry 328 + HUGE_VALF, + -0x1.000002p0, + -HUGE_VALF + }, + { // Entry 329 + 0.0, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 330 + 0.0, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 331 + 0.0, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 332 + 0.0, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 333 + 0.0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 334 + 0.0, + -0x1.fffffep127, + 0.0f + }, + { // Entry 335 + 0.0, + -0x1.fffffep127, + -0.0f + }, + { // Entry 336 + 0.0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 337 + 0.0, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 338 + 0.0, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 339 + 0.0, + -0x1.fffffep127, + -0x1.p0 + }, + { // Entry 340 + 0.0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 341 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 342 + 0.0, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 343 + 0.0, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 344 + 0.0, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 345 + 0.0, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 346 + 0.0, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 347 + 0.0, + -HUGE_VALF, + 0.0f + }, + { // Entry 348 + 0.0, + -HUGE_VALF, + -0.0f + }, + { // Entry 349 + 0.0, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 350 + 0.0, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 351 + 0.0, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 352 + 0.0, + -HUGE_VALF, + -0x1.p0 + }, + { // Entry 353 + 0.0, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 354 + 0.0, + -HUGE_VALF, + -HUGE_VALF + } +}; diff --git a/tests/math_data/floor_intel_data.h b/tests/math_data/floor_intel_data.h new file mode 100644 index 000000000..a1216df50 --- /dev/null +++ b/tests/math_data/floor_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_floor_intel_data[] = { + { // Entry 0 + -0x1.p0, + -0x1.0p-1074 + }, + { // Entry 1 + -0.0, + -0.0 + }, + { // Entry 2 + 0.0, + 0x1.0p-1074 + }, + { // Entry 3 + 0.0, + 0x1.fffffffffffffp-2 + }, + { // Entry 4 + 0.0, + 0x1.0p-1 + }, + { // Entry 5 + 0.0, + 0x1.0000000000001p-1 + }, + { // Entry 6 + 0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 8 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 9 + 0x1.p0, + 0x1.7ffffffffffffp0 + }, + { // Entry 10 + 0x1.p0, + 0x1.8p0 + }, + { // Entry 11 + 0x1.p0, + 0x1.8000000000001p0 + }, + { // Entry 12 + 0x1.p0, + 0x1.fffffffffffffp0 + }, + { // Entry 13 + 0x1.p1, + 0x1.0p1 + }, + { // Entry 14 + 0x1.p1, + 0x1.0000000000001p1 + }, + { // Entry 15 + 0x1.p1, + 0x1.3ffffffffffffp1 + }, + { // Entry 16 + 0x1.p1, + 0x1.4p1 + }, + { // Entry 17 + 0x1.p1, + 0x1.4000000000001p1 + }, + { // Entry 18 + 0x1.8cp6, + 0x1.8ffffffffffffp6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.9p6 + }, + { // Entry 20 + 0x1.90p6, + 0x1.9000000000001p6 + }, + { // Entry 21 + 0x1.90p6, + 0x1.91fffffffffffp6 + }, + { // Entry 22 + 0x1.90p6, + 0x1.920p6 + }, + { // Entry 23 + 0x1.90p6, + 0x1.9200000000001p6 + }, + { // Entry 24 + 0x1.f380p9, + 0x1.f3fffffffffffp9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f40p9 + }, + { // Entry 26 + 0x1.f4p9, + 0x1.f400000000001p9 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.f43ffffffffffp9 + }, + { // Entry 28 + 0x1.f4p9, + 0x1.f44p9 + }, + { // Entry 29 + 0x1.f4p9, + 0x1.f440000000001p9 + }, + { // Entry 30 + 0x1.ffffffffffff80p49, + 0x1.fffffffffffffp49 + }, + { // Entry 31 + 0x1.p50, + 0x1.0p50 + }, + { // Entry 32 + 0x1.p50, + 0x1.0000000000001p50 + }, + { // Entry 33 + 0x1.ffffffffffffc0p50, + 0x1.fffffffffffffp50 + }, + { // Entry 34 + 0x1.p51, + 0x1.0p51 + }, + { // Entry 35 + 0x1.p51, + 0x1.0000000000001p51 + }, + { // Entry 36 + 0x1.ffffffffffffe0p51, + 0x1.fffffffffffffp51 + }, + { // Entry 37 + 0x1.p52, + 0x1.0p52 + }, + { // Entry 38 + 0x1.00000000000010p52, + 0x1.0000000000001p52 + }, + { // Entry 39 + 0x1.fffffffffffff0p52, + 0x1.fffffffffffffp52 + }, + { // Entry 40 + 0x1.p53, + 0x1.0p53 + }, + { // Entry 41 + 0x1.00000000000010p53, + 0x1.0000000000001p53 + }, + { // Entry 42 + 0x1.fffffffffffff0p53, + 0x1.fffffffffffffp53 + }, + { // Entry 43 + 0x1.p54, + 0x1.0p54 + }, + { // Entry 44 + 0x1.00000000000010p54, + 0x1.0000000000001p54 + }, + { // Entry 45 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 46 + -0x1.p0, + -0x1.0000000000001p-1 + }, + { // Entry 47 + -0x1.p0, + -0x1.0p-1 + }, + { // Entry 48 + -0x1.p0, + -0x1.fffffffffffffp-2 + }, + { // Entry 49 + -0x1.p1, + -0x1.0000000000001p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 51 + -0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 52 + -0x1.p1, + -0x1.8000000000001p0 + }, + { // Entry 53 + -0x1.p1, + -0x1.8p0 + }, + { // Entry 54 + -0x1.p1, + -0x1.7ffffffffffffp0 + }, + { // Entry 55 + -0x1.80p1, + -0x1.0000000000001p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.0p1 + }, + { // Entry 57 + -0x1.p1, + -0x1.fffffffffffffp0 + }, + { // Entry 58 + -0x1.80p1, + -0x1.4000000000001p1 + }, + { // Entry 59 + -0x1.80p1, + -0x1.4p1 + }, + { // Entry 60 + -0x1.80p1, + -0x1.3ffffffffffffp1 + }, + { // Entry 61 + -0x1.94p6, + -0x1.9000000000001p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.9p6 + }, + { // Entry 63 + -0x1.90p6, + -0x1.8ffffffffffffp6 + }, + { // Entry 64 + -0x1.94p6, + -0x1.9200000000001p6 + }, + { // Entry 65 + -0x1.94p6, + -0x1.920p6 + }, + { // Entry 66 + -0x1.94p6, + -0x1.91fffffffffffp6 + }, + { // Entry 67 + -0x1.f480p9, + -0x1.f400000000001p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f40p9 + }, + { // Entry 69 + -0x1.f4p9, + -0x1.f3fffffffffffp9 + }, + { // Entry 70 + -0x1.f480p9, + -0x1.f440000000001p9 + }, + { // Entry 71 + -0x1.f480p9, + -0x1.f44p9 + }, + { // Entry 72 + -0x1.f480p9, + -0x1.f43ffffffffffp9 + }, + { // Entry 73 + -0x1.00000000000040p50, + -0x1.0000000000001p50 + }, + { // Entry 74 + -0x1.p50, + -0x1.0p50 + }, + { // Entry 75 + -0x1.p50, + -0x1.fffffffffffffp49 + }, + { // Entry 76 + -0x1.00000000000020p51, + -0x1.0000000000001p51 + }, + { // Entry 77 + -0x1.p51, + -0x1.0p51 + }, + { // Entry 78 + -0x1.p51, + -0x1.fffffffffffffp50 + }, + { // Entry 79 + -0x1.00000000000010p52, + -0x1.0000000000001p52 + }, + { // Entry 80 + -0x1.p52, + -0x1.0p52 + }, + { // Entry 81 + -0x1.p52, + -0x1.fffffffffffffp51 + }, + { // Entry 82 + -0x1.00000000000010p53, + -0x1.0000000000001p53 + }, + { // Entry 83 + -0x1.p53, + -0x1.0p53 + }, + { // Entry 84 + -0x1.fffffffffffff0p52, + -0x1.fffffffffffffp52 + }, + { // Entry 85 + -0x1.00000000000010p54, + -0x1.0000000000001p54 + }, + { // Entry 86 + -0x1.p54, + -0x1.0p54 + }, + { // Entry 87 + -0x1.fffffffffffff0p53, + -0x1.fffffffffffffp53 + }, + { // Entry 88 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 89 + 0x1.fffffff8p29, + 0x1.fffffffffffffp29 + }, + { // Entry 90 + 0x1.p30, + 0x1.0p30 + }, + { // Entry 91 + 0x1.p30, + 0x1.0000000000001p30 + }, + { // Entry 92 + 0x1.fffffff4p30, + 0x1.fffffff7ffffep30 + }, + { // Entry 93 + 0x1.fffffff4p30, + 0x1.fffffff7fffffp30 + }, + { // Entry 94 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 95 + 0x1.fffffff8p30, + 0x1.fffffff800001p30 + }, + { // Entry 96 + 0x1.fffffff8p30, + 0x1.fffffff800002p30 + }, + { // Entry 97 + 0x1.fffffff8p30, + 0x1.fffffff9ffffep30 + }, + { // Entry 98 + 0x1.fffffff8p30, + 0x1.fffffff9fffffp30 + }, + { // Entry 99 + 0x1.fffffff8p30, + 0x1.fffffffa0p30 + }, + { // Entry 100 + 0x1.fffffff8p30, + 0x1.fffffffa00001p30 + }, + { // Entry 101 + 0x1.fffffff8p30, + 0x1.fffffffa00002p30 + }, + { // Entry 102 + 0x1.fffffff8p30, + 0x1.fffffffbffffep30 + }, + { // Entry 103 + 0x1.fffffff8p30, + 0x1.fffffffbfffffp30 + }, + { // Entry 104 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 105 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 106 + 0x1.fffffffcp30, + 0x1.fffffffc00002p30 + }, + { // Entry 107 + 0x1.fffffffcp30, + 0x1.fffffffdffffep30 + }, + { // Entry 108 + 0x1.fffffffcp30, + 0x1.fffffffdfffffp30 + }, + { // Entry 109 + 0x1.fffffffcp30, + 0x1.fffffffe0p30 + }, + { // Entry 110 + 0x1.fffffffcp30, + 0x1.fffffffe00001p30 + }, + { // Entry 111 + 0x1.fffffffcp30, + 0x1.fffffffe00002p30 + }, + { // Entry 112 + 0x1.fffffffcp30, + 0x1.ffffffffffffep30 + }, + { // Entry 113 + 0x1.fffffffcp30, + 0x1.fffffffffffffp30 + }, + { // Entry 114 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 115 + 0x1.p31, + 0x1.0000000000001p31 + }, + { // Entry 116 + 0x1.p31, + 0x1.0000000000002p31 + }, + { // Entry 117 + 0x1.p31, + 0x1.00000000ffffep31 + }, + { // Entry 118 + 0x1.p31, + 0x1.00000000fffffp31 + }, + { // Entry 119 + 0x1.p31, + 0x1.000000010p31 + }, + { // Entry 120 + 0x1.p31, + 0x1.0000000100001p31 + }, + { // Entry 121 + 0x1.p31, + 0x1.0000000100002p31 + }, + { // Entry 122 + 0x1.ffffffe0p30, + 0x1.ffffffep30 + }, + { // Entry 123 + 0x1.ffffffe4p30, + 0x1.ffffffe40p30 + }, + { // Entry 124 + 0x1.ffffffe8p30, + 0x1.ffffffe80p30 + }, + { // Entry 125 + 0x1.ffffffecp30, + 0x1.ffffffec0p30 + }, + { // Entry 126 + 0x1.fffffff0p30, + 0x1.fffffffp30 + }, + { // Entry 127 + 0x1.fffffff4p30, + 0x1.fffffff40p30 + }, + { // Entry 128 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 129 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 130 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 131 + 0x1.00000002p31, + 0x1.000000020p31 + }, + { // Entry 132 + -0x1.00000004p30, + -0x1.0000000000001p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.0p30 + }, + { // Entry 134 + -0x1.p30, + -0x1.fffffffffffffp29 + }, + { // Entry 135 + -0x1.fffffffcp30, + -0x1.fffffff800002p30 + }, + { // Entry 136 + -0x1.fffffffcp30, + -0x1.fffffff800001p30 + }, + { // Entry 137 + -0x1.fffffff8p30, + -0x1.fffffff80p30 + }, + { // Entry 138 + -0x1.fffffff8p30, + -0x1.fffffff7fffffp30 + }, + { // Entry 139 + -0x1.fffffff8p30, + -0x1.fffffff7ffffep30 + }, + { // Entry 140 + -0x1.fffffffcp30, + -0x1.fffffffa00002p30 + }, + { // Entry 141 + -0x1.fffffffcp30, + -0x1.fffffffa00001p30 + }, + { // Entry 142 + -0x1.fffffffcp30, + -0x1.fffffffa0p30 + }, + { // Entry 143 + -0x1.fffffffcp30, + -0x1.fffffff9fffffp30 + }, + { // Entry 144 + -0x1.fffffffcp30, + -0x1.fffffff9ffffep30 + }, + { // Entry 145 + -0x1.p31, + -0x1.fffffffc00002p30 + }, + { // Entry 146 + -0x1.p31, + -0x1.fffffffc00001p30 + }, + { // Entry 147 + -0x1.fffffffcp30, + -0x1.fffffffc0p30 + }, + { // Entry 148 + -0x1.fffffffcp30, + -0x1.fffffffbfffffp30 + }, + { // Entry 149 + -0x1.fffffffcp30, + -0x1.fffffffbffffep30 + }, + { // Entry 150 + -0x1.p31, + -0x1.fffffffe00002p30 + }, + { // Entry 151 + -0x1.p31, + -0x1.fffffffe00001p30 + }, + { // Entry 152 + -0x1.p31, + -0x1.fffffffe0p30 + }, + { // Entry 153 + -0x1.p31, + -0x1.fffffffdfffffp30 + }, + { // Entry 154 + -0x1.p31, + -0x1.fffffffdffffep30 + }, + { // Entry 155 + -0x1.00000002p31, + -0x1.0000000000002p31 + }, + { // Entry 156 + -0x1.00000002p31, + -0x1.0000000000001p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 158 + -0x1.p31, + -0x1.fffffffffffffp30 + }, + { // Entry 159 + -0x1.p31, + -0x1.ffffffffffffep30 + }, + { // Entry 160 + -0x1.00000002p31, + -0x1.0000000100002p31 + }, + { // Entry 161 + -0x1.00000002p31, + -0x1.0000000100001p31 + }, + { // Entry 162 + -0x1.00000002p31, + -0x1.000000010p31 + }, + { // Entry 163 + -0x1.00000002p31, + -0x1.00000000fffffp31 + }, + { // Entry 164 + -0x1.00000002p31, + -0x1.00000000ffffep31 + }, + { // Entry 165 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 166 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 167 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 168 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 169 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 170 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 171 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 172 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 173 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 174 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 175 + 0x1.ffffffffffffe0p61, + 0x1.ffffffffffffep61 + }, + { // Entry 176 + 0x1.fffffffffffff0p61, + 0x1.fffffffffffffp61 + }, + { // Entry 177 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 178 + 0x1.00000000000010p62, + 0x1.0000000000001p62 + }, + { // Entry 179 + 0x1.00000000000020p62, + 0x1.0000000000002p62 + }, + { // Entry 180 + 0x1.ffffffffffffe0p62, + 0x1.ffffffffffffep62 + }, + { // Entry 181 + 0x1.fffffffffffff0p62, + 0x1.fffffffffffffp62 + }, + { // Entry 182 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 183 + 0x1.00000000000010p63, + 0x1.0000000000001p63 + }, + { // Entry 184 + 0x1.00000000000020p63, + 0x1.0000000000002p63 + }, + { // Entry 185 + 0x1.ffffffffffffe0p63, + 0x1.ffffffffffffep63 + }, + { // Entry 186 + 0x1.fffffffffffff0p63, + 0x1.fffffffffffffp63 + }, + { // Entry 187 + 0x1.p64, + 0x1.0p64 + }, + { // Entry 188 + 0x1.00000000000010p64, + 0x1.0000000000001p64 + }, + { // Entry 189 + 0x1.00000000000020p64, + 0x1.0000000000002p64 + }, + { // Entry 190 + -0x1.00000000000020p62, + -0x1.0000000000002p62 + }, + { // Entry 191 + -0x1.00000000000010p62, + -0x1.0000000000001p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 193 + -0x1.fffffffffffff0p61, + -0x1.fffffffffffffp61 + }, + { // Entry 194 + -0x1.ffffffffffffe0p61, + -0x1.ffffffffffffep61 + }, + { // Entry 195 + -0x1.00000000000020p63, + -0x1.0000000000002p63 + }, + { // Entry 196 + -0x1.00000000000010p63, + -0x1.0000000000001p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 198 + -0x1.fffffffffffff0p62, + -0x1.fffffffffffffp62 + }, + { // Entry 199 + -0x1.ffffffffffffe0p62, + -0x1.ffffffffffffep62 + }, + { // Entry 200 + -0x1.00000000000020p64, + -0x1.0000000000002p64 + }, + { // Entry 201 + -0x1.00000000000010p64, + -0x1.0000000000001p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.0p64 + }, + { // Entry 203 + -0x1.fffffffffffff0p63, + -0x1.fffffffffffffp63 + }, + { // Entry 204 + -0x1.ffffffffffffe0p63, + -0x1.ffffffffffffep63 + }, + { // Entry 205 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 209 + 0x1.fffffff8p30, + 0x1.fffffffbfffffp30 + }, + { // Entry 210 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 211 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 212 + -0x1.00000002p31, + -0x1.0000000000001p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 214 + -0x1.p31, + -0x1.fffffffffffffp30 + }, + { // Entry 215 + 0x1.80p1, + 0x1.fffffffffffffp1 + }, + { // Entry 216 + 0x1.p2, + 0x1.0p2 + }, + { // Entry 217 + 0x1.p2, + 0x1.0000000000001p2 + }, + { // Entry 218 + 0x1.c0p2, + 0x1.fffffffffffffp2 + }, + { // Entry 219 + 0x1.p3, + 0x1.0p3 + }, + { // Entry 220 + 0x1.p3, + 0x1.0000000000001p3 + }, + { // Entry 221 + 0x1.e0p3, + 0x1.fffffffffffffp3 + }, + { // Entry 222 + 0x1.p4, + 0x1.0p4 + }, + { // Entry 223 + 0x1.p4, + 0x1.0000000000001p4 + }, + { // Entry 224 + 0x1.f0p4, + 0x1.fffffffffffffp4 + }, + { // Entry 225 + 0x1.p5, + 0x1.0p5 + }, + { // Entry 226 + 0x1.p5, + 0x1.0000000000001p5 + }, + { // Entry 227 + 0x1.f8p5, + 0x1.fffffffffffffp5 + }, + { // Entry 228 + 0x1.p6, + 0x1.0p6 + }, + { // Entry 229 + 0x1.p6, + 0x1.0000000000001p6 + }, + { // Entry 230 + 0x1.fcp6, + 0x1.fffffffffffffp6 + }, + { // Entry 231 + 0x1.p7, + 0x1.0p7 + }, + { // Entry 232 + 0x1.p7, + 0x1.0000000000001p7 + }, + { // Entry 233 + 0x1.fep7, + 0x1.fffffffffffffp7 + }, + { // Entry 234 + 0x1.p8, + 0x1.0p8 + }, + { // Entry 235 + 0x1.p8, + 0x1.0000000000001p8 + }, + { // Entry 236 + 0x1.ffp8, + 0x1.fffffffffffffp8 + }, + { // Entry 237 + 0x1.p9, + 0x1.0p9 + }, + { // Entry 238 + 0x1.p9, + 0x1.0000000000001p9 + }, + { // Entry 239 + 0x1.ff80p9, + 0x1.fffffffffffffp9 + }, + { // Entry 240 + 0x1.p10, + 0x1.0p10 + }, + { // Entry 241 + 0x1.p10, + 0x1.0000000000001p10 + }, + { // Entry 242 + 0x1.ffc0p10, + 0x1.fffffffffffffp10 + }, + { // Entry 243 + 0x1.p11, + 0x1.0p11 + }, + { // Entry 244 + 0x1.p11, + 0x1.0000000000001p11 + }, + { // Entry 245 + 0x1.ffe0p11, + 0x1.fffffffffffffp11 + }, + { // Entry 246 + 0x1.p12, + 0x1.0p12 + }, + { // Entry 247 + 0x1.p12, + 0x1.0000000000001p12 + }, + { // Entry 248 + 0x1.p2, + 0x1.1ffffffffffffp2 + }, + { // Entry 249 + 0x1.p2, + 0x1.2p2 + }, + { // Entry 250 + 0x1.p2, + 0x1.2000000000001p2 + }, + { // Entry 251 + 0x1.p3, + 0x1.0ffffffffffffp3 + }, + { // Entry 252 + 0x1.p3, + 0x1.1p3 + }, + { // Entry 253 + 0x1.p3, + 0x1.1000000000001p3 + }, + { // Entry 254 + 0x1.p4, + 0x1.07fffffffffffp4 + }, + { // Entry 255 + 0x1.p4, + 0x1.080p4 + }, + { // Entry 256 + 0x1.p4, + 0x1.0800000000001p4 + }, + { // Entry 257 + 0x1.p5, + 0x1.03fffffffffffp5 + }, + { // Entry 258 + 0x1.p5, + 0x1.040p5 + }, + { // Entry 259 + 0x1.p5, + 0x1.0400000000001p5 + }, + { // Entry 260 + 0x1.p6, + 0x1.01fffffffffffp6 + }, + { // Entry 261 + 0x1.p6, + 0x1.020p6 + }, + { // Entry 262 + 0x1.p6, + 0x1.0200000000001p6 + }, + { // Entry 263 + 0x1.p7, + 0x1.00fffffffffffp7 + }, + { // Entry 264 + 0x1.p7, + 0x1.010p7 + }, + { // Entry 265 + 0x1.p7, + 0x1.0100000000001p7 + }, + { // Entry 266 + 0x1.p8, + 0x1.007ffffffffffp8 + }, + { // Entry 267 + 0x1.p8, + 0x1.008p8 + }, + { // Entry 268 + 0x1.p8, + 0x1.0080000000001p8 + }, + { // Entry 269 + 0x1.p9, + 0x1.003ffffffffffp9 + }, + { // Entry 270 + 0x1.p9, + 0x1.004p9 + }, + { // Entry 271 + 0x1.p9, + 0x1.0040000000001p9 + }, + { // Entry 272 + 0x1.p10, + 0x1.001ffffffffffp10 + }, + { // Entry 273 + 0x1.p10, + 0x1.002p10 + }, + { // Entry 274 + 0x1.p10, + 0x1.0020000000001p10 + }, + { // Entry 275 + 0x1.0040p10, + 0x1.005ffffffffffp10 + }, + { // Entry 276 + 0x1.0040p10, + 0x1.006p10 + }, + { // Entry 277 + 0x1.0040p10, + 0x1.0060000000001p10 + }, + { // Entry 278 + 0x1.p11, + 0x1.000ffffffffffp11 + }, + { // Entry 279 + 0x1.p11, + 0x1.001p11 + }, + { // Entry 280 + 0x1.p11, + 0x1.0010000000001p11 + }, + { // Entry 281 + 0x1.p12, + 0x1.0007fffffffffp12 + }, + { // Entry 282 + 0x1.p12, + 0x1.00080p12 + }, + { // Entry 283 + 0x1.p12, + 0x1.0008000000001p12 + }, + { // Entry 284 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 285 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 286 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 287 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 288 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 289 + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 290 + 0x1.80p1, + 0x1.921fb54442d18p1 + }, + { // Entry 291 + -0x1.p2, + -0x1.921fb54442d18p1 + }, + { // Entry 292 + 0x1.p0, + 0x1.921fb54442d18p0 + }, + { // Entry 293 + -0x1.p1, + -0x1.921fb54442d18p0 + }, + { // Entry 294 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 295 + -0x1.p1, + -0x1.0000000000001p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 298 + 0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 299 + -0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 300 + 0.0, + 0x1.921fb54442d18p-1 + }, + { // Entry 301 + -0x1.p0, + -0x1.921fb54442d18p-1 + }, + { // Entry 302 + 0.0, + 0x1.0000000000001p-1022 + }, + { // Entry 303 + -0x1.p0, + -0x1.0000000000001p-1022 + }, + { // Entry 304 + 0.0, + 0x1.0p-1022 + }, + { // Entry 305 + -0x1.p0, + -0x1.0p-1022 + }, + { // Entry 306 + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 307 + -0x1.p0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 308 + 0.0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 309 + -0x1.p0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 310 + 0.0, + 0x1.0p-1073 + }, + { // Entry 311 + -0x1.p0, + -0x1.0p-1073 + }, + { // Entry 312 + 0.0, + 0x1.0p-1074 + }, + { // Entry 313 + -0x1.p0, + -0x1.0p-1074 + }, + { // Entry 314 + 0.0, + 0.0 + }, + { // Entry 315 + -0.0, + -0.0 + }, + { // Entry 316 + 0x1.p0, + 0x1.8p0 + }, + { // Entry 317 + -0x1.p1, + -0x1.8p0 + }, + { // Entry 318 + 0x1.p1, + 0x1.4p1 + }, + { // Entry 319 + -0x1.80p1, + -0x1.4p1 + }, + { // Entry 320 + 0.0, + 0x1.fffffp-2 + }, + { // Entry 321 + 0.0, + 0x1.0p-1 + }, + { // Entry 322 + 0.0, + 0x1.00001p-1 + }, + { // Entry 323 + -0x1.p0, + -0x1.fffffp-2 + }, + { // Entry 324 + -0x1.p0, + -0x1.0p-1 + }, + { // Entry 325 + -0x1.p0, + -0x1.00001p-1 + }, + { // Entry 326 + 0x1.p0, + 0x1.80001p0 + }, + { // Entry 327 + 0x1.p0, + 0x1.7ffffp0 + }, + { // Entry 328 + -0x1.p1, + -0x1.80001p0 + }, + { // Entry 329 + -0x1.p1, + -0x1.7ffffp0 + } +}; diff --git a/tests/math_data/floorf_intel_data.h b/tests/math_data/floorf_intel_data.h new file mode 100644 index 000000000..3bf2c9f3f --- /dev/null +++ b/tests/math_data/floorf_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_floorf_intel_data[] = { + { // Entry 0 + -0x1.p0, + -0x1.p-149 + }, + { // Entry 1 + 0.0, + 0.0 + }, + { // Entry 2 + 0.0, + 0x1.p-149 + }, + { // Entry 3 + 0.0, + 0x1.fffffep-2 + }, + { // Entry 4 + 0.0, + 0x1.p-1 + }, + { // Entry 5 + 0.0, + 0x1.000002p-1 + }, + { // Entry 6 + 0.0, + 0x1.fffffep-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.p0 + }, + { // Entry 8 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 9 + 0x1.p0, + 0x1.7ffffep0 + }, + { // Entry 10 + 0x1.p0, + 0x1.80p0 + }, + { // Entry 11 + 0x1.p0, + 0x1.800002p0 + }, + { // Entry 12 + 0x1.p0, + 0x1.fffffep0 + }, + { // Entry 13 + 0x1.p1, + 0x1.p1 + }, + { // Entry 14 + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 15 + 0x1.p1, + 0x1.3ffffep1 + }, + { // Entry 16 + 0x1.p1, + 0x1.40p1 + }, + { // Entry 17 + 0x1.p1, + 0x1.400002p1 + }, + { // Entry 18 + 0x1.8cp6, + 0x1.8ffffep6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.90p6 + }, + { // Entry 20 + 0x1.90p6, + 0x1.900002p6 + }, + { // Entry 21 + 0x1.90p6, + 0x1.91fffep6 + }, + { // Entry 22 + 0x1.90p6, + 0x1.92p6 + }, + { // Entry 23 + 0x1.90p6, + 0x1.920002p6 + }, + { // Entry 24 + 0x1.f380p9, + 0x1.f3fffep9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f4p9 + }, + { // Entry 26 + 0x1.f4p9, + 0x1.f40002p9 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.f43ffep9 + }, + { // Entry 28 + 0x1.f4p9, + 0x1.f440p9 + }, + { // Entry 29 + 0x1.f4p9, + 0x1.f44002p9 + }, + { // Entry 30 + 0x1.fffff0p20, + 0x1.fffffep20 + }, + { // Entry 31 + 0x1.p21, + 0x1.p21 + }, + { // Entry 32 + 0x1.p21, + 0x1.000002p21 + }, + { // Entry 33 + 0x1.fffff8p21, + 0x1.fffffep21 + }, + { // Entry 34 + 0x1.p22, + 0x1.p22 + }, + { // Entry 35 + 0x1.p22, + 0x1.000002p22 + }, + { // Entry 36 + 0x1.fffffcp22, + 0x1.fffffep22 + }, + { // Entry 37 + 0x1.p23, + 0x1.p23 + }, + { // Entry 38 + 0x1.000002p23, + 0x1.000002p23 + }, + { // Entry 39 + 0x1.fffffep23, + 0x1.fffffep23 + }, + { // Entry 40 + 0x1.p24, + 0x1.p24 + }, + { // Entry 41 + 0x1.000002p24, + 0x1.000002p24 + }, + { // Entry 42 + 0x1.fffffep24, + 0x1.fffffep24 + }, + { // Entry 43 + 0x1.p25, + 0x1.p25 + }, + { // Entry 44 + 0x1.000002p25, + 0x1.000002p25 + }, + { // Entry 45 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 46 + -0x1.p0, + -0x1.000002p-1 + }, + { // Entry 47 + -0x1.p0, + -0x1.p-1 + }, + { // Entry 48 + -0x1.p0, + -0x1.fffffep-2 + }, + { // Entry 49 + -0x1.p1, + -0x1.000002p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.p0 + }, + { // Entry 51 + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 52 + -0x1.p1, + -0x1.800002p0 + }, + { // Entry 53 + -0x1.p1, + -0x1.80p0 + }, + { // Entry 54 + -0x1.p1, + -0x1.7ffffep0 + }, + { // Entry 55 + -0x1.80p1, + -0x1.000002p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.p1 + }, + { // Entry 57 + -0x1.p1, + -0x1.fffffep0 + }, + { // Entry 58 + -0x1.80p1, + -0x1.400002p1 + }, + { // Entry 59 + -0x1.80p1, + -0x1.40p1 + }, + { // Entry 60 + -0x1.80p1, + -0x1.3ffffep1 + }, + { // Entry 61 + -0x1.94p6, + -0x1.900002p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.90p6 + }, + { // Entry 63 + -0x1.90p6, + -0x1.8ffffep6 + }, + { // Entry 64 + -0x1.94p6, + -0x1.920002p6 + }, + { // Entry 65 + -0x1.94p6, + -0x1.92p6 + }, + { // Entry 66 + -0x1.94p6, + -0x1.91fffep6 + }, + { // Entry 67 + -0x1.f480p9, + -0x1.f40002p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f4p9 + }, + { // Entry 69 + -0x1.f4p9, + -0x1.f3fffep9 + }, + { // Entry 70 + -0x1.f480p9, + -0x1.f44002p9 + }, + { // Entry 71 + -0x1.f480p9, + -0x1.f440p9 + }, + { // Entry 72 + -0x1.f480p9, + -0x1.f43ffep9 + }, + { // Entry 73 + -0x1.000008p21, + -0x1.000002p21 + }, + { // Entry 74 + -0x1.p21, + -0x1.p21 + }, + { // Entry 75 + -0x1.p21, + -0x1.fffffep20 + }, + { // Entry 76 + -0x1.000004p22, + -0x1.000002p22 + }, + { // Entry 77 + -0x1.p22, + -0x1.p22 + }, + { // Entry 78 + -0x1.p22, + -0x1.fffffep21 + }, + { // Entry 79 + -0x1.000002p23, + -0x1.000002p23 + }, + { // Entry 80 + -0x1.p23, + -0x1.p23 + }, + { // Entry 81 + -0x1.p23, + -0x1.fffffep22 + }, + { // Entry 82 + -0x1.000002p24, + -0x1.000002p24 + }, + { // Entry 83 + -0x1.p24, + -0x1.p24 + }, + { // Entry 84 + -0x1.fffffep23, + -0x1.fffffep23 + }, + { // Entry 85 + -0x1.000002p25, + -0x1.000002p25 + }, + { // Entry 86 + -0x1.p25, + -0x1.p25 + }, + { // Entry 87 + -0x1.fffffep24, + -0x1.fffffep24 + }, + { // Entry 88 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 89 + 0x1.fffffep29, + 0x1.fffffep29 + }, + { // Entry 90 + 0x1.p30, + 0x1.p30 + }, + { // Entry 91 + 0x1.000002p30, + 0x1.000002p30 + }, + { // Entry 92 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 93 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 94 + 0x1.p31, + 0x1.p31 + }, + { // Entry 95 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 96 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 97 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 98 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 99 + 0x1.p31, + 0x1.p31 + }, + { // Entry 100 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 101 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 102 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 103 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 104 + 0x1.p31, + 0x1.p31 + }, + { // Entry 105 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 106 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 107 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 108 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 109 + 0x1.p31, + 0x1.p31 + }, + { // Entry 110 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 111 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 112 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 113 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 114 + 0x1.p31, + 0x1.p31 + }, + { // Entry 115 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 116 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 117 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 118 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 119 + 0x1.p31, + 0x1.p31 + }, + { // Entry 120 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 121 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 122 + 0x1.p31, + 0x1.p31 + }, + { // Entry 123 + 0x1.p31, + 0x1.p31 + }, + { // Entry 124 + 0x1.p31, + 0x1.p31 + }, + { // Entry 125 + 0x1.p31, + 0x1.p31 + }, + { // Entry 126 + 0x1.p31, + 0x1.p31 + }, + { // Entry 127 + 0x1.p31, + 0x1.p31 + }, + { // Entry 128 + 0x1.p31, + 0x1.p31 + }, + { // Entry 129 + 0x1.p31, + 0x1.p31 + }, + { // Entry 130 + 0x1.p31, + 0x1.p31 + }, + { // Entry 131 + 0x1.p31, + 0x1.p31 + }, + { // Entry 132 + -0x1.000002p30, + -0x1.000002p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.p30 + }, + { // Entry 134 + -0x1.fffffep29, + -0x1.fffffep29 + }, + { // Entry 135 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 136 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 137 + -0x1.p31, + -0x1.p31 + }, + { // Entry 138 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 139 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 140 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 141 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 142 + -0x1.p31, + -0x1.p31 + }, + { // Entry 143 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 144 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 145 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 146 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 147 + -0x1.p31, + -0x1.p31 + }, + { // Entry 148 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 149 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 150 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 151 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 152 + -0x1.p31, + -0x1.p31 + }, + { // Entry 153 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 154 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 155 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 156 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.p31 + }, + { // Entry 158 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 159 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 160 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 161 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.p31 + }, + { // Entry 163 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 164 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 165 + -0x1.p31, + -0x1.p31 + }, + { // Entry 166 + -0x1.p31, + -0x1.p31 + }, + { // Entry 167 + -0x1.p31, + -0x1.p31 + }, + { // Entry 168 + -0x1.p31, + -0x1.p31 + }, + { // Entry 169 + -0x1.p31, + -0x1.p31 + }, + { // Entry 170 + -0x1.p31, + -0x1.p31 + }, + { // Entry 171 + -0x1.p31, + -0x1.p31 + }, + { // Entry 172 + -0x1.p31, + -0x1.p31 + }, + { // Entry 173 + -0x1.p31, + -0x1.p31 + }, + { // Entry 174 + -0x1.p31, + -0x1.p31 + }, + { // Entry 175 + 0x1.fffffcp61, + 0x1.fffffcp61 + }, + { // Entry 176 + 0x1.fffffep61, + 0x1.fffffep61 + }, + { // Entry 177 + 0x1.p62, + 0x1.p62 + }, + { // Entry 178 + 0x1.000002p62, + 0x1.000002p62 + }, + { // Entry 179 + 0x1.000004p62, + 0x1.000004p62 + }, + { // Entry 180 + 0x1.fffffcp62, + 0x1.fffffcp62 + }, + { // Entry 181 + 0x1.fffffep62, + 0x1.fffffep62 + }, + { // Entry 182 + 0x1.p63, + 0x1.p63 + }, + { // Entry 183 + 0x1.000002p63, + 0x1.000002p63 + }, + { // Entry 184 + 0x1.000004p63, + 0x1.000004p63 + }, + { // Entry 185 + 0x1.fffffcp63, + 0x1.fffffcp63 + }, + { // Entry 186 + 0x1.fffffep63, + 0x1.fffffep63 + }, + { // Entry 187 + 0x1.p64, + 0x1.p64 + }, + { // Entry 188 + 0x1.000002p64, + 0x1.000002p64 + }, + { // Entry 189 + 0x1.000004p64, + 0x1.000004p64 + }, + { // Entry 190 + -0x1.000004p62, + -0x1.000004p62 + }, + { // Entry 191 + -0x1.000002p62, + -0x1.000002p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.p62 + }, + { // Entry 193 + -0x1.fffffep61, + -0x1.fffffep61 + }, + { // Entry 194 + -0x1.fffffcp61, + -0x1.fffffcp61 + }, + { // Entry 195 + -0x1.000004p63, + -0x1.000004p63 + }, + { // Entry 196 + -0x1.000002p63, + -0x1.000002p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.p63 + }, + { // Entry 198 + -0x1.fffffep62, + -0x1.fffffep62 + }, + { // Entry 199 + -0x1.fffffcp62, + -0x1.fffffcp62 + }, + { // Entry 200 + -0x1.000004p64, + -0x1.000004p64 + }, + { // Entry 201 + -0x1.000002p64, + -0x1.000002p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.p64 + }, + { // Entry 203 + -0x1.fffffep63, + -0x1.fffffep63 + }, + { // Entry 204 + -0x1.fffffcp63, + -0x1.fffffcp63 + }, + { // Entry 205 + 0x1.p62, + 0x1.p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.p63 + }, + { // Entry 209 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 210 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 211 + 0x1.p31, + 0x1.p31 + }, + { // Entry 212 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.p31 + }, + { // Entry 214 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 215 + 0x1.80p1, + 0x1.fffffep1 + }, + { // Entry 216 + 0x1.p2, + 0x1.p2 + }, + { // Entry 217 + 0x1.p2, + 0x1.000002p2 + }, + { // Entry 218 + 0x1.c0p2, + 0x1.fffffep2 + }, + { // Entry 219 + 0x1.p3, + 0x1.p3 + }, + { // Entry 220 + 0x1.p3, + 0x1.000002p3 + }, + { // Entry 221 + 0x1.e0p3, + 0x1.fffffep3 + }, + { // Entry 222 + 0x1.p4, + 0x1.p4 + }, + { // Entry 223 + 0x1.p4, + 0x1.000002p4 + }, + { // Entry 224 + 0x1.f0p4, + 0x1.fffffep4 + }, + { // Entry 225 + 0x1.p5, + 0x1.p5 + }, + { // Entry 226 + 0x1.p5, + 0x1.000002p5 + }, + { // Entry 227 + 0x1.f8p5, + 0x1.fffffep5 + }, + { // Entry 228 + 0x1.p6, + 0x1.p6 + }, + { // Entry 229 + 0x1.p6, + 0x1.000002p6 + }, + { // Entry 230 + 0x1.fcp6, + 0x1.fffffep6 + }, + { // Entry 231 + 0x1.p7, + 0x1.p7 + }, + { // Entry 232 + 0x1.p7, + 0x1.000002p7 + }, + { // Entry 233 + 0x1.fep7, + 0x1.fffffep7 + }, + { // Entry 234 + 0x1.p8, + 0x1.p8 + }, + { // Entry 235 + 0x1.p8, + 0x1.000002p8 + }, + { // Entry 236 + 0x1.ffp8, + 0x1.fffffep8 + }, + { // Entry 237 + 0x1.p9, + 0x1.p9 + }, + { // Entry 238 + 0x1.p9, + 0x1.000002p9 + }, + { // Entry 239 + 0x1.ff80p9, + 0x1.fffffep9 + }, + { // Entry 240 + 0x1.p10, + 0x1.p10 + }, + { // Entry 241 + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 242 + 0x1.ffc0p10, + 0x1.fffffep10 + }, + { // Entry 243 + 0x1.p11, + 0x1.p11 + }, + { // Entry 244 + 0x1.p11, + 0x1.000002p11 + }, + { // Entry 245 + 0x1.ffe0p11, + 0x1.fffffep11 + }, + { // Entry 246 + 0x1.p12, + 0x1.p12 + }, + { // Entry 247 + 0x1.p12, + 0x1.000002p12 + }, + { // Entry 248 + 0x1.p2, + 0x1.1ffffep2 + }, + { // Entry 249 + 0x1.p2, + 0x1.20p2 + }, + { // Entry 250 + 0x1.p2, + 0x1.200002p2 + }, + { // Entry 251 + 0x1.p3, + 0x1.0ffffep3 + }, + { // Entry 252 + 0x1.p3, + 0x1.10p3 + }, + { // Entry 253 + 0x1.p3, + 0x1.100002p3 + }, + { // Entry 254 + 0x1.p4, + 0x1.07fffep4 + }, + { // Entry 255 + 0x1.p4, + 0x1.08p4 + }, + { // Entry 256 + 0x1.p4, + 0x1.080002p4 + }, + { // Entry 257 + 0x1.p5, + 0x1.03fffep5 + }, + { // Entry 258 + 0x1.p5, + 0x1.04p5 + }, + { // Entry 259 + 0x1.p5, + 0x1.040002p5 + }, + { // Entry 260 + 0x1.p6, + 0x1.01fffep6 + }, + { // Entry 261 + 0x1.p6, + 0x1.02p6 + }, + { // Entry 262 + 0x1.p6, + 0x1.020002p6 + }, + { // Entry 263 + 0x1.p7, + 0x1.00fffep7 + }, + { // Entry 264 + 0x1.p7, + 0x1.01p7 + }, + { // Entry 265 + 0x1.p7, + 0x1.010002p7 + }, + { // Entry 266 + 0x1.p8, + 0x1.007ffep8 + }, + { // Entry 267 + 0x1.p8, + 0x1.0080p8 + }, + { // Entry 268 + 0x1.p8, + 0x1.008002p8 + }, + { // Entry 269 + 0x1.p9, + 0x1.003ffep9 + }, + { // Entry 270 + 0x1.p9, + 0x1.0040p9 + }, + { // Entry 271 + 0x1.p9, + 0x1.004002p9 + }, + { // Entry 272 + 0x1.p10, + 0x1.001ffep10 + }, + { // Entry 273 + 0x1.p10, + 0x1.0020p10 + }, + { // Entry 274 + 0x1.p10, + 0x1.002002p10 + }, + { // Entry 275 + 0x1.0040p10, + 0x1.005ffep10 + }, + { // Entry 276 + 0x1.0040p10, + 0x1.0060p10 + }, + { // Entry 277 + 0x1.0040p10, + 0x1.006002p10 + }, + { // Entry 278 + 0x1.p11, + 0x1.000ffep11 + }, + { // Entry 279 + 0x1.p11, + 0x1.0010p11 + }, + { // Entry 280 + 0x1.p11, + 0x1.001002p11 + }, + { // Entry 281 + 0x1.p12, + 0x1.0007fep12 + }, + { // Entry 282 + 0x1.p12, + 0x1.0008p12 + }, + { // Entry 283 + 0x1.p12, + 0x1.000802p12 + }, + { // Entry 284 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 285 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 286 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 287 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 288 + 0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 289 + -0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 290 + 0x1.80p1, + 0x1.921fb6p1 + }, + { // Entry 291 + -0x1.p2, + -0x1.921fb6p1 + }, + { // Entry 292 + 0x1.p0, + 0x1.921fb6p0 + }, + { // Entry 293 + -0x1.p1, + -0x1.921fb6p0 + }, + { // Entry 294 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 295 + -0x1.p1, + -0x1.000002p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.p0 + }, + { // Entry 298 + 0.0, + 0x1.fffffep-1 + }, + { // Entry 299 + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 300 + 0.0, + 0x1.921fb6p-1 + }, + { // Entry 301 + -0x1.p0, + -0x1.921fb6p-1 + }, + { // Entry 302 + 0.0, + 0x1.000002p-126 + }, + { // Entry 303 + -0x1.p0, + -0x1.000002p-126 + }, + { // Entry 304 + 0.0, + 0x1.p-126 + }, + { // Entry 305 + -0x1.p0, + -0x1.p-126 + }, + { // Entry 306 + 0.0, + 0x1.fffffcp-127 + }, + { // Entry 307 + -0x1.p0, + -0x1.fffffcp-127 + }, + { // Entry 308 + 0.0, + 0x1.fffff8p-127 + }, + { // Entry 309 + -0x1.p0, + -0x1.fffff8p-127 + }, + { // Entry 310 + 0.0, + 0x1.p-148 + }, + { // Entry 311 + -0x1.p0, + -0x1.p-148 + }, + { // Entry 312 + 0.0, + 0x1.p-149 + }, + { // Entry 313 + -0x1.p0, + -0x1.p-149 + }, + { // Entry 314 + 0.0, + 0.0f + }, + { // Entry 315 + -0.0, + -0.0f + }, + { // Entry 316 + 0x1.p0, + 0x1.80p0 + }, + { // Entry 317 + -0x1.p1, + -0x1.80p0 + }, + { // Entry 318 + 0x1.p1, + 0x1.40p1 + }, + { // Entry 319 + -0x1.80p1, + -0x1.40p1 + }, + { // Entry 320 + 0.0, + 0x1.fffff0p-2 + }, + { // Entry 321 + 0.0, + 0x1.p-1 + }, + { // Entry 322 + 0.0, + 0x1.000010p-1 + }, + { // Entry 323 + -0x1.p0, + -0x1.fffff0p-2 + }, + { // Entry 324 + -0x1.p0, + -0x1.p-1 + }, + { // Entry 325 + -0x1.p0, + -0x1.000010p-1 + }, + { // Entry 326 + 0x1.p0, + 0x1.800010p0 + }, + { // Entry 327 + 0x1.p0, + 0x1.7ffff0p0 + }, + { // Entry 328 + -0x1.p1, + -0x1.800010p0 + }, + { // Entry 329 + -0x1.p1, + -0x1.7ffff0p0 + } +}; diff --git a/tests/math_data/fma_intel_data.h b/tests/math_data/fma_intel_data.h new file mode 100644 index 000000000..6f05997cd --- /dev/null +++ b/tests/math_data/fma_intel_data.h @@ -0,0 +1,13830 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_3_t g_fma_intel_data[] = { + { // Entry 0 + -0x1.e6666666666660p0, + 0x1.0p-1074, + -0x1.ccccccccccccdp-1, + -0x1.e666666666666p0 + }, + { // Entry 1 + 0x1.15f15f15f15edfffffffffffffffffffp-2, + 0x1.0p-1074, + -0x1.ccccccccccccdp-1, + 0x1.15f15f15f15eep-2 + }, + { // Entry 2 + 0x1.0000000000002fffffffffffffffffffp-41, + 0x1.0p-1074, + -0x1.e666666666666p-1, + 0x1.0000000000003p-41 + }, + { // Entry 3 + -0x1.e666666666665fffffffffffffffffffp0, + 0x1.0p-1074, + 0x1.0750750750756p-3, + -0x1.e666666666666p0 + }, + { // Entry 4 + 0x1.00000000000030p-41, + 0x1.0p-1074, + 0x1.4444444444430p-4, + 0x1.0000000000003p-41 + }, + { // Entry 5 + -0x1.f4ccccccccccc766666666666668p0, + 0x1.0000000000001p-4, + -0x1.ccccccccccccdp-1, + -0x1.e666666666666p0 + }, + { // Entry 6 + 0x1.1be9c07bef3aa00000000ca3acc0p0, + 0x1.333334be90b7dp-1, + 0x1.62e42fefa39efp-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 7 + 0x1.2da85c2c93416ffffffffd1b42c0p0, + 0x1.6666670f24aa5p-1, + 0x1.62e42fefa39efp-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 8 + 0x1.6ce999999999c802333333333480p16, + 0x1.8000000000001p4, + 0x1.e666666666669p11, + 0x1.ccccccccccccfp4 + }, + { // Entry 9 + 0x1.62b83c4461cc280000000001bc40p0, + 0x1.ff812e8bc2d1fp-1, + 0x1.62e42fefa39efp-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 10 + 0x1.0942b0df6a30e7ff3586fb5fb5p39, + 0x1.ffe7fffffffffp40, + 0x1.094f2094f2096p-2, + -0x1.ba2e8ba2e8ba2p-2 + }, + { // Entry 11 + 0x1.06fb586fb586f8p-51, + 0x1.ffffffffffffcp-1, + -0x1.8df6b0df6b0dfp-1, + 0x1.8df6b0df6b0e0p-1 + }, + { // Entry 12 + 0x1.ffffffffffff70000000000004p-1, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.fffffffffffffp-1 + }, + { // Entry 13 + 0x1.ffffffffffff80000000000004p-1, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 14 + 0x1.ffffffffffffa0000000000004p-1, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.0000000000001p0 + }, + { // Entry 15 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp1023, + -0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 16 + 0x1.p0, + 0x1.fffffffffffffp1023, + -0.0, + 0x1.0p0 + }, + { // Entry 17 + 0x1.00000000000010p0, + 0x1.fffffffffffffp1023, + -0.0, + 0x1.0000000000001p0 + }, + { // Entry 18 + 0x1.00000000000037fffffffffffep0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.fffffffffffffp-1 + }, + { // Entry 19 + 0x1.0000000000003ffffffffffffep0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 20 + 0x1.0000000000004ffffffffffffep0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.0000000000001p0 + }, + { // Entry 21 + 0x1.ffffffffffff70000000000008p-2, + 0x1.ffffffffffffep1022, + -0x1.0p-1074, + 0x1.fffffffffffffp-2 + }, + { // Entry 22 + 0x1.ffffffffffff80000000000008p-2, + 0x1.ffffffffffffep1022, + -0x1.0p-1074, + 0x1.0p-1 + }, + { // Entry 23 + 0x1.ffffffffffffa0000000000008p-2, + 0x1.ffffffffffffep1022, + -0x1.0p-1074, + 0x1.0000000000001p-1 + }, + { // Entry 24 + 0x1.fffffffffffff0p-2, + 0x1.ffffffffffffep1022, + -0.0, + 0x1.fffffffffffffp-2 + }, + { // Entry 25 + 0x1.p-1, + 0x1.ffffffffffffep1022, + -0.0, + 0x1.0p-1 + }, + { // Entry 26 + 0x1.00000000000010p-1, + 0x1.ffffffffffffep1022, + -0.0, + 0x1.0000000000001p-1 + }, + { // Entry 27 + 0x1.00000000000037fffffffffffcp-1, + 0x1.ffffffffffffep1022, + 0x1.0p-1074, + 0x1.fffffffffffffp-2 + }, + { // Entry 28 + 0x1.0000000000003ffffffffffffcp-1, + 0x1.ffffffffffffep1022, + 0x1.0p-1074, + 0x1.0p-1 + }, + { // Entry 29 + 0x1.0000000000004ffffffffffffcp-1, + 0x1.ffffffffffffep1022, + 0x1.0p-1074, + 0x1.0000000000001p-1 + }, + { // Entry 30 + 0x1.ffffffffffff70000000000004p-2, + 0x1.fffffffffffffp1022, + -0x1.0p-1074, + 0x1.fffffffffffffp-2 + }, + { // Entry 31 + 0x1.ffffffffffff80000000000004p-2, + 0x1.fffffffffffffp1022, + -0x1.0p-1074, + 0x1.0p-1 + }, + { // Entry 32 + 0x1.ffffffffffffa0000000000004p-2, + 0x1.fffffffffffffp1022, + -0x1.0p-1074, + 0x1.0000000000001p-1 + }, + { // Entry 33 + 0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp1022, + -0.0, + 0x1.fffffffffffffp-2 + }, + { // Entry 34 + 0x1.p-1, + 0x1.fffffffffffffp1022, + -0.0, + 0x1.0p-1 + }, + { // Entry 35 + 0x1.00000000000010p-1, + 0x1.fffffffffffffp1022, + -0.0, + 0x1.0000000000001p-1 + }, + { // Entry 36 + 0x1.00000000000037fffffffffffep-1, + 0x1.fffffffffffffp1022, + 0x1.0p-1074, + 0x1.fffffffffffffp-2 + }, + { // Entry 37 + 0x1.0000000000003ffffffffffffep-1, + 0x1.fffffffffffffp1022, + 0x1.0p-1074, + 0x1.0p-1 + }, + { // Entry 38 + 0x1.0000000000004ffffffffffffep-1, + 0x1.fffffffffffffp1022, + 0x1.0p-1074, + 0x1.0000000000001p-1 + }, + { // Entry 39 + 0x1.ffffffffffff70p-2, + 0x1.0p1023, + -0x1.0p-1074, + 0x1.fffffffffffffp-2 + }, + { // Entry 40 + 0x1.ffffffffffff80p-2, + 0x1.0p1023, + -0x1.0p-1074, + 0x1.0p-1 + }, + { // Entry 41 + 0x1.ffffffffffffa0p-2, + 0x1.0p1023, + -0x1.0p-1074, + 0x1.0000000000001p-1 + }, + { // Entry 42 + 0x1.fffffffffffff0p-2, + 0x1.0p1023, + -0.0, + 0x1.fffffffffffffp-2 + }, + { // Entry 43 + 0x1.p-1, + 0x1.0p1023, + -0.0, + 0x1.0p-1 + }, + { // Entry 44 + 0x1.00000000000010p-1, + 0x1.0p1023, + -0.0, + 0x1.0000000000001p-1 + }, + { // Entry 45 + 0x1.00000000000038p-1, + 0x1.0p1023, + 0x1.0p-1074, + 0x1.fffffffffffffp-2 + }, + { // Entry 46 + 0x1.00000000000040p-1, + 0x1.0p1023, + 0x1.0p-1074, + 0x1.0p-1 + }, + { // Entry 47 + 0x1.00000000000050p-1, + 0x1.0p1023, + 0x1.0p-1074, + 0x1.0000000000001p-1 + }, + { // Entry 48 + 0x1.ffffffffffffb0000000000004p-1, + 0x1.ffffffffffffep1022, + -0x1.0p-1074, + 0x1.fffffffffffffp-1 + }, + { // Entry 49 + 0x1.ffffffffffffc0000000000004p-1, + 0x1.ffffffffffffep1022, + -0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 50 + 0x1.ffffffffffffe0000000000004p-1, + 0x1.ffffffffffffep1022, + -0x1.0p-1074, + 0x1.0000000000001p0 + }, + { // Entry 51 + 0x1.fffffffffffff0p-1, + 0x1.ffffffffffffep1022, + -0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 52 + 0x1.p0, + 0x1.ffffffffffffep1022, + -0.0, + 0x1.0p0 + }, + { // Entry 53 + 0x1.00000000000010p0, + 0x1.ffffffffffffep1022, + -0.0, + 0x1.0000000000001p0 + }, + { // Entry 54 + 0x1.00000000000017fffffffffffep0, + 0x1.ffffffffffffep1022, + 0x1.0p-1074, + 0x1.fffffffffffffp-1 + }, + { // Entry 55 + 0x1.0000000000001ffffffffffffep0, + 0x1.ffffffffffffep1022, + 0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 56 + 0x1.0000000000002ffffffffffffep0, + 0x1.ffffffffffffep1022, + 0x1.0p-1074, + 0x1.0000000000001p0 + }, + { // Entry 57 + 0x1.ffffffffffffb0000000000002p-1, + 0x1.fffffffffffffp1022, + -0x1.0p-1074, + 0x1.fffffffffffffp-1 + }, + { // Entry 58 + 0x1.ffffffffffffc0000000000002p-1, + 0x1.fffffffffffffp1022, + -0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 59 + 0x1.ffffffffffffe0000000000002p-1, + 0x1.fffffffffffffp1022, + -0x1.0p-1074, + 0x1.0000000000001p0 + }, + { // Entry 60 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp1022, + -0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 61 + 0x1.p0, + 0x1.fffffffffffffp1022, + -0.0, + 0x1.0p0 + }, + { // Entry 62 + 0x1.00000000000010p0, + 0x1.fffffffffffffp1022, + -0.0, + 0x1.0000000000001p0 + }, + { // Entry 63 + 0x1.00000000000017ffffffffffffp0, + 0x1.fffffffffffffp1022, + 0x1.0p-1074, + 0x1.fffffffffffffp-1 + }, + { // Entry 64 + 0x1.0000000000001fffffffffffffp0, + 0x1.fffffffffffffp1022, + 0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 65 + 0x1.0000000000002fffffffffffffp0, + 0x1.fffffffffffffp1022, + 0x1.0p-1074, + 0x1.0000000000001p0 + }, + { // Entry 66 + 0x1.ffffffffffffb0p-1, + 0x1.0p1023, + -0x1.0p-1074, + 0x1.fffffffffffffp-1 + }, + { // Entry 67 + 0x1.ffffffffffffc0p-1, + 0x1.0p1023, + -0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 68 + 0x1.ffffffffffffe0p-1, + 0x1.0p1023, + -0x1.0p-1074, + 0x1.0000000000001p0 + }, + { // Entry 69 + 0x1.fffffffffffff0p-1, + 0x1.0p1023, + -0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 70 + 0x1.p0, + 0x1.0p1023, + -0.0, + 0x1.0p0 + }, + { // Entry 71 + 0x1.00000000000010p0, + 0x1.0p1023, + -0.0, + 0x1.0000000000001p0 + }, + { // Entry 72 + 0x1.00000000000018p0, + 0x1.0p1023, + 0x1.0p-1074, + 0x1.fffffffffffffp-1 + }, + { // Entry 73 + 0x1.00000000000020p0, + 0x1.0p1023, + 0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 74 + 0x1.00000000000030p0, + 0x1.0p1023, + 0x1.0p-1074, + 0x1.0000000000001p0 + }, + { // Entry 75 + 0x1.ffffffffffffe00000000000007fffffp-2, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 76 + 0x1.ffffffffffffe000000000000080p-2, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 77 + 0x1.ffffffffffffe000000000000080p-2, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 78 + 0x1.ffffffffffffefffffffffffffffffffp-2, + 0x1.fffffffffffffp-2, + 0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 79 + 0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp-2, + 0x1.0p0, + -0.0 + }, + { // Entry 80 + 0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp-2, + 0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 81 + 0x1.00000000000007ffffffffffff7fffffp-1, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 82 + 0x1.00000000000007ffffffffffff80p-1, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p0, + -0.0 + }, + { // Entry 83 + 0x1.00000000000007ffffffffffff80p-1, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 84 + 0x1.ffffffffffffefffffffffffffffffffp-2, + 0x1.0p-1, + 0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 85 + 0x1.fffffffffffff0p-2, + 0x1.0p-1, + 0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 86 + 0x1.fffffffffffff0p-2, + 0x1.0p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 87 + 0x1.ffffffffffffffffffffffffffffffffp-2, + 0x1.0p-1, + 0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 88 + 0x1.p-1, + 0x1.0p-1, + 0x1.0p0, + -0.0 + }, + { // Entry 89 + 0x1.p-1, + 0x1.0p-1, + 0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 90 + 0x1.0000000000000fffffffffffffffffffp-1, + 0x1.0p-1, + 0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 91 + 0x1.00000000000010p-1, + 0x1.0p-1, + 0x1.0000000000001p0, + -0.0 + }, + { // Entry 92 + 0x1.00000000000010p-1, + 0x1.0p-1, + 0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 93 + 0x1.00000000000007ffffffffffff7fffffp-1, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 94 + 0x1.00000000000007ffffffffffff80p-1, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 95 + 0x1.00000000000007ffffffffffff80p-1, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 96 + 0x1.0000000000000fffffffffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 97 + 0x1.00000000000010p-1, + 0x1.0000000000001p-1, + 0x1.0p0, + -0.0 + }, + { // Entry 98 + 0x1.00000000000010p-1, + 0x1.0000000000001p-1, + 0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 99 + 0x1.00000000000020000000000000ffffffp-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 100 + 0x1.00000000000020000000000001p-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p0, + -0.0 + }, + { // Entry 101 + 0x1.00000000000020000000000001p-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 102 + 0x1.0000000000000fffffffffffff40p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-53 + }, + { // Entry 103 + 0x1.0000000000001000000000000040p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.0p-52 + }, + { // Entry 104 + 0x1.0000000000001000000000000240p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-52 + }, + { // Entry 105 + 0x1.00000000000017ffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 106 + 0x1.00000000000018p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.0p-52 + }, + { // Entry 107 + 0x1.00000000000018000000000002p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.0000000000001p-52 + }, + { // Entry 108 + 0x1.00000000000027fffffffffffe80p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 109 + 0x1.00000000000027ffffffffffff80p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.0p-52 + }, + { // Entry 110 + 0x1.0000000000002800000000000180p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p-52 + }, + { // Entry 111 + 0x1.00000000000017ffffffffffffp-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-53 + }, + { // Entry 112 + 0x1.00000000000018p-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.0p-52 + }, + { // Entry 113 + 0x1.00000000000018000000000002p-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-52 + }, + { // Entry 114 + 0x1.0000000000001fffffffffffffp-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 115 + 0x1.00000000000020p-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.0p-52 + }, + { // Entry 116 + 0x1.00000000000020000000000002p-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.0000000000001p-52 + }, + { // Entry 117 + 0x1.0000000000002fffffffffffffp-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 118 + 0x1.00000000000030p-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.0p-52 + }, + { // Entry 119 + 0x1.00000000000030000000000002p-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.0000000000001p-52 + }, + { // Entry 120 + 0x1.00000000000027fffffffffffe80p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-53 + }, + { // Entry 121 + 0x1.00000000000027ffffffffffff80p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.0p-52 + }, + { // Entry 122 + 0x1.0000000000002800000000000180p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-52 + }, + { // Entry 123 + 0x1.0000000000002fffffffffffffp-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 124 + 0x1.00000000000030p-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.0p-52 + }, + { // Entry 125 + 0x1.00000000000030000000000002p-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.0000000000001p-52 + }, + { // Entry 126 + 0x1.00000000000040p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 127 + 0x1.00000000000040000000000001p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.0p-52 + }, + { // Entry 128 + 0x1.00000000000040000000000003p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.0000000000001p-52 + }, + { // Entry 129 + 0x1.0000000000000fffffffffffff40p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-53 + }, + { // Entry 130 + 0x1.0000000000001000000000000040p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.0p-52 + }, + { // Entry 131 + 0x1.0000000000001000000000000240p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-52 + }, + { // Entry 132 + 0x1.00000000000017ffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 133 + 0x1.00000000000018p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.0p-52 + }, + { // Entry 134 + 0x1.00000000000018000000000002p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.0000000000001p-52 + }, + { // Entry 135 + 0x1.00000000000027fffffffffffe80p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 136 + 0x1.00000000000027ffffffffffff80p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.0p-52 + }, + { // Entry 137 + 0x1.0000000000002800000000000180p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p-52 + }, + { // Entry 138 + 0x1.00000000000017ffffffffffffp-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-53 + }, + { // Entry 139 + 0x1.00000000000018p-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.0p-52 + }, + { // Entry 140 + 0x1.00000000000018000000000002p-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-52 + }, + { // Entry 141 + 0x1.0000000000001fffffffffffffp-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 142 + 0x1.00000000000020p-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.0p-52 + }, + { // Entry 143 + 0x1.00000000000020000000000002p-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.0000000000001p-52 + }, + { // Entry 144 + 0x1.0000000000002fffffffffffffp-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 145 + 0x1.00000000000030p-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.0p-52 + }, + { // Entry 146 + 0x1.00000000000030000000000002p-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.0000000000001p-52 + }, + { // Entry 147 + 0x1.00000000000027fffffffffffe80p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-53 + }, + { // Entry 148 + 0x1.00000000000027ffffffffffff80p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.0p-52 + }, + { // Entry 149 + 0x1.0000000000002800000000000180p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-52 + }, + { // Entry 150 + 0x1.0000000000002fffffffffffffp-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 151 + 0x1.00000000000030p-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.0p-52 + }, + { // Entry 152 + 0x1.00000000000030000000000002p-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.0000000000001p-52 + }, + { // Entry 153 + 0x1.00000000000040p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-53 + }, + { // Entry 154 + 0x1.00000000000040000000000001p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.0p-52 + }, + { // Entry 155 + 0x1.00000000000040000000000003p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.0000000000001p-52 + }, + { // Entry 156 + 0x1.0000000000006ffffffffffffc40p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-51 + }, + { // Entry 157 + 0x1.0000000000007000000000000040p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.0p-50 + }, + { // Entry 158 + 0x1.0000000000007000000000000840p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-50 + }, + { // Entry 159 + 0x1.00000000000077fffffffffffcp-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.fffffffffffffp-51 + }, + { // Entry 160 + 0x1.00000000000078p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.0p-50 + }, + { // Entry 161 + 0x1.00000000000078000000000008p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.0000000000001p-50 + }, + { // Entry 162 + 0x1.00000000000087fffffffffffb80p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-51 + }, + { // Entry 163 + 0x1.00000000000087ffffffffffff80p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.0p-50 + }, + { // Entry 164 + 0x1.0000000000008800000000000780p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p-50 + }, + { // Entry 165 + 0x1.00000000000077fffffffffffcp-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-51 + }, + { // Entry 166 + 0x1.00000000000078p-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.0p-50 + }, + { // Entry 167 + 0x1.00000000000078000000000008p-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-50 + }, + { // Entry 168 + 0x1.0000000000007ffffffffffffcp-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.fffffffffffffp-51 + }, + { // Entry 169 + 0x1.00000000000080p-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.0p-50 + }, + { // Entry 170 + 0x1.00000000000080000000000008p-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.0000000000001p-50 + }, + { // Entry 171 + 0x1.0000000000008ffffffffffffcp-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-51 + }, + { // Entry 172 + 0x1.00000000000090p-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.0p-50 + }, + { // Entry 173 + 0x1.00000000000090000000000008p-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.0000000000001p-50 + }, + { // Entry 174 + 0x1.00000000000087fffffffffffb80p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-51 + }, + { // Entry 175 + 0x1.00000000000087ffffffffffff80p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.0p-50 + }, + { // Entry 176 + 0x1.0000000000008800000000000780p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-50 + }, + { // Entry 177 + 0x1.0000000000008ffffffffffffcp-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.fffffffffffffp-51 + }, + { // Entry 178 + 0x1.00000000000090p-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.0p-50 + }, + { // Entry 179 + 0x1.00000000000090000000000008p-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.0000000000001p-50 + }, + { // Entry 180 + 0x1.0000000000009ffffffffffffdp-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-51 + }, + { // Entry 181 + 0x1.000000000000a0000000000001p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.0p-50 + }, + { // Entry 182 + 0x1.000000000000a0000000000009p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.0000000000001p-50 + }, + { // Entry 183 + 0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-55 + }, + { // Entry 184 + 0x1.fffffffffffff000000000000080p-2, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.0p-54 + }, + { // Entry 185 + 0x1.fffffffffffff000000000000180p-2, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-54 + }, + { // Entry 186 + 0x1.ffffffffffffffffffffffffff80p-2, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.fffffffffffffp-55 + }, + { // Entry 187 + 0x1.p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.0p-54 + }, + { // Entry 188 + 0x1.0000000000000000000000000080p-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1, + 0x1.0000000000001p-54 + }, + { // Entry 189 + 0x1.0000000000000fffffffffffff40p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-55 + }, + { // Entry 190 + 0x1.0000000000000fffffffffffff80p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.0p-54 + }, + { // Entry 191 + 0x1.00000000000010p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p-54 + }, + { // Entry 192 + 0x1.ffffffffffffffffffffffffff80p-2, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-55 + }, + { // Entry 193 + 0x1.p-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.0p-54 + }, + { // Entry 194 + 0x1.0000000000000000000000000080p-1, + 0x1.0p0, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-54 + }, + { // Entry 195 + 0x1.00000000000007ffffffffffffc0p-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.fffffffffffffp-55 + }, + { // Entry 196 + 0x1.00000000000008p-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.0p-54 + }, + { // Entry 197 + 0x1.0000000000000800000000000080p-1, + 0x1.0p0, + 0x1.0p-1, + 0x1.0000000000001p-54 + }, + { // Entry 198 + 0x1.00000000000017ffffffffffffc0p-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-55 + }, + { // Entry 199 + 0x1.00000000000018p-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.0p-54 + }, + { // Entry 200 + 0x1.0000000000001800000000000080p-1, + 0x1.0p0, + 0x1.0000000000001p-1, + 0x1.0000000000001p-54 + }, + { // Entry 201 + 0x1.0000000000000fffffffffffff40p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-55 + }, + { // Entry 202 + 0x1.0000000000000fffffffffffff80p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.0p-54 + }, + { // Entry 203 + 0x1.00000000000010p-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-54 + }, + { // Entry 204 + 0x1.00000000000017ffffffffffffc0p-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.fffffffffffffp-55 + }, + { // Entry 205 + 0x1.00000000000018p-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.0p-54 + }, + { // Entry 206 + 0x1.0000000000001800000000000080p-1, + 0x1.0000000000001p0, + 0x1.0p-1, + 0x1.0000000000001p-54 + }, + { // Entry 207 + 0x1.00000000000028000000000000c0p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-55 + }, + { // Entry 208 + 0x1.00000000000028000000000001p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.0p-54 + }, + { // Entry 209 + 0x1.0000000000002800000000000180p-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-1, + 0x1.0000000000001p-54 + }, + { // Entry 210 + 0x1.ffffffffffffe00000000000007fffffp1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 211 + 0x1.ffffffffffffe000000000000080p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 212 + 0x1.ffffffffffffe000000000000080p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 213 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 214 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p0, + -0.0 + }, + { // Entry 215 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 216 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 217 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0000000000001p0, + -0.0 + }, + { // Entry 218 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 219 + -0x1.fffffffffffff0p970, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp1023 + }, + { // Entry 220 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.0p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 221 + 0x1.fffffffffffff0p971, + 0x1.fffffffffffffp1023, + 0x1.0000000000001p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 222 + 0x1.ffffffffffffd0000000000000ffffffp1023, + 0x1.fffffffffffffp511, + 0x1.ffffffffffffep511, + -0x1.0p-1074 + }, + { // Entry 223 + 0x1.ffffffffffffd0000000000001p1023, + 0x1.fffffffffffffp511, + 0x1.ffffffffffffep511, + -0.0 + }, + { // Entry 224 + 0x1.ffffffffffffd0000000000001p1023, + 0x1.fffffffffffffp511, + 0x1.ffffffffffffep511, + 0x1.0p-1074 + }, + { // Entry 225 + 0x1.ffffffffffffe00000000000007fffffp1023, + 0x1.fffffffffffffp511, + 0x1.fffffffffffffp511, + -0x1.0p-1074 + }, + { // Entry 226 + 0x1.ffffffffffffe000000000000080p1023, + 0x1.fffffffffffffp511, + 0x1.fffffffffffffp511, + -0.0 + }, + { // Entry 227 + 0x1.ffffffffffffe000000000000080p1023, + 0x1.fffffffffffffp511, + 0x1.fffffffffffffp511, + 0x1.0p-1074 + }, + { // Entry 228 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp511, + 0x1.0p512, + -0x1.0p-1074 + }, + { // Entry 229 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp511, + 0x1.0p512, + -0.0 + }, + { // Entry 230 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp511, + 0x1.0p512, + 0x1.0p-1074 + }, + { // Entry 231 + -0x1.7ffffffffffff0p972, + 0x1.ffffffffffffep511, + 0x1.ffffffffffffep511, + -0x1.fffffffffffffp1023 + }, + { // Entry 232 + -0x1.fffffffffffff0p971, + 0x1.ffffffffffffep511, + 0x1.fffffffffffffp511, + -0x1.fffffffffffffp1023 + }, + { // Entry 233 + -0x1.p971, + 0x1.ffffffffffffep511, + 0x1.0p512, + -0x1.fffffffffffffp1023 + }, + { // Entry 234 + -0x1.fffffffffffff0p971, + 0x1.fffffffffffffp511, + 0x1.ffffffffffffep511, + -0x1.fffffffffffffp1023 + }, + { // Entry 235 + -0x1.fffffffffffff0p970, + 0x1.fffffffffffffp511, + 0x1.fffffffffffffp511, + -0x1.fffffffffffffp1023 + }, + { // Entry 236 + 0.0, + 0x1.fffffffffffffp511, + 0x1.0p512, + -0x1.fffffffffffffp1023 + }, + { // Entry 237 + -0x1.p971, + 0x1.0p512, + 0x1.ffffffffffffep511, + -0x1.fffffffffffffp1023 + }, + { // Entry 238 + 0.0, + 0x1.0p512, + 0x1.fffffffffffffp511, + -0x1.fffffffffffffp1023 + }, + { // Entry 239 + 0x1.p971, + 0x1.0p512, + 0x1.0p512, + -0x1.fffffffffffffp1023 + }, + { // Entry 240 + -0x1.ffffffffffffc0p970, + 0x1.ffffffffffffep1022, + -0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 241 + 0x1.p971, + 0x1.ffffffffffffep1022, + -0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 242 + 0x1.fffffffffffff0p971, + 0x1.ffffffffffffep1022, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 243 + -0x1.fffffffffffff0p971, + 0x1.fffffffffffffp1022, + -0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 244 + 0.0, + 0x1.fffffffffffffp1022, + -0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 245 + 0x1.fffffffffffff0p970, + 0x1.fffffffffffffp1022, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 246 + -0x1.80p972, + 0x1.0p1023, + -0x1.0000000000001p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 247 + -0x1.p971, + 0x1.0p1023, + -0x1.0p1, + 0x1.fffffffffffffp1023 + }, + { // Entry 248 + 0.0, + 0x1.0p1023, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp1023 + }, + { // Entry 249 + -HUGE_VAL, + 0x1.ffffffffffffep1022, + -0x1.0000000000001p1, + -0x1.0p-1074 + }, + { // Entry 250 + -HUGE_VAL, + 0x1.ffffffffffffep1022, + -0x1.0000000000001p1, + -0.0 + }, + { // Entry 251 + -HUGE_VAL, + 0x1.ffffffffffffep1022, + -0x1.0000000000001p1, + 0x1.0p-1074 + }, + { // Entry 252 + -0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1022, + -0x1.0p1, + -0x1.0p-1074 + }, + { // Entry 253 + -0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1022, + -0x1.0p1, + -0.0 + }, + { // Entry 254 + -0x1.ffffffffffffdfffffffffffffffffffp1023, + 0x1.ffffffffffffep1022, + -0x1.0p1, + 0x1.0p-1074 + }, + { // Entry 255 + -0x1.ffffffffffffd0000000000001p1023, + 0x1.ffffffffffffep1022, + -0x1.fffffffffffffp0, + -0x1.0p-1074 + }, + { // Entry 256 + -0x1.ffffffffffffd0000000000001p1023, + 0x1.ffffffffffffep1022, + -0x1.fffffffffffffp0, + -0.0 + }, + { // Entry 257 + -0x1.ffffffffffffd0000000000000ffffffp1023, + 0x1.ffffffffffffep1022, + -0x1.fffffffffffffp0, + 0x1.0p-1074 + }, + { // Entry 258 + -HUGE_VAL, + 0x1.fffffffffffffp1022, + -0x1.0000000000001p1, + -0x1.0p-1074 + }, + { // Entry 259 + -HUGE_VAL, + 0x1.fffffffffffffp1022, + -0x1.0000000000001p1, + -0.0 + }, + { // Entry 260 + -HUGE_VAL, + 0x1.fffffffffffffp1022, + -0x1.0000000000001p1, + 0x1.0p-1074 + }, + { // Entry 261 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1022, + -0x1.0p1, + -0x1.0p-1074 + }, + { // Entry 262 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1022, + -0x1.0p1, + -0.0 + }, + { // Entry 263 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1022, + -0x1.0p1, + 0x1.0p-1074 + }, + { // Entry 264 + -0x1.ffffffffffffe000000000000080p1023, + 0x1.fffffffffffffp1022, + -0x1.fffffffffffffp0, + -0x1.0p-1074 + }, + { // Entry 265 + -0x1.ffffffffffffe000000000000080p1023, + 0x1.fffffffffffffp1022, + -0x1.fffffffffffffp0, + -0.0 + }, + { // Entry 266 + -0x1.ffffffffffffe00000000000007fffffp1023, + 0x1.fffffffffffffp1022, + -0x1.fffffffffffffp0, + 0x1.0p-1074 + }, + { // Entry 267 + -HUGE_VAL, + 0x1.0p1023, + -0x1.0000000000001p1, + -0x1.0p-1074 + }, + { // Entry 268 + -HUGE_VAL, + 0x1.0p1023, + -0x1.0000000000001p1, + -0.0 + }, + { // Entry 269 + -HUGE_VAL, + 0x1.0p1023, + -0x1.0000000000001p1, + 0x1.0p-1074 + }, + { // Entry 270 + -HUGE_VAL, + 0x1.0p1023, + -0x1.0p1, + -0x1.0p-1074 + }, + { // Entry 271 + -HUGE_VAL, + 0x1.0p1023, + -0x1.0p1, + -0.0 + }, + { // Entry 272 + -HUGE_VAL, + 0x1.0p1023, + -0x1.0p1, + 0x1.0p-1074 + }, + { // Entry 273 + -0x1.fffffffffffff0p1023, + 0x1.0p1023, + -0x1.fffffffffffffp0, + -0x1.0p-1074 + }, + { // Entry 274 + -0x1.fffffffffffff0p1023, + 0x1.0p1023, + -0x1.fffffffffffffp0, + -0.0 + }, + { // Entry 275 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p1023, + -0x1.fffffffffffffp0, + 0x1.0p-1074 + }, + { // Entry 276 + 0x1.7fffffffffffe400000000000040p1023, + 0x1.ffffffffffffep1022, + 0x1.fffffffffffffp-2, + 0x1.ffffffffffffep1022 + }, + { // Entry 277 + 0x1.7fffffffffffec00000000000040p1023, + 0x1.ffffffffffffep1022, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp1022 + }, + { // Entry 278 + 0x1.7ffffffffffff400000000000040p1023, + 0x1.ffffffffffffep1022, + 0x1.fffffffffffffp-2, + 0x1.0p1023 + }, + { // Entry 279 + 0x1.7fffffffffffe8p1023, + 0x1.ffffffffffffep1022, + 0x1.0p-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 280 + 0x1.7ffffffffffff0p1023, + 0x1.ffffffffffffep1022, + 0x1.0p-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 281 + 0x1.7ffffffffffff8p1023, + 0x1.ffffffffffffep1022, + 0x1.0p-1, + 0x1.0p1023 + }, + { // Entry 282 + 0x1.7fffffffffffefffffffffffff80p1023, + 0x1.ffffffffffffep1022, + 0x1.0000000000001p-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 283 + 0x1.7ffffffffffff7ffffffffffff80p1023, + 0x1.ffffffffffffep1022, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 284 + 0x1.7fffffffffffffffffffffffff80p1023, + 0x1.ffffffffffffep1022, + 0x1.0000000000001p-1, + 0x1.0p1023 + }, + { // Entry 285 + 0x1.7fffffffffffe800000000000020p1023, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-2, + 0x1.ffffffffffffep1022 + }, + { // Entry 286 + 0x1.7ffffffffffff000000000000020p1023, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp1022 + }, + { // Entry 287 + 0x1.7ffffffffffff800000000000020p1023, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-2, + 0x1.0p1023 + }, + { // Entry 288 + 0x1.7fffffffffffecp1023, + 0x1.fffffffffffffp1022, + 0x1.0p-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 289 + 0x1.7ffffffffffff4p1023, + 0x1.fffffffffffffp1022, + 0x1.0p-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 290 + 0x1.7ffffffffffffcp1023, + 0x1.fffffffffffffp1022, + 0x1.0p-1, + 0x1.0p1023 + }, + { // Entry 291 + 0x1.7ffffffffffff3ffffffffffffc0p1023, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 292 + 0x1.7ffffffffffffbffffffffffffc0p1023, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 293 + 0x1.80000000000003ffffffffffffc0p1023, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p-1, + 0x1.0p1023 + }, + { // Entry 294 + 0x1.7fffffffffffecp1023, + 0x1.0p1023, + 0x1.fffffffffffffp-2, + 0x1.ffffffffffffep1022 + }, + { // Entry 295 + 0x1.7ffffffffffff4p1023, + 0x1.0p1023, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp1022 + }, + { // Entry 296 + 0x1.7ffffffffffffcp1023, + 0x1.0p1023, + 0x1.fffffffffffffp-2, + 0x1.0p1023 + }, + { // Entry 297 + 0x1.7ffffffffffff0p1023, + 0x1.0p1023, + 0x1.0p-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 298 + 0x1.7ffffffffffff8p1023, + 0x1.0p1023, + 0x1.0p-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 299 + 0x1.80p1023, + 0x1.0p1023, + 0x1.0p-1, + 0x1.0p1023 + }, + { // Entry 300 + 0x1.7ffffffffffff8p1023, + 0x1.0p1023, + 0x1.0000000000001p-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 301 + 0x1.80p1023, + 0x1.0p1023, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 302 + 0x1.80000000000008p1023, + 0x1.0p1023, + 0x1.0000000000001p-1, + 0x1.0p1023 + }, + { // Entry 303 + 0x1.ffffffffffffd800000000000080p1023, + 0x1.ffffffffffffep1022, + 0x1.fffffffffffffp-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 304 + 0x1.ffffffffffffe000000000000080p1023, + 0x1.ffffffffffffep1022, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 305 + 0x1.ffffffffffffe800000000000080p1023, + 0x1.ffffffffffffep1022, + 0x1.fffffffffffffp-1, + 0x1.0p1023 + }, + { // Entry 306 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1022, + 0x1.0p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 307 + 0x1.ffffffffffffe8p1023, + 0x1.ffffffffffffep1022, + 0x1.0p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 308 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep1022, + 0x1.0p0, + 0x1.0p1023 + }, + { // Entry 309 + 0x1.ffffffffffffefffffffffffffp1023, + 0x1.ffffffffffffep1022, + 0x1.0000000000001p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 310 + 0x1.fffffffffffff7ffffffffffffp1023, + 0x1.ffffffffffffep1022, + 0x1.0000000000001p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 311 + HUGE_VAL, + 0x1.ffffffffffffep1022, + 0x1.0000000000001p0, + 0x1.0p1023 + }, + { // Entry 312 + 0x1.ffffffffffffe000000000000040p1023, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 313 + 0x1.ffffffffffffe800000000000040p1023, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 314 + 0x1.fffffffffffff000000000000040p1023, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-1, + 0x1.0p1023 + }, + { // Entry 315 + 0x1.ffffffffffffe8p1023, + 0x1.fffffffffffffp1022, + 0x1.0p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 316 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1022, + 0x1.0p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 317 + HUGE_VAL, + 0x1.fffffffffffffp1022, + 0x1.0p0, + 0x1.0p1023 + }, + { // Entry 318 + 0x1.fffffffffffff7ffffffffffff80p1023, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 319 + HUGE_VAL, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 320 + HUGE_VAL, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p0, + 0x1.0p1023 + }, + { // Entry 321 + 0x1.ffffffffffffe8p1023, + 0x1.0p1023, + 0x1.fffffffffffffp-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 322 + 0x1.fffffffffffff0p1023, + 0x1.0p1023, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 323 + HUGE_VAL, + 0x1.0p1023, + 0x1.fffffffffffffp-1, + 0x1.0p1023 + }, + { // Entry 324 + 0x1.fffffffffffff0p1023, + 0x1.0p1023, + 0x1.0p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 325 + HUGE_VAL, + 0x1.0p1023, + 0x1.0p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 326 + HUGE_VAL, + 0x1.0p1023, + 0x1.0p0, + 0x1.0p1023 + }, + { // Entry 327 + HUGE_VAL, + 0x1.0p1023, + 0x1.0000000000001p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 328 + HUGE_VAL, + 0x1.0p1023, + 0x1.0000000000001p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 329 + HUGE_VAL, + 0x1.0p1023, + 0x1.0000000000001p0, + 0x1.0p1023 + }, + { // Entry 330 + 0x1.ffffffffffffd800000000000080p1023, + 0x1.ffffffffffffep1022, + 0x1.fffffffffffffp-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 331 + 0x1.ffffffffffffe000000000000080p1023, + 0x1.ffffffffffffep1022, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 332 + 0x1.ffffffffffffe800000000000080p1023, + 0x1.ffffffffffffep1022, + 0x1.fffffffffffffp-1, + 0x1.0p1023 + }, + { // Entry 333 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1022, + 0x1.0p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 334 + 0x1.ffffffffffffe8p1023, + 0x1.ffffffffffffep1022, + 0x1.0p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 335 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep1022, + 0x1.0p0, + 0x1.0p1023 + }, + { // Entry 336 + 0x1.ffffffffffffefffffffffffffp1023, + 0x1.ffffffffffffep1022, + 0x1.0000000000001p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 337 + 0x1.fffffffffffff7ffffffffffffp1023, + 0x1.ffffffffffffep1022, + 0x1.0000000000001p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 338 + HUGE_VAL, + 0x1.ffffffffffffep1022, + 0x1.0000000000001p0, + 0x1.0p1023 + }, + { // Entry 339 + 0x1.ffffffffffffe000000000000040p1023, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 340 + 0x1.ffffffffffffe800000000000040p1023, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 341 + 0x1.fffffffffffff000000000000040p1023, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-1, + 0x1.0p1023 + }, + { // Entry 342 + 0x1.ffffffffffffe8p1023, + 0x1.fffffffffffffp1022, + 0x1.0p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 343 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1022, + 0x1.0p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 344 + HUGE_VAL, + 0x1.fffffffffffffp1022, + 0x1.0p0, + 0x1.0p1023 + }, + { // Entry 345 + 0x1.fffffffffffff7ffffffffffff80p1023, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 346 + HUGE_VAL, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 347 + HUGE_VAL, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p0, + 0x1.0p1023 + }, + { // Entry 348 + 0x1.ffffffffffffe8p1023, + 0x1.0p1023, + 0x1.fffffffffffffp-1, + 0x1.ffffffffffffep1022 + }, + { // Entry 349 + 0x1.fffffffffffff0p1023, + 0x1.0p1023, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp1022 + }, + { // Entry 350 + HUGE_VAL, + 0x1.0p1023, + 0x1.fffffffffffffp-1, + 0x1.0p1023 + }, + { // Entry 351 + 0x1.fffffffffffff0p1023, + 0x1.0p1023, + 0x1.0p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 352 + HUGE_VAL, + 0x1.0p1023, + 0x1.0p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 353 + HUGE_VAL, + 0x1.0p1023, + 0x1.0p0, + 0x1.0p1023 + }, + { // Entry 354 + HUGE_VAL, + 0x1.0p1023, + 0x1.0000000000001p0, + 0x1.ffffffffffffep1022 + }, + { // Entry 355 + HUGE_VAL, + 0x1.0p1023, + 0x1.0000000000001p0, + 0x1.fffffffffffffp1022 + }, + { // Entry 356 + HUGE_VAL, + 0x1.0p1023, + 0x1.0000000000001p0, + 0x1.0p1023 + }, + { // Entry 357 + 0x1.ffffffffffffe800000000000040p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 358 + 0x1.fffffffffffff000000000000040p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 359 + 0x1.0000000000000000000000000020p1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 360 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-1, + 0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 361 + 0x1.fffffffffffff8p0, + 0x1.fffffffffffffp-1, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 362 + 0x1.00000000000004p1, + 0x1.fffffffffffffp-1, + 0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 363 + 0x1.ffffffffffffffffffffffffff80p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 364 + 0x1.00000000000003ffffffffffffc0p1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 365 + 0x1.0000000000000bffffffffffffc0p1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 366 + 0x1.fffffffffffff0p0, + 0x1.0p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 367 + 0x1.fffffffffffff8p0, + 0x1.0p0, + 0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 368 + 0x1.00000000000004p1, + 0x1.0p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 369 + 0x1.fffffffffffff8p0, + 0x1.0p0, + 0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 370 + 0x1.p1, + 0x1.0p0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 371 + 0x1.00000000000008p1, + 0x1.0p0, + 0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 372 + 0x1.00000000000004p1, + 0x1.0p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 373 + 0x1.00000000000008p1, + 0x1.0p0, + 0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 374 + 0x1.00000000000010p1, + 0x1.0p0, + 0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 375 + 0x1.ffffffffffffffffffffffffff80p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 376 + 0x1.00000000000003ffffffffffffc0p1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 377 + 0x1.0000000000000bffffffffffffc0p1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 378 + 0x1.00000000000004p1, + 0x1.0000000000001p0, + 0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 379 + 0x1.00000000000008p1, + 0x1.0000000000001p0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 380 + 0x1.00000000000010p1, + 0x1.0000000000001p0, + 0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 381 + 0x1.0000000000000c00000000000080p1, + 0x1.0000000000001p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 382 + 0x1.0000000000001000000000000080p1, + 0x1.0000000000001p0, + 0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 383 + 0x1.0000000000001800000000000080p1, + 0x1.0000000000001p0, + 0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 384 + -0x1.fffffffffffff0p-53, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 385 + -0x1.ffffffffffffe0p-54, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 386 + 0x1.00000000000010p-53, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 387 + 0.0, + 0x1.fffffffffffffp-1, + -0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 388 + 0x1.p-53, + 0x1.fffffffffffffp-1, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 389 + 0x1.80p-52, + 0x1.fffffffffffffp-1, + -0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 390 + 0x1.fffffffffffff0p-54, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 391 + 0x1.fffffffffffff8p-53, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 392 + 0x1.fffffffffffffcp-52, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 393 + -0x1.80p-52, + 0x1.0p0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 394 + -0x1.p-52, + 0x1.0p0, + -0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 395 + 0.0, + 0x1.0p0, + -0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 396 + -0x1.p-53, + 0x1.0p0, + -0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 397 + 0.0, + 0x1.0p0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 398 + 0x1.p-52, + 0x1.0p0, + -0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 399 + 0.0, + 0x1.0p0, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 400 + 0x1.p-53, + 0x1.0p0, + -0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 401 + 0x1.80p-52, + 0x1.0p0, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 402 + -0x1.40000000000008p-51, + 0x1.0000000000001p0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 403 + -0x1.00000000000008p-51, + 0x1.0000000000001p0, + -0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 404 + -0x1.00000000000010p-52, + 0x1.0000000000001p0, + -0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 405 + -0x1.80p-52, + 0x1.0000000000001p0, + -0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 406 + -0x1.p-52, + 0x1.0000000000001p0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 407 + 0.0, + 0x1.0000000000001p0, + -0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 408 + -0x1.fffffffffffff0p-53, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 409 + -0x1.ffffffffffffe0p-54, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 410 + 0x1.00000000000010p-53, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 411 + 0x1.ffffffffffffe00000000000007fffffp-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 412 + 0x1.ffffffffffffe000000000000080p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 413 + 0x1.ffffffffffffe000000000000080p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 414 + 0x1.ffffffffffffefffffffffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 415 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + 0x1.0p0, + -0.0 + }, + { // Entry 416 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + 0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 417 + 0x1.00000000000007ffffffffffff7fffffp0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 418 + 0x1.00000000000007ffffffffffff80p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0, + -0.0 + }, + { // Entry 419 + 0x1.00000000000007ffffffffffff80p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 420 + 0x1.ffffffffffffefffffffffffffffffffp-1, + 0x1.0p0, + 0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 421 + 0x1.fffffffffffff0p-1, + 0x1.0p0, + 0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 422 + 0x1.fffffffffffff0p-1, + 0x1.0p0, + 0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 423 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0p0, + 0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 424 + 0x1.p0, + 0x1.0p0, + 0x1.0p0, + -0.0 + }, + { // Entry 425 + 0x1.p0, + 0x1.0p0, + 0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 426 + 0x1.0000000000000fffffffffffffffffffp0, + 0x1.0p0, + 0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 427 + 0x1.00000000000010p0, + 0x1.0p0, + 0x1.0000000000001p0, + -0.0 + }, + { // Entry 428 + 0x1.00000000000010p0, + 0x1.0p0, + 0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 429 + 0x1.00000000000007ffffffffffff7fffffp0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 430 + 0x1.00000000000007ffffffffffff80p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 431 + 0x1.00000000000007ffffffffffff80p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 432 + 0x1.0000000000000fffffffffffffffffffp0, + 0x1.0000000000001p0, + 0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 433 + 0x1.00000000000010p0, + 0x1.0000000000001p0, + 0x1.0p0, + -0.0 + }, + { // Entry 434 + 0x1.00000000000010p0, + 0x1.0000000000001p0, + 0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 435 + 0x1.00000000000020000000000000ffffffp0, + 0x1.0000000000001p0, + 0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 436 + 0x1.00000000000020000000000001p0, + 0x1.0000000000001p0, + 0x1.0000000000001p0, + -0.0 + }, + { // Entry 437 + 0x1.00000000000020000000000001p0, + 0x1.0000000000001p0, + 0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 438 + -0x1.00000000000007ffffffffffff80p0, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 439 + -0x1.00000000000007ffffffffffff80p0, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0, + -0.0 + }, + { // Entry 440 + -0x1.00000000000007ffffffffffff7fffffp0, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 441 + -0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + -0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 442 + -0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + -0x1.0p0, + -0.0 + }, + { // Entry 443 + -0x1.ffffffffffffefffffffffffffffffffp-1, + 0x1.fffffffffffffp-1, + -0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 444 + -0x1.ffffffffffffe000000000000080p-1, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 445 + -0x1.ffffffffffffe000000000000080p-1, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 446 + -0x1.ffffffffffffe00000000000007fffffp-1, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 447 + -0x1.00000000000010p0, + 0x1.0p0, + -0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 448 + -0x1.00000000000010p0, + 0x1.0p0, + -0x1.0000000000001p0, + -0.0 + }, + { // Entry 449 + -0x1.0000000000000fffffffffffffffffffp0, + 0x1.0p0, + -0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 450 + -0x1.p0, + 0x1.0p0, + -0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 451 + -0x1.p0, + 0x1.0p0, + -0x1.0p0, + -0.0 + }, + { // Entry 452 + -0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0p0, + -0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 453 + -0x1.fffffffffffff0p-1, + 0x1.0p0, + -0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 454 + -0x1.fffffffffffff0p-1, + 0x1.0p0, + -0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 455 + -0x1.ffffffffffffefffffffffffffffffffp-1, + 0x1.0p0, + -0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 456 + -0x1.00000000000020000000000001p0, + 0x1.0000000000001p0, + -0x1.0000000000001p0, + -0x1.0p-1074 + }, + { // Entry 457 + -0x1.00000000000020000000000001p0, + 0x1.0000000000001p0, + -0x1.0000000000001p0, + -0.0 + }, + { // Entry 458 + -0x1.00000000000020000000000000ffffffp0, + 0x1.0000000000001p0, + -0x1.0000000000001p0, + 0x1.0p-1074 + }, + { // Entry 459 + -0x1.00000000000010p0, + 0x1.0000000000001p0, + -0x1.0p0, + -0x1.0p-1074 + }, + { // Entry 460 + -0x1.00000000000010p0, + 0x1.0000000000001p0, + -0x1.0p0, + -0.0 + }, + { // Entry 461 + -0x1.0000000000000fffffffffffffffffffp0, + 0x1.0000000000001p0, + -0x1.0p0, + 0x1.0p-1074 + }, + { // Entry 462 + -0x1.00000000000007ffffffffffff80p0, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1, + -0x1.0p-1074 + }, + { // Entry 463 + -0x1.00000000000007ffffffffffff80p0, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1, + -0.0 + }, + { // Entry 464 + -0x1.00000000000007ffffffffffff7fffffp0, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1, + 0x1.0p-1074 + }, + { // Entry 465 + 0x1.0000003fffffeffffffe00000040p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-27 + }, + { // Entry 466 + 0x1.0000003ffffff000000000000040p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.0p-26 + }, + { // Entry 467 + 0x1.0000003ffffff000000400000040p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-26 + }, + { // Entry 468 + 0x1.0000003ffffff7fffffep0, + 0x1.fffffffffffffp-1, + 0x1.0p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 469 + 0x1.0000003ffffff8p0, + 0x1.fffffffffffffp-1, + 0x1.0p0, + 0x1.0p-26 + }, + { // Entry 470 + 0x1.0000003ffffff8000004p0, + 0x1.fffffffffffffp-1, + 0x1.0p0, + 0x1.0000000000001p-26 + }, + { // Entry 471 + 0x1.00000040000007fffffdffffff80p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 472 + 0x1.00000040000007ffffffffffff80p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0, + 0x1.0p-26 + }, + { // Entry 473 + 0x1.00000040000008000003ffffff80p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0, + 0x1.0000000000001p-26 + }, + { // Entry 474 + 0x1.0000003ffffff7fffffep0, + 0x1.0p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-27 + }, + { // Entry 475 + 0x1.0000003ffffff8p0, + 0x1.0p0, + 0x1.fffffffffffffp-1, + 0x1.0p-26 + }, + { // Entry 476 + 0x1.0000003ffffff8000004p0, + 0x1.0p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-26 + }, + { // Entry 477 + 0x1.0000003ffffffffffffep0, + 0x1.0p0, + 0x1.0p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 478 + 0x1.00000040p0, + 0x1.0p0, + 0x1.0p0, + 0x1.0p-26 + }, + { // Entry 479 + 0x1.00000040000000000004p0, + 0x1.0p0, + 0x1.0p0, + 0x1.0000000000001p-26 + }, + { // Entry 480 + 0x1.0000004000000ffffffep0, + 0x1.0p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 481 + 0x1.00000040000010p0, + 0x1.0p0, + 0x1.0000000000001p0, + 0x1.0p-26 + }, + { // Entry 482 + 0x1.00000040000010000004p0, + 0x1.0p0, + 0x1.0000000000001p0, + 0x1.0000000000001p-26 + }, + { // Entry 483 + 0x1.00000040000007fffffdffffff80p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-27 + }, + { // Entry 484 + 0x1.00000040000007ffffffffffff80p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1, + 0x1.0p-26 + }, + { // Entry 485 + 0x1.00000040000008000003ffffff80p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p-26 + }, + { // Entry 486 + 0x1.0000004000000ffffffep0, + 0x1.0000000000001p0, + 0x1.0p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 487 + 0x1.00000040000010p0, + 0x1.0000000000001p0, + 0x1.0p0, + 0x1.0p-26 + }, + { // Entry 488 + 0x1.00000040000010000004p0, + 0x1.0000000000001p0, + 0x1.0p0, + 0x1.0000000000001p-26 + }, + { // Entry 489 + 0x1.0000004000001ffffffe000001p0, + 0x1.0000000000001p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 490 + 0x1.00000040000020000000000001p0, + 0x1.0000000000001p0, + 0x1.0000000000001p0, + 0x1.0p-26 + }, + { // Entry 491 + 0x1.00000040000020000004000001p0, + 0x1.0000000000001p0, + 0x1.0000000000001p0, + 0x1.0000000000001p-26 + }, + { // Entry 492 + -0x1.ffffff80000010000003ffffffp-1, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 493 + -0x1.ffffff8000000fffffffffffffp-1, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0, + 0x1.0p-26 + }, + { // Entry 494 + -0x1.ffffff8000000ffffff7ffffffp-1, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0, + 0x1.0000000000001p-26 + }, + { // Entry 495 + -0x1.ffffff7ffffff0000004p-1, + 0x1.fffffffffffffp-1, + -0x1.0p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 496 + -0x1.ffffff7ffffff0p-1, + 0x1.fffffffffffffp-1, + -0x1.0p0, + 0x1.0p-26 + }, + { // Entry 497 + -0x1.ffffff7fffffeffffff8p-1, + 0x1.fffffffffffffp-1, + -0x1.0p0, + 0x1.0000000000001p-26 + }, + { // Entry 498 + -0x1.ffffff7fffffe000000400000080p-1, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-27 + }, + { // Entry 499 + -0x1.ffffff7fffffe000000000000080p-1, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1, + 0x1.0p-26 + }, + { // Entry 500 + -0x1.ffffff7fffffdffffff800000080p-1, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p-26 + }, + { // Entry 501 + -0x1.ffffff80000020000004p-1, + 0x1.0p0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 502 + -0x1.ffffff80000020p-1, + 0x1.0p0, + -0x1.0000000000001p0, + 0x1.0p-26 + }, + { // Entry 503 + -0x1.ffffff8000001ffffff8p-1, + 0x1.0p0, + -0x1.0000000000001p0, + 0x1.0000000000001p-26 + }, + { // Entry 504 + -0x1.ffffff80000000000004p-1, + 0x1.0p0, + -0x1.0p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 505 + -0x1.ffffff80p-1, + 0x1.0p0, + -0x1.0p0, + 0x1.0p-26 + }, + { // Entry 506 + -0x1.ffffff7ffffffffffff8p-1, + 0x1.0p0, + -0x1.0p0, + 0x1.0000000000001p-26 + }, + { // Entry 507 + -0x1.ffffff7ffffff0000004p-1, + 0x1.0p0, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-27 + }, + { // Entry 508 + -0x1.ffffff7ffffff0p-1, + 0x1.0p0, + -0x1.fffffffffffffp-1, + 0x1.0p-26 + }, + { // Entry 509 + -0x1.ffffff7fffffeffffff8p-1, + 0x1.0p0, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p-26 + }, + { // Entry 510 + -0x1.ffffff80000040000004000002p-1, + 0x1.0000000000001p0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 511 + -0x1.ffffff80000040000000000002p-1, + 0x1.0000000000001p0, + -0x1.0000000000001p0, + 0x1.0p-26 + }, + { // Entry 512 + -0x1.ffffff8000003ffffff8000002p-1, + 0x1.0000000000001p0, + -0x1.0000000000001p0, + 0x1.0000000000001p-26 + }, + { // Entry 513 + -0x1.ffffff80000020000004p-1, + 0x1.0000000000001p0, + -0x1.0p0, + 0x1.fffffffffffffp-27 + }, + { // Entry 514 + -0x1.ffffff80000020p-1, + 0x1.0000000000001p0, + -0x1.0p0, + 0x1.0p-26 + }, + { // Entry 515 + -0x1.ffffff8000001ffffff8p-1, + 0x1.0000000000001p0, + -0x1.0p0, + 0x1.0000000000001p-26 + }, + { // Entry 516 + -0x1.ffffff80000010000003ffffffp-1, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-27 + }, + { // Entry 517 + -0x1.ffffff8000000fffffffffffffp-1, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1, + 0x1.0p-26 + }, + { // Entry 518 + -0x1.ffffff8000000ffffff7ffffffp-1, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p-26 + }, + { // Entry 519 + -0x1.fffffffffffffcp0, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p52 + }, + { // Entry 520 + -0x1.fffffffffffff8p-1, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1, + -0x1.0p52 + }, + { // Entry 521 + -0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp51 + }, + { // Entry 522 + -0x1.80p0, + 0x1.fffffffffffffp51, + 0x1.0p0, + -0x1.0000000000001p52 + }, + { // Entry 523 + -0x1.p-1, + 0x1.fffffffffffffp51, + 0x1.0p0, + -0x1.0p52 + }, + { // Entry 524 + 0.0, + 0x1.fffffffffffffp51, + 0x1.0p0, + -0x1.fffffffffffffp51 + }, + { // Entry 525 + -0x1.00000000000010p-1, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0, + -0x1.0000000000001p52 + }, + { // Entry 526 + 0x1.ffffffffffffe0p-2, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0, + -0x1.0p52 + }, + { // Entry 527 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0, + -0x1.fffffffffffffp51 + }, + { // Entry 528 + -0x1.80p0, + 0x1.0p52, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p52 + }, + { // Entry 529 + -0x1.p-1, + 0x1.0p52, + 0x1.fffffffffffffp-1, + -0x1.0p52 + }, + { // Entry 530 + 0.0, + 0x1.0p52, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp51 + }, + { // Entry 531 + -0x1.p0, + 0x1.0p52, + 0x1.0p0, + -0x1.0000000000001p52 + }, + { // Entry 532 + 0.0, + 0x1.0p52, + 0x1.0p0, + -0x1.0p52 + }, + { // Entry 533 + 0x1.p-1, + 0x1.0p52, + 0x1.0p0, + -0x1.fffffffffffffp51 + }, + { // Entry 534 + 0.0, + 0x1.0p52, + 0x1.0000000000001p0, + -0x1.0000000000001p52 + }, + { // Entry 535 + 0x1.p0, + 0x1.0p52, + 0x1.0000000000001p0, + -0x1.0p52 + }, + { // Entry 536 + 0x1.80p0, + 0x1.0p52, + 0x1.0000000000001p0, + -0x1.fffffffffffffp51 + }, + { // Entry 537 + -0x1.00000000000010p-1, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p52 + }, + { // Entry 538 + 0x1.ffffffffffffe0p-2, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1, + -0x1.0p52 + }, + { // Entry 539 + 0x1.fffffffffffff0p-1, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp51 + }, + { // Entry 540 + 0.0, + 0x1.0000000000001p52, + 0x1.0p0, + -0x1.0000000000001p52 + }, + { // Entry 541 + 0x1.p0, + 0x1.0000000000001p52, + 0x1.0p0, + -0x1.0p52 + }, + { // Entry 542 + 0x1.80p0, + 0x1.0000000000001p52, + 0x1.0p0, + -0x1.fffffffffffffp51 + }, + { // Entry 543 + 0x1.00000000000010p0, + 0x1.0000000000001p52, + 0x1.0000000000001p0, + -0x1.0000000000001p52 + }, + { // Entry 544 + 0x1.00000000000008p1, + 0x1.0000000000001p52, + 0x1.0000000000001p0, + -0x1.0p52 + }, + { // Entry 545 + 0x1.40000000000008p1, + 0x1.0000000000001p52, + 0x1.0000000000001p0, + -0x1.fffffffffffffp51 + }, + { // Entry 546 + 0x1.08p-5, + 0x1.0p-5, + 0x1.0p-5, + 0x1.0p-5 + }, + { // Entry 547 + 0x1.0040p0, + 0x1.0p-5, + 0x1.0p-5, + 0x1.0p0 + }, + { // Entry 548 + 0x1.p-4, + 0x1.0p-5, + 0x1.0p0, + 0x1.0p-5 + }, + { // Entry 549 + 0x1.08p0, + 0x1.0p-5, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 550 + 0x1.p-4, + 0x1.0p0, + 0x1.0p-5, + 0x1.0p-5 + }, + { // Entry 551 + 0x1.08p0, + 0x1.0p0, + 0x1.0p-5, + 0x1.0p0 + }, + { // Entry 552 + 0x1.08p0, + 0x1.0p0, + 0x1.0p0, + 0x1.0p-5 + }, + { // Entry 553 + 0x1.p1, + 0x1.0p0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 554 + 0x1.20p-2, + 0x1.0p-5, + 0x1.0p3, + 0x1.0p-5 + }, + { // Entry 555 + 0x1.40p0, + 0x1.0p-5, + 0x1.0p3, + 0x1.0p0 + }, + { // Entry 556 + 0x1.08p0, + 0x1.0p-5, + 0x1.0p5, + 0x1.0p-5 + }, + { // Entry 557 + 0x1.p1, + 0x1.0p-5, + 0x1.0p5, + 0x1.0p0 + }, + { // Entry 558 + 0x1.01p3, + 0x1.0p0, + 0x1.0p3, + 0x1.0p-5 + }, + { // Entry 559 + 0x1.20p3, + 0x1.0p0, + 0x1.0p3, + 0x1.0p0 + }, + { // Entry 560 + 0x1.0040p5, + 0x1.0p0, + 0x1.0p5, + 0x1.0p-5 + }, + { // Entry 561 + 0x1.08p5, + 0x1.0p0, + 0x1.0p5, + 0x1.0p0 + }, + { // Entry 562 + 0x1.0040p5, + 0x1.0p-5, + 0x1.0p10, + 0x1.0p-5 + }, + { // Entry 563 + 0x1.08p5, + 0x1.0p-5, + 0x1.0p10, + 0x1.0p0 + }, + { // Entry 564 + 0x1.0010p7, + 0x1.0p-5, + 0x1.0p12, + 0x1.0p-5 + }, + { // Entry 565 + 0x1.02p7, + 0x1.0p-5, + 0x1.0p12, + 0x1.0p0 + }, + { // Entry 566 + 0x1.0002p10, + 0x1.0p0, + 0x1.0p10, + 0x1.0p-5 + }, + { // Entry 567 + 0x1.0040p10, + 0x1.0p0, + 0x1.0p10, + 0x1.0p0 + }, + { // Entry 568 + 0x1.000080p12, + 0x1.0p0, + 0x1.0p12, + 0x1.0p-5 + }, + { // Entry 569 + 0x1.0010p12, + 0x1.0p0, + 0x1.0p12, + 0x1.0p0 + }, + { // Entry 570 + 0x1.0008p3, + 0x1.0p-5, + 0x1.0p-5, + 0x1.0p3 + }, + { // Entry 571 + 0x1.0002p5, + 0x1.0p-5, + 0x1.0p-5, + 0x1.0p5 + }, + { // Entry 572 + 0x1.01p3, + 0x1.0p-5, + 0x1.0p0, + 0x1.0p3 + }, + { // Entry 573 + 0x1.0040p5, + 0x1.0p-5, + 0x1.0p0, + 0x1.0p5 + }, + { // Entry 574 + 0x1.01p3, + 0x1.0p0, + 0x1.0p-5, + 0x1.0p3 + }, + { // Entry 575 + 0x1.0040p5, + 0x1.0p0, + 0x1.0p-5, + 0x1.0p5 + }, + { // Entry 576 + 0x1.20p3, + 0x1.0p0, + 0x1.0p0, + 0x1.0p3 + }, + { // Entry 577 + 0x1.08p5, + 0x1.0p0, + 0x1.0p0, + 0x1.0p5 + }, + { // Entry 578 + 0x1.08p3, + 0x1.0p-5, + 0x1.0p3, + 0x1.0p3 + }, + { // Entry 579 + 0x1.02p5, + 0x1.0p-5, + 0x1.0p3, + 0x1.0p5 + }, + { // Entry 580 + 0x1.20p3, + 0x1.0p-5, + 0x1.0p5, + 0x1.0p3 + }, + { // Entry 581 + 0x1.08p5, + 0x1.0p-5, + 0x1.0p5, + 0x1.0p5 + }, + { // Entry 582 + 0x1.p4, + 0x1.0p0, + 0x1.0p3, + 0x1.0p3 + }, + { // Entry 583 + 0x1.40p5, + 0x1.0p0, + 0x1.0p3, + 0x1.0p5 + }, + { // Entry 584 + 0x1.40p5, + 0x1.0p0, + 0x1.0p5, + 0x1.0p3 + }, + { // Entry 585 + 0x1.p6, + 0x1.0p0, + 0x1.0p5, + 0x1.0p5 + }, + { // Entry 586 + 0x1.40p5, + 0x1.0p-5, + 0x1.0p10, + 0x1.0p3 + }, + { // Entry 587 + 0x1.p6, + 0x1.0p-5, + 0x1.0p10, + 0x1.0p5 + }, + { // Entry 588 + 0x1.10p7, + 0x1.0p-5, + 0x1.0p12, + 0x1.0p3 + }, + { // Entry 589 + 0x1.40p7, + 0x1.0p-5, + 0x1.0p12, + 0x1.0p5 + }, + { // Entry 590 + 0x1.02p10, + 0x1.0p0, + 0x1.0p10, + 0x1.0p3 + }, + { // Entry 591 + 0x1.08p10, + 0x1.0p0, + 0x1.0p10, + 0x1.0p5 + }, + { // Entry 592 + 0x1.0080p12, + 0x1.0p0, + 0x1.0p12, + 0x1.0p3 + }, + { // Entry 593 + 0x1.02p12, + 0x1.0p0, + 0x1.0p12, + 0x1.0p5 + }, + { // Entry 594 + 0x1.000010p10, + 0x1.0p-5, + 0x1.0p-5, + 0x1.0p10 + }, + { // Entry 595 + 0x1.000004p12, + 0x1.0p-5, + 0x1.0p-5, + 0x1.0p12 + }, + { // Entry 596 + 0x1.0002p10, + 0x1.0p-5, + 0x1.0p0, + 0x1.0p10 + }, + { // Entry 597 + 0x1.000080p12, + 0x1.0p-5, + 0x1.0p0, + 0x1.0p12 + }, + { // Entry 598 + 0x1.0002p10, + 0x1.0p0, + 0x1.0p-5, + 0x1.0p10 + }, + { // Entry 599 + 0x1.000080p12, + 0x1.0p0, + 0x1.0p-5, + 0x1.0p12 + }, + { // Entry 600 + 0x1.0040p10, + 0x1.0p0, + 0x1.0p0, + 0x1.0p10 + }, + { // Entry 601 + 0x1.0010p12, + 0x1.0p0, + 0x1.0p0, + 0x1.0p12 + }, + { // Entry 602 + 0x1.0010p10, + 0x1.0p-5, + 0x1.0p3, + 0x1.0p10 + }, + { // Entry 603 + 0x1.0004p12, + 0x1.0p-5, + 0x1.0p3, + 0x1.0p12 + }, + { // Entry 604 + 0x1.0040p10, + 0x1.0p-5, + 0x1.0p5, + 0x1.0p10 + }, + { // Entry 605 + 0x1.0010p12, + 0x1.0p-5, + 0x1.0p5, + 0x1.0p12 + }, + { // Entry 606 + 0x1.02p10, + 0x1.0p0, + 0x1.0p3, + 0x1.0p10 + }, + { // Entry 607 + 0x1.0080p12, + 0x1.0p0, + 0x1.0p3, + 0x1.0p12 + }, + { // Entry 608 + 0x1.08p10, + 0x1.0p0, + 0x1.0p5, + 0x1.0p10 + }, + { // Entry 609 + 0x1.02p12, + 0x1.0p0, + 0x1.0p5, + 0x1.0p12 + }, + { // Entry 610 + 0x1.08p10, + 0x1.0p-5, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 611 + 0x1.02p12, + 0x1.0p-5, + 0x1.0p10, + 0x1.0p12 + }, + { // Entry 612 + 0x1.20p10, + 0x1.0p-5, + 0x1.0p12, + 0x1.0p10 + }, + { // Entry 613 + 0x1.08p12, + 0x1.0p-5, + 0x1.0p12, + 0x1.0p12 + }, + { // Entry 614 + 0x1.p11, + 0x1.0p0, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 615 + 0x1.40p12, + 0x1.0p0, + 0x1.0p10, + 0x1.0p12 + }, + { // Entry 616 + 0x1.40p12, + 0x1.0p0, + 0x1.0p12, + 0x1.0p10 + }, + { // Entry 617 + 0x1.p13, + 0x1.0p0, + 0x1.0p12, + 0x1.0p12 + }, + { // Entry 618 + 0x1.0020p6, + 0x1.0p3, + 0x1.0p3, + 0x1.0p-5 + }, + { // Entry 619 + 0x1.04p6, + 0x1.0p3, + 0x1.0p3, + 0x1.0p0 + }, + { // Entry 620 + 0x1.0008p8, + 0x1.0p3, + 0x1.0p5, + 0x1.0p-5 + }, + { // Entry 621 + 0x1.01p8, + 0x1.0p3, + 0x1.0p5, + 0x1.0p0 + }, + { // Entry 622 + 0x1.0008p8, + 0x1.0p5, + 0x1.0p3, + 0x1.0p-5 + }, + { // Entry 623 + 0x1.01p8, + 0x1.0p5, + 0x1.0p3, + 0x1.0p0 + }, + { // Entry 624 + 0x1.0002p10, + 0x1.0p5, + 0x1.0p5, + 0x1.0p-5 + }, + { // Entry 625 + 0x1.0040p10, + 0x1.0p5, + 0x1.0p5, + 0x1.0p0 + }, + { // Entry 626 + 0x1.20p6, + 0x1.0p3, + 0x1.0p3, + 0x1.0p3 + }, + { // Entry 627 + 0x1.80p6, + 0x1.0p3, + 0x1.0p3, + 0x1.0p5 + }, + { // Entry 628 + 0x1.08p8, + 0x1.0p3, + 0x1.0p5, + 0x1.0p3 + }, + { // Entry 629 + 0x1.20p8, + 0x1.0p3, + 0x1.0p5, + 0x1.0p5 + }, + { // Entry 630 + 0x1.08p8, + 0x1.0p5, + 0x1.0p3, + 0x1.0p3 + }, + { // Entry 631 + 0x1.20p8, + 0x1.0p5, + 0x1.0p3, + 0x1.0p5 + }, + { // Entry 632 + 0x1.02p10, + 0x1.0p5, + 0x1.0p5, + 0x1.0p3 + }, + { // Entry 633 + 0x1.08p10, + 0x1.0p5, + 0x1.0p5, + 0x1.0p5 + }, + { // Entry 634 + 0x1.10p10, + 0x1.0p3, + 0x1.0p3, + 0x1.0p10 + }, + { // Entry 635 + 0x1.04p12, + 0x1.0p3, + 0x1.0p3, + 0x1.0p12 + }, + { // Entry 636 + 0x1.40p10, + 0x1.0p3, + 0x1.0p5, + 0x1.0p10 + }, + { // Entry 637 + 0x1.10p12, + 0x1.0p3, + 0x1.0p5, + 0x1.0p12 + }, + { // Entry 638 + 0x1.40p10, + 0x1.0p5, + 0x1.0p3, + 0x1.0p10 + }, + { // Entry 639 + 0x1.10p12, + 0x1.0p5, + 0x1.0p3, + 0x1.0p12 + }, + { // Entry 640 + 0x1.p11, + 0x1.0p5, + 0x1.0p5, + 0x1.0p10 + }, + { // Entry 641 + 0x1.40p12, + 0x1.0p5, + 0x1.0p5, + 0x1.0p12 + }, + { // Entry 642 + 0x1.000040p13, + 0x1.0p3, + 0x1.0p10, + 0x1.0p-5 + }, + { // Entry 643 + 0x1.0008p13, + 0x1.0p3, + 0x1.0p10, + 0x1.0p0 + }, + { // Entry 644 + 0x1.000010p15, + 0x1.0p3, + 0x1.0p12, + 0x1.0p-5 + }, + { // Entry 645 + 0x1.0002p15, + 0x1.0p3, + 0x1.0p12, + 0x1.0p0 + }, + { // Entry 646 + 0x1.000010p15, + 0x1.0p5, + 0x1.0p10, + 0x1.0p-5 + }, + { // Entry 647 + 0x1.0002p15, + 0x1.0p5, + 0x1.0p10, + 0x1.0p0 + }, + { // Entry 648 + 0x1.000004p17, + 0x1.0p5, + 0x1.0p12, + 0x1.0p-5 + }, + { // Entry 649 + 0x1.000080p17, + 0x1.0p5, + 0x1.0p12, + 0x1.0p0 + }, + { // Entry 650 + 0x1.0040p13, + 0x1.0p3, + 0x1.0p10, + 0x1.0p3 + }, + { // Entry 651 + 0x1.01p13, + 0x1.0p3, + 0x1.0p10, + 0x1.0p5 + }, + { // Entry 652 + 0x1.0010p15, + 0x1.0p3, + 0x1.0p12, + 0x1.0p3 + }, + { // Entry 653 + 0x1.0040p15, + 0x1.0p3, + 0x1.0p12, + 0x1.0p5 + }, + { // Entry 654 + 0x1.0010p15, + 0x1.0p5, + 0x1.0p10, + 0x1.0p3 + }, + { // Entry 655 + 0x1.0040p15, + 0x1.0p5, + 0x1.0p10, + 0x1.0p5 + }, + { // Entry 656 + 0x1.0004p17, + 0x1.0p5, + 0x1.0p12, + 0x1.0p3 + }, + { // Entry 657 + 0x1.0010p17, + 0x1.0p5, + 0x1.0p12, + 0x1.0p5 + }, + { // Entry 658 + 0x1.20p13, + 0x1.0p3, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 659 + 0x1.80p13, + 0x1.0p3, + 0x1.0p10, + 0x1.0p12 + }, + { // Entry 660 + 0x1.08p15, + 0x1.0p3, + 0x1.0p12, + 0x1.0p10 + }, + { // Entry 661 + 0x1.20p15, + 0x1.0p3, + 0x1.0p12, + 0x1.0p12 + }, + { // Entry 662 + 0x1.08p15, + 0x1.0p5, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 663 + 0x1.20p15, + 0x1.0p5, + 0x1.0p10, + 0x1.0p12 + }, + { // Entry 664 + 0x1.02p17, + 0x1.0p5, + 0x1.0p12, + 0x1.0p10 + }, + { // Entry 665 + 0x1.08p17, + 0x1.0p5, + 0x1.0p12, + 0x1.0p12 + }, + { // Entry 666 + -0x1.ffffe0p-21, + -0x1.0p-20, + -0x1.0p-20, + -0x1.0p-20 + }, + { // Entry 667 + 0x1.000010p-20, + -0x1.0p-20, + -0x1.0p-20, + 0x1.0p-20 + }, + { // Entry 668 + -0x1.000010p-20, + -0x1.0p-20, + 0x1.0p-20, + -0x1.0p-20 + }, + { // Entry 669 + 0x1.ffffe0p-21, + -0x1.0p-20, + 0x1.0p-20, + 0x1.0p-20 + }, + { // Entry 670 + -0x1.000010p-20, + 0x1.0p-20, + -0x1.0p-20, + -0x1.0p-20 + }, + { // Entry 671 + 0x1.ffffe0p-21, + 0x1.0p-20, + -0x1.0p-20, + 0x1.0p-20 + }, + { // Entry 672 + -0x1.ffffe0p-21, + 0x1.0p-20, + 0x1.0p-20, + -0x1.0p-20 + }, + { // Entry 673 + 0x1.000010p-20, + 0x1.0p-20, + 0x1.0p-20, + 0x1.0p-20 + }, + { // Entry 674 + 0x1.fffffffffffffffffffep-21, + -0x1.0p-10, + -0x1.0p-10, + -0x1.0p-100 + }, + { // Entry 675 + 0x1.00000000000000000001p-20, + -0x1.0p-10, + -0x1.0p-10, + 0x1.0p-100 + }, + { // Entry 676 + -0x1.00000000000000000001p-20, + -0x1.0p-10, + 0x1.0p-10, + -0x1.0p-100 + }, + { // Entry 677 + -0x1.fffffffffffffffffffep-21, + -0x1.0p-10, + 0x1.0p-10, + 0x1.0p-100 + }, + { // Entry 678 + -0x1.00000000000000000001p-20, + 0x1.0p-10, + -0x1.0p-10, + -0x1.0p-100 + }, + { // Entry 679 + -0x1.fffffffffffffffffffep-21, + 0x1.0p-10, + -0x1.0p-10, + 0x1.0p-100 + }, + { // Entry 680 + 0x1.fffffffffffffffffffep-21, + 0x1.0p-10, + 0x1.0p-10, + -0x1.0p-100 + }, + { // Entry 681 + 0x1.00000000000000000001p-20, + 0x1.0p-10, + 0x1.0p-10, + 0x1.0p-100 + }, + { // Entry 682 + 0x1.f0p-11, + -0x1.0p-5, + -0x1.0p-5, + -0x1.0p-15 + }, + { // Entry 683 + 0x1.08p-10, + -0x1.0p-5, + -0x1.0p-5, + 0x1.0p-15 + }, + { // Entry 684 + -0x1.08p-10, + -0x1.0p-5, + 0x1.0p-5, + -0x1.0p-15 + }, + { // Entry 685 + -0x1.f0p-11, + -0x1.0p-5, + 0x1.0p-5, + 0x1.0p-15 + }, + { // Entry 686 + -0x1.08p-10, + 0x1.0p-5, + -0x1.0p-5, + -0x1.0p-15 + }, + { // Entry 687 + -0x1.f0p-11, + 0x1.0p-5, + -0x1.0p-5, + 0x1.0p-15 + }, + { // Entry 688 + 0x1.f0p-11, + 0x1.0p-5, + 0x1.0p-5, + -0x1.0p-15 + }, + { // Entry 689 + 0x1.08p-10, + 0x1.0p-5, + 0x1.0p-5, + 0x1.0p-15 + }, + { // Entry 690 + 0x1.68p6, + -0x1.4p3, + -0x1.4p3, + -0x1.4p3 + }, + { // Entry 691 + 0x1.b8p6, + -0x1.4p3, + -0x1.4p3, + 0x1.4p3 + }, + { // Entry 692 + -0x1.b8p6, + -0x1.4p3, + 0x1.4p3, + -0x1.4p3 + }, + { // Entry 693 + -0x1.68p6, + -0x1.4p3, + 0x1.4p3, + 0x1.4p3 + }, + { // Entry 694 + -0x1.b8p6, + 0x1.4p3, + -0x1.4p3, + -0x1.4p3 + }, + { // Entry 695 + -0x1.68p6, + 0x1.4p3, + -0x1.4p3, + 0x1.4p3 + }, + { // Entry 696 + 0x1.68p6, + 0x1.4p3, + 0x1.4p3, + -0x1.4p3 + }, + { // Entry 697 + 0x1.b8p6, + 0x1.4p3, + 0x1.4p3, + 0x1.4p3 + }, + { // Entry 698 + 0.0, + -0x1.0p0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 699 + 0x1.p1, + -0x1.0p0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 700 + -0x1.p1, + -0x1.0p0, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 701 + 0.0, + -0x1.0p0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 702 + -0x1.p1, + 0x1.0p0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 703 + 0.0, + 0x1.0p0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 704 + 0.0, + 0x1.0p0, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 705 + 0x1.p1, + 0x1.0p0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 706 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 707 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 708 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 709 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 710 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 711 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 712 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 713 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 714 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 715 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + 0.0 + }, + { // Entry 716 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL, + -0.0 + }, + { // Entry 717 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 718 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 719 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 720 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 721 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 722 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 723 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 724 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 725 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 726 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + 0.0 + }, + { // Entry 727 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL, + -0.0 + }, + { // Entry 728 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 729 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 730 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 731 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 732 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 733 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 734 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 735 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 736 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 737 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 738 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 739 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 740 + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 741 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 742 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 743 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 744 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 745 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 746 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 747 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 748 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 749 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 750 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 751 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 752 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 753 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 754 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 755 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 756 + 0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 757 + 0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 758 + 0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 759 + 0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 760 + 0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 761 + 0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 762 + 0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0.0 + }, + { // Entry 763 + 0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0.0 + }, + { // Entry 764 + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 765 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 766 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 767 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 768 + -0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 769 + -0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 770 + -0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 771 + -0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 772 + -0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 773 + -0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 774 + -0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0.0 + }, + { // Entry 775 + -0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0.0 + }, + { // Entry 776 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 777 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 778 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 779 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 780 + 0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 781 + 0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 782 + 0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 783 + 0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 784 + 0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 785 + 0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 786 + 0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 787 + 0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 788 + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 789 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 790 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 791 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 792 + -0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 793 + -0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 794 + -0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 795 + -0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 796 + -0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 797 + -0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 798 + -0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 799 + -0x1.ffffffffffffd0000000000001p1, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 800 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 801 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 802 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 803 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 804 + 0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 805 + 0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 806 + 0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 807 + 0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 808 + 0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 809 + 0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 810 + 0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0.0 + }, + { // Entry 811 + 0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0.0 + }, + { // Entry 812 + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 813 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 814 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 815 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 816 + -0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 817 + -0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 818 + -0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 819 + -0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 820 + -0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 821 + -0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 822 + -0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0.0 + }, + { // Entry 823 + -0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0.0 + }, + { // Entry 824 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0.0, + HUGE_VAL + }, + { // Entry 825 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0.0, + -HUGE_VAL + }, + { // Entry 826 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 827 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 828 + 0x1.p-1022, + 0x1.fffffffffffffp1023, + 0.0, + 0x1.0p-1022 + }, + { // Entry 829 + -0x1.p-1022, + 0x1.fffffffffffffp1023, + 0.0, + -0x1.0p-1022 + }, + { // Entry 830 + 0x1.ffffffffffffe0p-1023, + 0x1.fffffffffffffp1023, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 831 + -0x1.ffffffffffffe0p-1023, + 0x1.fffffffffffffp1023, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 832 + 0x1.p-1074, + 0x1.fffffffffffffp1023, + 0.0, + 0x1.0p-1074 + }, + { // Entry 833 + -0x1.p-1074, + 0x1.fffffffffffffp1023, + 0.0, + -0x1.0p-1074 + }, + { // Entry 834 + 0.0, + 0x1.fffffffffffffp1023, + 0.0, + 0.0 + }, + { // Entry 835 + 0.0, + 0x1.fffffffffffffp1023, + 0.0, + -0.0 + }, + { // Entry 836 + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0.0, + HUGE_VAL + }, + { // Entry 837 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0.0, + -HUGE_VAL + }, + { // Entry 838 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 839 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 840 + 0x1.p-1022, + 0x1.fffffffffffffp1023, + -0.0, + 0x1.0p-1022 + }, + { // Entry 841 + -0x1.p-1022, + 0x1.fffffffffffffp1023, + -0.0, + -0x1.0p-1022 + }, + { // Entry 842 + 0x1.ffffffffffffe0p-1023, + 0x1.fffffffffffffp1023, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 843 + -0x1.ffffffffffffe0p-1023, + 0x1.fffffffffffffp1023, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 844 + 0x1.p-1074, + 0x1.fffffffffffffp1023, + -0.0, + 0x1.0p-1074 + }, + { // Entry 845 + -0x1.p-1074, + 0x1.fffffffffffffp1023, + -0.0, + -0x1.0p-1074 + }, + { // Entry 846 + 0.0, + 0x1.fffffffffffffp1023, + -0.0, + 0.0 + }, + { // Entry 847 + -0.0, + 0x1.fffffffffffffp1023, + -0.0, + -0.0 + }, + { // Entry 848 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 849 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 850 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 851 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 852 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 853 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 854 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 855 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 856 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 857 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + 0.0 + }, + { // Entry 858 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL, + -0.0 + }, + { // Entry 859 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 860 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 861 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 862 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 863 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 864 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 865 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 866 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 867 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 868 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + 0.0 + }, + { // Entry 869 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL, + -0.0 + }, + { // Entry 870 + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 871 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 872 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 873 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 874 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 875 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 876 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 877 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 878 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 879 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 880 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 881 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 882 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 883 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 884 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 885 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 886 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 887 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 888 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 889 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 890 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 891 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 892 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 893 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 894 + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 895 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 896 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 897 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 898 + -0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 899 + -0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 900 + -0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 901 + -0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 902 + -0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 903 + -0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 904 + -0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + 0.0 + }, + { // Entry 905 + -0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + 0x1.0p-1022, + -0.0 + }, + { // Entry 906 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 907 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 908 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 909 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 910 + 0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 911 + 0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 912 + 0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 913 + 0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 914 + 0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 915 + 0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 916 + 0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + 0.0 + }, + { // Entry 917 + 0x1.fffffffffffff0p1, + -0x1.fffffffffffffp1023, + -0x1.0p-1022, + -0.0 + }, + { // Entry 918 + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 919 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 920 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 921 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 922 + -0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 923 + -0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 924 + -0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 925 + -0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 926 + -0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 927 + -0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 928 + -0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 929 + -0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 930 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 931 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 932 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 933 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 934 + 0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 935 + 0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 936 + 0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 937 + 0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 938 + 0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 939 + 0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 940 + 0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 941 + 0x1.ffffffffffffd0000000000001p1, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 942 + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 943 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 944 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 945 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 946 + -0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 947 + -0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 948 + -0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 949 + -0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 950 + -0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 951 + -0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 952 + -0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + 0.0 + }, + { // Entry 953 + -0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + 0x1.0p-1074, + -0.0 + }, + { // Entry 954 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 955 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 956 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 957 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 958 + 0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 959 + 0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 960 + 0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 961 + 0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 962 + 0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 963 + 0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 964 + 0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + 0.0 + }, + { // Entry 965 + 0x1.fffffffffffff0p-51, + -0x1.fffffffffffffp1023, + -0x1.0p-1074, + -0.0 + }, + { // Entry 966 + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0.0, + HUGE_VAL + }, + { // Entry 967 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0.0, + -HUGE_VAL + }, + { // Entry 968 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 969 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 970 + 0x1.p-1022, + -0x1.fffffffffffffp1023, + 0.0, + 0x1.0p-1022 + }, + { // Entry 971 + -0x1.p-1022, + -0x1.fffffffffffffp1023, + 0.0, + -0x1.0p-1022 + }, + { // Entry 972 + 0x1.ffffffffffffe0p-1023, + -0x1.fffffffffffffp1023, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 973 + -0x1.ffffffffffffe0p-1023, + -0x1.fffffffffffffp1023, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 974 + 0x1.p-1074, + -0x1.fffffffffffffp1023, + 0.0, + 0x1.0p-1074 + }, + { // Entry 975 + -0x1.p-1074, + -0x1.fffffffffffffp1023, + 0.0, + -0x1.0p-1074 + }, + { // Entry 976 + 0.0, + -0x1.fffffffffffffp1023, + 0.0, + 0.0 + }, + { // Entry 977 + -0.0, + -0x1.fffffffffffffp1023, + 0.0, + -0.0 + }, + { // Entry 978 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0.0, + HUGE_VAL + }, + { // Entry 979 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0.0, + -HUGE_VAL + }, + { // Entry 980 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 981 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 982 + 0x1.p-1022, + -0x1.fffffffffffffp1023, + -0.0, + 0x1.0p-1022 + }, + { // Entry 983 + -0x1.p-1022, + -0x1.fffffffffffffp1023, + -0.0, + -0x1.0p-1022 + }, + { // Entry 984 + 0x1.ffffffffffffe0p-1023, + -0x1.fffffffffffffp1023, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 985 + -0x1.ffffffffffffe0p-1023, + -0x1.fffffffffffffp1023, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 986 + 0x1.p-1074, + -0x1.fffffffffffffp1023, + -0.0, + 0x1.0p-1074 + }, + { // Entry 987 + -0x1.p-1074, + -0x1.fffffffffffffp1023, + -0.0, + -0x1.0p-1074 + }, + { // Entry 988 + 0.0, + -0x1.fffffffffffffp1023, + -0.0, + 0.0 + }, + { // Entry 989 + 0.0, + -0x1.fffffffffffffp1023, + -0.0, + -0.0 + }, + { // Entry 990 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 991 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 992 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 993 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 994 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 995 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 996 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 997 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 998 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 999 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + 0.0 + }, + { // Entry 1000 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL, + -0.0 + }, + { // Entry 1001 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 1002 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1003 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1004 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1005 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1006 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1007 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1008 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1009 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1010 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + 0.0 + }, + { // Entry 1011 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL, + -0.0 + }, + { // Entry 1012 + HUGE_VAL, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1013 + -HUGE_VAL, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1014 + 0x1.fffffffffffff0p1023, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1015 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1016 + 0x1.fffffffffffff0p1, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1017 + 0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1018 + 0x1.fffffffffffff0p1, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1019 + 0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1020 + 0x1.fffffffffffff0p1, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1021 + 0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1022 + 0x1.fffffffffffff0p1, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1023 + 0x1.fffffffffffff0p1, + 0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1024 + HUGE_VAL, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1025 + -HUGE_VAL, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1026 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1027 + -0x1.fffffffffffff0p1023, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1028 + -0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1029 + -0x1.fffffffffffff0p1, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1030 + -0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1031 + -0x1.fffffffffffff0p1, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1032 + -0x1.ffffffffffffefffffffffffffffffffp1, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1033 + -0x1.fffffffffffff0p1, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1034 + -0x1.fffffffffffff0p1, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1035 + -0x1.fffffffffffff0p1, + 0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1036 + HUGE_VAL, + 0x1.0p-1022, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1037 + -HUGE_VAL, + 0x1.0p-1022, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1038 + 0x1.fffffffffffff0p1023, + 0x1.0p-1022, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1039 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1022, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1040 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1041 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1042 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1043 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1022, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1044 + 0x1.p-1074, + 0x1.0p-1022, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1045 + -0.0, + 0x1.0p-1022, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1046 + 0.0, + 0x1.0p-1022, + 0x1.0p-1022, + 0.0 + }, + { // Entry 1047 + 0.0, + 0x1.0p-1022, + 0x1.0p-1022, + -0.0 + }, + { // Entry 1048 + HUGE_VAL, + 0x1.0p-1022, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1049 + -HUGE_VAL, + 0x1.0p-1022, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1050 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1022, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1051 + -0x1.fffffffffffff0p1023, + 0x1.0p-1022, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1052 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1053 + -0x1.p-1022, + 0x1.0p-1022, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1054 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1022, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1055 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1056 + 0.0, + 0x1.0p-1022, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1057 + -0x1.p-1074, + 0x1.0p-1022, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1058 + -0.0, + 0x1.0p-1022, + -0x1.0p-1022, + 0.0 + }, + { // Entry 1059 + -0.0, + 0x1.0p-1022, + -0x1.0p-1022, + -0.0 + }, + { // Entry 1060 + HUGE_VAL, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1061 + -HUGE_VAL, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1062 + 0x1.fffffffffffff0p1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1063 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1064 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1065 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1066 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1067 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1068 + 0x1.p-1074, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1069 + -0.0, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1070 + 0.0, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1071 + 0.0, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1072 + HUGE_VAL, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1073 + -HUGE_VAL, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1074 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1075 + -0x1.fffffffffffff0p1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1076 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1077 + -0x1.p-1022, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1078 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1079 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1080 + 0.0, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1081 + -0x1.p-1074, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1082 + -0.0, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1083 + -0.0, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1084 + HUGE_VAL, + 0x1.0p-1022, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1085 + -HUGE_VAL, + 0x1.0p-1022, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1086 + 0x1.fffffffffffff0p1023, + 0x1.0p-1022, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1087 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1022, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1088 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1089 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1090 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1091 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1022, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1092 + 0x1.p-1074, + 0x1.0p-1022, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1093 + -0.0, + 0x1.0p-1022, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1094 + 0.0, + 0x1.0p-1022, + 0x1.0p-1074, + 0.0 + }, + { // Entry 1095 + 0.0, + 0x1.0p-1022, + 0x1.0p-1074, + -0.0 + }, + { // Entry 1096 + HUGE_VAL, + 0x1.0p-1022, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1097 + -HUGE_VAL, + 0x1.0p-1022, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1098 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1022, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1099 + -0x1.fffffffffffff0p1023, + 0x1.0p-1022, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1100 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1101 + -0x1.p-1022, + 0x1.0p-1022, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1102 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1022, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1103 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1104 + 0.0, + 0x1.0p-1022, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1105 + -0x1.p-1074, + 0x1.0p-1022, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1106 + -0.0, + 0x1.0p-1022, + -0x1.0p-1074, + 0.0 + }, + { // Entry 1107 + -0.0, + 0x1.0p-1022, + -0x1.0p-1074, + -0.0 + }, + { // Entry 1108 + HUGE_VAL, + 0x1.0p-1022, + 0.0, + HUGE_VAL + }, + { // Entry 1109 + -HUGE_VAL, + 0x1.0p-1022, + 0.0, + -HUGE_VAL + }, + { // Entry 1110 + 0x1.fffffffffffff0p1023, + 0x1.0p-1022, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1111 + -0x1.fffffffffffff0p1023, + 0x1.0p-1022, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1112 + 0x1.p-1022, + 0x1.0p-1022, + 0.0, + 0x1.0p-1022 + }, + { // Entry 1113 + -0x1.p-1022, + 0x1.0p-1022, + 0.0, + -0x1.0p-1022 + }, + { // Entry 1114 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1115 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1116 + 0x1.p-1074, + 0x1.0p-1022, + 0.0, + 0x1.0p-1074 + }, + { // Entry 1117 + -0x1.p-1074, + 0x1.0p-1022, + 0.0, + -0x1.0p-1074 + }, + { // Entry 1118 + 0.0, + 0x1.0p-1022, + 0.0, + 0.0 + }, + { // Entry 1119 + 0.0, + 0x1.0p-1022, + 0.0, + -0.0 + }, + { // Entry 1120 + HUGE_VAL, + 0x1.0p-1022, + -0.0, + HUGE_VAL + }, + { // Entry 1121 + -HUGE_VAL, + 0x1.0p-1022, + -0.0, + -HUGE_VAL + }, + { // Entry 1122 + 0x1.fffffffffffff0p1023, + 0x1.0p-1022, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1123 + -0x1.fffffffffffff0p1023, + 0x1.0p-1022, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1124 + 0x1.p-1022, + 0x1.0p-1022, + -0.0, + 0x1.0p-1022 + }, + { // Entry 1125 + -0x1.p-1022, + 0x1.0p-1022, + -0.0, + -0x1.0p-1022 + }, + { // Entry 1126 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1127 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1128 + 0x1.p-1074, + 0x1.0p-1022, + -0.0, + 0x1.0p-1074 + }, + { // Entry 1129 + -0x1.p-1074, + 0x1.0p-1022, + -0.0, + -0x1.0p-1074 + }, + { // Entry 1130 + 0.0, + 0x1.0p-1022, + -0.0, + 0.0 + }, + { // Entry 1131 + -0.0, + 0x1.0p-1022, + -0.0, + -0.0 + }, + { // Entry 1132 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 1133 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1134 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1135 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1136 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1137 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1138 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1139 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1140 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1141 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + 0.0 + }, + { // Entry 1142 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL, + -0.0 + }, + { // Entry 1143 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 1144 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1145 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1146 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1147 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1148 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1149 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1150 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1151 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1152 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + 0.0 + }, + { // Entry 1153 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL, + -0.0 + }, + { // Entry 1154 + HUGE_VAL, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1155 + -HUGE_VAL, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1156 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1157 + -0x1.fffffffffffff0p1023, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1158 + -0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1159 + -0x1.fffffffffffff0p1, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1160 + -0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1161 + -0x1.fffffffffffff0p1, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1162 + -0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1163 + -0x1.fffffffffffff0p1, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1164 + -0x1.fffffffffffff0p1, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1165 + -0x1.fffffffffffff0p1, + -0x1.0p-1022, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1166 + HUGE_VAL, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1167 + -HUGE_VAL, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1168 + 0x1.fffffffffffff0p1023, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1169 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1170 + 0x1.fffffffffffff0p1, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1171 + 0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1172 + 0x1.fffffffffffff0p1, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1173 + 0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1174 + 0x1.fffffffffffff0p1, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1175 + 0x1.ffffffffffffefffffffffffffffffffp1, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1176 + 0x1.fffffffffffff0p1, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1177 + 0x1.fffffffffffff0p1, + -0x1.0p-1022, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1178 + HUGE_VAL, + -0x1.0p-1022, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1179 + -HUGE_VAL, + -0x1.0p-1022, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1180 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1022, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1181 + -0x1.fffffffffffff0p1023, + -0x1.0p-1022, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1182 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1183 + -0x1.p-1022, + -0x1.0p-1022, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1184 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1022, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1185 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1186 + 0.0, + -0x1.0p-1022, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1187 + -0x1.p-1074, + -0x1.0p-1022, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1188 + -0.0, + -0x1.0p-1022, + 0x1.0p-1022, + 0.0 + }, + { // Entry 1189 + -0.0, + -0x1.0p-1022, + 0x1.0p-1022, + -0.0 + }, + { // Entry 1190 + HUGE_VAL, + -0x1.0p-1022, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1191 + -HUGE_VAL, + -0x1.0p-1022, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1192 + 0x1.fffffffffffff0p1023, + -0x1.0p-1022, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1193 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1022, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1194 + 0x1.p-1022, + -0x1.0p-1022, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1195 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1196 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1197 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1022, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1198 + 0x1.p-1074, + -0x1.0p-1022, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1199 + -0.0, + -0x1.0p-1022, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1200 + 0.0, + -0x1.0p-1022, + -0x1.0p-1022, + 0.0 + }, + { // Entry 1201 + 0.0, + -0x1.0p-1022, + -0x1.0p-1022, + -0.0 + }, + { // Entry 1202 + HUGE_VAL, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1203 + -HUGE_VAL, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1204 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1205 + -0x1.fffffffffffff0p1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1206 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1207 + -0x1.p-1022, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1208 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1209 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1210 + 0.0, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1211 + -0x1.p-1074, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1212 + -0.0, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1213 + -0.0, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1214 + HUGE_VAL, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1215 + -HUGE_VAL, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1216 + 0x1.fffffffffffff0p1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1217 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1218 + 0x1.p-1022, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1219 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1220 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1221 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1222 + 0x1.p-1074, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1223 + -0.0, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1224 + 0.0, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1225 + 0.0, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1226 + HUGE_VAL, + -0x1.0p-1022, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1227 + -HUGE_VAL, + -0x1.0p-1022, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1228 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1022, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1229 + -0x1.fffffffffffff0p1023, + -0x1.0p-1022, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1230 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1231 + -0x1.p-1022, + -0x1.0p-1022, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1232 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1022, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1233 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1234 + 0.0, + -0x1.0p-1022, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1235 + -0x1.p-1074, + -0x1.0p-1022, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1236 + -0.0, + -0x1.0p-1022, + 0x1.0p-1074, + 0.0 + }, + { // Entry 1237 + -0.0, + -0x1.0p-1022, + 0x1.0p-1074, + -0.0 + }, + { // Entry 1238 + HUGE_VAL, + -0x1.0p-1022, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1239 + -HUGE_VAL, + -0x1.0p-1022, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1240 + 0x1.fffffffffffff0p1023, + -0x1.0p-1022, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1241 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1022, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1242 + 0x1.p-1022, + -0x1.0p-1022, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1243 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1244 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1245 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1022, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1246 + 0x1.p-1074, + -0x1.0p-1022, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1247 + -0.0, + -0x1.0p-1022, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1248 + 0.0, + -0x1.0p-1022, + -0x1.0p-1074, + 0.0 + }, + { // Entry 1249 + 0.0, + -0x1.0p-1022, + -0x1.0p-1074, + -0.0 + }, + { // Entry 1250 + HUGE_VAL, + -0x1.0p-1022, + 0.0, + HUGE_VAL + }, + { // Entry 1251 + -HUGE_VAL, + -0x1.0p-1022, + 0.0, + -HUGE_VAL + }, + { // Entry 1252 + 0x1.fffffffffffff0p1023, + -0x1.0p-1022, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1253 + -0x1.fffffffffffff0p1023, + -0x1.0p-1022, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1254 + 0x1.p-1022, + -0x1.0p-1022, + 0.0, + 0x1.0p-1022 + }, + { // Entry 1255 + -0x1.p-1022, + -0x1.0p-1022, + 0.0, + -0x1.0p-1022 + }, + { // Entry 1256 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1257 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1258 + 0x1.p-1074, + -0x1.0p-1022, + 0.0, + 0x1.0p-1074 + }, + { // Entry 1259 + -0x1.p-1074, + -0x1.0p-1022, + 0.0, + -0x1.0p-1074 + }, + { // Entry 1260 + 0.0, + -0x1.0p-1022, + 0.0, + 0.0 + }, + { // Entry 1261 + -0.0, + -0x1.0p-1022, + 0.0, + -0.0 + }, + { // Entry 1262 + HUGE_VAL, + -0x1.0p-1022, + -0.0, + HUGE_VAL + }, + { // Entry 1263 + -HUGE_VAL, + -0x1.0p-1022, + -0.0, + -HUGE_VAL + }, + { // Entry 1264 + 0x1.fffffffffffff0p1023, + -0x1.0p-1022, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1265 + -0x1.fffffffffffff0p1023, + -0x1.0p-1022, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1266 + 0x1.p-1022, + -0x1.0p-1022, + -0.0, + 0x1.0p-1022 + }, + { // Entry 1267 + -0x1.p-1022, + -0x1.0p-1022, + -0.0, + -0x1.0p-1022 + }, + { // Entry 1268 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1269 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1270 + 0x1.p-1074, + -0x1.0p-1022, + -0.0, + 0x1.0p-1074 + }, + { // Entry 1271 + -0x1.p-1074, + -0x1.0p-1022, + -0.0, + -0x1.0p-1074 + }, + { // Entry 1272 + 0.0, + -0x1.0p-1022, + -0.0, + 0.0 + }, + { // Entry 1273 + 0.0, + -0x1.0p-1022, + -0.0, + -0.0 + }, + { // Entry 1274 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 1275 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1276 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1277 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1278 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1279 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1280 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1281 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1282 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1283 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + 0.0 + }, + { // Entry 1284 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL, + -0.0 + }, + { // Entry 1285 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 1286 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1287 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1288 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1289 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1290 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1291 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1292 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1293 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1294 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0.0 + }, + { // Entry 1295 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0.0 + }, + { // Entry 1296 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1297 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1298 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1299 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1300 + 0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1301 + 0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1302 + 0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1303 + 0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1304 + 0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1305 + 0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1306 + 0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1307 + 0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1308 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1309 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1310 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1311 + -0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1312 + -0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1313 + -0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1314 + -0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1315 + -0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1316 + -0x1.ffffffffffffd0000000000000ffffffp1, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1317 + -0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1318 + -0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1319 + -0x1.ffffffffffffd0000000000001p1, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1320 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1321 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1322 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1323 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1324 + 0x1.p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1325 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1326 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1327 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1328 + 0x1.p-1074, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1329 + -0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1330 + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0.0 + }, + { // Entry 1331 + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0.0 + }, + { // Entry 1332 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1333 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1334 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1335 + -0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1336 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1337 + -0x1.p-1022, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1338 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1339 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1340 + 0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1341 + -0x1.p-1074, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1342 + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0.0 + }, + { // Entry 1343 + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0.0 + }, + { // Entry 1344 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1345 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1346 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1347 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1348 + 0x1.p-1022, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1349 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1350 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1351 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1352 + 0x1.p-1074, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1353 + -0.0, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1354 + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1355 + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1356 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1357 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1358 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1359 + -0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1360 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1361 + -0x1.p-1022, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1362 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1363 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1364 + 0.0, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1365 + -0x1.p-1074, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1366 + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1367 + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1368 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1369 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1370 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1371 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1372 + 0x1.p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1373 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1374 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1375 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1376 + 0x1.p-1074, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1377 + -0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1378 + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0.0 + }, + { // Entry 1379 + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0.0 + }, + { // Entry 1380 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1381 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1382 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1383 + -0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1384 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1385 + -0x1.p-1022, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1386 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1387 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1388 + 0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1389 + -0x1.p-1074, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1390 + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0.0 + }, + { // Entry 1391 + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0.0 + }, + { // Entry 1392 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0.0, + HUGE_VAL + }, + { // Entry 1393 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0.0, + -HUGE_VAL + }, + { // Entry 1394 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1395 + -0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1396 + 0x1.p-1022, + 0x1.ffffffffffffep-1023, + 0.0, + 0x1.0p-1022 + }, + { // Entry 1397 + -0x1.p-1022, + 0x1.ffffffffffffep-1023, + 0.0, + -0x1.0p-1022 + }, + { // Entry 1398 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1399 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1400 + 0x1.p-1074, + 0x1.ffffffffffffep-1023, + 0.0, + 0x1.0p-1074 + }, + { // Entry 1401 + -0x1.p-1074, + 0x1.ffffffffffffep-1023, + 0.0, + -0x1.0p-1074 + }, + { // Entry 1402 + 0.0, + 0x1.ffffffffffffep-1023, + 0.0, + 0.0 + }, + { // Entry 1403 + 0.0, + 0x1.ffffffffffffep-1023, + 0.0, + -0.0 + }, + { // Entry 1404 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0.0, + HUGE_VAL + }, + { // Entry 1405 + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0.0, + -HUGE_VAL + }, + { // Entry 1406 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1407 + -0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep-1023, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1408 + 0x1.p-1022, + 0x1.ffffffffffffep-1023, + -0.0, + 0x1.0p-1022 + }, + { // Entry 1409 + -0x1.p-1022, + 0x1.ffffffffffffep-1023, + -0.0, + -0x1.0p-1022 + }, + { // Entry 1410 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1411 + -0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1412 + 0x1.p-1074, + 0x1.ffffffffffffep-1023, + -0.0, + 0x1.0p-1074 + }, + { // Entry 1413 + -0x1.p-1074, + 0x1.ffffffffffffep-1023, + -0.0, + -0x1.0p-1074 + }, + { // Entry 1414 + 0.0, + 0x1.ffffffffffffep-1023, + -0.0, + 0.0 + }, + { // Entry 1415 + -0.0, + 0x1.ffffffffffffep-1023, + -0.0, + -0.0 + }, + { // Entry 1416 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 1417 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1418 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1419 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1420 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1421 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1422 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1423 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1424 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1425 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + 0.0 + }, + { // Entry 1426 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL, + -0.0 + }, + { // Entry 1427 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 1428 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1429 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1430 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1431 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1432 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1433 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1434 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1435 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1436 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + 0.0 + }, + { // Entry 1437 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL, + -0.0 + }, + { // Entry 1438 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1439 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1440 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1441 + -0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1442 + -0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1443 + -0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1444 + -0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1445 + -0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1446 + -0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1447 + -0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1448 + -0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1449 + -0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1450 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1451 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1452 + 0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1453 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1454 + 0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1455 + 0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1456 + 0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1457 + 0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1458 + 0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1459 + 0x1.ffffffffffffd0000000000000ffffffp1, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1460 + 0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1461 + 0x1.ffffffffffffd0000000000001p1, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1462 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1463 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1464 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1465 + -0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1466 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1467 + -0x1.p-1022, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1468 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1469 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1470 + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1471 + -0x1.p-1074, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1472 + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + 0.0 + }, + { // Entry 1473 + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022, + -0.0 + }, + { // Entry 1474 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1475 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1476 + 0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1477 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1478 + 0x1.p-1022, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1479 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1480 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1481 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1482 + 0x1.p-1074, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1483 + -0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1484 + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + 0.0 + }, + { // Entry 1485 + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022, + -0.0 + }, + { // Entry 1486 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1487 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1488 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1489 + -0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1490 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1491 + -0x1.p-1022, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1492 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1493 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1494 + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1495 + -0x1.p-1074, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1496 + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1497 + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1498 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1499 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1500 + 0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1501 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1502 + 0x1.p-1022, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1503 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1504 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1505 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1506 + 0x1.p-1074, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1507 + -0.0, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1508 + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1509 + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1510 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1511 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1512 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1513 + -0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1514 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1515 + -0x1.p-1022, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1516 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1517 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1518 + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1519 + -0x1.p-1074, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1520 + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + 0.0 + }, + { // Entry 1521 + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074, + -0.0 + }, + { // Entry 1522 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1523 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1524 + 0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1525 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1526 + 0x1.p-1022, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1527 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1528 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1529 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1530 + 0x1.p-1074, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1531 + -0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1532 + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + 0.0 + }, + { // Entry 1533 + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074, + -0.0 + }, + { // Entry 1534 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0.0, + HUGE_VAL + }, + { // Entry 1535 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0.0, + -HUGE_VAL + }, + { // Entry 1536 + 0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1537 + -0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1538 + 0x1.p-1022, + -0x1.ffffffffffffep-1023, + 0.0, + 0x1.0p-1022 + }, + { // Entry 1539 + -0x1.p-1022, + -0x1.ffffffffffffep-1023, + 0.0, + -0x1.0p-1022 + }, + { // Entry 1540 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1541 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1542 + 0x1.p-1074, + -0x1.ffffffffffffep-1023, + 0.0, + 0x1.0p-1074 + }, + { // Entry 1543 + -0x1.p-1074, + -0x1.ffffffffffffep-1023, + 0.0, + -0x1.0p-1074 + }, + { // Entry 1544 + 0.0, + -0x1.ffffffffffffep-1023, + 0.0, + 0.0 + }, + { // Entry 1545 + -0.0, + -0x1.ffffffffffffep-1023, + 0.0, + -0.0 + }, + { // Entry 1546 + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0.0, + HUGE_VAL + }, + { // Entry 1547 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0.0, + -HUGE_VAL + }, + { // Entry 1548 + 0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1549 + -0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep-1023, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1550 + 0x1.p-1022, + -0x1.ffffffffffffep-1023, + -0.0, + 0x1.0p-1022 + }, + { // Entry 1551 + -0x1.p-1022, + -0x1.ffffffffffffep-1023, + -0.0, + -0x1.0p-1022 + }, + { // Entry 1552 + 0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1553 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1554 + 0x1.p-1074, + -0x1.ffffffffffffep-1023, + -0.0, + 0x1.0p-1074 + }, + { // Entry 1555 + -0x1.p-1074, + -0x1.ffffffffffffep-1023, + -0.0, + -0x1.0p-1074 + }, + { // Entry 1556 + 0.0, + -0x1.ffffffffffffep-1023, + -0.0, + 0.0 + }, + { // Entry 1557 + 0.0, + -0x1.ffffffffffffep-1023, + -0.0, + -0.0 + }, + { // Entry 1558 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 1559 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1560 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1561 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1562 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1563 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1564 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1565 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1566 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1567 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + 0.0 + }, + { // Entry 1568 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL, + -0.0 + }, + { // Entry 1569 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 1570 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1571 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1572 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1573 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1574 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1575 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1576 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1577 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1578 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + 0.0 + }, + { // Entry 1579 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL, + -0.0 + }, + { // Entry 1580 + HUGE_VAL, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1581 + -HUGE_VAL, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1582 + 0x1.fffffffffffff0p1023, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1583 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1584 + 0x1.fffffffffffff0p-51, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1585 + 0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1586 + 0x1.fffffffffffff0p-51, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1587 + 0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1588 + 0x1.fffffffffffff0p-51, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1589 + 0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1590 + 0x1.fffffffffffff0p-51, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1591 + 0x1.fffffffffffff0p-51, + 0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1592 + HUGE_VAL, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1593 + -HUGE_VAL, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1594 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1595 + -0x1.fffffffffffff0p1023, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1596 + -0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1597 + -0x1.fffffffffffff0p-51, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1598 + -0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1599 + -0x1.fffffffffffff0p-51, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1600 + -0x1.ffffffffffffefffffffffffffffffffp-51, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1601 + -0x1.fffffffffffff0p-51, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1602 + -0x1.fffffffffffff0p-51, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1603 + -0x1.fffffffffffff0p-51, + 0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1604 + HUGE_VAL, + 0x1.0p-1074, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1605 + -HUGE_VAL, + 0x1.0p-1074, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1606 + 0x1.fffffffffffff0p1023, + 0x1.0p-1074, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1607 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1074, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1608 + 0x1.p-1022, + 0x1.0p-1074, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1609 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1074, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1610 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1611 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1074, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1612 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1613 + -0.0, + 0x1.0p-1074, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1614 + 0.0, + 0x1.0p-1074, + 0x1.0p-1022, + 0.0 + }, + { // Entry 1615 + 0.0, + 0x1.0p-1074, + 0x1.0p-1022, + -0.0 + }, + { // Entry 1616 + HUGE_VAL, + 0x1.0p-1074, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1617 + -HUGE_VAL, + 0x1.0p-1074, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1618 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1074, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1619 + -0x1.fffffffffffff0p1023, + 0x1.0p-1074, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1620 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1074, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1621 + -0x1.p-1022, + 0x1.0p-1074, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1622 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1074, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1623 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1624 + 0.0, + 0x1.0p-1074, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1625 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1626 + -0.0, + 0x1.0p-1074, + -0x1.0p-1022, + 0.0 + }, + { // Entry 1627 + -0.0, + 0x1.0p-1074, + -0x1.0p-1022, + -0.0 + }, + { // Entry 1628 + HUGE_VAL, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1629 + -HUGE_VAL, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1630 + 0x1.fffffffffffff0p1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1631 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1632 + 0x1.p-1022, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1633 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1634 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1635 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1636 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1637 + -0.0, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1638 + 0.0, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1639 + 0.0, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1640 + HUGE_VAL, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1641 + -HUGE_VAL, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1642 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1643 + -0x1.fffffffffffff0p1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1644 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1645 + -0x1.p-1022, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1646 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1647 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1648 + 0.0, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1649 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1650 + -0.0, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1651 + -0.0, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1652 + HUGE_VAL, + 0x1.0p-1074, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1653 + -HUGE_VAL, + 0x1.0p-1074, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1654 + 0x1.fffffffffffff0p1023, + 0x1.0p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1655 + -0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1656 + 0x1.p-1022, + 0x1.0p-1074, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1657 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1074, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1658 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1659 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1074, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1660 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1661 + -0.0, + 0x1.0p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1662 + 0.0, + 0x1.0p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 1663 + 0.0, + 0x1.0p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 1664 + HUGE_VAL, + 0x1.0p-1074, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1665 + -HUGE_VAL, + 0x1.0p-1074, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1666 + 0x1.ffffffffffffefffffffffffffffffffp1023, + 0x1.0p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1667 + -0x1.fffffffffffff0p1023, + 0x1.0p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1668 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1074, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1669 + -0x1.p-1022, + 0x1.0p-1074, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1670 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.0p-1074, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1671 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1672 + 0.0, + 0x1.0p-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1673 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1674 + -0.0, + 0x1.0p-1074, + -0x1.0p-1074, + 0.0 + }, + { // Entry 1675 + -0.0, + 0x1.0p-1074, + -0x1.0p-1074, + -0.0 + }, + { // Entry 1676 + HUGE_VAL, + 0x1.0p-1074, + 0.0, + HUGE_VAL + }, + { // Entry 1677 + -HUGE_VAL, + 0x1.0p-1074, + 0.0, + -HUGE_VAL + }, + { // Entry 1678 + 0x1.fffffffffffff0p1023, + 0x1.0p-1074, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1679 + -0x1.fffffffffffff0p1023, + 0x1.0p-1074, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1680 + 0x1.p-1022, + 0x1.0p-1074, + 0.0, + 0x1.0p-1022 + }, + { // Entry 1681 + -0x1.p-1022, + 0x1.0p-1074, + 0.0, + -0x1.0p-1022 + }, + { // Entry 1682 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1683 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1684 + 0x1.p-1074, + 0x1.0p-1074, + 0.0, + 0x1.0p-1074 + }, + { // Entry 1685 + -0x1.p-1074, + 0x1.0p-1074, + 0.0, + -0x1.0p-1074 + }, + { // Entry 1686 + 0.0, + 0x1.0p-1074, + 0.0, + 0.0 + }, + { // Entry 1687 + 0.0, + 0x1.0p-1074, + 0.0, + -0.0 + }, + { // Entry 1688 + HUGE_VAL, + 0x1.0p-1074, + -0.0, + HUGE_VAL + }, + { // Entry 1689 + -HUGE_VAL, + 0x1.0p-1074, + -0.0, + -HUGE_VAL + }, + { // Entry 1690 + 0x1.fffffffffffff0p1023, + 0x1.0p-1074, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1691 + -0x1.fffffffffffff0p1023, + 0x1.0p-1074, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1692 + 0x1.p-1022, + 0x1.0p-1074, + -0.0, + 0x1.0p-1022 + }, + { // Entry 1693 + -0x1.p-1022, + 0x1.0p-1074, + -0.0, + -0x1.0p-1022 + }, + { // Entry 1694 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1695 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1696 + 0x1.p-1074, + 0x1.0p-1074, + -0.0, + 0x1.0p-1074 + }, + { // Entry 1697 + -0x1.p-1074, + 0x1.0p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 1698 + 0.0, + 0x1.0p-1074, + -0.0, + 0.0 + }, + { // Entry 1699 + -0.0, + 0x1.0p-1074, + -0.0, + -0.0 + }, + { // Entry 1700 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 1701 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1702 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1703 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1704 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1705 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1706 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1707 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1708 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1709 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + 0.0 + }, + { // Entry 1710 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL, + -0.0 + }, + { // Entry 1711 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 1712 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 1713 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 1714 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 1715 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 1716 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1717 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1718 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 1719 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 1720 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + 0.0 + }, + { // Entry 1721 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL, + -0.0 + }, + { // Entry 1722 + HUGE_VAL, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1723 + -HUGE_VAL, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1724 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1725 + -0x1.fffffffffffff0p1023, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1726 + -0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1727 + -0x1.fffffffffffff0p-51, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1728 + -0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1729 + -0x1.fffffffffffff0p-51, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1730 + -0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1731 + -0x1.fffffffffffff0p-51, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1732 + -0x1.fffffffffffff0p-51, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1733 + -0x1.fffffffffffff0p-51, + -0x1.0p-1074, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1734 + HUGE_VAL, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1735 + -HUGE_VAL, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1736 + 0x1.fffffffffffff0p1023, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1737 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1738 + 0x1.fffffffffffff0p-51, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1739 + 0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1740 + 0x1.fffffffffffff0p-51, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1741 + 0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1742 + 0x1.fffffffffffff0p-51, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1743 + 0x1.ffffffffffffefffffffffffffffffffp-51, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1744 + 0x1.fffffffffffff0p-51, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1745 + 0x1.fffffffffffff0p-51, + -0x1.0p-1074, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1746 + HUGE_VAL, + -0x1.0p-1074, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1747 + -HUGE_VAL, + -0x1.0p-1074, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1748 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1074, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1749 + -0x1.fffffffffffff0p1023, + -0x1.0p-1074, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1750 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1074, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1751 + -0x1.p-1022, + -0x1.0p-1074, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1752 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1074, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1753 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1754 + 0.0, + -0x1.0p-1074, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1755 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1756 + -0.0, + -0x1.0p-1074, + 0x1.0p-1022, + 0.0 + }, + { // Entry 1757 + -0.0, + -0x1.0p-1074, + 0x1.0p-1022, + -0.0 + }, + { // Entry 1758 + HUGE_VAL, + -0x1.0p-1074, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1759 + -HUGE_VAL, + -0x1.0p-1074, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1760 + 0x1.fffffffffffff0p1023, + -0x1.0p-1074, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1761 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1074, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1762 + 0x1.p-1022, + -0x1.0p-1074, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1763 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1074, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1764 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1765 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1074, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1766 + 0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1767 + -0.0, + -0x1.0p-1074, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1768 + 0.0, + -0x1.0p-1074, + -0x1.0p-1022, + 0.0 + }, + { // Entry 1769 + 0.0, + -0x1.0p-1074, + -0x1.0p-1022, + -0.0 + }, + { // Entry 1770 + HUGE_VAL, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1771 + -HUGE_VAL, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1772 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1773 + -0x1.fffffffffffff0p1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1774 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1775 + -0x1.p-1022, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1776 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1777 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1778 + 0.0, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1779 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1780 + -0.0, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1781 + -0.0, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1782 + HUGE_VAL, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1783 + -HUGE_VAL, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1784 + 0x1.fffffffffffff0p1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1785 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1786 + 0x1.p-1022, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1787 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1788 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1789 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1790 + 0x1.p-1074, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1791 + -0.0, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1792 + 0.0, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1793 + 0.0, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1794 + HUGE_VAL, + -0x1.0p-1074, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1795 + -HUGE_VAL, + -0x1.0p-1074, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1796 + 0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1797 + -0x1.fffffffffffff0p1023, + -0x1.0p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1798 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1074, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1799 + -0x1.p-1022, + -0x1.0p-1074, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1800 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1074, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1801 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1802 + 0.0, + -0x1.0p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1803 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1804 + -0.0, + -0x1.0p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 1805 + -0.0, + -0x1.0p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 1806 + HUGE_VAL, + -0x1.0p-1074, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1807 + -HUGE_VAL, + -0x1.0p-1074, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1808 + 0x1.fffffffffffff0p1023, + -0x1.0p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1809 + -0x1.ffffffffffffefffffffffffffffffffp1023, + -0x1.0p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1810 + 0x1.p-1022, + -0x1.0p-1074, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1811 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1074, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1812 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1813 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.0p-1074, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1814 + 0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1815 + -0.0, + -0x1.0p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1816 + 0.0, + -0x1.0p-1074, + -0x1.0p-1074, + 0.0 + }, + { // Entry 1817 + 0.0, + -0x1.0p-1074, + -0x1.0p-1074, + -0.0 + }, + { // Entry 1818 + HUGE_VAL, + -0x1.0p-1074, + 0.0, + HUGE_VAL + }, + { // Entry 1819 + -HUGE_VAL, + -0x1.0p-1074, + 0.0, + -HUGE_VAL + }, + { // Entry 1820 + 0x1.fffffffffffff0p1023, + -0x1.0p-1074, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1821 + -0x1.fffffffffffff0p1023, + -0x1.0p-1074, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1822 + 0x1.p-1022, + -0x1.0p-1074, + 0.0, + 0x1.0p-1022 + }, + { // Entry 1823 + -0x1.p-1022, + -0x1.0p-1074, + 0.0, + -0x1.0p-1022 + }, + { // Entry 1824 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1825 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1826 + 0x1.p-1074, + -0x1.0p-1074, + 0.0, + 0x1.0p-1074 + }, + { // Entry 1827 + -0x1.p-1074, + -0x1.0p-1074, + 0.0, + -0x1.0p-1074 + }, + { // Entry 1828 + 0.0, + -0x1.0p-1074, + 0.0, + 0.0 + }, + { // Entry 1829 + -0.0, + -0x1.0p-1074, + 0.0, + -0.0 + }, + { // Entry 1830 + HUGE_VAL, + -0x1.0p-1074, + -0.0, + HUGE_VAL + }, + { // Entry 1831 + -HUGE_VAL, + -0x1.0p-1074, + -0.0, + -HUGE_VAL + }, + { // Entry 1832 + 0x1.fffffffffffff0p1023, + -0x1.0p-1074, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1833 + -0x1.fffffffffffff0p1023, + -0x1.0p-1074, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1834 + 0x1.p-1022, + -0x1.0p-1074, + -0.0, + 0x1.0p-1022 + }, + { // Entry 1835 + -0x1.p-1022, + -0x1.0p-1074, + -0.0, + -0x1.0p-1022 + }, + { // Entry 1836 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1837 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1838 + 0x1.p-1074, + -0x1.0p-1074, + -0.0, + 0x1.0p-1074 + }, + { // Entry 1839 + -0x1.p-1074, + -0x1.0p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 1840 + 0.0, + -0x1.0p-1074, + -0.0, + 0.0 + }, + { // Entry 1841 + 0.0, + -0x1.0p-1074, + -0.0, + -0.0 + }, + { // Entry 1842 + HUGE_VAL, + 0.0, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1843 + -HUGE_VAL, + 0.0, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1844 + 0x1.fffffffffffff0p1023, + 0.0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1845 + -0x1.fffffffffffff0p1023, + 0.0, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1846 + 0x1.p-1022, + 0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1847 + -0x1.p-1022, + 0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1848 + 0x1.ffffffffffffe0p-1023, + 0.0, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1849 + -0x1.ffffffffffffe0p-1023, + 0.0, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1850 + 0x1.p-1074, + 0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1851 + -0x1.p-1074, + 0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1852 + 0.0, + 0.0, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1853 + 0.0, + 0.0, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1854 + HUGE_VAL, + 0.0, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1855 + -HUGE_VAL, + 0.0, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1856 + 0x1.fffffffffffff0p1023, + 0.0, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1857 + -0x1.fffffffffffff0p1023, + 0.0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1858 + 0x1.p-1022, + 0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1859 + -0x1.p-1022, + 0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1860 + 0x1.ffffffffffffe0p-1023, + 0.0, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1861 + -0x1.ffffffffffffe0p-1023, + 0.0, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1862 + 0x1.p-1074, + 0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1863 + -0x1.p-1074, + 0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1864 + 0.0, + 0.0, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1865 + -0.0, + 0.0, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1866 + HUGE_VAL, + 0.0, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1867 + -HUGE_VAL, + 0.0, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1868 + 0x1.fffffffffffff0p1023, + 0.0, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1869 + -0x1.fffffffffffff0p1023, + 0.0, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1870 + 0x1.p-1022, + 0.0, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1871 + -0x1.p-1022, + 0.0, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1872 + 0x1.ffffffffffffe0p-1023, + 0.0, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1873 + -0x1.ffffffffffffe0p-1023, + 0.0, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1874 + 0x1.p-1074, + 0.0, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1875 + -0x1.p-1074, + 0.0, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1876 + 0.0, + 0.0, + 0x1.0p-1022, + 0.0 + }, + { // Entry 1877 + 0.0, + 0.0, + 0x1.0p-1022, + -0.0 + }, + { // Entry 1878 + HUGE_VAL, + 0.0, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1879 + -HUGE_VAL, + 0.0, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1880 + 0x1.fffffffffffff0p1023, + 0.0, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1881 + -0x1.fffffffffffff0p1023, + 0.0, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1882 + 0x1.p-1022, + 0.0, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1883 + -0x1.p-1022, + 0.0, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1884 + 0x1.ffffffffffffe0p-1023, + 0.0, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1885 + -0x1.ffffffffffffe0p-1023, + 0.0, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1886 + 0x1.p-1074, + 0.0, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1887 + -0x1.p-1074, + 0.0, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1888 + 0.0, + 0.0, + -0x1.0p-1022, + 0.0 + }, + { // Entry 1889 + -0.0, + 0.0, + -0x1.0p-1022, + -0.0 + }, + { // Entry 1890 + HUGE_VAL, + 0.0, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1891 + -HUGE_VAL, + 0.0, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1892 + 0x1.fffffffffffff0p1023, + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1893 + -0x1.fffffffffffff0p1023, + 0.0, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1894 + 0x1.p-1022, + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1895 + -0x1.p-1022, + 0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1896 + 0x1.ffffffffffffe0p-1023, + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1897 + -0x1.ffffffffffffe0p-1023, + 0.0, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1898 + 0x1.p-1074, + 0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1899 + -0x1.p-1074, + 0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1900 + 0.0, + 0.0, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1901 + 0.0, + 0.0, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1902 + HUGE_VAL, + 0.0, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 1903 + -HUGE_VAL, + 0.0, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 1904 + 0x1.fffffffffffff0p1023, + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1905 + -0x1.fffffffffffff0p1023, + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1906 + 0x1.p-1022, + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 1907 + -0x1.p-1022, + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 1908 + 0x1.ffffffffffffe0p-1023, + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1909 + -0x1.ffffffffffffe0p-1023, + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1910 + 0x1.p-1074, + 0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 1911 + -0x1.p-1074, + 0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 1912 + 0.0, + 0.0, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 1913 + -0.0, + 0.0, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 1914 + HUGE_VAL, + 0.0, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1915 + -HUGE_VAL, + 0.0, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1916 + 0x1.fffffffffffff0p1023, + 0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1917 + -0x1.fffffffffffff0p1023, + 0.0, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1918 + 0x1.p-1022, + 0.0, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1919 + -0x1.p-1022, + 0.0, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1920 + 0x1.ffffffffffffe0p-1023, + 0.0, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1921 + -0x1.ffffffffffffe0p-1023, + 0.0, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1922 + 0x1.p-1074, + 0.0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1923 + -0x1.p-1074, + 0.0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1924 + 0.0, + 0.0, + 0x1.0p-1074, + 0.0 + }, + { // Entry 1925 + 0.0, + 0.0, + 0x1.0p-1074, + -0.0 + }, + { // Entry 1926 + HUGE_VAL, + 0.0, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 1927 + -HUGE_VAL, + 0.0, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 1928 + 0x1.fffffffffffff0p1023, + 0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 1929 + -0x1.fffffffffffff0p1023, + 0.0, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 1930 + 0x1.p-1022, + 0.0, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 1931 + -0x1.p-1022, + 0.0, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 1932 + 0x1.ffffffffffffe0p-1023, + 0.0, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1933 + -0x1.ffffffffffffe0p-1023, + 0.0, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1934 + 0x1.p-1074, + 0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 1935 + -0x1.p-1074, + 0.0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1936 + 0.0, + 0.0, + -0x1.0p-1074, + 0.0 + }, + { // Entry 1937 + -0.0, + 0.0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 1938 + HUGE_VAL, + 0.0, + 0.0, + HUGE_VAL + }, + { // Entry 1939 + -HUGE_VAL, + 0.0, + 0.0, + -HUGE_VAL + }, + { // Entry 1940 + 0x1.fffffffffffff0p1023, + 0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1941 + -0x1.fffffffffffff0p1023, + 0.0, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1942 + 0x1.p-1022, + 0.0, + 0.0, + 0x1.0p-1022 + }, + { // Entry 1943 + -0x1.p-1022, + 0.0, + 0.0, + -0x1.0p-1022 + }, + { // Entry 1944 + 0x1.ffffffffffffe0p-1023, + 0.0, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1945 + -0x1.ffffffffffffe0p-1023, + 0.0, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1946 + 0x1.p-1074, + 0.0, + 0.0, + 0x1.0p-1074 + }, + { // Entry 1947 + -0x1.p-1074, + 0.0, + 0.0, + -0x1.0p-1074 + }, + { // Entry 1948 + 0.0, + 0.0, + 0.0, + 0.0 + }, + { // Entry 1949 + 0.0, + 0.0, + 0.0, + -0.0 + }, + { // Entry 1950 + HUGE_VAL, + 0.0, + -0.0, + HUGE_VAL + }, + { // Entry 1951 + -HUGE_VAL, + 0.0, + -0.0, + -HUGE_VAL + }, + { // Entry 1952 + 0x1.fffffffffffff0p1023, + 0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 1953 + -0x1.fffffffffffff0p1023, + 0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 1954 + 0x1.p-1022, + 0.0, + -0.0, + 0x1.0p-1022 + }, + { // Entry 1955 + -0x1.p-1022, + 0.0, + -0.0, + -0x1.0p-1022 + }, + { // Entry 1956 + 0x1.ffffffffffffe0p-1023, + 0.0, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1957 + -0x1.ffffffffffffe0p-1023, + 0.0, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1958 + 0x1.p-1074, + 0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 1959 + -0x1.p-1074, + 0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 1960 + 0.0, + 0.0, + -0.0, + 0.0 + }, + { // Entry 1961 + -0.0, + 0.0, + -0.0, + -0.0 + }, + { // Entry 1962 + HUGE_VAL, + -0.0, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1963 + -HUGE_VAL, + -0.0, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1964 + 0x1.fffffffffffff0p1023, + -0.0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1965 + -0x1.fffffffffffff0p1023, + -0.0, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1966 + 0x1.p-1022, + -0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1967 + -0x1.p-1022, + -0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1968 + 0x1.ffffffffffffe0p-1023, + -0.0, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1969 + -0x1.ffffffffffffe0p-1023, + -0.0, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1970 + 0x1.p-1074, + -0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1971 + -0x1.p-1074, + -0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1972 + 0.0, + -0.0, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1973 + -0.0, + -0.0, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1974 + HUGE_VAL, + -0.0, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 1975 + -HUGE_VAL, + -0.0, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 1976 + 0x1.fffffffffffff0p1023, + -0.0, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 1977 + -0x1.fffffffffffff0p1023, + -0.0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 1978 + 0x1.p-1022, + -0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 1979 + -0x1.p-1022, + -0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 1980 + 0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1981 + -0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1982 + 0x1.p-1074, + -0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 1983 + -0x1.p-1074, + -0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 1984 + 0.0, + -0.0, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 1985 + 0.0, + -0.0, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 1986 + HUGE_VAL, + -0.0, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1987 + -HUGE_VAL, + -0.0, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 1988 + 0x1.fffffffffffff0p1023, + -0.0, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 1989 + -0x1.fffffffffffff0p1023, + -0.0, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 1990 + 0x1.p-1022, + -0.0, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 1991 + -0x1.p-1022, + -0.0, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 1992 + 0x1.ffffffffffffe0p-1023, + -0.0, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 1993 + -0x1.ffffffffffffe0p-1023, + -0.0, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 1994 + 0x1.p-1074, + -0.0, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 1995 + -0x1.p-1074, + -0.0, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 1996 + 0.0, + -0.0, + 0x1.0p-1022, + 0.0 + }, + { // Entry 1997 + -0.0, + -0.0, + 0x1.0p-1022, + -0.0 + }, + { // Entry 1998 + HUGE_VAL, + -0.0, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 1999 + -HUGE_VAL, + -0.0, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 2000 + 0x1.fffffffffffff0p1023, + -0.0, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 2001 + -0x1.fffffffffffff0p1023, + -0.0, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 2002 + 0x1.p-1022, + -0.0, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 2003 + -0x1.p-1022, + -0.0, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 2004 + 0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2005 + -0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2006 + 0x1.p-1074, + -0.0, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 2007 + -0x1.p-1074, + -0.0, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 2008 + 0.0, + -0.0, + -0x1.0p-1022, + 0.0 + }, + { // Entry 2009 + 0.0, + -0.0, + -0x1.0p-1022, + -0.0 + }, + { // Entry 2010 + HUGE_VAL, + -0.0, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 2011 + -HUGE_VAL, + -0.0, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 2012 + 0x1.fffffffffffff0p1023, + -0.0, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2013 + -0x1.fffffffffffff0p1023, + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2014 + 0x1.p-1022, + -0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 2015 + -0x1.p-1022, + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 2016 + 0x1.ffffffffffffe0p-1023, + -0.0, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2017 + -0x1.ffffffffffffe0p-1023, + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2018 + 0x1.p-1074, + -0.0, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 2019 + -0x1.p-1074, + -0.0, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 2020 + 0.0, + -0.0, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 2021 + -0.0, + -0.0, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 2022 + HUGE_VAL, + -0.0, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 2023 + -HUGE_VAL, + -0.0, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 2024 + 0x1.fffffffffffff0p1023, + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2025 + -0x1.fffffffffffff0p1023, + -0.0, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2026 + 0x1.p-1022, + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 2027 + -0x1.p-1022, + -0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 2028 + 0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2029 + -0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2030 + 0x1.p-1074, + -0.0, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 2031 + -0x1.p-1074, + -0.0, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 2032 + 0.0, + -0.0, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 2033 + 0.0, + -0.0, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 2034 + HUGE_VAL, + -0.0, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 2035 + -HUGE_VAL, + -0.0, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 2036 + 0x1.fffffffffffff0p1023, + -0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 2037 + -0x1.fffffffffffff0p1023, + -0.0, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 2038 + 0x1.p-1022, + -0.0, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 2039 + -0x1.p-1022, + -0.0, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 2040 + 0x1.ffffffffffffe0p-1023, + -0.0, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2041 + -0x1.ffffffffffffe0p-1023, + -0.0, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2042 + 0x1.p-1074, + -0.0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 2043 + -0x1.p-1074, + -0.0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 2044 + 0.0, + -0.0, + 0x1.0p-1074, + 0.0 + }, + { // Entry 2045 + -0.0, + -0.0, + 0x1.0p-1074, + -0.0 + }, + { // Entry 2046 + HUGE_VAL, + -0.0, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 2047 + -HUGE_VAL, + -0.0, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 2048 + 0x1.fffffffffffff0p1023, + -0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 2049 + -0x1.fffffffffffff0p1023, + -0.0, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 2050 + 0x1.p-1022, + -0.0, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 2051 + -0x1.p-1022, + -0.0, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 2052 + 0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2053 + -0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2054 + 0x1.p-1074, + -0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 2055 + -0x1.p-1074, + -0.0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 2056 + 0.0, + -0.0, + -0x1.0p-1074, + 0.0 + }, + { // Entry 2057 + 0.0, + -0.0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 2058 + HUGE_VAL, + -0.0, + 0.0, + HUGE_VAL + }, + { // Entry 2059 + -HUGE_VAL, + -0.0, + 0.0, + -HUGE_VAL + }, + { // Entry 2060 + 0x1.fffffffffffff0p1023, + -0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 2061 + -0x1.fffffffffffff0p1023, + -0.0, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 2062 + 0x1.p-1022, + -0.0, + 0.0, + 0x1.0p-1022 + }, + { // Entry 2063 + -0x1.p-1022, + -0.0, + 0.0, + -0x1.0p-1022 + }, + { // Entry 2064 + 0x1.ffffffffffffe0p-1023, + -0.0, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2065 + -0x1.ffffffffffffe0p-1023, + -0.0, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2066 + 0x1.p-1074, + -0.0, + 0.0, + 0x1.0p-1074 + }, + { // Entry 2067 + -0x1.p-1074, + -0.0, + 0.0, + -0x1.0p-1074 + }, + { // Entry 2068 + 0.0, + -0.0, + 0.0, + 0.0 + }, + { // Entry 2069 + -0.0, + -0.0, + 0.0, + -0.0 + }, + { // Entry 2070 + HUGE_VAL, + -0.0, + -0.0, + HUGE_VAL + }, + { // Entry 2071 + -HUGE_VAL, + -0.0, + -0.0, + -HUGE_VAL + }, + { // Entry 2072 + 0x1.fffffffffffff0p1023, + -0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 2073 + -0x1.fffffffffffff0p1023, + -0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 2074 + 0x1.p-1022, + -0.0, + -0.0, + 0x1.0p-1022 + }, + { // Entry 2075 + -0x1.p-1022, + -0.0, + -0.0, + -0x1.0p-1022 + }, + { // Entry 2076 + 0x1.ffffffffffffe0p-1023, + -0.0, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2077 + -0x1.ffffffffffffe0p-1023, + -0.0, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2078 + 0x1.p-1074, + -0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 2079 + -0x1.p-1074, + -0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 2080 + 0.0, + -0.0, + -0.0, + 0.0 + }, + { // Entry 2081 + 0.0, + -0.0, + -0.0, + -0.0 + }, + { // Entry 2082 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 2083 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 2084 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 2085 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 2086 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 2087 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2088 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2089 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 2090 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 2091 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + 0.0 + }, + { // Entry 2092 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL, + -0.0 + }, + { // Entry 2093 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 2094 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 2095 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 2096 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 2097 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 2098 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2099 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2100 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 2101 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 2102 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + 0.0 + }, + { // Entry 2103 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL, + -0.0 + }, + { // Entry 2104 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 2105 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2106 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2107 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 2108 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 2109 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2110 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2111 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 2112 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 2113 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 2114 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 2115 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 2116 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2117 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2118 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 2119 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 2120 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2121 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2122 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 2123 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 2124 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 2125 + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 2126 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 2127 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 2128 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 2129 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 2130 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 2131 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2132 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2133 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 2134 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 2135 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + 0.0 + }, + { // Entry 2136 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022, + -0.0 + }, + { // Entry 2137 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 2138 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 2139 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 2140 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 2141 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 2142 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2143 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2144 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 2145 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 2146 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + 0.0 + }, + { // Entry 2147 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022, + -0.0 + }, + { // Entry 2148 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 2149 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2150 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2151 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 2152 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 2153 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2154 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2155 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 2156 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 2157 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 2158 + HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 2159 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 2160 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2161 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2162 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 2163 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 2164 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2165 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2166 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 2167 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 2168 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 2169 + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 2170 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 2171 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 2172 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 2173 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 2174 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 2175 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2176 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2177 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 2178 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 2179 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + 0.0 + }, + { // Entry 2180 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074, + -0.0 + }, + { // Entry 2181 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 2182 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 2183 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 2184 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 2185 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 2186 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2187 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2188 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 2189 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 2190 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + 0.0 + }, + { // Entry 2191 + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074, + -0.0 + }, + { // Entry 2192 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 2193 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 2194 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 2195 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 2196 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 2197 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2198 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2199 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 2200 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 2201 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + 0.0 + }, + { // Entry 2202 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL, + -0.0 + }, + { // Entry 2203 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 2204 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 2205 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 2206 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 2207 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 2208 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2209 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2210 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 2211 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 2212 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + 0.0 + }, + { // Entry 2213 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL, + -0.0 + }, + { // Entry 2214 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 2215 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2216 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2217 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 2218 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 2219 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2220 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2221 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 2222 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 2223 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 2224 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 2225 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 2226 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2227 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2228 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 2229 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 2230 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2231 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2232 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 2233 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 2234 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 2235 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 2236 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 2237 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 2238 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 2239 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 2240 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 2241 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2242 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2243 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 2244 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 2245 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + 0.0 + }, + { // Entry 2246 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022, + -0.0 + }, + { // Entry 2247 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 2248 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 2249 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 2250 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 2251 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 2252 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2253 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2254 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 2255 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 2256 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + 0.0 + }, + { // Entry 2257 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022, + -0.0 + }, + { // Entry 2258 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 2259 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2260 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2261 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 2262 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 2263 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2264 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2265 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 2266 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 2267 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 2268 + -HUGE_VAL, + -HUGE_VAL, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 2269 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 2270 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 2271 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 2272 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 2273 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 2274 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2275 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2276 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 2277 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 2278 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 2279 + HUGE_VAL, + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 2280 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 2281 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 2282 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 2283 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 2284 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 2285 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2286 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2287 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 2288 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 2289 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + 0.0 + }, + { // Entry 2290 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074, + -0.0 + }, + { // Entry 2291 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 2292 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 2293 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 2294 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 2295 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 2296 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 2297 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 2298 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 2299 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 2300 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + 0.0 + }, + { // Entry 2301 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074, + -0.0 + } +}; diff --git a/tests/math_data/fmaf_intel_data.h b/tests/math_data/fmaf_intel_data.h new file mode 100644 index 000000000..af509e6b7 --- /dev/null +++ b/tests/math_data/fmaf_intel_data.h @@ -0,0 +1,13836 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_3_t g_fmaf_intel_data[] = { + { // Entry 0 + -0x1.800002fffffffffffd80p73, + -0x1.000002p72, + 0x1.80p1, + 0x1.40p2 + }, + { // Entry 1 + -0x1.e66666p0, + 0x1.p-149, + -0x1.ccccccp-1, + -0x1.e66666p0 + }, + { // Entry 2 + 0x1.15f153ffffffffffffffffffffffffffp-2, + 0x1.p-149, + -0x1.ccccccp-1, + 0x1.15f154p-2 + }, + { // Entry 3 + 0x1.000005fffffffffffffffffffff0ccccp-41, + 0x1.p-149, + -0x1.e66666p-1, + 0x1.000006p-41 + }, + { // Entry 4 + -0x1.e66665ffffffffffffffffffffffffffp0, + 0x1.p-149, + 0x1.075070p-3, + -0x1.e66666p0 + }, + { // Entry 5 + 0x1.00000600000000000000000000014444p-41, + 0x1.p-149, + 0x1.444424p-4, + 0x1.000006p-41 + }, + { // Entry 6 + 0x1.c9999906666680p0, + 0x1.000002p-3, + -0x1.ccccccp-1, + 0x1.e66666p0 + }, + { // Entry 7 + 0x1.880156fffffffffefbbcp14, + 0x1.0000e0p7, + 0x1.88p7, + -0x1.0444p-50 + }, + { // Entry 8 + 0x1.2b3335p-43, + 0x1.08p-41, + -0x1.8df6b0p-1, + 0x1.18p-41 + }, + { // Entry 9 + 0x1.9af704000001p-1, + 0x1.43969cp-3, + 0x1.62e42ep-1, + 0x1.62e42ep-1 + }, + { // Entry 10 + 0x1.7eed9900000080p-1, + 0x1.43969cp-4, + 0x1.62e42ep-1, + 0x1.62e42ep-1 + }, + { // Entry 11 + -0x1.5229cafffffffffc6de498p59, + 0x1.88p60, + -0x1.b9aec0p-2, + 0x1.c90db4p-4 + }, + { // Entry 12 + 0x1.678c8dffffffb0p-1, + 0x1.ae0ef4p-7, + 0x1.62e42ep-1, + 0x1.62e42ep-1 + }, + { // Entry 13 + 0x1.ffffee000010p-1, + 0x1.fffffep127, + -0x1.p-149, + 0x1.fffffep-1 + }, + { // Entry 14 + 0x1.fffff0000010p-1, + 0x1.fffffep127, + -0x1.p-149, + 0x1.p0 + }, + { // Entry 15 + 0x1.fffff4000010p-1, + 0x1.fffffep127, + -0x1.p-149, + 0x1.000002p0 + }, + { // Entry 16 + 0x1.fffffep-1, + 0x1.fffffep127, + 0.0, + 0x1.fffffep-1 + }, + { // Entry 17 + 0x1.p0, + 0x1.fffffep127, + 0.0, + 0x1.p0 + }, + { // Entry 18 + 0x1.000002p0, + 0x1.fffffep127, + 0.0, + 0x1.000002p0 + }, + { // Entry 19 + 0x1.000006fffff8p0, + 0x1.fffffep127, + 0x1.p-149, + 0x1.fffffep-1 + }, + { // Entry 20 + 0x1.000007fffff8p0, + 0x1.fffffep127, + 0x1.p-149, + 0x1.p0 + }, + { // Entry 21 + 0x1.000009fffff8p0, + 0x1.fffffep127, + 0x1.p-149, + 0x1.000002p0 + }, + { // Entry 22 + 0x1.ffffee000020p-2, + 0x1.fffffcp126, + -0x1.p-149, + 0x1.fffffep-2 + }, + { // Entry 23 + 0x1.fffff0000020p-2, + 0x1.fffffcp126, + -0x1.p-149, + 0x1.p-1 + }, + { // Entry 24 + 0x1.fffff4000020p-2, + 0x1.fffffcp126, + -0x1.p-149, + 0x1.000002p-1 + }, + { // Entry 25 + 0x1.fffffep-2, + 0x1.fffffcp126, + 0.0, + 0x1.fffffep-2 + }, + { // Entry 26 + 0x1.p-1, + 0x1.fffffcp126, + 0.0, + 0x1.p-1 + }, + { // Entry 27 + 0x1.000002p-1, + 0x1.fffffcp126, + 0.0, + 0x1.000002p-1 + }, + { // Entry 28 + 0x1.000006fffff0p-1, + 0x1.fffffcp126, + 0x1.p-149, + 0x1.fffffep-2 + }, + { // Entry 29 + 0x1.000007fffff0p-1, + 0x1.fffffcp126, + 0x1.p-149, + 0x1.p-1 + }, + { // Entry 30 + 0x1.000009fffff0p-1, + 0x1.fffffcp126, + 0x1.p-149, + 0x1.000002p-1 + }, + { // Entry 31 + 0x1.ffffee000010p-2, + 0x1.fffffep126, + -0x1.p-149, + 0x1.fffffep-2 + }, + { // Entry 32 + 0x1.fffff0000010p-2, + 0x1.fffffep126, + -0x1.p-149, + 0x1.p-1 + }, + { // Entry 33 + 0x1.fffff4000010p-2, + 0x1.fffffep126, + -0x1.p-149, + 0x1.000002p-1 + }, + { // Entry 34 + 0x1.fffffep-2, + 0x1.fffffep126, + 0.0, + 0x1.fffffep-2 + }, + { // Entry 35 + 0x1.p-1, + 0x1.fffffep126, + 0.0, + 0x1.p-1 + }, + { // Entry 36 + 0x1.000002p-1, + 0x1.fffffep126, + 0.0, + 0x1.000002p-1 + }, + { // Entry 37 + 0x1.000006fffff8p-1, + 0x1.fffffep126, + 0x1.p-149, + 0x1.fffffep-2 + }, + { // Entry 38 + 0x1.000007fffff8p-1, + 0x1.fffffep126, + 0x1.p-149, + 0x1.p-1 + }, + { // Entry 39 + 0x1.000009fffff8p-1, + 0x1.fffffep126, + 0x1.p-149, + 0x1.000002p-1 + }, + { // Entry 40 + 0x1.ffffeep-2, + 0x1.p127, + -0x1.p-149, + 0x1.fffffep-2 + }, + { // Entry 41 + 0x1.fffff0p-2, + 0x1.p127, + -0x1.p-149, + 0x1.p-1 + }, + { // Entry 42 + 0x1.fffff4p-2, + 0x1.p127, + -0x1.p-149, + 0x1.000002p-1 + }, + { // Entry 43 + 0x1.fffffep-2, + 0x1.p127, + 0.0, + 0x1.fffffep-2 + }, + { // Entry 44 + 0x1.p-1, + 0x1.p127, + 0.0, + 0x1.p-1 + }, + { // Entry 45 + 0x1.000002p-1, + 0x1.p127, + 0.0, + 0x1.000002p-1 + }, + { // Entry 46 + 0x1.000007p-1, + 0x1.p127, + 0x1.p-149, + 0x1.fffffep-2 + }, + { // Entry 47 + 0x1.000008p-1, + 0x1.p127, + 0x1.p-149, + 0x1.p-1 + }, + { // Entry 48 + 0x1.00000ap-1, + 0x1.p127, + 0x1.p-149, + 0x1.000002p-1 + }, + { // Entry 49 + 0x1.fffff6000010p-1, + 0x1.fffffcp126, + -0x1.p-149, + 0x1.fffffep-1 + }, + { // Entry 50 + 0x1.fffff8000010p-1, + 0x1.fffffcp126, + -0x1.p-149, + 0x1.p0 + }, + { // Entry 51 + 0x1.fffffc000010p-1, + 0x1.fffffcp126, + -0x1.p-149, + 0x1.000002p0 + }, + { // Entry 52 + 0x1.fffffep-1, + 0x1.fffffcp126, + 0.0, + 0x1.fffffep-1 + }, + { // Entry 53 + 0x1.p0, + 0x1.fffffcp126, + 0.0, + 0x1.p0 + }, + { // Entry 54 + 0x1.000002p0, + 0x1.fffffcp126, + 0.0, + 0x1.000002p0 + }, + { // Entry 55 + 0x1.000002fffff8p0, + 0x1.fffffcp126, + 0x1.p-149, + 0x1.fffffep-1 + }, + { // Entry 56 + 0x1.000003fffff8p0, + 0x1.fffffcp126, + 0x1.p-149, + 0x1.p0 + }, + { // Entry 57 + 0x1.000005fffff8p0, + 0x1.fffffcp126, + 0x1.p-149, + 0x1.000002p0 + }, + { // Entry 58 + 0x1.fffff6000008p-1, + 0x1.fffffep126, + -0x1.p-149, + 0x1.fffffep-1 + }, + { // Entry 59 + 0x1.fffff8000008p-1, + 0x1.fffffep126, + -0x1.p-149, + 0x1.p0 + }, + { // Entry 60 + 0x1.fffffc000008p-1, + 0x1.fffffep126, + -0x1.p-149, + 0x1.000002p0 + }, + { // Entry 61 + 0x1.fffffep-1, + 0x1.fffffep126, + 0.0, + 0x1.fffffep-1 + }, + { // Entry 62 + 0x1.p0, + 0x1.fffffep126, + 0.0, + 0x1.p0 + }, + { // Entry 63 + 0x1.000002p0, + 0x1.fffffep126, + 0.0, + 0x1.000002p0 + }, + { // Entry 64 + 0x1.000002fffffcp0, + 0x1.fffffep126, + 0x1.p-149, + 0x1.fffffep-1 + }, + { // Entry 65 + 0x1.000003fffffcp0, + 0x1.fffffep126, + 0x1.p-149, + 0x1.p0 + }, + { // Entry 66 + 0x1.000005fffffcp0, + 0x1.fffffep126, + 0x1.p-149, + 0x1.000002p0 + }, + { // Entry 67 + 0x1.fffff6p-1, + 0x1.p127, + -0x1.p-149, + 0x1.fffffep-1 + }, + { // Entry 68 + 0x1.fffff8p-1, + 0x1.p127, + -0x1.p-149, + 0x1.p0 + }, + { // Entry 69 + 0x1.fffffcp-1, + 0x1.p127, + -0x1.p-149, + 0x1.000002p0 + }, + { // Entry 70 + 0x1.fffffep-1, + 0x1.p127, + 0.0, + 0x1.fffffep-1 + }, + { // Entry 71 + 0x1.p0, + 0x1.p127, + 0.0, + 0x1.p0 + }, + { // Entry 72 + 0x1.000002p0, + 0x1.p127, + 0.0, + 0x1.000002p0 + }, + { // Entry 73 + 0x1.000003p0, + 0x1.p127, + 0x1.p-149, + 0x1.fffffep-1 + }, + { // Entry 74 + 0x1.000004p0, + 0x1.p127, + 0x1.p-149, + 0x1.p0 + }, + { // Entry 75 + 0x1.000006p0, + 0x1.p127, + 0x1.p-149, + 0x1.000002p0 + }, + { // Entry 76 + 0x1.fffffc000001ffffffffffffffffffffp-2, + 0x1.fffffep-2, + 0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 77 + 0x1.fffffc000002p-2, + 0x1.fffffep-2, + 0x1.fffffep-1, + 0.0 + }, + { // Entry 78 + 0x1.fffffc000002p-2, + 0x1.fffffep-2, + 0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 79 + 0x1.fffffdffffffffffffffffffffffffffp-2, + 0x1.fffffep-2, + 0x1.p0, + -0x1.p-149 + }, + { // Entry 80 + 0x1.fffffep-2, + 0x1.fffffep-2, + 0x1.p0, + 0.0 + }, + { // Entry 81 + 0x1.fffffep-2, + 0x1.fffffep-2, + 0x1.p0, + 0x1.p-149 + }, + { // Entry 82 + 0x1.000000fffffdffffffffffffffffffffp-1, + 0x1.fffffep-2, + 0x1.000002p0, + -0x1.p-149 + }, + { // Entry 83 + 0x1.000000fffffep-1, + 0x1.fffffep-2, + 0x1.000002p0, + 0.0 + }, + { // Entry 84 + 0x1.000000fffffep-1, + 0x1.fffffep-2, + 0x1.000002p0, + 0x1.p-149 + }, + { // Entry 85 + 0x1.fffffdffffffffffffffffffffffffffp-2, + 0x1.p-1, + 0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 86 + 0x1.fffffep-2, + 0x1.p-1, + 0x1.fffffep-1, + 0.0 + }, + { // Entry 87 + 0x1.fffffep-2, + 0x1.p-1, + 0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 88 + 0x1.ffffffffffffffffffffffffffffffffp-2, + 0x1.p-1, + 0x1.p0, + -0x1.p-149 + }, + { // Entry 89 + 0x1.p-1, + 0x1.p-1, + 0x1.p0, + 0.0 + }, + { // Entry 90 + 0x1.p-1, + 0x1.p-1, + 0x1.p0, + 0x1.p-149 + }, + { // Entry 91 + 0x1.000001ffffffffffffffffffffffffffp-1, + 0x1.p-1, + 0x1.000002p0, + -0x1.p-149 + }, + { // Entry 92 + 0x1.000002p-1, + 0x1.p-1, + 0x1.000002p0, + 0.0 + }, + { // Entry 93 + 0x1.000002p-1, + 0x1.p-1, + 0x1.000002p0, + 0x1.p-149 + }, + { // Entry 94 + 0x1.000000fffffdffffffffffffffffffffp-1, + 0x1.000002p-1, + 0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 95 + 0x1.000000fffffep-1, + 0x1.000002p-1, + 0x1.fffffep-1, + 0.0 + }, + { // Entry 96 + 0x1.000000fffffep-1, + 0x1.000002p-1, + 0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 97 + 0x1.000001ffffffffffffffffffffffffffp-1, + 0x1.000002p-1, + 0x1.p0, + -0x1.p-149 + }, + { // Entry 98 + 0x1.000002p-1, + 0x1.000002p-1, + 0x1.p0, + 0.0 + }, + { // Entry 99 + 0x1.000002p-1, + 0x1.000002p-1, + 0x1.p0, + 0x1.p-149 + }, + { // Entry 100 + 0x1.000004000003ffffffffffffffffffffp-1, + 0x1.000002p-1, + 0x1.000002p0, + -0x1.p-149 + }, + { // Entry 101 + 0x1.000004000004p-1, + 0x1.000002p-1, + 0x1.000002p0, + 0.0 + }, + { // Entry 102 + 0x1.000004000004p-1, + 0x1.000002p-1, + 0x1.000002p0, + 0x1.p-149 + }, + { // Entry 103 + 0x1.000001fffffdp-1, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.fffffep-24 + }, + { // Entry 104 + 0x1.000002000001p-1, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.p-23 + }, + { // Entry 105 + 0x1.000002000009p-1, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.000002p-23 + }, + { // Entry 106 + 0x1.000002fffffcp-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.fffffep-24 + }, + { // Entry 107 + 0x1.000003p-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.p-23 + }, + { // Entry 108 + 0x1.000003000008p-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.000002p-23 + }, + { // Entry 109 + 0x1.000004fffffap-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.fffffep-24 + }, + { // Entry 110 + 0x1.000004fffffep-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.p-23 + }, + { // Entry 111 + 0x1.000005000006p-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.000002p-23 + }, + { // Entry 112 + 0x1.000002fffffcp-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.fffffep-24 + }, + { // Entry 113 + 0x1.000003p-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.p-23 + }, + { // Entry 114 + 0x1.000003000008p-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.000002p-23 + }, + { // Entry 115 + 0x1.000003fffffcp-1, + 0x1.p0, + 0x1.p-1, + 0x1.fffffep-24 + }, + { // Entry 116 + 0x1.000004p-1, + 0x1.p0, + 0x1.p-1, + 0x1.p-23 + }, + { // Entry 117 + 0x1.000004000008p-1, + 0x1.p0, + 0x1.p-1, + 0x1.000002p-23 + }, + { // Entry 118 + 0x1.000005fffffcp-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.fffffep-24 + }, + { // Entry 119 + 0x1.000006p-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.p-23 + }, + { // Entry 120 + 0x1.000006000008p-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.000002p-23 + }, + { // Entry 121 + 0x1.000004fffffap-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.fffffep-24 + }, + { // Entry 122 + 0x1.000004fffffep-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.p-23 + }, + { // Entry 123 + 0x1.000005000006p-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.000002p-23 + }, + { // Entry 124 + 0x1.000005fffffcp-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.fffffep-24 + }, + { // Entry 125 + 0x1.000006p-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.p-23 + }, + { // Entry 126 + 0x1.000006000008p-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.000002p-23 + }, + { // Entry 127 + 0x1.000008p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.fffffep-24 + }, + { // Entry 128 + 0x1.000008000004p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.p-23 + }, + { // Entry 129 + 0x1.00000800000cp-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.000002p-23 + }, + { // Entry 130 + 0x1.000001fffffdp-1, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.fffffep-24 + }, + { // Entry 131 + 0x1.000002000001p-1, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.p-23 + }, + { // Entry 132 + 0x1.000002000009p-1, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.000002p-23 + }, + { // Entry 133 + 0x1.000002fffffcp-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.fffffep-24 + }, + { // Entry 134 + 0x1.000003p-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.p-23 + }, + { // Entry 135 + 0x1.000003000008p-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.000002p-23 + }, + { // Entry 136 + 0x1.000004fffffap-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.fffffep-24 + }, + { // Entry 137 + 0x1.000004fffffep-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.p-23 + }, + { // Entry 138 + 0x1.000005000006p-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.000002p-23 + }, + { // Entry 139 + 0x1.000002fffffcp-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.fffffep-24 + }, + { // Entry 140 + 0x1.000003p-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.p-23 + }, + { // Entry 141 + 0x1.000003000008p-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.000002p-23 + }, + { // Entry 142 + 0x1.000003fffffcp-1, + 0x1.p0, + 0x1.p-1, + 0x1.fffffep-24 + }, + { // Entry 143 + 0x1.000004p-1, + 0x1.p0, + 0x1.p-1, + 0x1.p-23 + }, + { // Entry 144 + 0x1.000004000008p-1, + 0x1.p0, + 0x1.p-1, + 0x1.000002p-23 + }, + { // Entry 145 + 0x1.000005fffffcp-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.fffffep-24 + }, + { // Entry 146 + 0x1.000006p-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.p-23 + }, + { // Entry 147 + 0x1.000006000008p-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.000002p-23 + }, + { // Entry 148 + 0x1.000004fffffap-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.fffffep-24 + }, + { // Entry 149 + 0x1.000004fffffep-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.p-23 + }, + { // Entry 150 + 0x1.000005000006p-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.000002p-23 + }, + { // Entry 151 + 0x1.000005fffffcp-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.fffffep-24 + }, + { // Entry 152 + 0x1.000006p-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.p-23 + }, + { // Entry 153 + 0x1.000006000008p-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.000002p-23 + }, + { // Entry 154 + 0x1.000008p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.fffffep-24 + }, + { // Entry 155 + 0x1.000008000004p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.p-23 + }, + { // Entry 156 + 0x1.00000800000cp-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.000002p-23 + }, + { // Entry 157 + 0x1.00000dfffff1p-1, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.fffffep-22 + }, + { // Entry 158 + 0x1.00000e000001p-1, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.p-21 + }, + { // Entry 159 + 0x1.00000e000021p-1, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.000002p-21 + }, + { // Entry 160 + 0x1.00000efffff0p-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.fffffep-22 + }, + { // Entry 161 + 0x1.00000fp-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.p-21 + }, + { // Entry 162 + 0x1.00000f000020p-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.000002p-21 + }, + { // Entry 163 + 0x1.000010ffffeep-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.fffffep-22 + }, + { // Entry 164 + 0x1.000010fffffep-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.p-21 + }, + { // Entry 165 + 0x1.00001100001ep-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.000002p-21 + }, + { // Entry 166 + 0x1.00000efffff0p-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.fffffep-22 + }, + { // Entry 167 + 0x1.00000fp-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.p-21 + }, + { // Entry 168 + 0x1.00000f000020p-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.000002p-21 + }, + { // Entry 169 + 0x1.00000ffffff0p-1, + 0x1.p0, + 0x1.p-1, + 0x1.fffffep-22 + }, + { // Entry 170 + 0x1.000010p-1, + 0x1.p0, + 0x1.p-1, + 0x1.p-21 + }, + { // Entry 171 + 0x1.000010000020p-1, + 0x1.p0, + 0x1.p-1, + 0x1.000002p-21 + }, + { // Entry 172 + 0x1.000011fffff0p-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.fffffep-22 + }, + { // Entry 173 + 0x1.000012p-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.p-21 + }, + { // Entry 174 + 0x1.000012000020p-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.000002p-21 + }, + { // Entry 175 + 0x1.000010ffffeep-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.fffffep-22 + }, + { // Entry 176 + 0x1.000010fffffep-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.p-21 + }, + { // Entry 177 + 0x1.00001100001ep-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.000002p-21 + }, + { // Entry 178 + 0x1.000011fffff0p-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.fffffep-22 + }, + { // Entry 179 + 0x1.000012p-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.p-21 + }, + { // Entry 180 + 0x1.000012000020p-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.000002p-21 + }, + { // Entry 181 + 0x1.000013fffff4p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.fffffep-22 + }, + { // Entry 182 + 0x1.000014000004p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.p-21 + }, + { // Entry 183 + 0x1.000014000024p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.000002p-21 + }, + { // Entry 184 + 0x1.fffffep-2, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.fffffep-26 + }, + { // Entry 185 + 0x1.fffffe000002p-2, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.p-25 + }, + { // Entry 186 + 0x1.fffffe000006p-2, + 0x1.fffffep-1, + 0x1.fffffep-2, + 0x1.000002p-25 + }, + { // Entry 187 + 0x1.fffffffffffep-2, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.fffffep-26 + }, + { // Entry 188 + 0x1.p-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.p-25 + }, + { // Entry 189 + 0x1.000000000002p-1, + 0x1.fffffep-1, + 0x1.p-1, + 0x1.000002p-25 + }, + { // Entry 190 + 0x1.000001fffffdp-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.fffffep-26 + }, + { // Entry 191 + 0x1.000001fffffep-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.p-25 + }, + { // Entry 192 + 0x1.000002p-1, + 0x1.fffffep-1, + 0x1.000002p-1, + 0x1.000002p-25 + }, + { // Entry 193 + 0x1.fffffffffffep-2, + 0x1.p0, + 0x1.fffffep-2, + 0x1.fffffep-26 + }, + { // Entry 194 + 0x1.p-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.p-25 + }, + { // Entry 195 + 0x1.000000000002p-1, + 0x1.p0, + 0x1.fffffep-2, + 0x1.000002p-25 + }, + { // Entry 196 + 0x1.000000ffffffp-1, + 0x1.p0, + 0x1.p-1, + 0x1.fffffep-26 + }, + { // Entry 197 + 0x1.000001p-1, + 0x1.p0, + 0x1.p-1, + 0x1.p-25 + }, + { // Entry 198 + 0x1.000001000002p-1, + 0x1.p0, + 0x1.p-1, + 0x1.000002p-25 + }, + { // Entry 199 + 0x1.000002ffffffp-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.fffffep-26 + }, + { // Entry 200 + 0x1.000003p-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.p-25 + }, + { // Entry 201 + 0x1.000003000002p-1, + 0x1.p0, + 0x1.000002p-1, + 0x1.000002p-25 + }, + { // Entry 202 + 0x1.000001fffffdp-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.fffffep-26 + }, + { // Entry 203 + 0x1.000001fffffep-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.p-25 + }, + { // Entry 204 + 0x1.000002p-1, + 0x1.000002p0, + 0x1.fffffep-2, + 0x1.000002p-25 + }, + { // Entry 205 + 0x1.000002ffffffp-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.fffffep-26 + }, + { // Entry 206 + 0x1.000003p-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.p-25 + }, + { // Entry 207 + 0x1.000003000002p-1, + 0x1.000002p0, + 0x1.p-1, + 0x1.000002p-25 + }, + { // Entry 208 + 0x1.000005000003p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.fffffep-26 + }, + { // Entry 209 + 0x1.000005000004p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.p-25 + }, + { // Entry 210 + 0x1.000005000006p-1, + 0x1.000002p0, + 0x1.000002p-1, + 0x1.000002p-25 + }, + { // Entry 211 + 0x1.fffffc000001ffffffffffffffffffffp127, + 0x1.fffffep127, + 0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 212 + 0x1.fffffc000002p127, + 0x1.fffffep127, + 0x1.fffffep-1, + 0.0 + }, + { // Entry 213 + 0x1.fffffc000002p127, + 0x1.fffffep127, + 0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 214 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep127, + 0x1.p0, + -0x1.p-149 + }, + { // Entry 215 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p0, + 0.0 + }, + { // Entry 216 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p0, + 0x1.p-149 + }, + { // Entry 217 + HUGE_VALF, + 0x1.fffffep127, + 0x1.000002p0, + -0x1.p-149 + }, + { // Entry 218 + HUGE_VALF, + 0x1.fffffep127, + 0x1.000002p0, + 0.0 + }, + { // Entry 219 + HUGE_VALF, + 0x1.fffffep127, + 0x1.000002p0, + 0x1.p-149 + }, + { // Entry 220 + -0x1.fffffep103, + 0x1.fffffep127, + 0x1.fffffep-1, + -0x1.fffffep127 + }, + { // Entry 221 + 0.0, + 0x1.fffffep127, + 0x1.p0, + -0x1.fffffep127 + }, + { // Entry 222 + 0x1.fffffep104, + 0x1.fffffep127, + 0x1.000002p0, + -0x1.fffffep127 + }, + { // Entry 223 + 0x1.fffffa000003ffffffffffffffffffffp127, + 0x1.fffffep63, + 0x1.fffffcp63, + -0x1.p-149 + }, + { // Entry 224 + 0x1.fffffa000004p127, + 0x1.fffffep63, + 0x1.fffffcp63, + 0.0 + }, + { // Entry 225 + 0x1.fffffa000004p127, + 0x1.fffffep63, + 0x1.fffffcp63, + 0x1.p-149 + }, + { // Entry 226 + 0x1.fffffc000001ffffffffffffffffffffp127, + 0x1.fffffep63, + 0x1.fffffep63, + -0x1.p-149 + }, + { // Entry 227 + 0x1.fffffc000002p127, + 0x1.fffffep63, + 0x1.fffffep63, + 0.0 + }, + { // Entry 228 + 0x1.fffffc000002p127, + 0x1.fffffep63, + 0x1.fffffep63, + 0x1.p-149 + }, + { // Entry 229 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep63, + 0x1.p64, + -0x1.p-149 + }, + { // Entry 230 + 0x1.fffffep127, + 0x1.fffffep63, + 0x1.p64, + 0.0 + }, + { // Entry 231 + 0x1.fffffep127, + 0x1.fffffep63, + 0x1.p64, + 0x1.p-149 + }, + { // Entry 232 + -0x1.7ffffep105, + 0x1.fffffcp63, + 0x1.fffffcp63, + -0x1.fffffep127 + }, + { // Entry 233 + -0x1.fffffep104, + 0x1.fffffcp63, + 0x1.fffffep63, + -0x1.fffffep127 + }, + { // Entry 234 + -0x1.p104, + 0x1.fffffcp63, + 0x1.p64, + -0x1.fffffep127 + }, + { // Entry 235 + -0x1.fffffep104, + 0x1.fffffep63, + 0x1.fffffcp63, + -0x1.fffffep127 + }, + { // Entry 236 + -0x1.fffffep103, + 0x1.fffffep63, + 0x1.fffffep63, + -0x1.fffffep127 + }, + { // Entry 237 + 0.0, + 0x1.fffffep63, + 0x1.p64, + -0x1.fffffep127 + }, + { // Entry 238 + -0x1.p104, + 0x1.p64, + 0x1.fffffcp63, + -0x1.fffffep127 + }, + { // Entry 239 + 0.0, + 0x1.p64, + 0x1.fffffep63, + -0x1.fffffep127 + }, + { // Entry 240 + 0x1.p104, + 0x1.p64, + 0x1.p64, + -0x1.fffffep127 + }, + { // Entry 241 + -0x1.fffff8p103, + 0x1.fffffcp126, + -0x1.000002p1, + 0x1.fffffep127 + }, + { // Entry 242 + 0x1.p104, + 0x1.fffffcp126, + -0x1.p1, + 0x1.fffffep127 + }, + { // Entry 243 + 0x1.fffffep104, + 0x1.fffffcp126, + -0x1.fffffep0, + 0x1.fffffep127 + }, + { // Entry 244 + -0x1.fffffep104, + 0x1.fffffep126, + -0x1.000002p1, + 0x1.fffffep127 + }, + { // Entry 245 + 0.0, + 0x1.fffffep126, + -0x1.p1, + 0x1.fffffep127 + }, + { // Entry 246 + 0x1.fffffep103, + 0x1.fffffep126, + -0x1.fffffep0, + 0x1.fffffep127 + }, + { // Entry 247 + -0x1.80p105, + 0x1.p127, + -0x1.000002p1, + 0x1.fffffep127 + }, + { // Entry 248 + -0x1.p104, + 0x1.p127, + -0x1.p1, + 0x1.fffffep127 + }, + { // Entry 249 + 0.0, + 0x1.p127, + -0x1.fffffep0, + 0x1.fffffep127 + }, + { // Entry 250 + -HUGE_VALF, + 0x1.fffffcp126, + -0x1.000002p1, + -0x1.p-149 + }, + { // Entry 251 + -HUGE_VALF, + 0x1.fffffcp126, + -0x1.000002p1, + 0.0 + }, + { // Entry 252 + -HUGE_VALF, + 0x1.fffffcp126, + -0x1.000002p1, + 0x1.p-149 + }, + { // Entry 253 + -0x1.fffffcp127, + 0x1.fffffcp126, + -0x1.p1, + -0x1.p-149 + }, + { // Entry 254 + -0x1.fffffcp127, + 0x1.fffffcp126, + -0x1.p1, + 0.0 + }, + { // Entry 255 + -0x1.fffffbffffffffffffffffffffffffffp127, + 0x1.fffffcp126, + -0x1.p1, + 0x1.p-149 + }, + { // Entry 256 + -0x1.fffffa000004p127, + 0x1.fffffcp126, + -0x1.fffffep0, + -0x1.p-149 + }, + { // Entry 257 + -0x1.fffffa000004p127, + 0x1.fffffcp126, + -0x1.fffffep0, + 0.0 + }, + { // Entry 258 + -0x1.fffffa000003ffffffffffffffffffffp127, + 0x1.fffffcp126, + -0x1.fffffep0, + 0x1.p-149 + }, + { // Entry 259 + -HUGE_VALF, + 0x1.fffffep126, + -0x1.000002p1, + -0x1.p-149 + }, + { // Entry 260 + -HUGE_VALF, + 0x1.fffffep126, + -0x1.000002p1, + 0.0 + }, + { // Entry 261 + -HUGE_VALF, + 0x1.fffffep126, + -0x1.000002p1, + 0x1.p-149 + }, + { // Entry 262 + -0x1.fffffep127, + 0x1.fffffep126, + -0x1.p1, + -0x1.p-149 + }, + { // Entry 263 + -0x1.fffffep127, + 0x1.fffffep126, + -0x1.p1, + 0.0 + }, + { // Entry 264 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep126, + -0x1.p1, + 0x1.p-149 + }, + { // Entry 265 + -0x1.fffffc000002p127, + 0x1.fffffep126, + -0x1.fffffep0, + -0x1.p-149 + }, + { // Entry 266 + -0x1.fffffc000002p127, + 0x1.fffffep126, + -0x1.fffffep0, + 0.0 + }, + { // Entry 267 + -0x1.fffffc000001ffffffffffffffffffffp127, + 0x1.fffffep126, + -0x1.fffffep0, + 0x1.p-149 + }, + { // Entry 268 + -HUGE_VALF, + 0x1.p127, + -0x1.000002p1, + -0x1.p-149 + }, + { // Entry 269 + -HUGE_VALF, + 0x1.p127, + -0x1.000002p1, + 0.0 + }, + { // Entry 270 + -HUGE_VALF, + 0x1.p127, + -0x1.000002p1, + 0x1.p-149 + }, + { // Entry 271 + -HUGE_VALF, + 0x1.p127, + -0x1.p1, + -0x1.p-149 + }, + { // Entry 272 + -HUGE_VALF, + 0x1.p127, + -0x1.p1, + 0.0 + }, + { // Entry 273 + -HUGE_VALF, + 0x1.p127, + -0x1.p1, + 0x1.p-149 + }, + { // Entry 274 + -0x1.fffffep127, + 0x1.p127, + -0x1.fffffep0, + -0x1.p-149 + }, + { // Entry 275 + -0x1.fffffep127, + 0x1.p127, + -0x1.fffffep0, + 0.0 + }, + { // Entry 276 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p127, + -0x1.fffffep0, + 0x1.p-149 + }, + { // Entry 277 + 0x1.7ffffc800001p127, + 0x1.fffffcp126, + 0x1.fffffep-2, + 0x1.fffffcp126 + }, + { // Entry 278 + 0x1.7ffffd800001p127, + 0x1.fffffcp126, + 0x1.fffffep-2, + 0x1.fffffep126 + }, + { // Entry 279 + 0x1.7ffffe800001p127, + 0x1.fffffcp126, + 0x1.fffffep-2, + 0x1.p127 + }, + { // Entry 280 + 0x1.7ffffdp127, + 0x1.fffffcp126, + 0x1.p-1, + 0x1.fffffcp126 + }, + { // Entry 281 + 0x1.7ffffep127, + 0x1.fffffcp126, + 0x1.p-1, + 0x1.fffffep126 + }, + { // Entry 282 + 0x1.7fffffp127, + 0x1.fffffcp126, + 0x1.p-1, + 0x1.p127 + }, + { // Entry 283 + 0x1.7ffffdfffffep127, + 0x1.fffffcp126, + 0x1.000002p-1, + 0x1.fffffcp126 + }, + { // Entry 284 + 0x1.7ffffefffffep127, + 0x1.fffffcp126, + 0x1.000002p-1, + 0x1.fffffep126 + }, + { // Entry 285 + 0x1.7ffffffffffep127, + 0x1.fffffcp126, + 0x1.000002p-1, + 0x1.p127 + }, + { // Entry 286 + 0x1.7ffffd00000080p127, + 0x1.fffffep126, + 0x1.fffffep-2, + 0x1.fffffcp126 + }, + { // Entry 287 + 0x1.7ffffe00000080p127, + 0x1.fffffep126, + 0x1.fffffep-2, + 0x1.fffffep126 + }, + { // Entry 288 + 0x1.7fffff00000080p127, + 0x1.fffffep126, + 0x1.fffffep-2, + 0x1.p127 + }, + { // Entry 289 + 0x1.7ffffd80p127, + 0x1.fffffep126, + 0x1.p-1, + 0x1.fffffcp126 + }, + { // Entry 290 + 0x1.7ffffe80p127, + 0x1.fffffep126, + 0x1.p-1, + 0x1.fffffep126 + }, + { // Entry 291 + 0x1.7fffff80p127, + 0x1.fffffep126, + 0x1.p-1, + 0x1.p127 + }, + { // Entry 292 + 0x1.7ffffe7fffffp127, + 0x1.fffffep126, + 0x1.000002p-1, + 0x1.fffffcp126 + }, + { // Entry 293 + 0x1.7fffff7fffffp127, + 0x1.fffffep126, + 0x1.000002p-1, + 0x1.fffffep126 + }, + { // Entry 294 + 0x1.8000007fffffp127, + 0x1.fffffep126, + 0x1.000002p-1, + 0x1.p127 + }, + { // Entry 295 + 0x1.7ffffd80p127, + 0x1.p127, + 0x1.fffffep-2, + 0x1.fffffcp126 + }, + { // Entry 296 + 0x1.7ffffe80p127, + 0x1.p127, + 0x1.fffffep-2, + 0x1.fffffep126 + }, + { // Entry 297 + 0x1.7fffff80p127, + 0x1.p127, + 0x1.fffffep-2, + 0x1.p127 + }, + { // Entry 298 + 0x1.7ffffep127, + 0x1.p127, + 0x1.p-1, + 0x1.fffffcp126 + }, + { // Entry 299 + 0x1.7fffffp127, + 0x1.p127, + 0x1.p-1, + 0x1.fffffep126 + }, + { // Entry 300 + 0x1.80p127, + 0x1.p127, + 0x1.p-1, + 0x1.p127 + }, + { // Entry 301 + 0x1.7fffffp127, + 0x1.p127, + 0x1.000002p-1, + 0x1.fffffcp126 + }, + { // Entry 302 + 0x1.80p127, + 0x1.p127, + 0x1.000002p-1, + 0x1.fffffep126 + }, + { // Entry 303 + 0x1.800001p127, + 0x1.p127, + 0x1.000002p-1, + 0x1.p127 + }, + { // Entry 304 + 0x1.fffffb000002p127, + 0x1.fffffcp126, + 0x1.fffffep-1, + 0x1.fffffcp126 + }, + { // Entry 305 + 0x1.fffffc000002p127, + 0x1.fffffcp126, + 0x1.fffffep-1, + 0x1.fffffep126 + }, + { // Entry 306 + 0x1.fffffd000002p127, + 0x1.fffffcp126, + 0x1.fffffep-1, + 0x1.p127 + }, + { // Entry 307 + 0x1.fffffcp127, + 0x1.fffffcp126, + 0x1.p0, + 0x1.fffffcp126 + }, + { // Entry 308 + 0x1.fffffdp127, + 0x1.fffffcp126, + 0x1.p0, + 0x1.fffffep126 + }, + { // Entry 309 + 0x1.fffffep127, + 0x1.fffffcp126, + 0x1.p0, + 0x1.p127 + }, + { // Entry 310 + 0x1.fffffdfffffcp127, + 0x1.fffffcp126, + 0x1.000002p0, + 0x1.fffffcp126 + }, + { // Entry 311 + 0x1.fffffefffffcp127, + 0x1.fffffcp126, + 0x1.000002p0, + 0x1.fffffep126 + }, + { // Entry 312 + HUGE_VALF, + 0x1.fffffcp126, + 0x1.000002p0, + 0x1.p127 + }, + { // Entry 313 + 0x1.fffffc000001p127, + 0x1.fffffep126, + 0x1.fffffep-1, + 0x1.fffffcp126 + }, + { // Entry 314 + 0x1.fffffd000001p127, + 0x1.fffffep126, + 0x1.fffffep-1, + 0x1.fffffep126 + }, + { // Entry 315 + 0x1.fffffe000001p127, + 0x1.fffffep126, + 0x1.fffffep-1, + 0x1.p127 + }, + { // Entry 316 + 0x1.fffffdp127, + 0x1.fffffep126, + 0x1.p0, + 0x1.fffffcp126 + }, + { // Entry 317 + 0x1.fffffep127, + 0x1.fffffep126, + 0x1.p0, + 0x1.fffffep126 + }, + { // Entry 318 + HUGE_VALF, + 0x1.fffffep126, + 0x1.p0, + 0x1.p127 + }, + { // Entry 319 + 0x1.fffffefffffep127, + 0x1.fffffep126, + 0x1.000002p0, + 0x1.fffffcp126 + }, + { // Entry 320 + HUGE_VALF, + 0x1.fffffep126, + 0x1.000002p0, + 0x1.fffffep126 + }, + { // Entry 321 + HUGE_VALF, + 0x1.fffffep126, + 0x1.000002p0, + 0x1.p127 + }, + { // Entry 322 + 0x1.fffffdp127, + 0x1.p127, + 0x1.fffffep-1, + 0x1.fffffcp126 + }, + { // Entry 323 + 0x1.fffffep127, + 0x1.p127, + 0x1.fffffep-1, + 0x1.fffffep126 + }, + { // Entry 324 + HUGE_VALF, + 0x1.p127, + 0x1.fffffep-1, + 0x1.p127 + }, + { // Entry 325 + 0x1.fffffep127, + 0x1.p127, + 0x1.p0, + 0x1.fffffcp126 + }, + { // Entry 326 + HUGE_VALF, + 0x1.p127, + 0x1.p0, + 0x1.fffffep126 + }, + { // Entry 327 + HUGE_VALF, + 0x1.p127, + 0x1.p0, + 0x1.p127 + }, + { // Entry 328 + HUGE_VALF, + 0x1.p127, + 0x1.000002p0, + 0x1.fffffcp126 + }, + { // Entry 329 + HUGE_VALF, + 0x1.p127, + 0x1.000002p0, + 0x1.fffffep126 + }, + { // Entry 330 + HUGE_VALF, + 0x1.p127, + 0x1.000002p0, + 0x1.p127 + }, + { // Entry 331 + 0x1.fffffb000002p127, + 0x1.fffffcp126, + 0x1.fffffep-1, + 0x1.fffffcp126 + }, + { // Entry 332 + 0x1.fffffc000002p127, + 0x1.fffffcp126, + 0x1.fffffep-1, + 0x1.fffffep126 + }, + { // Entry 333 + 0x1.fffffd000002p127, + 0x1.fffffcp126, + 0x1.fffffep-1, + 0x1.p127 + }, + { // Entry 334 + 0x1.fffffcp127, + 0x1.fffffcp126, + 0x1.p0, + 0x1.fffffcp126 + }, + { // Entry 335 + 0x1.fffffdp127, + 0x1.fffffcp126, + 0x1.p0, + 0x1.fffffep126 + }, + { // Entry 336 + 0x1.fffffep127, + 0x1.fffffcp126, + 0x1.p0, + 0x1.p127 + }, + { // Entry 337 + 0x1.fffffdfffffcp127, + 0x1.fffffcp126, + 0x1.000002p0, + 0x1.fffffcp126 + }, + { // Entry 338 + 0x1.fffffefffffcp127, + 0x1.fffffcp126, + 0x1.000002p0, + 0x1.fffffep126 + }, + { // Entry 339 + HUGE_VALF, + 0x1.fffffcp126, + 0x1.000002p0, + 0x1.p127 + }, + { // Entry 340 + 0x1.fffffc000001p127, + 0x1.fffffep126, + 0x1.fffffep-1, + 0x1.fffffcp126 + }, + { // Entry 341 + 0x1.fffffd000001p127, + 0x1.fffffep126, + 0x1.fffffep-1, + 0x1.fffffep126 + }, + { // Entry 342 + 0x1.fffffe000001p127, + 0x1.fffffep126, + 0x1.fffffep-1, + 0x1.p127 + }, + { // Entry 343 + 0x1.fffffdp127, + 0x1.fffffep126, + 0x1.p0, + 0x1.fffffcp126 + }, + { // Entry 344 + 0x1.fffffep127, + 0x1.fffffep126, + 0x1.p0, + 0x1.fffffep126 + }, + { // Entry 345 + HUGE_VALF, + 0x1.fffffep126, + 0x1.p0, + 0x1.p127 + }, + { // Entry 346 + 0x1.fffffefffffep127, + 0x1.fffffep126, + 0x1.000002p0, + 0x1.fffffcp126 + }, + { // Entry 347 + HUGE_VALF, + 0x1.fffffep126, + 0x1.000002p0, + 0x1.fffffep126 + }, + { // Entry 348 + HUGE_VALF, + 0x1.fffffep126, + 0x1.000002p0, + 0x1.p127 + }, + { // Entry 349 + 0x1.fffffdp127, + 0x1.p127, + 0x1.fffffep-1, + 0x1.fffffcp126 + }, + { // Entry 350 + 0x1.fffffep127, + 0x1.p127, + 0x1.fffffep-1, + 0x1.fffffep126 + }, + { // Entry 351 + HUGE_VALF, + 0x1.p127, + 0x1.fffffep-1, + 0x1.p127 + }, + { // Entry 352 + 0x1.fffffep127, + 0x1.p127, + 0x1.p0, + 0x1.fffffcp126 + }, + { // Entry 353 + HUGE_VALF, + 0x1.p127, + 0x1.p0, + 0x1.fffffep126 + }, + { // Entry 354 + HUGE_VALF, + 0x1.p127, + 0x1.p0, + 0x1.p127 + }, + { // Entry 355 + HUGE_VALF, + 0x1.p127, + 0x1.000002p0, + 0x1.fffffcp126 + }, + { // Entry 356 + HUGE_VALF, + 0x1.p127, + 0x1.000002p0, + 0x1.fffffep126 + }, + { // Entry 357 + HUGE_VALF, + 0x1.p127, + 0x1.000002p0, + 0x1.p127 + }, + { // Entry 358 + 0x1.fffffd000001p0, + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 359 + 0x1.fffffe000001p0, + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 360 + 0x1.00000000000080p1, + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 361 + 0x1.fffffep0, + 0x1.fffffep-1, + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 362 + 0x1.ffffffp0, + 0x1.fffffep-1, + 0x1.p0, + 0x1.p0 + }, + { // Entry 363 + 0x1.00000080p1, + 0x1.fffffep-1, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 364 + 0x1.fffffffffffep0, + 0x1.fffffep-1, + 0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 365 + 0x1.0000007fffffp1, + 0x1.fffffep-1, + 0x1.000002p0, + 0x1.p0 + }, + { // Entry 366 + 0x1.0000017fffffp1, + 0x1.fffffep-1, + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 367 + 0x1.fffffep0, + 0x1.p0, + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 368 + 0x1.ffffffp0, + 0x1.p0, + 0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 369 + 0x1.00000080p1, + 0x1.p0, + 0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 370 + 0x1.ffffffp0, + 0x1.p0, + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 371 + 0x1.p1, + 0x1.p0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 372 + 0x1.000001p1, + 0x1.p0, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 373 + 0x1.00000080p1, + 0x1.p0, + 0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 374 + 0x1.000001p1, + 0x1.p0, + 0x1.000002p0, + 0x1.p0 + }, + { // Entry 375 + 0x1.000002p1, + 0x1.p0, + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 376 + 0x1.fffffffffffep0, + 0x1.000002p0, + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 377 + 0x1.0000007fffffp1, + 0x1.000002p0, + 0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 378 + 0x1.0000017fffffp1, + 0x1.000002p0, + 0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 379 + 0x1.00000080p1, + 0x1.000002p0, + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 380 + 0x1.000001p1, + 0x1.000002p0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 381 + 0x1.000002p1, + 0x1.000002p0, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 382 + 0x1.000001800002p1, + 0x1.000002p0, + 0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 383 + 0x1.000002000002p1, + 0x1.000002p0, + 0x1.000002p0, + 0x1.p0 + }, + { // Entry 384 + 0x1.000003000002p1, + 0x1.000002p0, + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 385 + -0x1.fffffep-24, + 0x1.fffffep-1, + -0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 386 + -0x1.fffffcp-25, + 0x1.fffffep-1, + -0x1.000002p0, + 0x1.p0 + }, + { // Entry 387 + 0x1.000002p-24, + 0x1.fffffep-1, + -0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 388 + 0.0, + 0x1.fffffep-1, + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 389 + 0x1.p-24, + 0x1.fffffep-1, + -0x1.p0, + 0x1.p0 + }, + { // Entry 390 + 0x1.80p-23, + 0x1.fffffep-1, + -0x1.p0, + 0x1.000002p0 + }, + { // Entry 391 + 0x1.fffffep-25, + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 392 + 0x1.ffffffp-24, + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 393 + 0x1.ffffff80p-23, + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 394 + -0x1.80p-23, + 0x1.p0, + -0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 395 + -0x1.p-23, + 0x1.p0, + -0x1.000002p0, + 0x1.p0 + }, + { // Entry 396 + 0.0, + 0x1.p0, + -0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 397 + -0x1.p-24, + 0x1.p0, + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 398 + 0.0, + 0x1.p0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 399 + 0x1.p-23, + 0x1.p0, + -0x1.p0, + 0x1.000002p0 + }, + { // Entry 400 + 0.0, + 0x1.p0, + -0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 401 + 0x1.p-24, + 0x1.p0, + -0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 402 + 0x1.80p-23, + 0x1.p0, + -0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 403 + -0x1.400001p-22, + 0x1.000002p0, + -0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 404 + -0x1.000001p-22, + 0x1.000002p0, + -0x1.000002p0, + 0x1.p0 + }, + { // Entry 405 + -0x1.000002p-23, + 0x1.000002p0, + -0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 406 + -0x1.80p-23, + 0x1.000002p0, + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 407 + -0x1.p-23, + 0x1.000002p0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 408 + 0.0, + 0x1.000002p0, + -0x1.p0, + 0x1.000002p0 + }, + { // Entry 409 + -0x1.fffffep-24, + 0x1.000002p0, + -0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 410 + -0x1.fffffcp-25, + 0x1.000002p0, + -0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 411 + 0x1.000002p-24, + 0x1.000002p0, + -0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 412 + 0x1.fffffc000001ffffffffffffffffffffp-1, + 0x1.fffffep-1, + 0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 413 + 0x1.fffffc000002p-1, + 0x1.fffffep-1, + 0x1.fffffep-1, + 0.0 + }, + { // Entry 414 + 0x1.fffffc000002p-1, + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 415 + 0x1.fffffdffffffffffffffffffffffffffp-1, + 0x1.fffffep-1, + 0x1.p0, + -0x1.p-149 + }, + { // Entry 416 + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.p0, + 0.0 + }, + { // Entry 417 + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.p0, + 0x1.p-149 + }, + { // Entry 418 + 0x1.000000fffffdffffffffffffffffffffp0, + 0x1.fffffep-1, + 0x1.000002p0, + -0x1.p-149 + }, + { // Entry 419 + 0x1.000000fffffep0, + 0x1.fffffep-1, + 0x1.000002p0, + 0.0 + }, + { // Entry 420 + 0x1.000000fffffep0, + 0x1.fffffep-1, + 0x1.000002p0, + 0x1.p-149 + }, + { // Entry 421 + 0x1.fffffdffffffffffffffffffffffffffp-1, + 0x1.p0, + 0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 422 + 0x1.fffffep-1, + 0x1.p0, + 0x1.fffffep-1, + 0.0 + }, + { // Entry 423 + 0x1.fffffep-1, + 0x1.p0, + 0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 424 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.p0, + 0x1.p0, + -0x1.p-149 + }, + { // Entry 425 + 0x1.p0, + 0x1.p0, + 0x1.p0, + 0.0 + }, + { // Entry 426 + 0x1.p0, + 0x1.p0, + 0x1.p0, + 0x1.p-149 + }, + { // Entry 427 + 0x1.000001ffffffffffffffffffffffffffp0, + 0x1.p0, + 0x1.000002p0, + -0x1.p-149 + }, + { // Entry 428 + 0x1.000002p0, + 0x1.p0, + 0x1.000002p0, + 0.0 + }, + { // Entry 429 + 0x1.000002p0, + 0x1.p0, + 0x1.000002p0, + 0x1.p-149 + }, + { // Entry 430 + 0x1.000000fffffdffffffffffffffffffffp0, + 0x1.000002p0, + 0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 431 + 0x1.000000fffffep0, + 0x1.000002p0, + 0x1.fffffep-1, + 0.0 + }, + { // Entry 432 + 0x1.000000fffffep0, + 0x1.000002p0, + 0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 433 + 0x1.000001ffffffffffffffffffffffffffp0, + 0x1.000002p0, + 0x1.p0, + -0x1.p-149 + }, + { // Entry 434 + 0x1.000002p0, + 0x1.000002p0, + 0x1.p0, + 0.0 + }, + { // Entry 435 + 0x1.000002p0, + 0x1.000002p0, + 0x1.p0, + 0x1.p-149 + }, + { // Entry 436 + 0x1.000004000003ffffffffffffffffffffp0, + 0x1.000002p0, + 0x1.000002p0, + -0x1.p-149 + }, + { // Entry 437 + 0x1.000004000004p0, + 0x1.000002p0, + 0x1.000002p0, + 0.0 + }, + { // Entry 438 + 0x1.000004000004p0, + 0x1.000002p0, + 0x1.000002p0, + 0x1.p-149 + }, + { // Entry 439 + -0x1.000000fffffep0, + 0x1.fffffep-1, + -0x1.000002p0, + -0x1.p-149 + }, + { // Entry 440 + -0x1.000000fffffep0, + 0x1.fffffep-1, + -0x1.000002p0, + 0.0 + }, + { // Entry 441 + -0x1.000000fffffdffffffffffffffffffffp0, + 0x1.fffffep-1, + -0x1.000002p0, + 0x1.p-149 + }, + { // Entry 442 + -0x1.fffffep-1, + 0x1.fffffep-1, + -0x1.p0, + -0x1.p-149 + }, + { // Entry 443 + -0x1.fffffep-1, + 0x1.fffffep-1, + -0x1.p0, + 0.0 + }, + { // Entry 444 + -0x1.fffffdffffffffffffffffffffffffffp-1, + 0x1.fffffep-1, + -0x1.p0, + 0x1.p-149 + }, + { // Entry 445 + -0x1.fffffc000002p-1, + 0x1.fffffep-1, + -0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 446 + -0x1.fffffc000002p-1, + 0x1.fffffep-1, + -0x1.fffffep-1, + 0.0 + }, + { // Entry 447 + -0x1.fffffc000001ffffffffffffffffffffp-1, + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 448 + -0x1.000002p0, + 0x1.p0, + -0x1.000002p0, + -0x1.p-149 + }, + { // Entry 449 + -0x1.000002p0, + 0x1.p0, + -0x1.000002p0, + 0.0 + }, + { // Entry 450 + -0x1.000001ffffffffffffffffffffffffffp0, + 0x1.p0, + -0x1.000002p0, + 0x1.p-149 + }, + { // Entry 451 + -0x1.p0, + 0x1.p0, + -0x1.p0, + -0x1.p-149 + }, + { // Entry 452 + -0x1.p0, + 0x1.p0, + -0x1.p0, + 0.0 + }, + { // Entry 453 + -0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.p0, + -0x1.p0, + 0x1.p-149 + }, + { // Entry 454 + -0x1.fffffep-1, + 0x1.p0, + -0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 455 + -0x1.fffffep-1, + 0x1.p0, + -0x1.fffffep-1, + 0.0 + }, + { // Entry 456 + -0x1.fffffdffffffffffffffffffffffffffp-1, + 0x1.p0, + -0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 457 + -0x1.000004000004p0, + 0x1.000002p0, + -0x1.000002p0, + -0x1.p-149 + }, + { // Entry 458 + -0x1.000004000004p0, + 0x1.000002p0, + -0x1.000002p0, + 0.0 + }, + { // Entry 459 + -0x1.000004000003ffffffffffffffffffffp0, + 0x1.000002p0, + -0x1.000002p0, + 0x1.p-149 + }, + { // Entry 460 + -0x1.000002p0, + 0x1.000002p0, + -0x1.p0, + -0x1.p-149 + }, + { // Entry 461 + -0x1.000002p0, + 0x1.000002p0, + -0x1.p0, + 0.0 + }, + { // Entry 462 + -0x1.000001ffffffffffffffffffffffffffp0, + 0x1.000002p0, + -0x1.p0, + 0x1.p-149 + }, + { // Entry 463 + -0x1.000000fffffep0, + 0x1.000002p0, + -0x1.fffffep-1, + -0x1.p-149 + }, + { // Entry 464 + -0x1.000000fffffep0, + 0x1.000002p0, + -0x1.fffffep-1, + 0.0 + }, + { // Entry 465 + -0x1.000000fffffdffffffffffffffffffffp0, + 0x1.000002p0, + -0x1.fffffep-1, + 0x1.p-149 + }, + { // Entry 466 + 0x1.000ffdfff001p0, + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.fffffep-13 + }, + { // Entry 467 + 0x1.000ffe000001p0, + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.p-12 + }, + { // Entry 468 + 0x1.000ffe002001p0, + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.000002p-12 + }, + { // Entry 469 + 0x1.000ffefff0p0, + 0x1.fffffep-1, + 0x1.p0, + 0x1.fffffep-13 + }, + { // Entry 470 + 0x1.000fffp0, + 0x1.fffffep-1, + 0x1.p0, + 0x1.p-12 + }, + { // Entry 471 + 0x1.000fff0020p0, + 0x1.fffffep-1, + 0x1.p0, + 0x1.000002p-12 + }, + { // Entry 472 + 0x1.001000ffeffep0, + 0x1.fffffep-1, + 0x1.000002p0, + 0x1.fffffep-13 + }, + { // Entry 473 + 0x1.001000fffffep0, + 0x1.fffffep-1, + 0x1.000002p0, + 0x1.p-12 + }, + { // Entry 474 + 0x1.001001001ffep0, + 0x1.fffffep-1, + 0x1.000002p0, + 0x1.000002p-12 + }, + { // Entry 475 + 0x1.000ffefff0p0, + 0x1.p0, + 0x1.fffffep-1, + 0x1.fffffep-13 + }, + { // Entry 476 + 0x1.000fffp0, + 0x1.p0, + 0x1.fffffep-1, + 0x1.p-12 + }, + { // Entry 477 + 0x1.000fff0020p0, + 0x1.p0, + 0x1.fffffep-1, + 0x1.000002p-12 + }, + { // Entry 478 + 0x1.000ffffff0p0, + 0x1.p0, + 0x1.p0, + 0x1.fffffep-13 + }, + { // Entry 479 + 0x1.0010p0, + 0x1.p0, + 0x1.p0, + 0x1.p-12 + }, + { // Entry 480 + 0x1.0010000020p0, + 0x1.p0, + 0x1.p0, + 0x1.000002p-12 + }, + { // Entry 481 + 0x1.001001fff0p0, + 0x1.p0, + 0x1.000002p0, + 0x1.fffffep-13 + }, + { // Entry 482 + 0x1.001002p0, + 0x1.p0, + 0x1.000002p0, + 0x1.p-12 + }, + { // Entry 483 + 0x1.0010020020p0, + 0x1.p0, + 0x1.000002p0, + 0x1.000002p-12 + }, + { // Entry 484 + 0x1.001000ffeffep0, + 0x1.000002p0, + 0x1.fffffep-1, + 0x1.fffffep-13 + }, + { // Entry 485 + 0x1.001000fffffep0, + 0x1.000002p0, + 0x1.fffffep-1, + 0x1.p-12 + }, + { // Entry 486 + 0x1.001001001ffep0, + 0x1.000002p0, + 0x1.fffffep-1, + 0x1.000002p-12 + }, + { // Entry 487 + 0x1.001001fff0p0, + 0x1.000002p0, + 0x1.p0, + 0x1.fffffep-13 + }, + { // Entry 488 + 0x1.001002p0, + 0x1.000002p0, + 0x1.p0, + 0x1.p-12 + }, + { // Entry 489 + 0x1.0010020020p0, + 0x1.000002p0, + 0x1.p0, + 0x1.000002p-12 + }, + { // Entry 490 + 0x1.001003fff004p0, + 0x1.000002p0, + 0x1.000002p0, + 0x1.fffffep-13 + }, + { // Entry 491 + 0x1.001004000004p0, + 0x1.000002p0, + 0x1.000002p0, + 0x1.p-12 + }, + { // Entry 492 + 0x1.001004002004p0, + 0x1.000002p0, + 0x1.000002p0, + 0x1.000002p-12 + }, + { // Entry 493 + -0x1.ffe002001ffcp-1, + 0x1.fffffep-1, + -0x1.000002p0, + 0x1.fffffep-13 + }, + { // Entry 494 + -0x1.ffe001fffffcp-1, + 0x1.fffffep-1, + -0x1.000002p0, + 0x1.p-12 + }, + { // Entry 495 + -0x1.ffe001ffbffcp-1, + 0x1.fffffep-1, + -0x1.000002p0, + 0x1.000002p-12 + }, + { // Entry 496 + -0x1.ffdffe0020p-1, + 0x1.fffffep-1, + -0x1.p0, + 0x1.fffffep-13 + }, + { // Entry 497 + -0x1.ffdffep-1, + 0x1.fffffep-1, + -0x1.p0, + 0x1.p-12 + }, + { // Entry 498 + -0x1.ffdffdffc0p-1, + 0x1.fffffep-1, + -0x1.p0, + 0x1.000002p-12 + }, + { // Entry 499 + -0x1.ffdffc002002p-1, + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.fffffep-13 + }, + { // Entry 500 + -0x1.ffdffc000002p-1, + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.p-12 + }, + { // Entry 501 + -0x1.ffdffbffc002p-1, + 0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.000002p-12 + }, + { // Entry 502 + -0x1.ffe0040020p-1, + 0x1.p0, + -0x1.000002p0, + 0x1.fffffep-13 + }, + { // Entry 503 + -0x1.ffe004p-1, + 0x1.p0, + -0x1.000002p0, + 0x1.p-12 + }, + { // Entry 504 + -0x1.ffe003ffc0p-1, + 0x1.p0, + -0x1.000002p0, + 0x1.000002p-12 + }, + { // Entry 505 + -0x1.ffe0000020p-1, + 0x1.p0, + -0x1.p0, + 0x1.fffffep-13 + }, + { // Entry 506 + -0x1.ffe0p-1, + 0x1.p0, + -0x1.p0, + 0x1.p-12 + }, + { // Entry 507 + -0x1.ffdfffffc0p-1, + 0x1.p0, + -0x1.p0, + 0x1.000002p-12 + }, + { // Entry 508 + -0x1.ffdffe0020p-1, + 0x1.p0, + -0x1.fffffep-1, + 0x1.fffffep-13 + }, + { // Entry 509 + -0x1.ffdffep-1, + 0x1.p0, + -0x1.fffffep-1, + 0x1.p-12 + }, + { // Entry 510 + -0x1.ffdffdffc0p-1, + 0x1.p0, + -0x1.fffffep-1, + 0x1.000002p-12 + }, + { // Entry 511 + -0x1.ffe008002008p-1, + 0x1.000002p0, + -0x1.000002p0, + 0x1.fffffep-13 + }, + { // Entry 512 + -0x1.ffe008000008p-1, + 0x1.000002p0, + -0x1.000002p0, + 0x1.p-12 + }, + { // Entry 513 + -0x1.ffe007ffc008p-1, + 0x1.000002p0, + -0x1.000002p0, + 0x1.000002p-12 + }, + { // Entry 514 + -0x1.ffe0040020p-1, + 0x1.000002p0, + -0x1.p0, + 0x1.fffffep-13 + }, + { // Entry 515 + -0x1.ffe004p-1, + 0x1.000002p0, + -0x1.p0, + 0x1.p-12 + }, + { // Entry 516 + -0x1.ffe003ffc0p-1, + 0x1.000002p0, + -0x1.p0, + 0x1.000002p-12 + }, + { // Entry 517 + -0x1.ffe002001ffcp-1, + 0x1.000002p0, + -0x1.fffffep-1, + 0x1.fffffep-13 + }, + { // Entry 518 + -0x1.ffe001fffffcp-1, + 0x1.000002p0, + -0x1.fffffep-1, + 0x1.p-12 + }, + { // Entry 519 + -0x1.ffe001ffbffcp-1, + 0x1.000002p0, + -0x1.fffffep-1, + 0x1.000002p-12 + }, + { // Entry 520 + -0x1.ffffff80p0, + 0x1.fffffep22, + 0x1.fffffep-1, + -0x1.000002p23 + }, + { // Entry 521 + -0x1.ffffffp-1, + 0x1.fffffep22, + 0x1.fffffep-1, + -0x1.p23 + }, + { // Entry 522 + -0x1.fffffep-2, + 0x1.fffffep22, + 0x1.fffffep-1, + -0x1.fffffep22 + }, + { // Entry 523 + -0x1.80p0, + 0x1.fffffep22, + 0x1.p0, + -0x1.000002p23 + }, + { // Entry 524 + -0x1.p-1, + 0x1.fffffep22, + 0x1.p0, + -0x1.p23 + }, + { // Entry 525 + 0.0, + 0x1.fffffep22, + 0x1.p0, + -0x1.fffffep22 + }, + { // Entry 526 + -0x1.000002p-1, + 0x1.fffffep22, + 0x1.000002p0, + -0x1.000002p23 + }, + { // Entry 527 + 0x1.fffffcp-2, + 0x1.fffffep22, + 0x1.000002p0, + -0x1.p23 + }, + { // Entry 528 + 0x1.fffffep-1, + 0x1.fffffep22, + 0x1.000002p0, + -0x1.fffffep22 + }, + { // Entry 529 + -0x1.80p0, + 0x1.p23, + 0x1.fffffep-1, + -0x1.000002p23 + }, + { // Entry 530 + -0x1.p-1, + 0x1.p23, + 0x1.fffffep-1, + -0x1.p23 + }, + { // Entry 531 + 0.0, + 0x1.p23, + 0x1.fffffep-1, + -0x1.fffffep22 + }, + { // Entry 532 + -0x1.p0, + 0x1.p23, + 0x1.p0, + -0x1.000002p23 + }, + { // Entry 533 + 0.0, + 0x1.p23, + 0x1.p0, + -0x1.p23 + }, + { // Entry 534 + 0x1.p-1, + 0x1.p23, + 0x1.p0, + -0x1.fffffep22 + }, + { // Entry 535 + 0.0, + 0x1.p23, + 0x1.000002p0, + -0x1.000002p23 + }, + { // Entry 536 + 0x1.p0, + 0x1.p23, + 0x1.000002p0, + -0x1.p23 + }, + { // Entry 537 + 0x1.80p0, + 0x1.p23, + 0x1.000002p0, + -0x1.fffffep22 + }, + { // Entry 538 + -0x1.000002p-1, + 0x1.000002p23, + 0x1.fffffep-1, + -0x1.000002p23 + }, + { // Entry 539 + 0x1.fffffcp-2, + 0x1.000002p23, + 0x1.fffffep-1, + -0x1.p23 + }, + { // Entry 540 + 0x1.fffffep-1, + 0x1.000002p23, + 0x1.fffffep-1, + -0x1.fffffep22 + }, + { // Entry 541 + 0.0, + 0x1.000002p23, + 0x1.p0, + -0x1.000002p23 + }, + { // Entry 542 + 0x1.p0, + 0x1.000002p23, + 0x1.p0, + -0x1.p23 + }, + { // Entry 543 + 0x1.80p0, + 0x1.000002p23, + 0x1.p0, + -0x1.fffffep22 + }, + { // Entry 544 + 0x1.000002p0, + 0x1.000002p23, + 0x1.000002p0, + -0x1.000002p23 + }, + { // Entry 545 + 0x1.000001p1, + 0x1.000002p23, + 0x1.000002p0, + -0x1.p23 + }, + { // Entry 546 + 0x1.400001p1, + 0x1.000002p23, + 0x1.000002p0, + -0x1.fffffep22 + }, + { // Entry 547 + 0x1.08p-5, + 0x1.p-5, + 0x1.p-5, + 0x1.p-5 + }, + { // Entry 548 + 0x1.0040p0, + 0x1.p-5, + 0x1.p-5, + 0x1.p0 + }, + { // Entry 549 + 0x1.p-4, + 0x1.p-5, + 0x1.p0, + 0x1.p-5 + }, + { // Entry 550 + 0x1.08p0, + 0x1.p-5, + 0x1.p0, + 0x1.p0 + }, + { // Entry 551 + 0x1.p-4, + 0x1.p0, + 0x1.p-5, + 0x1.p-5 + }, + { // Entry 552 + 0x1.08p0, + 0x1.p0, + 0x1.p-5, + 0x1.p0 + }, + { // Entry 553 + 0x1.08p0, + 0x1.p0, + 0x1.p0, + 0x1.p-5 + }, + { // Entry 554 + 0x1.p1, + 0x1.p0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 555 + 0x1.20p-2, + 0x1.p-5, + 0x1.p3, + 0x1.p-5 + }, + { // Entry 556 + 0x1.40p0, + 0x1.p-5, + 0x1.p3, + 0x1.p0 + }, + { // Entry 557 + 0x1.08p0, + 0x1.p-5, + 0x1.p5, + 0x1.p-5 + }, + { // Entry 558 + 0x1.p1, + 0x1.p-5, + 0x1.p5, + 0x1.p0 + }, + { // Entry 559 + 0x1.01p3, + 0x1.p0, + 0x1.p3, + 0x1.p-5 + }, + { // Entry 560 + 0x1.20p3, + 0x1.p0, + 0x1.p3, + 0x1.p0 + }, + { // Entry 561 + 0x1.0040p5, + 0x1.p0, + 0x1.p5, + 0x1.p-5 + }, + { // Entry 562 + 0x1.08p5, + 0x1.p0, + 0x1.p5, + 0x1.p0 + }, + { // Entry 563 + 0x1.0040p5, + 0x1.p-5, + 0x1.p10, + 0x1.p-5 + }, + { // Entry 564 + 0x1.08p5, + 0x1.p-5, + 0x1.p10, + 0x1.p0 + }, + { // Entry 565 + 0x1.0010p7, + 0x1.p-5, + 0x1.p12, + 0x1.p-5 + }, + { // Entry 566 + 0x1.02p7, + 0x1.p-5, + 0x1.p12, + 0x1.p0 + }, + { // Entry 567 + 0x1.0002p10, + 0x1.p0, + 0x1.p10, + 0x1.p-5 + }, + { // Entry 568 + 0x1.0040p10, + 0x1.p0, + 0x1.p10, + 0x1.p0 + }, + { // Entry 569 + 0x1.000080p12, + 0x1.p0, + 0x1.p12, + 0x1.p-5 + }, + { // Entry 570 + 0x1.0010p12, + 0x1.p0, + 0x1.p12, + 0x1.p0 + }, + { // Entry 571 + 0x1.0008p3, + 0x1.p-5, + 0x1.p-5, + 0x1.p3 + }, + { // Entry 572 + 0x1.0002p5, + 0x1.p-5, + 0x1.p-5, + 0x1.p5 + }, + { // Entry 573 + 0x1.01p3, + 0x1.p-5, + 0x1.p0, + 0x1.p3 + }, + { // Entry 574 + 0x1.0040p5, + 0x1.p-5, + 0x1.p0, + 0x1.p5 + }, + { // Entry 575 + 0x1.01p3, + 0x1.p0, + 0x1.p-5, + 0x1.p3 + }, + { // Entry 576 + 0x1.0040p5, + 0x1.p0, + 0x1.p-5, + 0x1.p5 + }, + { // Entry 577 + 0x1.20p3, + 0x1.p0, + 0x1.p0, + 0x1.p3 + }, + { // Entry 578 + 0x1.08p5, + 0x1.p0, + 0x1.p0, + 0x1.p5 + }, + { // Entry 579 + 0x1.08p3, + 0x1.p-5, + 0x1.p3, + 0x1.p3 + }, + { // Entry 580 + 0x1.02p5, + 0x1.p-5, + 0x1.p3, + 0x1.p5 + }, + { // Entry 581 + 0x1.20p3, + 0x1.p-5, + 0x1.p5, + 0x1.p3 + }, + { // Entry 582 + 0x1.08p5, + 0x1.p-5, + 0x1.p5, + 0x1.p5 + }, + { // Entry 583 + 0x1.p4, + 0x1.p0, + 0x1.p3, + 0x1.p3 + }, + { // Entry 584 + 0x1.40p5, + 0x1.p0, + 0x1.p3, + 0x1.p5 + }, + { // Entry 585 + 0x1.40p5, + 0x1.p0, + 0x1.p5, + 0x1.p3 + }, + { // Entry 586 + 0x1.p6, + 0x1.p0, + 0x1.p5, + 0x1.p5 + }, + { // Entry 587 + 0x1.40p5, + 0x1.p-5, + 0x1.p10, + 0x1.p3 + }, + { // Entry 588 + 0x1.p6, + 0x1.p-5, + 0x1.p10, + 0x1.p5 + }, + { // Entry 589 + 0x1.10p7, + 0x1.p-5, + 0x1.p12, + 0x1.p3 + }, + { // Entry 590 + 0x1.40p7, + 0x1.p-5, + 0x1.p12, + 0x1.p5 + }, + { // Entry 591 + 0x1.02p10, + 0x1.p0, + 0x1.p10, + 0x1.p3 + }, + { // Entry 592 + 0x1.08p10, + 0x1.p0, + 0x1.p10, + 0x1.p5 + }, + { // Entry 593 + 0x1.0080p12, + 0x1.p0, + 0x1.p12, + 0x1.p3 + }, + { // Entry 594 + 0x1.02p12, + 0x1.p0, + 0x1.p12, + 0x1.p5 + }, + { // Entry 595 + 0x1.000010p10, + 0x1.p-5, + 0x1.p-5, + 0x1.p10 + }, + { // Entry 596 + 0x1.000004p12, + 0x1.p-5, + 0x1.p-5, + 0x1.p12 + }, + { // Entry 597 + 0x1.0002p10, + 0x1.p-5, + 0x1.p0, + 0x1.p10 + }, + { // Entry 598 + 0x1.000080p12, + 0x1.p-5, + 0x1.p0, + 0x1.p12 + }, + { // Entry 599 + 0x1.0002p10, + 0x1.p0, + 0x1.p-5, + 0x1.p10 + }, + { // Entry 600 + 0x1.000080p12, + 0x1.p0, + 0x1.p-5, + 0x1.p12 + }, + { // Entry 601 + 0x1.0040p10, + 0x1.p0, + 0x1.p0, + 0x1.p10 + }, + { // Entry 602 + 0x1.0010p12, + 0x1.p0, + 0x1.p0, + 0x1.p12 + }, + { // Entry 603 + 0x1.0010p10, + 0x1.p-5, + 0x1.p3, + 0x1.p10 + }, + { // Entry 604 + 0x1.0004p12, + 0x1.p-5, + 0x1.p3, + 0x1.p12 + }, + { // Entry 605 + 0x1.0040p10, + 0x1.p-5, + 0x1.p5, + 0x1.p10 + }, + { // Entry 606 + 0x1.0010p12, + 0x1.p-5, + 0x1.p5, + 0x1.p12 + }, + { // Entry 607 + 0x1.02p10, + 0x1.p0, + 0x1.p3, + 0x1.p10 + }, + { // Entry 608 + 0x1.0080p12, + 0x1.p0, + 0x1.p3, + 0x1.p12 + }, + { // Entry 609 + 0x1.08p10, + 0x1.p0, + 0x1.p5, + 0x1.p10 + }, + { // Entry 610 + 0x1.02p12, + 0x1.p0, + 0x1.p5, + 0x1.p12 + }, + { // Entry 611 + 0x1.08p10, + 0x1.p-5, + 0x1.p10, + 0x1.p10 + }, + { // Entry 612 + 0x1.02p12, + 0x1.p-5, + 0x1.p10, + 0x1.p12 + }, + { // Entry 613 + 0x1.20p10, + 0x1.p-5, + 0x1.p12, + 0x1.p10 + }, + { // Entry 614 + 0x1.08p12, + 0x1.p-5, + 0x1.p12, + 0x1.p12 + }, + { // Entry 615 + 0x1.p11, + 0x1.p0, + 0x1.p10, + 0x1.p10 + }, + { // Entry 616 + 0x1.40p12, + 0x1.p0, + 0x1.p10, + 0x1.p12 + }, + { // Entry 617 + 0x1.40p12, + 0x1.p0, + 0x1.p12, + 0x1.p10 + }, + { // Entry 618 + 0x1.p13, + 0x1.p0, + 0x1.p12, + 0x1.p12 + }, + { // Entry 619 + 0x1.0020p6, + 0x1.p3, + 0x1.p3, + 0x1.p-5 + }, + { // Entry 620 + 0x1.04p6, + 0x1.p3, + 0x1.p3, + 0x1.p0 + }, + { // Entry 621 + 0x1.0008p8, + 0x1.p3, + 0x1.p5, + 0x1.p-5 + }, + { // Entry 622 + 0x1.01p8, + 0x1.p3, + 0x1.p5, + 0x1.p0 + }, + { // Entry 623 + 0x1.0008p8, + 0x1.p5, + 0x1.p3, + 0x1.p-5 + }, + { // Entry 624 + 0x1.01p8, + 0x1.p5, + 0x1.p3, + 0x1.p0 + }, + { // Entry 625 + 0x1.0002p10, + 0x1.p5, + 0x1.p5, + 0x1.p-5 + }, + { // Entry 626 + 0x1.0040p10, + 0x1.p5, + 0x1.p5, + 0x1.p0 + }, + { // Entry 627 + 0x1.20p6, + 0x1.p3, + 0x1.p3, + 0x1.p3 + }, + { // Entry 628 + 0x1.80p6, + 0x1.p3, + 0x1.p3, + 0x1.p5 + }, + { // Entry 629 + 0x1.08p8, + 0x1.p3, + 0x1.p5, + 0x1.p3 + }, + { // Entry 630 + 0x1.20p8, + 0x1.p3, + 0x1.p5, + 0x1.p5 + }, + { // Entry 631 + 0x1.08p8, + 0x1.p5, + 0x1.p3, + 0x1.p3 + }, + { // Entry 632 + 0x1.20p8, + 0x1.p5, + 0x1.p3, + 0x1.p5 + }, + { // Entry 633 + 0x1.02p10, + 0x1.p5, + 0x1.p5, + 0x1.p3 + }, + { // Entry 634 + 0x1.08p10, + 0x1.p5, + 0x1.p5, + 0x1.p5 + }, + { // Entry 635 + 0x1.10p10, + 0x1.p3, + 0x1.p3, + 0x1.p10 + }, + { // Entry 636 + 0x1.04p12, + 0x1.p3, + 0x1.p3, + 0x1.p12 + }, + { // Entry 637 + 0x1.40p10, + 0x1.p3, + 0x1.p5, + 0x1.p10 + }, + { // Entry 638 + 0x1.10p12, + 0x1.p3, + 0x1.p5, + 0x1.p12 + }, + { // Entry 639 + 0x1.40p10, + 0x1.p5, + 0x1.p3, + 0x1.p10 + }, + { // Entry 640 + 0x1.10p12, + 0x1.p5, + 0x1.p3, + 0x1.p12 + }, + { // Entry 641 + 0x1.p11, + 0x1.p5, + 0x1.p5, + 0x1.p10 + }, + { // Entry 642 + 0x1.40p12, + 0x1.p5, + 0x1.p5, + 0x1.p12 + }, + { // Entry 643 + 0x1.000040p13, + 0x1.p3, + 0x1.p10, + 0x1.p-5 + }, + { // Entry 644 + 0x1.0008p13, + 0x1.p3, + 0x1.p10, + 0x1.p0 + }, + { // Entry 645 + 0x1.000010p15, + 0x1.p3, + 0x1.p12, + 0x1.p-5 + }, + { // Entry 646 + 0x1.0002p15, + 0x1.p3, + 0x1.p12, + 0x1.p0 + }, + { // Entry 647 + 0x1.000010p15, + 0x1.p5, + 0x1.p10, + 0x1.p-5 + }, + { // Entry 648 + 0x1.0002p15, + 0x1.p5, + 0x1.p10, + 0x1.p0 + }, + { // Entry 649 + 0x1.000004p17, + 0x1.p5, + 0x1.p12, + 0x1.p-5 + }, + { // Entry 650 + 0x1.000080p17, + 0x1.p5, + 0x1.p12, + 0x1.p0 + }, + { // Entry 651 + 0x1.0040p13, + 0x1.p3, + 0x1.p10, + 0x1.p3 + }, + { // Entry 652 + 0x1.01p13, + 0x1.p3, + 0x1.p10, + 0x1.p5 + }, + { // Entry 653 + 0x1.0010p15, + 0x1.p3, + 0x1.p12, + 0x1.p3 + }, + { // Entry 654 + 0x1.0040p15, + 0x1.p3, + 0x1.p12, + 0x1.p5 + }, + { // Entry 655 + 0x1.0010p15, + 0x1.p5, + 0x1.p10, + 0x1.p3 + }, + { // Entry 656 + 0x1.0040p15, + 0x1.p5, + 0x1.p10, + 0x1.p5 + }, + { // Entry 657 + 0x1.0004p17, + 0x1.p5, + 0x1.p12, + 0x1.p3 + }, + { // Entry 658 + 0x1.0010p17, + 0x1.p5, + 0x1.p12, + 0x1.p5 + }, + { // Entry 659 + 0x1.20p13, + 0x1.p3, + 0x1.p10, + 0x1.p10 + }, + { // Entry 660 + 0x1.80p13, + 0x1.p3, + 0x1.p10, + 0x1.p12 + }, + { // Entry 661 + 0x1.08p15, + 0x1.p3, + 0x1.p12, + 0x1.p10 + }, + { // Entry 662 + 0x1.20p15, + 0x1.p3, + 0x1.p12, + 0x1.p12 + }, + { // Entry 663 + 0x1.08p15, + 0x1.p5, + 0x1.p10, + 0x1.p10 + }, + { // Entry 664 + 0x1.20p15, + 0x1.p5, + 0x1.p10, + 0x1.p12 + }, + { // Entry 665 + 0x1.02p17, + 0x1.p5, + 0x1.p12, + 0x1.p10 + }, + { // Entry 666 + 0x1.08p17, + 0x1.p5, + 0x1.p12, + 0x1.p12 + }, + { // Entry 667 + -0x1.ffffe0p-21, + -0x1.p-20, + -0x1.p-20, + -0x1.p-20 + }, + { // Entry 668 + 0x1.000010p-20, + -0x1.p-20, + -0x1.p-20, + 0x1.p-20 + }, + { // Entry 669 + -0x1.000010p-20, + -0x1.p-20, + 0x1.p-20, + -0x1.p-20 + }, + { // Entry 670 + 0x1.ffffe0p-21, + -0x1.p-20, + 0x1.p-20, + 0x1.p-20 + }, + { // Entry 671 + -0x1.000010p-20, + 0x1.p-20, + -0x1.p-20, + -0x1.p-20 + }, + { // Entry 672 + 0x1.ffffe0p-21, + 0x1.p-20, + -0x1.p-20, + 0x1.p-20 + }, + { // Entry 673 + -0x1.ffffe0p-21, + 0x1.p-20, + 0x1.p-20, + -0x1.p-20 + }, + { // Entry 674 + 0x1.000010p-20, + 0x1.p-20, + 0x1.p-20, + 0x1.p-20 + }, + { // Entry 675 + 0x1.fffffffffffffffffffep-21, + -0x1.p-10, + -0x1.p-10, + -0x1.p-100 + }, + { // Entry 676 + 0x1.00000000000000000001p-20, + -0x1.p-10, + -0x1.p-10, + 0x1.p-100 + }, + { // Entry 677 + -0x1.00000000000000000001p-20, + -0x1.p-10, + 0x1.p-10, + -0x1.p-100 + }, + { // Entry 678 + -0x1.fffffffffffffffffffep-21, + -0x1.p-10, + 0x1.p-10, + 0x1.p-100 + }, + { // Entry 679 + -0x1.00000000000000000001p-20, + 0x1.p-10, + -0x1.p-10, + -0x1.p-100 + }, + { // Entry 680 + -0x1.fffffffffffffffffffep-21, + 0x1.p-10, + -0x1.p-10, + 0x1.p-100 + }, + { // Entry 681 + 0x1.fffffffffffffffffffep-21, + 0x1.p-10, + 0x1.p-10, + -0x1.p-100 + }, + { // Entry 682 + 0x1.00000000000000000001p-20, + 0x1.p-10, + 0x1.p-10, + 0x1.p-100 + }, + { // Entry 683 + 0x1.f0p-11, + -0x1.p-5, + -0x1.p-5, + -0x1.p-15 + }, + { // Entry 684 + 0x1.08p-10, + -0x1.p-5, + -0x1.p-5, + 0x1.p-15 + }, + { // Entry 685 + -0x1.08p-10, + -0x1.p-5, + 0x1.p-5, + -0x1.p-15 + }, + { // Entry 686 + -0x1.f0p-11, + -0x1.p-5, + 0x1.p-5, + 0x1.p-15 + }, + { // Entry 687 + -0x1.08p-10, + 0x1.p-5, + -0x1.p-5, + -0x1.p-15 + }, + { // Entry 688 + -0x1.f0p-11, + 0x1.p-5, + -0x1.p-5, + 0x1.p-15 + }, + { // Entry 689 + 0x1.f0p-11, + 0x1.p-5, + 0x1.p-5, + -0x1.p-15 + }, + { // Entry 690 + 0x1.08p-10, + 0x1.p-5, + 0x1.p-5, + 0x1.p-15 + }, + { // Entry 691 + 0x1.68p6, + -0x1.40p3, + -0x1.40p3, + -0x1.40p3 + }, + { // Entry 692 + 0x1.b8p6, + -0x1.40p3, + -0x1.40p3, + 0x1.40p3 + }, + { // Entry 693 + -0x1.b8p6, + -0x1.40p3, + 0x1.40p3, + -0x1.40p3 + }, + { // Entry 694 + -0x1.68p6, + -0x1.40p3, + 0x1.40p3, + 0x1.40p3 + }, + { // Entry 695 + -0x1.b8p6, + 0x1.40p3, + -0x1.40p3, + -0x1.40p3 + }, + { // Entry 696 + -0x1.68p6, + 0x1.40p3, + -0x1.40p3, + 0x1.40p3 + }, + { // Entry 697 + 0x1.68p6, + 0x1.40p3, + 0x1.40p3, + -0x1.40p3 + }, + { // Entry 698 + 0x1.b8p6, + 0x1.40p3, + 0x1.40p3, + 0x1.40p3 + }, + { // Entry 699 + 0.0, + -0x1.p0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 700 + 0x1.p1, + -0x1.p0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 701 + -0x1.p1, + -0x1.p0, + 0x1.p0, + -0x1.p0 + }, + { // Entry 702 + 0.0, + -0x1.p0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 703 + -0x1.p1, + 0x1.p0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 704 + 0.0, + 0x1.p0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 705 + 0.0, + 0x1.p0, + 0x1.p0, + -0x1.p0 + }, + { // Entry 706 + 0x1.p1, + 0x1.p0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 707 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 708 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 709 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 710 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 711 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 712 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 713 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 714 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 715 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 716 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + 0.0f + }, + { // Entry 717 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF, + -0.0f + }, + { // Entry 718 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 719 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 720 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 721 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 722 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 723 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 724 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 725 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 726 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 727 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + 0.0f + }, + { // Entry 728 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF, + -0.0f + }, + { // Entry 729 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 730 + -HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 731 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 732 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 733 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 734 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 735 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 736 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 737 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 738 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 739 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 740 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 741 + HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 742 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 743 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 744 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 745 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 746 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 747 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 748 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 749 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 750 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 751 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + 0.0f + }, + { // Entry 752 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127, + -0.0f + }, + { // Entry 753 + HUGE_VALF, + 0x1.fffffep127, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 754 + -HUGE_VALF, + 0x1.fffffep127, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 755 + 0x1.fffffe00000000000000000000000007p127, + 0x1.fffffep127, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 756 + -0x1.fffffdfffffffffffffffffffffffff8p127, + 0x1.fffffep127, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 757 + 0x1.fffffe00000000000000000000000002p1, + 0x1.fffffep127, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 758 + 0x1.fffffdfffffffffffffffffffffffffep1, + 0x1.fffffep127, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 759 + 0x1.fffffe00000000000000000000000001p1, + 0x1.fffffep127, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 760 + 0x1.fffffdfffffffffffffffffffffffffep1, + 0x1.fffffep127, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 761 + 0x1.fffffep1, + 0x1.fffffep127, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 762 + 0x1.fffffdffffffffffffffffffffffffffp1, + 0x1.fffffep127, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 763 + 0x1.fffffep1, + 0x1.fffffep127, + 0x1.p-126, + 0.0f + }, + { // Entry 764 + 0x1.fffffep1, + 0x1.fffffep127, + 0x1.p-126, + -0.0f + }, + { // Entry 765 + HUGE_VALF, + 0x1.fffffep127, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 766 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 767 + 0x1.fffffdfffffffffffffffffffffffff8p127, + 0x1.fffffep127, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 768 + -0x1.fffffe00000000000000000000000007p127, + 0x1.fffffep127, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 769 + -0x1.fffffdfffffffffffffffffffffffffep1, + 0x1.fffffep127, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 770 + -0x1.fffffe00000000000000000000000002p1, + 0x1.fffffep127, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 771 + -0x1.fffffdfffffffffffffffffffffffffep1, + 0x1.fffffep127, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 772 + -0x1.fffffe00000000000000000000000001p1, + 0x1.fffffep127, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 773 + -0x1.fffffdffffffffffffffffffffffffffp1, + 0x1.fffffep127, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 774 + -0x1.fffffep1, + 0x1.fffffep127, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 775 + -0x1.fffffep1, + 0x1.fffffep127, + -0x1.p-126, + 0.0f + }, + { // Entry 776 + -0x1.fffffep1, + 0x1.fffffep127, + -0x1.p-126, + -0.0f + }, + { // Entry 777 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 778 + -HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 779 + 0x1.fffffe00000000000000000000000007p127, + 0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 780 + -0x1.fffffdfffffffffffffffffffffffff8p127, + 0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 781 + 0x1.fffffa00000400000000000000000002p1, + 0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 782 + 0x1.fffffa000003fffffffffffffffffffep1, + 0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 783 + 0x1.fffffa00000400000000000000000001p1, + 0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 784 + 0x1.fffffa000003fffffffffffffffffffep1, + 0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 785 + 0x1.fffffa000004p1, + 0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 786 + 0x1.fffffa000003ffffffffffffffffffffp1, + 0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 787 + 0x1.fffffa000004p1, + 0x1.fffffep127, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 788 + 0x1.fffffa000004p1, + 0x1.fffffep127, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 789 + HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 790 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 791 + 0x1.fffffdfffffffffffffffffffffffff8p127, + 0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 792 + -0x1.fffffe00000000000000000000000007p127, + 0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 793 + -0x1.fffffa000003fffffffffffffffffffep1, + 0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 794 + -0x1.fffffa00000400000000000000000002p1, + 0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 795 + -0x1.fffffa000003fffffffffffffffffffep1, + 0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 796 + -0x1.fffffa00000400000000000000000001p1, + 0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 797 + -0x1.fffffa000003ffffffffffffffffffffp1, + 0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 798 + -0x1.fffffa000004p1, + 0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 799 + -0x1.fffffa000004p1, + 0x1.fffffep127, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 800 + -0x1.fffffa000004p1, + 0x1.fffffep127, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 801 + HUGE_VALF, + 0x1.fffffep127, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 802 + -HUGE_VALF, + 0x1.fffffep127, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 803 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 804 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep127, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 805 + 0x1.fffffe00000000000000000001p-22, + 0x1.fffffep127, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 806 + 0x1.fffffdffffffffffffffffffffp-22, + 0x1.fffffep127, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 807 + 0x1.fffffe00000000000000000000fffffep-22, + 0x1.fffffep127, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 808 + 0x1.fffffdffffffffffffffffffff000002p-22, + 0x1.fffffep127, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 809 + 0x1.fffffe00000000000000000000000002p-22, + 0x1.fffffep127, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 810 + 0x1.fffffdfffffffffffffffffffffffffep-22, + 0x1.fffffep127, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 811 + 0x1.fffffep-22, + 0x1.fffffep127, + 0x1.p-149, + 0.0f + }, + { // Entry 812 + 0x1.fffffep-22, + 0x1.fffffep127, + 0x1.p-149, + -0.0f + }, + { // Entry 813 + HUGE_VALF, + 0x1.fffffep127, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 814 + -HUGE_VALF, + 0x1.fffffep127, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 815 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffep127, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 816 + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 817 + -0x1.fffffdffffffffffffffffffffp-22, + 0x1.fffffep127, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 818 + -0x1.fffffe00000000000000000001p-22, + 0x1.fffffep127, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 819 + -0x1.fffffdffffffffffffffffffff000002p-22, + 0x1.fffffep127, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 820 + -0x1.fffffe00000000000000000000fffffep-22, + 0x1.fffffep127, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 821 + -0x1.fffffdfffffffffffffffffffffffffep-22, + 0x1.fffffep127, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 822 + -0x1.fffffe00000000000000000000000002p-22, + 0x1.fffffep127, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 823 + -0x1.fffffep-22, + 0x1.fffffep127, + -0x1.p-149, + 0.0f + }, + { // Entry 824 + -0x1.fffffep-22, + 0x1.fffffep127, + -0x1.p-149, + -0.0f + }, + { // Entry 825 + HUGE_VALF, + 0x1.fffffep127, + 0.0f, + HUGE_VALF + }, + { // Entry 826 + -HUGE_VALF, + 0x1.fffffep127, + 0.0f, + -HUGE_VALF + }, + { // Entry 827 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 828 + -0x1.fffffep127, + 0x1.fffffep127, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 829 + 0x1.p-126, + 0x1.fffffep127, + 0.0f, + 0x1.p-126 + }, + { // Entry 830 + -0x1.p-126, + 0x1.fffffep127, + 0.0f, + -0x1.p-126 + }, + { // Entry 831 + 0x1.fffffcp-127, + 0x1.fffffep127, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 832 + -0x1.fffffcp-127, + 0x1.fffffep127, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 833 + 0x1.p-149, + 0x1.fffffep127, + 0.0f, + 0x1.p-149 + }, + { // Entry 834 + -0x1.p-149, + 0x1.fffffep127, + 0.0f, + -0x1.p-149 + }, + { // Entry 835 + 0.0, + 0x1.fffffep127, + 0.0f, + 0.0f + }, + { // Entry 836 + 0.0, + 0x1.fffffep127, + 0.0f, + -0.0f + }, + { // Entry 837 + HUGE_VALF, + 0x1.fffffep127, + -0.0f, + HUGE_VALF + }, + { // Entry 838 + -HUGE_VALF, + 0x1.fffffep127, + -0.0f, + -HUGE_VALF + }, + { // Entry 839 + 0x1.fffffep127, + 0x1.fffffep127, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 840 + -0x1.fffffep127, + 0x1.fffffep127, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 841 + 0x1.p-126, + 0x1.fffffep127, + -0.0f, + 0x1.p-126 + }, + { // Entry 842 + -0x1.p-126, + 0x1.fffffep127, + -0.0f, + -0x1.p-126 + }, + { // Entry 843 + 0x1.fffffcp-127, + 0x1.fffffep127, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 844 + -0x1.fffffcp-127, + 0x1.fffffep127, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 845 + 0x1.p-149, + 0x1.fffffep127, + -0.0f, + 0x1.p-149 + }, + { // Entry 846 + -0x1.p-149, + 0x1.fffffep127, + -0.0f, + -0x1.p-149 + }, + { // Entry 847 + 0.0, + 0x1.fffffep127, + -0.0f, + 0.0f + }, + { // Entry 848 + -0.0, + 0x1.fffffep127, + -0.0f, + -0.0f + }, + { // Entry 849 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 850 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 851 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 852 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 853 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 854 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 855 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 856 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 857 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 858 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + 0.0f + }, + { // Entry 859 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF, + -0.0f + }, + { // Entry 860 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 861 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 862 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 863 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 864 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 865 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 866 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 867 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 868 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 869 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + 0.0f + }, + { // Entry 870 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF, + -0.0f + }, + { // Entry 871 + HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 872 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 873 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 874 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 875 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 876 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 877 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 878 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 879 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 880 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 881 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 882 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 883 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 884 + -HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 885 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 886 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 887 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 888 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 889 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 890 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 891 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 892 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 893 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + 0.0f + }, + { // Entry 894 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127, + -0.0f + }, + { // Entry 895 + HUGE_VALF, + -0x1.fffffep127, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 896 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 897 + 0x1.fffffdfffffffffffffffffffffffff8p127, + -0x1.fffffep127, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 898 + -0x1.fffffe00000000000000000000000007p127, + -0x1.fffffep127, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 899 + -0x1.fffffdfffffffffffffffffffffffffep1, + -0x1.fffffep127, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 900 + -0x1.fffffe00000000000000000000000002p1, + -0x1.fffffep127, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 901 + -0x1.fffffdfffffffffffffffffffffffffep1, + -0x1.fffffep127, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 902 + -0x1.fffffe00000000000000000000000001p1, + -0x1.fffffep127, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 903 + -0x1.fffffdffffffffffffffffffffffffffp1, + -0x1.fffffep127, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 904 + -0x1.fffffep1, + -0x1.fffffep127, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 905 + -0x1.fffffep1, + -0x1.fffffep127, + 0x1.p-126, + 0.0f + }, + { // Entry 906 + -0x1.fffffep1, + -0x1.fffffep127, + 0x1.p-126, + -0.0f + }, + { // Entry 907 + HUGE_VALF, + -0x1.fffffep127, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 908 + -HUGE_VALF, + -0x1.fffffep127, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 909 + 0x1.fffffe00000000000000000000000007p127, + -0x1.fffffep127, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 910 + -0x1.fffffdfffffffffffffffffffffffff8p127, + -0x1.fffffep127, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 911 + 0x1.fffffe00000000000000000000000002p1, + -0x1.fffffep127, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 912 + 0x1.fffffdfffffffffffffffffffffffffep1, + -0x1.fffffep127, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 913 + 0x1.fffffe00000000000000000000000001p1, + -0x1.fffffep127, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 914 + 0x1.fffffdfffffffffffffffffffffffffep1, + -0x1.fffffep127, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 915 + 0x1.fffffep1, + -0x1.fffffep127, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 916 + 0x1.fffffdffffffffffffffffffffffffffp1, + -0x1.fffffep127, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 917 + 0x1.fffffep1, + -0x1.fffffep127, + -0x1.p-126, + 0.0f + }, + { // Entry 918 + 0x1.fffffep1, + -0x1.fffffep127, + -0x1.p-126, + -0.0f + }, + { // Entry 919 + HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 920 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 921 + 0x1.fffffdfffffffffffffffffffffffff8p127, + -0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 922 + -0x1.fffffe00000000000000000000000007p127, + -0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 923 + -0x1.fffffa000003fffffffffffffffffffep1, + -0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 924 + -0x1.fffffa00000400000000000000000002p1, + -0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 925 + -0x1.fffffa000003fffffffffffffffffffep1, + -0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 926 + -0x1.fffffa00000400000000000000000001p1, + -0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 927 + -0x1.fffffa000003ffffffffffffffffffffp1, + -0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 928 + -0x1.fffffa000004p1, + -0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 929 + -0x1.fffffa000004p1, + -0x1.fffffep127, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 930 + -0x1.fffffa000004p1, + -0x1.fffffep127, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 931 + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 932 + -HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 933 + 0x1.fffffe00000000000000000000000007p127, + -0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 934 + -0x1.fffffdfffffffffffffffffffffffff8p127, + -0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 935 + 0x1.fffffa00000400000000000000000002p1, + -0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 936 + 0x1.fffffa000003fffffffffffffffffffep1, + -0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 937 + 0x1.fffffa00000400000000000000000001p1, + -0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 938 + 0x1.fffffa000003fffffffffffffffffffep1, + -0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 939 + 0x1.fffffa000004p1, + -0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 940 + 0x1.fffffa000003ffffffffffffffffffffp1, + -0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 941 + 0x1.fffffa000004p1, + -0x1.fffffep127, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 942 + 0x1.fffffa000004p1, + -0x1.fffffep127, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 943 + HUGE_VALF, + -0x1.fffffep127, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 944 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 945 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.fffffep127, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 946 + -0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 947 + -0x1.fffffdffffffffffffffffffffp-22, + -0x1.fffffep127, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 948 + -0x1.fffffe00000000000000000001p-22, + -0x1.fffffep127, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 949 + -0x1.fffffdffffffffffffffffffff000002p-22, + -0x1.fffffep127, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 950 + -0x1.fffffe00000000000000000000fffffep-22, + -0x1.fffffep127, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 951 + -0x1.fffffdfffffffffffffffffffffffffep-22, + -0x1.fffffep127, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 952 + -0x1.fffffe00000000000000000000000002p-22, + -0x1.fffffep127, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 953 + -0x1.fffffep-22, + -0x1.fffffep127, + 0x1.p-149, + 0.0f + }, + { // Entry 954 + -0x1.fffffep-22, + -0x1.fffffep127, + 0x1.p-149, + -0.0f + }, + { // Entry 955 + HUGE_VALF, + -0x1.fffffep127, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 956 + -HUGE_VALF, + -0x1.fffffep127, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 957 + 0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 958 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.fffffep127, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 959 + 0x1.fffffe00000000000000000001p-22, + -0x1.fffffep127, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 960 + 0x1.fffffdffffffffffffffffffffp-22, + -0x1.fffffep127, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 961 + 0x1.fffffe00000000000000000000fffffep-22, + -0x1.fffffep127, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 962 + 0x1.fffffdffffffffffffffffffff000002p-22, + -0x1.fffffep127, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 963 + 0x1.fffffe00000000000000000000000002p-22, + -0x1.fffffep127, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 964 + 0x1.fffffdfffffffffffffffffffffffffep-22, + -0x1.fffffep127, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 965 + 0x1.fffffep-22, + -0x1.fffffep127, + -0x1.p-149, + 0.0f + }, + { // Entry 966 + 0x1.fffffep-22, + -0x1.fffffep127, + -0x1.p-149, + -0.0f + }, + { // Entry 967 + HUGE_VALF, + -0x1.fffffep127, + 0.0f, + HUGE_VALF + }, + { // Entry 968 + -HUGE_VALF, + -0x1.fffffep127, + 0.0f, + -HUGE_VALF + }, + { // Entry 969 + 0x1.fffffep127, + -0x1.fffffep127, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 970 + -0x1.fffffep127, + -0x1.fffffep127, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 971 + 0x1.p-126, + -0x1.fffffep127, + 0.0f, + 0x1.p-126 + }, + { // Entry 972 + -0x1.p-126, + -0x1.fffffep127, + 0.0f, + -0x1.p-126 + }, + { // Entry 973 + 0x1.fffffcp-127, + -0x1.fffffep127, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 974 + -0x1.fffffcp-127, + -0x1.fffffep127, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 975 + 0x1.p-149, + -0x1.fffffep127, + 0.0f, + 0x1.p-149 + }, + { // Entry 976 + -0x1.p-149, + -0x1.fffffep127, + 0.0f, + -0x1.p-149 + }, + { // Entry 977 + 0.0, + -0x1.fffffep127, + 0.0f, + 0.0f + }, + { // Entry 978 + -0.0, + -0x1.fffffep127, + 0.0f, + -0.0f + }, + { // Entry 979 + HUGE_VALF, + -0x1.fffffep127, + -0.0f, + HUGE_VALF + }, + { // Entry 980 + -HUGE_VALF, + -0x1.fffffep127, + -0.0f, + -HUGE_VALF + }, + { // Entry 981 + 0x1.fffffep127, + -0x1.fffffep127, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 982 + -0x1.fffffep127, + -0x1.fffffep127, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 983 + 0x1.p-126, + -0x1.fffffep127, + -0.0f, + 0x1.p-126 + }, + { // Entry 984 + -0x1.p-126, + -0x1.fffffep127, + -0.0f, + -0x1.p-126 + }, + { // Entry 985 + 0x1.fffffcp-127, + -0x1.fffffep127, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 986 + -0x1.fffffcp-127, + -0x1.fffffep127, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 987 + 0x1.p-149, + -0x1.fffffep127, + -0.0f, + 0x1.p-149 + }, + { // Entry 988 + -0x1.p-149, + -0x1.fffffep127, + -0.0f, + -0x1.p-149 + }, + { // Entry 989 + 0.0, + -0x1.fffffep127, + -0.0f, + 0.0f + }, + { // Entry 990 + 0.0, + -0x1.fffffep127, + -0.0f, + -0.0f + }, + { // Entry 991 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 992 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 993 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 994 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 995 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 996 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 997 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 998 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 999 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1000 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + 0.0f + }, + { // Entry 1001 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF, + -0.0f + }, + { // Entry 1002 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 1003 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1004 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1005 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1006 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1007 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1008 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1009 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1010 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1011 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + 0.0f + }, + { // Entry 1012 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF, + -0.0f + }, + { // Entry 1013 + HUGE_VALF, + 0x1.p-126, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1014 + -HUGE_VALF, + 0x1.p-126, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1015 + 0x1.fffffe00000000000000000000000007p127, + 0x1.p-126, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1016 + -0x1.fffffdfffffffffffffffffffffffff8p127, + 0x1.p-126, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1017 + 0x1.fffffe00000000000000000000000002p1, + 0x1.p-126, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1018 + 0x1.fffffdfffffffffffffffffffffffffep1, + 0x1.p-126, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1019 + 0x1.fffffe00000000000000000000000001p1, + 0x1.p-126, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1020 + 0x1.fffffdfffffffffffffffffffffffffep1, + 0x1.p-126, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1021 + 0x1.fffffep1, + 0x1.p-126, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1022 + 0x1.fffffdffffffffffffffffffffffffffp1, + 0x1.p-126, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1023 + 0x1.fffffep1, + 0x1.p-126, + 0x1.fffffep127, + 0.0f + }, + { // Entry 1024 + 0x1.fffffep1, + 0x1.p-126, + 0x1.fffffep127, + -0.0f + }, + { // Entry 1025 + HUGE_VALF, + 0x1.p-126, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1026 + -HUGE_VALF, + 0x1.p-126, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1027 + 0x1.fffffdfffffffffffffffffffffffff8p127, + 0x1.p-126, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1028 + -0x1.fffffe00000000000000000000000007p127, + 0x1.p-126, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1029 + -0x1.fffffdfffffffffffffffffffffffffep1, + 0x1.p-126, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1030 + -0x1.fffffe00000000000000000000000002p1, + 0x1.p-126, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1031 + -0x1.fffffdfffffffffffffffffffffffffep1, + 0x1.p-126, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1032 + -0x1.fffffe00000000000000000000000001p1, + 0x1.p-126, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1033 + -0x1.fffffdffffffffffffffffffffffffffp1, + 0x1.p-126, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1034 + -0x1.fffffep1, + 0x1.p-126, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1035 + -0x1.fffffep1, + 0x1.p-126, + -0x1.fffffep127, + 0.0f + }, + { // Entry 1036 + -0x1.fffffep1, + 0x1.p-126, + -0x1.fffffep127, + -0.0f + }, + { // Entry 1037 + HUGE_VALF, + 0x1.p-126, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 1038 + -HUGE_VALF, + 0x1.p-126, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 1039 + 0x1.fffffep127, + 0x1.p-126, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1040 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-126, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1041 + 0x1.00000000000000000000000000000004p-126, + 0x1.p-126, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 1042 + -0x1.fffffffffffffffffffffffffffffff8p-127, + 0x1.p-126, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 1043 + 0x1.fffffc00000000000000000000000008p-127, + 0x1.p-126, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1044 + -0x1.fffffbfffffffffffffffffffffffff8p-127, + 0x1.p-126, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1045 + 0x1.00000000000000000000000002p-149, + 0x1.p-126, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 1046 + -0.0f, + 0x1.p-126, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 1047 + 0.0f, + 0x1.p-126, + 0x1.p-126, + 0.0f + }, + { // Entry 1048 + 0.0f, + 0x1.p-126, + 0x1.p-126, + -0.0f + }, + { // Entry 1049 + HUGE_VALF, + 0x1.p-126, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 1050 + -HUGE_VALF, + 0x1.p-126, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 1051 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-126, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1052 + -0x1.fffffep127, + 0x1.p-126, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1053 + 0x1.fffffffffffffffffffffffffffffff8p-127, + 0x1.p-126, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 1054 + -0x1.00000000000000000000000000000004p-126, + 0x1.p-126, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 1055 + 0x1.fffffbfffffffffffffffffffffffff8p-127, + 0x1.p-126, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1056 + -0x1.fffffc00000000000000000000000008p-127, + 0x1.p-126, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1057 + 0.0f, + 0x1.p-126, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 1058 + -0x1.00000000000000000000000002p-149, + 0x1.p-126, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 1059 + -0.0f, + 0x1.p-126, + -0x1.p-126, + 0.0f + }, + { // Entry 1060 + -0.0f, + 0x1.p-126, + -0x1.p-126, + -0.0f + }, + { // Entry 1061 + HUGE_VALF, + 0x1.p-126, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1062 + -HUGE_VALF, + 0x1.p-126, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1063 + 0x1.fffffep127, + 0x1.p-126, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1064 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-126, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1065 + 0x1.00000000000000000000000000000003p-126, + 0x1.p-126, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1066 + -0x1.fffffffffffffffffffffffffffffff8p-127, + 0x1.p-126, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1067 + 0x1.fffffc00000000000000000000000007p-127, + 0x1.p-126, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1068 + -0x1.fffffbfffffffffffffffffffffffff8p-127, + 0x1.p-126, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1069 + 0x1.00000000000000000000000001fffffcp-149, + 0x1.p-126, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1070 + -0.0f, + 0x1.p-126, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1071 + 0.0f, + 0x1.p-126, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 1072 + 0.0f, + 0x1.p-126, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 1073 + HUGE_VALF, + 0x1.p-126, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1074 + -HUGE_VALF, + 0x1.p-126, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1075 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-126, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1076 + -0x1.fffffep127, + 0x1.p-126, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1077 + 0x1.fffffffffffffffffffffffffffffff8p-127, + 0x1.p-126, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1078 + -0x1.00000000000000000000000000000003p-126, + 0x1.p-126, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1079 + 0x1.fffffbfffffffffffffffffffffffff8p-127, + 0x1.p-126, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1080 + -0x1.fffffc00000000000000000000000007p-127, + 0x1.p-126, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1081 + 0.0f, + 0x1.p-126, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1082 + -0x1.00000000000000000000000001fffffcp-149, + 0x1.p-126, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1083 + -0.0f, + 0x1.p-126, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 1084 + -0.0f, + 0x1.p-126, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 1085 + HUGE_VALF, + 0x1.p-126, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 1086 + -HUGE_VALF, + 0x1.p-126, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 1087 + 0x1.fffffep127, + 0x1.p-126, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1088 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-126, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1089 + 0x1.p-126, + 0x1.p-126, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 1090 + -0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-126, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 1091 + 0x1.fffffcp-127, + 0x1.p-126, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1092 + -0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.p-126, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1093 + 0x1.00000000000000000000000000000004p-149, + 0x1.p-126, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 1094 + -0.0f, + 0x1.p-126, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 1095 + 0.0f, + 0x1.p-126, + 0x1.p-149, + 0.0f + }, + { // Entry 1096 + 0.0f, + 0x1.p-126, + 0x1.p-149, + -0.0f + }, + { // Entry 1097 + HUGE_VALF, + 0x1.p-126, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 1098 + -HUGE_VALF, + 0x1.p-126, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 1099 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-126, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1100 + -0x1.fffffep127, + 0x1.p-126, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1101 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-126, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 1102 + -0x1.p-126, + 0x1.p-126, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 1103 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.p-126, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1104 + -0x1.fffffcp-127, + 0x1.p-126, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1105 + 0.0f, + 0x1.p-126, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 1106 + -0x1.00000000000000000000000000000004p-149, + 0x1.p-126, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 1107 + -0.0f, + 0x1.p-126, + -0x1.p-149, + 0.0f + }, + { // Entry 1108 + -0.0f, + 0x1.p-126, + -0x1.p-149, + -0.0f + }, + { // Entry 1109 + HUGE_VALF, + 0x1.p-126, + 0.0f, + HUGE_VALF + }, + { // Entry 1110 + -HUGE_VALF, + 0x1.p-126, + 0.0f, + -HUGE_VALF + }, + { // Entry 1111 + 0x1.fffffep127, + 0x1.p-126, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 1112 + -0x1.fffffep127, + 0x1.p-126, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 1113 + 0x1.p-126, + 0x1.p-126, + 0.0f, + 0x1.p-126 + }, + { // Entry 1114 + -0x1.p-126, + 0x1.p-126, + 0.0f, + -0x1.p-126 + }, + { // Entry 1115 + 0x1.fffffcp-127, + 0x1.p-126, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1116 + -0x1.fffffcp-127, + 0x1.p-126, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1117 + 0x1.p-149, + 0x1.p-126, + 0.0f, + 0x1.p-149 + }, + { // Entry 1118 + -0x1.p-149, + 0x1.p-126, + 0.0f, + -0x1.p-149 + }, + { // Entry 1119 + 0.0, + 0x1.p-126, + 0.0f, + 0.0f + }, + { // Entry 1120 + 0.0, + 0x1.p-126, + 0.0f, + -0.0f + }, + { // Entry 1121 + HUGE_VALF, + 0x1.p-126, + -0.0f, + HUGE_VALF + }, + { // Entry 1122 + -HUGE_VALF, + 0x1.p-126, + -0.0f, + -HUGE_VALF + }, + { // Entry 1123 + 0x1.fffffep127, + 0x1.p-126, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 1124 + -0x1.fffffep127, + 0x1.p-126, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 1125 + 0x1.p-126, + 0x1.p-126, + -0.0f, + 0x1.p-126 + }, + { // Entry 1126 + -0x1.p-126, + 0x1.p-126, + -0.0f, + -0x1.p-126 + }, + { // Entry 1127 + 0x1.fffffcp-127, + 0x1.p-126, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1128 + -0x1.fffffcp-127, + 0x1.p-126, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1129 + 0x1.p-149, + 0x1.p-126, + -0.0f, + 0x1.p-149 + }, + { // Entry 1130 + -0x1.p-149, + 0x1.p-126, + -0.0f, + -0x1.p-149 + }, + { // Entry 1131 + 0.0, + 0x1.p-126, + -0.0f, + 0.0f + }, + { // Entry 1132 + -0.0, + 0x1.p-126, + -0.0f, + -0.0f + }, + { // Entry 1133 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 1134 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1135 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1136 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1137 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1138 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1139 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1140 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1141 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1142 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + 0.0f + }, + { // Entry 1143 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF, + -0.0f + }, + { // Entry 1144 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 1145 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1146 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1147 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1148 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1149 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1150 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1151 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1152 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1153 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + 0.0f + }, + { // Entry 1154 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF, + -0.0f + }, + { // Entry 1155 + HUGE_VALF, + -0x1.p-126, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1156 + -HUGE_VALF, + -0x1.p-126, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1157 + 0x1.fffffdfffffffffffffffffffffffff8p127, + -0x1.p-126, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1158 + -0x1.fffffe00000000000000000000000007p127, + -0x1.p-126, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1159 + -0x1.fffffdfffffffffffffffffffffffffep1, + -0x1.p-126, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1160 + -0x1.fffffe00000000000000000000000002p1, + -0x1.p-126, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1161 + -0x1.fffffdfffffffffffffffffffffffffep1, + -0x1.p-126, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1162 + -0x1.fffffe00000000000000000000000001p1, + -0x1.p-126, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1163 + -0x1.fffffdffffffffffffffffffffffffffp1, + -0x1.p-126, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1164 + -0x1.fffffep1, + -0x1.p-126, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1165 + -0x1.fffffep1, + -0x1.p-126, + 0x1.fffffep127, + 0.0f + }, + { // Entry 1166 + -0x1.fffffep1, + -0x1.p-126, + 0x1.fffffep127, + -0.0f + }, + { // Entry 1167 + HUGE_VALF, + -0x1.p-126, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1168 + -HUGE_VALF, + -0x1.p-126, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1169 + 0x1.fffffe00000000000000000000000007p127, + -0x1.p-126, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1170 + -0x1.fffffdfffffffffffffffffffffffff8p127, + -0x1.p-126, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1171 + 0x1.fffffe00000000000000000000000002p1, + -0x1.p-126, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1172 + 0x1.fffffdfffffffffffffffffffffffffep1, + -0x1.p-126, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1173 + 0x1.fffffe00000000000000000000000001p1, + -0x1.p-126, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1174 + 0x1.fffffdfffffffffffffffffffffffffep1, + -0x1.p-126, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1175 + 0x1.fffffep1, + -0x1.p-126, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1176 + 0x1.fffffdffffffffffffffffffffffffffp1, + -0x1.p-126, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1177 + 0x1.fffffep1, + -0x1.p-126, + -0x1.fffffep127, + 0.0f + }, + { // Entry 1178 + 0x1.fffffep1, + -0x1.p-126, + -0x1.fffffep127, + -0.0f + }, + { // Entry 1179 + HUGE_VALF, + -0x1.p-126, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 1180 + -HUGE_VALF, + -0x1.p-126, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 1181 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-126, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1182 + -0x1.fffffep127, + -0x1.p-126, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1183 + 0x1.fffffffffffffffffffffffffffffff8p-127, + -0x1.p-126, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 1184 + -0x1.00000000000000000000000000000004p-126, + -0x1.p-126, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 1185 + 0x1.fffffbfffffffffffffffffffffffff8p-127, + -0x1.p-126, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1186 + -0x1.fffffc00000000000000000000000008p-127, + -0x1.p-126, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1187 + 0.0f, + -0x1.p-126, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 1188 + -0x1.00000000000000000000000002p-149, + -0x1.p-126, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 1189 + -0.0f, + -0x1.p-126, + 0x1.p-126, + 0.0f + }, + { // Entry 1190 + -0.0f, + -0x1.p-126, + 0x1.p-126, + -0.0f + }, + { // Entry 1191 + HUGE_VALF, + -0x1.p-126, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 1192 + -HUGE_VALF, + -0x1.p-126, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 1193 + 0x1.fffffep127, + -0x1.p-126, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1194 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-126, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1195 + 0x1.00000000000000000000000000000004p-126, + -0x1.p-126, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 1196 + -0x1.fffffffffffffffffffffffffffffff8p-127, + -0x1.p-126, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 1197 + 0x1.fffffc00000000000000000000000008p-127, + -0x1.p-126, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1198 + -0x1.fffffbfffffffffffffffffffffffff8p-127, + -0x1.p-126, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1199 + 0x1.00000000000000000000000002p-149, + -0x1.p-126, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 1200 + -0.0f, + -0x1.p-126, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 1201 + 0.0f, + -0x1.p-126, + -0x1.p-126, + 0.0f + }, + { // Entry 1202 + 0.0f, + -0x1.p-126, + -0x1.p-126, + -0.0f + }, + { // Entry 1203 + HUGE_VALF, + -0x1.p-126, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1204 + -HUGE_VALF, + -0x1.p-126, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1205 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-126, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1206 + -0x1.fffffep127, + -0x1.p-126, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1207 + 0x1.fffffffffffffffffffffffffffffff8p-127, + -0x1.p-126, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1208 + -0x1.00000000000000000000000000000003p-126, + -0x1.p-126, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1209 + 0x1.fffffbfffffffffffffffffffffffff8p-127, + -0x1.p-126, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1210 + -0x1.fffffc00000000000000000000000007p-127, + -0x1.p-126, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1211 + 0.0f, + -0x1.p-126, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1212 + -0x1.00000000000000000000000001fffffcp-149, + -0x1.p-126, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1213 + -0.0f, + -0x1.p-126, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 1214 + -0.0f, + -0x1.p-126, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 1215 + HUGE_VALF, + -0x1.p-126, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1216 + -HUGE_VALF, + -0x1.p-126, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1217 + 0x1.fffffep127, + -0x1.p-126, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1218 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-126, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1219 + 0x1.00000000000000000000000000000003p-126, + -0x1.p-126, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1220 + -0x1.fffffffffffffffffffffffffffffff8p-127, + -0x1.p-126, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1221 + 0x1.fffffc00000000000000000000000007p-127, + -0x1.p-126, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1222 + -0x1.fffffbfffffffffffffffffffffffff8p-127, + -0x1.p-126, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1223 + 0x1.00000000000000000000000001fffffcp-149, + -0x1.p-126, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1224 + -0.0f, + -0x1.p-126, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1225 + 0.0f, + -0x1.p-126, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 1226 + 0.0f, + -0x1.p-126, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 1227 + HUGE_VALF, + -0x1.p-126, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 1228 + -HUGE_VALF, + -0x1.p-126, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 1229 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-126, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1230 + -0x1.fffffep127, + -0x1.p-126, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1231 + 0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-126, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 1232 + -0x1.p-126, + -0x1.p-126, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 1233 + 0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.p-126, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1234 + -0x1.fffffcp-127, + -0x1.p-126, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1235 + 0.0f, + -0x1.p-126, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 1236 + -0x1.00000000000000000000000000000004p-149, + -0x1.p-126, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 1237 + -0.0f, + -0x1.p-126, + 0x1.p-149, + 0.0f + }, + { // Entry 1238 + -0.0f, + -0x1.p-126, + 0x1.p-149, + -0.0f + }, + { // Entry 1239 + HUGE_VALF, + -0x1.p-126, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 1240 + -HUGE_VALF, + -0x1.p-126, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 1241 + 0x1.fffffep127, + -0x1.p-126, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1242 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-126, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1243 + 0x1.p-126, + -0x1.p-126, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 1244 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-126, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 1245 + 0x1.fffffcp-127, + -0x1.p-126, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1246 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.p-126, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1247 + 0x1.00000000000000000000000000000004p-149, + -0x1.p-126, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 1248 + -0.0f, + -0x1.p-126, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 1249 + 0.0f, + -0x1.p-126, + -0x1.p-149, + 0.0f + }, + { // Entry 1250 + 0.0f, + -0x1.p-126, + -0x1.p-149, + -0.0f + }, + { // Entry 1251 + HUGE_VALF, + -0x1.p-126, + 0.0f, + HUGE_VALF + }, + { // Entry 1252 + -HUGE_VALF, + -0x1.p-126, + 0.0f, + -HUGE_VALF + }, + { // Entry 1253 + 0x1.fffffep127, + -0x1.p-126, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 1254 + -0x1.fffffep127, + -0x1.p-126, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 1255 + 0x1.p-126, + -0x1.p-126, + 0.0f, + 0x1.p-126 + }, + { // Entry 1256 + -0x1.p-126, + -0x1.p-126, + 0.0f, + -0x1.p-126 + }, + { // Entry 1257 + 0x1.fffffcp-127, + -0x1.p-126, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1258 + -0x1.fffffcp-127, + -0x1.p-126, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1259 + 0x1.p-149, + -0x1.p-126, + 0.0f, + 0x1.p-149 + }, + { // Entry 1260 + -0x1.p-149, + -0x1.p-126, + 0.0f, + -0x1.p-149 + }, + { // Entry 1261 + 0.0, + -0x1.p-126, + 0.0f, + 0.0f + }, + { // Entry 1262 + -0.0, + -0x1.p-126, + 0.0f, + -0.0f + }, + { // Entry 1263 + HUGE_VALF, + -0x1.p-126, + -0.0f, + HUGE_VALF + }, + { // Entry 1264 + -HUGE_VALF, + -0x1.p-126, + -0.0f, + -HUGE_VALF + }, + { // Entry 1265 + 0x1.fffffep127, + -0x1.p-126, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 1266 + -0x1.fffffep127, + -0x1.p-126, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 1267 + 0x1.p-126, + -0x1.p-126, + -0.0f, + 0x1.p-126 + }, + { // Entry 1268 + -0x1.p-126, + -0x1.p-126, + -0.0f, + -0x1.p-126 + }, + { // Entry 1269 + 0x1.fffffcp-127, + -0x1.p-126, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1270 + -0x1.fffffcp-127, + -0x1.p-126, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1271 + 0x1.p-149, + -0x1.p-126, + -0.0f, + 0x1.p-149 + }, + { // Entry 1272 + -0x1.p-149, + -0x1.p-126, + -0.0f, + -0x1.p-149 + }, + { // Entry 1273 + 0.0, + -0x1.p-126, + -0.0f, + 0.0f + }, + { // Entry 1274 + 0.0, + -0x1.p-126, + -0.0f, + -0.0f + }, + { // Entry 1275 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 1276 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1277 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1278 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1279 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1280 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1281 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1282 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1283 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1284 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + 0.0f + }, + { // Entry 1285 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF, + -0.0f + }, + { // Entry 1286 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 1287 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1288 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1289 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1290 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1291 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1292 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1293 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1294 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1295 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + 0.0f + }, + { // Entry 1296 + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF, + -0.0f + }, + { // Entry 1297 + HUGE_VALF, + 0x1.fffffcp-127, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1298 + -HUGE_VALF, + 0x1.fffffcp-127, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1299 + 0x1.fffffe00000000000000000000000007p127, + 0x1.fffffcp-127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1300 + -0x1.fffffdfffffffffffffffffffffffff8p127, + 0x1.fffffcp-127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1301 + 0x1.fffffa00000400000000000000000002p1, + 0x1.fffffcp-127, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1302 + 0x1.fffffa000003fffffffffffffffffffep1, + 0x1.fffffcp-127, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1303 + 0x1.fffffa00000400000000000000000001p1, + 0x1.fffffcp-127, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1304 + 0x1.fffffa000003fffffffffffffffffffep1, + 0x1.fffffcp-127, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1305 + 0x1.fffffa000004p1, + 0x1.fffffcp-127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1306 + 0x1.fffffa000003ffffffffffffffffffffp1, + 0x1.fffffcp-127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1307 + 0x1.fffffa000004p1, + 0x1.fffffcp-127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 1308 + 0x1.fffffa000004p1, + 0x1.fffffcp-127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 1309 + HUGE_VALF, + 0x1.fffffcp-127, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1310 + -HUGE_VALF, + 0x1.fffffcp-127, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1311 + 0x1.fffffdfffffffffffffffffffffffff8p127, + 0x1.fffffcp-127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1312 + -0x1.fffffe00000000000000000000000007p127, + 0x1.fffffcp-127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1313 + -0x1.fffffa000003fffffffffffffffffffep1, + 0x1.fffffcp-127, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1314 + -0x1.fffffa00000400000000000000000002p1, + 0x1.fffffcp-127, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1315 + -0x1.fffffa000003fffffffffffffffffffep1, + 0x1.fffffcp-127, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1316 + -0x1.fffffa00000400000000000000000001p1, + 0x1.fffffcp-127, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1317 + -0x1.fffffa000003ffffffffffffffffffffp1, + 0x1.fffffcp-127, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1318 + -0x1.fffffa000004p1, + 0x1.fffffcp-127, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1319 + -0x1.fffffa000004p1, + 0x1.fffffcp-127, + -0x1.fffffep127, + 0.0f + }, + { // Entry 1320 + -0x1.fffffa000004p1, + 0x1.fffffcp-127, + -0x1.fffffep127, + -0.0f + }, + { // Entry 1321 + HUGE_VALF, + 0x1.fffffcp-127, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 1322 + -HUGE_VALF, + 0x1.fffffcp-127, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 1323 + 0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1324 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffcp-127, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1325 + 0x1.00000000000000000000000000000003p-126, + 0x1.fffffcp-127, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 1326 + -0x1.fffffffffffffffffffffffffffffff8p-127, + 0x1.fffffcp-127, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 1327 + 0x1.fffffc00000000000000000000000007p-127, + 0x1.fffffcp-127, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1328 + -0x1.fffffbfffffffffffffffffffffffff8p-127, + 0x1.fffffcp-127, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1329 + 0x1.00000000000000000000000001fffffcp-149, + 0x1.fffffcp-127, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 1330 + -0.0f, + 0x1.fffffcp-127, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 1331 + 0.0f, + 0x1.fffffcp-127, + 0x1.p-126, + 0.0f + }, + { // Entry 1332 + 0.0f, + 0x1.fffffcp-127, + 0x1.p-126, + -0.0f + }, + { // Entry 1333 + HUGE_VALF, + 0x1.fffffcp-127, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 1334 + -HUGE_VALF, + 0x1.fffffcp-127, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 1335 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffcp-127, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1336 + -0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1337 + 0x1.fffffffffffffffffffffffffffffff8p-127, + 0x1.fffffcp-127, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 1338 + -0x1.00000000000000000000000000000003p-126, + 0x1.fffffcp-127, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 1339 + 0x1.fffffbfffffffffffffffffffffffff8p-127, + 0x1.fffffcp-127, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1340 + -0x1.fffffc00000000000000000000000007p-127, + 0x1.fffffcp-127, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1341 + 0.0f, + 0x1.fffffcp-127, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 1342 + -0x1.00000000000000000000000001fffffcp-149, + 0x1.fffffcp-127, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 1343 + -0.0f, + 0x1.fffffcp-127, + -0x1.p-126, + 0.0f + }, + { // Entry 1344 + -0.0f, + 0x1.fffffcp-127, + -0x1.p-126, + -0.0f + }, + { // Entry 1345 + HUGE_VALF, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1346 + -HUGE_VALF, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1347 + 0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1348 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1349 + 0x1.00000000000000000000000000000003p-126, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1350 + -0x1.fffffffffffffffffffffffffffffff8p-127, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1351 + 0x1.fffffc00000000000000000000000007p-127, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1352 + -0x1.fffffbfffffffffffffffffffffffff8p-127, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1353 + 0x1.00000000000000000000000001fffff8p-149, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1354 + -0.0f, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1355 + 0.0f, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 1356 + 0.0f, + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 1357 + HUGE_VALF, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1358 + -HUGE_VALF, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1359 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1360 + -0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1361 + 0x1.fffffffffffffffffffffffffffffff8p-127, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1362 + -0x1.00000000000000000000000000000003p-126, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1363 + 0x1.fffffbfffffffffffffffffffffffff8p-127, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1364 + -0x1.fffffc00000000000000000000000007p-127, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1365 + 0.0f, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1366 + -0x1.00000000000000000000000001fffff8p-149, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1367 + -0.0f, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 1368 + -0.0f, + 0x1.fffffcp-127, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 1369 + HUGE_VALF, + 0x1.fffffcp-127, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 1370 + -HUGE_VALF, + 0x1.fffffcp-127, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 1371 + 0x1.fffffep127, + 0x1.fffffcp-127, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1372 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffcp-127, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1373 + 0x1.p-126, + 0x1.fffffcp-127, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 1374 + -0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.fffffcp-127, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 1375 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1376 + -0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.fffffcp-127, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1377 + 0x1.00000000000000000000000000000003p-149, + 0x1.fffffcp-127, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 1378 + -0.0f, + 0x1.fffffcp-127, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 1379 + 0.0f, + 0x1.fffffcp-127, + 0x1.p-149, + 0.0f + }, + { // Entry 1380 + 0.0f, + 0x1.fffffcp-127, + 0x1.p-149, + -0.0f + }, + { // Entry 1381 + HUGE_VALF, + 0x1.fffffcp-127, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 1382 + -HUGE_VALF, + 0x1.fffffcp-127, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 1383 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.fffffcp-127, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1384 + -0x1.fffffep127, + 0x1.fffffcp-127, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1385 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.fffffcp-127, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 1386 + -0x1.p-126, + 0x1.fffffcp-127, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 1387 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.fffffcp-127, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1388 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1389 + 0.0f, + 0x1.fffffcp-127, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 1390 + -0x1.00000000000000000000000000000003p-149, + 0x1.fffffcp-127, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 1391 + -0.0f, + 0x1.fffffcp-127, + -0x1.p-149, + 0.0f + }, + { // Entry 1392 + -0.0f, + 0x1.fffffcp-127, + -0x1.p-149, + -0.0f + }, + { // Entry 1393 + HUGE_VALF, + 0x1.fffffcp-127, + 0.0f, + HUGE_VALF + }, + { // Entry 1394 + -HUGE_VALF, + 0x1.fffffcp-127, + 0.0f, + -HUGE_VALF + }, + { // Entry 1395 + 0x1.fffffep127, + 0x1.fffffcp-127, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 1396 + -0x1.fffffep127, + 0x1.fffffcp-127, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 1397 + 0x1.p-126, + 0x1.fffffcp-127, + 0.0f, + 0x1.p-126 + }, + { // Entry 1398 + -0x1.p-126, + 0x1.fffffcp-127, + 0.0f, + -0x1.p-126 + }, + { // Entry 1399 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1400 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1401 + 0x1.p-149, + 0x1.fffffcp-127, + 0.0f, + 0x1.p-149 + }, + { // Entry 1402 + -0x1.p-149, + 0x1.fffffcp-127, + 0.0f, + -0x1.p-149 + }, + { // Entry 1403 + 0.0, + 0x1.fffffcp-127, + 0.0f, + 0.0f + }, + { // Entry 1404 + 0.0, + 0x1.fffffcp-127, + 0.0f, + -0.0f + }, + { // Entry 1405 + HUGE_VALF, + 0x1.fffffcp-127, + -0.0f, + HUGE_VALF + }, + { // Entry 1406 + -HUGE_VALF, + 0x1.fffffcp-127, + -0.0f, + -HUGE_VALF + }, + { // Entry 1407 + 0x1.fffffep127, + 0x1.fffffcp-127, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 1408 + -0x1.fffffep127, + 0x1.fffffcp-127, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 1409 + 0x1.p-126, + 0x1.fffffcp-127, + -0.0f, + 0x1.p-126 + }, + { // Entry 1410 + -0x1.p-126, + 0x1.fffffcp-127, + -0.0f, + -0x1.p-126 + }, + { // Entry 1411 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1412 + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1413 + 0x1.p-149, + 0x1.fffffcp-127, + -0.0f, + 0x1.p-149 + }, + { // Entry 1414 + -0x1.p-149, + 0x1.fffffcp-127, + -0.0f, + -0x1.p-149 + }, + { // Entry 1415 + 0.0, + 0x1.fffffcp-127, + -0.0f, + 0.0f + }, + { // Entry 1416 + -0.0, + 0x1.fffffcp-127, + -0.0f, + -0.0f + }, + { // Entry 1417 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 1418 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1419 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1420 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1421 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1422 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1423 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1424 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1425 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1426 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + 0.0f + }, + { // Entry 1427 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF, + -0.0f + }, + { // Entry 1428 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 1429 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1430 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1431 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1432 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1433 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1434 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1435 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1436 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1437 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + 0.0f + }, + { // Entry 1438 + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF, + -0.0f + }, + { // Entry 1439 + HUGE_VALF, + -0x1.fffffcp-127, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1440 + -HUGE_VALF, + -0x1.fffffcp-127, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1441 + 0x1.fffffdfffffffffffffffffffffffff8p127, + -0x1.fffffcp-127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1442 + -0x1.fffffe00000000000000000000000007p127, + -0x1.fffffcp-127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1443 + -0x1.fffffa000003fffffffffffffffffffep1, + -0x1.fffffcp-127, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1444 + -0x1.fffffa00000400000000000000000002p1, + -0x1.fffffcp-127, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1445 + -0x1.fffffa000003fffffffffffffffffffep1, + -0x1.fffffcp-127, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1446 + -0x1.fffffa00000400000000000000000001p1, + -0x1.fffffcp-127, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1447 + -0x1.fffffa000003ffffffffffffffffffffp1, + -0x1.fffffcp-127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1448 + -0x1.fffffa000004p1, + -0x1.fffffcp-127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1449 + -0x1.fffffa000004p1, + -0x1.fffffcp-127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 1450 + -0x1.fffffa000004p1, + -0x1.fffffcp-127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 1451 + HUGE_VALF, + -0x1.fffffcp-127, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1452 + -HUGE_VALF, + -0x1.fffffcp-127, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1453 + 0x1.fffffe00000000000000000000000007p127, + -0x1.fffffcp-127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1454 + -0x1.fffffdfffffffffffffffffffffffff8p127, + -0x1.fffffcp-127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1455 + 0x1.fffffa00000400000000000000000002p1, + -0x1.fffffcp-127, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1456 + 0x1.fffffa000003fffffffffffffffffffep1, + -0x1.fffffcp-127, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1457 + 0x1.fffffa00000400000000000000000001p1, + -0x1.fffffcp-127, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1458 + 0x1.fffffa000003fffffffffffffffffffep1, + -0x1.fffffcp-127, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1459 + 0x1.fffffa000004p1, + -0x1.fffffcp-127, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1460 + 0x1.fffffa000003ffffffffffffffffffffp1, + -0x1.fffffcp-127, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1461 + 0x1.fffffa000004p1, + -0x1.fffffcp-127, + -0x1.fffffep127, + 0.0f + }, + { // Entry 1462 + 0x1.fffffa000004p1, + -0x1.fffffcp-127, + -0x1.fffffep127, + -0.0f + }, + { // Entry 1463 + HUGE_VALF, + -0x1.fffffcp-127, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 1464 + -HUGE_VALF, + -0x1.fffffcp-127, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 1465 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.fffffcp-127, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1466 + -0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1467 + 0x1.fffffffffffffffffffffffffffffff8p-127, + -0x1.fffffcp-127, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 1468 + -0x1.00000000000000000000000000000003p-126, + -0x1.fffffcp-127, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 1469 + 0x1.fffffbfffffffffffffffffffffffff8p-127, + -0x1.fffffcp-127, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1470 + -0x1.fffffc00000000000000000000000007p-127, + -0x1.fffffcp-127, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1471 + 0.0f, + -0x1.fffffcp-127, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 1472 + -0x1.00000000000000000000000001fffffcp-149, + -0x1.fffffcp-127, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 1473 + -0.0f, + -0x1.fffffcp-127, + 0x1.p-126, + 0.0f + }, + { // Entry 1474 + -0.0f, + -0x1.fffffcp-127, + 0x1.p-126, + -0.0f + }, + { // Entry 1475 + HUGE_VALF, + -0x1.fffffcp-127, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 1476 + -HUGE_VALF, + -0x1.fffffcp-127, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 1477 + 0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1478 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.fffffcp-127, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1479 + 0x1.00000000000000000000000000000003p-126, + -0x1.fffffcp-127, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 1480 + -0x1.fffffffffffffffffffffffffffffff8p-127, + -0x1.fffffcp-127, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 1481 + 0x1.fffffc00000000000000000000000007p-127, + -0x1.fffffcp-127, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1482 + -0x1.fffffbfffffffffffffffffffffffff8p-127, + -0x1.fffffcp-127, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1483 + 0x1.00000000000000000000000001fffffcp-149, + -0x1.fffffcp-127, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 1484 + -0.0f, + -0x1.fffffcp-127, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 1485 + 0.0f, + -0x1.fffffcp-127, + -0x1.p-126, + 0.0f + }, + { // Entry 1486 + 0.0f, + -0x1.fffffcp-127, + -0x1.p-126, + -0.0f + }, + { // Entry 1487 + HUGE_VALF, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1488 + -HUGE_VALF, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1489 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1490 + -0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1491 + 0x1.fffffffffffffffffffffffffffffff8p-127, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1492 + -0x1.00000000000000000000000000000003p-126, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1493 + 0x1.fffffbfffffffffffffffffffffffff8p-127, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1494 + -0x1.fffffc00000000000000000000000007p-127, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1495 + 0.0f, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1496 + -0x1.00000000000000000000000001fffff8p-149, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1497 + -0.0f, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 1498 + -0.0f, + -0x1.fffffcp-127, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 1499 + HUGE_VALF, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1500 + -HUGE_VALF, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1501 + 0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1502 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1503 + 0x1.00000000000000000000000000000003p-126, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1504 + -0x1.fffffffffffffffffffffffffffffff8p-127, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1505 + 0x1.fffffc00000000000000000000000007p-127, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1506 + -0x1.fffffbfffffffffffffffffffffffff8p-127, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1507 + 0x1.00000000000000000000000001fffff8p-149, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1508 + -0.0f, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1509 + 0.0f, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 1510 + 0.0f, + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 1511 + HUGE_VALF, + -0x1.fffffcp-127, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 1512 + -HUGE_VALF, + -0x1.fffffcp-127, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 1513 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.fffffcp-127, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1514 + -0x1.fffffep127, + -0x1.fffffcp-127, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1515 + 0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.fffffcp-127, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 1516 + -0x1.p-126, + -0x1.fffffcp-127, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 1517 + 0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.fffffcp-127, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1518 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1519 + 0.0f, + -0x1.fffffcp-127, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 1520 + -0x1.00000000000000000000000000000003p-149, + -0x1.fffffcp-127, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 1521 + -0.0f, + -0x1.fffffcp-127, + 0x1.p-149, + 0.0f + }, + { // Entry 1522 + -0.0f, + -0x1.fffffcp-127, + 0x1.p-149, + -0.0f + }, + { // Entry 1523 + HUGE_VALF, + -0x1.fffffcp-127, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 1524 + -HUGE_VALF, + -0x1.fffffcp-127, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 1525 + 0x1.fffffep127, + -0x1.fffffcp-127, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1526 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.fffffcp-127, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1527 + 0x1.p-126, + -0x1.fffffcp-127, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 1528 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.fffffcp-127, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 1529 + 0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1530 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.fffffcp-127, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1531 + 0x1.00000000000000000000000000000003p-149, + -0x1.fffffcp-127, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 1532 + -0.0f, + -0x1.fffffcp-127, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 1533 + 0.0f, + -0x1.fffffcp-127, + -0x1.p-149, + 0.0f + }, + { // Entry 1534 + 0.0f, + -0x1.fffffcp-127, + -0x1.p-149, + -0.0f + }, + { // Entry 1535 + HUGE_VALF, + -0x1.fffffcp-127, + 0.0f, + HUGE_VALF + }, + { // Entry 1536 + -HUGE_VALF, + -0x1.fffffcp-127, + 0.0f, + -HUGE_VALF + }, + { // Entry 1537 + 0x1.fffffep127, + -0x1.fffffcp-127, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 1538 + -0x1.fffffep127, + -0x1.fffffcp-127, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 1539 + 0x1.p-126, + -0x1.fffffcp-127, + 0.0f, + 0x1.p-126 + }, + { // Entry 1540 + -0x1.p-126, + -0x1.fffffcp-127, + 0.0f, + -0x1.p-126 + }, + { // Entry 1541 + 0x1.fffffcp-127, + -0x1.fffffcp-127, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1542 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1543 + 0x1.p-149, + -0x1.fffffcp-127, + 0.0f, + 0x1.p-149 + }, + { // Entry 1544 + -0x1.p-149, + -0x1.fffffcp-127, + 0.0f, + -0x1.p-149 + }, + { // Entry 1545 + 0.0, + -0x1.fffffcp-127, + 0.0f, + 0.0f + }, + { // Entry 1546 + -0.0, + -0x1.fffffcp-127, + 0.0f, + -0.0f + }, + { // Entry 1547 + HUGE_VALF, + -0x1.fffffcp-127, + -0.0f, + HUGE_VALF + }, + { // Entry 1548 + -HUGE_VALF, + -0x1.fffffcp-127, + -0.0f, + -HUGE_VALF + }, + { // Entry 1549 + 0x1.fffffep127, + -0x1.fffffcp-127, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 1550 + -0x1.fffffep127, + -0x1.fffffcp-127, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 1551 + 0x1.p-126, + -0x1.fffffcp-127, + -0.0f, + 0x1.p-126 + }, + { // Entry 1552 + -0x1.p-126, + -0x1.fffffcp-127, + -0.0f, + -0x1.p-126 + }, + { // Entry 1553 + 0x1.fffffcp-127, + -0x1.fffffcp-127, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1554 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1555 + 0x1.p-149, + -0x1.fffffcp-127, + -0.0f, + 0x1.p-149 + }, + { // Entry 1556 + -0x1.p-149, + -0x1.fffffcp-127, + -0.0f, + -0x1.p-149 + }, + { // Entry 1557 + 0.0, + -0x1.fffffcp-127, + -0.0f, + 0.0f + }, + { // Entry 1558 + 0.0, + -0x1.fffffcp-127, + -0.0f, + -0.0f + }, + { // Entry 1559 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 1560 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1561 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1562 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1563 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1564 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1565 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1566 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1567 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1568 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + 0.0f + }, + { // Entry 1569 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF, + -0.0f + }, + { // Entry 1570 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 1571 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1572 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1573 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1574 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1575 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1576 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1577 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1578 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1579 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + 0.0f + }, + { // Entry 1580 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF, + -0.0f + }, + { // Entry 1581 + HUGE_VALF, + 0x1.p-149, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1582 + -HUGE_VALF, + 0x1.p-149, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1583 + 0x1.fffffep127, + 0x1.p-149, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1584 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-149, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1585 + 0x1.fffffe00000000000000000001p-22, + 0x1.p-149, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1586 + 0x1.fffffdffffffffffffffffffffp-22, + 0x1.p-149, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1587 + 0x1.fffffe00000000000000000000fffffep-22, + 0x1.p-149, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1588 + 0x1.fffffdffffffffffffffffffff000002p-22, + 0x1.p-149, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1589 + 0x1.fffffe00000000000000000000000002p-22, + 0x1.p-149, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1590 + 0x1.fffffdfffffffffffffffffffffffffep-22, + 0x1.p-149, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1591 + 0x1.fffffep-22, + 0x1.p-149, + 0x1.fffffep127, + 0.0f + }, + { // Entry 1592 + 0x1.fffffep-22, + 0x1.p-149, + 0x1.fffffep127, + -0.0f + }, + { // Entry 1593 + HUGE_VALF, + 0x1.p-149, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1594 + -HUGE_VALF, + 0x1.p-149, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1595 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-149, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1596 + -0x1.fffffep127, + 0x1.p-149, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1597 + -0x1.fffffdffffffffffffffffffffp-22, + 0x1.p-149, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1598 + -0x1.fffffe00000000000000000001p-22, + 0x1.p-149, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1599 + -0x1.fffffdffffffffffffffffffff000002p-22, + 0x1.p-149, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1600 + -0x1.fffffe00000000000000000000fffffep-22, + 0x1.p-149, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1601 + -0x1.fffffdfffffffffffffffffffffffffep-22, + 0x1.p-149, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1602 + -0x1.fffffe00000000000000000000000002p-22, + 0x1.p-149, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1603 + -0x1.fffffep-22, + 0x1.p-149, + -0x1.fffffep127, + 0.0f + }, + { // Entry 1604 + -0x1.fffffep-22, + 0x1.p-149, + -0x1.fffffep127, + -0.0f + }, + { // Entry 1605 + HUGE_VALF, + 0x1.p-149, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 1606 + -HUGE_VALF, + 0x1.p-149, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 1607 + 0x1.fffffep127, + 0x1.p-149, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1608 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-149, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1609 + 0x1.p-126, + 0x1.p-149, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 1610 + -0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-149, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 1611 + 0x1.fffffcp-127, + 0x1.p-149, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1612 + -0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.p-149, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1613 + 0x1.00000000000000000000000000000004p-149, + 0x1.p-149, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 1614 + -0.0f, + 0x1.p-149, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 1615 + 0.0f, + 0x1.p-149, + 0x1.p-126, + 0.0f + }, + { // Entry 1616 + 0.0f, + 0x1.p-149, + 0x1.p-126, + -0.0f + }, + { // Entry 1617 + HUGE_VALF, + 0x1.p-149, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 1618 + -HUGE_VALF, + 0x1.p-149, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 1619 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-149, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1620 + -0x1.fffffep127, + 0x1.p-149, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1621 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-149, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 1622 + -0x1.p-126, + 0x1.p-149, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 1623 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.p-149, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1624 + -0x1.fffffcp-127, + 0x1.p-149, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1625 + 0.0f, + 0x1.p-149, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 1626 + -0x1.00000000000000000000000000000004p-149, + 0x1.p-149, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 1627 + -0.0f, + 0x1.p-149, + -0x1.p-126, + 0.0f + }, + { // Entry 1628 + -0.0f, + 0x1.p-149, + -0x1.p-126, + -0.0f + }, + { // Entry 1629 + HUGE_VALF, + 0x1.p-149, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1630 + -HUGE_VALF, + 0x1.p-149, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1631 + 0x1.fffffep127, + 0x1.p-149, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1632 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-149, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1633 + 0x1.p-126, + 0x1.p-149, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1634 + -0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-149, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1635 + 0x1.fffffcp-127, + 0x1.p-149, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1636 + -0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.p-149, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1637 + 0x1.00000000000000000000000000000003p-149, + 0x1.p-149, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1638 + -0.0f, + 0x1.p-149, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1639 + 0.0f, + 0x1.p-149, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 1640 + 0.0f, + 0x1.p-149, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 1641 + HUGE_VALF, + 0x1.p-149, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1642 + -HUGE_VALF, + 0x1.p-149, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1643 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-149, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1644 + -0x1.fffffep127, + 0x1.p-149, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1645 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-149, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1646 + -0x1.p-126, + 0x1.p-149, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1647 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.p-149, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1648 + -0x1.fffffcp-127, + 0x1.p-149, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1649 + 0.0f, + 0x1.p-149, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1650 + -0x1.00000000000000000000000000000003p-149, + 0x1.p-149, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1651 + -0.0f, + 0x1.p-149, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 1652 + -0.0f, + 0x1.p-149, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 1653 + HUGE_VALF, + 0x1.p-149, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 1654 + -HUGE_VALF, + 0x1.p-149, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 1655 + 0x1.fffffep127, + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1656 + -0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1657 + 0x1.p-126, + 0x1.p-149, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 1658 + -0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-149, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 1659 + 0x1.fffffcp-127, + 0x1.p-149, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1660 + -0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.p-149, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1661 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 1662 + -0.0f, + 0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 1663 + 0.0f, + 0x1.p-149, + 0x1.p-149, + 0.0f + }, + { // Entry 1664 + 0.0f, + 0x1.p-149, + 0x1.p-149, + -0.0f + }, + { // Entry 1665 + HUGE_VALF, + 0x1.p-149, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 1666 + -HUGE_VALF, + 0x1.p-149, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 1667 + 0x1.fffffdffffffffffffffffffffffffffp127, + 0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1668 + -0x1.fffffep127, + 0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1669 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-149, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 1670 + -0x1.p-126, + 0x1.p-149, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 1671 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.p-149, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1672 + -0x1.fffffcp-127, + 0x1.p-149, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1673 + 0.0f, + 0x1.p-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 1674 + -0x1.p-149, + 0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 1675 + -0.0f, + 0x1.p-149, + -0x1.p-149, + 0.0f + }, + { // Entry 1676 + -0.0f, + 0x1.p-149, + -0x1.p-149, + -0.0f + }, + { // Entry 1677 + HUGE_VALF, + 0x1.p-149, + 0.0f, + HUGE_VALF + }, + { // Entry 1678 + -HUGE_VALF, + 0x1.p-149, + 0.0f, + -HUGE_VALF + }, + { // Entry 1679 + 0x1.fffffep127, + 0x1.p-149, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 1680 + -0x1.fffffep127, + 0x1.p-149, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 1681 + 0x1.p-126, + 0x1.p-149, + 0.0f, + 0x1.p-126 + }, + { // Entry 1682 + -0x1.p-126, + 0x1.p-149, + 0.0f, + -0x1.p-126 + }, + { // Entry 1683 + 0x1.fffffcp-127, + 0x1.p-149, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1684 + -0x1.fffffcp-127, + 0x1.p-149, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1685 + 0x1.p-149, + 0x1.p-149, + 0.0f, + 0x1.p-149 + }, + { // Entry 1686 + -0x1.p-149, + 0x1.p-149, + 0.0f, + -0x1.p-149 + }, + { // Entry 1687 + 0.0, + 0x1.p-149, + 0.0f, + 0.0f + }, + { // Entry 1688 + 0.0, + 0x1.p-149, + 0.0f, + -0.0f + }, + { // Entry 1689 + HUGE_VALF, + 0x1.p-149, + -0.0f, + HUGE_VALF + }, + { // Entry 1690 + -HUGE_VALF, + 0x1.p-149, + -0.0f, + -HUGE_VALF + }, + { // Entry 1691 + 0x1.fffffep127, + 0x1.p-149, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 1692 + -0x1.fffffep127, + 0x1.p-149, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 1693 + 0x1.p-126, + 0x1.p-149, + -0.0f, + 0x1.p-126 + }, + { // Entry 1694 + -0x1.p-126, + 0x1.p-149, + -0.0f, + -0x1.p-126 + }, + { // Entry 1695 + 0x1.fffffcp-127, + 0x1.p-149, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1696 + -0x1.fffffcp-127, + 0x1.p-149, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1697 + 0x1.p-149, + 0x1.p-149, + -0.0f, + 0x1.p-149 + }, + { // Entry 1698 + -0x1.p-149, + 0x1.p-149, + -0.0f, + -0x1.p-149 + }, + { // Entry 1699 + 0.0, + 0x1.p-149, + -0.0f, + 0.0f + }, + { // Entry 1700 + -0.0, + 0x1.p-149, + -0.0f, + -0.0f + }, + { // Entry 1701 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 1702 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1703 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1704 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1705 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1706 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1707 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1708 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1709 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1710 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + 0.0f + }, + { // Entry 1711 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF, + -0.0f + }, + { // Entry 1712 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 1713 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 1714 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 1715 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 1716 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 1717 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 1718 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 1719 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 1720 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 1721 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + 0.0f + }, + { // Entry 1722 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF, + -0.0f + }, + { // Entry 1723 + HUGE_VALF, + -0x1.p-149, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1724 + -HUGE_VALF, + -0x1.p-149, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1725 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-149, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1726 + -0x1.fffffep127, + -0x1.p-149, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1727 + -0x1.fffffdffffffffffffffffffffp-22, + -0x1.p-149, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1728 + -0x1.fffffe00000000000000000001p-22, + -0x1.p-149, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1729 + -0x1.fffffdffffffffffffffffffff000002p-22, + -0x1.p-149, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1730 + -0x1.fffffe00000000000000000000fffffep-22, + -0x1.p-149, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1731 + -0x1.fffffdfffffffffffffffffffffffffep-22, + -0x1.p-149, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1732 + -0x1.fffffe00000000000000000000000002p-22, + -0x1.p-149, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1733 + -0x1.fffffep-22, + -0x1.p-149, + 0x1.fffffep127, + 0.0f + }, + { // Entry 1734 + -0x1.fffffep-22, + -0x1.p-149, + 0x1.fffffep127, + -0.0f + }, + { // Entry 1735 + HUGE_VALF, + -0x1.p-149, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1736 + -HUGE_VALF, + -0x1.p-149, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1737 + 0x1.fffffep127, + -0x1.p-149, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1738 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-149, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1739 + 0x1.fffffe00000000000000000001p-22, + -0x1.p-149, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1740 + 0x1.fffffdffffffffffffffffffffp-22, + -0x1.p-149, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1741 + 0x1.fffffe00000000000000000000fffffep-22, + -0x1.p-149, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1742 + 0x1.fffffdffffffffffffffffffff000002p-22, + -0x1.p-149, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1743 + 0x1.fffffe00000000000000000000000002p-22, + -0x1.p-149, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1744 + 0x1.fffffdfffffffffffffffffffffffffep-22, + -0x1.p-149, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1745 + 0x1.fffffep-22, + -0x1.p-149, + -0x1.fffffep127, + 0.0f + }, + { // Entry 1746 + 0x1.fffffep-22, + -0x1.p-149, + -0x1.fffffep127, + -0.0f + }, + { // Entry 1747 + HUGE_VALF, + -0x1.p-149, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 1748 + -HUGE_VALF, + -0x1.p-149, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 1749 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-149, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1750 + -0x1.fffffep127, + -0x1.p-149, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1751 + 0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-149, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 1752 + -0x1.p-126, + -0x1.p-149, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 1753 + 0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.p-149, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1754 + -0x1.fffffcp-127, + -0x1.p-149, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1755 + 0.0f, + -0x1.p-149, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 1756 + -0x1.00000000000000000000000000000004p-149, + -0x1.p-149, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 1757 + -0.0f, + -0x1.p-149, + 0x1.p-126, + 0.0f + }, + { // Entry 1758 + -0.0f, + -0x1.p-149, + 0x1.p-126, + -0.0f + }, + { // Entry 1759 + HUGE_VALF, + -0x1.p-149, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 1760 + -HUGE_VALF, + -0x1.p-149, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 1761 + 0x1.fffffep127, + -0x1.p-149, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1762 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-149, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1763 + 0x1.p-126, + -0x1.p-149, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 1764 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-149, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 1765 + 0x1.fffffcp-127, + -0x1.p-149, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1766 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.p-149, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1767 + 0x1.00000000000000000000000000000004p-149, + -0x1.p-149, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 1768 + -0.0f, + -0x1.p-149, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 1769 + 0.0f, + -0x1.p-149, + -0x1.p-126, + 0.0f + }, + { // Entry 1770 + 0.0f, + -0x1.p-149, + -0x1.p-126, + -0.0f + }, + { // Entry 1771 + HUGE_VALF, + -0x1.p-149, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1772 + -HUGE_VALF, + -0x1.p-149, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1773 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-149, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1774 + -0x1.fffffep127, + -0x1.p-149, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1775 + 0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-149, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1776 + -0x1.p-126, + -0x1.p-149, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1777 + 0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.p-149, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1778 + -0x1.fffffcp-127, + -0x1.p-149, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1779 + 0.0f, + -0x1.p-149, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1780 + -0x1.00000000000000000000000000000003p-149, + -0x1.p-149, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1781 + -0.0f, + -0x1.p-149, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 1782 + -0.0f, + -0x1.p-149, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 1783 + HUGE_VALF, + -0x1.p-149, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1784 + -HUGE_VALF, + -0x1.p-149, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1785 + 0x1.fffffep127, + -0x1.p-149, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1786 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-149, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1787 + 0x1.p-126, + -0x1.p-149, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1788 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-149, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1789 + 0x1.fffffcp-127, + -0x1.p-149, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1790 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.p-149, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1791 + 0x1.00000000000000000000000000000003p-149, + -0x1.p-149, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1792 + -0.0f, + -0x1.p-149, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1793 + 0.0f, + -0x1.p-149, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 1794 + 0.0f, + -0x1.p-149, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 1795 + HUGE_VALF, + -0x1.p-149, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 1796 + -HUGE_VALF, + -0x1.p-149, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 1797 + 0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1798 + -0x1.fffffep127, + -0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1799 + 0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-149, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 1800 + -0x1.p-126, + -0x1.p-149, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 1801 + 0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.p-149, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1802 + -0x1.fffffcp-127, + -0x1.p-149, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1803 + 0.0f, + -0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 1804 + -0x1.p-149, + -0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 1805 + -0.0f, + -0x1.p-149, + 0x1.p-149, + 0.0f + }, + { // Entry 1806 + -0.0f, + -0x1.p-149, + 0x1.p-149, + -0.0f + }, + { // Entry 1807 + HUGE_VALF, + -0x1.p-149, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 1808 + -HUGE_VALF, + -0x1.p-149, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 1809 + 0x1.fffffep127, + -0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1810 + -0x1.fffffdffffffffffffffffffffffffffp127, + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1811 + 0x1.p-126, + -0x1.p-149, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 1812 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-149, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 1813 + 0x1.fffffcp-127, + -0x1.p-149, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1814 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.p-149, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1815 + 0x1.p-149, + -0x1.p-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 1816 + -0.0f, + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 1817 + 0.0f, + -0x1.p-149, + -0x1.p-149, + 0.0f + }, + { // Entry 1818 + 0.0f, + -0x1.p-149, + -0x1.p-149, + -0.0f + }, + { // Entry 1819 + HUGE_VALF, + -0x1.p-149, + 0.0f, + HUGE_VALF + }, + { // Entry 1820 + -HUGE_VALF, + -0x1.p-149, + 0.0f, + -HUGE_VALF + }, + { // Entry 1821 + 0x1.fffffep127, + -0x1.p-149, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 1822 + -0x1.fffffep127, + -0x1.p-149, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 1823 + 0x1.p-126, + -0x1.p-149, + 0.0f, + 0x1.p-126 + }, + { // Entry 1824 + -0x1.p-126, + -0x1.p-149, + 0.0f, + -0x1.p-126 + }, + { // Entry 1825 + 0x1.fffffcp-127, + -0x1.p-149, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1826 + -0x1.fffffcp-127, + -0x1.p-149, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1827 + 0x1.p-149, + -0x1.p-149, + 0.0f, + 0x1.p-149 + }, + { // Entry 1828 + -0x1.p-149, + -0x1.p-149, + 0.0f, + -0x1.p-149 + }, + { // Entry 1829 + 0.0, + -0x1.p-149, + 0.0f, + 0.0f + }, + { // Entry 1830 + -0.0, + -0x1.p-149, + 0.0f, + -0.0f + }, + { // Entry 1831 + HUGE_VALF, + -0x1.p-149, + -0.0f, + HUGE_VALF + }, + { // Entry 1832 + -HUGE_VALF, + -0x1.p-149, + -0.0f, + -HUGE_VALF + }, + { // Entry 1833 + 0x1.fffffep127, + -0x1.p-149, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 1834 + -0x1.fffffep127, + -0x1.p-149, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 1835 + 0x1.p-126, + -0x1.p-149, + -0.0f, + 0x1.p-126 + }, + { // Entry 1836 + -0x1.p-126, + -0x1.p-149, + -0.0f, + -0x1.p-126 + }, + { // Entry 1837 + 0x1.fffffcp-127, + -0x1.p-149, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1838 + -0x1.fffffcp-127, + -0x1.p-149, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1839 + 0x1.p-149, + -0x1.p-149, + -0.0f, + 0x1.p-149 + }, + { // Entry 1840 + -0x1.p-149, + -0x1.p-149, + -0.0f, + -0x1.p-149 + }, + { // Entry 1841 + 0.0, + -0x1.p-149, + -0.0f, + 0.0f + }, + { // Entry 1842 + 0.0, + -0x1.p-149, + -0.0f, + -0.0f + }, + { // Entry 1843 + HUGE_VALF, + 0.0f, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1844 + -HUGE_VALF, + 0.0f, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1845 + 0x1.fffffep127, + 0.0f, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1846 + -0x1.fffffep127, + 0.0f, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1847 + 0x1.p-126, + 0.0f, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1848 + -0x1.p-126, + 0.0f, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1849 + 0x1.fffffcp-127, + 0.0f, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1850 + -0x1.fffffcp-127, + 0.0f, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1851 + 0x1.p-149, + 0.0f, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1852 + -0x1.p-149, + 0.0f, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1853 + 0.0, + 0.0f, + 0x1.fffffep127, + 0.0f + }, + { // Entry 1854 + 0.0, + 0.0f, + 0x1.fffffep127, + -0.0f + }, + { // Entry 1855 + HUGE_VALF, + 0.0f, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1856 + -HUGE_VALF, + 0.0f, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1857 + 0x1.fffffep127, + 0.0f, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1858 + -0x1.fffffep127, + 0.0f, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1859 + 0x1.p-126, + 0.0f, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1860 + -0x1.p-126, + 0.0f, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1861 + 0x1.fffffcp-127, + 0.0f, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1862 + -0x1.fffffcp-127, + 0.0f, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1863 + 0x1.p-149, + 0.0f, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1864 + -0x1.p-149, + 0.0f, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1865 + 0.0, + 0.0f, + -0x1.fffffep127, + 0.0f + }, + { // Entry 1866 + -0.0, + 0.0f, + -0x1.fffffep127, + -0.0f + }, + { // Entry 1867 + HUGE_VALF, + 0.0f, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 1868 + -HUGE_VALF, + 0.0f, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 1869 + 0x1.fffffep127, + 0.0f, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1870 + -0x1.fffffep127, + 0.0f, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1871 + 0x1.p-126, + 0.0f, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 1872 + -0x1.p-126, + 0.0f, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 1873 + 0x1.fffffcp-127, + 0.0f, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1874 + -0x1.fffffcp-127, + 0.0f, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1875 + 0x1.p-149, + 0.0f, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 1876 + -0x1.p-149, + 0.0f, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 1877 + 0.0, + 0.0f, + 0x1.p-126, + 0.0f + }, + { // Entry 1878 + 0.0, + 0.0f, + 0x1.p-126, + -0.0f + }, + { // Entry 1879 + HUGE_VALF, + 0.0f, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 1880 + -HUGE_VALF, + 0.0f, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 1881 + 0x1.fffffep127, + 0.0f, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1882 + -0x1.fffffep127, + 0.0f, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1883 + 0x1.p-126, + 0.0f, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 1884 + -0x1.p-126, + 0.0f, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 1885 + 0x1.fffffcp-127, + 0.0f, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1886 + -0x1.fffffcp-127, + 0.0f, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1887 + 0x1.p-149, + 0.0f, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 1888 + -0x1.p-149, + 0.0f, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 1889 + 0.0, + 0.0f, + -0x1.p-126, + 0.0f + }, + { // Entry 1890 + -0.0, + 0.0f, + -0x1.p-126, + -0.0f + }, + { // Entry 1891 + HUGE_VALF, + 0.0f, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1892 + -HUGE_VALF, + 0.0f, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1893 + 0x1.fffffep127, + 0.0f, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1894 + -0x1.fffffep127, + 0.0f, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1895 + 0x1.p-126, + 0.0f, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1896 + -0x1.p-126, + 0.0f, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1897 + 0x1.fffffcp-127, + 0.0f, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1898 + -0x1.fffffcp-127, + 0.0f, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1899 + 0x1.p-149, + 0.0f, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1900 + -0x1.p-149, + 0.0f, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1901 + 0.0, + 0.0f, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 1902 + 0.0, + 0.0f, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 1903 + HUGE_VALF, + 0.0f, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 1904 + -HUGE_VALF, + 0.0f, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 1905 + 0x1.fffffep127, + 0.0f, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 1906 + -0x1.fffffep127, + 0.0f, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 1907 + 0x1.p-126, + 0.0f, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 1908 + -0x1.p-126, + 0.0f, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 1909 + 0x1.fffffcp-127, + 0.0f, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 1910 + -0x1.fffffcp-127, + 0.0f, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 1911 + 0x1.p-149, + 0.0f, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 1912 + -0x1.p-149, + 0.0f, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 1913 + 0.0, + 0.0f, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 1914 + -0.0, + 0.0f, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 1915 + HUGE_VALF, + 0.0f, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 1916 + -HUGE_VALF, + 0.0f, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 1917 + 0x1.fffffep127, + 0.0f, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1918 + -0x1.fffffep127, + 0.0f, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1919 + 0x1.p-126, + 0.0f, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 1920 + -0x1.p-126, + 0.0f, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 1921 + 0x1.fffffcp-127, + 0.0f, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1922 + -0x1.fffffcp-127, + 0.0f, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1923 + 0x1.p-149, + 0.0f, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 1924 + -0x1.p-149, + 0.0f, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 1925 + 0.0, + 0.0f, + 0x1.p-149, + 0.0f + }, + { // Entry 1926 + 0.0, + 0.0f, + 0x1.p-149, + -0.0f + }, + { // Entry 1927 + HUGE_VALF, + 0.0f, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 1928 + -HUGE_VALF, + 0.0f, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 1929 + 0x1.fffffep127, + 0.0f, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 1930 + -0x1.fffffep127, + 0.0f, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 1931 + 0x1.p-126, + 0.0f, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 1932 + -0x1.p-126, + 0.0f, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 1933 + 0x1.fffffcp-127, + 0.0f, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 1934 + -0x1.fffffcp-127, + 0.0f, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 1935 + 0x1.p-149, + 0.0f, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 1936 + -0x1.p-149, + 0.0f, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 1937 + 0.0, + 0.0f, + -0x1.p-149, + 0.0f + }, + { // Entry 1938 + -0.0, + 0.0f, + -0x1.p-149, + -0.0f + }, + { // Entry 1939 + HUGE_VALF, + 0.0f, + 0.0f, + HUGE_VALF + }, + { // Entry 1940 + -HUGE_VALF, + 0.0f, + 0.0f, + -HUGE_VALF + }, + { // Entry 1941 + 0x1.fffffep127, + 0.0f, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 1942 + -0x1.fffffep127, + 0.0f, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 1943 + 0x1.p-126, + 0.0f, + 0.0f, + 0x1.p-126 + }, + { // Entry 1944 + -0x1.p-126, + 0.0f, + 0.0f, + -0x1.p-126 + }, + { // Entry 1945 + 0x1.fffffcp-127, + 0.0f, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1946 + -0x1.fffffcp-127, + 0.0f, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1947 + 0x1.p-149, + 0.0f, + 0.0f, + 0x1.p-149 + }, + { // Entry 1948 + -0x1.p-149, + 0.0f, + 0.0f, + -0x1.p-149 + }, + { // Entry 1949 + 0.0, + 0.0f, + 0.0f, + 0.0f + }, + { // Entry 1950 + 0.0, + 0.0f, + 0.0f, + -0.0f + }, + { // Entry 1951 + HUGE_VALF, + 0.0f, + -0.0f, + HUGE_VALF + }, + { // Entry 1952 + -HUGE_VALF, + 0.0f, + -0.0f, + -HUGE_VALF + }, + { // Entry 1953 + 0x1.fffffep127, + 0.0f, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 1954 + -0x1.fffffep127, + 0.0f, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 1955 + 0x1.p-126, + 0.0f, + -0.0f, + 0x1.p-126 + }, + { // Entry 1956 + -0x1.p-126, + 0.0f, + -0.0f, + -0x1.p-126 + }, + { // Entry 1957 + 0x1.fffffcp-127, + 0.0f, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 1958 + -0x1.fffffcp-127, + 0.0f, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 1959 + 0x1.p-149, + 0.0f, + -0.0f, + 0x1.p-149 + }, + { // Entry 1960 + -0x1.p-149, + 0.0f, + -0.0f, + -0x1.p-149 + }, + { // Entry 1961 + 0.0, + 0.0f, + -0.0f, + 0.0f + }, + { // Entry 1962 + -0.0, + 0.0f, + -0.0f, + -0.0f + }, + { // Entry 1963 + HUGE_VALF, + -0.0f, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1964 + -HUGE_VALF, + -0.0f, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1965 + 0x1.fffffep127, + -0.0f, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1966 + -0x1.fffffep127, + -0.0f, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1967 + 0x1.p-126, + -0.0f, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1968 + -0x1.p-126, + -0.0f, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1969 + 0x1.fffffcp-127, + -0.0f, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1970 + -0x1.fffffcp-127, + -0.0f, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1971 + 0x1.p-149, + -0.0f, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1972 + -0x1.p-149, + -0.0f, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1973 + 0.0, + -0.0f, + 0x1.fffffep127, + 0.0f + }, + { // Entry 1974 + -0.0, + -0.0f, + 0x1.fffffep127, + -0.0f + }, + { // Entry 1975 + HUGE_VALF, + -0.0f, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 1976 + -HUGE_VALF, + -0.0f, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 1977 + 0x1.fffffep127, + -0.0f, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 1978 + -0x1.fffffep127, + -0.0f, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 1979 + 0x1.p-126, + -0.0f, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 1980 + -0x1.p-126, + -0.0f, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 1981 + 0x1.fffffcp-127, + -0.0f, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 1982 + -0x1.fffffcp-127, + -0.0f, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 1983 + 0x1.p-149, + -0.0f, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 1984 + -0x1.p-149, + -0.0f, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 1985 + 0.0, + -0.0f, + -0x1.fffffep127, + 0.0f + }, + { // Entry 1986 + 0.0, + -0.0f, + -0x1.fffffep127, + -0.0f + }, + { // Entry 1987 + HUGE_VALF, + -0.0f, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 1988 + -HUGE_VALF, + -0.0f, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 1989 + 0x1.fffffep127, + -0.0f, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 1990 + -0x1.fffffep127, + -0.0f, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 1991 + 0x1.p-126, + -0.0f, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 1992 + -0x1.p-126, + -0.0f, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 1993 + 0x1.fffffcp-127, + -0.0f, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 1994 + -0x1.fffffcp-127, + -0.0f, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 1995 + 0x1.p-149, + -0.0f, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 1996 + -0x1.p-149, + -0.0f, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 1997 + 0.0, + -0.0f, + 0x1.p-126, + 0.0f + }, + { // Entry 1998 + -0.0, + -0.0f, + 0x1.p-126, + -0.0f + }, + { // Entry 1999 + HUGE_VALF, + -0.0f, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 2000 + -HUGE_VALF, + -0.0f, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 2001 + 0x1.fffffep127, + -0.0f, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 2002 + -0x1.fffffep127, + -0.0f, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 2003 + 0x1.p-126, + -0.0f, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 2004 + -0x1.p-126, + -0.0f, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 2005 + 0x1.fffffcp-127, + -0.0f, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 2006 + -0x1.fffffcp-127, + -0.0f, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 2007 + 0x1.p-149, + -0.0f, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 2008 + -0x1.p-149, + -0.0f, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 2009 + 0.0, + -0.0f, + -0x1.p-126, + 0.0f + }, + { // Entry 2010 + 0.0, + -0.0f, + -0x1.p-126, + -0.0f + }, + { // Entry 2011 + HUGE_VALF, + -0.0f, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 2012 + -HUGE_VALF, + -0.0f, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 2013 + 0x1.fffffep127, + -0.0f, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 2014 + -0x1.fffffep127, + -0.0f, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 2015 + 0x1.p-126, + -0.0f, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 2016 + -0x1.p-126, + -0.0f, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 2017 + 0x1.fffffcp-127, + -0.0f, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 2018 + -0x1.fffffcp-127, + -0.0f, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 2019 + 0x1.p-149, + -0.0f, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 2020 + -0x1.p-149, + -0.0f, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 2021 + 0.0, + -0.0f, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 2022 + -0.0, + -0.0f, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 2023 + HUGE_VALF, + -0.0f, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 2024 + -HUGE_VALF, + -0.0f, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 2025 + 0x1.fffffep127, + -0.0f, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 2026 + -0x1.fffffep127, + -0.0f, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 2027 + 0x1.p-126, + -0.0f, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 2028 + -0x1.p-126, + -0.0f, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 2029 + 0x1.fffffcp-127, + -0.0f, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 2030 + -0x1.fffffcp-127, + -0.0f, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 2031 + 0x1.p-149, + -0.0f, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 2032 + -0x1.p-149, + -0.0f, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 2033 + 0.0, + -0.0f, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 2034 + 0.0, + -0.0f, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 2035 + HUGE_VALF, + -0.0f, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 2036 + -HUGE_VALF, + -0.0f, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 2037 + 0x1.fffffep127, + -0.0f, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 2038 + -0x1.fffffep127, + -0.0f, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 2039 + 0x1.p-126, + -0.0f, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 2040 + -0x1.p-126, + -0.0f, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 2041 + 0x1.fffffcp-127, + -0.0f, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 2042 + -0x1.fffffcp-127, + -0.0f, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 2043 + 0x1.p-149, + -0.0f, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 2044 + -0x1.p-149, + -0.0f, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 2045 + 0.0, + -0.0f, + 0x1.p-149, + 0.0f + }, + { // Entry 2046 + -0.0, + -0.0f, + 0x1.p-149, + -0.0f + }, + { // Entry 2047 + HUGE_VALF, + -0.0f, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 2048 + -HUGE_VALF, + -0.0f, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 2049 + 0x1.fffffep127, + -0.0f, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 2050 + -0x1.fffffep127, + -0.0f, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 2051 + 0x1.p-126, + -0.0f, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 2052 + -0x1.p-126, + -0.0f, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 2053 + 0x1.fffffcp-127, + -0.0f, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 2054 + -0x1.fffffcp-127, + -0.0f, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 2055 + 0x1.p-149, + -0.0f, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 2056 + -0x1.p-149, + -0.0f, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 2057 + 0.0, + -0.0f, + -0x1.p-149, + 0.0f + }, + { // Entry 2058 + 0.0, + -0.0f, + -0x1.p-149, + -0.0f + }, + { // Entry 2059 + HUGE_VALF, + -0.0f, + 0.0f, + HUGE_VALF + }, + { // Entry 2060 + -HUGE_VALF, + -0.0f, + 0.0f, + -HUGE_VALF + }, + { // Entry 2061 + 0x1.fffffep127, + -0.0f, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 2062 + -0x1.fffffep127, + -0.0f, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 2063 + 0x1.p-126, + -0.0f, + 0.0f, + 0x1.p-126 + }, + { // Entry 2064 + -0x1.p-126, + -0.0f, + 0.0f, + -0x1.p-126 + }, + { // Entry 2065 + 0x1.fffffcp-127, + -0.0f, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 2066 + -0x1.fffffcp-127, + -0.0f, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 2067 + 0x1.p-149, + -0.0f, + 0.0f, + 0x1.p-149 + }, + { // Entry 2068 + -0x1.p-149, + -0.0f, + 0.0f, + -0x1.p-149 + }, + { // Entry 2069 + 0.0, + -0.0f, + 0.0f, + 0.0f + }, + { // Entry 2070 + -0.0, + -0.0f, + 0.0f, + -0.0f + }, + { // Entry 2071 + HUGE_VALF, + -0.0f, + -0.0f, + HUGE_VALF + }, + { // Entry 2072 + -HUGE_VALF, + -0.0f, + -0.0f, + -HUGE_VALF + }, + { // Entry 2073 + 0x1.fffffep127, + -0.0f, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 2074 + -0x1.fffffep127, + -0.0f, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 2075 + 0x1.p-126, + -0.0f, + -0.0f, + 0x1.p-126 + }, + { // Entry 2076 + -0x1.p-126, + -0.0f, + -0.0f, + -0x1.p-126 + }, + { // Entry 2077 + 0x1.fffffcp-127, + -0.0f, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 2078 + -0x1.fffffcp-127, + -0.0f, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 2079 + 0x1.p-149, + -0.0f, + -0.0f, + 0x1.p-149 + }, + { // Entry 2080 + -0x1.p-149, + -0.0f, + -0.0f, + -0x1.p-149 + }, + { // Entry 2081 + 0.0, + -0.0f, + -0.0f, + 0.0f + }, + { // Entry 2082 + 0.0, + -0.0f, + -0.0f, + -0.0f + }, + { // Entry 2083 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 2084 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 2085 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 2086 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 2087 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 2088 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 2089 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 2090 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 2091 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 2092 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + 0.0f + }, + { // Entry 2093 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF, + -0.0f + }, + { // Entry 2094 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 2095 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 2096 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 2097 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 2098 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 2099 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 2100 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 2101 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 2102 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 2103 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + 0.0f + }, + { // Entry 2104 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF, + -0.0f + }, + { // Entry 2105 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 2106 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 2107 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 2108 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 2109 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 2110 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 2111 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 2112 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 2113 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 2114 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + 0.0f + }, + { // Entry 2115 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127, + -0.0f + }, + { // Entry 2116 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 2117 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 2118 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 2119 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 2120 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 2121 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 2122 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 2123 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 2124 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 2125 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + 0.0f + }, + { // Entry 2126 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127, + -0.0f + }, + { // Entry 2127 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 2128 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 2129 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 2130 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 2131 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 2132 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 2133 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 2134 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 2135 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 2136 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + 0.0f + }, + { // Entry 2137 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126, + -0.0f + }, + { // Entry 2138 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 2139 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 2140 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 2141 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 2142 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 2143 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 2144 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 2145 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 2146 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 2147 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + 0.0f + }, + { // Entry 2148 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126, + -0.0f + }, + { // Entry 2149 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 2150 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 2151 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 2152 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 2153 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 2154 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 2155 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 2156 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 2157 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 2158 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 2159 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 2160 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 2161 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 2162 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 2163 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 2164 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 2165 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 2166 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 2167 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 2168 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 2169 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 2170 + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 2171 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 2172 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 2173 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 2174 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 2175 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 2176 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 2177 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 2178 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 2179 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 2180 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + 0.0f + }, + { // Entry 2181 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149, + -0.0f + }, + { // Entry 2182 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 2183 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 2184 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 2185 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 2186 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 2187 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 2188 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 2189 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 2190 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 2191 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + 0.0f + }, + { // Entry 2192 + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149, + -0.0f + }, + { // Entry 2193 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 2194 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 2195 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 2196 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 2197 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 2198 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 2199 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 2200 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 2201 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 2202 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + 0.0f + }, + { // Entry 2203 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF, + -0.0f + }, + { // Entry 2204 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 2205 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 2206 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 2207 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 2208 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 2209 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 2210 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 2211 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 2212 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 2213 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + 0.0f + }, + { // Entry 2214 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF, + -0.0f + }, + { // Entry 2215 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 2216 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 2217 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 2218 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 2219 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 2220 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 2221 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 2222 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 2223 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 2224 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + 0.0f + }, + { // Entry 2225 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127, + -0.0f + }, + { // Entry 2226 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 2227 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 2228 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 2229 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 2230 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 2231 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 2232 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 2233 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 2234 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 2235 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + 0.0f + }, + { // Entry 2236 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127, + -0.0f + }, + { // Entry 2237 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 2238 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 2239 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 2240 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 2241 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 2242 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 2243 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 2244 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 2245 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 2246 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + 0.0f + }, + { // Entry 2247 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126, + -0.0f + }, + { // Entry 2248 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 2249 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 2250 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 2251 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 2252 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 2253 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 2254 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 2255 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 2256 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 2257 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + 0.0f + }, + { // Entry 2258 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126, + -0.0f + }, + { // Entry 2259 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 2260 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 2261 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 2262 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 2263 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 2264 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 2265 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 2266 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 2267 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 2268 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 2269 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 2270 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 2271 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 2272 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 2273 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 2274 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 2275 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 2276 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 2277 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 2278 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 2279 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 2280 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 2281 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 2282 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 2283 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 2284 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 2285 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 2286 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 2287 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 2288 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 2289 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 2290 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + 0.0f + }, + { // Entry 2291 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149, + -0.0f + }, + { // Entry 2292 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 2293 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 2294 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 2295 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 2296 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 2297 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 2298 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 2299 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 2300 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 2301 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + 0.0f + }, + { // Entry 2302 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149, + -0.0f + } +}; diff --git a/tests/math_data/fmax_intel_data.h b/tests/math_data/fmax_intel_data.h new file mode 100644 index 000000000..14bd38bc6 --- /dev/null +++ b/tests/math_data/fmax_intel_data.h @@ -0,0 +1,1093 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_fmax_intel_data[] = { + { // Entry 0 + -0x1.40p3, + -0x1.4p3, + -0x1.4p3 + }, + { // Entry 1 + 0x1.40p3, + -0x1.4p3, + 0x1.4p3 + }, + { // Entry 2 + 0x1.40p3, + 0x1.4p3, + -0x1.4p3 + }, + { // Entry 3 + 0x1.40p3, + 0x1.4p3, + 0x1.4p3 + }, + { // Entry 4 + -0x1.p-1073, + -0x1.0p-1073, + -0x1.0p-1073 + }, + { // Entry 5 + -0x1.p-1074, + -0x1.0p-1073, + -0x1.0p-1074 + }, + { // Entry 6 + -0.0, + -0x1.0p-1073, + -0.0 + }, + { // Entry 7 + 0x1.p-1074, + -0x1.0p-1073, + 0x1.0p-1074 + }, + { // Entry 8 + 0x1.p-1073, + -0x1.0p-1073, + 0x1.0p-1073 + }, + { // Entry 9 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1073 + }, + { // Entry 10 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 11 + -0.0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 12 + 0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 13 + 0x1.p-1073, + -0x1.0p-1074, + 0x1.0p-1073 + }, + { // Entry 14 + -0.0, + -0.0, + -0x1.0p-1073 + }, + { // Entry 15 + -0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 16 + -0.0, + -0.0, + -0.0 + }, + { // Entry 17 + 0x1.p-1074, + -0.0, + 0x1.0p-1074 + }, + { // Entry 18 + 0x1.p-1073, + -0.0, + 0x1.0p-1073 + }, + { // Entry 19 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1073 + }, + { // Entry 20 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 21 + 0x1.p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 22 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 23 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.0p-1073 + }, + { // Entry 24 + 0x1.p-1073, + 0x1.0p-1073, + -0x1.0p-1073 + }, + { // Entry 25 + 0x1.p-1073, + 0x1.0p-1073, + -0x1.0p-1074 + }, + { // Entry 26 + 0x1.p-1073, + 0x1.0p-1073, + -0.0 + }, + { // Entry 27 + 0x1.p-1073, + 0x1.0p-1073, + 0x1.0p-1074 + }, + { // Entry 28 + 0x1.p-1073, + 0x1.0p-1073, + 0x1.0p-1073 + }, + { // Entry 29 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 30 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 31 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 32 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 33 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 34 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 35 + 0x1.ffffffffffffc0p-1024, + 0x1.ffffffffffffcp-1024, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 36 + 0x1.p-1023, + 0x1.ffffffffffffcp-1024, + 0x1.0p-1023 + }, + { // Entry 37 + 0x1.00000000000020p-1023, + 0x1.ffffffffffffcp-1024, + 0x1.0000000000002p-1023 + }, + { // Entry 38 + 0x1.p-1023, + 0x1.0p-1023, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 39 + 0x1.p-1023, + 0x1.0p-1023, + 0x1.0p-1023 + }, + { // Entry 40 + 0x1.00000000000020p-1023, + 0x1.0p-1023, + 0x1.0000000000002p-1023 + }, + { // Entry 41 + 0x1.00000000000020p-1023, + 0x1.0000000000002p-1023, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 42 + 0x1.00000000000020p-1023, + 0x1.0000000000002p-1023, + 0x1.0p-1023 + }, + { // Entry 43 + 0x1.00000000000020p-1023, + 0x1.0000000000002p-1023, + 0x1.0000000000002p-1023 + }, + { // Entry 44 + 0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp-51, + 0x1.fffffffffffffp-51 + }, + { // Entry 45 + 0x1.p-50, + 0x1.fffffffffffffp-51, + 0x1.0p-50 + }, + { // Entry 46 + 0x1.00000000000010p-50, + 0x1.fffffffffffffp-51, + 0x1.0000000000001p-50 + }, + { // Entry 47 + 0x1.p-50, + 0x1.0p-50, + 0x1.fffffffffffffp-51 + }, + { // Entry 48 + 0x1.p-50, + 0x1.0p-50, + 0x1.0p-50 + }, + { // Entry 49 + 0x1.00000000000010p-50, + 0x1.0p-50, + 0x1.0000000000001p-50 + }, + { // Entry 50 + 0x1.00000000000010p-50, + 0x1.0000000000001p-50, + 0x1.fffffffffffffp-51 + }, + { // Entry 51 + 0x1.00000000000010p-50, + 0x1.0000000000001p-50, + 0x1.0p-50 + }, + { // Entry 52 + 0x1.00000000000010p-50, + 0x1.0000000000001p-50, + 0x1.0000000000001p-50 + }, + { // Entry 53 + 0x1.fffffffffffff0p-11, + 0x1.fffffffffffffp-11, + 0x1.fffffffffffffp-11 + }, + { // Entry 54 + 0x1.p-10, + 0x1.fffffffffffffp-11, + 0x1.0p-10 + }, + { // Entry 55 + 0x1.00000000000010p-10, + 0x1.fffffffffffffp-11, + 0x1.0000000000001p-10 + }, + { // Entry 56 + 0x1.p-10, + 0x1.0p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 57 + 0x1.p-10, + 0x1.0p-10, + 0x1.0p-10 + }, + { // Entry 58 + 0x1.00000000000010p-10, + 0x1.0p-10, + 0x1.0000000000001p-10 + }, + { // Entry 59 + 0x1.00000000000010p-10, + 0x1.0000000000001p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 60 + 0x1.00000000000010p-10, + 0x1.0000000000001p-10, + 0x1.0p-10 + }, + { // Entry 61 + 0x1.00000000000010p-10, + 0x1.0000000000001p-10, + 0x1.0000000000001p-10 + }, + { // Entry 62 + 0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 63 + 0x1.p-1, + 0x1.fffffffffffffp-2, + 0x1.0p-1 + }, + { // Entry 64 + 0x1.00000000000010p-1, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-1 + }, + { // Entry 65 + 0x1.p-1, + 0x1.0p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 66 + 0x1.p-1, + 0x1.0p-1, + 0x1.0p-1 + }, + { // Entry 67 + 0x1.00000000000010p-1, + 0x1.0p-1, + 0x1.0000000000001p-1 + }, + { // Entry 68 + 0x1.00000000000010p-1, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 69 + 0x1.00000000000010p-1, + 0x1.0000000000001p-1, + 0x1.0p-1 + }, + { // Entry 70 + 0x1.00000000000010p-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p-1 + }, + { // Entry 71 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp0 + }, + { // Entry 72 + 0x1.p1, + 0x1.fffffffffffffp0, + 0x1.0p1 + }, + { // Entry 73 + 0x1.00000000000010p1, + 0x1.fffffffffffffp0, + 0x1.0000000000001p1 + }, + { // Entry 74 + 0x1.p1, + 0x1.0p1, + 0x1.fffffffffffffp0 + }, + { // Entry 75 + 0x1.p1, + 0x1.0p1, + 0x1.0p1 + }, + { // Entry 76 + 0x1.00000000000010p1, + 0x1.0p1, + 0x1.0000000000001p1 + }, + { // Entry 77 + 0x1.00000000000010p1, + 0x1.0000000000001p1, + 0x1.fffffffffffffp0 + }, + { // Entry 78 + 0x1.00000000000010p1, + 0x1.0000000000001p1, + 0x1.0p1 + }, + { // Entry 79 + 0x1.00000000000010p1, + 0x1.0000000000001p1, + 0x1.0000000000001p1 + }, + { // Entry 80 + 0x1.fffffffffffff0p9, + 0x1.fffffffffffffp9, + 0x1.fffffffffffffp9 + }, + { // Entry 81 + 0x1.p10, + 0x1.fffffffffffffp9, + 0x1.0p10 + }, + { // Entry 82 + 0x1.00000000000010p10, + 0x1.fffffffffffffp9, + 0x1.0000000000001p10 + }, + { // Entry 83 + 0x1.p10, + 0x1.0p10, + 0x1.fffffffffffffp9 + }, + { // Entry 84 + 0x1.p10, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 85 + 0x1.00000000000010p10, + 0x1.0p10, + 0x1.0000000000001p10 + }, + { // Entry 86 + 0x1.00000000000010p10, + 0x1.0000000000001p10, + 0x1.fffffffffffffp9 + }, + { // Entry 87 + 0x1.00000000000010p10, + 0x1.0000000000001p10, + 0x1.0p10 + }, + { // Entry 88 + 0x1.00000000000010p10, + 0x1.0000000000001p10, + 0x1.0000000000001p10 + }, + { // Entry 89 + 0x1.fffffffffffff0p49, + 0x1.fffffffffffffp49, + 0x1.fffffffffffffp49 + }, + { // Entry 90 + 0x1.p50, + 0x1.fffffffffffffp49, + 0x1.0p50 + }, + { // Entry 91 + 0x1.00000000000010p50, + 0x1.fffffffffffffp49, + 0x1.0000000000001p50 + }, + { // Entry 92 + 0x1.p50, + 0x1.0p50, + 0x1.fffffffffffffp49 + }, + { // Entry 93 + 0x1.p50, + 0x1.0p50, + 0x1.0p50 + }, + { // Entry 94 + 0x1.00000000000010p50, + 0x1.0p50, + 0x1.0000000000001p50 + }, + { // Entry 95 + 0x1.00000000000010p50, + 0x1.0000000000001p50, + 0x1.fffffffffffffp49 + }, + { // Entry 96 + 0x1.00000000000010p50, + 0x1.0000000000001p50, + 0x1.0p50 + }, + { // Entry 97 + 0x1.00000000000010p50, + 0x1.0000000000001p50, + 0x1.0000000000001p50 + }, + { // Entry 98 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp1022 + }, + { // Entry 99 + 0x1.p1023, + 0x1.fffffffffffffp1022, + 0x1.0p1023 + }, + { // Entry 100 + 0x1.00000000000010p1023, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p1023 + }, + { // Entry 101 + 0x1.p1023, + 0x1.0p1023, + 0x1.fffffffffffffp1022 + }, + { // Entry 102 + 0x1.p1023, + 0x1.0p1023, + 0x1.0p1023 + }, + { // Entry 103 + 0x1.00000000000010p1023, + 0x1.0p1023, + 0x1.0000000000001p1023 + }, + { // Entry 104 + 0x1.00000000000010p1023, + 0x1.0000000000001p1023, + 0x1.fffffffffffffp1022 + }, + { // Entry 105 + 0x1.00000000000010p1023, + 0x1.0000000000001p1023, + 0x1.0p1023 + }, + { // Entry 106 + 0x1.00000000000010p1023, + 0x1.0000000000001p1023, + 0x1.0000000000001p1023 + }, + { // Entry 107 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 108 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 109 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 110 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 111 + HUGE_VAL, + HUGE_VAL, + 0.0 + }, + { // Entry 112 + HUGE_VAL, + HUGE_VAL, + -0.0 + }, + { // Entry 113 + HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 114 + HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 115 + HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 116 + HUGE_VAL, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 117 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 118 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 119 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 120 + HUGE_VAL, + 0.0, + HUGE_VAL + }, + { // Entry 121 + HUGE_VAL, + -0.0, + HUGE_VAL + }, + { // Entry 122 + HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 123 + HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 124 + HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 125 + HUGE_VAL, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 126 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 127 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 128 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 129 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 130 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 131 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 132 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 133 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 134 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 135 + 0x1.fffffffffffff0p1023, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 136 + 0x1.fffffffffffff0p1023, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 137 + 0x1.fffffffffffff0p1023, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 138 + 0x1.fffffffffffff0p1023, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 139 + 0x1.fffffffffffff0p1023, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 140 + 0x1.fffffffffffff0p1023, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 141 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 142 + 0x1.fffffffffffff0p1023, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 143 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 144 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 145 + 0x1.p-1022, + 0x1.0p-1022, + 0.0 + }, + { // Entry 146 + 0x1.p-1022, + 0x1.0p-1022, + -0.0 + }, + { // Entry 147 + 0x1.p-1022, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 148 + 0x1.p-1022, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 149 + 0x1.p-1022, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 150 + 0x1.p-1022, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 151 + 0x1.p-1022, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 152 + 0x1.p-1022, + 0.0, + 0x1.0p-1022 + }, + { // Entry 153 + 0x1.p-1022, + -0.0, + 0x1.0p-1022 + }, + { // Entry 154 + 0x1.p-1022, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 155 + 0x1.p-1022, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 156 + 0x1.p-1022, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 157 + 0x1.p-1022, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 158 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 159 + 0x1.p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 160 + 0x1.p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 161 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 162 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 163 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 164 + 0x1.p-1074, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 165 + 0x1.p-1074, + 0.0, + 0x1.0p-1074 + }, + { // Entry 166 + 0x1.p-1074, + -0.0, + 0x1.0p-1074 + }, + { // Entry 167 + 0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 168 + 0x1.p-1074, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 169 + 0x1.p-1074, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 170 + 0x1.p-1074, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 171 + 0.0, + 0.0, + 0.0 + }, + { // Entry 172 + 0.0, + 0.0, + -0.0 + }, + { // Entry 173 + 0.0, + 0.0, + -0x1.0p-1074 + }, + { // Entry 174 + 0.0, + 0.0, + -0x1.0p-1022 + }, + { // Entry 175 + 0.0, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 176 + 0.0, + 0.0, + -HUGE_VAL + }, + { // Entry 177 + -0.0, + -0.0, + 0.0 + }, + { // Entry 178 + 0.0, + -0x1.0p-1074, + 0.0 + }, + { // Entry 179 + 0.0, + -0x1.0p-1022, + 0.0 + }, + { // Entry 180 + 0.0, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 181 + 0.0, + -HUGE_VAL, + 0.0 + }, + { // Entry 182 + -0.0, + -0.0, + -0.0 + }, + { // Entry 183 + -0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 184 + -0.0, + -0.0, + -0x1.0p-1022 + }, + { // Entry 185 + -0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 186 + -0.0, + -0.0, + -HUGE_VAL + }, + { // Entry 187 + -0.0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 188 + -0.0, + -0x1.0p-1022, + -0.0 + }, + { // Entry 189 + -0.0, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 190 + -0.0, + -HUGE_VAL, + -0.0 + }, + { // Entry 191 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 192 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 193 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 194 + -0x1.p-1074, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 195 + -0x1.p-1074, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 196 + -0x1.p-1074, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 197 + -0x1.p-1074, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 198 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 199 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 200 + -0x1.p-1022, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 201 + -0x1.p-1022, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 202 + -0x1.p-1022, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 203 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 204 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 205 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 206 + -HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 207 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 208 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 209 + 0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 210 + 0x1.p-1074, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 211 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 212 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 213 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 214 + -0x1.p-1074, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + } +}; diff --git a/tests/math_data/fmaxf_intel_data.h b/tests/math_data/fmaxf_intel_data.h new file mode 100644 index 000000000..10f8319fd --- /dev/null +++ b/tests/math_data/fmaxf_intel_data.h @@ -0,0 +1,1103 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_fmaxf_intel_data[] = { + { // Entry 0 + 0x1.p-148, + 0.0, + 0x1.p-148 + }, + { // Entry 1 + 0x1.fffffep-1, + 0x1.fffffep-1, + -0x1.00068ep0 + }, + { // Entry 2 + -0x1.40p3, + -0x1.40p3, + -0x1.40p3 + }, + { // Entry 3 + 0x1.40p3, + -0x1.40p3, + 0x1.40p3 + }, + { // Entry 4 + 0x1.40p3, + 0x1.40p3, + -0x1.40p3 + }, + { // Entry 5 + 0x1.40p3, + 0x1.40p3, + 0x1.40p3 + }, + { // Entry 6 + -0x1.p-148, + -0x1.p-148, + -0x1.p-148 + }, + { // Entry 7 + -0x1.p-149, + -0x1.p-148, + -0x1.p-149 + }, + { // Entry 8 + 0.0, + -0x1.p-148, + 0.0 + }, + { // Entry 9 + 0x1.p-149, + -0x1.p-148, + 0x1.p-149 + }, + { // Entry 10 + 0x1.p-148, + -0x1.p-148, + 0x1.p-148 + }, + { // Entry 11 + -0x1.p-149, + -0x1.p-149, + -0x1.p-148 + }, + { // Entry 12 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 13 + 0.0, + -0x1.p-149, + 0.0 + }, + { // Entry 14 + 0x1.p-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 15 + 0x1.p-148, + -0x1.p-149, + 0x1.p-148 + }, + { // Entry 16 + 0.0, + 0.0, + -0x1.p-148 + }, + { // Entry 17 + 0.0, + 0.0, + -0x1.p-149 + }, + { // Entry 18 + 0.0, + 0.0, + 0.0 + }, + { // Entry 19 + 0x1.p-149, + 0.0, + 0x1.p-149 + }, + { // Entry 20 + 0x1.p-148, + 0.0, + 0x1.p-148 + }, + { // Entry 21 + 0x1.p-149, + 0x1.p-149, + -0x1.p-148 + }, + { // Entry 22 + 0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 23 + 0x1.p-149, + 0x1.p-149, + 0.0 + }, + { // Entry 24 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 25 + 0x1.p-148, + 0x1.p-149, + 0x1.p-148 + }, + { // Entry 26 + 0x1.p-148, + 0x1.p-148, + -0x1.p-148 + }, + { // Entry 27 + 0x1.p-148, + 0x1.p-148, + -0x1.p-149 + }, + { // Entry 28 + 0x1.p-148, + 0x1.p-148, + 0.0 + }, + { // Entry 29 + 0x1.p-148, + 0x1.p-148, + 0x1.p-149 + }, + { // Entry 30 + 0x1.p-148, + 0x1.p-148, + 0x1.p-148 + }, + { // Entry 31 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 32 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 33 + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 34 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 35 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 36 + 0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 37 + 0x1.fffff8p-128, + 0x1.fffff8p-128, + 0x1.fffff8p-128 + }, + { // Entry 38 + 0x1.p-127, + 0x1.fffff8p-128, + 0x1.p-127 + }, + { // Entry 39 + 0x1.000004p-127, + 0x1.fffff8p-128, + 0x1.000004p-127 + }, + { // Entry 40 + 0x1.p-127, + 0x1.p-127, + 0x1.fffff8p-128 + }, + { // Entry 41 + 0x1.p-127, + 0x1.p-127, + 0x1.p-127 + }, + { // Entry 42 + 0x1.000004p-127, + 0x1.p-127, + 0x1.000004p-127 + }, + { // Entry 43 + 0x1.000004p-127, + 0x1.000004p-127, + 0x1.fffff8p-128 + }, + { // Entry 44 + 0x1.000004p-127, + 0x1.000004p-127, + 0x1.p-127 + }, + { // Entry 45 + 0x1.000004p-127, + 0x1.000004p-127, + 0x1.000004p-127 + }, + { // Entry 46 + 0x1.fffffep-51, + 0x1.fffffep-51, + 0x1.fffffep-51 + }, + { // Entry 47 + 0x1.p-50, + 0x1.fffffep-51, + 0x1.p-50 + }, + { // Entry 48 + 0x1.000002p-50, + 0x1.fffffep-51, + 0x1.000002p-50 + }, + { // Entry 49 + 0x1.p-50, + 0x1.p-50, + 0x1.fffffep-51 + }, + { // Entry 50 + 0x1.p-50, + 0x1.p-50, + 0x1.p-50 + }, + { // Entry 51 + 0x1.000002p-50, + 0x1.p-50, + 0x1.000002p-50 + }, + { // Entry 52 + 0x1.000002p-50, + 0x1.000002p-50, + 0x1.fffffep-51 + }, + { // Entry 53 + 0x1.000002p-50, + 0x1.000002p-50, + 0x1.p-50 + }, + { // Entry 54 + 0x1.000002p-50, + 0x1.000002p-50, + 0x1.000002p-50 + }, + { // Entry 55 + 0x1.fffffep-11, + 0x1.fffffep-11, + 0x1.fffffep-11 + }, + { // Entry 56 + 0x1.p-10, + 0x1.fffffep-11, + 0x1.p-10 + }, + { // Entry 57 + 0x1.000002p-10, + 0x1.fffffep-11, + 0x1.000002p-10 + }, + { // Entry 58 + 0x1.p-10, + 0x1.p-10, + 0x1.fffffep-11 + }, + { // Entry 59 + 0x1.p-10, + 0x1.p-10, + 0x1.p-10 + }, + { // Entry 60 + 0x1.000002p-10, + 0x1.p-10, + 0x1.000002p-10 + }, + { // Entry 61 + 0x1.000002p-10, + 0x1.000002p-10, + 0x1.fffffep-11 + }, + { // Entry 62 + 0x1.000002p-10, + 0x1.000002p-10, + 0x1.p-10 + }, + { // Entry 63 + 0x1.000002p-10, + 0x1.000002p-10, + 0x1.000002p-10 + }, + { // Entry 64 + 0x1.fffffep-2, + 0x1.fffffep-2, + 0x1.fffffep-2 + }, + { // Entry 65 + 0x1.p-1, + 0x1.fffffep-2, + 0x1.p-1 + }, + { // Entry 66 + 0x1.000002p-1, + 0x1.fffffep-2, + 0x1.000002p-1 + }, + { // Entry 67 + 0x1.p-1, + 0x1.p-1, + 0x1.fffffep-2 + }, + { // Entry 68 + 0x1.p-1, + 0x1.p-1, + 0x1.p-1 + }, + { // Entry 69 + 0x1.000002p-1, + 0x1.p-1, + 0x1.000002p-1 + }, + { // Entry 70 + 0x1.000002p-1, + 0x1.000002p-1, + 0x1.fffffep-2 + }, + { // Entry 71 + 0x1.000002p-1, + 0x1.000002p-1, + 0x1.p-1 + }, + { // Entry 72 + 0x1.000002p-1, + 0x1.000002p-1, + 0x1.000002p-1 + }, + { // Entry 73 + 0x1.fffffep0, + 0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 74 + 0x1.p1, + 0x1.fffffep0, + 0x1.p1 + }, + { // Entry 75 + 0x1.000002p1, + 0x1.fffffep0, + 0x1.000002p1 + }, + { // Entry 76 + 0x1.p1, + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 77 + 0x1.p1, + 0x1.p1, + 0x1.p1 + }, + { // Entry 78 + 0x1.000002p1, + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 79 + 0x1.000002p1, + 0x1.000002p1, + 0x1.fffffep0 + }, + { // Entry 80 + 0x1.000002p1, + 0x1.000002p1, + 0x1.p1 + }, + { // Entry 81 + 0x1.000002p1, + 0x1.000002p1, + 0x1.000002p1 + }, + { // Entry 82 + 0x1.fffffep9, + 0x1.fffffep9, + 0x1.fffffep9 + }, + { // Entry 83 + 0x1.p10, + 0x1.fffffep9, + 0x1.p10 + }, + { // Entry 84 + 0x1.000002p10, + 0x1.fffffep9, + 0x1.000002p10 + }, + { // Entry 85 + 0x1.p10, + 0x1.p10, + 0x1.fffffep9 + }, + { // Entry 86 + 0x1.p10, + 0x1.p10, + 0x1.p10 + }, + { // Entry 87 + 0x1.000002p10, + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 88 + 0x1.000002p10, + 0x1.000002p10, + 0x1.fffffep9 + }, + { // Entry 89 + 0x1.000002p10, + 0x1.000002p10, + 0x1.p10 + }, + { // Entry 90 + 0x1.000002p10, + 0x1.000002p10, + 0x1.000002p10 + }, + { // Entry 91 + 0x1.fffffep49, + 0x1.fffffep49, + 0x1.fffffep49 + }, + { // Entry 92 + 0x1.p50, + 0x1.fffffep49, + 0x1.p50 + }, + { // Entry 93 + 0x1.000002p50, + 0x1.fffffep49, + 0x1.000002p50 + }, + { // Entry 94 + 0x1.p50, + 0x1.p50, + 0x1.fffffep49 + }, + { // Entry 95 + 0x1.p50, + 0x1.p50, + 0x1.p50 + }, + { // Entry 96 + 0x1.000002p50, + 0x1.p50, + 0x1.000002p50 + }, + { // Entry 97 + 0x1.000002p50, + 0x1.000002p50, + 0x1.fffffep49 + }, + { // Entry 98 + 0x1.000002p50, + 0x1.000002p50, + 0x1.p50 + }, + { // Entry 99 + 0x1.000002p50, + 0x1.000002p50, + 0x1.000002p50 + }, + { // Entry 100 + 0x1.fffffep126, + 0x1.fffffep126, + 0x1.fffffep126 + }, + { // Entry 101 + 0x1.p127, + 0x1.fffffep126, + 0x1.p127 + }, + { // Entry 102 + 0x1.000002p127, + 0x1.fffffep126, + 0x1.000002p127 + }, + { // Entry 103 + 0x1.p127, + 0x1.p127, + 0x1.fffffep126 + }, + { // Entry 104 + 0x1.p127, + 0x1.p127, + 0x1.p127 + }, + { // Entry 105 + 0x1.000002p127, + 0x1.p127, + 0x1.000002p127 + }, + { // Entry 106 + 0x1.000002p127, + 0x1.000002p127, + 0x1.fffffep126 + }, + { // Entry 107 + 0x1.000002p127, + 0x1.000002p127, + 0x1.p127 + }, + { // Entry 108 + 0x1.000002p127, + 0x1.000002p127, + 0x1.000002p127 + }, + { // Entry 109 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 110 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 111 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 112 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 113 + HUGE_VALF, + HUGE_VALF, + 0.0f + }, + { // Entry 114 + HUGE_VALF, + HUGE_VALF, + -0.0f + }, + { // Entry 115 + HUGE_VALF, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 116 + HUGE_VALF, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 117 + HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 118 + HUGE_VALF, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 119 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 120 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 121 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 122 + HUGE_VALF, + 0.0f, + HUGE_VALF + }, + { // Entry 123 + HUGE_VALF, + -0.0f, + HUGE_VALF + }, + { // Entry 124 + HUGE_VALF, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 125 + HUGE_VALF, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 126 + HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 127 + HUGE_VALF, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 128 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 129 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 130 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 131 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 132 + 0x1.fffffep127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 133 + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 134 + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 135 + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 136 + 0x1.fffffep127, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 137 + 0x1.fffffep127, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 138 + 0x1.fffffep127, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 139 + 0x1.fffffep127, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 140 + 0x1.fffffep127, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 141 + 0x1.fffffep127, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 142 + 0x1.fffffep127, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 143 + 0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 144 + 0x1.fffffep127, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 145 + 0x1.p-126, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 146 + 0x1.p-126, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 147 + 0x1.p-126, + 0x1.p-126, + 0.0f + }, + { // Entry 148 + 0x1.p-126, + 0x1.p-126, + -0.0f + }, + { // Entry 149 + 0x1.p-126, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 150 + 0x1.p-126, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 151 + 0x1.p-126, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 152 + 0x1.p-126, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 153 + 0x1.p-126, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 154 + 0x1.p-126, + 0.0f, + 0x1.p-126 + }, + { // Entry 155 + 0x1.p-126, + -0.0f, + 0x1.p-126 + }, + { // Entry 156 + 0x1.p-126, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 157 + 0x1.p-126, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 158 + 0x1.p-126, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 159 + 0x1.p-126, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 160 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 161 + 0x1.p-149, + 0x1.p-149, + 0.0f + }, + { // Entry 162 + 0x1.p-149, + 0x1.p-149, + -0.0f + }, + { // Entry 163 + 0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 164 + 0x1.p-149, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 165 + 0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 166 + 0x1.p-149, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 167 + 0x1.p-149, + 0.0f, + 0x1.p-149 + }, + { // Entry 168 + 0x1.p-149, + -0.0f, + 0x1.p-149 + }, + { // Entry 169 + 0x1.p-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 170 + 0x1.p-149, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 171 + 0x1.p-149, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 172 + 0x1.p-149, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 173 + 0.0, + 0.0f, + 0.0f + }, + { // Entry 174 + 0.0, + 0.0f, + -0.0f + }, + { // Entry 175 + 0.0, + 0.0f, + -0x1.p-149 + }, + { // Entry 176 + 0.0, + 0.0f, + -0x1.p-126 + }, + { // Entry 177 + 0.0, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 178 + 0.0, + 0.0f, + -HUGE_VALF + }, + { // Entry 179 + -0.0, + -0.0f, + 0.0f + }, + { // Entry 180 + 0.0, + -0x1.p-149, + 0.0f + }, + { // Entry 181 + 0.0, + -0x1.p-126, + 0.0f + }, + { // Entry 182 + 0.0, + -0x1.fffffep127, + 0.0f + }, + { // Entry 183 + 0.0, + -HUGE_VALF, + 0.0f + }, + { // Entry 184 + -0.0, + -0.0f, + -0.0f + }, + { // Entry 185 + -0.0, + -0.0f, + -0x1.p-149 + }, + { // Entry 186 + -0.0, + -0.0f, + -0x1.p-126 + }, + { // Entry 187 + -0.0, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 188 + -0.0, + -0.0f, + -HUGE_VALF + }, + { // Entry 189 + -0.0, + -0x1.p-149, + -0.0f + }, + { // Entry 190 + -0.0, + -0x1.p-126, + -0.0f + }, + { // Entry 191 + -0.0, + -0x1.fffffep127, + -0.0f + }, + { // Entry 192 + -0.0, + -HUGE_VALF, + -0.0f + }, + { // Entry 193 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 194 + -0x1.p-149, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 195 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 196 + -0x1.p-149, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 197 + -0x1.p-149, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 198 + -0x1.p-149, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 199 + -0x1.p-149, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 200 + -0x1.p-126, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 201 + -0x1.p-126, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 202 + -0x1.p-126, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 203 + -0x1.p-126, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 204 + -0x1.p-126, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 205 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 206 + -0x1.fffffep127, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 207 + -0x1.fffffep127, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 208 + -HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 209 + 0x1.fffffcp-127, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 210 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 211 + 0x1.fffffcp-127, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 212 + 0x1.p-149, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 213 + 0x1.p-149, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 214 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 215 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 216 + -0x1.p-149, + -0x1.fffffcp-127, + -0x1.p-149 + } +}; diff --git a/tests/math_data/fmin_intel_data.h b/tests/math_data/fmin_intel_data.h new file mode 100644 index 000000000..a2538f50f --- /dev/null +++ b/tests/math_data/fmin_intel_data.h @@ -0,0 +1,1093 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_fmin_intel_data[] = { + { // Entry 0 + -0x1.40p3, + -0x1.4p3, + -0x1.4p3 + }, + { // Entry 1 + -0x1.40p3, + -0x1.4p3, + 0x1.4p3 + }, + { // Entry 2 + -0x1.40p3, + 0x1.4p3, + -0x1.4p3 + }, + { // Entry 3 + 0x1.40p3, + 0x1.4p3, + 0x1.4p3 + }, + { // Entry 4 + -0x1.p-1073, + -0x1.0p-1073, + -0x1.0p-1073 + }, + { // Entry 5 + -0x1.p-1073, + -0x1.0p-1073, + -0x1.0p-1074 + }, + { // Entry 6 + -0x1.p-1073, + -0x1.0p-1073, + -0.0 + }, + { // Entry 7 + -0x1.p-1073, + -0x1.0p-1073, + 0x1.0p-1074 + }, + { // Entry 8 + -0x1.p-1073, + -0x1.0p-1073, + 0x1.0p-1073 + }, + { // Entry 9 + -0x1.p-1073, + -0x1.0p-1074, + -0x1.0p-1073 + }, + { // Entry 10 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 11 + -0x1.p-1074, + -0x1.0p-1074, + -0.0 + }, + { // Entry 12 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 13 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1073 + }, + { // Entry 14 + -0x1.p-1073, + -0.0, + -0x1.0p-1073 + }, + { // Entry 15 + -0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 16 + -0.0, + -0.0, + -0.0 + }, + { // Entry 17 + -0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 18 + -0.0, + -0.0, + 0x1.0p-1073 + }, + { // Entry 19 + -0x1.p-1073, + 0x1.0p-1074, + -0x1.0p-1073 + }, + { // Entry 20 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 21 + -0.0, + 0x1.0p-1074, + -0.0 + }, + { // Entry 22 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 23 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1073 + }, + { // Entry 24 + -0x1.p-1073, + 0x1.0p-1073, + -0x1.0p-1073 + }, + { // Entry 25 + -0x1.p-1074, + 0x1.0p-1073, + -0x1.0p-1074 + }, + { // Entry 26 + -0.0, + 0x1.0p-1073, + -0.0 + }, + { // Entry 27 + 0x1.p-1074, + 0x1.0p-1073, + 0x1.0p-1074 + }, + { // Entry 28 + 0x1.p-1073, + 0x1.0p-1073, + 0x1.0p-1073 + }, + { // Entry 29 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 30 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 31 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 32 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 33 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 34 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 35 + 0x1.ffffffffffffc0p-1024, + 0x1.ffffffffffffcp-1024, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 36 + 0x1.ffffffffffffc0p-1024, + 0x1.ffffffffffffcp-1024, + 0x1.0p-1023 + }, + { // Entry 37 + 0x1.ffffffffffffc0p-1024, + 0x1.ffffffffffffcp-1024, + 0x1.0000000000002p-1023 + }, + { // Entry 38 + 0x1.ffffffffffffc0p-1024, + 0x1.0p-1023, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 39 + 0x1.p-1023, + 0x1.0p-1023, + 0x1.0p-1023 + }, + { // Entry 40 + 0x1.p-1023, + 0x1.0p-1023, + 0x1.0000000000002p-1023 + }, + { // Entry 41 + 0x1.ffffffffffffc0p-1024, + 0x1.0000000000002p-1023, + 0x1.ffffffffffffcp-1024 + }, + { // Entry 42 + 0x1.p-1023, + 0x1.0000000000002p-1023, + 0x1.0p-1023 + }, + { // Entry 43 + 0x1.00000000000020p-1023, + 0x1.0000000000002p-1023, + 0x1.0000000000002p-1023 + }, + { // Entry 44 + 0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp-51, + 0x1.fffffffffffffp-51 + }, + { // Entry 45 + 0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp-51, + 0x1.0p-50 + }, + { // Entry 46 + 0x1.fffffffffffff0p-51, + 0x1.fffffffffffffp-51, + 0x1.0000000000001p-50 + }, + { // Entry 47 + 0x1.fffffffffffff0p-51, + 0x1.0p-50, + 0x1.fffffffffffffp-51 + }, + { // Entry 48 + 0x1.p-50, + 0x1.0p-50, + 0x1.0p-50 + }, + { // Entry 49 + 0x1.p-50, + 0x1.0p-50, + 0x1.0000000000001p-50 + }, + { // Entry 50 + 0x1.fffffffffffff0p-51, + 0x1.0000000000001p-50, + 0x1.fffffffffffffp-51 + }, + { // Entry 51 + 0x1.p-50, + 0x1.0000000000001p-50, + 0x1.0p-50 + }, + { // Entry 52 + 0x1.00000000000010p-50, + 0x1.0000000000001p-50, + 0x1.0000000000001p-50 + }, + { // Entry 53 + 0x1.fffffffffffff0p-11, + 0x1.fffffffffffffp-11, + 0x1.fffffffffffffp-11 + }, + { // Entry 54 + 0x1.fffffffffffff0p-11, + 0x1.fffffffffffffp-11, + 0x1.0p-10 + }, + { // Entry 55 + 0x1.fffffffffffff0p-11, + 0x1.fffffffffffffp-11, + 0x1.0000000000001p-10 + }, + { // Entry 56 + 0x1.fffffffffffff0p-11, + 0x1.0p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 57 + 0x1.p-10, + 0x1.0p-10, + 0x1.0p-10 + }, + { // Entry 58 + 0x1.p-10, + 0x1.0p-10, + 0x1.0000000000001p-10 + }, + { // Entry 59 + 0x1.fffffffffffff0p-11, + 0x1.0000000000001p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 60 + 0x1.p-10, + 0x1.0000000000001p-10, + 0x1.0p-10 + }, + { // Entry 61 + 0x1.00000000000010p-10, + 0x1.0000000000001p-10, + 0x1.0000000000001p-10 + }, + { // Entry 62 + 0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 63 + 0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp-2, + 0x1.0p-1 + }, + { // Entry 64 + 0x1.fffffffffffff0p-2, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-1 + }, + { // Entry 65 + 0x1.fffffffffffff0p-2, + 0x1.0p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 66 + 0x1.p-1, + 0x1.0p-1, + 0x1.0p-1 + }, + { // Entry 67 + 0x1.p-1, + 0x1.0p-1, + 0x1.0000000000001p-1 + }, + { // Entry 68 + 0x1.fffffffffffff0p-2, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 69 + 0x1.p-1, + 0x1.0000000000001p-1, + 0x1.0p-1 + }, + { // Entry 70 + 0x1.00000000000010p-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p-1 + }, + { // Entry 71 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp0 + }, + { // Entry 72 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp0, + 0x1.0p1 + }, + { // Entry 73 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp0, + 0x1.0000000000001p1 + }, + { // Entry 74 + 0x1.fffffffffffff0p0, + 0x1.0p1, + 0x1.fffffffffffffp0 + }, + { // Entry 75 + 0x1.p1, + 0x1.0p1, + 0x1.0p1 + }, + { // Entry 76 + 0x1.p1, + 0x1.0p1, + 0x1.0000000000001p1 + }, + { // Entry 77 + 0x1.fffffffffffff0p0, + 0x1.0000000000001p1, + 0x1.fffffffffffffp0 + }, + { // Entry 78 + 0x1.p1, + 0x1.0000000000001p1, + 0x1.0p1 + }, + { // Entry 79 + 0x1.00000000000010p1, + 0x1.0000000000001p1, + 0x1.0000000000001p1 + }, + { // Entry 80 + 0x1.fffffffffffff0p9, + 0x1.fffffffffffffp9, + 0x1.fffffffffffffp9 + }, + { // Entry 81 + 0x1.fffffffffffff0p9, + 0x1.fffffffffffffp9, + 0x1.0p10 + }, + { // Entry 82 + 0x1.fffffffffffff0p9, + 0x1.fffffffffffffp9, + 0x1.0000000000001p10 + }, + { // Entry 83 + 0x1.fffffffffffff0p9, + 0x1.0p10, + 0x1.fffffffffffffp9 + }, + { // Entry 84 + 0x1.p10, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 85 + 0x1.p10, + 0x1.0p10, + 0x1.0000000000001p10 + }, + { // Entry 86 + 0x1.fffffffffffff0p9, + 0x1.0000000000001p10, + 0x1.fffffffffffffp9 + }, + { // Entry 87 + 0x1.p10, + 0x1.0000000000001p10, + 0x1.0p10 + }, + { // Entry 88 + 0x1.00000000000010p10, + 0x1.0000000000001p10, + 0x1.0000000000001p10 + }, + { // Entry 89 + 0x1.fffffffffffff0p49, + 0x1.fffffffffffffp49, + 0x1.fffffffffffffp49 + }, + { // Entry 90 + 0x1.fffffffffffff0p49, + 0x1.fffffffffffffp49, + 0x1.0p50 + }, + { // Entry 91 + 0x1.fffffffffffff0p49, + 0x1.fffffffffffffp49, + 0x1.0000000000001p50 + }, + { // Entry 92 + 0x1.fffffffffffff0p49, + 0x1.0p50, + 0x1.fffffffffffffp49 + }, + { // Entry 93 + 0x1.p50, + 0x1.0p50, + 0x1.0p50 + }, + { // Entry 94 + 0x1.p50, + 0x1.0p50, + 0x1.0000000000001p50 + }, + { // Entry 95 + 0x1.fffffffffffff0p49, + 0x1.0000000000001p50, + 0x1.fffffffffffffp49 + }, + { // Entry 96 + 0x1.p50, + 0x1.0000000000001p50, + 0x1.0p50 + }, + { // Entry 97 + 0x1.00000000000010p50, + 0x1.0000000000001p50, + 0x1.0000000000001p50 + }, + { // Entry 98 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp1022 + }, + { // Entry 99 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + 0x1.0p1023 + }, + { // Entry 100 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p1023 + }, + { // Entry 101 + 0x1.fffffffffffff0p1022, + 0x1.0p1023, + 0x1.fffffffffffffp1022 + }, + { // Entry 102 + 0x1.p1023, + 0x1.0p1023, + 0x1.0p1023 + }, + { // Entry 103 + 0x1.p1023, + 0x1.0p1023, + 0x1.0000000000001p1023 + }, + { // Entry 104 + 0x1.fffffffffffff0p1022, + 0x1.0000000000001p1023, + 0x1.fffffffffffffp1022 + }, + { // Entry 105 + 0x1.p1023, + 0x1.0000000000001p1023, + 0x1.0p1023 + }, + { // Entry 106 + 0x1.00000000000010p1023, + 0x1.0000000000001p1023, + 0x1.0000000000001p1023 + }, + { // Entry 107 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 108 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 109 + 0x1.p-1022, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 110 + 0x1.p-1074, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 111 + 0.0, + HUGE_VAL, + 0.0 + }, + { // Entry 112 + -0.0, + HUGE_VAL, + -0.0 + }, + { // Entry 113 + -0x1.p-1074, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 114 + -0x1.p-1022, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 115 + -0x1.fffffffffffff0p1023, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 116 + -HUGE_VAL, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 117 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 118 + 0x1.p-1022, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 119 + 0x1.p-1074, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 120 + 0.0, + 0.0, + HUGE_VAL + }, + { // Entry 121 + -0.0, + -0.0, + HUGE_VAL + }, + { // Entry 122 + -0x1.p-1074, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 123 + -0x1.p-1022, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 124 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 125 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 126 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 127 + 0x1.p-1022, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 128 + 0x1.p-1074, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 129 + 0.0, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 130 + -0.0, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 131 + -0x1.p-1074, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 132 + -0x1.p-1022, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 133 + -0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 134 + -HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 135 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 136 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 137 + 0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 138 + -0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 139 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 140 + -0x1.p-1022, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 141 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 142 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 143 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 144 + 0x1.p-1074, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 145 + 0.0, + 0x1.0p-1022, + 0.0 + }, + { // Entry 146 + -0.0, + 0x1.0p-1022, + -0.0 + }, + { // Entry 147 + -0x1.p-1074, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 148 + -0x1.p-1022, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 149 + -0x1.fffffffffffff0p1023, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 150 + -HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 151 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 152 + 0.0, + 0.0, + 0x1.0p-1022 + }, + { // Entry 153 + -0.0, + -0.0, + 0x1.0p-1022 + }, + { // Entry 154 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 155 + -0x1.p-1022, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 156 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 157 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 158 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 159 + 0.0, + 0x1.0p-1074, + 0.0 + }, + { // Entry 160 + -0.0, + 0x1.0p-1074, + -0.0 + }, + { // Entry 161 + -0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 162 + -0x1.p-1022, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 163 + -0x1.fffffffffffff0p1023, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 164 + -HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 165 + 0.0, + 0.0, + 0x1.0p-1074 + }, + { // Entry 166 + -0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 167 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 168 + -0x1.p-1022, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 169 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 170 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 171 + 0.0, + 0.0, + 0.0 + }, + { // Entry 172 + 0.0, + 0.0, + -0.0 + }, + { // Entry 173 + -0x1.p-1074, + 0.0, + -0x1.0p-1074 + }, + { // Entry 174 + -0x1.p-1022, + 0.0, + -0x1.0p-1022 + }, + { // Entry 175 + -0x1.fffffffffffff0p1023, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 176 + -HUGE_VAL, + 0.0, + -HUGE_VAL + }, + { // Entry 177 + -0.0, + -0.0, + 0.0 + }, + { // Entry 178 + -0x1.p-1074, + -0x1.0p-1074, + 0.0 + }, + { // Entry 179 + -0x1.p-1022, + -0x1.0p-1022, + 0.0 + }, + { // Entry 180 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 181 + -HUGE_VAL, + -HUGE_VAL, + 0.0 + }, + { // Entry 182 + -0.0, + -0.0, + -0.0 + }, + { // Entry 183 + -0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 184 + -0x1.p-1022, + -0.0, + -0x1.0p-1022 + }, + { // Entry 185 + -0x1.fffffffffffff0p1023, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 186 + -HUGE_VAL, + -0.0, + -HUGE_VAL + }, + { // Entry 187 + -0x1.p-1074, + -0x1.0p-1074, + -0.0 + }, + { // Entry 188 + -0x1.p-1022, + -0x1.0p-1022, + -0.0 + }, + { // Entry 189 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 190 + -HUGE_VAL, + -HUGE_VAL, + -0.0 + }, + { // Entry 191 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 192 + -0x1.p-1022, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 193 + -0x1.fffffffffffff0p1023, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 194 + -HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 195 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 196 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 197 + -HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 198 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 199 + -0x1.fffffffffffff0p1023, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 200 + -HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 201 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 202 + -HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 203 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 204 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 205 + -HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 206 + -HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 207 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 208 + 0x1.p-1074, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 209 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 210 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 211 + -0x1.ffffffffffffe0p-1023, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 212 + -0x1.p-1074, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 213 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 214 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + } +}; diff --git a/tests/math_data/fminf_intel_data.h b/tests/math_data/fminf_intel_data.h new file mode 100644 index 000000000..051ae9b92 --- /dev/null +++ b/tests/math_data/fminf_intel_data.h @@ -0,0 +1,1103 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_fminf_intel_data[] = { + { // Entry 0 + 0x1.p-148, + 0x1.p-148, + 0x1.p-148 + }, + { // Entry 1 + 0x1.fff2e2p-1, + 0x1.fffffep-1, + 0x1.fff2e2p-1 + }, + { // Entry 2 + -0x1.40p3, + -0x1.40p3, + -0x1.40p3 + }, + { // Entry 3 + -0x1.40p3, + -0x1.40p3, + 0x1.40p3 + }, + { // Entry 4 + -0x1.40p3, + 0x1.40p3, + -0x1.40p3 + }, + { // Entry 5 + 0x1.40p3, + 0x1.40p3, + 0x1.40p3 + }, + { // Entry 6 + -0x1.p-148, + -0x1.p-148, + -0x1.p-148 + }, + { // Entry 7 + -0x1.p-148, + -0x1.p-148, + -0x1.p-149 + }, + { // Entry 8 + -0x1.p-148, + -0x1.p-148, + 0.0 + }, + { // Entry 9 + -0x1.p-148, + -0x1.p-148, + 0x1.p-149 + }, + { // Entry 10 + -0x1.p-148, + -0x1.p-148, + 0x1.p-148 + }, + { // Entry 11 + -0x1.p-148, + -0x1.p-149, + -0x1.p-148 + }, + { // Entry 12 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 13 + -0x1.p-149, + -0x1.p-149, + 0.0 + }, + { // Entry 14 + -0x1.p-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 15 + -0x1.p-149, + -0x1.p-149, + 0x1.p-148 + }, + { // Entry 16 + -0x1.p-148, + 0.0, + -0x1.p-148 + }, + { // Entry 17 + -0x1.p-149, + 0.0, + -0x1.p-149 + }, + { // Entry 18 + 0.0, + 0.0, + 0.0 + }, + { // Entry 19 + 0.0, + 0.0, + 0x1.p-149 + }, + { // Entry 20 + 0.0, + 0.0, + 0x1.p-148 + }, + { // Entry 21 + -0x1.p-148, + 0x1.p-149, + -0x1.p-148 + }, + { // Entry 22 + -0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 23 + 0.0, + 0x1.p-149, + 0.0 + }, + { // Entry 24 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 25 + 0x1.p-149, + 0x1.p-149, + 0x1.p-148 + }, + { // Entry 26 + -0x1.p-148, + 0x1.p-148, + -0x1.p-148 + }, + { // Entry 27 + -0x1.p-149, + 0x1.p-148, + -0x1.p-149 + }, + { // Entry 28 + 0.0, + 0x1.p-148, + 0.0 + }, + { // Entry 29 + 0x1.p-149, + 0x1.p-148, + 0x1.p-149 + }, + { // Entry 30 + 0x1.p-148, + 0x1.p-148, + 0x1.p-148 + }, + { // Entry 31 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 32 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 33 + -0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 34 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 35 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 36 + -0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 37 + 0x1.fffff8p-128, + 0x1.fffff8p-128, + 0x1.fffff8p-128 + }, + { // Entry 38 + 0x1.fffff8p-128, + 0x1.fffff8p-128, + 0x1.p-127 + }, + { // Entry 39 + 0x1.fffff8p-128, + 0x1.fffff8p-128, + 0x1.000004p-127 + }, + { // Entry 40 + 0x1.fffff8p-128, + 0x1.p-127, + 0x1.fffff8p-128 + }, + { // Entry 41 + 0x1.p-127, + 0x1.p-127, + 0x1.p-127 + }, + { // Entry 42 + 0x1.p-127, + 0x1.p-127, + 0x1.000004p-127 + }, + { // Entry 43 + 0x1.fffff8p-128, + 0x1.000004p-127, + 0x1.fffff8p-128 + }, + { // Entry 44 + 0x1.p-127, + 0x1.000004p-127, + 0x1.p-127 + }, + { // Entry 45 + 0x1.000004p-127, + 0x1.000004p-127, + 0x1.000004p-127 + }, + { // Entry 46 + 0x1.fffffep-51, + 0x1.fffffep-51, + 0x1.fffffep-51 + }, + { // Entry 47 + 0x1.fffffep-51, + 0x1.fffffep-51, + 0x1.p-50 + }, + { // Entry 48 + 0x1.fffffep-51, + 0x1.fffffep-51, + 0x1.000002p-50 + }, + { // Entry 49 + 0x1.fffffep-51, + 0x1.p-50, + 0x1.fffffep-51 + }, + { // Entry 50 + 0x1.p-50, + 0x1.p-50, + 0x1.p-50 + }, + { // Entry 51 + 0x1.p-50, + 0x1.p-50, + 0x1.000002p-50 + }, + { // Entry 52 + 0x1.fffffep-51, + 0x1.000002p-50, + 0x1.fffffep-51 + }, + { // Entry 53 + 0x1.p-50, + 0x1.000002p-50, + 0x1.p-50 + }, + { // Entry 54 + 0x1.000002p-50, + 0x1.000002p-50, + 0x1.000002p-50 + }, + { // Entry 55 + 0x1.fffffep-11, + 0x1.fffffep-11, + 0x1.fffffep-11 + }, + { // Entry 56 + 0x1.fffffep-11, + 0x1.fffffep-11, + 0x1.p-10 + }, + { // Entry 57 + 0x1.fffffep-11, + 0x1.fffffep-11, + 0x1.000002p-10 + }, + { // Entry 58 + 0x1.fffffep-11, + 0x1.p-10, + 0x1.fffffep-11 + }, + { // Entry 59 + 0x1.p-10, + 0x1.p-10, + 0x1.p-10 + }, + { // Entry 60 + 0x1.p-10, + 0x1.p-10, + 0x1.000002p-10 + }, + { // Entry 61 + 0x1.fffffep-11, + 0x1.000002p-10, + 0x1.fffffep-11 + }, + { // Entry 62 + 0x1.p-10, + 0x1.000002p-10, + 0x1.p-10 + }, + { // Entry 63 + 0x1.000002p-10, + 0x1.000002p-10, + 0x1.000002p-10 + }, + { // Entry 64 + 0x1.fffffep-2, + 0x1.fffffep-2, + 0x1.fffffep-2 + }, + { // Entry 65 + 0x1.fffffep-2, + 0x1.fffffep-2, + 0x1.p-1 + }, + { // Entry 66 + 0x1.fffffep-2, + 0x1.fffffep-2, + 0x1.000002p-1 + }, + { // Entry 67 + 0x1.fffffep-2, + 0x1.p-1, + 0x1.fffffep-2 + }, + { // Entry 68 + 0x1.p-1, + 0x1.p-1, + 0x1.p-1 + }, + { // Entry 69 + 0x1.p-1, + 0x1.p-1, + 0x1.000002p-1 + }, + { // Entry 70 + 0x1.fffffep-2, + 0x1.000002p-1, + 0x1.fffffep-2 + }, + { // Entry 71 + 0x1.p-1, + 0x1.000002p-1, + 0x1.p-1 + }, + { // Entry 72 + 0x1.000002p-1, + 0x1.000002p-1, + 0x1.000002p-1 + }, + { // Entry 73 + 0x1.fffffep0, + 0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 74 + 0x1.fffffep0, + 0x1.fffffep0, + 0x1.p1 + }, + { // Entry 75 + 0x1.fffffep0, + 0x1.fffffep0, + 0x1.000002p1 + }, + { // Entry 76 + 0x1.fffffep0, + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 77 + 0x1.p1, + 0x1.p1, + 0x1.p1 + }, + { // Entry 78 + 0x1.p1, + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 79 + 0x1.fffffep0, + 0x1.000002p1, + 0x1.fffffep0 + }, + { // Entry 80 + 0x1.p1, + 0x1.000002p1, + 0x1.p1 + }, + { // Entry 81 + 0x1.000002p1, + 0x1.000002p1, + 0x1.000002p1 + }, + { // Entry 82 + 0x1.fffffep9, + 0x1.fffffep9, + 0x1.fffffep9 + }, + { // Entry 83 + 0x1.fffffep9, + 0x1.fffffep9, + 0x1.p10 + }, + { // Entry 84 + 0x1.fffffep9, + 0x1.fffffep9, + 0x1.000002p10 + }, + { // Entry 85 + 0x1.fffffep9, + 0x1.p10, + 0x1.fffffep9 + }, + { // Entry 86 + 0x1.p10, + 0x1.p10, + 0x1.p10 + }, + { // Entry 87 + 0x1.p10, + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 88 + 0x1.fffffep9, + 0x1.000002p10, + 0x1.fffffep9 + }, + { // Entry 89 + 0x1.p10, + 0x1.000002p10, + 0x1.p10 + }, + { // Entry 90 + 0x1.000002p10, + 0x1.000002p10, + 0x1.000002p10 + }, + { // Entry 91 + 0x1.fffffep49, + 0x1.fffffep49, + 0x1.fffffep49 + }, + { // Entry 92 + 0x1.fffffep49, + 0x1.fffffep49, + 0x1.p50 + }, + { // Entry 93 + 0x1.fffffep49, + 0x1.fffffep49, + 0x1.000002p50 + }, + { // Entry 94 + 0x1.fffffep49, + 0x1.p50, + 0x1.fffffep49 + }, + { // Entry 95 + 0x1.p50, + 0x1.p50, + 0x1.p50 + }, + { // Entry 96 + 0x1.p50, + 0x1.p50, + 0x1.000002p50 + }, + { // Entry 97 + 0x1.fffffep49, + 0x1.000002p50, + 0x1.fffffep49 + }, + { // Entry 98 + 0x1.p50, + 0x1.000002p50, + 0x1.p50 + }, + { // Entry 99 + 0x1.000002p50, + 0x1.000002p50, + 0x1.000002p50 + }, + { // Entry 100 + 0x1.fffffep126, + 0x1.fffffep126, + 0x1.fffffep126 + }, + { // Entry 101 + 0x1.fffffep126, + 0x1.fffffep126, + 0x1.p127 + }, + { // Entry 102 + 0x1.fffffep126, + 0x1.fffffep126, + 0x1.000002p127 + }, + { // Entry 103 + 0x1.fffffep126, + 0x1.p127, + 0x1.fffffep126 + }, + { // Entry 104 + 0x1.p127, + 0x1.p127, + 0x1.p127 + }, + { // Entry 105 + 0x1.p127, + 0x1.p127, + 0x1.000002p127 + }, + { // Entry 106 + 0x1.fffffep126, + 0x1.000002p127, + 0x1.fffffep126 + }, + { // Entry 107 + 0x1.p127, + 0x1.000002p127, + 0x1.p127 + }, + { // Entry 108 + 0x1.000002p127, + 0x1.000002p127, + 0x1.000002p127 + }, + { // Entry 109 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 110 + 0x1.fffffep127, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 111 + 0x1.p-126, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 112 + 0x1.p-149, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 113 + 0.0, + HUGE_VALF, + 0.0f + }, + { // Entry 114 + -0.0, + HUGE_VALF, + -0.0f + }, + { // Entry 115 + -0x1.p-149, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 116 + -0x1.p-126, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 117 + -0x1.fffffep127, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 118 + -HUGE_VALF, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 119 + 0x1.fffffep127, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 120 + 0x1.p-126, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 121 + 0x1.p-149, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 122 + 0.0, + 0.0f, + HUGE_VALF + }, + { // Entry 123 + -0.0, + -0.0f, + HUGE_VALF + }, + { // Entry 124 + -0x1.p-149, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 125 + -0x1.p-126, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 126 + -0x1.fffffep127, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 127 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 128 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 129 + 0x1.p-126, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 130 + 0x1.p-149, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 131 + 0.0, + 0x1.fffffep127, + 0.0f + }, + { // Entry 132 + -0.0, + 0x1.fffffep127, + -0.0f + }, + { // Entry 133 + -0x1.p-149, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 134 + -0x1.p-126, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 135 + -0x1.fffffep127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 136 + -HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 137 + 0x1.p-126, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 138 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 139 + 0.0, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 140 + -0.0, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 141 + -0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 142 + -0x1.p-126, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 143 + -0x1.fffffep127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 144 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 145 + 0x1.p-126, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 146 + 0x1.p-149, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 147 + 0.0, + 0x1.p-126, + 0.0f + }, + { // Entry 148 + -0.0, + 0x1.p-126, + -0.0f + }, + { // Entry 149 + -0x1.p-149, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 150 + -0x1.p-126, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 151 + -0x1.fffffep127, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 152 + -HUGE_VALF, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 153 + 0x1.p-149, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 154 + 0.0, + 0.0f, + 0x1.p-126 + }, + { // Entry 155 + -0.0, + -0.0f, + 0x1.p-126 + }, + { // Entry 156 + -0x1.p-149, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 157 + -0x1.p-126, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 158 + -0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 159 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 160 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 161 + 0.0, + 0x1.p-149, + 0.0f + }, + { // Entry 162 + -0.0, + 0x1.p-149, + -0.0f + }, + { // Entry 163 + -0x1.p-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 164 + -0x1.p-126, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 165 + -0x1.fffffep127, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 166 + -HUGE_VALF, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 167 + 0.0, + 0.0f, + 0x1.p-149 + }, + { // Entry 168 + -0.0, + -0.0f, + 0x1.p-149 + }, + { // Entry 169 + -0x1.p-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 170 + -0x1.p-126, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 171 + -0x1.fffffep127, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 172 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 173 + 0.0, + 0.0f, + 0.0f + }, + { // Entry 174 + 0.0, + 0.0f, + -0.0f + }, + { // Entry 175 + -0x1.p-149, + 0.0f, + -0x1.p-149 + }, + { // Entry 176 + -0x1.p-126, + 0.0f, + -0x1.p-126 + }, + { // Entry 177 + -0x1.fffffep127, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 178 + -HUGE_VALF, + 0.0f, + -HUGE_VALF + }, + { // Entry 179 + -0.0, + -0.0f, + 0.0f + }, + { // Entry 180 + -0x1.p-149, + -0x1.p-149, + 0.0f + }, + { // Entry 181 + -0x1.p-126, + -0x1.p-126, + 0.0f + }, + { // Entry 182 + -0x1.fffffep127, + -0x1.fffffep127, + 0.0f + }, + { // Entry 183 + -HUGE_VALF, + -HUGE_VALF, + 0.0f + }, + { // Entry 184 + -0.0, + -0.0f, + -0.0f + }, + { // Entry 185 + -0x1.p-149, + -0.0f, + -0x1.p-149 + }, + { // Entry 186 + -0x1.p-126, + -0.0f, + -0x1.p-126 + }, + { // Entry 187 + -0x1.fffffep127, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 188 + -HUGE_VALF, + -0.0f, + -HUGE_VALF + }, + { // Entry 189 + -0x1.p-149, + -0x1.p-149, + -0.0f + }, + { // Entry 190 + -0x1.p-126, + -0x1.p-126, + -0.0f + }, + { // Entry 191 + -0x1.fffffep127, + -0x1.fffffep127, + -0.0f + }, + { // Entry 192 + -HUGE_VALF, + -HUGE_VALF, + -0.0f + }, + { // Entry 193 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 194 + -0x1.p-126, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 195 + -0x1.fffffep127, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 196 + -HUGE_VALF, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 197 + -0x1.p-126, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 198 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 199 + -HUGE_VALF, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 200 + -0x1.p-126, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 201 + -0x1.fffffep127, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 202 + -HUGE_VALF, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 203 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 204 + -HUGE_VALF, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 205 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 206 + -HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 207 + -HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 208 + -HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 209 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 210 + 0x1.p-149, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 211 + -0x1.p-149, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 212 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 213 + -0x1.fffffcp-127, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 214 + -0x1.p-149, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 215 + -0x1.fffffcp-127, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 216 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p-149 + } +}; diff --git a/tests/math_data/fmod_intel_data.h b/tests/math_data/fmod_intel_data.h new file mode 100644 index 000000000..b15c77a3a --- /dev/null +++ b/tests/math_data/fmod_intel_data.h @@ -0,0 +1,1328 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_fmod_intel_data[] = { + { // Entry 0 + -0x1.57e8932492c0p-10, + -0x1.200ad685e7f44p3, + -0x1.000014abd446dp0 + }, + { // Entry 1 + -0x1.d7dbf487ffd0p-11, + -0x1.3333333333334p-1, + 0x1.10a83585649f6p-4 + }, + { // Entry 2 + 0x1.p-1072, + 0x1.0000000000001p-41, + 0x1.4p-1072 + }, + { // Entry 3 + 0x1.p-1072, + 0x1.0000000000001p-1017, + 0x1.4p-1072 + }, + { // Entry 4 + 0x1.fc8420e88cbfp18, + 0x1.11f783ee89b08p99, + 0x1.0abe1a29d8e8cp19 + }, + { // Entry 5 + 0x1.50p-61, + 0x1.5555555555552p-12, + 0x1.1111111111106p-14 + }, + { // Entry 6 + -0.0, + -0x1.0p-117, + -0x1.0p-117 + }, + { // Entry 7 + -0.0, + -0x1.0p-117, + 0x1.0p-117 + }, + { // Entry 8 + 0.0, + 0x1.0p-117, + -0x1.0p-117 + }, + { // Entry 9 + 0.0, + 0x1.0p-117, + 0x1.0p-117 + }, + { // Entry 10 + -0x1.p-117, + -0x1.0p-117, + 0x1.0p15 + }, + { // Entry 11 + -0x1.p-117, + -0x1.0p-117, + 0x1.0p16 + }, + { // Entry 12 + 0x1.p-117, + 0x1.0p-117, + 0x1.0p15 + }, + { // Entry 13 + 0x1.p-117, + 0x1.0p-117, + 0x1.0p16 + }, + { // Entry 14 + -0x1.p-117, + -0x1.0p-117, + 0x1.0p117 + }, + { // Entry 15 + -0x1.p-117, + -0x1.0p-117, + 0x1.0p118 + }, + { // Entry 16 + 0x1.p-117, + 0x1.0p-117, + 0x1.0p117 + }, + { // Entry 17 + 0x1.p-117, + 0x1.0p-117, + 0x1.0p118 + }, + { // Entry 18 + 0.0, + 0x1.0p15, + -0x1.0p-117 + }, + { // Entry 19 + 0.0, + 0x1.0p15, + 0x1.0p-117 + }, + { // Entry 20 + 0.0, + 0x1.0p16, + -0x1.0p-117 + }, + { // Entry 21 + 0.0, + 0x1.0p16, + 0x1.0p-117 + }, + { // Entry 22 + 0.0, + 0x1.0p15, + 0x1.0p15 + }, + { // Entry 23 + 0x1.p15, + 0x1.0p15, + 0x1.0p16 + }, + { // Entry 24 + 0.0, + 0x1.0p16, + 0x1.0p15 + }, + { // Entry 25 + 0.0, + 0x1.0p16, + 0x1.0p16 + }, + { // Entry 26 + 0x1.p15, + 0x1.0p15, + 0x1.0p117 + }, + { // Entry 27 + 0x1.p15, + 0x1.0p15, + 0x1.0p118 + }, + { // Entry 28 + 0x1.p16, + 0x1.0p16, + 0x1.0p117 + }, + { // Entry 29 + 0x1.p16, + 0x1.0p16, + 0x1.0p118 + }, + { // Entry 30 + 0.0, + 0x1.0p117, + -0x1.0p-117 + }, + { // Entry 31 + 0.0, + 0x1.0p117, + 0x1.0p-117 + }, + { // Entry 32 + 0.0, + 0x1.0p118, + -0x1.0p-117 + }, + { // Entry 33 + 0.0, + 0x1.0p118, + 0x1.0p-117 + }, + { // Entry 34 + 0.0, + 0x1.0p117, + 0x1.0p15 + }, + { // Entry 35 + 0.0, + 0x1.0p117, + 0x1.0p16 + }, + { // Entry 36 + 0.0, + 0x1.0p118, + 0x1.0p15 + }, + { // Entry 37 + 0.0, + 0x1.0p118, + 0x1.0p16 + }, + { // Entry 38 + 0.0, + 0x1.0p117, + 0x1.0p117 + }, + { // Entry 39 + 0x1.p117, + 0x1.0p117, + 0x1.0p118 + }, + { // Entry 40 + 0.0, + 0x1.0p118, + 0x1.0p117 + }, + { // Entry 41 + 0.0, + 0x1.0p118, + 0x1.0p118 + }, + { // Entry 42 + 0.0, + 0x1.9p6, + 0x1.4p3 + }, + { // Entry 43 + 0x1.p0, + 0x1.9p6, + 0x1.6p3 + }, + { // Entry 44 + 0x1.p2, + 0x1.9p6, + 0x1.8p3 + }, + { // Entry 45 + 0x1.p0, + 0x1.940p6, + 0x1.4p3 + }, + { // Entry 46 + 0x1.p1, + 0x1.940p6, + 0x1.6p3 + }, + { // Entry 47 + 0x1.40p2, + 0x1.940p6, + 0x1.8p3 + }, + { // Entry 48 + 0x1.p1, + 0x1.980p6, + 0x1.4p3 + }, + { // Entry 49 + 0x1.80p1, + 0x1.980p6, + 0x1.6p3 + }, + { // Entry 50 + 0x1.80p2, + 0x1.980p6, + 0x1.8p3 + }, + { // Entry 51 + 0x1.80p1, + 0x1.9c0p6, + 0x1.4p3 + }, + { // Entry 52 + 0x1.p2, + 0x1.9c0p6, + 0x1.6p3 + }, + { // Entry 53 + 0x1.c0p2, + 0x1.9c0p6, + 0x1.8p3 + }, + { // Entry 54 + 0x1.p2, + 0x1.ap6, + 0x1.4p3 + }, + { // Entry 55 + 0x1.40p2, + 0x1.ap6, + 0x1.6p3 + }, + { // Entry 56 + 0x1.p3, + 0x1.ap6, + 0x1.8p3 + }, + { // Entry 57 + 0x1.40p2, + 0x1.a40p6, + 0x1.4p3 + }, + { // Entry 58 + 0x1.80p2, + 0x1.a40p6, + 0x1.6p3 + }, + { // Entry 59 + 0x1.20p3, + 0x1.a40p6, + 0x1.8p3 + }, + { // Entry 60 + 0x1.80p2, + 0x1.a80p6, + 0x1.4p3 + }, + { // Entry 61 + 0x1.c0p2, + 0x1.a80p6, + 0x1.6p3 + }, + { // Entry 62 + 0x1.40p3, + 0x1.a80p6, + 0x1.8p3 + }, + { // Entry 63 + 0x1.c0p2, + 0x1.ac0p6, + 0x1.4p3 + }, + { // Entry 64 + 0x1.p3, + 0x1.ac0p6, + 0x1.6p3 + }, + { // Entry 65 + 0x1.60p3, + 0x1.ac0p6, + 0x1.8p3 + }, + { // Entry 66 + 0x1.p3, + 0x1.bp6, + 0x1.4p3 + }, + { // Entry 67 + 0x1.20p3, + 0x1.bp6, + 0x1.6p3 + }, + { // Entry 68 + 0.0, + 0x1.bp6, + 0x1.8p3 + }, + { // Entry 69 + 0x1.20p3, + 0x1.b40p6, + 0x1.4p3 + }, + { // Entry 70 + 0x1.40p3, + 0x1.b40p6, + 0x1.6p3 + }, + { // Entry 71 + 0x1.p0, + 0x1.b40p6, + 0x1.8p3 + }, + { // Entry 72 + 0.0, + 0x1.b80p6, + 0x1.4p3 + }, + { // Entry 73 + 0.0, + 0x1.b80p6, + 0x1.6p3 + }, + { // Entry 74 + 0x1.p1, + 0x1.b80p6, + 0x1.8p3 + }, + { // Entry 75 + -0.0, + -0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 76 + -0x1.p-52, + -0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 77 + -0x1.80p-52, + -0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 78 + -0x1.p0, + -0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 79 + -0.0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 80 + -0x1.p-53, + -0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 81 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 82 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 83 + -0.0, + -0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 84 + -0x1.80p-52, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 85 + -0x1.p-52, + -0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 86 + -0.0, + -0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 87 + -0x1.p-53, + -0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 88 + -0.0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 89 + -0x1.p0, + -0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 90 + -0.0, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 91 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 92 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 93 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 94 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 95 + 0.0, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 96 + 0x1.p0, + 0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 97 + 0.0, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 98 + 0x1.p-53, + 0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 99 + 0.0, + 0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 100 + 0x1.p-52, + 0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 101 + 0x1.80p-52, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 102 + 0.0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 103 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 104 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 105 + 0x1.p-53, + 0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 106 + 0.0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 107 + 0x1.p0, + 0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 108 + 0x1.80p-52, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 109 + 0x1.p-52, + 0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 110 + 0.0, + 0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 111 + -0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 112 + -0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 113 + 0.0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 114 + -0.0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 115 + -0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 116 + 0.0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 117 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 118 + -0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 119 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 120 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 121 + -0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 122 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 123 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 124 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 125 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 126 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 127 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 128 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 129 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 130 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 131 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 132 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 133 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 134 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 135 + -0x1.80p-1, + -0x1.0000000000001p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 136 + -0x1.p-1, + -0x1.0000000000001p51, + 0x1.0p0 + }, + { // Entry 137 + -0.0, + -0x1.0000000000001p51, + 0x1.0000000000001p0 + }, + { // Entry 138 + -0x1.p-2, + -0x1.0p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 139 + -0.0, + -0x1.0p51, + 0x1.0p0 + }, + { // Entry 140 + -0x1.00000000000020p-1, + -0x1.0p51, + 0x1.0000000000001p0 + }, + { // Entry 141 + -0.0, + -0x1.fffffffffffffp50, + 0x1.fffffffffffffp-1 + }, + { // Entry 142 + -0x1.80p-1, + -0x1.fffffffffffffp50, + 0x1.0p0 + }, + { // Entry 143 + -0x1.00000000000040p-2, + -0x1.fffffffffffffp50, + 0x1.0000000000001p0 + }, + { // Entry 144 + 0.0, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1 + }, + { // Entry 145 + 0x1.p-1, + 0x1.fffffffffffffp51, + 0x1.0p0 + }, + { // Entry 146 + 0x1.00000000000040p-1, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0 + }, + { // Entry 147 + 0x1.p-1, + 0x1.0p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 148 + 0.0, + 0x1.0p52, + 0x1.0p0 + }, + { // Entry 149 + 0x1.p-52, + 0x1.0p52, + 0x1.0000000000001p0 + }, + { // Entry 150 + 0x1.00000000000010p-1, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 151 + 0.0, + 0x1.0000000000001p52, + 0x1.0p0 + }, + { // Entry 152 + 0.0, + 0x1.0000000000001p52, + 0x1.0000000000001p0 + }, + { // Entry 153 + -0x1.80p-52, + -0x1.0000000000001p53, + 0x1.fffffffffffffp-1 + }, + { // Entry 154 + -0.0, + -0x1.0000000000001p53, + 0x1.0p0 + }, + { // Entry 155 + -0.0, + -0x1.0000000000001p53, + 0x1.0000000000001p0 + }, + { // Entry 156 + -0x1.p-53, + -0x1.0p53, + 0x1.fffffffffffffp-1 + }, + { // Entry 157 + -0.0, + -0x1.0p53, + 0x1.0p0 + }, + { // Entry 158 + -0x1.p-51, + -0x1.0p53, + 0x1.0000000000001p0 + }, + { // Entry 159 + -0.0, + -0x1.fffffffffffffp52, + 0x1.fffffffffffffp-1 + }, + { // Entry 160 + -0.0, + -0x1.fffffffffffffp52, + 0x1.0p0 + }, + { // Entry 161 + -0x1.80p-51, + -0x1.fffffffffffffp52, + 0x1.0000000000001p0 + }, + { // Entry 162 + 0.0, + 0x1.fffffffffffffp50, + 0x1.fffffffffffffp-1 + }, + { // Entry 163 + 0x1.80p-1, + 0x1.fffffffffffffp50, + 0x1.0p0 + }, + { // Entry 164 + 0x1.00000000000040p-2, + 0x1.fffffffffffffp50, + 0x1.0000000000001p0 + }, + { // Entry 165 + 0x1.p-2, + 0x1.0p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 166 + 0.0, + 0x1.0p51, + 0x1.0p0 + }, + { // Entry 167 + 0x1.00000000000020p-1, + 0x1.0p51, + 0x1.0000000000001p0 + }, + { // Entry 168 + 0x1.80p-1, + 0x1.0000000000001p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 169 + 0x1.p-1, + 0x1.0000000000001p51, + 0x1.0p0 + }, + { // Entry 170 + 0.0, + 0x1.0000000000001p51, + 0x1.0000000000001p0 + }, + { // Entry 171 + 0.0, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1 + }, + { // Entry 172 + 0x1.p-1, + 0x1.fffffffffffffp51, + 0x1.0p0 + }, + { // Entry 173 + 0x1.00000000000040p-1, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0 + }, + { // Entry 174 + 0x1.p-1, + 0x1.0p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 175 + 0.0, + 0x1.0p52, + 0x1.0p0 + }, + { // Entry 176 + 0x1.p-52, + 0x1.0p52, + 0x1.0000000000001p0 + }, + { // Entry 177 + 0x1.00000000000010p-1, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 178 + 0.0, + 0x1.0000000000001p52, + 0x1.0p0 + }, + { // Entry 179 + 0.0, + 0x1.0000000000001p52, + 0x1.0000000000001p0 + }, + { // Entry 180 + -0.0, + -0x1.0000000000001p53, + -0x1.0000000000001p0 + }, + { // Entry 181 + -0.0, + -0x1.0000000000001p53, + -0x1.0p0 + }, + { // Entry 182 + -0x1.80p-52, + -0x1.0000000000001p53, + -0x1.fffffffffffffp-1 + }, + { // Entry 183 + -0x1.p-51, + -0x1.0p53, + -0x1.0000000000001p0 + }, + { // Entry 184 + -0.0, + -0x1.0p53, + -0x1.0p0 + }, + { // Entry 185 + -0x1.p-53, + -0x1.0p53, + -0x1.fffffffffffffp-1 + }, + { // Entry 186 + -0x1.80p-51, + -0x1.fffffffffffffp52, + -0x1.0000000000001p0 + }, + { // Entry 187 + -0.0, + -0x1.fffffffffffffp52, + -0x1.0p0 + }, + { // Entry 188 + -0.0, + -0x1.fffffffffffffp52, + -0x1.fffffffffffffp-1 + }, + { // Entry 189 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 190 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 191 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 192 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 193 + 0x1.p-1022, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 194 + -0x1.p-1022, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 195 + 0x1.p-1022, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 196 + -0x1.p-1022, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 197 + 0x1.p-1074, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 198 + -0x1.p-1074, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 199 + 0x1.p-1074, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 200 + -0x1.p-1074, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 201 + 0.0, + 0.0, + HUGE_VAL + }, + { // Entry 202 + -0.0, + -0.0, + HUGE_VAL + }, + { // Entry 203 + 0.0, + 0.0, + -HUGE_VAL + }, + { // Entry 204 + -0.0, + -0.0, + -HUGE_VAL + }, + { // Entry 205 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 206 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 207 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 208 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 209 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 210 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 211 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 212 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 213 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 214 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 215 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 216 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 217 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 218 + -0x1.p-1022, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 219 + 0x1.p-1022, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 220 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 221 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 222 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 223 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 224 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 225 + 0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 226 + -0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 227 + 0.0, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 228 + -0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 229 + 0.0, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 230 + 0.0, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 231 + -0.0, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 232 + -0.0, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 233 + 0x1.p-1074, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 234 + 0x1.p-1074, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 235 + -0x1.p-1074, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 236 + -0x1.p-1074, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 237 + 0.0, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 238 + 0.0, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 239 + -0.0, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 240 + -0.0, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 241 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 242 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 243 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 244 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 245 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 246 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 247 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 248 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 249 + 0.0, + 0.0, + 0x1.0p-1022 + }, + { // Entry 250 + 0.0, + 0.0, + -0x1.0p-1022 + }, + { // Entry 251 + -0.0, + -0.0, + 0x1.0p-1022 + }, + { // Entry 252 + -0.0, + -0.0, + -0x1.0p-1022 + }, + { // Entry 253 + 0.0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 254 + 0.0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 255 + -0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 256 + -0.0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 257 + 0.0, + 0.0, + 0x1.0p-1074 + }, + { // Entry 258 + 0.0, + 0.0, + -0x1.0p-1074 + }, + { // Entry 259 + -0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 260 + -0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 261 + -0x1.8fd90479094320p-964, + -0x1.398dd069017ffp759, + -0x1.b148e36fdec2fp-964 + } +}; diff --git a/tests/math_data/fmodf_intel_data.h b/tests/math_data/fmodf_intel_data.h new file mode 100644 index 000000000..32ba583e1 --- /dev/null +++ b/tests/math_data/fmodf_intel_data.h @@ -0,0 +1,1298 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_fmodf_intel_data[] = { + { // Entry 0 + 0x1.fbp-11, + 0x1.8e77b6p12, + -0x1.0140p-10 + }, + { // Entry 1 + -0.0, + -0x1.p-117, + -0x1.p-117 + }, + { // Entry 2 + -0.0, + -0x1.p-117, + 0x1.p-117 + }, + { // Entry 3 + 0.0, + 0x1.p-117, + -0x1.p-117 + }, + { // Entry 4 + 0.0, + 0x1.p-117, + 0x1.p-117 + }, + { // Entry 5 + -0x1.p-117, + -0x1.p-117, + 0x1.p15 + }, + { // Entry 6 + -0x1.p-117, + -0x1.p-117, + 0x1.p16 + }, + { // Entry 7 + 0x1.p-117, + 0x1.p-117, + 0x1.p15 + }, + { // Entry 8 + 0x1.p-117, + 0x1.p-117, + 0x1.p16 + }, + { // Entry 9 + -0x1.p-117, + -0x1.p-117, + 0x1.p117 + }, + { // Entry 10 + -0x1.p-117, + -0x1.p-117, + 0x1.p118 + }, + { // Entry 11 + 0x1.p-117, + 0x1.p-117, + 0x1.p117 + }, + { // Entry 12 + 0x1.p-117, + 0x1.p-117, + 0x1.p118 + }, + { // Entry 13 + 0.0, + 0x1.p15, + -0x1.p-117 + }, + { // Entry 14 + 0.0, + 0x1.p15, + 0x1.p-117 + }, + { // Entry 15 + 0.0, + 0x1.p16, + -0x1.p-117 + }, + { // Entry 16 + 0.0, + 0x1.p16, + 0x1.p-117 + }, + { // Entry 17 + 0.0, + 0x1.p15, + 0x1.p15 + }, + { // Entry 18 + 0x1.p15, + 0x1.p15, + 0x1.p16 + }, + { // Entry 19 + 0.0, + 0x1.p16, + 0x1.p15 + }, + { // Entry 20 + 0.0, + 0x1.p16, + 0x1.p16 + }, + { // Entry 21 + 0x1.p15, + 0x1.p15, + 0x1.p117 + }, + { // Entry 22 + 0x1.p15, + 0x1.p15, + 0x1.p118 + }, + { // Entry 23 + 0x1.p16, + 0x1.p16, + 0x1.p117 + }, + { // Entry 24 + 0x1.p16, + 0x1.p16, + 0x1.p118 + }, + { // Entry 25 + 0.0, + 0x1.p117, + -0x1.p-117 + }, + { // Entry 26 + 0.0, + 0x1.p117, + 0x1.p-117 + }, + { // Entry 27 + 0.0, + 0x1.p118, + -0x1.p-117 + }, + { // Entry 28 + 0.0, + 0x1.p118, + 0x1.p-117 + }, + { // Entry 29 + 0.0, + 0x1.p117, + 0x1.p15 + }, + { // Entry 30 + 0.0, + 0x1.p117, + 0x1.p16 + }, + { // Entry 31 + 0.0, + 0x1.p118, + 0x1.p15 + }, + { // Entry 32 + 0.0, + 0x1.p118, + 0x1.p16 + }, + { // Entry 33 + 0.0, + 0x1.p117, + 0x1.p117 + }, + { // Entry 34 + 0x1.p117, + 0x1.p117, + 0x1.p118 + }, + { // Entry 35 + 0.0, + 0x1.p118, + 0x1.p117 + }, + { // Entry 36 + 0.0, + 0x1.p118, + 0x1.p118 + }, + { // Entry 37 + 0.0, + 0x1.90p6, + 0x1.40p3 + }, + { // Entry 38 + 0x1.p0, + 0x1.90p6, + 0x1.60p3 + }, + { // Entry 39 + 0x1.p2, + 0x1.90p6, + 0x1.80p3 + }, + { // Entry 40 + 0x1.p0, + 0x1.94p6, + 0x1.40p3 + }, + { // Entry 41 + 0x1.p1, + 0x1.94p6, + 0x1.60p3 + }, + { // Entry 42 + 0x1.40p2, + 0x1.94p6, + 0x1.80p3 + }, + { // Entry 43 + 0x1.p1, + 0x1.98p6, + 0x1.40p3 + }, + { // Entry 44 + 0x1.80p1, + 0x1.98p6, + 0x1.60p3 + }, + { // Entry 45 + 0x1.80p2, + 0x1.98p6, + 0x1.80p3 + }, + { // Entry 46 + 0x1.80p1, + 0x1.9cp6, + 0x1.40p3 + }, + { // Entry 47 + 0x1.p2, + 0x1.9cp6, + 0x1.60p3 + }, + { // Entry 48 + 0x1.c0p2, + 0x1.9cp6, + 0x1.80p3 + }, + { // Entry 49 + 0x1.p2, + 0x1.a0p6, + 0x1.40p3 + }, + { // Entry 50 + 0x1.40p2, + 0x1.a0p6, + 0x1.60p3 + }, + { // Entry 51 + 0x1.p3, + 0x1.a0p6, + 0x1.80p3 + }, + { // Entry 52 + 0x1.40p2, + 0x1.a4p6, + 0x1.40p3 + }, + { // Entry 53 + 0x1.80p2, + 0x1.a4p6, + 0x1.60p3 + }, + { // Entry 54 + 0x1.20p3, + 0x1.a4p6, + 0x1.80p3 + }, + { // Entry 55 + 0x1.80p2, + 0x1.a8p6, + 0x1.40p3 + }, + { // Entry 56 + 0x1.c0p2, + 0x1.a8p6, + 0x1.60p3 + }, + { // Entry 57 + 0x1.40p3, + 0x1.a8p6, + 0x1.80p3 + }, + { // Entry 58 + 0x1.c0p2, + 0x1.acp6, + 0x1.40p3 + }, + { // Entry 59 + 0x1.p3, + 0x1.acp6, + 0x1.60p3 + }, + { // Entry 60 + 0x1.60p3, + 0x1.acp6, + 0x1.80p3 + }, + { // Entry 61 + 0x1.p3, + 0x1.b0p6, + 0x1.40p3 + }, + { // Entry 62 + 0x1.20p3, + 0x1.b0p6, + 0x1.60p3 + }, + { // Entry 63 + 0.0, + 0x1.b0p6, + 0x1.80p3 + }, + { // Entry 64 + 0x1.20p3, + 0x1.b4p6, + 0x1.40p3 + }, + { // Entry 65 + 0x1.40p3, + 0x1.b4p6, + 0x1.60p3 + }, + { // Entry 66 + 0x1.p0, + 0x1.b4p6, + 0x1.80p3 + }, + { // Entry 67 + 0.0, + 0x1.b8p6, + 0x1.40p3 + }, + { // Entry 68 + 0.0, + 0x1.b8p6, + 0x1.60p3 + }, + { // Entry 69 + 0x1.p1, + 0x1.b8p6, + 0x1.80p3 + }, + { // Entry 70 + -0.0, + -0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 71 + -0x1.p-23, + -0x1.000002p0, + -0x1.p0 + }, + { // Entry 72 + -0x1.80p-23, + -0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 73 + -0x1.p0, + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 74 + -0.0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 75 + -0x1.p-24, + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 76 + -0x1.fffffep-1, + -0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 77 + -0x1.fffffep-1, + -0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 78 + -0.0, + -0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 79 + -0x1.80p-23, + -0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 80 + -0x1.p-23, + -0x1.000002p0, + 0x1.p0 + }, + { // Entry 81 + -0.0, + -0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 82 + -0x1.p-24, + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 83 + -0.0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 84 + -0x1.p0, + -0x1.p0, + 0x1.000002p0 + }, + { // Entry 85 + -0.0, + -0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 86 + -0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 87 + -0x1.fffffep-1, + -0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 88 + 0x1.fffffep-1, + 0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 89 + 0x1.fffffep-1, + 0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 90 + 0.0, + 0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 91 + 0x1.p0, + 0x1.p0, + -0x1.000002p0 + }, + { // Entry 92 + 0.0, + 0x1.p0, + -0x1.p0 + }, + { // Entry 93 + 0x1.p-24, + 0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 94 + 0.0, + 0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 95 + 0x1.p-23, + 0x1.000002p0, + -0x1.p0 + }, + { // Entry 96 + 0x1.80p-23, + 0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 97 + 0.0, + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 98 + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 99 + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 100 + 0x1.p-24, + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 101 + 0.0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 102 + 0x1.p0, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 103 + 0x1.80p-23, + 0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 104 + 0x1.p-23, + 0x1.000002p0, + 0x1.p0 + }, + { // Entry 105 + 0.0, + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 106 + -0.0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 107 + 0.0, + 0.0, + 0x1.p-149 + }, + { // Entry 108 + 0.0, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 109 + -0.0, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 110 + 0.0, + 0.0, + -0x1.p-149 + }, + { // Entry 111 + 0.0, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 112 + -0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 113 + 0.0, + 0.0, + 0x1.fffffep127 + }, + { // Entry 114 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 115 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 116 + 0.0, + 0.0, + -0x1.fffffep127 + }, + { // Entry 117 + 0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 118 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 119 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 120 + -0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 121 + 0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 122 + 0.0, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 123 + -0.0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 124 + -0.0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 125 + 0.0, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 126 + 0.0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 127 + 0.0, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 128 + -0.0, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 129 + -0.0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 130 + -0x1.80p-1, + -0x1.000002p22, + 0x1.fffffep-1 + }, + { // Entry 131 + -0x1.p-1, + -0x1.000002p22, + 0x1.p0 + }, + { // Entry 132 + -0.0, + -0x1.000002p22, + 0x1.000002p0 + }, + { // Entry 133 + -0x1.p-2, + -0x1.p22, + 0x1.fffffep-1 + }, + { // Entry 134 + -0.0, + -0x1.p22, + 0x1.p0 + }, + { // Entry 135 + -0x1.000004p-1, + -0x1.p22, + 0x1.000002p0 + }, + { // Entry 136 + -0.0, + -0x1.fffffep21, + 0x1.fffffep-1 + }, + { // Entry 137 + -0x1.80p-1, + -0x1.fffffep21, + 0x1.p0 + }, + { // Entry 138 + -0x1.000008p-2, + -0x1.fffffep21, + 0x1.000002p0 + }, + { // Entry 139 + 0.0, + 0x1.fffffep22, + 0x1.fffffep-1 + }, + { // Entry 140 + 0x1.p-1, + 0x1.fffffep22, + 0x1.p0 + }, + { // Entry 141 + 0x1.000008p-1, + 0x1.fffffep22, + 0x1.000002p0 + }, + { // Entry 142 + 0x1.p-1, + 0x1.p23, + 0x1.fffffep-1 + }, + { // Entry 143 + 0.0, + 0x1.p23, + 0x1.p0 + }, + { // Entry 144 + 0x1.p-23, + 0x1.p23, + 0x1.000002p0 + }, + { // Entry 145 + 0x1.000002p-1, + 0x1.000002p23, + 0x1.fffffep-1 + }, + { // Entry 146 + 0.0, + 0x1.000002p23, + 0x1.p0 + }, + { // Entry 147 + 0.0, + 0x1.000002p23, + 0x1.000002p0 + }, + { // Entry 148 + -0x1.80p-23, + -0x1.000002p24, + 0x1.fffffep-1 + }, + { // Entry 149 + -0.0, + -0x1.000002p24, + 0x1.p0 + }, + { // Entry 150 + -0.0, + -0x1.000002p24, + 0x1.000002p0 + }, + { // Entry 151 + -0x1.p-24, + -0x1.p24, + 0x1.fffffep-1 + }, + { // Entry 152 + -0.0, + -0x1.p24, + 0x1.p0 + }, + { // Entry 153 + -0x1.p-22, + -0x1.p24, + 0x1.000002p0 + }, + { // Entry 154 + -0.0, + -0x1.fffffep23, + 0x1.fffffep-1 + }, + { // Entry 155 + -0.0, + -0x1.fffffep23, + 0x1.p0 + }, + { // Entry 156 + -0x1.80p-22, + -0x1.fffffep23, + 0x1.000002p0 + }, + { // Entry 157 + 0.0, + 0x1.fffffep21, + 0x1.fffffep-1 + }, + { // Entry 158 + 0x1.80p-1, + 0x1.fffffep21, + 0x1.p0 + }, + { // Entry 159 + 0x1.000008p-2, + 0x1.fffffep21, + 0x1.000002p0 + }, + { // Entry 160 + 0x1.p-2, + 0x1.p22, + 0x1.fffffep-1 + }, + { // Entry 161 + 0.0, + 0x1.p22, + 0x1.p0 + }, + { // Entry 162 + 0x1.000004p-1, + 0x1.p22, + 0x1.000002p0 + }, + { // Entry 163 + 0x1.80p-1, + 0x1.000002p22, + 0x1.fffffep-1 + }, + { // Entry 164 + 0x1.p-1, + 0x1.000002p22, + 0x1.p0 + }, + { // Entry 165 + 0.0, + 0x1.000002p22, + 0x1.000002p0 + }, + { // Entry 166 + 0.0, + 0x1.fffffep22, + 0x1.fffffep-1 + }, + { // Entry 167 + 0x1.p-1, + 0x1.fffffep22, + 0x1.p0 + }, + { // Entry 168 + 0x1.000008p-1, + 0x1.fffffep22, + 0x1.000002p0 + }, + { // Entry 169 + 0x1.p-1, + 0x1.p23, + 0x1.fffffep-1 + }, + { // Entry 170 + 0.0, + 0x1.p23, + 0x1.p0 + }, + { // Entry 171 + 0x1.p-23, + 0x1.p23, + 0x1.000002p0 + }, + { // Entry 172 + 0x1.000002p-1, + 0x1.000002p23, + 0x1.fffffep-1 + }, + { // Entry 173 + 0.0, + 0x1.000002p23, + 0x1.p0 + }, + { // Entry 174 + 0.0, + 0x1.000002p23, + 0x1.000002p0 + }, + { // Entry 175 + -0.0, + -0x1.000002p24, + -0x1.000002p0 + }, + { // Entry 176 + -0.0, + -0x1.000002p24, + -0x1.p0 + }, + { // Entry 177 + -0x1.80p-23, + -0x1.000002p24, + -0x1.fffffep-1 + }, + { // Entry 178 + -0x1.p-22, + -0x1.p24, + -0x1.000002p0 + }, + { // Entry 179 + -0.0, + -0x1.p24, + -0x1.p0 + }, + { // Entry 180 + -0x1.p-24, + -0x1.p24, + -0x1.fffffep-1 + }, + { // Entry 181 + -0x1.80p-22, + -0x1.fffffep23, + -0x1.000002p0 + }, + { // Entry 182 + -0.0, + -0x1.fffffep23, + -0x1.p0 + }, + { // Entry 183 + -0.0, + -0x1.fffffep23, + -0x1.fffffep-1 + }, + { // Entry 184 + 0x1.fffffep127, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 185 + 0x1.fffffep127, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 186 + -0x1.fffffep127, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 187 + -0x1.fffffep127, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 188 + 0x1.p-126, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 189 + -0x1.p-126, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 190 + 0x1.p-126, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 191 + -0x1.p-126, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 192 + 0x1.p-149, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 193 + -0x1.p-149, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 194 + 0x1.p-149, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 195 + -0x1.p-149, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 196 + 0.0, + 0.0f, + HUGE_VALF + }, + { // Entry 197 + -0.0, + -0.0f, + HUGE_VALF + }, + { // Entry 198 + 0.0, + 0.0f, + -HUGE_VALF + }, + { // Entry 199 + -0.0, + -0.0f, + -HUGE_VALF + }, + { // Entry 200 + 0.0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 201 + 0.0, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 202 + -0.0, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 203 + -0.0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 204 + 0.0, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 205 + 0.0, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 206 + -0.0, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 207 + -0.0, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 208 + 0.0, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 209 + 0.0, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 210 + -0.0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 211 + -0.0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 212 + 0x1.p-126, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 213 + -0x1.p-126, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 214 + 0x1.p-126, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 215 + -0x1.p-126, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 216 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 217 + -0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 218 + 0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 219 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 220 + 0.0, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 221 + -0.0, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 222 + 0.0, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 223 + -0.0, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 224 + 0.0, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 225 + 0.0, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 226 + -0.0, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 227 + -0.0, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 228 + 0x1.p-149, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 229 + 0x1.p-149, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 230 + -0x1.p-149, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 231 + -0x1.p-149, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 232 + 0.0, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 233 + 0.0, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 234 + -0.0, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 235 + -0.0, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 236 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 237 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 238 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 239 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 240 + 0x1.p-149, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 241 + 0x1.p-149, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 242 + -0x1.p-149, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 243 + -0x1.p-149, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 244 + 0.0, + 0.0f, + 0x1.p-126 + }, + { // Entry 245 + 0.0, + 0.0f, + -0x1.p-126 + }, + { // Entry 246 + -0.0, + -0.0f, + 0x1.p-126 + }, + { // Entry 247 + -0.0, + -0.0f, + -0x1.p-126 + }, + { // Entry 248 + 0.0, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 249 + 0.0, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 250 + -0.0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 251 + -0.0, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 252 + 0.0, + 0.0f, + 0x1.p-149 + }, + { // Entry 253 + 0.0, + 0.0f, + -0x1.p-149 + }, + { // Entry 254 + -0.0, + -0.0f, + 0x1.p-149 + }, + { // Entry 255 + -0.0, + -0.0f, + -0x1.p-149 + } +}; diff --git a/tests/math_data/frexp_intel_data.h b/tests/math_data/frexp_intel_data.h new file mode 100644 index 000000000..ce2e873f3 --- /dev/null +++ b/tests/math_data/frexp_intel_data.h @@ -0,0 +1,1108 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_int_1_t g_frexp_intel_data[] = { + { // Entry 0 + 0x1.p-1, + (int)0x1.94p6, + 0x1.0p100 + }, + { // Entry 1 + 0x1.199999999999a0p-1, + (int)0x1.94p6, + 0x1.199999999999ap100 + }, + { // Entry 2 + 0x1.33333333333340p-1, + (int)0x1.94p6, + 0x1.3333333333334p100 + }, + { // Entry 3 + 0x1.4ccccccccccce0p-1, + (int)0x1.94p6, + 0x1.4cccccccccccep100 + }, + { // Entry 4 + 0x1.66666666666680p-1, + (int)0x1.94p6, + 0x1.6666666666668p100 + }, + { // Entry 5 + 0x1.80000000000020p-1, + (int)0x1.94p6, + 0x1.8000000000002p100 + }, + { // Entry 6 + 0x1.999999999999c0p-1, + (int)0x1.94p6, + 0x1.999999999999cp100 + }, + { // Entry 7 + 0x1.b3333333333360p-1, + (int)0x1.94p6, + 0x1.b333333333336p100 + }, + { // Entry 8 + 0x1.cccccccccccdp-1, + (int)0x1.94p6, + 0x1.cccccccccccd0p100 + }, + { // Entry 9 + 0x1.e66666666666a0p-1, + (int)0x1.94p6, + 0x1.e66666666666ap100 + }, + { // Entry 10 + 0x1.p-1, + (int)0x1.98p6, + 0x1.0p101 + }, + { // Entry 11 + 0x1.p-1, + (int)0x1.92p7, + 0x1.0p200 + }, + { // Entry 12 + 0x1.199999999999a0p-1, + (int)0x1.92p7, + 0x1.199999999999ap200 + }, + { // Entry 13 + 0x1.33333333333340p-1, + (int)0x1.92p7, + 0x1.3333333333334p200 + }, + { // Entry 14 + 0x1.4ccccccccccce0p-1, + (int)0x1.92p7, + 0x1.4cccccccccccep200 + }, + { // Entry 15 + 0x1.66666666666680p-1, + (int)0x1.92p7, + 0x1.6666666666668p200 + }, + { // Entry 16 + 0x1.80000000000020p-1, + (int)0x1.92p7, + 0x1.8000000000002p200 + }, + { // Entry 17 + 0x1.999999999999c0p-1, + (int)0x1.92p7, + 0x1.999999999999cp200 + }, + { // Entry 18 + 0x1.b3333333333360p-1, + (int)0x1.92p7, + 0x1.b333333333336p200 + }, + { // Entry 19 + 0x1.cccccccccccdp-1, + (int)0x1.92p7, + 0x1.cccccccccccd0p200 + }, + { // Entry 20 + 0x1.e66666666666a0p-1, + (int)0x1.92p7, + 0x1.e66666666666ap200 + }, + { // Entry 21 + 0x1.p-1, + (int)0x1.94p7, + 0x1.0p201 + }, + { // Entry 22 + 0x1.p-1, + (int)0x1.f480p9, + 0x1.0p1000 + }, + { // Entry 23 + 0x1.199999999999a0p-1, + (int)0x1.f480p9, + 0x1.199999999999ap1000 + }, + { // Entry 24 + 0x1.33333333333340p-1, + (int)0x1.f480p9, + 0x1.3333333333334p1000 + }, + { // Entry 25 + 0x1.4ccccccccccce0p-1, + (int)0x1.f480p9, + 0x1.4cccccccccccep1000 + }, + { // Entry 26 + 0x1.66666666666680p-1, + (int)0x1.f480p9, + 0x1.6666666666668p1000 + }, + { // Entry 27 + 0x1.80000000000020p-1, + (int)0x1.f480p9, + 0x1.8000000000002p1000 + }, + { // Entry 28 + 0x1.999999999999c0p-1, + (int)0x1.f480p9, + 0x1.999999999999cp1000 + }, + { // Entry 29 + 0x1.b3333333333360p-1, + (int)0x1.f480p9, + 0x1.b333333333336p1000 + }, + { // Entry 30 + 0x1.cccccccccccdp-1, + (int)0x1.f480p9, + 0x1.cccccccccccd0p1000 + }, + { // Entry 31 + 0x1.e66666666666a0p-1, + (int)0x1.f480p9, + 0x1.e66666666666ap1000 + }, + { // Entry 32 + 0x1.p-1, + (int)0x1.f5p9, + 0x1.0p1001 + }, + { // Entry 33 + -0x1.p-1, + (int)0x1.98p6, + -0x1.0p101 + }, + { // Entry 34 + -0x1.e6666666666660p-1, + (int)0x1.94p6, + -0x1.e666666666666p100 + }, + { // Entry 35 + -0x1.ccccccccccccc0p-1, + (int)0x1.94p6, + -0x1.cccccccccccccp100 + }, + { // Entry 36 + -0x1.b3333333333320p-1, + (int)0x1.94p6, + -0x1.b333333333332p100 + }, + { // Entry 37 + -0x1.99999999999980p-1, + (int)0x1.94p6, + -0x1.9999999999998p100 + }, + { // Entry 38 + -0x1.7fffffffffffe0p-1, + (int)0x1.94p6, + -0x1.7fffffffffffep100 + }, + { // Entry 39 + -0x1.66666666666640p-1, + (int)0x1.94p6, + -0x1.6666666666664p100 + }, + { // Entry 40 + -0x1.4ccccccccccca0p-1, + (int)0x1.94p6, + -0x1.4cccccccccccap100 + }, + { // Entry 41 + -0x1.333333333333p-1, + (int)0x1.94p6, + -0x1.3333333333330p100 + }, + { // Entry 42 + -0x1.19999999999960p-1, + (int)0x1.94p6, + -0x1.1999999999996p100 + }, + { // Entry 43 + -0x1.p-1, + (int)0x1.94p6, + -0x1.0p100 + }, + { // Entry 44 + -0x1.p-1, + (int)0x1.94p7, + -0x1.0p201 + }, + { // Entry 45 + -0x1.e6666666666660p-1, + (int)0x1.92p7, + -0x1.e666666666666p200 + }, + { // Entry 46 + -0x1.ccccccccccccc0p-1, + (int)0x1.92p7, + -0x1.cccccccccccccp200 + }, + { // Entry 47 + -0x1.b3333333333320p-1, + (int)0x1.92p7, + -0x1.b333333333332p200 + }, + { // Entry 48 + -0x1.99999999999980p-1, + (int)0x1.92p7, + -0x1.9999999999998p200 + }, + { // Entry 49 + -0x1.7fffffffffffe0p-1, + (int)0x1.92p7, + -0x1.7fffffffffffep200 + }, + { // Entry 50 + -0x1.66666666666640p-1, + (int)0x1.92p7, + -0x1.6666666666664p200 + }, + { // Entry 51 + -0x1.4ccccccccccca0p-1, + (int)0x1.92p7, + -0x1.4cccccccccccap200 + }, + { // Entry 52 + -0x1.333333333333p-1, + (int)0x1.92p7, + -0x1.3333333333330p200 + }, + { // Entry 53 + -0x1.19999999999960p-1, + (int)0x1.92p7, + -0x1.1999999999996p200 + }, + { // Entry 54 + -0x1.p-1, + (int)0x1.92p7, + -0x1.0p200 + }, + { // Entry 55 + -0x1.p-1, + (int)0x1.f5p9, + -0x1.0p1001 + }, + { // Entry 56 + -0x1.e6666666666660p-1, + (int)0x1.f480p9, + -0x1.e666666666666p1000 + }, + { // Entry 57 + -0x1.ccccccccccccc0p-1, + (int)0x1.f480p9, + -0x1.cccccccccccccp1000 + }, + { // Entry 58 + -0x1.b3333333333320p-1, + (int)0x1.f480p9, + -0x1.b333333333332p1000 + }, + { // Entry 59 + -0x1.99999999999980p-1, + (int)0x1.f480p9, + -0x1.9999999999998p1000 + }, + { // Entry 60 + -0x1.7fffffffffffe0p-1, + (int)0x1.f480p9, + -0x1.7fffffffffffep1000 + }, + { // Entry 61 + -0x1.66666666666640p-1, + (int)0x1.f480p9, + -0x1.6666666666664p1000 + }, + { // Entry 62 + -0x1.4ccccccccccca0p-1, + (int)0x1.f480p9, + -0x1.4cccccccccccap1000 + }, + { // Entry 63 + -0x1.333333333333p-1, + (int)0x1.f480p9, + -0x1.3333333333330p1000 + }, + { // Entry 64 + -0x1.19999999999960p-1, + (int)0x1.f480p9, + -0x1.1999999999996p1000 + }, + { // Entry 65 + -0x1.p-1, + (int)0x1.f480p9, + -0x1.0p1000 + }, + { // Entry 66 + 0x1.p-1, + (int)0x1.98p5, + 0x1.0p50 + }, + { // Entry 67 + 0x1.199999999999a0p-1, + (int)0x1.98p5, + 0x1.199999999999ap50 + }, + { // Entry 68 + 0x1.33333333333340p-1, + (int)0x1.98p5, + 0x1.3333333333334p50 + }, + { // Entry 69 + 0x1.4ccccccccccce0p-1, + (int)0x1.98p5, + 0x1.4cccccccccccep50 + }, + { // Entry 70 + 0x1.66666666666680p-1, + (int)0x1.98p5, + 0x1.6666666666668p50 + }, + { // Entry 71 + 0x1.80000000000020p-1, + (int)0x1.98p5, + 0x1.8000000000002p50 + }, + { // Entry 72 + 0x1.999999999999c0p-1, + (int)0x1.98p5, + 0x1.999999999999cp50 + }, + { // Entry 73 + 0x1.b3333333333360p-1, + (int)0x1.98p5, + 0x1.b333333333336p50 + }, + { // Entry 74 + 0x1.cccccccccccdp-1, + (int)0x1.98p5, + 0x1.cccccccccccd0p50 + }, + { // Entry 75 + 0x1.e66666666666a0p-1, + (int)0x1.98p5, + 0x1.e66666666666ap50 + }, + { // Entry 76 + 0x1.p-1, + (int)0x1.a0p5, + 0x1.0p51 + }, + { // Entry 77 + 0x1.p-1, + (int)0x1.a0p5, + 0x1.0p51 + }, + { // Entry 78 + 0x1.199999999999a0p-1, + (int)0x1.a0p5, + 0x1.199999999999ap51 + }, + { // Entry 79 + 0x1.33333333333340p-1, + (int)0x1.a0p5, + 0x1.3333333333334p51 + }, + { // Entry 80 + 0x1.4ccccccccccce0p-1, + (int)0x1.a0p5, + 0x1.4cccccccccccep51 + }, + { // Entry 81 + 0x1.66666666666680p-1, + (int)0x1.a0p5, + 0x1.6666666666668p51 + }, + { // Entry 82 + 0x1.80000000000020p-1, + (int)0x1.a0p5, + 0x1.8000000000002p51 + }, + { // Entry 83 + 0x1.999999999999c0p-1, + (int)0x1.a0p5, + 0x1.999999999999cp51 + }, + { // Entry 84 + 0x1.b3333333333360p-1, + (int)0x1.a0p5, + 0x1.b333333333336p51 + }, + { // Entry 85 + 0x1.cccccccccccdp-1, + (int)0x1.a0p5, + 0x1.cccccccccccd0p51 + }, + { // Entry 86 + 0x1.e66666666666a0p-1, + (int)0x1.a0p5, + 0x1.e66666666666ap51 + }, + { // Entry 87 + 0x1.p-1, + (int)0x1.a8p5, + 0x1.0p52 + }, + { // Entry 88 + 0x1.p-1, + (int)0x1.a8p5, + 0x1.0p52 + }, + { // Entry 89 + 0x1.199999999999a0p-1, + (int)0x1.a8p5, + 0x1.199999999999ap52 + }, + { // Entry 90 + 0x1.33333333333340p-1, + (int)0x1.a8p5, + 0x1.3333333333334p52 + }, + { // Entry 91 + 0x1.4ccccccccccce0p-1, + (int)0x1.a8p5, + 0x1.4cccccccccccep52 + }, + { // Entry 92 + 0x1.66666666666680p-1, + (int)0x1.a8p5, + 0x1.6666666666668p52 + }, + { // Entry 93 + 0x1.80000000000020p-1, + (int)0x1.a8p5, + 0x1.8000000000002p52 + }, + { // Entry 94 + 0x1.999999999999c0p-1, + (int)0x1.a8p5, + 0x1.999999999999cp52 + }, + { // Entry 95 + 0x1.b3333333333360p-1, + (int)0x1.a8p5, + 0x1.b333333333336p52 + }, + { // Entry 96 + 0x1.cccccccccccdp-1, + (int)0x1.a8p5, + 0x1.cccccccccccd0p52 + }, + { // Entry 97 + 0x1.e66666666666a0p-1, + (int)0x1.a8p5, + 0x1.e66666666666ap52 + }, + { // Entry 98 + 0x1.p-1, + (int)0x1.b0p5, + 0x1.0p53 + }, + { // Entry 99 + 0x1.p-1, + (int)0x1.b0p5, + 0x1.0p53 + }, + { // Entry 100 + 0x1.199999999999a0p-1, + (int)0x1.b0p5, + 0x1.199999999999ap53 + }, + { // Entry 101 + 0x1.33333333333340p-1, + (int)0x1.b0p5, + 0x1.3333333333334p53 + }, + { // Entry 102 + 0x1.4ccccccccccce0p-1, + (int)0x1.b0p5, + 0x1.4cccccccccccep53 + }, + { // Entry 103 + 0x1.66666666666680p-1, + (int)0x1.b0p5, + 0x1.6666666666668p53 + }, + { // Entry 104 + 0x1.80000000000020p-1, + (int)0x1.b0p5, + 0x1.8000000000002p53 + }, + { // Entry 105 + 0x1.999999999999c0p-1, + (int)0x1.b0p5, + 0x1.999999999999cp53 + }, + { // Entry 106 + 0x1.b3333333333360p-1, + (int)0x1.b0p5, + 0x1.b333333333336p53 + }, + { // Entry 107 + 0x1.cccccccccccdp-1, + (int)0x1.b0p5, + 0x1.cccccccccccd0p53 + }, + { // Entry 108 + 0x1.e66666666666a0p-1, + (int)0x1.b0p5, + 0x1.e66666666666ap53 + }, + { // Entry 109 + 0x1.p-1, + (int)0x1.b8p5, + 0x1.0p54 + }, + { // Entry 110 + 0x1.p-1, + (int)-0x1.0040p10, + 0x1.0p-1026 + }, + { // Entry 111 + 0x1.d3333333333340p-1, + (int)-0x1.ff80p9, + 0x1.d333333333334p-1024 + }, + { // Entry 112 + 0x1.b3333333333340p-1, + (int)-0x1.ffp9, + 0x1.b333333333334p-1023 + }, + { // Entry 113 + 0x1.3e666666666670p-1, + (int)-0x1.fe80p9, + 0x1.3e66666666667p-1022 + }, + { // Entry 114 + 0x1.a3333333333340p-1, + (int)-0x1.fe80p9, + 0x1.a333333333334p-1022 + }, + { // Entry 115 + 0x1.04p-1, + (int)-0x1.fep9, + 0x1.040p-1021 + }, + { // Entry 116 + 0x1.36666666666660p-1, + (int)-0x1.fep9, + 0x1.3666666666666p-1021 + }, + { // Entry 117 + 0x1.68ccccccccccc0p-1, + (int)-0x1.fep9, + 0x1.68cccccccccccp-1021 + }, + { // Entry 118 + 0x1.9b333333333320p-1, + (int)-0x1.fep9, + 0x1.9b33333333332p-1021 + }, + { // Entry 119 + 0x1.cd999999999980p-1, + (int)-0x1.fep9, + 0x1.cd99999999998p-1021 + }, + { // Entry 120 + 0x1.ffffffffffffe0p-1, + (int)-0x1.fep9, + 0x1.ffffffffffffep-1021 + }, + { // Entry 121 + 0x1.fffffffffffff0p-1, + (int)0x1.98p5, + 0x1.fffffffffffffp50 + }, + { // Entry 122 + 0x1.p-1, + (int)0x1.a0p5, + 0x1.0p51 + }, + { // Entry 123 + 0x1.00000000000010p-1, + (int)0x1.a0p5, + 0x1.0000000000001p51 + }, + { // Entry 124 + 0x1.fffffffffffff0p-1, + (int)0x1.a0p5, + 0x1.fffffffffffffp51 + }, + { // Entry 125 + 0x1.p-1, + (int)0x1.a8p5, + 0x1.0p52 + }, + { // Entry 126 + 0x1.00000000000010p-1, + (int)0x1.a8p5, + 0x1.0000000000001p52 + }, + { // Entry 127 + 0x1.fffffffffffff0p-1, + (int)0x1.a8p5, + 0x1.fffffffffffffp52 + }, + { // Entry 128 + 0x1.p-1, + (int)0x1.b0p5, + 0x1.0p53 + }, + { // Entry 129 + 0x1.00000000000010p-1, + (int)0x1.b0p5, + 0x1.0000000000001p53 + }, + { // Entry 130 + -0x1.00000000000010p-1, + (int)0x1.a0p5, + -0x1.0000000000001p51 + }, + { // Entry 131 + -0x1.p-1, + (int)0x1.a0p5, + -0x1.0p51 + }, + { // Entry 132 + -0x1.fffffffffffff0p-1, + (int)0x1.98p5, + -0x1.fffffffffffffp50 + }, + { // Entry 133 + -0x1.00000000000010p-1, + (int)0x1.a8p5, + -0x1.0000000000001p52 + }, + { // Entry 134 + -0x1.p-1, + (int)0x1.a8p5, + -0x1.0p52 + }, + { // Entry 135 + -0x1.fffffffffffff0p-1, + (int)0x1.a0p5, + -0x1.fffffffffffffp51 + }, + { // Entry 136 + -0x1.00000000000010p-1, + (int)0x1.b0p5, + -0x1.0000000000001p53 + }, + { // Entry 137 + -0x1.p-1, + (int)0x1.b0p5, + -0x1.0p53 + }, + { // Entry 138 + -0x1.fffffffffffff0p-1, + (int)0x1.a8p5, + -0x1.fffffffffffffp52 + }, + { // Entry 139 + 0x1.fffffffffffff0p-1, + (int)0x1.p10, + 0x1.fffffffffffffp1023 + }, + { // Entry 140 + -0x1.fffffffffffff0p-1, + (int)0x1.p10, + -0x1.fffffffffffffp1023 + }, + { // Entry 141 + 0x1.fffffffffffff0p-1, + (int)-0x1.80p2, + 0x1.fffffffffffffp-7 + }, + { // Entry 142 + 0x1.p-1, + (int)-0x1.40p2, + 0x1.0p-6 + }, + { // Entry 143 + 0x1.00000000000010p-1, + (int)-0x1.40p2, + 0x1.0000000000001p-6 + }, + { // Entry 144 + 0x1.fffffffffffff0p-1, + (int)-0x1.40p2, + 0x1.fffffffffffffp-6 + }, + { // Entry 145 + 0x1.p-1, + (int)-0x1.p2, + 0x1.0p-5 + }, + { // Entry 146 + 0x1.00000000000010p-1, + (int)-0x1.p2, + 0x1.0000000000001p-5 + }, + { // Entry 147 + 0x1.fffffffffffff0p-1, + (int)-0x1.p2, + 0x1.fffffffffffffp-5 + }, + { // Entry 148 + 0x1.p-1, + (int)-0x1.80p1, + 0x1.0p-4 + }, + { // Entry 149 + 0x1.00000000000010p-1, + (int)-0x1.80p1, + 0x1.0000000000001p-4 + }, + { // Entry 150 + 0x1.fffffffffffff0p-1, + (int)-0x1.80p1, + 0x1.fffffffffffffp-4 + }, + { // Entry 151 + 0x1.p-1, + (int)-0x1.p1, + 0x1.0p-3 + }, + { // Entry 152 + 0x1.00000000000010p-1, + (int)-0x1.p1, + 0x1.0000000000001p-3 + }, + { // Entry 153 + 0x1.fffffffffffff0p-1, + (int)-0x1.p1, + 0x1.fffffffffffffp-3 + }, + { // Entry 154 + 0x1.p-1, + (int)-0x1.p0, + 0x1.0p-2 + }, + { // Entry 155 + 0x1.00000000000010p-1, + (int)-0x1.p0, + 0x1.0000000000001p-2 + }, + { // Entry 156 + 0x1.fffffffffffff0p-1, + (int)-0x1.p0, + 0x1.fffffffffffffp-2 + }, + { // Entry 157 + 0x1.p-1, + (int)0.0, + 0x1.0p-1 + }, + { // Entry 158 + 0x1.00000000000010p-1, + (int)0.0, + 0x1.0000000000001p-1 + }, + { // Entry 159 + -0x1.p-1, + (int)-0x1.0c40p10, + -0x1.0p-1074 + }, + { // Entry 160 + -0.0, + (int)0.0, + -0.0 + }, + { // Entry 161 + 0x1.p-1, + (int)-0x1.0c40p10, + 0x1.0p-1074 + }, + { // Entry 162 + 0x1.fffffffffffff0p-1, + (int)0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 163 + 0x1.p-1, + (int)0x1.p0, + 0x1.0p0 + }, + { // Entry 164 + 0x1.00000000000010p-1, + (int)0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 165 + 0x1.fffffffffffff0p-1, + (int)0x1.p0, + 0x1.fffffffffffffp0 + }, + { // Entry 166 + 0x1.p-1, + (int)0x1.p1, + 0x1.0p1 + }, + { // Entry 167 + 0x1.00000000000010p-1, + (int)0x1.p1, + 0x1.0000000000001p1 + }, + { // Entry 168 + 0x1.fffffffffffff0p-1, + (int)0x1.p1, + 0x1.fffffffffffffp1 + }, + { // Entry 169 + 0x1.p-1, + (int)0x1.80p1, + 0x1.0p2 + }, + { // Entry 170 + 0x1.00000000000010p-1, + (int)0x1.80p1, + 0x1.0000000000001p2 + }, + { // Entry 171 + 0x1.fffffffffffff0p-1, + (int)0x1.80p1, + 0x1.fffffffffffffp2 + }, + { // Entry 172 + 0x1.p-1, + (int)0x1.p2, + 0x1.0p3 + }, + { // Entry 173 + 0x1.00000000000010p-1, + (int)0x1.p2, + 0x1.0000000000001p3 + }, + { // Entry 174 + 0x1.fffffffffffff0p-1, + (int)0x1.p2, + 0x1.fffffffffffffp3 + }, + { // Entry 175 + 0x1.p-1, + (int)0x1.40p2, + 0x1.0p4 + }, + { // Entry 176 + 0x1.00000000000010p-1, + (int)0x1.40p2, + 0x1.0000000000001p4 + }, + { // Entry 177 + 0x1.fffffffffffff0p-1, + (int)0x1.40p2, + 0x1.fffffffffffffp4 + }, + { // Entry 178 + 0x1.p-1, + (int)0x1.80p2, + 0x1.0p5 + }, + { // Entry 179 + 0x1.00000000000010p-1, + (int)0x1.80p2, + 0x1.0000000000001p5 + }, + { // Entry 180 + 0x1.fffffffffffff0p-1, + (int)0x1.80p2, + 0x1.fffffffffffffp5 + }, + { // Entry 181 + 0x1.p-1, + (int)0x1.c0p2, + 0x1.0p6 + }, + { // Entry 182 + 0x1.00000000000010p-1, + (int)0x1.c0p2, + 0x1.0000000000001p6 + }, + { // Entry 183 + 0x1.fffffffffffff0p-1, + (int)0x1.c0p2, + 0x1.fffffffffffffp6 + }, + { // Entry 184 + 0x1.p-1, + (int)0x1.p3, + 0x1.0p7 + }, + { // Entry 185 + 0x1.00000000000010p-1, + (int)0x1.p3, + 0x1.0000000000001p7 + }, + { // Entry 186 + HUGE_VAL, + (int)0, + HUGE_VAL + }, + { // Entry 187 + -HUGE_VAL, + (int)0, + -HUGE_VAL + }, + { // Entry 188 + 0.0, + (int)0.0, + 0.0 + }, + { // Entry 189 + -0.0, + (int)0.0, + -0.0 + }, + { // Entry 190 + 0x1.fffffffffffff0p-1, + (int)0x1.p10, + 0x1.fffffffffffffp1023 + }, + { // Entry 191 + -0x1.fffffffffffff0p-1, + (int)0x1.p10, + -0x1.fffffffffffffp1023 + }, + { // Entry 192 + 0x1.ffffffffffffe0p-1, + (int)0x1.p10, + 0x1.ffffffffffffep1023 + }, + { // Entry 193 + -0x1.ffffffffffffe0p-1, + (int)0x1.p10, + -0x1.ffffffffffffep1023 + }, + { // Entry 194 + 0x1.921fb54442d180p-1, + (int)0x1.p1, + 0x1.921fb54442d18p1 + }, + { // Entry 195 + -0x1.921fb54442d180p-1, + (int)0x1.p1, + -0x1.921fb54442d18p1 + }, + { // Entry 196 + 0x1.921fb54442d180p-1, + (int)0x1.p0, + 0x1.921fb54442d18p0 + }, + { // Entry 197 + -0x1.921fb54442d180p-1, + (int)0x1.p0, + -0x1.921fb54442d18p0 + }, + { // Entry 198 + 0x1.00000000000010p-1, + (int)0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 199 + -0x1.00000000000010p-1, + (int)0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 200 + 0x1.p-1, + (int)0x1.p0, + 0x1.0p0 + }, + { // Entry 201 + -0x1.p-1, + (int)0x1.p0, + -0x1.0p0 + }, + { // Entry 202 + 0x1.fffffffffffff0p-1, + (int)0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 203 + -0x1.fffffffffffff0p-1, + (int)0.0, + -0x1.fffffffffffffp-1 + }, + { // Entry 204 + 0x1.921fb54442d180p-1, + (int)0.0, + 0x1.921fb54442d18p-1 + }, + { // Entry 205 + -0x1.921fb54442d180p-1, + (int)0.0, + -0x1.921fb54442d18p-1 + }, + { // Entry 206 + 0x1.00000000000010p-1, + (int)-0x1.fe80p9, + 0x1.0000000000001p-1022 + }, + { // Entry 207 + -0x1.00000000000010p-1, + (int)-0x1.fe80p9, + -0x1.0000000000001p-1022 + }, + { // Entry 208 + 0x1.p-1, + (int)-0x1.fe80p9, + 0x1.0p-1022 + }, + { // Entry 209 + -0x1.p-1, + (int)-0x1.fe80p9, + -0x1.0p-1022 + }, + { // Entry 210 + 0x1.ffffffffffffe0p-1, + (int)-0x1.ffp9, + 0x1.ffffffffffffep-1023 + }, + { // Entry 211 + -0x1.ffffffffffffe0p-1, + (int)-0x1.ffp9, + -0x1.ffffffffffffep-1023 + }, + { // Entry 212 + 0x1.ffffffffffffc0p-1, + (int)-0x1.ffp9, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 213 + -0x1.ffffffffffffc0p-1, + (int)-0x1.ffp9, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 214 + 0x1.p-1, + (int)-0x1.0cp10, + 0x1.0p-1073 + }, + { // Entry 215 + -0x1.p-1, + (int)-0x1.0cp10, + -0x1.0p-1073 + }, + { // Entry 216 + 0x1.p-1, + (int)-0x1.0c40p10, + 0x1.0p-1074 + }, + { // Entry 217 + -0x1.p-1, + (int)-0x1.0c40p10, + -0x1.0p-1074 + } +}; diff --git a/tests/math_data/frexpf_intel_data.h b/tests/math_data/frexpf_intel_data.h new file mode 100644 index 000000000..dd6ba7d06 --- /dev/null +++ b/tests/math_data/frexpf_intel_data.h @@ -0,0 +1,888 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_int_1_t g_frexpf_intel_data[] = { + { // Entry 0 + 0x1.p-1, + (int)0x1.94p6, + 0x1.p100 + }, + { // Entry 1 + 0x1.19999ap-1, + (int)0x1.94p6, + 0x1.19999ap100 + }, + { // Entry 2 + 0x1.333334p-1, + (int)0x1.94p6, + 0x1.333334p100 + }, + { // Entry 3 + 0x1.4ccccep-1, + (int)0x1.94p6, + 0x1.4ccccep100 + }, + { // Entry 4 + 0x1.666668p-1, + (int)0x1.94p6, + 0x1.666668p100 + }, + { // Entry 5 + 0x1.800002p-1, + (int)0x1.94p6, + 0x1.800002p100 + }, + { // Entry 6 + 0x1.99999cp-1, + (int)0x1.94p6, + 0x1.99999cp100 + }, + { // Entry 7 + 0x1.b33336p-1, + (int)0x1.94p6, + 0x1.b33336p100 + }, + { // Entry 8 + 0x1.ccccd0p-1, + (int)0x1.94p6, + 0x1.ccccd0p100 + }, + { // Entry 9 + 0x1.e6666ap-1, + (int)0x1.94p6, + 0x1.e6666ap100 + }, + { // Entry 10 + 0x1.p-1, + (int)0x1.98p6, + 0x1.p101 + }, + { // Entry 11 + -0x1.p-1, + (int)0x1.98p6, + -0x1.p101 + }, + { // Entry 12 + -0x1.e66666p-1, + (int)0x1.94p6, + -0x1.e66666p100 + }, + { // Entry 13 + -0x1.ccccccp-1, + (int)0x1.94p6, + -0x1.ccccccp100 + }, + { // Entry 14 + -0x1.b33332p-1, + (int)0x1.94p6, + -0x1.b33332p100 + }, + { // Entry 15 + -0x1.999998p-1, + (int)0x1.94p6, + -0x1.999998p100 + }, + { // Entry 16 + -0x1.7ffffep-1, + (int)0x1.94p6, + -0x1.7ffffep100 + }, + { // Entry 17 + -0x1.666664p-1, + (int)0x1.94p6, + -0x1.666664p100 + }, + { // Entry 18 + -0x1.4ccccap-1, + (int)0x1.94p6, + -0x1.4ccccap100 + }, + { // Entry 19 + -0x1.333330p-1, + (int)0x1.94p6, + -0x1.333330p100 + }, + { // Entry 20 + -0x1.199996p-1, + (int)0x1.94p6, + -0x1.199996p100 + }, + { // Entry 21 + -0x1.p-1, + (int)0x1.94p6, + -0x1.p100 + }, + { // Entry 22 + 0x1.p-1, + (int)0x1.60p4, + 0x1.p21 + }, + { // Entry 23 + 0x1.19999ap-1, + (int)0x1.60p4, + 0x1.19999ap21 + }, + { // Entry 24 + 0x1.333334p-1, + (int)0x1.60p4, + 0x1.333334p21 + }, + { // Entry 25 + 0x1.4ccccep-1, + (int)0x1.60p4, + 0x1.4ccccep21 + }, + { // Entry 26 + 0x1.666668p-1, + (int)0x1.60p4, + 0x1.666668p21 + }, + { // Entry 27 + 0x1.800002p-1, + (int)0x1.60p4, + 0x1.800002p21 + }, + { // Entry 28 + 0x1.99999cp-1, + (int)0x1.60p4, + 0x1.99999cp21 + }, + { // Entry 29 + 0x1.b33336p-1, + (int)0x1.60p4, + 0x1.b33336p21 + }, + { // Entry 30 + 0x1.ccccd0p-1, + (int)0x1.60p4, + 0x1.ccccd0p21 + }, + { // Entry 31 + 0x1.e6666ap-1, + (int)0x1.60p4, + 0x1.e6666ap21 + }, + { // Entry 32 + 0x1.p-1, + (int)0x1.70p4, + 0x1.p22 + }, + { // Entry 33 + 0x1.p-1, + (int)0x1.70p4, + 0x1.p22 + }, + { // Entry 34 + 0x1.19999ap-1, + (int)0x1.70p4, + 0x1.19999ap22 + }, + { // Entry 35 + 0x1.333334p-1, + (int)0x1.70p4, + 0x1.333334p22 + }, + { // Entry 36 + 0x1.4ccccep-1, + (int)0x1.70p4, + 0x1.4ccccep22 + }, + { // Entry 37 + 0x1.666668p-1, + (int)0x1.70p4, + 0x1.666668p22 + }, + { // Entry 38 + 0x1.800002p-1, + (int)0x1.70p4, + 0x1.800002p22 + }, + { // Entry 39 + 0x1.99999cp-1, + (int)0x1.70p4, + 0x1.99999cp22 + }, + { // Entry 40 + 0x1.b33336p-1, + (int)0x1.70p4, + 0x1.b33336p22 + }, + { // Entry 41 + 0x1.ccccd0p-1, + (int)0x1.70p4, + 0x1.ccccd0p22 + }, + { // Entry 42 + 0x1.e6666ap-1, + (int)0x1.70p4, + 0x1.e6666ap22 + }, + { // Entry 43 + 0x1.p-1, + (int)0x1.80p4, + 0x1.p23 + }, + { // Entry 44 + 0x1.p-1, + (int)0x1.80p4, + 0x1.p23 + }, + { // Entry 45 + 0x1.19999ap-1, + (int)0x1.80p4, + 0x1.19999ap23 + }, + { // Entry 46 + 0x1.333334p-1, + (int)0x1.80p4, + 0x1.333334p23 + }, + { // Entry 47 + 0x1.4ccccep-1, + (int)0x1.80p4, + 0x1.4ccccep23 + }, + { // Entry 48 + 0x1.666668p-1, + (int)0x1.80p4, + 0x1.666668p23 + }, + { // Entry 49 + 0x1.800002p-1, + (int)0x1.80p4, + 0x1.800002p23 + }, + { // Entry 50 + 0x1.99999cp-1, + (int)0x1.80p4, + 0x1.99999cp23 + }, + { // Entry 51 + 0x1.b33336p-1, + (int)0x1.80p4, + 0x1.b33336p23 + }, + { // Entry 52 + 0x1.ccccd0p-1, + (int)0x1.80p4, + 0x1.ccccd0p23 + }, + { // Entry 53 + 0x1.e6666ap-1, + (int)0x1.80p4, + 0x1.e6666ap23 + }, + { // Entry 54 + 0x1.p-1, + (int)0x1.90p4, + 0x1.p24 + }, + { // Entry 55 + 0x1.p-1, + (int)0x1.90p4, + 0x1.p24 + }, + { // Entry 56 + 0x1.19999ap-1, + (int)0x1.90p4, + 0x1.19999ap24 + }, + { // Entry 57 + 0x1.333334p-1, + (int)0x1.90p4, + 0x1.333334p24 + }, + { // Entry 58 + 0x1.4ccccep-1, + (int)0x1.90p4, + 0x1.4ccccep24 + }, + { // Entry 59 + 0x1.666668p-1, + (int)0x1.90p4, + 0x1.666668p24 + }, + { // Entry 60 + 0x1.800002p-1, + (int)0x1.90p4, + 0x1.800002p24 + }, + { // Entry 61 + 0x1.99999cp-1, + (int)0x1.90p4, + 0x1.99999cp24 + }, + { // Entry 62 + 0x1.b33336p-1, + (int)0x1.90p4, + 0x1.b33336p24 + }, + { // Entry 63 + 0x1.ccccd0p-1, + (int)0x1.90p4, + 0x1.ccccd0p24 + }, + { // Entry 64 + 0x1.e6666ap-1, + (int)0x1.90p4, + 0x1.e6666ap24 + }, + { // Entry 65 + 0x1.p-1, + (int)0x1.a0p4, + 0x1.p25 + }, + { // Entry 66 + 0x1.p-1, + (int)-0x1.02p7, + 0x1.p-130 + }, + { // Entry 67 + 0x1.d33330p-1, + (int)-0x1.fcp6, + 0x1.d33330p-128 + }, + { // Entry 68 + 0x1.b33330p-1, + (int)-0x1.f8p6, + 0x1.b33330p-127 + }, + { // Entry 69 + 0x1.3e6664p-1, + (int)-0x1.f4p6, + 0x1.3e6664p-126 + }, + { // Entry 70 + 0x1.a33330p-1, + (int)-0x1.f4p6, + 0x1.a33330p-126 + }, + { // Entry 71 + 0x1.03fffep-1, + (int)-0x1.f0p6, + 0x1.03fffep-125 + }, + { // Entry 72 + 0x1.366664p-1, + (int)-0x1.f0p6, + 0x1.366664p-125 + }, + { // Entry 73 + 0x1.68cccap-1, + (int)-0x1.f0p6, + 0x1.68cccap-125 + }, + { // Entry 74 + 0x1.9b3330p-1, + (int)-0x1.f0p6, + 0x1.9b3330p-125 + }, + { // Entry 75 + 0x1.cd9996p-1, + (int)-0x1.f0p6, + 0x1.cd9996p-125 + }, + { // Entry 76 + 0x1.fffffcp-1, + (int)-0x1.f0p6, + 0x1.fffffcp-125 + }, + { // Entry 77 + 0x1.fffffep-1, + (int)0x1.60p4, + 0x1.fffffep21 + }, + { // Entry 78 + 0x1.p-1, + (int)0x1.70p4, + 0x1.p22 + }, + { // Entry 79 + 0x1.000002p-1, + (int)0x1.70p4, + 0x1.000002p22 + }, + { // Entry 80 + 0x1.fffffep-1, + (int)0x1.70p4, + 0x1.fffffep22 + }, + { // Entry 81 + 0x1.p-1, + (int)0x1.80p4, + 0x1.p23 + }, + { // Entry 82 + 0x1.000002p-1, + (int)0x1.80p4, + 0x1.000002p23 + }, + { // Entry 83 + 0x1.fffffep-1, + (int)0x1.80p4, + 0x1.fffffep23 + }, + { // Entry 84 + 0x1.p-1, + (int)0x1.90p4, + 0x1.p24 + }, + { // Entry 85 + 0x1.000002p-1, + (int)0x1.90p4, + 0x1.000002p24 + }, + { // Entry 86 + -0x1.000002p-1, + (int)0x1.70p4, + -0x1.000002p22 + }, + { // Entry 87 + -0x1.p-1, + (int)0x1.70p4, + -0x1.p22 + }, + { // Entry 88 + -0x1.fffffep-1, + (int)0x1.60p4, + -0x1.fffffep21 + }, + { // Entry 89 + -0x1.000002p-1, + (int)0x1.80p4, + -0x1.000002p23 + }, + { // Entry 90 + -0x1.p-1, + (int)0x1.80p4, + -0x1.p23 + }, + { // Entry 91 + -0x1.fffffep-1, + (int)0x1.70p4, + -0x1.fffffep22 + }, + { // Entry 92 + -0x1.000002p-1, + (int)0x1.90p4, + -0x1.000002p24 + }, + { // Entry 93 + -0x1.p-1, + (int)0x1.90p4, + -0x1.p24 + }, + { // Entry 94 + -0x1.fffffep-1, + (int)0x1.80p4, + -0x1.fffffep23 + }, + { // Entry 95 + 0x1.fffffep-1, + (int)0x1.p7, + 0x1.fffffep127 + }, + { // Entry 96 + -0x1.fffffep-1, + (int)0x1.p7, + -0x1.fffffep127 + }, + { // Entry 97 + 0x1.fffffep-1, + (int)-0x1.80p2, + 0x1.fffffep-7 + }, + { // Entry 98 + 0x1.p-1, + (int)-0x1.40p2, + 0x1.p-6 + }, + { // Entry 99 + 0x1.000002p-1, + (int)-0x1.40p2, + 0x1.000002p-6 + }, + { // Entry 100 + 0x1.fffffep-1, + (int)-0x1.40p2, + 0x1.fffffep-6 + }, + { // Entry 101 + 0x1.p-1, + (int)-0x1.p2, + 0x1.p-5 + }, + { // Entry 102 + 0x1.000002p-1, + (int)-0x1.p2, + 0x1.000002p-5 + }, + { // Entry 103 + 0x1.fffffep-1, + (int)-0x1.p2, + 0x1.fffffep-5 + }, + { // Entry 104 + 0x1.p-1, + (int)-0x1.80p1, + 0x1.p-4 + }, + { // Entry 105 + 0x1.000002p-1, + (int)-0x1.80p1, + 0x1.000002p-4 + }, + { // Entry 106 + 0x1.fffffep-1, + (int)-0x1.80p1, + 0x1.fffffep-4 + }, + { // Entry 107 + 0x1.p-1, + (int)-0x1.p1, + 0x1.p-3 + }, + { // Entry 108 + 0x1.000002p-1, + (int)-0x1.p1, + 0x1.000002p-3 + }, + { // Entry 109 + 0x1.fffffep-1, + (int)-0x1.p1, + 0x1.fffffep-3 + }, + { // Entry 110 + 0x1.p-1, + (int)-0x1.p0, + 0x1.p-2 + }, + { // Entry 111 + 0x1.000002p-1, + (int)-0x1.p0, + 0x1.000002p-2 + }, + { // Entry 112 + 0x1.fffffep-1, + (int)-0x1.p0, + 0x1.fffffep-2 + }, + { // Entry 113 + 0x1.p-1, + (int)0.0, + 0x1.p-1 + }, + { // Entry 114 + 0x1.000002p-1, + (int)0.0, + 0x1.000002p-1 + }, + { // Entry 115 + -0x1.p-1, + (int)-0x1.28p7, + -0x1.p-149 + }, + { // Entry 116 + 0.0, + (int)0.0, + 0.0 + }, + { // Entry 117 + 0x1.p-1, + (int)-0x1.28p7, + 0x1.p-149 + }, + { // Entry 118 + 0x1.fffffep-1, + (int)0.0, + 0x1.fffffep-1 + }, + { // Entry 119 + 0x1.p-1, + (int)0x1.p0, + 0x1.p0 + }, + { // Entry 120 + 0x1.000002p-1, + (int)0x1.p0, + 0x1.000002p0 + }, + { // Entry 121 + 0x1.fffffep-1, + (int)0x1.p0, + 0x1.fffffep0 + }, + { // Entry 122 + 0x1.p-1, + (int)0x1.p1, + 0x1.p1 + }, + { // Entry 123 + 0x1.000002p-1, + (int)0x1.p1, + 0x1.000002p1 + }, + { // Entry 124 + 0x1.fffffep-1, + (int)0x1.p1, + 0x1.fffffep1 + }, + { // Entry 125 + 0x1.p-1, + (int)0x1.80p1, + 0x1.p2 + }, + { // Entry 126 + 0x1.000002p-1, + (int)0x1.80p1, + 0x1.000002p2 + }, + { // Entry 127 + 0x1.fffffep-1, + (int)0x1.80p1, + 0x1.fffffep2 + }, + { // Entry 128 + 0x1.p-1, + (int)0x1.p2, + 0x1.p3 + }, + { // Entry 129 + 0x1.000002p-1, + (int)0x1.p2, + 0x1.000002p3 + }, + { // Entry 130 + 0x1.fffffep-1, + (int)0x1.p2, + 0x1.fffffep3 + }, + { // Entry 131 + 0x1.p-1, + (int)0x1.40p2, + 0x1.p4 + }, + { // Entry 132 + 0x1.000002p-1, + (int)0x1.40p2, + 0x1.000002p4 + }, + { // Entry 133 + 0x1.fffffep-1, + (int)0x1.40p2, + 0x1.fffffep4 + }, + { // Entry 134 + 0x1.p-1, + (int)0x1.80p2, + 0x1.p5 + }, + { // Entry 135 + 0x1.000002p-1, + (int)0x1.80p2, + 0x1.000002p5 + }, + { // Entry 136 + 0x1.fffffep-1, + (int)0x1.80p2, + 0x1.fffffep5 + }, + { // Entry 137 + 0x1.p-1, + (int)0x1.c0p2, + 0x1.p6 + }, + { // Entry 138 + 0x1.000002p-1, + (int)0x1.c0p2, + 0x1.000002p6 + }, + { // Entry 139 + 0x1.fffffep-1, + (int)0x1.c0p2, + 0x1.fffffep6 + }, + { // Entry 140 + 0x1.p-1, + (int)0x1.p3, + 0x1.p7 + }, + { // Entry 141 + 0x1.000002p-1, + (int)0x1.p3, + 0x1.000002p7 + }, + { // Entry 142 + HUGE_VALF, + (int)0, + HUGE_VALF + }, + { // Entry 143 + -HUGE_VALF, + (int)0, + -HUGE_VALF + }, + { // Entry 144 + 0.0, + (int)0.0, + 0.0f + }, + { // Entry 145 + -0.0, + (int)0.0, + -0.0f + }, + { // Entry 146 + 0x1.fffffep-1, + (int)0x1.p7, + 0x1.fffffep127 + }, + { // Entry 147 + -0x1.fffffep-1, + (int)0x1.p7, + -0x1.fffffep127 + }, + { // Entry 148 + 0x1.fffffcp-1, + (int)0x1.p7, + 0x1.fffffcp127 + }, + { // Entry 149 + -0x1.fffffcp-1, + (int)0x1.p7, + -0x1.fffffcp127 + }, + { // Entry 150 + 0x1.921fb6p-1, + (int)0x1.p1, + 0x1.921fb6p1 + }, + { // Entry 151 + -0x1.921fb6p-1, + (int)0x1.p1, + -0x1.921fb6p1 + }, + { // Entry 152 + 0x1.921fb6p-1, + (int)0x1.p0, + 0x1.921fb6p0 + }, + { // Entry 153 + -0x1.921fb6p-1, + (int)0x1.p0, + -0x1.921fb6p0 + }, + { // Entry 154 + 0x1.000002p-1, + (int)0x1.p0, + 0x1.000002p0 + }, + { // Entry 155 + -0x1.000002p-1, + (int)0x1.p0, + -0x1.000002p0 + }, + { // Entry 156 + 0x1.p-1, + (int)0x1.p0, + 0x1.p0 + }, + { // Entry 157 + -0x1.p-1, + (int)0x1.p0, + -0x1.p0 + }, + { // Entry 158 + 0x1.fffffep-1, + (int)0.0, + 0x1.fffffep-1 + }, + { // Entry 159 + -0x1.fffffep-1, + (int)0.0, + -0x1.fffffep-1 + }, + { // Entry 160 + 0x1.921fb6p-1, + (int)0.0, + 0x1.921fb6p-1 + }, + { // Entry 161 + -0x1.921fb6p-1, + (int)0.0, + -0x1.921fb6p-1 + }, + { // Entry 162 + 0x1.000002p-1, + (int)-0x1.f4p6, + 0x1.000002p-126 + }, + { // Entry 163 + -0x1.000002p-1, + (int)-0x1.f4p6, + -0x1.000002p-126 + }, + { // Entry 164 + 0x1.p-1, + (int)-0x1.f4p6, + 0x1.p-126 + }, + { // Entry 165 + -0x1.p-1, + (int)-0x1.f4p6, + -0x1.p-126 + }, + { // Entry 166 + 0x1.fffffcp-1, + (int)-0x1.f8p6, + 0x1.fffffcp-127 + }, + { // Entry 167 + -0x1.fffffcp-1, + (int)-0x1.f8p6, + -0x1.fffffcp-127 + }, + { // Entry 168 + 0x1.fffff8p-1, + (int)-0x1.f8p6, + 0x1.fffff8p-127 + }, + { // Entry 169 + -0x1.fffff8p-1, + (int)-0x1.f8p6, + -0x1.fffff8p-127 + }, + { // Entry 170 + 0x1.p-1, + (int)-0x1.26p7, + 0x1.p-148 + }, + { // Entry 171 + -0x1.p-1, + (int)-0x1.26p7, + -0x1.p-148 + }, + { // Entry 172 + 0x1.p-1, + (int)-0x1.28p7, + 0x1.p-149 + }, + { // Entry 173 + -0x1.p-1, + (int)-0x1.28p7, + -0x1.p-149 + } +}; diff --git a/tests/math_data/hypot_intel_data.h b/tests/math_data/hypot_intel_data.h new file mode 100644 index 000000000..41bfddefc --- /dev/null +++ b/tests/math_data/hypot_intel_data.h @@ -0,0 +1,2788 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_hypot_intel_data[] = { + { // Entry 0 + 0x1.74334f2872bf324a8b6c0ffaf2f4ee3dp0, + -0x1.0b2502b3f7656p0, + 0x1.032a74c8e2bbdp0 + }, + { // Entry 1 + 0x1.21c9123e6cbbf812953910371e275dc7p3, + -0x1.21c9107b0e488p3, + 0x1.ff77fffffffffp-9 + }, + { // Entry 2 + 0x1.ad09d0c85a9b738fbeb590492c45108fp-21, + -0x1.3db5af72d9074p-21, + 0x1.2054976e47184p-21 + }, + { // Entry 3 + 0x1.6a1f7b584e052800e5d5eb2c842defa6p-1, + -0x1.47200db32f88cp-1, + -0x1.36a049ab1eee0p-2 + }, + { // Entry 4 + 0x1.893eff10a04aed61358d3d5b6481eebcp-425, + -0x1.5a9c9453941a0p-426, + -0x1.60ff7b7326510p-425 + }, + { // Entry 5 + 0x1.94c583ada5b5218962e6ed1568fead12p0, + -0x1.7ffffffffffffp0, + 0x1.0000000000003p-1 + }, + { // Entry 6 + 0x1.97cfe6e25cd448cf5dbcb52213679796p-11, + -0x1.8e38e38e38e37p-11, + -0x1.5fad40a57eb38p-13 + }, + { // Entry 7 + 0x1.9e661829e5ee17ffba1d22ecf0580873p421, + -0x1.9897fbb0fa747p418, + 0x1.9b3d45740c34cp421 + }, + { // Entry 8 + 0x1.c7653d4e9e6c77fe2eb3fc6720505db6p-11, + -0x1.bbbbbbbbbbbbcp-11, + -0x1.9999999999c33p-13 + }, + { // Entry 9 + 0x1.ddffe6e5a3a8384016ed35f115bc095ep-11, + -0x1.e9131abf0b717p-14, + 0x1.da12f684bda24p-11 + }, + { // Entry 10 + 0x1.7158b50ca33488012d796eb6f1a7589bp0, + -0x1.f5723be0cafb4p-1, + 0x1.0f35b6d1e4e0fp0 + }, + { // Entry 11 + 0x1.00007fffdffff7ffe2000dfff64007afp0, + -0x1.ffffffffffffdp-1, + 0x1.ffffffffffffcp-9 + }, + { // Entry 12 + 0x1.fffffffep-1043, + 0.0, + 0x1.fffffffe0p-1043 + }, + { // Entry 13 + 0x1.199999999999a0p0, + 0x1.0p-1074, + -0x1.199999999999ap0 + }, + { // Entry 14 + 0x1.aaaaaaaaaaaaa0p0, + 0x1.0p-1074, + -0x1.aaaaaaaaaaaaap0 + }, + { // Entry 15 + 0x1.b87065d24cee52b080d32543ca9cfc19p-1, + 0x1.0000000000001p-1, + -0x1.6666666666668p-1 + }, + { // Entry 16 + 0x1.43596ffaa74788558d1fbef5bc6654e5p0, + 0x1.0000000000001p-2, + -0x1.3cf3cf3cf3cf4p0 + }, + { // Entry 17 + 0x1.4ccccccccccd08000000000000627627p-2, + 0x1.0000000000001p-3, + -0x1.3333333333337p-2 + }, + { // Entry 18 + 0x1.801554bda99c72d8de8e8d0810523d56p0, + 0x1.0000000000001p-5, + 0x1.8000000000001p0 + }, + { // Entry 19 + 0x1.74b50ce2454308015045eece9494acfbp-3, + 0x1.0000000000001p-7, + -0x1.745d1745d0e18p-3 + }, + { // Entry 20 + 0x1.28ff91ab72d727facf9be8fbd129e05ep-2, + 0x1.0000000000080p-3, + 0x1.0c0p-2 + }, + { // Entry 21 + 0x1.000033d5ab09e8017b9fe870280d1247p9, + 0x1.0000000000aeep9, + 0x1.45d1745d1745ep0 + }, + { // Entry 22 + 0x1.07e0f670c16e48e1e7c24e5939e31f55p-3, + 0x1.00000009880p-3, + 0x1.ffffff8cfffffp-6 + }, + { // Entry 23 + 0x1.b596b5878e25800001094dfd216cf693p-1, + 0x1.00000040ed435p-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 24 + 0x1.0008ffd80967981d0efdf34de42be658p-4, + 0x1.0000007ffffdep-10, + 0x1.0000fffffffffp-4 + }, + { // Entry 25 + 0x1.6a09e8e19116080994af0efbde159838p-20, + 0x1.0000037ffffdfp-20, + 0x1.00000000110p-20 + }, + { // Entry 26 + 0x1.00009ec452a8c81c490f9ba38768ce7cp-3, + 0x1.0000043ffffdfp-3, + 0x1.19453808ca296p-11 + }, + { // Entry 27 + 0x1.b879b2c3faae37fe5d8254c1a9443fd6p-1, + 0x1.000fffffff6c8p-1, + -0x1.6666666666668p-1 + }, + { // Entry 28 + 0x1.6b9824a5d9fefc6fac3c06f2beba6d16p0, + 0x1.001p0, + 0x1.0222222222223p0 + }, + { // Entry 29 + 0x1.6b1dc233c08aacf04d42b3d293e12a49p0, + 0x1.0016f5e74bfddp0, + -0x1.016eb68415ab1p0 + }, + { // Entry 30 + 0x1.778d27690518dd41bd73ad488f2a2174p-27, + 0x1.00a436e9442ddp-27, + 0x1.122dc42e12491p-27 + }, + { // Entry 31 + 0x1.6c9ed56d3e093800300f2c229b359a3dp0, + 0x1.01b59372d3dp0, + -0x1.01f11caa0d8fap0 + }, + { // Entry 32 + 0x1.62e44823f6c828019d99f2ea6e42b44dp-1, + 0x1.0624dd41fac87p-10, + 0x1.62e42fefa39efp-1 + }, + { // Entry 33 + 0x1.62e44823f6c9980000fc0f85b3c55a79p-1, + 0x1.0624dd49c38c9p-10, + 0x1.62e42fefa39efp-1 + }, + { // Entry 34 + 0x1.086b948a12d8c800cf1808a10a5174d9p3, + 0x1.086ac9804c16fp3, + 0x1.47ae147ae1488p-5 + }, + { // Entry 35 + 0x1.74334f2872bf324a8b6c0ffaf2f4ee3dp0, + 0x1.0b2502b3f7656p0, + -0x1.032a74c8e2bbdp0 + }, + { // Entry 36 + 0x1.b174e26559df6801e67982110c79e921p0, + 0x1.0dadec75407d1p0, + 0x1.53594d6535950p0 + }, + { // Entry 37 + 0x1.0fa6ab587be3f81316d103dd56845189p2, + 0x1.0dc27b7edad61p2, + -0x1.fffffffffffdfp-2 + }, + { // Entry 38 + 0x1.0e00000001e77800795b3317cdb8cf48p-1, + 0x1.0e0p-1, + 0x1.00880p-20 + }, + { // Entry 39 + 0x1.1e643a24dde918108702a958a34659bdp1, + 0x1.17261d1fbe70fp1, + -0x1.0p-1 + }, + { // Entry 40 + 0x1.00009ec452a8c81c490f9ba38768ce7cp-3, + 0x1.19453808ca296p-11, + 0x1.0000043ffffdfp-3 + }, + { // Entry 41 + 0x1.1f7648cb9c2928102f301b4e2a6da7f8p3, + 0x1.1f6fb7dbedf31p3, + -0x1.eb851eb851eb2p-4 + }, + { // Entry 42 + 0x1.3fc168b1ba65f7fefcba8c51c9dceebep1, + 0x1.333333334955dp1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 43 + 0x1.d561dc6bbc69b7fffefd4eef36bb45cep-1, + 0x1.33333336ffb33p-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 44 + 0x1.b6d63492d208b7fe66769600852b12d8p7, + 0x1.3845636425767p7, + 0x1.34534564561d4p7 + }, + { // Entry 45 + 0x1.b6d63492cf6ddfff7a4bf179a9f2d6cap7, + 0x1.3845636425776p7, + 0x1.3453456452673p7 + }, + { // Entry 46 + 0x1.853a0d5122cef456b05a1510fbead643p6, + 0x1.3bbd9e1fa27b4p6, + 0x1.c7372b6a514bcp5 + }, + { // Entry 47 + 0x1.3fba0ae4ce08b810e8f56ddaf12a7f4fp3, + 0x1.3e1f0f87c3dd1p3, + -0x1.fffffffffffdfp-1 + }, + { // Entry 48 + 0x1.b71be4215a53283d71f5b110a870e894p-11, + 0x1.484e2afe0bbc6p-13, + -0x1.af5ebd7af5ec0p-11 + }, + { // Entry 49 + 0x1.56d07f9feb80d804781ae4305058b676p2, + 0x1.550fe1779c5p2, + -0x1.14f2805f85d24p-1 + }, + { // Entry 50 + 0x1.a52df5c24c89489d50528533a7f35763p2, + 0x1.5555555555556p0, + 0x1.9c71c71c71c69p2 + }, + { // Entry 51 + 0x1.b993cc4482b447ff4f74030e8ba14870p-1, + 0x1.57354071c6426p-3, + -0x1.b1293f6f53880p-1 + }, + { // Entry 52 + 0x1.a7e2abc57f0e380a70c24d675241f120p0, + 0x1.5b2d96cb65bp0, + -0x1.e666666666664p-1 + }, + { // Entry 53 + 0x1.e44d26303c8e703260adac35beb0201ap421, + 0x1.600ec23b7b61ep421, + -0x1.4c92148cef14ap421 + }, + { // Entry 54 + 0x1.f8611701969ccfffff045c3f99fe48f7p-1, + 0x1.6666666dac2fap-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 55 + 0x1.6cc93c4d65368802345842af2282a5eap1, + 0x1.6cc93a754133ep1, + 0x1.257430139p-10 + }, + { // Entry 56 + 0x1.6cc93c4d653688025c9147b5b60441e9p1, + 0x1.6cc93a754133ep1, + 0x1.25743013900c8p-10 + }, + { // Entry 57 + 0x1.6cc93c4d653688025e2d2930daa313d5p1, + 0x1.6cc93a754133ep1, + 0x1.25743013900d0p-10 + }, + { // Entry 58 + 0x1.d488ac97053f37fbba277d07ac43cad5p-20, + 0x1.7p-20, + 0x1.220p-20 + }, + { // Entry 59 + 0x1.400000004cccc800052f1bc6a6c17e88p-1, + 0x1.7ffffffffffffp-2, + 0x1.000000006p-1 + }, + { // Entry 60 + 0x1.ffee8df9517ff7fe75600bb975e5ce61p0, + 0x1.81792910a5db1p-1, + -0x1.da43b5dce0b18p0 + }, + { // Entry 61 + 0x1.9b0a5736513fc7ffab037ae75d04e99ap2, + 0x1.88a4522914881p2, + 0x1.e666666666667p0 + }, + { // Entry 62 + 0x1.a5fa08a755b5c900f2d5cc6751e1ecf9p2, + 0x1.88cb3c9484e2ap0, + 0x1.9a6449e59bb5dp2 + }, + { // Entry 63 + 0x1.8befefed027e87ff6c70308e205c2a19p6, + 0x1.8beea4e1a0873p6, + -0x1.0p-1 + }, + { // Entry 64 + 0x1.96991a72bfd0100000868ffe3e831279p1, + 0x1.8cccccce3bcbdp1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 65 + 0x1.bf7cd9d02c7e220c699cc834fdd4fb41p-4, + 0x1.8ddf4152067fcp-4, + -0x1.999999999999ap-5 + }, + { // Entry 66 + 0x1.76e7ba8bc745280094a71daf10d4a68ep25, + 0x1.97fe3896c80f0p2, + 0x1.76e7ba8bc741bp25 + }, + { // Entry 67 + 0x1.0efacef2e4e81ffffefe587f1ae783b6p0, + 0x1.999999a0c0a0bp-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 68 + 0x1.715e867859a8580001048a1e9e9dff7cp-1, + 0x1.999999b9ce793p-3, + 0x1.62e42fefa39efp-1 + }, + { // Entry 69 + 0x1.6690cd7c39fa4800010745dc1f901919p-1, + 0x1.999999da8ed7ap-4, + 0x1.62e42fefa39efp-1 + }, + { // Entry 70 + 0x1.f65294baeb7788330decefa598e273d5p-11, + 0x1.9dbcc48676f94p-15, + 0x1.f5a814afd6a11p-11 + }, + { // Entry 71 + 0x1.c26cb730864d698c82db5769586bd519p0, + 0x1.a2882f7660c18p-2, + 0x1.b61a64501888ap0 + }, + { // Entry 72 + 0x1.209f4f2c5979e816bf99efe18e6f1cdap1, + 0x1.b8f22f033c872p-3, + 0x1.1f4db533bcddcp1 + }, + { // Entry 73 + 0x1.50225479d4b157fe785588557cc66cdep-10, + 0x1.bd8caaaf99090p-11, + -0x1.f76b23986ff44p-11 + }, + { // Entry 74 + 0x1.060db00245bf781048c529e4efff0afbp25, + 0x1.bffffffffffffp22, + 0x1.0000027ffffdfp25 + }, + { // Entry 75 + 0x1.c8c25b45aba168f0187bb5c3abbc3d16p-11, + 0x1.c06b09e919d94p-11, + -0x1.5b911048a3310p-13 + }, + { // Entry 76 + 0x1.f53b21b5c40249b92a9c223bae43323bp0, + 0x1.c81e6f7fe3993p-2, + -0x1.e8167b6df2ee0p0 + }, + { // Entry 77 + 0x1.f5950f056e39e90cbaac1f89ab36b40ap2, + 0x1.cba2e8ba2e8b7p0, + 0x1.e83e0f83e0f76p2 + }, + { // Entry 78 + 0x1.ddffe6e5a3a8384016ed35f115bc095ep-11, + 0x1.da12f684bda24p-11, + -0x1.e9131abf0b717p-14 + }, + { // Entry 79 + 0x1.7941bb05a39ca7ff5e4553b1fc4d7db9p-423, + 0x1.f8d7bbd7ce920p-426, + -0x1.73f0fd4fd9fd0p-423 + }, + { // Entry 80 + 0x1.b13fad7cb7c50801dede1905f3f366a1p9, + 0x1.f91b91b91b905p2, + 0x1.b13b13b13b130p9 + }, + { // Entry 81 + 0x1.69fd85887947900071fbc08183b8ab23p0, + 0x1.fcf76c540d958p-1, + -0x1.017098d82f95ep0 + }, + { // Entry 82 + 0x1.21c9123e6cbbf812953910371e275dc7p3, + 0x1.ff77fffffffffp-9, + -0x1.21c9107b0e488p3 + }, + { // Entry 83 + 0x1.c66addfec91c411f38e2aacb6ea06a91p-3, + 0x1.ffeffffffffffp-4, + -0x1.7777777777774p-3 + }, + { // Entry 84 + 0x1.4eb522b24186e8254574c77b5f914855p-1, + 0x1.ffeffffffffffp-4, + 0x1.488888888888ap-1 + }, + { // Entry 85 + 0x1.002caffe59b0a7feeda747a94b176ccap4, + 0x1.ffeffffffffffp3, + -0x1.4888888888888p-1 + }, + { // Entry 86 + 0x1.fff28f6f00e797fec43eb25e08b861abp3, + 0x1.ffeffffffffffp3, + -0x1.99999999a7508p-4 + }, + { // Entry 87 + 0x1.00000001fffff7fe0007f00400100ff6p20, + 0x1.fffffbfffffffp4, + 0x1.0p20 + }, + { // Entry 88 + 0x1.0082de91198ee8170bcff2900895b92ap2, + 0x1.ffffffffffdffp-3, + 0x1.0002fffffffdfp2 + }, + { // Entry 89 + 0x1.6a09e667f3c5125ab5042ba7be436cbbp-2, + 0x1.ffffffffffff7p-3, + 0x1.00000000000c0p-2 + }, + { // Entry 90 + 0x1.ffffffffffffb0p500, + 0x1.ffffffffffffbp500, + 0x1.ffffffffffffbp-1 + }, + { // Entry 91 + 0x1.333574eb66a002798d20bb2ca70862e4p-1, + 0x1.ffffffffffffep-3, + 0x1.1745d1745d177p-1 + }, + { // Entry 92 + 0x1.745d1745d17557ffffffffffc41ap-3, + 0x1.ffffffffffffep-28, + 0x1.745d1745d1750p-3 + }, + { // Entry 93 + 0x1.00000000000000007fffffffffffefffp1, + 0x1.ffffffffffffep-32, + -0x1.0p1 + }, + { // Entry 94 + 0x1.7777777777780000015d1745d1745c6cp-4, + 0x1.ffffffffffffep-40, + 0x1.7777777777780p-4 + }, + { // Entry 95 + 0x1.01c5967e49cb581b1ce389659d8f68ecp2, + 0x1.ffffffffffffep1, + -0x1.e2be2be2be2c3p-2 + }, + { // Entry 96 + 0x1.0058d424f448e820225d2e7a25abc0ebp4, + 0x1.ffffffffffffep3, + -0x1.aaaaaaaaaaaa8p-1 + }, + { // Entry 97 + 0x1.6a09e667f3bcdfa9516192a2b726086dp0, + -0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 98 + 0x1.6a09e667f3bcd459022e5304d10b0412p0, + -0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 99 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p0, + -0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 100 + 0x1.6a09e667f3bcd459022e5304d10b0412p0, + -0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 101 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 102 + 0x1.6a09e667f3bcc3608b617397f77caac1p0, + -0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 103 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p0, + -0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 104 + 0x1.6a09e667f3bcc3608b617397f77caac1p0, + -0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 105 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p0, + -0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 106 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 107 + 0x1.6a09e667f3bcd459022e5304d10b0412p0, + -0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 108 + 0x1.6a09e667f3bcdfa9516192a2b726086dp0, + -0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 109 + 0x1.6a09e667f3bcc3608b617397f77caac1p0, + -0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 110 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 111 + 0x1.6a09e667f3bcd459022e5304d10b0412p0, + -0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 112 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p0, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 113 + 0x1.6a09e667f3bcc3608b617397f77caac1p0, + -0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 114 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p0, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 115 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p0, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 116 + 0x1.6a09e667f3bcc3608b617397f77caac1p0, + 0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 117 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p0, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 118 + 0x1.6a09e667f3bcd459022e5304d10b0412p0, + 0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 119 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 120 + 0x1.6a09e667f3bcc3608b617397f77caac1p0, + 0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 121 + 0x1.6a09e667f3bcdfa9516192a2b726086dp0, + 0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 122 + 0x1.6a09e667f3bcd459022e5304d10b0412p0, + 0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 123 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p0, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 124 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 125 + 0x1.6a09e667f3bcc3608b617397f77caac1p0, + 0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 126 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 127 + 0x1.6a09e667f3bcc3608b617397f77caac1p0, + 0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 128 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 129 + 0x1.6a09e667f3bcd459022e5304d10b0412p0, + 0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 130 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 131 + 0x1.6a09e667f3bcd459022e5304d10b0412p0, + 0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 132 + 0x1.6a09e667f3bcdfa9516192a2b726086dp0, + 0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 133 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 134 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 135 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 136 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 137 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 138 + 0x1.01fe03f61bad04b1068572febc925ad1p3, + 0x1.0p0, + 0x1.0p3 + }, + { // Entry 139 + 0x1.01fe03f61bad04b1068572febc925ad1p3, + 0x1.0p3, + 0x1.0p0 + }, + { // Entry 140 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep3, + 0x1.0p3, + 0x1.0p3 + }, + { // Entry 141 + 0x1.00001ffffe00003ffff60001bfffacp9, + 0x1.0p0, + 0x1.0p9 + }, + { // Entry 142 + 0x1.000007ffffe00000fffff600006ffffap10, + 0x1.0p0, + 0x1.0p10 + }, + { // Entry 143 + 0x1.0007ffe000fff6006ffac041fca62cadp9, + 0x1.0p3, + 0x1.0p9 + }, + { // Entry 144 + 0x1.0001fffe0003fff6001bffac0107fca6p10, + 0x1.0p3, + 0x1.0p10 + }, + { // Entry 145 + 0x1.p100, + 0x1.0p0, + 0x1.0p100 + }, + { // Entry 146 + 0x1.p101, + 0x1.0p0, + 0x1.0p101 + }, + { // Entry 147 + 0x1.p100, + 0x1.0p3, + 0x1.0p100 + }, + { // Entry 148 + 0x1.p101, + 0x1.0p3, + 0x1.0p101 + }, + { // Entry 149 + 0x1.00001ffffe00003ffff60001bfffacp9, + 0x1.0p9, + 0x1.0p0 + }, + { // Entry 150 + 0x1.0007ffe000fff6006ffac041fca62cadp9, + 0x1.0p9, + 0x1.0p3 + }, + { // Entry 151 + 0x1.000007ffffe00000fffff600006ffffap10, + 0x1.0p10, + 0x1.0p0 + }, + { // Entry 152 + 0x1.0001fffe0003fff6001bffac0107fca6p10, + 0x1.0p10, + 0x1.0p3 + }, + { // Entry 153 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep9, + 0x1.0p9, + 0x1.0p9 + }, + { // Entry 154 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p10, + 0x1.0p9, + 0x1.0p10 + }, + { // Entry 155 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p10, + 0x1.0p10, + 0x1.0p9 + }, + { // Entry 156 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep10, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 157 + 0x1.p100, + 0x1.0p9, + 0x1.0p100 + }, + { // Entry 158 + 0x1.p101, + 0x1.0p9, + 0x1.0p101 + }, + { // Entry 159 + 0x1.p100, + 0x1.0p10, + 0x1.0p100 + }, + { // Entry 160 + 0x1.p101, + 0x1.0p10, + 0x1.0p101 + }, + { // Entry 161 + 0x1.p100, + 0x1.0p100, + 0x1.0p0 + }, + { // Entry 162 + 0x1.p100, + 0x1.0p100, + 0x1.0p3 + }, + { // Entry 163 + 0x1.p101, + 0x1.0p101, + 0x1.0p0 + }, + { // Entry 164 + 0x1.p101, + 0x1.0p101, + 0x1.0p3 + }, + { // Entry 165 + 0x1.p100, + 0x1.0p100, + 0x1.0p9 + }, + { // Entry 166 + 0x1.p100, + 0x1.0p100, + 0x1.0p10 + }, + { // Entry 167 + 0x1.p101, + 0x1.0p101, + 0x1.0p9 + }, + { // Entry 168 + 0x1.p101, + 0x1.0p101, + 0x1.0p10 + }, + { // Entry 169 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep100, + 0x1.0p100, + 0x1.0p100 + }, + { // Entry 170 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p101, + 0x1.0p100, + 0x1.0p101 + }, + { // Entry 171 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p101, + 0x1.0p101, + 0x1.0p100 + }, + { // Entry 172 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep101, + 0x1.0p101, + 0x1.0p101 + }, + { // Entry 173 + 0x1.ad5336963eefa83d75cf889be3a34d14p2, + 0x1.7ffffffffffffp2, + 0x1.7ffffffffffffp1 + }, + { // Entry 174 + 0x1.ad5336963eefabd15a8840999ed93d89p2, + 0x1.7ffffffffffffp2, + 0x1.8p1 + }, + { // Entry 175 + 0x1.ad5336963eefaf653f40f8975a2db59ep2, + 0x1.7ffffffffffffp2, + 0x1.8000000000001p1 + }, + { // Entry 176 + 0x1.ad5336963eefb68d08b26892d04d4378p2, + 0x1.8p2, + 0x1.7ffffffffffffp1 + }, + { // Entry 177 + 0x1.ad5336963eefba20ed6b20908b64ac4ep2, + 0x1.8p2, + 0x1.8p1 + }, + { // Entry 178 + 0x1.ad5336963eefbdb4d223d88e469a9cc3p2, + 0x1.8p2, + 0x1.8000000000001p1 + }, + { // Entry 179 + 0x1.ad5336963eefc4dc9b954889bd15c17dp2, + 0x1.8000000000001p2, + 0x1.7ffffffffffffp1 + }, + { // Entry 180 + 0x1.ad5336963eefc870804e0087780ea2b2p2, + 0x1.8000000000001p2, + 0x1.8p1 + }, + { // Entry 181 + 0x1.ad5336963eefcc046506b88533260b87p2, + 0x1.8000000000001p2, + 0x1.8000000000001p1 + }, + { // Entry 182 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 183 + 0x1.6a09e667f3bc9bc7762e14ef517466dep-1022, + 0x1.ffffffffffffcp-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 184 + 0x1.6a09e667f3bca717c561548d37e9edb3p-1022, + 0x1.ffffffffffffcp-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 185 + 0x1.6a09e667f3bcb2681494942b1eb9f701p-1022, + 0x1.ffffffffffffcp-1023, + 0x1.0p-1022 + }, + { // Entry 186 + 0x1.6a09e667f3bca717c561548d37e9edb3p-1022, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 187 + 0x1.6a09e667f3bcb2681494942b1e04f20ep-1022, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 188 + 0x1.6a09e667f3bcbdb863c7d3c9047a78e3p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 189 + 0x1.6a09e667f3bcb2681494942b1eb9f701p-1022, + 0x1.0p-1022, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 190 + 0x1.6a09e667f3bcbdb863c7d3c9047a78e3p-1022, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 191 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1022, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 192 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 193 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p512, + 0x1.fffffffffffffp511, + 0x1.fffffffffffffp511 + }, + { // Entry 194 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p512, + 0x1.fffffffffffffp511, + 0x1.fffffffffffffp511 + }, + { // Entry 195 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p501, + 0x1.fffffffffffffp500, + 0x1.fffffffffffffp500 + }, + { // Entry 196 + 0x1.6a09e667f3bcc3608b617397f77caac1p501, + 0x1.fffffffffffffp500, + 0x1.0p501 + }, + { // Entry 197 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p501, + 0x1.fffffffffffffp500, + 0x1.0000000000001p501 + }, + { // Entry 198 + 0x1.6a09e667f3bcc3608b617397f77caac1p501, + 0x1.0p501, + 0x1.fffffffffffffp500 + }, + { // Entry 199 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep501, + 0x1.0p501, + 0x1.0p501 + }, + { // Entry 200 + 0x1.6a09e667f3bcd459022e5304d10b0412p501, + 0x1.0p501, + 0x1.0000000000001p501 + }, + { // Entry 201 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p501, + 0x1.0000000000001p501, + 0x1.fffffffffffffp500 + }, + { // Entry 202 + 0x1.6a09e667f3bcd459022e5304d10b0412p501, + 0x1.0000000000001p501, + 0x1.0p501 + }, + { // Entry 203 + 0x1.6a09e667f3bcdfa9516192a2b726086dp501, + 0x1.0000000000001p501, + 0x1.0000000000001p501 + }, + { // Entry 204 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p-501, + 0x1.fffffffffffffp-502, + 0x1.fffffffffffffp-502 + }, + { // Entry 205 + 0x1.6a09e667f3bcc3608b617397f77caac1p-501, + 0x1.fffffffffffffp-502, + 0x1.0p-501 + }, + { // Entry 206 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-501, + 0x1.fffffffffffffp-502, + 0x1.0000000000001p-501 + }, + { // Entry 207 + 0x1.6a09e667f3bcc3608b617397f77caac1p-501, + 0x1.0p-501, + 0x1.fffffffffffffp-502 + }, + { // Entry 208 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-501, + 0x1.0p-501, + 0x1.0p-501 + }, + { // Entry 209 + 0x1.6a09e667f3bcd459022e5304d10b0412p-501, + 0x1.0p-501, + 0x1.0000000000001p-501 + }, + { // Entry 210 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-501, + 0x1.0000000000001p-501, + 0x1.fffffffffffffp-502 + }, + { // Entry 211 + 0x1.6a09e667f3bcd459022e5304d10b0412p-501, + 0x1.0000000000001p-501, + 0x1.0p-501 + }, + { // Entry 212 + 0x1.6a09e667f3bcdfa9516192a2b726086dp-501, + 0x1.0000000000001p-501, + 0x1.0000000000001p-501 + }, + { // Entry 213 + 0x1.fffffffffffff0p500, + 0x1.fffffffffffffp500, + 0x1.fffffffffffffp-502 + }, + { // Entry 214 + 0x1.fffffffffffff0p500, + 0x1.fffffffffffffp500, + 0x1.0p-501 + }, + { // Entry 215 + 0x1.fffffffffffff0p500, + 0x1.fffffffffffffp500, + 0x1.0000000000001p-501 + }, + { // Entry 216 + 0x1.p501, + 0x1.0p501, + 0x1.fffffffffffffp-502 + }, + { // Entry 217 + 0x1.p501, + 0x1.0p501, + 0x1.0p-501 + }, + { // Entry 218 + 0x1.p501, + 0x1.0p501, + 0x1.0000000000001p-501 + }, + { // Entry 219 + 0x1.00000000000010p501, + 0x1.0000000000001p501, + 0x1.fffffffffffffp-502 + }, + { // Entry 220 + 0x1.00000000000010p501, + 0x1.0000000000001p501, + 0x1.0p-501 + }, + { // Entry 221 + 0x1.00000000000010p501, + 0x1.0000000000001p501, + 0x1.0000000000001p-501 + }, + { // Entry 222 + 0x1.fffffffffffff0p500, + 0x1.fffffffffffffp500, + -0x1.0p-1074 + }, + { // Entry 223 + 0x1.fffffffffffff0p500, + 0x1.fffffffffffffp500, + -0.0 + }, + { // Entry 224 + 0x1.fffffffffffff0p500, + 0x1.fffffffffffffp500, + 0x1.0p-1074 + }, + { // Entry 225 + 0x1.p501, + 0x1.0p501, + -0x1.0p-1074 + }, + { // Entry 226 + 0x1.p501, + 0x1.0p501, + -0.0 + }, + { // Entry 227 + 0x1.p501, + 0x1.0p501, + 0x1.0p-1074 + }, + { // Entry 228 + 0x1.00000000000010p501, + 0x1.0000000000001p501, + -0x1.0p-1074 + }, + { // Entry 229 + 0x1.00000000000010p501, + 0x1.0000000000001p501, + -0.0 + }, + { // Entry 230 + 0x1.00000000000010p501, + 0x1.0000000000001p501, + 0x1.0p-1074 + }, + { // Entry 231 + 0x1.fffffffffffff0p-502, + 0x1.fffffffffffffp-502, + -0x1.0p-1074 + }, + { // Entry 232 + 0x1.fffffffffffff0p-502, + 0x1.fffffffffffffp-502, + -0.0 + }, + { // Entry 233 + 0x1.fffffffffffff0p-502, + 0x1.fffffffffffffp-502, + 0x1.0p-1074 + }, + { // Entry 234 + 0x1.p-501, + 0x1.0p-501, + -0x1.0p-1074 + }, + { // Entry 235 + 0x1.p-501, + 0x1.0p-501, + -0.0 + }, + { // Entry 236 + 0x1.p-501, + 0x1.0p-501, + 0x1.0p-1074 + }, + { // Entry 237 + 0x1.00000000000010p-501, + 0x1.0000000000001p-501, + -0x1.0p-1074 + }, + { // Entry 238 + 0x1.00000000000010p-501, + 0x1.0000000000001p-501, + -0.0 + }, + { // Entry 239 + 0x1.00000000000010p-501, + 0x1.0000000000001p-501, + 0x1.0p-1074 + }, + { // Entry 240 + 0x1.fffffffffffff0p500, + 0x1.fffffffffffffp500, + 0x1.fffffffffffffp-1 + }, + { // Entry 241 + 0x1.fffffffffffff0p500, + 0x1.fffffffffffffp500, + 0x1.0p0 + }, + { // Entry 242 + 0x1.fffffffffffff0p500, + 0x1.fffffffffffffp500, + 0x1.0000000000001p0 + }, + { // Entry 243 + 0x1.p501, + 0x1.0p501, + 0x1.fffffffffffffp-1 + }, + { // Entry 244 + 0x1.p501, + 0x1.0p501, + 0x1.0p0 + }, + { // Entry 245 + 0x1.p501, + 0x1.0p501, + 0x1.0000000000001p0 + }, + { // Entry 246 + 0x1.00000000000010p501, + 0x1.0000000000001p501, + 0x1.fffffffffffffp-1 + }, + { // Entry 247 + 0x1.00000000000010p501, + 0x1.0000000000001p501, + 0x1.0p0 + }, + { // Entry 248 + 0x1.00000000000010p501, + 0x1.0000000000001p501, + 0x1.0000000000001p0 + }, + { // Entry 249 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-502, + 0x1.fffffffffffffp-1 + }, + { // Entry 250 + 0x1.p0, + 0x1.fffffffffffffp-502, + 0x1.0p0 + }, + { // Entry 251 + 0x1.00000000000010p0, + 0x1.fffffffffffffp-502, + 0x1.0000000000001p0 + }, + { // Entry 252 + 0x1.fffffffffffff0p-1, + 0x1.0p-501, + 0x1.fffffffffffffp-1 + }, + { // Entry 253 + 0x1.p0, + 0x1.0p-501, + 0x1.0p0 + }, + { // Entry 254 + 0x1.00000000000010p0, + 0x1.0p-501, + 0x1.0000000000001p0 + }, + { // Entry 255 + 0x1.fffffffffffff0p-1, + 0x1.0000000000001p-501, + 0x1.fffffffffffffp-1 + }, + { // Entry 256 + 0x1.p0, + 0x1.0000000000001p-501, + 0x1.0p0 + }, + { // Entry 257 + 0x1.00000000000010p0, + 0x1.0000000000001p-501, + 0x1.0000000000001p0 + }, + { // Entry 258 + 0x1.fffffffffffff000000000000fffffffp49, + 0x1.fffffffffffffp49, + 0x1.fffffffffffffp-1 + }, + { // Entry 259 + 0x1.fffffffffffff0000000000010p49, + 0x1.fffffffffffffp49, + 0x1.0p0 + }, + { // Entry 260 + 0x1.fffffffffffff0000000000010p49, + 0x1.fffffffffffffp49, + 0x1.0000000000001p0 + }, + { // Entry 261 + 0x1.00000000000000000000000007ffffffp50, + 0x1.0p50, + 0x1.fffffffffffffp-1 + }, + { // Entry 262 + 0x1.00000000000000000000000007ffffffp50, + 0x1.0p50, + 0x1.0p0 + }, + { // Entry 263 + 0x1.00000000000000000000000008p50, + 0x1.0p50, + 0x1.0000000000001p0 + }, + { // Entry 264 + 0x1.00000000000010000000000007ffffffp50, + 0x1.0000000000001p50, + 0x1.fffffffffffffp-1 + }, + { // Entry 265 + 0x1.00000000000010000000000007ffffffp50, + 0x1.0000000000001p50, + 0x1.0p0 + }, + { // Entry 266 + 0x1.00000000000010000000000008p50, + 0x1.0000000000001p50, + 0x1.0000000000001p0 + }, + { // Entry 267 + 0x1.fffffffffffff0000000000003ffffffp50, + 0x1.fffffffffffffp50, + 0x1.fffffffffffffp-1 + }, + { // Entry 268 + 0x1.fffffffffffff0000000000004p50, + 0x1.fffffffffffffp50, + 0x1.0p0 + }, + { // Entry 269 + 0x1.fffffffffffff0000000000004p50, + 0x1.fffffffffffffp50, + 0x1.0000000000001p0 + }, + { // Entry 270 + 0x1.00000000000000000000000001ffffffp51, + 0x1.0p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 271 + 0x1.00000000000000000000000001ffffffp51, + 0x1.0p51, + 0x1.0p0 + }, + { // Entry 272 + 0x1.00000000000000000000000002p51, + 0x1.0p51, + 0x1.0000000000001p0 + }, + { // Entry 273 + 0x1.00000000000010000000000001ffffffp51, + 0x1.0000000000001p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 274 + 0x1.00000000000010000000000001ffffffp51, + 0x1.0000000000001p51, + 0x1.0p0 + }, + { // Entry 275 + 0x1.00000000000010000000000002p51, + 0x1.0000000000001p51, + 0x1.0000000000001p0 + }, + { // Entry 276 + 0x1.fffffffffffff0000000000000ffffffp51, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1 + }, + { // Entry 277 + 0x1.fffffffffffff0000000000001p51, + 0x1.fffffffffffffp51, + 0x1.0p0 + }, + { // Entry 278 + 0x1.fffffffffffff0000000000001p51, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0 + }, + { // Entry 279 + 0x1.000000000000000000000000007fffffp52, + 0x1.0p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 280 + 0x1.000000000000000000000000007fffffp52, + 0x1.0p52, + 0x1.0p0 + }, + { // Entry 281 + 0x1.0000000000000000000000000080p52, + 0x1.0p52, + 0x1.0000000000001p0 + }, + { // Entry 282 + 0x1.000000000000100000000000007fffffp52, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 283 + 0x1.000000000000100000000000007fffffp52, + 0x1.0000000000001p52, + 0x1.0p0 + }, + { // Entry 284 + 0x1.0000000000001000000000000080p52, + 0x1.0000000000001p52, + 0x1.0000000000001p0 + }, + { // Entry 285 + 0x1.fffffffffffff00000000000003fffffp52, + 0x1.fffffffffffffp52, + 0x1.fffffffffffffp-1 + }, + { // Entry 286 + 0x1.fffffffffffff000000000000040p52, + 0x1.fffffffffffffp52, + 0x1.0p0 + }, + { // Entry 287 + 0x1.fffffffffffff000000000000040p52, + 0x1.fffffffffffffp52, + 0x1.0000000000001p0 + }, + { // Entry 288 + 0x1.000000000000000000000000001fffffp53, + 0x1.0p53, + 0x1.fffffffffffffp-1 + }, + { // Entry 289 + 0x1.000000000000000000000000001fffffp53, + 0x1.0p53, + 0x1.0p0 + }, + { // Entry 290 + 0x1.0000000000000000000000000020p53, + 0x1.0p53, + 0x1.0000000000001p0 + }, + { // Entry 291 + 0x1.000000000000100000000000001fffffp53, + 0x1.0000000000001p53, + 0x1.fffffffffffffp-1 + }, + { // Entry 292 + 0x1.000000000000100000000000001fffffp53, + 0x1.0000000000001p53, + 0x1.0p0 + }, + { // Entry 293 + 0x1.0000000000001000000000000020p53, + 0x1.0000000000001p53, + 0x1.0000000000001p0 + }, + { // Entry 294 + 0x1.fffffffffffff00000000000000fffffp53, + 0x1.fffffffffffffp53, + 0x1.fffffffffffffp-1 + }, + { // Entry 295 + 0x1.fffffffffffff000000000000010p53, + 0x1.fffffffffffffp53, + 0x1.0p0 + }, + { // Entry 296 + 0x1.fffffffffffff000000000000010p53, + 0x1.fffffffffffffp53, + 0x1.0000000000001p0 + }, + { // Entry 297 + 0x1.0000000000000000000000000007ffffp54, + 0x1.0p54, + 0x1.fffffffffffffp-1 + }, + { // Entry 298 + 0x1.0000000000000000000000000007ffffp54, + 0x1.0p54, + 0x1.0p0 + }, + { // Entry 299 + 0x1.0000000000000000000000000008p54, + 0x1.0p54, + 0x1.0000000000001p0 + }, + { // Entry 300 + 0x1.0000000000001000000000000007ffffp54, + 0x1.0000000000001p54, + 0x1.fffffffffffffp-1 + }, + { // Entry 301 + 0x1.0000000000001000000000000007ffffp54, + 0x1.0000000000001p54, + 0x1.0p0 + }, + { // Entry 302 + 0x1.0000000000001000000000000008p54, + 0x1.0000000000001p54, + 0x1.0000000000001p0 + }, + { // Entry 303 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p-500, + 0x1.fffffffffffffp-501, + 0x1.fffffffffffffp-501 + }, + { // Entry 304 + 0x1.6a09e667f3bcc3608b617397f77caac1p-500, + 0x1.fffffffffffffp-501, + 0x1.0p-500 + }, + { // Entry 305 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-500, + 0x1.fffffffffffffp-501, + 0x1.0000000000001p-500 + }, + { // Entry 306 + 0x1.6a09e667f3bcc3608b617397f77caac1p-500, + 0x1.0p-500, + 0x1.fffffffffffffp-501 + }, + { // Entry 307 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-500, + 0x1.0p-500, + 0x1.0p-500 + }, + { // Entry 308 + 0x1.6a09e667f3bcd459022e5304d10b0412p-500, + 0x1.0p-500, + 0x1.0000000000001p-500 + }, + { // Entry 309 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-500, + 0x1.0000000000001p-500, + 0x1.fffffffffffffp-501 + }, + { // Entry 310 + 0x1.6a09e667f3bcd459022e5304d10b0412p-500, + 0x1.0000000000001p-500, + 0x1.0p-500 + }, + { // Entry 311 + 0x1.6a09e667f3bcdfa9516192a2b726086dp-500, + 0x1.0000000000001p-500, + 0x1.0000000000001p-500 + }, + { // Entry 312 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p-60, + 0x1.fffffffffffffp-61, + 0x1.fffffffffffffp-61 + }, + { // Entry 313 + 0x1.6a09e667f3bcc3608b617397f77caac1p-60, + 0x1.fffffffffffffp-61, + 0x1.0p-60 + }, + { // Entry 314 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-60, + 0x1.fffffffffffffp-61, + 0x1.0000000000001p-60 + }, + { // Entry 315 + 0x1.6a09e667f3bcc3608b617397f77caac1p-60, + 0x1.0p-60, + 0x1.fffffffffffffp-61 + }, + { // Entry 316 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-60, + 0x1.0p-60, + 0x1.0p-60 + }, + { // Entry 317 + 0x1.6a09e667f3bcd459022e5304d10b0412p-60, + 0x1.0p-60, + 0x1.0000000000001p-60 + }, + { // Entry 318 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-60, + 0x1.0000000000001p-60, + 0x1.fffffffffffffp-61 + }, + { // Entry 319 + 0x1.6a09e667f3bcd459022e5304d10b0412p-60, + 0x1.0000000000001p-60, + 0x1.0p-60 + }, + { // Entry 320 + 0x1.6a09e667f3bcdfa9516192a2b726086dp-60, + 0x1.0000000000001p-60, + 0x1.0000000000001p-60 + }, + { // Entry 321 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p-10, + 0x1.fffffffffffffp-11, + 0x1.fffffffffffffp-11 + }, + { // Entry 322 + 0x1.6a09e667f3bcc3608b617397f77caac1p-10, + 0x1.fffffffffffffp-11, + 0x1.0p-10 + }, + { // Entry 323 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-10, + 0x1.fffffffffffffp-11, + 0x1.0000000000001p-10 + }, + { // Entry 324 + 0x1.6a09e667f3bcc3608b617397f77caac1p-10, + 0x1.0p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 325 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-10, + 0x1.0p-10, + 0x1.0p-10 + }, + { // Entry 326 + 0x1.6a09e667f3bcd459022e5304d10b0412p-10, + 0x1.0p-10, + 0x1.0000000000001p-10 + }, + { // Entry 327 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-10, + 0x1.0000000000001p-10, + 0x1.fffffffffffffp-11 + }, + { // Entry 328 + 0x1.6a09e667f3bcd459022e5304d10b0412p-10, + 0x1.0000000000001p-10, + 0x1.0p-10 + }, + { // Entry 329 + 0x1.6a09e667f3bcdfa9516192a2b726086dp-10, + 0x1.0000000000001p-10, + 0x1.0000000000001p-10 + }, + { // Entry 330 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p-1, + 0x1.fffffffffffffp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 331 + 0x1.6a09e667f3bcc3608b617397f77caac1p-1, + 0x1.fffffffffffffp-2, + 0x1.0p-1 + }, + { // Entry 332 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-1, + 0x1.fffffffffffffp-2, + 0x1.0000000000001p-1 + }, + { // Entry 333 + 0x1.6a09e667f3bcc3608b617397f77caac1p-1, + 0x1.0p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 334 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1, + 0x1.0p-1, + 0x1.0p-1 + }, + { // Entry 335 + 0x1.6a09e667f3bcd459022e5304d10b0412p-1, + 0x1.0p-1, + 0x1.0000000000001p-1 + }, + { // Entry 336 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-1, + 0x1.0000000000001p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 337 + 0x1.6a09e667f3bcd459022e5304d10b0412p-1, + 0x1.0000000000001p-1, + 0x1.0p-1 + }, + { // Entry 338 + 0x1.6a09e667f3bcdfa9516192a2b726086dp-1, + 0x1.0000000000001p-1, + 0x1.0000000000001p-1 + }, + { // Entry 339 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p1, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp0 + }, + { // Entry 340 + 0x1.6a09e667f3bcc3608b617397f77caac1p1, + 0x1.fffffffffffffp0, + 0x1.0p1 + }, + { // Entry 341 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p1, + 0x1.fffffffffffffp0, + 0x1.0000000000001p1 + }, + { // Entry 342 + 0x1.6a09e667f3bcc3608b617397f77caac1p1, + 0x1.0p1, + 0x1.fffffffffffffp0 + }, + { // Entry 343 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep1, + 0x1.0p1, + 0x1.0p1 + }, + { // Entry 344 + 0x1.6a09e667f3bcd459022e5304d10b0412p1, + 0x1.0p1, + 0x1.0000000000001p1 + }, + { // Entry 345 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p1, + 0x1.0000000000001p1, + 0x1.fffffffffffffp0 + }, + { // Entry 346 + 0x1.6a09e667f3bcd459022e5304d10b0412p1, + 0x1.0000000000001p1, + 0x1.0p1 + }, + { // Entry 347 + 0x1.6a09e667f3bcdfa9516192a2b726086dp1, + 0x1.0000000000001p1, + 0x1.0000000000001p1 + }, + { // Entry 348 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p10, + 0x1.fffffffffffffp9, + 0x1.fffffffffffffp9 + }, + { // Entry 349 + 0x1.6a09e667f3bcc3608b617397f77caac1p10, + 0x1.fffffffffffffp9, + 0x1.0p10 + }, + { // Entry 350 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p10, + 0x1.fffffffffffffp9, + 0x1.0000000000001p10 + }, + { // Entry 351 + 0x1.6a09e667f3bcc3608b617397f77caac1p10, + 0x1.0p10, + 0x1.fffffffffffffp9 + }, + { // Entry 352 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep10, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 353 + 0x1.6a09e667f3bcd459022e5304d10b0412p10, + 0x1.0p10, + 0x1.0000000000001p10 + }, + { // Entry 354 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p10, + 0x1.0000000000001p10, + 0x1.fffffffffffffp9 + }, + { // Entry 355 + 0x1.6a09e667f3bcd459022e5304d10b0412p10, + 0x1.0000000000001p10, + 0x1.0p10 + }, + { // Entry 356 + 0x1.6a09e667f3bcdfa9516192a2b726086dp10, + 0x1.0000000000001p10, + 0x1.0000000000001p10 + }, + { // Entry 357 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p60, + 0x1.fffffffffffffp59, + 0x1.fffffffffffffp59 + }, + { // Entry 358 + 0x1.6a09e667f3bcc3608b617397f77caac1p60, + 0x1.fffffffffffffp59, + 0x1.0p60 + }, + { // Entry 359 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p60, + 0x1.fffffffffffffp59, + 0x1.0000000000001p60 + }, + { // Entry 360 + 0x1.6a09e667f3bcc3608b617397f77caac1p60, + 0x1.0p60, + 0x1.fffffffffffffp59 + }, + { // Entry 361 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep60, + 0x1.0p60, + 0x1.0p60 + }, + { // Entry 362 + 0x1.6a09e667f3bcd459022e5304d10b0412p60, + 0x1.0p60, + 0x1.0000000000001p60 + }, + { // Entry 363 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p60, + 0x1.0000000000001p60, + 0x1.fffffffffffffp59 + }, + { // Entry 364 + 0x1.6a09e667f3bcd459022e5304d10b0412p60, + 0x1.0000000000001p60, + 0x1.0p60 + }, + { // Entry 365 + 0x1.6a09e667f3bcdfa9516192a2b726086dp60, + 0x1.0000000000001p60, + 0x1.0000000000001p60 + }, + { // Entry 366 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p500, + 0x1.fffffffffffffp499, + 0x1.fffffffffffffp499 + }, + { // Entry 367 + 0x1.6a09e667f3bcc3608b617397f77caac1p500, + 0x1.fffffffffffffp499, + 0x1.0p500 + }, + { // Entry 368 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p500, + 0x1.fffffffffffffp499, + 0x1.0000000000001p500 + }, + { // Entry 369 + 0x1.6a09e667f3bcc3608b617397f77caac1p500, + 0x1.0p500, + 0x1.fffffffffffffp499 + }, + { // Entry 370 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep500, + 0x1.0p500, + 0x1.0p500 + }, + { // Entry 371 + 0x1.6a09e667f3bcd459022e5304d10b0412p500, + 0x1.0p500, + 0x1.0000000000001p500 + }, + { // Entry 372 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p500, + 0x1.0000000000001p500, + 0x1.fffffffffffffp499 + }, + { // Entry 373 + 0x1.6a09e667f3bcd459022e5304d10b0412p500, + 0x1.0000000000001p500, + 0x1.0p500 + }, + { // Entry 374 + 0x1.6a09e667f3bcdfa9516192a2b726086dp500, + 0x1.0000000000001p500, + 0x1.0000000000001p500 + }, + { // Entry 375 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + 0x1.fffffffffffffp-1 + }, + { // Entry 376 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + 0x1.0p0 + }, + { // Entry 377 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1022, + 0x1.0000000000001p0 + }, + { // Entry 378 + 0x1.p1023, + 0x1.0p1023, + 0x1.fffffffffffffp-1 + }, + { // Entry 379 + 0x1.p1023, + 0x1.0p1023, + 0x1.0p0 + }, + { // Entry 380 + 0x1.p1023, + 0x1.0p1023, + 0x1.0000000000001p0 + }, + { // Entry 381 + 0x1.00000000000010p1023, + 0x1.0000000000001p1023, + 0x1.fffffffffffffp-1 + }, + { // Entry 382 + 0x1.00000000000010p1023, + 0x1.0000000000001p1023, + 0x1.0p0 + }, + { // Entry 383 + 0x1.00000000000010p1023, + 0x1.0000000000001p1023, + 0x1.0000000000001p0 + }, + { // Entry 384 + 0x1.778d27690518c71d8d4d782889fc1c38p-27, + 0x1.00a436e9442ebp-27, + 0x1.122dc42e12482p-27 + }, + { // Entry 385 + 0x1.778d27690518d2cbeb1e43a94a18dcbbp-27, + 0x1.00a436e9442ebp-27, + 0x1.122dc42e12483p-27 + }, + { // Entry 386 + 0x1.778d27690518de7a48ef0f2a0a871bb3p-27, + 0x1.00a436e9442ebp-27, + 0x1.122dc42e12484p-27 + }, + { // Entry 387 + 0x1.778d27690518d20ca53cbc1df3f2eff8p-27, + 0x1.00a436e9442ecp-27, + 0x1.122dc42e12482p-27 + }, + { // Entry 388 + 0x1.778d27690518ddbb030d879eb3b8a069p-27, + 0x1.00a436e9442ecp-27, + 0x1.122dc42e12483p-27 + }, + { // Entry 389 + 0x1.778d27690518e96960de531f73cfcf4fp-27, + 0x1.00a436e9442ecp-27, + 0x1.122dc42e12484p-27 + }, + { // Entry 390 + 0x1.778d27690518dcfbbd2c00135e46c6d1p-27, + 0x1.00a436e9442edp-27, + 0x1.122dc42e12482p-27 + }, + { // Entry 391 + 0x1.778d27690518e8aa1afccb941db56731p-27, + 0x1.00a436e9442edp-27, + 0x1.122dc42e12483p-27 + }, + { // Entry 392 + 0x1.778d27690518f45878cd9714dd758605p-27, + 0x1.00a436e9442edp-27, + 0x1.122dc42e12484p-27 + }, + { // Entry 393 + 0x1.74334f2872bf31f2bd78c8d32ad384a6p0, + 0x1.0b2502b3f7655p0, + -0x1.032a74c8e2bbep0 + }, + { // Entry 394 + 0x1.74334f2872bf26ceaa6e8d36067093ffp0, + 0x1.0b2502b3f7655p0, + -0x1.032a74c8e2bbdp0 + }, + { // Entry 395 + 0x1.74334f2872bf1baa97645198e2685868p0, + 0x1.0b2502b3f7655p0, + -0x1.032a74c8e2bbcp0 + }, + { // Entry 396 + 0x1.74334f2872bf3d6e9e764b9816ffdf5ep0, + 0x1.0b2502b3f7656p0, + -0x1.032a74c8e2bbep0 + }, + { // Entry 397 + 0x1.74334f2872bf324a8b6c0ffaf2f4ee3dp0, + 0x1.0b2502b3f7656p0, + -0x1.032a74c8e2bbdp0 + }, + { // Entry 398 + 0x1.74334f2872bf27267861d45dcf44b22bp0, + 0x1.0b2502b3f7656p0, + -0x1.032a74c8e2bbcp0 + }, + { // Entry 399 + 0x1.74334f2872bf48ea7f73ce5d038198c9p0, + 0x1.0b2502b3f7657p0, + -0x1.032a74c8e2bbep0 + }, + { // Entry 400 + 0x1.74334f2872bf3dc66c6992bfdfcea72ep0, + 0x1.0b2502b3f7657p0, + -0x1.032a74c8e2bbdp0 + }, + { // Entry 401 + 0x1.74334f2872bf32a2595f5722bc766aa2p0, + 0x1.0b2502b3f7657p0, + -0x1.032a74c8e2bbcp0 + }, + { // Entry 402 + 0x1.b6d63492cf6c5f0d4a9e41a4ed8f8b94p7, + 0x1.3845636425763p7, + 0x1.3453456452664p7 + }, + { // Entry 403 + 0x1.b6d63492cf6c6a4b20bba441a2ca5ba3p7, + 0x1.3845636425763p7, + 0x1.3453456452665p7 + }, + { // Entry 404 + 0x1.b6d63492cf6c7588f6d906de5850ca51p7, + 0x1.3845636425763p7, + 0x1.3453456452666p7 + }, + { // Entry 405 + 0x1.b6d63492cf6c6a6ff4ee83c89e71f86dp7, + 0x1.3845636425764p7, + 0x1.3453456452664p7 + }, + { // Entry 406 + 0x1.b6d63492cf6c75adcb0be66553621e7ap7, + 0x1.3845636425764p7, + 0x1.3453456452665p7 + }, + { // Entry 407 + 0x1.b6d63492cf6c80eba1294902089de325p7, + 0x1.3845636425764p7, + 0x1.3453456452666p7 + }, + { // Entry 408 + 0x1.b6d63492cf6c75d29f3ec5ec4f9e1dc5p7, + 0x1.3845636425765p7, + 0x1.3453456452664p7 + }, + { // Entry 409 + 0x1.b6d63492cf6c8110755c2889044399cfp7, + 0x1.3845636425765p7, + 0x1.3453456452665p7 + }, + { // Entry 410 + 0x1.b6d63492cf6c8c4e4b798b25b934b477p7, + 0x1.3845636425765p7, + 0x1.3453456452666p7 + }, + { // Entry 411 + 0x1.b6d63492cf6c8c4e4b798b25b934b477p-6, + -0x1.3845636425765p-6, + -0x1.3453456452666p-6 + }, + { // Entry 412 + 0x1.b6d63492cf6c8110755c2889044399cfp-6, + -0x1.3845636425765p-6, + -0x1.3453456452665p-6 + }, + { // Entry 413 + 0x1.b6d63492cf6c75d29f3ec5ec4f9e1dc5p-6, + -0x1.3845636425765p-6, + -0x1.3453456452664p-6 + }, + { // Entry 414 + 0x1.b6d63492cf6c80eba1294902089de325p-6, + -0x1.3845636425764p-6, + -0x1.3453456452666p-6 + }, + { // Entry 415 + 0x1.b6d63492cf6c75adcb0be66553621e7ap-6, + -0x1.3845636425764p-6, + -0x1.3453456452665p-6 + }, + { // Entry 416 + 0x1.b6d63492cf6c6a6ff4ee83c89e71f86dp-6, + -0x1.3845636425764p-6, + -0x1.3453456452664p-6 + }, + { // Entry 417 + 0x1.b6d63492cf6c7588f6d906de5850ca51p-6, + -0x1.3845636425763p-6, + -0x1.3453456452666p-6 + }, + { // Entry 418 + 0x1.b6d63492cf6c6a4b20bba441a2ca5ba3p-6, + -0x1.3845636425763p-6, + -0x1.3453456452665p-6 + }, + { // Entry 419 + 0x1.b6d63492cf6c5f0d4a9e41a4ed8f8b94p-6, + -0x1.3845636425763p-6, + -0x1.3453456452664p-6 + }, + { // Entry 420 + 0x1.9a134186a4136915d6a2f7171812deefp-16, + -0x1.3845636425765p-16, + -0x1.09cc3d7f1c881p-16 + }, + { // Entry 421 + 0x1.9a134186a4135eb6f0c519097d75243dp-16, + -0x1.3845636425765p-16, + -0x1.09cc3d7f1c880p-16 + }, + { // Entry 422 + 0x1.9a134186a41354580ae73afbe33415cfp-16, + -0x1.3845636425765p-16, + -0x1.09cc3d7f1c87fp-16 + }, + { // Entry 423 + 0x1.9a134186a4135ce6bf291d40fc6e4392p-16, + -0x1.3845636425764p-16, + -0x1.09cc3d7f1c881p-16 + }, + { // Entry 424 + 0x1.9a134186a4135287d94b3f336181a757p-16, + -0x1.3845636425764p-16, + -0x1.09cc3d7f1c880p-16 + }, + { // Entry 425 + 0x1.9a134186a4134828f36d6125c6f1b75fp-16, + -0x1.3845636425764p-16, + -0x1.09cc3d7f1c87fp-16 + }, + { // Entry 426 + 0x1.9a134186a41350b7a7af436ae10ccc7ap-16, + -0x1.3845636425763p-16, + -0x1.09cc3d7f1c881p-16 + }, + { // Entry 427 + 0x1.9a134186a4134658c1d1655d45d14eb5p-16, + -0x1.3845636425763p-16, + -0x1.09cc3d7f1c880p-16 + }, + { // Entry 428 + 0x1.9a134186a4133bf9dbf3874faaf27d32p-16, + -0x1.3845636425763p-16, + -0x1.09cc3d7f1c87fp-16 + }, + { // Entry 429 + 0x1.6a09e667f3bcdfa9516192a2b726086dp-6, + -0x1.0000000000001p-6, + -0x1.0000000000001p-6 + }, + { // Entry 430 + 0x1.6a09e667f3bcd459022e5304d10b0412p-6, + -0x1.0000000000001p-6, + -0x1.0p-6 + }, + { // Entry 431 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-6, + -0x1.0000000000001p-6, + -0x1.fffffffffffffp-7 + }, + { // Entry 432 + 0x1.6a09e667f3bcd459022e5304d10b0412p-6, + -0x1.0p-6, + -0x1.0000000000001p-6 + }, + { // Entry 433 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-6, + -0x1.0p-6, + -0x1.0p-6 + }, + { // Entry 434 + 0x1.6a09e667f3bcc3608b617397f77caac1p-6, + -0x1.0p-6, + -0x1.fffffffffffffp-7 + }, + { // Entry 435 + 0x1.6a09e667f3bcceb0da94b335de1f72d2p-6, + -0x1.fffffffffffffp-7, + -0x1.0000000000001p-6 + }, + { // Entry 436 + 0x1.6a09e667f3bcc3608b617397f77caac1p-6, + -0x1.fffffffffffffp-7, + -0x1.0p-6 + }, + { // Entry 437 + 0x1.6a09e667f3bcbdb863c7d3c9044d37a6p-6, + -0x1.fffffffffffffp-7, + -0x1.fffffffffffffp-7 + }, + { // Entry 438 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 439 + 0x1.p-1074, + -0x1.0p-1074, + -0.0 + }, + { // Entry 440 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 441 + 0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 442 + 0.0, + -0.0, + -0.0 + }, + { // Entry 443 + 0x1.p-1074, + -0.0, + 0x1.0p-1074 + }, + { // Entry 444 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1074, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 445 + 0x1.p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 446 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 447 + 0x1.1e3779b97f4a732437cef466090d1897p-400, + 0x1.fffffffffffffp-401, + 0x1.fffffffffffffp-402 + }, + { // Entry 448 + 0x1.1e3779b97f4a74ee2a2b5064e6a62857p-400, + 0x1.fffffffffffffp-401, + 0x1.0p-401 + }, + { // Entry 449 + 0x1.1e3779b97f4a78820ee40862a1faa06cp-400, + 0x1.fffffffffffffp-401, + 0x1.0000000000001p-401 + }, + { // Entry 450 + 0x1.1e3779b97f4a7a4c014064617f602b4fp-400, + 0x1.0p-400, + 0x1.fffffffffffffp-402 + }, + { // Entry 451 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p-400, + 0x1.0p-400, + 0x1.0p-401 + }, + { // Entry 452 + 0x1.1e3779b97f4a7fa9d855785e182b5a91p-400, + 0x1.0p-400, + 0x1.0000000000001p-401 + }, + { // Entry 453 + 0x1.1e3779b97f4a889b942344586c28a953p-400, + 0x1.0000000000001p-400, + 0x1.fffffffffffffp-402 + }, + { // Entry 454 + 0x1.1e3779b97f4a8a65867fa057499f6080p-400, + 0x1.0000000000001p-400, + 0x1.0p-401 + }, + { // Entry 455 + 0x1.1e3779b97f4a8df96b38585504af276dp-400, + 0x1.0000000000001p-400, + 0x1.0000000000001p-401 + }, + { // Entry 456 + 0x1.1e3779b97f4a732437cef466090d1897p-511, + 0x1.fffffffffffffp-513, + 0x1.fffffffffffffp-512 + }, + { // Entry 457 + 0x1.1e3779b97f4a7a4c014064617f602b4fp-511, + 0x1.fffffffffffffp-513, + 0x1.0p-511 + }, + { // Entry 458 + 0x1.1e3779b97f4a889b942344586c28a953p-511, + 0x1.fffffffffffffp-513, + 0x1.0000000000001p-511 + }, + { // Entry 459 + 0x1.1e3779b97f4a74ee2a2b5064e6a62857p-511, + 0x1.0p-512, + 0x1.fffffffffffffp-512 + }, + { // Entry 460 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p-511, + 0x1.0p-512, + 0x1.0p-511 + }, + { // Entry 461 + 0x1.1e3779b97f4a8a65867fa057499f6080p-511, + 0x1.0p-512, + 0x1.0000000000001p-511 + }, + { // Entry 462 + 0x1.1e3779b97f4a78820ee40862a1faa06cp-511, + 0x1.0000000000001p-512, + 0x1.fffffffffffffp-512 + }, + { // Entry 463 + 0x1.1e3779b97f4a7fa9d855785e182b5a91p-511, + 0x1.0000000000001p-512, + 0x1.0p-511 + }, + { // Entry 464 + 0x1.1e3779b97f4a8df96b38585504af276dp-511, + 0x1.0000000000001p-512, + 0x1.0000000000001p-511 + }, + { // Entry 465 + 0x1.1e3779b97f4a732437cef466090d1897p1022, + 0x1.fffffffffffffp1021, + 0x1.fffffffffffffp1020 + }, + { // Entry 466 + 0x1.1e3779b97f4a74ee2a2b5064e6a62857p1022, + 0x1.fffffffffffffp1021, + 0x1.0p1021 + }, + { // Entry 467 + 0x1.1e3779b97f4a78820ee40862a1faa06cp1022, + 0x1.fffffffffffffp1021, + 0x1.0000000000001p1021 + }, + { // Entry 468 + 0x1.1e3779b97f4a7a4c014064617f602b4fp1022, + 0x1.0p1022, + 0x1.fffffffffffffp1020 + }, + { // Entry 469 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p1022, + 0x1.0p1022, + 0x1.0p1021 + }, + { // Entry 470 + 0x1.1e3779b97f4a7fa9d855785e182b5a91p1022, + 0x1.0p1022, + 0x1.0000000000001p1021 + }, + { // Entry 471 + 0x1.1e3779b97f4a889b942344586c28a953p1022, + 0x1.0000000000001p1022, + 0x1.fffffffffffffp1020 + }, + { // Entry 472 + 0x1.1e3779b97f4a8a65867fa057499f6080p1022, + 0x1.0000000000001p1022, + 0x1.0p1021 + }, + { // Entry 473 + 0x1.1e3779b97f4a8df96b38585504af276dp1022, + 0x1.0000000000001p1022, + 0x1.0000000000001p1021 + }, + { // Entry 474 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 475 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 476 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 477 + HUGE_VAL, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 478 + HUGE_VAL, + HUGE_VAL, + 0.0 + }, + { // Entry 479 + HUGE_VAL, + HUGE_VAL, + -0.0 + }, + { // Entry 480 + HUGE_VAL, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 481 + HUGE_VAL, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 482 + HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 483 + HUGE_VAL, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 484 + HUGE_VAL, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 485 + HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 486 + HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 487 + HUGE_VAL, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 488 + HUGE_VAL, + -HUGE_VAL, + 0.0 + }, + { // Entry 489 + HUGE_VAL, + -HUGE_VAL, + -0.0 + }, + { // Entry 490 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 491 + HUGE_VAL, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 492 + HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 493 + HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 494 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 495 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 496 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 497 + HUGE_VAL, + 0.0, + HUGE_VAL + }, + { // Entry 498 + HUGE_VAL, + -0.0, + HUGE_VAL + }, + { // Entry 499 + HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 500 + HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 501 + HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 502 + HUGE_VAL, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 503 + HUGE_VAL, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 504 + HUGE_VAL, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 505 + HUGE_VAL, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 506 + HUGE_VAL, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 507 + HUGE_VAL, + 0.0, + -HUGE_VAL + }, + { // Entry 508 + HUGE_VAL, + -0.0, + -HUGE_VAL + }, + { // Entry 509 + HUGE_VAL, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 510 + HUGE_VAL, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 511 + HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 512 + 0x1.fffffffffffff0p1023, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 513 + 0x1.p-1022, + 0.0, + 0x1.0p-1022 + }, + { // Entry 514 + 0x1.p-1074, + 0.0, + 0x1.0p-1074 + }, + { // Entry 515 + 0.0, + 0.0, + 0.0 + }, + { // Entry 516 + 0.0, + 0.0, + -0.0 + }, + { // Entry 517 + 0x1.p-1074, + 0.0, + -0x1.0p-1074 + }, + { // Entry 518 + 0x1.p-1022, + 0.0, + -0x1.0p-1022 + }, + { // Entry 519 + 0x1.fffffffffffff0p1023, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 520 + 0x1.fffffffffffff0p1023, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 521 + 0x1.p-1022, + -0.0, + 0x1.0p-1022 + }, + { // Entry 522 + 0x1.p-1074, + -0.0, + 0x1.0p-1074 + }, + { // Entry 523 + 0.0, + -0.0, + 0.0 + }, + { // Entry 524 + 0.0, + -0.0, + -0.0 + }, + { // Entry 525 + 0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 526 + 0x1.p-1022, + -0.0, + -0x1.0p-1022 + }, + { // Entry 527 + 0x1.fffffffffffff0p1023, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 528 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 529 + 0x1.p-1022, + 0x1.0p-1022, + 0.0 + }, + { // Entry 530 + 0x1.p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 531 + 0x1.p-1074, + -0x1.0p-1074, + 0.0 + }, + { // Entry 532 + 0x1.p-1022, + -0x1.0p-1022, + 0.0 + }, + { // Entry 533 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 534 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 535 + 0x1.p-1022, + 0x1.0p-1022, + -0.0 + }, + { // Entry 536 + 0x1.p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 537 + 0x1.p-1074, + -0x1.0p-1074, + -0.0 + }, + { // Entry 538 + 0x1.p-1022, + -0x1.0p-1022, + -0.0 + }, + { // Entry 539 + 0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 540 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 541 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 542 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 543 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 544 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 545 + HUGE_VAL, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 546 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1022, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 547 + 0x1.000000000000000000000000007fffffp-1022, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 548 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 549 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1074, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 550 + 0x1.40p2, + 0x1.8p1, + 0x1.0p2 + }, + { // Entry 551 + 0x1.40p2, + 0x1.8p1, + -0x1.0p2 + }, + { // Entry 552 + 0x1.a0p3, + 0x1.4p2, + 0x1.8p3 + }, + { // Entry 553 + 0x1.a0p3, + 0x1.4p2, + -0x1.8p3 + } +}; diff --git a/tests/math_data/hypotf_intel_data.h b/tests/math_data/hypotf_intel_data.h new file mode 100644 index 000000000..fd4334b34 --- /dev/null +++ b/tests/math_data/hypotf_intel_data.h @@ -0,0 +1,2373 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_hypotf_intel_data[] = { + { // Entry 0 + 0x1.804fa3000c7ebdf47434f397ec84c7a0p3, + -0x1.3372aep3, + 0x1.cd2cfap2 + }, + { // Entry 1 + 0x1.75d046fff6326da34cade3039156d2ecp3, + -0x1.3372b0p3, + -0x1.a94388p2 + }, + { // Entry 2 + 0x1.9a134b0022862e28be8459544c0a0179p-16, + -0x1.38456cp-16, + -0x1.09cc42p-16 + }, + { // Entry 3 + 0x1.55555e0000000000000000125fff8890p-101, + -0x1.55555ep-101, + 0x1.c0p-147 + }, + { // Entry 4 + 0x1.f6c65800001e1be1724156e80ea39f54p-41, + -0x1.5cp-62, + -0x1.f6c658p-41 + }, + { // Entry 5 + 0x1.75298b006e4054fd81616e2f820cb18ap4, + -0x1.6b91b0p4, + -0x1.5046aep2 + }, + { // Entry 6 + 0x1.7ffffc0055555a38da2bfed0dc82cd7ap0, + -0x1.7ffffcp0, + 0x1.000006p-16 + }, + { // Entry 7 + 0x1.f13b56fc46bed2325ccd2c7cd5e69632p21, + -0x1.f12bp21, + 0x1.fddffep15 + }, + { // Entry 8 + 0x1.555570p-2, + 0x1.p-149, + 0x1.555570p-2 + }, + { // Entry 9 + 0x1.55553ap100, + 0x1.p0, + 0x1.55553ap100 + }, + { // Entry 10 + 0x1.6a09eaa611765e10631270d5de08ee6ep100, + 0x1.000006p100, + 0x1.p100 + }, + { // Entry 11 + 0x1.6a099efd14740b74de47d3287c3ef106p-19, + 0x1.000024p-19, + 0x1.fffeeep-20 + }, + { // Entry 12 + 0x1.6a15e5005f98a0819477ee86c40c70a6p0, + 0x1.0142b2p0, + -0x1.fd9982p-1 + }, + { // Entry 13 + 0x1.7c02c30005404c762e561df458868db8p6, + 0x1.077f4cp6, + 0x1.11d1ecp6 + }, + { // Entry 14 + 0x1.eb772efc48db2565eb91a892b9109e1ap2, + 0x1.198cc0p0, + -0x1.e66626p2 + }, + { // Entry 15 + 0x1.fdecbd00002c3d202ee051ddfe076387p9, + 0x1.1bd856p1, + 0x1.fdec6ep9 + }, + { // Entry 16 + 0x1.800000001affffffff0d0000001115ffp-23, + 0x1.20p-40, + 0x1.80p-23 + }, + { // Entry 17 + 0x1.2004d7000c9e59b6c319a40f068137f1p6, + 0x1.20p6, + 0x1.a66670p-1 + }, + { // Entry 18 + 0x1.38031300000fffd7a4800dc6d8c127c4p1, + 0x1.3160acp1, + -0x1.p-1 + }, + { // Entry 19 + 0x1.814cee00298d8fda8ba443fa2826cc78p9, + 0x1.41f070p2, + 0x1.814ad4p9 + }, + { // Entry 20 + 0x1.ba86e8ff3abb57bc63ed628576cbf719p100, + 0x1.60p100, + 0x1.0c30c4p100 + }, + { // Entry 21 + 0x1.276275p-10, + 0x1.627626p-11, + 0x1.d89d88p-11 + }, + { // Entry 22 + 0x1.30e418fc6e8f1e1342c13fc83cd67621p3, + 0x1.74acc6p-1, + -0x1.30p3 + }, + { // Entry 23 + 0x1.fe01f0fc1044c738957a70f05fc15f48p3, + 0x1.758fc2p-2, + 0x1.fddfbcp3 + }, + { // Entry 24 + 0x1.000009p0, + 0x1.80p-10, + 0x1.ffffeep-1 + }, + { // Entry 25 + 0x1.4000030000066666570a3d851eb86f69p3, + 0x1.80000ap2, + 0x1.p3 + }, + { // Entry 26 + 0x1.8bb3cb0000954ddd1ba4ba3d1be7bcb3p0, + 0x1.88603ep0, + -0x1.99999ap-3 + }, + { // Entry 27 + 0x1.068c070000048279abdd7e2cb99727aep1, + 0x1.8bab4ap-1, + -0x1.e66674p0 + }, + { // Entry 28 + 0x1.8f827b00115def47c454b3599143d2eap10, + 0x1.8f827ap10, + 0x1.c454b0p-2 + }, + { // Entry 29 + 0x1.a6645cfc2ab00e5f4a76893e77c93e80p0, + 0x1.9287e2p0, + -0x1.p-1 + }, + { // Entry 30 + 0x1.1bcf0effffc79fbfe4638ed7c7f20ad3p1, + 0x1.938d28p-1, + 0x1.094590p1 + }, + { // Entry 31 + 0x1.10d8ce00004de00b92c66641b1a95fc7p0, + 0x1.9e874ap-1, + 0x1.62e42ep-1 + }, + { // Entry 32 + 0x1.fc516efc69a62ca47aa82a4c310ba6c3p-2, + 0x1.af1948p-6, + -0x1.fb9a80p-2 + }, + { // Entry 33 + 0x1.e9e6a4fc2ddde87638b4684564e14ce6p-3, + 0x1.b81272p-5, + -0x1.dd633ep-3 + }, + { // Entry 34 + 0x1.7396f60007c18075d8efd4c838b91544p-1, + 0x1.b89068p-3, + 0x1.62e42ep-1 + }, + { // Entry 35 + 0x1.c2c3acfcf40d75a5ea60e9c114443950p1, + 0x1.c1a088p1, + -0x1.p-2 + }, + { // Entry 36 + 0x1.a43e960006dba02d6beb1d2c1eeaeceap-1, + 0x1.c2250cp-2, + 0x1.62e42ep-1 + }, + { // Entry 37 + 0x1.1efb1b00082040053780041dc6b1f307p0, + 0x1.c317a0p-1, + 0x1.62e42ep-1 + }, + { // Entry 38 + 0x1.58e36d0000017c0ab31fb608eac90731p3, + 0x1.ce38bap2, + 0x1.ffffccp2 + }, + { // Entry 39 + 0x1.fcef76fc92680470b1a17bd9b4b35c4ap-1, + 0x1.d1e90ap-1, + -0x1.999958p-2 + }, + { // Entry 40 + 0x1.ed06b0fc3e0586fd61429f9f743c6d47p0, + 0x1.dc1edcp0, + -0x1.p-1 + }, + { // Entry 41 + 0x1.af9c310000012fae75588f7c15db9873p-1, + 0x1.eb4822p-2, + 0x1.62e42ep-1 + }, + { // Entry 42 + 0x1.fffc00fc05b6516a140feda87b19a0a1p2, + 0x1.fbffbep-10, + 0x1.fffcp2 + }, + { // Entry 43 + 0x1.ff7cc2fc27e17feee79397d1019b42f2p1, + 0x1.fbfffep-3, + 0x1.fe8040p1 + }, + { // Entry 44 + 0x1.fe01f0fc1044c738957a70f05fc15f48p3, + 0x1.fddfbcp3, + 0x1.758fc2p-2 + }, + { // Entry 45 + 0x1.f13b56fc46bed2325ccd2c7cd5e69632p21, + 0x1.fddffep15, + -0x1.f12bp21 + }, + { // Entry 46 + 0x1.c48a1cfcd1996ebda81b01af08af23dfp0, + 0x1.ff7ffep-3, + 0x1.c0p0 + }, + { // Entry 47 + 0x1.ff87fb000001c07920c4dcf4f126de76p7, + 0x1.ff8ffep1, + 0x1.ff77fep7 + }, + { // Entry 48 + 0x1.ffffffff8007fffff001ffeffc00bff3p-127, + 0x1.ffe0p-138, + 0x1.fffffcp-127 + }, + { // Entry 49 + 0x1.01fbfb00000001fc0fda76cb886d48a6p2, + 0x1.fffbfep1, + 0x1.fff9fep-2 + }, + { // Entry 50 + 0x1.1e376efdd5824c75e9a0b3b7ea4e60bcp21, + 0x1.ffffc0p20, + 0x1.000050p20 + }, + { // Entry 51 + 0x1.1e376efdd469e54558718854476503e6p-19, + 0x1.ffffc6p-20, + 0x1.000044p-20 + }, + { // Entry 52 + 0x1.fffff0ffffffc0000e200069ec031c2ep6, + 0x1.fffff8p-6, + 0x1.fffff0p6 + }, + { // Entry 53 + 0x1.6a09e4fde9d71619ea1b09860fc404c9p0, + 0x1.fffffcp-1, + 0x1.p0 + }, + { // Entry 54 + 0x1.fffff8ffffffc0000320000aec00269ep-2, + 0x1.fffffcp-14, + 0x1.fffff8p-2 + }, + { // Entry 55 + 0x1.800000000000001555550000005554bdp-24, + 0x1.fffffcp-54, + -0x1.80p-24 + }, + { // Entry 56 + 0x1.fffffcfffffdc000009fffffac000035p10, + 0x1.fffffcp10, + 0x1.fffffcp-2 + }, + { // Entry 57 + 0x1.fffffd000001c00002a000032c000275p12, + 0x1.fffffcp12, + -0x1.p1 + }, + { // Entry 58 + 0x1.fffffcffffffc00000a00000ec000176p12, + 0x1.fffffcp12, + 0x1.fffffep0 + }, + { // Entry 59 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p0, + -0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 60 + 0x1.6a09e7d1fda3e601624311059df7157bp0, + -0x1.000002p0, + -0x1.p0 + }, + { // Entry 61 + 0x1.6a09e71cf8b1944db3c8e462b0886601p0, + -0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 62 + 0x1.6a09e7d1fda3e601624311059df7157bp0, + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 63 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 64 + 0x1.6a09e5b2eec9c250117a2e237528575cp0, + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 65 + 0x1.6a09e71cf8b1944db3c8e462b0886601p0, + -0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 66 + 0x1.6a09e5b2eec9c250117a2e237528575cp0, + -0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 67 + 0x1.6a09e4fde9d66114f6320ab3ef821653p0, + -0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 68 + 0x1.6a09e71cf8b1944db3c8e462b0886601p0, + -0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 69 + 0x1.6a09e7d1fda3e601624311059df7157bp0, + -0x1.000002p0, + 0x1.p0 + }, + { // Entry 70 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p0, + -0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 71 + 0x1.6a09e5b2eec9c250117a2e237528575cp0, + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 72 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 73 + 0x1.6a09e7d1fda3e601624311059df7157bp0, + -0x1.p0, + 0x1.000002p0 + }, + { // Entry 74 + 0x1.6a09e4fde9d66114f6320ab3ef821653p0, + -0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 75 + 0x1.6a09e5b2eec9c250117a2e237528575cp0, + -0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 76 + 0x1.6a09e71cf8b1944db3c8e462b0886601p0, + -0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 77 + 0x1.6a09e71cf8b1944db3c8e462b0886601p0, + 0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 78 + 0x1.6a09e5b2eec9c250117a2e237528575cp0, + 0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 79 + 0x1.6a09e4fde9d66114f6320ab3ef821653p0, + 0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 80 + 0x1.6a09e7d1fda3e601624311059df7157bp0, + 0x1.p0, + -0x1.000002p0 + }, + { // Entry 81 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.p0, + -0x1.p0 + }, + { // Entry 82 + 0x1.6a09e5b2eec9c250117a2e237528575cp0, + 0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 83 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p0, + 0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 84 + 0x1.6a09e7d1fda3e601624311059df7157bp0, + 0x1.000002p0, + -0x1.p0 + }, + { // Entry 85 + 0x1.6a09e71cf8b1944db3c8e462b0886601p0, + 0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 86 + 0x1.6a09e4fde9d66114f6320ab3ef821653p0, + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 87 + 0x1.6a09e5b2eec9c250117a2e237528575cp0, + 0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 88 + 0x1.6a09e71cf8b1944db3c8e462b0886601p0, + 0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 89 + 0x1.6a09e5b2eec9c250117a2e237528575cp0, + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 90 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 91 + 0x1.6a09e7d1fda3e601624311059df7157bp0, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 92 + 0x1.6a09e71cf8b1944db3c8e462b0886601p0, + 0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 93 + 0x1.6a09e7d1fda3e601624311059df7157bp0, + 0x1.000002p0, + 0x1.p0 + }, + { // Entry 94 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p0, + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 95 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 96 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 97 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.p0, + -0x1.p0 + }, + { // Entry 98 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 99 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 100 + 0x1.01fe03f61bad04b1068572febc925ad1p3, + 0x1.p0, + 0x1.p3 + }, + { // Entry 101 + 0x1.01fe03f61bad04b1068572febc925ad1p3, + 0x1.p3, + 0x1.p0 + }, + { // Entry 102 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep3, + 0x1.p3, + 0x1.p3 + }, + { // Entry 103 + 0x1.00001ffffe00003ffff60001bfffacp9, + 0x1.p0, + 0x1.p9 + }, + { // Entry 104 + 0x1.000007ffffe00000fffff600006ffffap10, + 0x1.p0, + 0x1.p10 + }, + { // Entry 105 + 0x1.0007ffe000fff6006ffac041fca62cadp9, + 0x1.p3, + 0x1.p9 + }, + { // Entry 106 + 0x1.0001fffe0003fff6001bffac0107fca6p10, + 0x1.p3, + 0x1.p10 + }, + { // Entry 107 + 0x1.p100, + 0x1.p0, + 0x1.p100 + }, + { // Entry 108 + 0x1.p101, + 0x1.p0, + 0x1.p101 + }, + { // Entry 109 + 0x1.p100, + 0x1.p3, + 0x1.p100 + }, + { // Entry 110 + 0x1.p101, + 0x1.p3, + 0x1.p101 + }, + { // Entry 111 + 0x1.00001ffffe00003ffff60001bfffacp9, + 0x1.p9, + 0x1.p0 + }, + { // Entry 112 + 0x1.0007ffe000fff6006ffac041fca62cadp9, + 0x1.p9, + 0x1.p3 + }, + { // Entry 113 + 0x1.000007ffffe00000fffff600006ffffap10, + 0x1.p10, + 0x1.p0 + }, + { // Entry 114 + 0x1.0001fffe0003fff6001bffac0107fca6p10, + 0x1.p10, + 0x1.p3 + }, + { // Entry 115 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep9, + 0x1.p9, + 0x1.p9 + }, + { // Entry 116 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p10, + 0x1.p9, + 0x1.p10 + }, + { // Entry 117 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p10, + 0x1.p10, + 0x1.p9 + }, + { // Entry 118 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep10, + 0x1.p10, + 0x1.p10 + }, + { // Entry 119 + 0x1.p100, + 0x1.p9, + 0x1.p100 + }, + { // Entry 120 + 0x1.p101, + 0x1.p9, + 0x1.p101 + }, + { // Entry 121 + 0x1.p100, + 0x1.p10, + 0x1.p100 + }, + { // Entry 122 + 0x1.p101, + 0x1.p10, + 0x1.p101 + }, + { // Entry 123 + 0x1.p100, + 0x1.p100, + 0x1.p0 + }, + { // Entry 124 + 0x1.p100, + 0x1.p100, + 0x1.p3 + }, + { // Entry 125 + 0x1.p101, + 0x1.p101, + 0x1.p0 + }, + { // Entry 126 + 0x1.p101, + 0x1.p101, + 0x1.p3 + }, + { // Entry 127 + 0x1.p100, + 0x1.p100, + 0x1.p9 + }, + { // Entry 128 + 0x1.p100, + 0x1.p100, + 0x1.p10 + }, + { // Entry 129 + 0x1.p101, + 0x1.p101, + 0x1.p9 + }, + { // Entry 130 + 0x1.p101, + 0x1.p101, + 0x1.p10 + }, + { // Entry 131 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep100, + 0x1.p100, + 0x1.p100 + }, + { // Entry 132 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p101, + 0x1.p100, + 0x1.p101 + }, + { // Entry 133 + 0x1.1e3779b97f4a7c15f39cc0605cedc834p101, + 0x1.p101, + 0x1.p100 + }, + { // Entry 134 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep101, + 0x1.p101, + 0x1.p101 + }, + { // Entry 135 + 0x1.ad533459cffc47225872f4a951e3eb94p2, + 0x1.7ffffep2, + 0x1.7ffffep1 + }, + { // Entry 136 + 0x1.ad5334cc4c939b314f9ca7280b7b2232p2, + 0x1.7ffffep2, + 0x1.80p1 + }, + { // Entry 137 + 0x1.ad53353ec92b695ec60ef2256f96f6bcp2, + 0x1.7ffffep2, + 0x1.800002p1 + }, + { // Entry 138 + 0x1.ad533623c258e030759a4ee61d10fcc3p2, + 0x1.80p2, + 0x1.7ffffep1 + }, + { // Entry 139 + 0x1.ad5336963eefba20ed6b20908b64ac4ep2, + 0x1.80p2, + 0x1.80p1 + }, + { // Entry 140 + 0x1.ad533708bb870e2fe4436964fee071dep2, + 0x1.80p2, + 0x1.800002p1 + }, + { // Entry 141 + 0x1.ad5337edb4b5f35d10e52ba46980f177p2, + 0x1.800002p2, + 0x1.7ffffep1 + }, + { // Entry 142 + 0x1.ad533860314c532f0a41112392b8f610p2, + 0x1.800002p2, + 0x1.80p1 + }, + { // Entry 143 + 0x1.ad5338d2ade32d1f82634c77c4e56d07p2, + 0x1.800002p2, + 0x1.800002p1 + }, + { // Entry 144 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0 + }, + { // Entry 145 + 0x1.6a09e0bfcc232939bfd6f09afe47e193p-126, + 0x1.fffff8p-127, + 0x1.fffff8p-127 + }, + { // Entry 146 + 0x1.6a09e229d60a463271f3020c29b89eb0p-126, + 0x1.fffff8p-127, + 0x1.fffffcp-127 + }, + { // Entry 147 + 0x1.6a09e393dff2cd350be1111ca28a749bp-126, + 0x1.fffff8p-127, + 0x1.p-126 + }, + { // Entry 148 + 0x1.6a09e229d60a463271f3020c29b89eb0p-126, + 0x1.fffffcp-127, + 0x1.fffff8p-127 + }, + { // Entry 149 + 0x1.6a09e393dfeff92139690200f46eaf69p-126, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 150 + 0x1.6a09e4fde9d71619ea1b09860fc404c9p-126, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 151 + 0x1.6a09e393dff2cd350be1111ca28a749bp-126, + 0x1.p-126, + 0x1.fffff8p-127 + }, + { // Entry 152 + 0x1.6a09e4fde9d71619ea1b09860fc404c9p-126, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 153 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-126, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 154 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 155 + 0x1.6a09e4fde9d66114f6320ab3ef821653p64, + 0x1.fffffep63, + 0x1.fffffep63 + }, + { // Entry 156 + 0x1.6a09e4fde9d66114f6320ab3ef821653p64, + 0x1.fffffep63, + 0x1.fffffep63 + }, + { // Entry 157 + 0x1.6a09e4fde9d66114f6320ab3ef821653p53, + 0x1.fffffep52, + 0x1.fffffep52 + }, + { // Entry 158 + 0x1.6a09e5b2eec9c250117a2e237528575cp53, + 0x1.fffffep52, + 0x1.p53 + }, + { // Entry 159 + 0x1.6a09e71cf8b1944db3c8e462b0886601p53, + 0x1.fffffep52, + 0x1.000002p53 + }, + { // Entry 160 + 0x1.6a09e5b2eec9c250117a2e237528575cp53, + 0x1.p53, + 0x1.fffffep52 + }, + { // Entry 161 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep53, + 0x1.p53, + 0x1.p53 + }, + { // Entry 162 + 0x1.6a09e7d1fda3e601624311059df7157bp53, + 0x1.p53, + 0x1.000002p53 + }, + { // Entry 163 + 0x1.6a09e71cf8b1944db3c8e462b0886601p53, + 0x1.000002p53, + 0x1.fffffep52 + }, + { // Entry 164 + 0x1.6a09e7d1fda3e601624311059df7157bp53, + 0x1.000002p53, + 0x1.p53 + }, + { // Entry 165 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p53, + 0x1.000002p53, + 0x1.000002p53 + }, + { // Entry 166 + 0x1.6a09e4fde9d66114f6320ab3ef821653p-53, + 0x1.fffffep-54, + 0x1.fffffep-54 + }, + { // Entry 167 + 0x1.6a09e5b2eec9c250117a2e237528575cp-53, + 0x1.fffffep-54, + 0x1.p-53 + }, + { // Entry 168 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-53, + 0x1.fffffep-54, + 0x1.000002p-53 + }, + { // Entry 169 + 0x1.6a09e5b2eec9c250117a2e237528575cp-53, + 0x1.p-53, + 0x1.fffffep-54 + }, + { // Entry 170 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-53, + 0x1.p-53, + 0x1.p-53 + }, + { // Entry 171 + 0x1.6a09e7d1fda3e601624311059df7157bp-53, + 0x1.p-53, + 0x1.000002p-53 + }, + { // Entry 172 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-53, + 0x1.000002p-53, + 0x1.fffffep-54 + }, + { // Entry 173 + 0x1.6a09e7d1fda3e601624311059df7157bp-53, + 0x1.000002p-53, + 0x1.p-53 + }, + { // Entry 174 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p-53, + 0x1.000002p-53, + 0x1.000002p-53 + }, + { // Entry 175 + 0x1.fffffep52, + 0x1.fffffep52, + 0x1.fffffep-54 + }, + { // Entry 176 + 0x1.fffffep52, + 0x1.fffffep52, + 0x1.p-53 + }, + { // Entry 177 + 0x1.fffffep52, + 0x1.fffffep52, + 0x1.000002p-53 + }, + { // Entry 178 + 0x1.p53, + 0x1.p53, + 0x1.fffffep-54 + }, + { // Entry 179 + 0x1.p53, + 0x1.p53, + 0x1.p-53 + }, + { // Entry 180 + 0x1.p53, + 0x1.p53, + 0x1.000002p-53 + }, + { // Entry 181 + 0x1.000002p53, + 0x1.000002p53, + 0x1.fffffep-54 + }, + { // Entry 182 + 0x1.000002p53, + 0x1.000002p53, + 0x1.p-53 + }, + { // Entry 183 + 0x1.000002p53, + 0x1.000002p53, + 0x1.000002p-53 + }, + { // Entry 184 + 0x1.fffffep52, + 0x1.fffffep52, + -0x1.p-149 + }, + { // Entry 185 + 0x1.fffffep52, + 0x1.fffffep52, + 0.0 + }, + { // Entry 186 + 0x1.fffffep52, + 0x1.fffffep52, + 0x1.p-149 + }, + { // Entry 187 + 0x1.p53, + 0x1.p53, + -0x1.p-149 + }, + { // Entry 188 + 0x1.p53, + 0x1.p53, + 0.0 + }, + { // Entry 189 + 0x1.p53, + 0x1.p53, + 0x1.p-149 + }, + { // Entry 190 + 0x1.000002p53, + 0x1.000002p53, + -0x1.p-149 + }, + { // Entry 191 + 0x1.000002p53, + 0x1.000002p53, + 0.0 + }, + { // Entry 192 + 0x1.000002p53, + 0x1.000002p53, + 0x1.p-149 + }, + { // Entry 193 + 0x1.fffffep-54, + 0x1.fffffep-54, + -0x1.p-149 + }, + { // Entry 194 + 0x1.fffffep-54, + 0x1.fffffep-54, + 0.0 + }, + { // Entry 195 + 0x1.fffffep-54, + 0x1.fffffep-54, + 0x1.p-149 + }, + { // Entry 196 + 0x1.p-53, + 0x1.p-53, + -0x1.p-149 + }, + { // Entry 197 + 0x1.p-53, + 0x1.p-53, + 0.0 + }, + { // Entry 198 + 0x1.p-53, + 0x1.p-53, + 0x1.p-149 + }, + { // Entry 199 + 0x1.000002p-53, + 0x1.000002p-53, + -0x1.p-149 + }, + { // Entry 200 + 0x1.000002p-53, + 0x1.000002p-53, + 0.0 + }, + { // Entry 201 + 0x1.000002p-53, + 0x1.000002p-53, + 0x1.p-149 + }, + { // Entry 202 + 0x1.fffffe000000000000000000003fffffp52, + 0x1.fffffep52, + 0x1.fffffep-1 + }, + { // Entry 203 + 0x1.fffffe0000000000000000000040p52, + 0x1.fffffep52, + 0x1.p0 + }, + { // Entry 204 + 0x1.fffffe00000000000000000000400001p52, + 0x1.fffffep52, + 0x1.000002p0 + }, + { // Entry 205 + 0x1.000000000000000000000000001fffffp53, + 0x1.p53, + 0x1.fffffep-1 + }, + { // Entry 206 + 0x1.000000000000000000000000001fffffp53, + 0x1.p53, + 0x1.p0 + }, + { // Entry 207 + 0x1.0000000000000000000000000020p53, + 0x1.p53, + 0x1.000002p0 + }, + { // Entry 208 + 0x1.000002000000000000000000001fffffp53, + 0x1.000002p53, + 0x1.fffffep-1 + }, + { // Entry 209 + 0x1.000002000000000000000000001fffffp53, + 0x1.000002p53, + 0x1.p0 + }, + { // Entry 210 + 0x1.0000020000000000000000000020p53, + 0x1.000002p53, + 0x1.000002p0 + }, + { // Entry 211 + 0x1.fffffe000000000000000000003fffffp-1, + 0x1.fffffep-54, + 0x1.fffffep-1 + }, + { // Entry 212 + 0x1.000000000000000000000000001fffffp0, + 0x1.fffffep-54, + 0x1.p0 + }, + { // Entry 213 + 0x1.000002000000000000000000001fffffp0, + 0x1.fffffep-54, + 0x1.000002p0 + }, + { // Entry 214 + 0x1.fffffe0000000000000000000040p-1, + 0x1.p-53, + 0x1.fffffep-1 + }, + { // Entry 215 + 0x1.000000000000000000000000001fffffp0, + 0x1.p-53, + 0x1.p0 + }, + { // Entry 216 + 0x1.000002000000000000000000001fffffp0, + 0x1.p-53, + 0x1.000002p0 + }, + { // Entry 217 + 0x1.fffffe00000000000000000000400001p-1, + 0x1.000002p-53, + 0x1.fffffep-1 + }, + { // Entry 218 + 0x1.0000000000000000000000000020p0, + 0x1.000002p-53, + 0x1.p0 + }, + { // Entry 219 + 0x1.0000020000000000000000000020p0, + 0x1.000002p-53, + 0x1.000002p0 + }, + { // Entry 220 + 0x1.fffffe00003fffffbffffc000004p20, + 0x1.fffffep20, + 0x1.fffffep-1 + }, + { // Entry 221 + 0x1.fffffe00004000003ffffc3ffff440p20, + 0x1.fffffep20, + 0x1.p0 + }, + { // Entry 222 + 0x1.fffffe00004000013ffffe3fffd63fffp20, + 0x1.fffffep20, + 0x1.000002p0 + }, + { // Entry 223 + 0x1.00000000001fffffbffffe200008p21, + 0x1.p21, + 0x1.fffffep-1 + }, + { // Entry 224 + 0x1.00000000001ffffffffffep21, + 0x1.p21, + 0x1.p0 + }, + { // Entry 225 + 0x1.00000000002000007ffffe7ffff0p21, + 0x1.p21, + 0x1.000002p0 + }, + { // Entry 226 + 0x1.00000200001fffff7fffff200011bfffp21, + 0x1.000002p21, + 0x1.fffffep-1 + }, + { // Entry 227 + 0x1.00000200001fffffbffffe80000bp21, + 0x1.000002p21, + 0x1.p0 + }, + { // Entry 228 + 0x1.00000200002000003ffffdfffffcp21, + 0x1.000002p21, + 0x1.000002p0 + }, + { // Entry 229 + 0x1.fffffe00000fffffefffffc0000040p21, + 0x1.fffffep21, + 0x1.fffffep-1 + }, + { // Entry 230 + 0x1.fffffe00001000000fffffcfffff50p21, + 0x1.fffffep21, + 0x1.p0 + }, + { // Entry 231 + 0x1.fffffe00001000005000004ffffdcfffp21, + 0x1.fffffep21, + 0x1.000002p0 + }, + { // Entry 232 + 0x1.000000000007ffffefffffe8000080p22, + 0x1.p22, + 0x1.fffffep-1 + }, + { // Entry 233 + 0x1.000000000007ffffffffffe0p22, + 0x1.p22, + 0x1.p0 + }, + { // Entry 234 + 0x1.00000000000800001ffffffffffeffffp22, + 0x1.p22, + 0x1.000002p0 + }, + { // Entry 235 + 0x1.000002000007ffffe00000280000afffp22, + 0x1.000002p22, + 0x1.fffffep-1 + }, + { // Entry 236 + 0x1.000002000007fffff000000000007fffp22, + 0x1.000002p22, + 0x1.p0 + }, + { // Entry 237 + 0x1.00000200000800000fffffdfffffc0p22, + 0x1.000002p22, + 0x1.000002p0 + }, + { // Entry 238 + 0x1.fffffe000003fffffbfffffc000004p22, + 0x1.fffffep22, + 0x1.fffffep-1 + }, + { // Entry 239 + 0x1.fffffe000004000003fffffffffff7ffp22, + 0x1.fffffep22, + 0x1.p0 + }, + { // Entry 240 + 0x1.fffffe00000400001400001ffffff7ffp22, + 0x1.fffffep22, + 0x1.000002p0 + }, + { // Entry 241 + 0x1.000000000001fffffc000000000007ffp23, + 0x1.p23, + 0x1.fffffep-1 + }, + { // Entry 242 + 0x1.000000000001fffffffffffep23, + 0x1.p23, + 0x1.p0 + }, + { // Entry 243 + 0x1.000000000002000008000005ffffefffp23, + 0x1.p23, + 0x1.000002p0 + }, + { // Entry 244 + 0x1.000002000001fffff800000fffffefffp23, + 0x1.000002p23, + 0x1.fffffep-1 + }, + { // Entry 245 + 0x1.000002000001fffffc000005fffffbffp23, + 0x1.000002p23, + 0x1.p0 + }, + { // Entry 246 + 0x1.000002000002000003fffffdfffffcp23, + 0x1.000002p23, + 0x1.000002p0 + }, + { // Entry 247 + 0x1.fffffe000000fffffeffffffc0000040p23, + 0x1.fffffep23, + 0x1.fffffep-1 + }, + { // Entry 248 + 0x1.fffffe000001000001000000c000003fp23, + 0x1.fffffep23, + 0x1.p0 + }, + { // Entry 249 + 0x1.fffffe000001000005000008c000063fp23, + 0x1.fffffep23, + 0x1.000002p0 + }, + { // Entry 250 + 0x1.0000000000007fffff0000006000007fp24, + 0x1.p24, + 0x1.fffffep-1 + }, + { // Entry 251 + 0x1.0000000000007fffffffffffe0p24, + 0x1.p24, + 0x1.p0 + }, + { // Entry 252 + 0x1.000000000000800002000001dffffeffp24, + 0x1.p24, + 0x1.000002p0 + }, + { // Entry 253 + 0x1.0000020000007ffffe0000045ffff840p24, + 0x1.000002p24, + 0x1.fffffep-1 + }, + { // Entry 254 + 0x1.0000020000007fffff000001dffffcc0p24, + 0x1.000002p24, + 0x1.p0 + }, + { // Entry 255 + 0x1.000002000000800000ffffffdfffffc0p24, + 0x1.000002p24, + 0x1.000002p0 + }, + { // Entry 256 + 0x1.fffffe0000003fffffbffffffc000004p24, + 0x1.fffffep24, + 0x1.fffffep-1 + }, + { // Entry 257 + 0x1.fffffe0000004000004000003c000034p24, + 0x1.fffffep24, + 0x1.p0 + }, + { // Entry 258 + 0x1.fffffe0000004000014000023c000214p24, + 0x1.fffffep24, + 0x1.000002p0 + }, + { // Entry 259 + 0x1.0000000000001fffffc000001e000007p25, + 0x1.p25, + 0x1.fffffep-1 + }, + { // Entry 260 + 0x1.0000000000001ffffffffffffep25, + 0x1.p25, + 0x1.p0 + }, + { // Entry 261 + 0x1.0000000000002000008000007dffffefp25, + 0x1.p25, + 0x1.000002p0 + }, + { // Entry 262 + 0x1.0000020000001fffff8000011dfffdd4p25, + 0x1.000002p25, + 0x1.fffffep-1 + }, + { // Entry 263 + 0x1.0000020000001fffffc000007dffff0cp25, + 0x1.000002p25, + 0x1.p0 + }, + { // Entry 264 + 0x1.0000020000002000003ffffffdfffffcp25, + 0x1.000002p25, + 0x1.000002p0 + }, + { // Entry 265 + 0x1.6a09e4fde9d66114f6320ab3ef821653p-60, + 0x1.fffffep-61, + 0x1.fffffep-61 + }, + { // Entry 266 + 0x1.6a09e5b2eec9c250117a2e237528575cp-60, + 0x1.fffffep-61, + 0x1.p-60 + }, + { // Entry 267 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-60, + 0x1.fffffep-61, + 0x1.000002p-60 + }, + { // Entry 268 + 0x1.6a09e5b2eec9c250117a2e237528575cp-60, + 0x1.p-60, + 0x1.fffffep-61 + }, + { // Entry 269 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-60, + 0x1.p-60, + 0x1.p-60 + }, + { // Entry 270 + 0x1.6a09e7d1fda3e601624311059df7157bp-60, + 0x1.p-60, + 0x1.000002p-60 + }, + { // Entry 271 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-60, + 0x1.000002p-60, + 0x1.fffffep-61 + }, + { // Entry 272 + 0x1.6a09e7d1fda3e601624311059df7157bp-60, + 0x1.000002p-60, + 0x1.p-60 + }, + { // Entry 273 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p-60, + 0x1.000002p-60, + 0x1.000002p-60 + }, + { // Entry 274 + 0x1.6a09e4fde9d66114f6320ab3ef821653p-10, + 0x1.fffffep-11, + 0x1.fffffep-11 + }, + { // Entry 275 + 0x1.6a09e5b2eec9c250117a2e237528575cp-10, + 0x1.fffffep-11, + 0x1.p-10 + }, + { // Entry 276 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-10, + 0x1.fffffep-11, + 0x1.000002p-10 + }, + { // Entry 277 + 0x1.6a09e5b2eec9c250117a2e237528575cp-10, + 0x1.p-10, + 0x1.fffffep-11 + }, + { // Entry 278 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-10, + 0x1.p-10, + 0x1.p-10 + }, + { // Entry 279 + 0x1.6a09e7d1fda3e601624311059df7157bp-10, + 0x1.p-10, + 0x1.000002p-10 + }, + { // Entry 280 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-10, + 0x1.000002p-10, + 0x1.fffffep-11 + }, + { // Entry 281 + 0x1.6a09e7d1fda3e601624311059df7157bp-10, + 0x1.000002p-10, + 0x1.p-10 + }, + { // Entry 282 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p-10, + 0x1.000002p-10, + 0x1.000002p-10 + }, + { // Entry 283 + 0x1.6a09e4fde9d66114f6320ab3ef821653p-1, + 0x1.fffffep-2, + 0x1.fffffep-2 + }, + { // Entry 284 + 0x1.6a09e5b2eec9c250117a2e237528575cp-1, + 0x1.fffffep-2, + 0x1.p-1 + }, + { // Entry 285 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-1, + 0x1.fffffep-2, + 0x1.000002p-1 + }, + { // Entry 286 + 0x1.6a09e5b2eec9c250117a2e237528575cp-1, + 0x1.p-1, + 0x1.fffffep-2 + }, + { // Entry 287 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1, + 0x1.p-1, + 0x1.p-1 + }, + { // Entry 288 + 0x1.6a09e7d1fda3e601624311059df7157bp-1, + 0x1.p-1, + 0x1.000002p-1 + }, + { // Entry 289 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-1, + 0x1.000002p-1, + 0x1.fffffep-2 + }, + { // Entry 290 + 0x1.6a09e7d1fda3e601624311059df7157bp-1, + 0x1.000002p-1, + 0x1.p-1 + }, + { // Entry 291 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p-1, + 0x1.000002p-1, + 0x1.000002p-1 + }, + { // Entry 292 + 0x1.6a09e4fde9d66114f6320ab3ef821653p1, + 0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 293 + 0x1.6a09e5b2eec9c250117a2e237528575cp1, + 0x1.fffffep0, + 0x1.p1 + }, + { // Entry 294 + 0x1.6a09e71cf8b1944db3c8e462b0886601p1, + 0x1.fffffep0, + 0x1.000002p1 + }, + { // Entry 295 + 0x1.6a09e5b2eec9c250117a2e237528575cp1, + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 296 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep1, + 0x1.p1, + 0x1.p1 + }, + { // Entry 297 + 0x1.6a09e7d1fda3e601624311059df7157bp1, + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 298 + 0x1.6a09e71cf8b1944db3c8e462b0886601p1, + 0x1.000002p1, + 0x1.fffffep0 + }, + { // Entry 299 + 0x1.6a09e7d1fda3e601624311059df7157bp1, + 0x1.000002p1, + 0x1.p1 + }, + { // Entry 300 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p1, + 0x1.000002p1, + 0x1.000002p1 + }, + { // Entry 301 + 0x1.6a09e4fde9d66114f6320ab3ef821653p10, + 0x1.fffffep9, + 0x1.fffffep9 + }, + { // Entry 302 + 0x1.6a09e5b2eec9c250117a2e237528575cp10, + 0x1.fffffep9, + 0x1.p10 + }, + { // Entry 303 + 0x1.6a09e71cf8b1944db3c8e462b0886601p10, + 0x1.fffffep9, + 0x1.000002p10 + }, + { // Entry 304 + 0x1.6a09e5b2eec9c250117a2e237528575cp10, + 0x1.p10, + 0x1.fffffep9 + }, + { // Entry 305 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep10, + 0x1.p10, + 0x1.p10 + }, + { // Entry 306 + 0x1.6a09e7d1fda3e601624311059df7157bp10, + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 307 + 0x1.6a09e71cf8b1944db3c8e462b0886601p10, + 0x1.000002p10, + 0x1.fffffep9 + }, + { // Entry 308 + 0x1.6a09e7d1fda3e601624311059df7157bp10, + 0x1.000002p10, + 0x1.p10 + }, + { // Entry 309 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p10, + 0x1.000002p10, + 0x1.000002p10 + }, + { // Entry 310 + 0x1.6a09e4fde9d66114f6320ab3ef821653p60, + 0x1.fffffep59, + 0x1.fffffep59 + }, + { // Entry 311 + 0x1.6a09e5b2eec9c250117a2e237528575cp60, + 0x1.fffffep59, + 0x1.p60 + }, + { // Entry 312 + 0x1.6a09e71cf8b1944db3c8e462b0886601p60, + 0x1.fffffep59, + 0x1.000002p60 + }, + { // Entry 313 + 0x1.6a09e5b2eec9c250117a2e237528575cp60, + 0x1.p60, + 0x1.fffffep59 + }, + { // Entry 314 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep60, + 0x1.p60, + 0x1.p60 + }, + { // Entry 315 + 0x1.6a09e7d1fda3e601624311059df7157bp60, + 0x1.p60, + 0x1.000002p60 + }, + { // Entry 316 + 0x1.6a09e71cf8b1944db3c8e462b0886601p60, + 0x1.000002p60, + 0x1.fffffep59 + }, + { // Entry 317 + 0x1.6a09e7d1fda3e601624311059df7157bp60, + 0x1.000002p60, + 0x1.p60 + }, + { // Entry 318 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p60, + 0x1.000002p60, + 0x1.000002p60 + }, + { // Entry 319 + 0x1.fffffep126, + 0x1.fffffep126, + 0x1.fffffep-1 + }, + { // Entry 320 + 0x1.fffffep126, + 0x1.fffffep126, + 0x1.p0 + }, + { // Entry 321 + 0x1.fffffep126, + 0x1.fffffep126, + 0x1.000002p0 + }, + { // Entry 322 + 0x1.p127, + 0x1.p127, + 0x1.fffffep-1 + }, + { // Entry 323 + 0x1.p127, + 0x1.p127, + 0x1.p0 + }, + { // Entry 324 + 0x1.p127, + 0x1.p127, + 0x1.000002p0 + }, + { // Entry 325 + 0x1.000002p127, + 0x1.000002p127, + 0x1.fffffep-1 + }, + { // Entry 326 + 0x1.000002p127, + 0x1.000002p127, + 0x1.p0 + }, + { // Entry 327 + 0x1.000002p127, + 0x1.000002p127, + 0x1.000002p0 + }, + { // Entry 328 + 0x1.778d23d44b55c4e7b10db1b757f6ee55p-27, + 0x1.00a434p-27, + 0x1.122dc2p-27 + }, + { // Entry 329 + 0x1.778d254a171118efb3206477d0250ecdp-27, + 0x1.00a434p-27, + 0x1.122dc4p-27 + }, + { // Entry 330 + 0x1.778d26bfe2cdb2f186ce7d3b1303e445p-27, + 0x1.00a434p-27, + 0x1.122dc6p-27 + }, + { // Entry 331 + 0x1.778d25322e53c575779bf8453dfa3d1cp-27, + 0x1.00a436p-27, + 0x1.122dc2p-27 + }, + { // Entry 332 + 0x1.778d26a7fa0dbd3d308d85a2de5329b5p-27, + 0x1.00a436p-27, + 0x1.122dc4p-27 + }, + { // Entry 333 + 0x1.778d281dc5c8fafebca0051d801423f2p-27, + 0x1.00a436p-27, + 0x1.122dc6p-27 + }, + { // Entry 334 + 0x1.778d269011533a0fa573ec7af086bc32p-27, + 0x1.00a438p-27, + 0x1.122dc2p-27 + }, + { // Entry 335 + 0x1.778d2805dd0bd597165aecc2378bac1cp-27, + 0x1.00a438p-27, + 0x1.122dc4p-27 + }, + { // Entry 336 + 0x1.778d297ba8c5b7185be86b37ed71b7e7p-27, + 0x1.00a438p-27, + 0x1.122dc6p-27 + }, + { // Entry 337 + 0x1.74334e106cbed9ae84bc8c76dd5c5713p0, + 0x1.0b25p0, + -0x1.032a76p0 + }, + { // Entry 338 + 0x1.74334cabea5b8f74d5d14c94e0c759e1p0, + 0x1.0b25p0, + -0x1.032a74p0 + }, + { // Entry 339 + 0x1.74334b4767f9b00f6266f798ce03fe56p0, + 0x1.0b25p0, + -0x1.032a72p0 + }, + { // Entry 340 + 0x1.74334f7fe8dc915f56954cb730ec4eacp0, + 0x1.0b2502p0, + -0x1.032a76p0 + }, + { // Entry 341 + 0x1.74334e1b667aa723bef8bd9997e318dbp0, + 0x1.0b2502p0, + -0x1.032a74p0 + }, + { // Entry 342 + 0x1.74334cb6e41a27bc64192c7623c9095ep0, + 0x1.0b2502p0, + -0x1.032a72p0 + }, + { // Entry 343 + 0x1.743350ef64fb9e8af653c2c33082504fp0, + 0x1.0b2504p0, + -0x1.032a76p0 + }, + { // Entry 344 + 0x1.74334f8ae29b144d7495e8f3d356be7fp0, + 0x1.0b2504p0, + -0x1.032a74p0 + }, + { // Entry 345 + 0x1.74334e26603bf4e430d12029be7e9e50p0, + 0x1.0b2504p0, + -0x1.032a72p0 + }, + { // Entry 346 + 0x1.b6d62fc6f7a81ec948a1141efc6052a7p7, + 0x1.384560p7, + 0x1.345342p7 + }, + { // Entry 347 + 0x1.b6d6312eb26c5bc486b92f8cf55694f0p7, + 0x1.384560p7, + 0x1.345344p7 + }, + { // Entry 348 + 0x1.b6d632966d31c73a4041badc1888237dp7, + 0x1.384560p7, + 0x1.345346p7 + }, + { // Entry 349 + 0x1.b6d631334cf2c0ff05d0de26ff401478p7, + 0x1.384562p7, + 0x1.345342p7 + }, + { // Entry 350 + 0x1.b6d6329b07b5d35237676d0ef4b9f426p7, + 0x1.384562p7, + 0x1.345344p7 + }, + { // Entry 351 + 0x1.b6d63402c27a141fe55cef1e3465ad6dp7, + 0x1.384562p7, + 0x1.345346p7 + }, + { // Entry 352 + 0x1.b6d6329fa23e8a16b9bb93298235048cp7, + 0x1.384564p7, + 0x1.345342p7 + }, + { // Entry 353 + 0x1.b6d634075d0071c1dfcec3418989e05ep7, + 0x1.384564p7, + 0x1.345344p7 + }, + { // Entry 354 + 0x1.b6d6356f17c387e7832f69c16c81e0ccp7, + 0x1.384564p7, + 0x1.345346p7 + }, + { // Entry 355 + 0x1.b6d6356f17c387e7832f69c16c81e0ccp-6, + -0x1.384564p-6, + -0x1.345346p-6 + }, + { // Entry 356 + 0x1.b6d634075d0071c1dfcec3418989e05ep-6, + -0x1.384564p-6, + -0x1.345344p-6 + }, + { // Entry 357 + 0x1.b6d6329fa23e8a16b9bb93298235048cp-6, + -0x1.384564p-6, + -0x1.345342p-6 + }, + { // Entry 358 + 0x1.b6d63402c27a141fe55cef1e3465ad6dp-6, + -0x1.384562p-6, + -0x1.345346p-6 + }, + { // Entry 359 + 0x1.b6d6329b07b5d35237676d0ef4b9f426p-6, + -0x1.384562p-6, + -0x1.345344p-6 + }, + { // Entry 360 + 0x1.b6d631334cf2c0ff05d0de26ff401478p-6, + -0x1.384562p-6, + -0x1.345342p-6 + }, + { // Entry 361 + 0x1.b6d632966d31c73a4041badc1888237dp-6, + -0x1.384560p-6, + -0x1.345346p-6 + }, + { // Entry 362 + 0x1.b6d6312eb26c5bc486b92f8cf55694f0p-6, + -0x1.384560p-6, + -0x1.345344p-6 + }, + { // Entry 363 + 0x1.b6d62fc6f7a81ec948a1141efc6052a7p-6, + -0x1.384560p-6, + -0x1.345342p-6 + }, + { // Entry 364 + 0x1.9a134250dd50582b3680d82375c95486p-16, + -0x1.384564p-16, + -0x1.09cc3ep-16 + }, + { // Entry 365 + 0x1.9a1341050095587ce0ff2f690abe3130p-16, + -0x1.384564p-16, + -0x1.09cc3cp-16 + }, + { // Entry 366 + 0x1.9a133fb923dbcb7f9d68db36361f7a4cp-16, + -0x1.384564p-16, + -0x1.09cc3ap-16 + }, + { // Entry 367 + 0x1.9a1340cafa61a0e627789b5e20463d1fp-16, + -0x1.384562p-16, + -0x1.09cc3ep-16 + }, + { // Entry 368 + 0x1.9a133f7f1da565b1a938b5bc2a05ad2bp-16, + -0x1.384562p-16, + -0x1.09cc3cp-16 + }, + { // Entry 369 + 0x1.9a133e3340ea9d2e3c45e546f2b30188p-16, + -0x1.384562p-16, + -0x1.09cc3ap-16 + }, + { // Entry 370 + 0x1.9a133f451773f6322dcdf8373e99ef77p-16, + -0x1.384560p-16, + -0x1.09cc3ep-16 + }, + { // Entry 371 + 0x1.9a133df93ab67f77855132975a6d3aa2p-16, + -0x1.384560p-16, + -0x1.09cc3cp-16 + }, + { // Entry 372 + 0x1.9a133cad5dfa7b6ded8342c2ed23507ep-16, + -0x1.384560p-16, + -0x1.09cc3ap-16 + }, + { // Entry 373 + 0x1.6a09e93c078998f02c8d24cce0bc4b13p-6, + -0x1.000002p-6, + -0x1.000002p-6 + }, + { // Entry 374 + 0x1.6a09e7d1fda3e601624311059df7157bp-6, + -0x1.000002p-6, + -0x1.p-6 + }, + { // Entry 375 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-6, + -0x1.000002p-6, + -0x1.fffffep-7 + }, + { // Entry 376 + 0x1.6a09e7d1fda3e601624311059df7157bp-6, + -0x1.p-6, + -0x1.000002p-6 + }, + { // Entry 377 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-6, + -0x1.p-6, + -0x1.p-6 + }, + { // Entry 378 + 0x1.6a09e5b2eec9c250117a2e237528575cp-6, + -0x1.p-6, + -0x1.fffffep-7 + }, + { // Entry 379 + 0x1.6a09e71cf8b1944db3c8e462b0886601p-6, + -0x1.fffffep-7, + -0x1.000002p-6 + }, + { // Entry 380 + 0x1.6a09e5b2eec9c250117a2e237528575cp-6, + -0x1.fffffep-7, + -0x1.p-6 + }, + { // Entry 381 + 0x1.6a09e4fde9d66114f6320ab3ef821653p-6, + -0x1.fffffep-7, + -0x1.fffffep-7 + }, + { // Entry 382 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 383 + 0x1.p-149, + -0x1.p-149, + 0.0 + }, + { // Entry 384 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 385 + 0x1.p-149, + 0.0, + -0x1.p-149 + }, + { // Entry 386 + 0.0, + 0.0, + 0.0 + }, + { // Entry 387 + 0x1.p-149, + 0.0, + 0x1.p-149 + }, + { // Entry 388 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-149, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 389 + 0x1.p-149, + 0x1.p-149, + 0.0 + }, + { // Entry 390 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 391 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 392 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 393 + HUGE_VALF, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 394 + HUGE_VALF, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 395 + HUGE_VALF, + HUGE_VALF, + 0.0f + }, + { // Entry 396 + HUGE_VALF, + HUGE_VALF, + -0.0f + }, + { // Entry 397 + HUGE_VALF, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 398 + HUGE_VALF, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 399 + HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 400 + HUGE_VALF, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 401 + HUGE_VALF, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 402 + HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 403 + HUGE_VALF, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 404 + HUGE_VALF, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 405 + HUGE_VALF, + -HUGE_VALF, + 0.0f + }, + { // Entry 406 + HUGE_VALF, + -HUGE_VALF, + -0.0f + }, + { // Entry 407 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 408 + HUGE_VALF, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 409 + HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 410 + HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 411 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 412 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 413 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 414 + HUGE_VALF, + 0.0f, + HUGE_VALF + }, + { // Entry 415 + HUGE_VALF, + -0.0f, + HUGE_VALF + }, + { // Entry 416 + HUGE_VALF, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 417 + HUGE_VALF, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 418 + HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 419 + HUGE_VALF, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 420 + HUGE_VALF, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 421 + HUGE_VALF, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 422 + HUGE_VALF, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 423 + HUGE_VALF, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 424 + HUGE_VALF, + 0.0f, + -HUGE_VALF + }, + { // Entry 425 + HUGE_VALF, + -0.0f, + -HUGE_VALF + }, + { // Entry 426 + HUGE_VALF, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 427 + HUGE_VALF, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 428 + HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 429 + 0x1.fffffep127, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 430 + 0x1.p-126, + 0.0f, + 0x1.p-126 + }, + { // Entry 431 + 0x1.p-149, + 0.0f, + 0x1.p-149 + }, + { // Entry 432 + 0.0, + 0.0f, + 0.0f + }, + { // Entry 433 + 0.0, + 0.0f, + -0.0f + }, + { // Entry 434 + 0x1.p-149, + 0.0f, + -0x1.p-149 + }, + { // Entry 435 + 0x1.p-126, + 0.0f, + -0x1.p-126 + }, + { // Entry 436 + 0x1.fffffep127, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 437 + 0x1.fffffep127, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 438 + 0x1.p-126, + -0.0f, + 0x1.p-126 + }, + { // Entry 439 + 0x1.p-149, + -0.0f, + 0x1.p-149 + }, + { // Entry 440 + 0.0, + -0.0f, + 0.0f + }, + { // Entry 441 + 0.0, + -0.0f, + -0.0f + }, + { // Entry 442 + 0x1.p-149, + -0.0f, + -0x1.p-149 + }, + { // Entry 443 + 0x1.p-126, + -0.0f, + -0x1.p-126 + }, + { // Entry 444 + 0x1.fffffep127, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 445 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 446 + 0x1.p-126, + 0x1.p-126, + 0.0f + }, + { // Entry 447 + 0x1.p-149, + 0x1.p-149, + 0.0f + }, + { // Entry 448 + 0x1.p-149, + -0x1.p-149, + 0.0f + }, + { // Entry 449 + 0x1.p-126, + -0x1.p-126, + 0.0f + }, + { // Entry 450 + 0x1.fffffep127, + -0x1.fffffep127, + 0.0f + }, + { // Entry 451 + 0x1.fffffep127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 452 + 0x1.p-126, + 0x1.p-126, + -0.0f + }, + { // Entry 453 + 0x1.p-149, + 0x1.p-149, + -0.0f + }, + { // Entry 454 + 0x1.p-149, + -0x1.p-149, + -0.0f + }, + { // Entry 455 + 0x1.p-126, + -0x1.p-126, + -0.0f + }, + { // Entry 456 + 0x1.fffffep127, + -0x1.fffffep127, + -0.0f + }, + { // Entry 457 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 458 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 459 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 460 + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 461 + 0x1.fffffep127, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 462 + HUGE_VALF, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 463 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-126, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 464 + 0x1.000000000001fffffffffffep-126, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 465 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 466 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-149, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 467 + 0x1.40p2, + 0x1.80p1, + 0x1.p2 + }, + { // Entry 468 + 0x1.40p2, + 0x1.80p1, + -0x1.p2 + }, + { // Entry 469 + 0x1.a0p3, + 0x1.40p2, + 0x1.80p3 + }, + { // Entry 470 + 0x1.a0p3, + 0x1.40p2, + -0x1.80p3 + } +}; diff --git a/tests/math_data/ilogb_intel_data.h b/tests/math_data/ilogb_intel_data.h new file mode 100644 index 000000000..50a3a7fb8 --- /dev/null +++ b/tests/math_data/ilogb_intel_data.h @@ -0,0 +1,890 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_int_1_t g_ilogb_intel_data[] = { + { // Entry 0 + (int)0x1.90p6, + 0x1.0p100 + }, + { // Entry 1 + (int)0x1.90p6, + 0x1.199999999999ap100 + }, + { // Entry 2 + (int)0x1.90p6, + 0x1.3333333333334p100 + }, + { // Entry 3 + (int)0x1.90p6, + 0x1.4cccccccccccep100 + }, + { // Entry 4 + (int)0x1.90p6, + 0x1.6666666666668p100 + }, + { // Entry 5 + (int)0x1.90p6, + 0x1.8000000000002p100 + }, + { // Entry 6 + (int)0x1.90p6, + 0x1.999999999999cp100 + }, + { // Entry 7 + (int)0x1.90p6, + 0x1.b333333333336p100 + }, + { // Entry 8 + (int)0x1.90p6, + 0x1.cccccccccccd0p100 + }, + { // Entry 9 + (int)0x1.90p6, + 0x1.e66666666666ap100 + }, + { // Entry 10 + (int)0x1.94p6, + 0x1.0p101 + }, + { // Entry 11 + (int)0x1.90p7, + 0x1.0p200 + }, + { // Entry 12 + (int)0x1.90p7, + 0x1.199999999999ap200 + }, + { // Entry 13 + (int)0x1.90p7, + 0x1.3333333333334p200 + }, + { // Entry 14 + (int)0x1.90p7, + 0x1.4cccccccccccep200 + }, + { // Entry 15 + (int)0x1.90p7, + 0x1.6666666666668p200 + }, + { // Entry 16 + (int)0x1.90p7, + 0x1.8000000000002p200 + }, + { // Entry 17 + (int)0x1.90p7, + 0x1.999999999999cp200 + }, + { // Entry 18 + (int)0x1.90p7, + 0x1.b333333333336p200 + }, + { // Entry 19 + (int)0x1.90p7, + 0x1.cccccccccccd0p200 + }, + { // Entry 20 + (int)0x1.90p7, + 0x1.e66666666666ap200 + }, + { // Entry 21 + (int)0x1.92p7, + 0x1.0p201 + }, + { // Entry 22 + (int)0x1.f4p9, + 0x1.0p1000 + }, + { // Entry 23 + (int)0x1.f4p9, + 0x1.199999999999ap1000 + }, + { // Entry 24 + (int)0x1.f4p9, + 0x1.3333333333334p1000 + }, + { // Entry 25 + (int)0x1.f4p9, + 0x1.4cccccccccccep1000 + }, + { // Entry 26 + (int)0x1.f4p9, + 0x1.6666666666668p1000 + }, + { // Entry 27 + (int)0x1.f4p9, + 0x1.8000000000002p1000 + }, + { // Entry 28 + (int)0x1.f4p9, + 0x1.999999999999cp1000 + }, + { // Entry 29 + (int)0x1.f4p9, + 0x1.b333333333336p1000 + }, + { // Entry 30 + (int)0x1.f4p9, + 0x1.cccccccccccd0p1000 + }, + { // Entry 31 + (int)0x1.f4p9, + 0x1.e66666666666ap1000 + }, + { // Entry 32 + (int)0x1.f480p9, + 0x1.0p1001 + }, + { // Entry 33 + (int)0x1.94p6, + -0x1.0p101 + }, + { // Entry 34 + (int)0x1.90p6, + -0x1.e666666666666p100 + }, + { // Entry 35 + (int)0x1.90p6, + -0x1.cccccccccccccp100 + }, + { // Entry 36 + (int)0x1.90p6, + -0x1.b333333333332p100 + }, + { // Entry 37 + (int)0x1.90p6, + -0x1.9999999999998p100 + }, + { // Entry 38 + (int)0x1.90p6, + -0x1.7fffffffffffep100 + }, + { // Entry 39 + (int)0x1.90p6, + -0x1.6666666666664p100 + }, + { // Entry 40 + (int)0x1.90p6, + -0x1.4cccccccccccap100 + }, + { // Entry 41 + (int)0x1.90p6, + -0x1.3333333333330p100 + }, + { // Entry 42 + (int)0x1.90p6, + -0x1.1999999999996p100 + }, + { // Entry 43 + (int)0x1.90p6, + -0x1.0p100 + }, + { // Entry 44 + (int)0x1.92p7, + -0x1.0p201 + }, + { // Entry 45 + (int)0x1.90p7, + -0x1.e666666666666p200 + }, + { // Entry 46 + (int)0x1.90p7, + -0x1.cccccccccccccp200 + }, + { // Entry 47 + (int)0x1.90p7, + -0x1.b333333333332p200 + }, + { // Entry 48 + (int)0x1.90p7, + -0x1.9999999999998p200 + }, + { // Entry 49 + (int)0x1.90p7, + -0x1.7fffffffffffep200 + }, + { // Entry 50 + (int)0x1.90p7, + -0x1.6666666666664p200 + }, + { // Entry 51 + (int)0x1.90p7, + -0x1.4cccccccccccap200 + }, + { // Entry 52 + (int)0x1.90p7, + -0x1.3333333333330p200 + }, + { // Entry 53 + (int)0x1.90p7, + -0x1.1999999999996p200 + }, + { // Entry 54 + (int)0x1.90p7, + -0x1.0p200 + }, + { // Entry 55 + (int)0x1.f480p9, + -0x1.0p1001 + }, + { // Entry 56 + (int)0x1.f4p9, + -0x1.e666666666666p1000 + }, + { // Entry 57 + (int)0x1.f4p9, + -0x1.cccccccccccccp1000 + }, + { // Entry 58 + (int)0x1.f4p9, + -0x1.b333333333332p1000 + }, + { // Entry 59 + (int)0x1.f4p9, + -0x1.9999999999998p1000 + }, + { // Entry 60 + (int)0x1.f4p9, + -0x1.7fffffffffffep1000 + }, + { // Entry 61 + (int)0x1.f4p9, + -0x1.6666666666664p1000 + }, + { // Entry 62 + (int)0x1.f4p9, + -0x1.4cccccccccccap1000 + }, + { // Entry 63 + (int)0x1.f4p9, + -0x1.3333333333330p1000 + }, + { // Entry 64 + (int)0x1.f4p9, + -0x1.1999999999996p1000 + }, + { // Entry 65 + (int)0x1.f4p9, + -0x1.0p1000 + }, + { // Entry 66 + (int)0x1.90p5, + 0x1.0p50 + }, + { // Entry 67 + (int)0x1.90p5, + 0x1.199999999999ap50 + }, + { // Entry 68 + (int)0x1.90p5, + 0x1.3333333333334p50 + }, + { // Entry 69 + (int)0x1.90p5, + 0x1.4cccccccccccep50 + }, + { // Entry 70 + (int)0x1.90p5, + 0x1.6666666666668p50 + }, + { // Entry 71 + (int)0x1.90p5, + 0x1.8000000000002p50 + }, + { // Entry 72 + (int)0x1.90p5, + 0x1.999999999999cp50 + }, + { // Entry 73 + (int)0x1.90p5, + 0x1.b333333333336p50 + }, + { // Entry 74 + (int)0x1.90p5, + 0x1.cccccccccccd0p50 + }, + { // Entry 75 + (int)0x1.90p5, + 0x1.e66666666666ap50 + }, + { // Entry 76 + (int)0x1.98p5, + 0x1.0p51 + }, + { // Entry 77 + (int)0x1.98p5, + 0x1.0p51 + }, + { // Entry 78 + (int)0x1.98p5, + 0x1.199999999999ap51 + }, + { // Entry 79 + (int)0x1.98p5, + 0x1.3333333333334p51 + }, + { // Entry 80 + (int)0x1.98p5, + 0x1.4cccccccccccep51 + }, + { // Entry 81 + (int)0x1.98p5, + 0x1.6666666666668p51 + }, + { // Entry 82 + (int)0x1.98p5, + 0x1.8000000000002p51 + }, + { // Entry 83 + (int)0x1.98p5, + 0x1.999999999999cp51 + }, + { // Entry 84 + (int)0x1.98p5, + 0x1.b333333333336p51 + }, + { // Entry 85 + (int)0x1.98p5, + 0x1.cccccccccccd0p51 + }, + { // Entry 86 + (int)0x1.98p5, + 0x1.e66666666666ap51 + }, + { // Entry 87 + (int)0x1.a0p5, + 0x1.0p52 + }, + { // Entry 88 + (int)0x1.a0p5, + 0x1.0p52 + }, + { // Entry 89 + (int)0x1.a0p5, + 0x1.199999999999ap52 + }, + { // Entry 90 + (int)0x1.a0p5, + 0x1.3333333333334p52 + }, + { // Entry 91 + (int)0x1.a0p5, + 0x1.4cccccccccccep52 + }, + { // Entry 92 + (int)0x1.a0p5, + 0x1.6666666666668p52 + }, + { // Entry 93 + (int)0x1.a0p5, + 0x1.8000000000002p52 + }, + { // Entry 94 + (int)0x1.a0p5, + 0x1.999999999999cp52 + }, + { // Entry 95 + (int)0x1.a0p5, + 0x1.b333333333336p52 + }, + { // Entry 96 + (int)0x1.a0p5, + 0x1.cccccccccccd0p52 + }, + { // Entry 97 + (int)0x1.a0p5, + 0x1.e66666666666ap52 + }, + { // Entry 98 + (int)0x1.a8p5, + 0x1.0p53 + }, + { // Entry 99 + (int)0x1.a8p5, + 0x1.0p53 + }, + { // Entry 100 + (int)0x1.a8p5, + 0x1.199999999999ap53 + }, + { // Entry 101 + (int)0x1.a8p5, + 0x1.3333333333334p53 + }, + { // Entry 102 + (int)0x1.a8p5, + 0x1.4cccccccccccep53 + }, + { // Entry 103 + (int)0x1.a8p5, + 0x1.6666666666668p53 + }, + { // Entry 104 + (int)0x1.a8p5, + 0x1.8000000000002p53 + }, + { // Entry 105 + (int)0x1.a8p5, + 0x1.999999999999cp53 + }, + { // Entry 106 + (int)0x1.a8p5, + 0x1.b333333333336p53 + }, + { // Entry 107 + (int)0x1.a8p5, + 0x1.cccccccccccd0p53 + }, + { // Entry 108 + (int)0x1.a8p5, + 0x1.e66666666666ap53 + }, + { // Entry 109 + (int)0x1.b0p5, + 0x1.0p54 + }, + { // Entry 110 + (int)-0x1.0080p10, + 0x1.0p-1026 + }, + { // Entry 111 + (int)-0x1.p10, + 0x1.d333333333334p-1024 + }, + { // Entry 112 + (int)-0x1.ff80p9, + 0x1.b333333333334p-1023 + }, + { // Entry 113 + (int)-0x1.ffp9, + 0x1.3e66666666667p-1022 + }, + { // Entry 114 + (int)-0x1.ffp9, + 0x1.a333333333334p-1022 + }, + { // Entry 115 + (int)-0x1.fe80p9, + 0x1.040p-1021 + }, + { // Entry 116 + (int)-0x1.fe80p9, + 0x1.3666666666666p-1021 + }, + { // Entry 117 + (int)-0x1.fe80p9, + 0x1.68cccccccccccp-1021 + }, + { // Entry 118 + (int)-0x1.fe80p9, + 0x1.9b33333333332p-1021 + }, + { // Entry 119 + (int)-0x1.fe80p9, + 0x1.cd99999999998p-1021 + }, + { // Entry 120 + (int)-0x1.fe80p9, + 0x1.ffffffffffffep-1021 + }, + { // Entry 121 + (int)0x1.90p5, + 0x1.fffffffffffffp50 + }, + { // Entry 122 + (int)0x1.98p5, + 0x1.0p51 + }, + { // Entry 123 + (int)0x1.98p5, + 0x1.0000000000001p51 + }, + { // Entry 124 + (int)0x1.98p5, + 0x1.fffffffffffffp51 + }, + { // Entry 125 + (int)0x1.a0p5, + 0x1.0p52 + }, + { // Entry 126 + (int)0x1.a0p5, + 0x1.0000000000001p52 + }, + { // Entry 127 + (int)0x1.a0p5, + 0x1.fffffffffffffp52 + }, + { // Entry 128 + (int)0x1.a8p5, + 0x1.0p53 + }, + { // Entry 129 + (int)0x1.a8p5, + 0x1.0000000000001p53 + }, + { // Entry 130 + (int)0x1.98p5, + -0x1.0000000000001p51 + }, + { // Entry 131 + (int)0x1.98p5, + -0x1.0p51 + }, + { // Entry 132 + (int)0x1.90p5, + -0x1.fffffffffffffp50 + }, + { // Entry 133 + (int)0x1.a0p5, + -0x1.0000000000001p52 + }, + { // Entry 134 + (int)0x1.a0p5, + -0x1.0p52 + }, + { // Entry 135 + (int)0x1.98p5, + -0x1.fffffffffffffp51 + }, + { // Entry 136 + (int)0x1.a8p5, + -0x1.0000000000001p53 + }, + { // Entry 137 + (int)0x1.a8p5, + -0x1.0p53 + }, + { // Entry 138 + (int)0x1.a0p5, + -0x1.fffffffffffffp52 + }, + { // Entry 139 + (int)0x1.ff80p9, + 0x1.fffffffffffffp1023 + }, + { // Entry 140 + (int)0x1.ff80p9, + -0x1.fffffffffffffp1023 + }, + { // Entry 141 + (int)-0x1.c0p2, + 0x1.fffffffffffffp-7 + }, + { // Entry 142 + (int)-0x1.80p2, + 0x1.0p-6 + }, + { // Entry 143 + (int)-0x1.80p2, + 0x1.0000000000001p-6 + }, + { // Entry 144 + (int)-0x1.80p2, + 0x1.fffffffffffffp-6 + }, + { // Entry 145 + (int)-0x1.40p2, + 0x1.0p-5 + }, + { // Entry 146 + (int)-0x1.40p2, + 0x1.0000000000001p-5 + }, + { // Entry 147 + (int)-0x1.40p2, + 0x1.fffffffffffffp-5 + }, + { // Entry 148 + (int)-0x1.p2, + 0x1.0p-4 + }, + { // Entry 149 + (int)-0x1.p2, + 0x1.0000000000001p-4 + }, + { // Entry 150 + (int)-0x1.p2, + 0x1.fffffffffffffp-4 + }, + { // Entry 151 + (int)-0x1.80p1, + 0x1.0p-3 + }, + { // Entry 152 + (int)-0x1.80p1, + 0x1.0000000000001p-3 + }, + { // Entry 153 + (int)-0x1.80p1, + 0x1.fffffffffffffp-3 + }, + { // Entry 154 + (int)-0x1.p1, + 0x1.0p-2 + }, + { // Entry 155 + (int)-0x1.p1, + 0x1.0000000000001p-2 + }, + { // Entry 156 + (int)-0x1.p1, + 0x1.fffffffffffffp-2 + }, + { // Entry 157 + (int)-0x1.p0, + 0x1.0p-1 + }, + { // Entry 158 + (int)-0x1.p0, + 0x1.0000000000001p-1 + }, + { // Entry 159 + (int)-0x1.0c80p10, + -0x1.0p-1074 + }, + { // Entry 160 + (int)-0x1.fffffffcp30, + -0.0 + }, + { // Entry 161 + (int)-0x1.0c80p10, + 0x1.0p-1074 + }, + { // Entry 162 + (int)-0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 163 + (int)0.0, + 0x1.0p0 + }, + { // Entry 164 + (int)0.0, + 0x1.0000000000001p0 + }, + { // Entry 165 + (int)0.0, + 0x1.fffffffffffffp0 + }, + { // Entry 166 + (int)0x1.p0, + 0x1.0p1 + }, + { // Entry 167 + (int)0x1.p0, + 0x1.0000000000001p1 + }, + { // Entry 168 + (int)0x1.p0, + 0x1.fffffffffffffp1 + }, + { // Entry 169 + (int)0x1.p1, + 0x1.0p2 + }, + { // Entry 170 + (int)0x1.p1, + 0x1.0000000000001p2 + }, + { // Entry 171 + (int)0x1.p1, + 0x1.fffffffffffffp2 + }, + { // Entry 172 + (int)0x1.80p1, + 0x1.0p3 + }, + { // Entry 173 + (int)0x1.80p1, + 0x1.0000000000001p3 + }, + { // Entry 174 + (int)0x1.80p1, + 0x1.fffffffffffffp3 + }, + { // Entry 175 + (int)0x1.p2, + 0x1.0p4 + }, + { // Entry 176 + (int)0x1.p2, + 0x1.0000000000001p4 + }, + { // Entry 177 + (int)0x1.p2, + 0x1.fffffffffffffp4 + }, + { // Entry 178 + (int)0x1.40p2, + 0x1.0p5 + }, + { // Entry 179 + (int)0x1.40p2, + 0x1.0000000000001p5 + }, + { // Entry 180 + (int)0x1.40p2, + 0x1.fffffffffffffp5 + }, + { // Entry 181 + (int)0x1.80p2, + 0x1.0p6 + }, + { // Entry 182 + (int)0x1.80p2, + 0x1.0000000000001p6 + }, + { // Entry 183 + (int)0x1.80p2, + 0x1.fffffffffffffp6 + }, + { // Entry 184 + (int)0x1.c0p2, + 0x1.0p7 + }, + { // Entry 185 + (int)0x1.c0p2, + 0x1.0000000000001p7 + }, + { // Entry 186 + (int)0x1.fffffffcp30, + HUGE_VAL + }, + { // Entry 187 + (int)0x1.fffffffcp30, + -HUGE_VAL + }, + { // Entry 188 + (int)-0x1.fffffffcp30, + 0.0 + }, + { // Entry 189 + (int)-0x1.fffffffcp30, + -0.0 + }, + { // Entry 190 + (int)0x1.ff80p9, + 0x1.fffffffffffffp1023 + }, + { // Entry 191 + (int)0x1.ff80p9, + -0x1.fffffffffffffp1023 + }, + { // Entry 192 + (int)0x1.ff80p9, + 0x1.ffffffffffffep1023 + }, + { // Entry 193 + (int)0x1.ff80p9, + -0x1.ffffffffffffep1023 + }, + { // Entry 194 + (int)0x1.p0, + 0x1.921fb54442d18p1 + }, + { // Entry 195 + (int)0x1.p0, + -0x1.921fb54442d18p1 + }, + { // Entry 196 + (int)0.0, + 0x1.921fb54442d18p0 + }, + { // Entry 197 + (int)0.0, + -0x1.921fb54442d18p0 + }, + { // Entry 198 + (int)0.0, + 0x1.0000000000001p0 + }, + { // Entry 199 + (int)0.0, + -0x1.0000000000001p0 + }, + { // Entry 200 + (int)0.0, + 0x1.0p0 + }, + { // Entry 201 + (int)0.0, + -0x1.0p0 + }, + { // Entry 202 + (int)-0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 203 + (int)-0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 204 + (int)-0x1.p0, + 0x1.921fb54442d18p-1 + }, + { // Entry 205 + (int)-0x1.p0, + -0x1.921fb54442d18p-1 + }, + { // Entry 206 + (int)-0x1.ffp9, + 0x1.0000000000001p-1022 + }, + { // Entry 207 + (int)-0x1.ffp9, + -0x1.0000000000001p-1022 + }, + { // Entry 208 + (int)-0x1.ffp9, + 0x1.0p-1022 + }, + { // Entry 209 + (int)-0x1.ffp9, + -0x1.0p-1022 + }, + { // Entry 210 + (int)-0x1.ff80p9, + 0x1.ffffffffffffep-1023 + }, + { // Entry 211 + (int)-0x1.ff80p9, + -0x1.ffffffffffffep-1023 + }, + { // Entry 212 + (int)-0x1.ff80p9, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 213 + (int)-0x1.ff80p9, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 214 + (int)-0x1.0c40p10, + 0x1.0p-1073 + }, + { // Entry 215 + (int)-0x1.0c40p10, + -0x1.0p-1073 + }, + { // Entry 216 + (int)-0x1.0c80p10, + 0x1.0p-1074 + }, + { // Entry 217 + (int)-0x1.0c80p10, + -0x1.0p-1074 + } +}; diff --git a/tests/math_data/ilogbf_intel_data.h b/tests/math_data/ilogbf_intel_data.h new file mode 100644 index 000000000..ef08fa3fe --- /dev/null +++ b/tests/math_data/ilogbf_intel_data.h @@ -0,0 +1,714 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_int_1_t g_ilogbf_intel_data[] = { + { // Entry 0 + (int)0x1.90p6, + 0x1.p100 + }, + { // Entry 1 + (int)0x1.90p6, + 0x1.19999ap100 + }, + { // Entry 2 + (int)0x1.90p6, + 0x1.333334p100 + }, + { // Entry 3 + (int)0x1.90p6, + 0x1.4ccccep100 + }, + { // Entry 4 + (int)0x1.90p6, + 0x1.666668p100 + }, + { // Entry 5 + (int)0x1.90p6, + 0x1.800002p100 + }, + { // Entry 6 + (int)0x1.90p6, + 0x1.99999cp100 + }, + { // Entry 7 + (int)0x1.90p6, + 0x1.b33336p100 + }, + { // Entry 8 + (int)0x1.90p6, + 0x1.ccccd0p100 + }, + { // Entry 9 + (int)0x1.90p6, + 0x1.e6666ap100 + }, + { // Entry 10 + (int)0x1.94p6, + 0x1.p101 + }, + { // Entry 11 + (int)0x1.94p6, + -0x1.p101 + }, + { // Entry 12 + (int)0x1.90p6, + -0x1.e66666p100 + }, + { // Entry 13 + (int)0x1.90p6, + -0x1.ccccccp100 + }, + { // Entry 14 + (int)0x1.90p6, + -0x1.b33332p100 + }, + { // Entry 15 + (int)0x1.90p6, + -0x1.999998p100 + }, + { // Entry 16 + (int)0x1.90p6, + -0x1.7ffffep100 + }, + { // Entry 17 + (int)0x1.90p6, + -0x1.666664p100 + }, + { // Entry 18 + (int)0x1.90p6, + -0x1.4ccccap100 + }, + { // Entry 19 + (int)0x1.90p6, + -0x1.333330p100 + }, + { // Entry 20 + (int)0x1.90p6, + -0x1.199996p100 + }, + { // Entry 21 + (int)0x1.90p6, + -0x1.p100 + }, + { // Entry 22 + (int)0x1.50p4, + 0x1.p21 + }, + { // Entry 23 + (int)0x1.50p4, + 0x1.19999ap21 + }, + { // Entry 24 + (int)0x1.50p4, + 0x1.333334p21 + }, + { // Entry 25 + (int)0x1.50p4, + 0x1.4ccccep21 + }, + { // Entry 26 + (int)0x1.50p4, + 0x1.666668p21 + }, + { // Entry 27 + (int)0x1.50p4, + 0x1.800002p21 + }, + { // Entry 28 + (int)0x1.50p4, + 0x1.99999cp21 + }, + { // Entry 29 + (int)0x1.50p4, + 0x1.b33336p21 + }, + { // Entry 30 + (int)0x1.50p4, + 0x1.ccccd0p21 + }, + { // Entry 31 + (int)0x1.50p4, + 0x1.e6666ap21 + }, + { // Entry 32 + (int)0x1.60p4, + 0x1.p22 + }, + { // Entry 33 + (int)0x1.60p4, + 0x1.p22 + }, + { // Entry 34 + (int)0x1.60p4, + 0x1.19999ap22 + }, + { // Entry 35 + (int)0x1.60p4, + 0x1.333334p22 + }, + { // Entry 36 + (int)0x1.60p4, + 0x1.4ccccep22 + }, + { // Entry 37 + (int)0x1.60p4, + 0x1.666668p22 + }, + { // Entry 38 + (int)0x1.60p4, + 0x1.800002p22 + }, + { // Entry 39 + (int)0x1.60p4, + 0x1.99999cp22 + }, + { // Entry 40 + (int)0x1.60p4, + 0x1.b33336p22 + }, + { // Entry 41 + (int)0x1.60p4, + 0x1.ccccd0p22 + }, + { // Entry 42 + (int)0x1.60p4, + 0x1.e6666ap22 + }, + { // Entry 43 + (int)0x1.70p4, + 0x1.p23 + }, + { // Entry 44 + (int)0x1.70p4, + 0x1.p23 + }, + { // Entry 45 + (int)0x1.70p4, + 0x1.19999ap23 + }, + { // Entry 46 + (int)0x1.70p4, + 0x1.333334p23 + }, + { // Entry 47 + (int)0x1.70p4, + 0x1.4ccccep23 + }, + { // Entry 48 + (int)0x1.70p4, + 0x1.666668p23 + }, + { // Entry 49 + (int)0x1.70p4, + 0x1.800002p23 + }, + { // Entry 50 + (int)0x1.70p4, + 0x1.99999cp23 + }, + { // Entry 51 + (int)0x1.70p4, + 0x1.b33336p23 + }, + { // Entry 52 + (int)0x1.70p4, + 0x1.ccccd0p23 + }, + { // Entry 53 + (int)0x1.70p4, + 0x1.e6666ap23 + }, + { // Entry 54 + (int)0x1.80p4, + 0x1.p24 + }, + { // Entry 55 + (int)0x1.80p4, + 0x1.p24 + }, + { // Entry 56 + (int)0x1.80p4, + 0x1.19999ap24 + }, + { // Entry 57 + (int)0x1.80p4, + 0x1.333334p24 + }, + { // Entry 58 + (int)0x1.80p4, + 0x1.4ccccep24 + }, + { // Entry 59 + (int)0x1.80p4, + 0x1.666668p24 + }, + { // Entry 60 + (int)0x1.80p4, + 0x1.800002p24 + }, + { // Entry 61 + (int)0x1.80p4, + 0x1.99999cp24 + }, + { // Entry 62 + (int)0x1.80p4, + 0x1.b33336p24 + }, + { // Entry 63 + (int)0x1.80p4, + 0x1.ccccd0p24 + }, + { // Entry 64 + (int)0x1.80p4, + 0x1.e6666ap24 + }, + { // Entry 65 + (int)0x1.90p4, + 0x1.p25 + }, + { // Entry 66 + (int)-0x1.04p7, + 0x1.p-130 + }, + { // Entry 67 + (int)-0x1.p7, + 0x1.d33330p-128 + }, + { // Entry 68 + (int)-0x1.fcp6, + 0x1.b33330p-127 + }, + { // Entry 69 + (int)-0x1.f8p6, + 0x1.3e6664p-126 + }, + { // Entry 70 + (int)-0x1.f8p6, + 0x1.a33330p-126 + }, + { // Entry 71 + (int)-0x1.f4p6, + 0x1.03fffep-125 + }, + { // Entry 72 + (int)-0x1.f4p6, + 0x1.366664p-125 + }, + { // Entry 73 + (int)-0x1.f4p6, + 0x1.68cccap-125 + }, + { // Entry 74 + (int)-0x1.f4p6, + 0x1.9b3330p-125 + }, + { // Entry 75 + (int)-0x1.f4p6, + 0x1.cd9996p-125 + }, + { // Entry 76 + (int)-0x1.f4p6, + 0x1.fffffcp-125 + }, + { // Entry 77 + (int)0x1.50p4, + 0x1.fffffep21 + }, + { // Entry 78 + (int)0x1.60p4, + 0x1.p22 + }, + { // Entry 79 + (int)0x1.60p4, + 0x1.000002p22 + }, + { // Entry 80 + (int)0x1.60p4, + 0x1.fffffep22 + }, + { // Entry 81 + (int)0x1.70p4, + 0x1.p23 + }, + { // Entry 82 + (int)0x1.70p4, + 0x1.000002p23 + }, + { // Entry 83 + (int)0x1.70p4, + 0x1.fffffep23 + }, + { // Entry 84 + (int)0x1.80p4, + 0x1.p24 + }, + { // Entry 85 + (int)0x1.80p4, + 0x1.000002p24 + }, + { // Entry 86 + (int)0x1.60p4, + -0x1.000002p22 + }, + { // Entry 87 + (int)0x1.60p4, + -0x1.p22 + }, + { // Entry 88 + (int)0x1.50p4, + -0x1.fffffep21 + }, + { // Entry 89 + (int)0x1.70p4, + -0x1.000002p23 + }, + { // Entry 90 + (int)0x1.70p4, + -0x1.p23 + }, + { // Entry 91 + (int)0x1.60p4, + -0x1.fffffep22 + }, + { // Entry 92 + (int)0x1.80p4, + -0x1.000002p24 + }, + { // Entry 93 + (int)0x1.80p4, + -0x1.p24 + }, + { // Entry 94 + (int)0x1.70p4, + -0x1.fffffep23 + }, + { // Entry 95 + (int)0x1.fcp6, + 0x1.fffffep127 + }, + { // Entry 96 + (int)0x1.fcp6, + -0x1.fffffep127 + }, + { // Entry 97 + (int)-0x1.c0p2, + 0x1.fffffep-7 + }, + { // Entry 98 + (int)-0x1.80p2, + 0x1.p-6 + }, + { // Entry 99 + (int)-0x1.80p2, + 0x1.000002p-6 + }, + { // Entry 100 + (int)-0x1.80p2, + 0x1.fffffep-6 + }, + { // Entry 101 + (int)-0x1.40p2, + 0x1.p-5 + }, + { // Entry 102 + (int)-0x1.40p2, + 0x1.000002p-5 + }, + { // Entry 103 + (int)-0x1.40p2, + 0x1.fffffep-5 + }, + { // Entry 104 + (int)-0x1.p2, + 0x1.p-4 + }, + { // Entry 105 + (int)-0x1.p2, + 0x1.000002p-4 + }, + { // Entry 106 + (int)-0x1.p2, + 0x1.fffffep-4 + }, + { // Entry 107 + (int)-0x1.80p1, + 0x1.p-3 + }, + { // Entry 108 + (int)-0x1.80p1, + 0x1.000002p-3 + }, + { // Entry 109 + (int)-0x1.80p1, + 0x1.fffffep-3 + }, + { // Entry 110 + (int)-0x1.p1, + 0x1.p-2 + }, + { // Entry 111 + (int)-0x1.p1, + 0x1.000002p-2 + }, + { // Entry 112 + (int)-0x1.p1, + 0x1.fffffep-2 + }, + { // Entry 113 + (int)-0x1.p0, + 0x1.p-1 + }, + { // Entry 114 + (int)-0x1.p0, + 0x1.000002p-1 + }, + { // Entry 115 + (int)-0x1.2ap7, + -0x1.p-149 + }, + { // Entry 116 + (int)-0x1.fffffffcp30, + 0.0 + }, + { // Entry 117 + (int)-0x1.2ap7, + 0x1.p-149 + }, + { // Entry 118 + (int)-0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 119 + (int)0.0, + 0x1.p0 + }, + { // Entry 120 + (int)0.0, + 0x1.000002p0 + }, + { // Entry 121 + (int)0.0, + 0x1.fffffep0 + }, + { // Entry 122 + (int)0x1.p0, + 0x1.p1 + }, + { // Entry 123 + (int)0x1.p0, + 0x1.000002p1 + }, + { // Entry 124 + (int)0x1.p0, + 0x1.fffffep1 + }, + { // Entry 125 + (int)0x1.p1, + 0x1.p2 + }, + { // Entry 126 + (int)0x1.p1, + 0x1.000002p2 + }, + { // Entry 127 + (int)0x1.p1, + 0x1.fffffep2 + }, + { // Entry 128 + (int)0x1.80p1, + 0x1.p3 + }, + { // Entry 129 + (int)0x1.80p1, + 0x1.000002p3 + }, + { // Entry 130 + (int)0x1.80p1, + 0x1.fffffep3 + }, + { // Entry 131 + (int)0x1.p2, + 0x1.p4 + }, + { // Entry 132 + (int)0x1.p2, + 0x1.000002p4 + }, + { // Entry 133 + (int)0x1.p2, + 0x1.fffffep4 + }, + { // Entry 134 + (int)0x1.40p2, + 0x1.p5 + }, + { // Entry 135 + (int)0x1.40p2, + 0x1.000002p5 + }, + { // Entry 136 + (int)0x1.40p2, + 0x1.fffffep5 + }, + { // Entry 137 + (int)0x1.80p2, + 0x1.p6 + }, + { // Entry 138 + (int)0x1.80p2, + 0x1.000002p6 + }, + { // Entry 139 + (int)0x1.80p2, + 0x1.fffffep6 + }, + { // Entry 140 + (int)0x1.c0p2, + 0x1.p7 + }, + { // Entry 141 + (int)0x1.c0p2, + 0x1.000002p7 + }, + { // Entry 142 + (int)0x1.fffffffcp30, + HUGE_VALF + }, + { // Entry 143 + (int)0x1.fffffffcp30, + -HUGE_VALF + }, + { // Entry 144 + (int)-0x1.fffffffcp30, + 0.0f + }, + { // Entry 145 + (int)-0x1.fffffffcp30, + -0.0f + }, + { // Entry 146 + (int)0x1.fcp6, + 0x1.fffffep127 + }, + { // Entry 147 + (int)0x1.fcp6, + -0x1.fffffep127 + }, + { // Entry 148 + (int)0x1.fcp6, + 0x1.fffffcp127 + }, + { // Entry 149 + (int)0x1.fcp6, + -0x1.fffffcp127 + }, + { // Entry 150 + (int)0x1.p0, + 0x1.921fb6p1 + }, + { // Entry 151 + (int)0x1.p0, + -0x1.921fb6p1 + }, + { // Entry 152 + (int)0.0, + 0x1.921fb6p0 + }, + { // Entry 153 + (int)0.0, + -0x1.921fb6p0 + }, + { // Entry 154 + (int)0.0, + 0x1.000002p0 + }, + { // Entry 155 + (int)0.0, + -0x1.000002p0 + }, + { // Entry 156 + (int)0.0, + 0x1.p0 + }, + { // Entry 157 + (int)0.0, + -0x1.p0 + }, + { // Entry 158 + (int)-0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 159 + (int)-0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 160 + (int)-0x1.p0, + 0x1.921fb6p-1 + }, + { // Entry 161 + (int)-0x1.p0, + -0x1.921fb6p-1 + }, + { // Entry 162 + (int)-0x1.f8p6, + 0x1.000002p-126 + }, + { // Entry 163 + (int)-0x1.f8p6, + -0x1.000002p-126 + }, + { // Entry 164 + (int)-0x1.f8p6, + 0x1.p-126 + }, + { // Entry 165 + (int)-0x1.f8p6, + -0x1.p-126 + }, + { // Entry 166 + (int)-0x1.fcp6, + 0x1.fffffcp-127 + }, + { // Entry 167 + (int)-0x1.fcp6, + -0x1.fffffcp-127 + }, + { // Entry 168 + (int)-0x1.fcp6, + 0x1.fffff8p-127 + }, + { // Entry 169 + (int)-0x1.fcp6, + -0x1.fffff8p-127 + }, + { // Entry 170 + (int)-0x1.28p7, + 0x1.p-148 + }, + { // Entry 171 + (int)-0x1.28p7, + -0x1.p-148 + }, + { // Entry 172 + (int)-0x1.2ap7, + 0x1.p-149 + }, + { // Entry 173 + (int)-0x1.2ap7, + -0x1.p-149 + } +}; diff --git a/tests/math_data/ldexp_intel_data.h b/tests/math_data/ldexp_intel_data.h new file mode 100644 index 000000000..5d4ad1acc --- /dev/null +++ b/tests/math_data/ldexp_intel_data.h @@ -0,0 +1,4348 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_ldexp_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.0p-1074, + (int)-10 + }, + { // Entry 1 + -0x1.55555555555560p-1024, + -0x1.5555555555556p-2, + (int)-1022 + }, + { // Entry 2 + -0x1.6db6db6db6db70p-1023, + -0x1.6db6db6db6db7p-1, + (int)-1022 + }, + { // Entry 3 + -0x1.8e38e38e38e390p-1023, + -0x1.8e38e38e38e39p-1, + (int)-1022 + }, + { // Entry 4 + 0.0, + 0x1.0p-1074, + (int)-1 + }, + { // Entry 5 + 0.0, + 0x1.0p-1074, + (int)-10 + }, + { // Entry 6 + 0.0, + 0x1.0p-1074, + (int)-47 + }, + { // Entry 7 + 0x1.p-1064, + 0x1.0p-1074, + (int)10 + }, + { // Entry 8 + 0x1.p-51, + 0x1.0p-1074, + (int)1023 + }, + { // Entry 9 + 0x1.29e4129e4129e0p-1024, + 0x1.29e4129e4129ep-7, + (int)-1017 + }, + { // Entry 10 + HUGE_VAL, + 0x1.8e147ae147ae1p0, + (int)2147483647 + }, + { // Entry 11 + 0.0, + 0x1.dddddddddddddp-2, + (int)-1073 + }, + { // Entry 12 + 0x1.e0p-48, + 0x1.ep-1071, + (int)1023 + }, + { // Entry 13 + 0.0, + 0x1.f7df7df7df7dfp-2, + (int)-1073 + }, + { // Entry 14 + 0.0, + 0x1.ffffffffffff0p-2, + (int)-1073 + }, + { // Entry 15 + 0x1.ffffffffffffc0p-1033, + 0x1.ffffffffffffcp-1023, + (int)-10 + }, + { // Entry 16 + 0x1.ffffffffffffc0p-1022, + 0x1.ffffffffffffcp-1023, + (int)1 + }, + { // Entry 17 + 0x1.ffffffffffffe0p-1070, + 0x1.ffffffffffffep-1023, + (int)-47 + }, + { // Entry 18 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + (int)1 + }, + { // Entry 19 + HUGE_VAL, + 0x1.fffffffffffffp1023, + (int)2147483647 + }, + { // Entry 20 + HUGE_VAL, + 0x1.fffffffffffffp1023, + (int)2147483647 + }, + { // Entry 21 + -0x1.p-10, + -0x1.0p0, + (int)-10 + }, + { // Entry 22 + -0x1.p-9, + -0x1.0p0, + (int)-9 + }, + { // Entry 23 + -0x1.p-8, + -0x1.0p0, + (int)-8 + }, + { // Entry 24 + -0x1.p-7, + -0x1.0p0, + (int)-7 + }, + { // Entry 25 + -0x1.p-6, + -0x1.0p0, + (int)-6 + }, + { // Entry 26 + -0x1.p-5, + -0x1.0p0, + (int)-5 + }, + { // Entry 27 + -0x1.p-4, + -0x1.0p0, + (int)-4 + }, + { // Entry 28 + -0x1.p-3, + -0x1.0p0, + (int)-3 + }, + { // Entry 29 + -0x1.p-2, + -0x1.0p0, + (int)-2 + }, + { // Entry 30 + -0x1.p-1, + -0x1.0p0, + (int)-1 + }, + { // Entry 31 + -0x1.p0, + -0x1.0p0, + (int)0 + }, + { // Entry 32 + -0x1.p1, + -0x1.0p0, + (int)1 + }, + { // Entry 33 + -0x1.p2, + -0x1.0p0, + (int)2 + }, + { // Entry 34 + -0x1.p3, + -0x1.0p0, + (int)3 + }, + { // Entry 35 + -0x1.p4, + -0x1.0p0, + (int)4 + }, + { // Entry 36 + -0x1.p5, + -0x1.0p0, + (int)5 + }, + { // Entry 37 + -0x1.p6, + -0x1.0p0, + (int)6 + }, + { // Entry 38 + -0x1.p7, + -0x1.0p0, + (int)7 + }, + { // Entry 39 + -0x1.p8, + -0x1.0p0, + (int)8 + }, + { // Entry 40 + -0x1.p9, + -0x1.0p0, + (int)9 + }, + { // Entry 41 + -0x1.p10, + -0x1.0p0, + (int)10 + }, + { // Entry 42 + -0x1.d1745d1745d170p-11, + -0x1.d1745d1745d17p-1, + (int)-10 + }, + { // Entry 43 + -0x1.d1745d1745d170p-10, + -0x1.d1745d1745d17p-1, + (int)-9 + }, + { // Entry 44 + -0x1.d1745d1745d170p-9, + -0x1.d1745d1745d17p-1, + (int)-8 + }, + { // Entry 45 + -0x1.d1745d1745d170p-8, + -0x1.d1745d1745d17p-1, + (int)-7 + }, + { // Entry 46 + -0x1.d1745d1745d170p-7, + -0x1.d1745d1745d17p-1, + (int)-6 + }, + { // Entry 47 + -0x1.d1745d1745d170p-6, + -0x1.d1745d1745d17p-1, + (int)-5 + }, + { // Entry 48 + -0x1.d1745d1745d170p-5, + -0x1.d1745d1745d17p-1, + (int)-4 + }, + { // Entry 49 + -0x1.d1745d1745d170p-4, + -0x1.d1745d1745d17p-1, + (int)-3 + }, + { // Entry 50 + -0x1.d1745d1745d170p-3, + -0x1.d1745d1745d17p-1, + (int)-2 + }, + { // Entry 51 + -0x1.d1745d1745d170p-2, + -0x1.d1745d1745d17p-1, + (int)-1 + }, + { // Entry 52 + -0x1.d1745d1745d170p-1, + -0x1.d1745d1745d17p-1, + (int)0 + }, + { // Entry 53 + -0x1.d1745d1745d170p0, + -0x1.d1745d1745d17p-1, + (int)1 + }, + { // Entry 54 + -0x1.d1745d1745d170p1, + -0x1.d1745d1745d17p-1, + (int)2 + }, + { // Entry 55 + -0x1.d1745d1745d170p2, + -0x1.d1745d1745d17p-1, + (int)3 + }, + { // Entry 56 + -0x1.d1745d1745d170p3, + -0x1.d1745d1745d17p-1, + (int)4 + }, + { // Entry 57 + -0x1.d1745d1745d170p4, + -0x1.d1745d1745d17p-1, + (int)5 + }, + { // Entry 58 + -0x1.d1745d1745d170p5, + -0x1.d1745d1745d17p-1, + (int)6 + }, + { // Entry 59 + -0x1.d1745d1745d170p6, + -0x1.d1745d1745d17p-1, + (int)7 + }, + { // Entry 60 + -0x1.d1745d1745d170p7, + -0x1.d1745d1745d17p-1, + (int)8 + }, + { // Entry 61 + -0x1.d1745d1745d170p8, + -0x1.d1745d1745d17p-1, + (int)9 + }, + { // Entry 62 + -0x1.d1745d1745d170p9, + -0x1.d1745d1745d17p-1, + (int)10 + }, + { // Entry 63 + -0x1.a2e8ba2e8ba2e0p-11, + -0x1.a2e8ba2e8ba2ep-1, + (int)-10 + }, + { // Entry 64 + -0x1.a2e8ba2e8ba2e0p-10, + -0x1.a2e8ba2e8ba2ep-1, + (int)-9 + }, + { // Entry 65 + -0x1.a2e8ba2e8ba2e0p-9, + -0x1.a2e8ba2e8ba2ep-1, + (int)-8 + }, + { // Entry 66 + -0x1.a2e8ba2e8ba2e0p-8, + -0x1.a2e8ba2e8ba2ep-1, + (int)-7 + }, + { // Entry 67 + -0x1.a2e8ba2e8ba2e0p-7, + -0x1.a2e8ba2e8ba2ep-1, + (int)-6 + }, + { // Entry 68 + -0x1.a2e8ba2e8ba2e0p-6, + -0x1.a2e8ba2e8ba2ep-1, + (int)-5 + }, + { // Entry 69 + -0x1.a2e8ba2e8ba2e0p-5, + -0x1.a2e8ba2e8ba2ep-1, + (int)-4 + }, + { // Entry 70 + -0x1.a2e8ba2e8ba2e0p-4, + -0x1.a2e8ba2e8ba2ep-1, + (int)-3 + }, + { // Entry 71 + -0x1.a2e8ba2e8ba2e0p-3, + -0x1.a2e8ba2e8ba2ep-1, + (int)-2 + }, + { // Entry 72 + -0x1.a2e8ba2e8ba2e0p-2, + -0x1.a2e8ba2e8ba2ep-1, + (int)-1 + }, + { // Entry 73 + -0x1.a2e8ba2e8ba2e0p-1, + -0x1.a2e8ba2e8ba2ep-1, + (int)0 + }, + { // Entry 74 + -0x1.a2e8ba2e8ba2e0p0, + -0x1.a2e8ba2e8ba2ep-1, + (int)1 + }, + { // Entry 75 + -0x1.a2e8ba2e8ba2e0p1, + -0x1.a2e8ba2e8ba2ep-1, + (int)2 + }, + { // Entry 76 + -0x1.a2e8ba2e8ba2e0p2, + -0x1.a2e8ba2e8ba2ep-1, + (int)3 + }, + { // Entry 77 + -0x1.a2e8ba2e8ba2e0p3, + -0x1.a2e8ba2e8ba2ep-1, + (int)4 + }, + { // Entry 78 + -0x1.a2e8ba2e8ba2e0p4, + -0x1.a2e8ba2e8ba2ep-1, + (int)5 + }, + { // Entry 79 + -0x1.a2e8ba2e8ba2e0p5, + -0x1.a2e8ba2e8ba2ep-1, + (int)6 + }, + { // Entry 80 + -0x1.a2e8ba2e8ba2e0p6, + -0x1.a2e8ba2e8ba2ep-1, + (int)7 + }, + { // Entry 81 + -0x1.a2e8ba2e8ba2e0p7, + -0x1.a2e8ba2e8ba2ep-1, + (int)8 + }, + { // Entry 82 + -0x1.a2e8ba2e8ba2e0p8, + -0x1.a2e8ba2e8ba2ep-1, + (int)9 + }, + { // Entry 83 + -0x1.a2e8ba2e8ba2e0p9, + -0x1.a2e8ba2e8ba2ep-1, + (int)10 + }, + { // Entry 84 + -0x1.745d1745d17450p-11, + -0x1.745d1745d1745p-1, + (int)-10 + }, + { // Entry 85 + -0x1.745d1745d17450p-10, + -0x1.745d1745d1745p-1, + (int)-9 + }, + { // Entry 86 + -0x1.745d1745d17450p-9, + -0x1.745d1745d1745p-1, + (int)-8 + }, + { // Entry 87 + -0x1.745d1745d17450p-8, + -0x1.745d1745d1745p-1, + (int)-7 + }, + { // Entry 88 + -0x1.745d1745d17450p-7, + -0x1.745d1745d1745p-1, + (int)-6 + }, + { // Entry 89 + -0x1.745d1745d17450p-6, + -0x1.745d1745d1745p-1, + (int)-5 + }, + { // Entry 90 + -0x1.745d1745d17450p-5, + -0x1.745d1745d1745p-1, + (int)-4 + }, + { // Entry 91 + -0x1.745d1745d17450p-4, + -0x1.745d1745d1745p-1, + (int)-3 + }, + { // Entry 92 + -0x1.745d1745d17450p-3, + -0x1.745d1745d1745p-1, + (int)-2 + }, + { // Entry 93 + -0x1.745d1745d17450p-2, + -0x1.745d1745d1745p-1, + (int)-1 + }, + { // Entry 94 + -0x1.745d1745d17450p-1, + -0x1.745d1745d1745p-1, + (int)0 + }, + { // Entry 95 + -0x1.745d1745d17450p0, + -0x1.745d1745d1745p-1, + (int)1 + }, + { // Entry 96 + -0x1.745d1745d17450p1, + -0x1.745d1745d1745p-1, + (int)2 + }, + { // Entry 97 + -0x1.745d1745d17450p2, + -0x1.745d1745d1745p-1, + (int)3 + }, + { // Entry 98 + -0x1.745d1745d17450p3, + -0x1.745d1745d1745p-1, + (int)4 + }, + { // Entry 99 + -0x1.745d1745d17450p4, + -0x1.745d1745d1745p-1, + (int)5 + }, + { // Entry 100 + -0x1.745d1745d17450p5, + -0x1.745d1745d1745p-1, + (int)6 + }, + { // Entry 101 + -0x1.745d1745d17450p6, + -0x1.745d1745d1745p-1, + (int)7 + }, + { // Entry 102 + -0x1.745d1745d17450p7, + -0x1.745d1745d1745p-1, + (int)8 + }, + { // Entry 103 + -0x1.745d1745d17450p8, + -0x1.745d1745d1745p-1, + (int)9 + }, + { // Entry 104 + -0x1.745d1745d17450p9, + -0x1.745d1745d1745p-1, + (int)10 + }, + { // Entry 105 + -0x1.45d1745d1745c0p-11, + -0x1.45d1745d1745cp-1, + (int)-10 + }, + { // Entry 106 + -0x1.45d1745d1745c0p-10, + -0x1.45d1745d1745cp-1, + (int)-9 + }, + { // Entry 107 + -0x1.45d1745d1745c0p-9, + -0x1.45d1745d1745cp-1, + (int)-8 + }, + { // Entry 108 + -0x1.45d1745d1745c0p-8, + -0x1.45d1745d1745cp-1, + (int)-7 + }, + { // Entry 109 + -0x1.45d1745d1745c0p-7, + -0x1.45d1745d1745cp-1, + (int)-6 + }, + { // Entry 110 + -0x1.45d1745d1745c0p-6, + -0x1.45d1745d1745cp-1, + (int)-5 + }, + { // Entry 111 + -0x1.45d1745d1745c0p-5, + -0x1.45d1745d1745cp-1, + (int)-4 + }, + { // Entry 112 + -0x1.45d1745d1745c0p-4, + -0x1.45d1745d1745cp-1, + (int)-3 + }, + { // Entry 113 + -0x1.45d1745d1745c0p-3, + -0x1.45d1745d1745cp-1, + (int)-2 + }, + { // Entry 114 + -0x1.45d1745d1745c0p-2, + -0x1.45d1745d1745cp-1, + (int)-1 + }, + { // Entry 115 + -0x1.45d1745d1745c0p-1, + -0x1.45d1745d1745cp-1, + (int)0 + }, + { // Entry 116 + -0x1.45d1745d1745c0p0, + -0x1.45d1745d1745cp-1, + (int)1 + }, + { // Entry 117 + -0x1.45d1745d1745c0p1, + -0x1.45d1745d1745cp-1, + (int)2 + }, + { // Entry 118 + -0x1.45d1745d1745c0p2, + -0x1.45d1745d1745cp-1, + (int)3 + }, + { // Entry 119 + -0x1.45d1745d1745c0p3, + -0x1.45d1745d1745cp-1, + (int)4 + }, + { // Entry 120 + -0x1.45d1745d1745c0p4, + -0x1.45d1745d1745cp-1, + (int)5 + }, + { // Entry 121 + -0x1.45d1745d1745c0p5, + -0x1.45d1745d1745cp-1, + (int)6 + }, + { // Entry 122 + -0x1.45d1745d1745c0p6, + -0x1.45d1745d1745cp-1, + (int)7 + }, + { // Entry 123 + -0x1.45d1745d1745c0p7, + -0x1.45d1745d1745cp-1, + (int)8 + }, + { // Entry 124 + -0x1.45d1745d1745c0p8, + -0x1.45d1745d1745cp-1, + (int)9 + }, + { // Entry 125 + -0x1.45d1745d1745c0p9, + -0x1.45d1745d1745cp-1, + (int)10 + }, + { // Entry 126 + -0x1.1745d1745d1730p-11, + -0x1.1745d1745d173p-1, + (int)-10 + }, + { // Entry 127 + -0x1.1745d1745d1730p-10, + -0x1.1745d1745d173p-1, + (int)-9 + }, + { // Entry 128 + -0x1.1745d1745d1730p-9, + -0x1.1745d1745d173p-1, + (int)-8 + }, + { // Entry 129 + -0x1.1745d1745d1730p-8, + -0x1.1745d1745d173p-1, + (int)-7 + }, + { // Entry 130 + -0x1.1745d1745d1730p-7, + -0x1.1745d1745d173p-1, + (int)-6 + }, + { // Entry 131 + -0x1.1745d1745d1730p-6, + -0x1.1745d1745d173p-1, + (int)-5 + }, + { // Entry 132 + -0x1.1745d1745d1730p-5, + -0x1.1745d1745d173p-1, + (int)-4 + }, + { // Entry 133 + -0x1.1745d1745d1730p-4, + -0x1.1745d1745d173p-1, + (int)-3 + }, + { // Entry 134 + -0x1.1745d1745d1730p-3, + -0x1.1745d1745d173p-1, + (int)-2 + }, + { // Entry 135 + -0x1.1745d1745d1730p-2, + -0x1.1745d1745d173p-1, + (int)-1 + }, + { // Entry 136 + -0x1.1745d1745d1730p-1, + -0x1.1745d1745d173p-1, + (int)0 + }, + { // Entry 137 + -0x1.1745d1745d1730p0, + -0x1.1745d1745d173p-1, + (int)1 + }, + { // Entry 138 + -0x1.1745d1745d1730p1, + -0x1.1745d1745d173p-1, + (int)2 + }, + { // Entry 139 + -0x1.1745d1745d1730p2, + -0x1.1745d1745d173p-1, + (int)3 + }, + { // Entry 140 + -0x1.1745d1745d1730p3, + -0x1.1745d1745d173p-1, + (int)4 + }, + { // Entry 141 + -0x1.1745d1745d1730p4, + -0x1.1745d1745d173p-1, + (int)5 + }, + { // Entry 142 + -0x1.1745d1745d1730p5, + -0x1.1745d1745d173p-1, + (int)6 + }, + { // Entry 143 + -0x1.1745d1745d1730p6, + -0x1.1745d1745d173p-1, + (int)7 + }, + { // Entry 144 + -0x1.1745d1745d1730p7, + -0x1.1745d1745d173p-1, + (int)8 + }, + { // Entry 145 + -0x1.1745d1745d1730p8, + -0x1.1745d1745d173p-1, + (int)9 + }, + { // Entry 146 + -0x1.1745d1745d1730p9, + -0x1.1745d1745d173p-1, + (int)10 + }, + { // Entry 147 + -0x1.d1745d1745d140p-12, + -0x1.d1745d1745d14p-2, + (int)-10 + }, + { // Entry 148 + -0x1.d1745d1745d140p-11, + -0x1.d1745d1745d14p-2, + (int)-9 + }, + { // Entry 149 + -0x1.d1745d1745d140p-10, + -0x1.d1745d1745d14p-2, + (int)-8 + }, + { // Entry 150 + -0x1.d1745d1745d140p-9, + -0x1.d1745d1745d14p-2, + (int)-7 + }, + { // Entry 151 + -0x1.d1745d1745d140p-8, + -0x1.d1745d1745d14p-2, + (int)-6 + }, + { // Entry 152 + -0x1.d1745d1745d140p-7, + -0x1.d1745d1745d14p-2, + (int)-5 + }, + { // Entry 153 + -0x1.d1745d1745d140p-6, + -0x1.d1745d1745d14p-2, + (int)-4 + }, + { // Entry 154 + -0x1.d1745d1745d140p-5, + -0x1.d1745d1745d14p-2, + (int)-3 + }, + { // Entry 155 + -0x1.d1745d1745d140p-4, + -0x1.d1745d1745d14p-2, + (int)-2 + }, + { // Entry 156 + -0x1.d1745d1745d140p-3, + -0x1.d1745d1745d14p-2, + (int)-1 + }, + { // Entry 157 + -0x1.d1745d1745d140p-2, + -0x1.d1745d1745d14p-2, + (int)0 + }, + { // Entry 158 + -0x1.d1745d1745d140p-1, + -0x1.d1745d1745d14p-2, + (int)1 + }, + { // Entry 159 + -0x1.d1745d1745d140p0, + -0x1.d1745d1745d14p-2, + (int)2 + }, + { // Entry 160 + -0x1.d1745d1745d140p1, + -0x1.d1745d1745d14p-2, + (int)3 + }, + { // Entry 161 + -0x1.d1745d1745d140p2, + -0x1.d1745d1745d14p-2, + (int)4 + }, + { // Entry 162 + -0x1.d1745d1745d140p3, + -0x1.d1745d1745d14p-2, + (int)5 + }, + { // Entry 163 + -0x1.d1745d1745d140p4, + -0x1.d1745d1745d14p-2, + (int)6 + }, + { // Entry 164 + -0x1.d1745d1745d140p5, + -0x1.d1745d1745d14p-2, + (int)7 + }, + { // Entry 165 + -0x1.d1745d1745d140p6, + -0x1.d1745d1745d14p-2, + (int)8 + }, + { // Entry 166 + -0x1.d1745d1745d140p7, + -0x1.d1745d1745d14p-2, + (int)9 + }, + { // Entry 167 + -0x1.d1745d1745d140p8, + -0x1.d1745d1745d14p-2, + (int)10 + }, + { // Entry 168 + -0x1.745d1745d17420p-12, + -0x1.745d1745d1742p-2, + (int)-10 + }, + { // Entry 169 + -0x1.745d1745d17420p-11, + -0x1.745d1745d1742p-2, + (int)-9 + }, + { // Entry 170 + -0x1.745d1745d17420p-10, + -0x1.745d1745d1742p-2, + (int)-8 + }, + { // Entry 171 + -0x1.745d1745d17420p-9, + -0x1.745d1745d1742p-2, + (int)-7 + }, + { // Entry 172 + -0x1.745d1745d17420p-8, + -0x1.745d1745d1742p-2, + (int)-6 + }, + { // Entry 173 + -0x1.745d1745d17420p-7, + -0x1.745d1745d1742p-2, + (int)-5 + }, + { // Entry 174 + -0x1.745d1745d17420p-6, + -0x1.745d1745d1742p-2, + (int)-4 + }, + { // Entry 175 + -0x1.745d1745d17420p-5, + -0x1.745d1745d1742p-2, + (int)-3 + }, + { // Entry 176 + -0x1.745d1745d17420p-4, + -0x1.745d1745d1742p-2, + (int)-2 + }, + { // Entry 177 + -0x1.745d1745d17420p-3, + -0x1.745d1745d1742p-2, + (int)-1 + }, + { // Entry 178 + -0x1.745d1745d17420p-2, + -0x1.745d1745d1742p-2, + (int)0 + }, + { // Entry 179 + -0x1.745d1745d17420p-1, + -0x1.745d1745d1742p-2, + (int)1 + }, + { // Entry 180 + -0x1.745d1745d17420p0, + -0x1.745d1745d1742p-2, + (int)2 + }, + { // Entry 181 + -0x1.745d1745d17420p1, + -0x1.745d1745d1742p-2, + (int)3 + }, + { // Entry 182 + -0x1.745d1745d17420p2, + -0x1.745d1745d1742p-2, + (int)4 + }, + { // Entry 183 + -0x1.745d1745d17420p3, + -0x1.745d1745d1742p-2, + (int)5 + }, + { // Entry 184 + -0x1.745d1745d17420p4, + -0x1.745d1745d1742p-2, + (int)6 + }, + { // Entry 185 + -0x1.745d1745d17420p5, + -0x1.745d1745d1742p-2, + (int)7 + }, + { // Entry 186 + -0x1.745d1745d17420p6, + -0x1.745d1745d1742p-2, + (int)8 + }, + { // Entry 187 + -0x1.745d1745d17420p7, + -0x1.745d1745d1742p-2, + (int)9 + }, + { // Entry 188 + -0x1.745d1745d17420p8, + -0x1.745d1745d1742p-2, + (int)10 + }, + { // Entry 189 + -0x1.1745d1745d17p-12, + -0x1.1745d1745d170p-2, + (int)-10 + }, + { // Entry 190 + -0x1.1745d1745d17p-11, + -0x1.1745d1745d170p-2, + (int)-9 + }, + { // Entry 191 + -0x1.1745d1745d17p-10, + -0x1.1745d1745d170p-2, + (int)-8 + }, + { // Entry 192 + -0x1.1745d1745d17p-9, + -0x1.1745d1745d170p-2, + (int)-7 + }, + { // Entry 193 + -0x1.1745d1745d17p-8, + -0x1.1745d1745d170p-2, + (int)-6 + }, + { // Entry 194 + -0x1.1745d1745d17p-7, + -0x1.1745d1745d170p-2, + (int)-5 + }, + { // Entry 195 + -0x1.1745d1745d17p-6, + -0x1.1745d1745d170p-2, + (int)-4 + }, + { // Entry 196 + -0x1.1745d1745d17p-5, + -0x1.1745d1745d170p-2, + (int)-3 + }, + { // Entry 197 + -0x1.1745d1745d17p-4, + -0x1.1745d1745d170p-2, + (int)-2 + }, + { // Entry 198 + -0x1.1745d1745d17p-3, + -0x1.1745d1745d170p-2, + (int)-1 + }, + { // Entry 199 + -0x1.1745d1745d17p-2, + -0x1.1745d1745d170p-2, + (int)0 + }, + { // Entry 200 + -0x1.1745d1745d17p-1, + -0x1.1745d1745d170p-2, + (int)1 + }, + { // Entry 201 + -0x1.1745d1745d17p0, + -0x1.1745d1745d170p-2, + (int)2 + }, + { // Entry 202 + -0x1.1745d1745d17p1, + -0x1.1745d1745d170p-2, + (int)3 + }, + { // Entry 203 + -0x1.1745d1745d17p2, + -0x1.1745d1745d170p-2, + (int)4 + }, + { // Entry 204 + -0x1.1745d1745d17p3, + -0x1.1745d1745d170p-2, + (int)5 + }, + { // Entry 205 + -0x1.1745d1745d17p4, + -0x1.1745d1745d170p-2, + (int)6 + }, + { // Entry 206 + -0x1.1745d1745d17p5, + -0x1.1745d1745d170p-2, + (int)7 + }, + { // Entry 207 + -0x1.1745d1745d17p6, + -0x1.1745d1745d170p-2, + (int)8 + }, + { // Entry 208 + -0x1.1745d1745d17p7, + -0x1.1745d1745d170p-2, + (int)9 + }, + { // Entry 209 + -0x1.1745d1745d17p8, + -0x1.1745d1745d170p-2, + (int)10 + }, + { // Entry 210 + -0x1.745d1745d173d0p-13, + -0x1.745d1745d173dp-3, + (int)-10 + }, + { // Entry 211 + -0x1.745d1745d173d0p-12, + -0x1.745d1745d173dp-3, + (int)-9 + }, + { // Entry 212 + -0x1.745d1745d173d0p-11, + -0x1.745d1745d173dp-3, + (int)-8 + }, + { // Entry 213 + -0x1.745d1745d173d0p-10, + -0x1.745d1745d173dp-3, + (int)-7 + }, + { // Entry 214 + -0x1.745d1745d173d0p-9, + -0x1.745d1745d173dp-3, + (int)-6 + }, + { // Entry 215 + -0x1.745d1745d173d0p-8, + -0x1.745d1745d173dp-3, + (int)-5 + }, + { // Entry 216 + -0x1.745d1745d173d0p-7, + -0x1.745d1745d173dp-3, + (int)-4 + }, + { // Entry 217 + -0x1.745d1745d173d0p-6, + -0x1.745d1745d173dp-3, + (int)-3 + }, + { // Entry 218 + -0x1.745d1745d173d0p-5, + -0x1.745d1745d173dp-3, + (int)-2 + }, + { // Entry 219 + -0x1.745d1745d173d0p-4, + -0x1.745d1745d173dp-3, + (int)-1 + }, + { // Entry 220 + -0x1.745d1745d173d0p-3, + -0x1.745d1745d173dp-3, + (int)0 + }, + { // Entry 221 + -0x1.745d1745d173d0p-2, + -0x1.745d1745d173dp-3, + (int)1 + }, + { // Entry 222 + -0x1.745d1745d173d0p-1, + -0x1.745d1745d173dp-3, + (int)2 + }, + { // Entry 223 + -0x1.745d1745d173d0p0, + -0x1.745d1745d173dp-3, + (int)3 + }, + { // Entry 224 + -0x1.745d1745d173d0p1, + -0x1.745d1745d173dp-3, + (int)4 + }, + { // Entry 225 + -0x1.745d1745d173d0p2, + -0x1.745d1745d173dp-3, + (int)5 + }, + { // Entry 226 + -0x1.745d1745d173d0p3, + -0x1.745d1745d173dp-3, + (int)6 + }, + { // Entry 227 + -0x1.745d1745d173d0p4, + -0x1.745d1745d173dp-3, + (int)7 + }, + { // Entry 228 + -0x1.745d1745d173d0p5, + -0x1.745d1745d173dp-3, + (int)8 + }, + { // Entry 229 + -0x1.745d1745d173d0p6, + -0x1.745d1745d173dp-3, + (int)9 + }, + { // Entry 230 + -0x1.745d1745d173d0p7, + -0x1.745d1745d173dp-3, + (int)10 + }, + { // Entry 231 + -0x1.745d1745d17340p-14, + -0x1.745d1745d1734p-4, + (int)-10 + }, + { // Entry 232 + -0x1.745d1745d17340p-13, + -0x1.745d1745d1734p-4, + (int)-9 + }, + { // Entry 233 + -0x1.745d1745d17340p-12, + -0x1.745d1745d1734p-4, + (int)-8 + }, + { // Entry 234 + -0x1.745d1745d17340p-11, + -0x1.745d1745d1734p-4, + (int)-7 + }, + { // Entry 235 + -0x1.745d1745d17340p-10, + -0x1.745d1745d1734p-4, + (int)-6 + }, + { // Entry 236 + -0x1.745d1745d17340p-9, + -0x1.745d1745d1734p-4, + (int)-5 + }, + { // Entry 237 + -0x1.745d1745d17340p-8, + -0x1.745d1745d1734p-4, + (int)-4 + }, + { // Entry 238 + -0x1.745d1745d17340p-7, + -0x1.745d1745d1734p-4, + (int)-3 + }, + { // Entry 239 + -0x1.745d1745d17340p-6, + -0x1.745d1745d1734p-4, + (int)-2 + }, + { // Entry 240 + -0x1.745d1745d17340p-5, + -0x1.745d1745d1734p-4, + (int)-1 + }, + { // Entry 241 + -0x1.745d1745d17340p-4, + -0x1.745d1745d1734p-4, + (int)0 + }, + { // Entry 242 + -0x1.745d1745d17340p-3, + -0x1.745d1745d1734p-4, + (int)1 + }, + { // Entry 243 + -0x1.745d1745d17340p-2, + -0x1.745d1745d1734p-4, + (int)2 + }, + { // Entry 244 + -0x1.745d1745d17340p-1, + -0x1.745d1745d1734p-4, + (int)3 + }, + { // Entry 245 + -0x1.745d1745d17340p0, + -0x1.745d1745d1734p-4, + (int)4 + }, + { // Entry 246 + -0x1.745d1745d17340p1, + -0x1.745d1745d1734p-4, + (int)5 + }, + { // Entry 247 + -0x1.745d1745d17340p2, + -0x1.745d1745d1734p-4, + (int)6 + }, + { // Entry 248 + -0x1.745d1745d17340p3, + -0x1.745d1745d1734p-4, + (int)7 + }, + { // Entry 249 + -0x1.745d1745d17340p4, + -0x1.745d1745d1734p-4, + (int)8 + }, + { // Entry 250 + -0x1.745d1745d17340p5, + -0x1.745d1745d1734p-4, + (int)9 + }, + { // Entry 251 + -0x1.745d1745d17340p6, + -0x1.745d1745d1734p-4, + (int)10 + }, + { // Entry 252 + 0x1.20p-62, + 0x1.2p-52, + (int)-10 + }, + { // Entry 253 + 0x1.20p-61, + 0x1.2p-52, + (int)-9 + }, + { // Entry 254 + 0x1.20p-60, + 0x1.2p-52, + (int)-8 + }, + { // Entry 255 + 0x1.20p-59, + 0x1.2p-52, + (int)-7 + }, + { // Entry 256 + 0x1.20p-58, + 0x1.2p-52, + (int)-6 + }, + { // Entry 257 + 0x1.20p-57, + 0x1.2p-52, + (int)-5 + }, + { // Entry 258 + 0x1.20p-56, + 0x1.2p-52, + (int)-4 + }, + { // Entry 259 + 0x1.20p-55, + 0x1.2p-52, + (int)-3 + }, + { // Entry 260 + 0x1.20p-54, + 0x1.2p-52, + (int)-2 + }, + { // Entry 261 + 0x1.20p-53, + 0x1.2p-52, + (int)-1 + }, + { // Entry 262 + 0x1.20p-52, + 0x1.2p-52, + (int)0 + }, + { // Entry 263 + 0x1.20p-51, + 0x1.2p-52, + (int)1 + }, + { // Entry 264 + 0x1.20p-50, + 0x1.2p-52, + (int)2 + }, + { // Entry 265 + 0x1.20p-49, + 0x1.2p-52, + (int)3 + }, + { // Entry 266 + 0x1.20p-48, + 0x1.2p-52, + (int)4 + }, + { // Entry 267 + 0x1.20p-47, + 0x1.2p-52, + (int)5 + }, + { // Entry 268 + 0x1.20p-46, + 0x1.2p-52, + (int)6 + }, + { // Entry 269 + 0x1.20p-45, + 0x1.2p-52, + (int)7 + }, + { // Entry 270 + 0x1.20p-44, + 0x1.2p-52, + (int)8 + }, + { // Entry 271 + 0x1.20p-43, + 0x1.2p-52, + (int)9 + }, + { // Entry 272 + 0x1.20p-42, + 0x1.2p-52, + (int)10 + }, + { // Entry 273 + 0x1.745d1745d17580p-14, + 0x1.745d1745d1758p-4, + (int)-10 + }, + { // Entry 274 + 0x1.745d1745d17580p-13, + 0x1.745d1745d1758p-4, + (int)-9 + }, + { // Entry 275 + 0x1.745d1745d17580p-12, + 0x1.745d1745d1758p-4, + (int)-8 + }, + { // Entry 276 + 0x1.745d1745d17580p-11, + 0x1.745d1745d1758p-4, + (int)-7 + }, + { // Entry 277 + 0x1.745d1745d17580p-10, + 0x1.745d1745d1758p-4, + (int)-6 + }, + { // Entry 278 + 0x1.745d1745d17580p-9, + 0x1.745d1745d1758p-4, + (int)-5 + }, + { // Entry 279 + 0x1.745d1745d17580p-8, + 0x1.745d1745d1758p-4, + (int)-4 + }, + { // Entry 280 + 0x1.745d1745d17580p-7, + 0x1.745d1745d1758p-4, + (int)-3 + }, + { // Entry 281 + 0x1.745d1745d17580p-6, + 0x1.745d1745d1758p-4, + (int)-2 + }, + { // Entry 282 + 0x1.745d1745d17580p-5, + 0x1.745d1745d1758p-4, + (int)-1 + }, + { // Entry 283 + 0x1.745d1745d17580p-4, + 0x1.745d1745d1758p-4, + (int)0 + }, + { // Entry 284 + 0x1.745d1745d17580p-3, + 0x1.745d1745d1758p-4, + (int)1 + }, + { // Entry 285 + 0x1.745d1745d17580p-2, + 0x1.745d1745d1758p-4, + (int)2 + }, + { // Entry 286 + 0x1.745d1745d17580p-1, + 0x1.745d1745d1758p-4, + (int)3 + }, + { // Entry 287 + 0x1.745d1745d17580p0, + 0x1.745d1745d1758p-4, + (int)4 + }, + { // Entry 288 + 0x1.745d1745d17580p1, + 0x1.745d1745d1758p-4, + (int)5 + }, + { // Entry 289 + 0x1.745d1745d17580p2, + 0x1.745d1745d1758p-4, + (int)6 + }, + { // Entry 290 + 0x1.745d1745d17580p3, + 0x1.745d1745d1758p-4, + (int)7 + }, + { // Entry 291 + 0x1.745d1745d17580p4, + 0x1.745d1745d1758p-4, + (int)8 + }, + { // Entry 292 + 0x1.745d1745d17580p5, + 0x1.745d1745d1758p-4, + (int)9 + }, + { // Entry 293 + 0x1.745d1745d17580p6, + 0x1.745d1745d1758p-4, + (int)10 + }, + { // Entry 294 + 0x1.745d1745d174f0p-13, + 0x1.745d1745d174fp-3, + (int)-10 + }, + { // Entry 295 + 0x1.745d1745d174f0p-12, + 0x1.745d1745d174fp-3, + (int)-9 + }, + { // Entry 296 + 0x1.745d1745d174f0p-11, + 0x1.745d1745d174fp-3, + (int)-8 + }, + { // Entry 297 + 0x1.745d1745d174f0p-10, + 0x1.745d1745d174fp-3, + (int)-7 + }, + { // Entry 298 + 0x1.745d1745d174f0p-9, + 0x1.745d1745d174fp-3, + (int)-6 + }, + { // Entry 299 + 0x1.745d1745d174f0p-8, + 0x1.745d1745d174fp-3, + (int)-5 + }, + { // Entry 300 + 0x1.745d1745d174f0p-7, + 0x1.745d1745d174fp-3, + (int)-4 + }, + { // Entry 301 + 0x1.745d1745d174f0p-6, + 0x1.745d1745d174fp-3, + (int)-3 + }, + { // Entry 302 + 0x1.745d1745d174f0p-5, + 0x1.745d1745d174fp-3, + (int)-2 + }, + { // Entry 303 + 0x1.745d1745d174f0p-4, + 0x1.745d1745d174fp-3, + (int)-1 + }, + { // Entry 304 + 0x1.745d1745d174f0p-3, + 0x1.745d1745d174fp-3, + (int)0 + }, + { // Entry 305 + 0x1.745d1745d174f0p-2, + 0x1.745d1745d174fp-3, + (int)1 + }, + { // Entry 306 + 0x1.745d1745d174f0p-1, + 0x1.745d1745d174fp-3, + (int)2 + }, + { // Entry 307 + 0x1.745d1745d174f0p0, + 0x1.745d1745d174fp-3, + (int)3 + }, + { // Entry 308 + 0x1.745d1745d174f0p1, + 0x1.745d1745d174fp-3, + (int)4 + }, + { // Entry 309 + 0x1.745d1745d174f0p2, + 0x1.745d1745d174fp-3, + (int)5 + }, + { // Entry 310 + 0x1.745d1745d174f0p3, + 0x1.745d1745d174fp-3, + (int)6 + }, + { // Entry 311 + 0x1.745d1745d174f0p4, + 0x1.745d1745d174fp-3, + (int)7 + }, + { // Entry 312 + 0x1.745d1745d174f0p5, + 0x1.745d1745d174fp-3, + (int)8 + }, + { // Entry 313 + 0x1.745d1745d174f0p6, + 0x1.745d1745d174fp-3, + (int)9 + }, + { // Entry 314 + 0x1.745d1745d174f0p7, + 0x1.745d1745d174fp-3, + (int)10 + }, + { // Entry 315 + 0x1.1745d1745d1790p-12, + 0x1.1745d1745d179p-2, + (int)-10 + }, + { // Entry 316 + 0x1.1745d1745d1790p-11, + 0x1.1745d1745d179p-2, + (int)-9 + }, + { // Entry 317 + 0x1.1745d1745d1790p-10, + 0x1.1745d1745d179p-2, + (int)-8 + }, + { // Entry 318 + 0x1.1745d1745d1790p-9, + 0x1.1745d1745d179p-2, + (int)-7 + }, + { // Entry 319 + 0x1.1745d1745d1790p-8, + 0x1.1745d1745d179p-2, + (int)-6 + }, + { // Entry 320 + 0x1.1745d1745d1790p-7, + 0x1.1745d1745d179p-2, + (int)-5 + }, + { // Entry 321 + 0x1.1745d1745d1790p-6, + 0x1.1745d1745d179p-2, + (int)-4 + }, + { // Entry 322 + 0x1.1745d1745d1790p-5, + 0x1.1745d1745d179p-2, + (int)-3 + }, + { // Entry 323 + 0x1.1745d1745d1790p-4, + 0x1.1745d1745d179p-2, + (int)-2 + }, + { // Entry 324 + 0x1.1745d1745d1790p-3, + 0x1.1745d1745d179p-2, + (int)-1 + }, + { // Entry 325 + 0x1.1745d1745d1790p-2, + 0x1.1745d1745d179p-2, + (int)0 + }, + { // Entry 326 + 0x1.1745d1745d1790p-1, + 0x1.1745d1745d179p-2, + (int)1 + }, + { // Entry 327 + 0x1.1745d1745d1790p0, + 0x1.1745d1745d179p-2, + (int)2 + }, + { // Entry 328 + 0x1.1745d1745d1790p1, + 0x1.1745d1745d179p-2, + (int)3 + }, + { // Entry 329 + 0x1.1745d1745d1790p2, + 0x1.1745d1745d179p-2, + (int)4 + }, + { // Entry 330 + 0x1.1745d1745d1790p3, + 0x1.1745d1745d179p-2, + (int)5 + }, + { // Entry 331 + 0x1.1745d1745d1790p4, + 0x1.1745d1745d179p-2, + (int)6 + }, + { // Entry 332 + 0x1.1745d1745d1790p5, + 0x1.1745d1745d179p-2, + (int)7 + }, + { // Entry 333 + 0x1.1745d1745d1790p6, + 0x1.1745d1745d179p-2, + (int)8 + }, + { // Entry 334 + 0x1.1745d1745d1790p7, + 0x1.1745d1745d179p-2, + (int)9 + }, + { // Entry 335 + 0x1.1745d1745d1790p8, + 0x1.1745d1745d179p-2, + (int)10 + }, + { // Entry 336 + 0x1.745d1745d174a0p-12, + 0x1.745d1745d174ap-2, + (int)-10 + }, + { // Entry 337 + 0x1.745d1745d174a0p-11, + 0x1.745d1745d174ap-2, + (int)-9 + }, + { // Entry 338 + 0x1.745d1745d174a0p-10, + 0x1.745d1745d174ap-2, + (int)-8 + }, + { // Entry 339 + 0x1.745d1745d174a0p-9, + 0x1.745d1745d174ap-2, + (int)-7 + }, + { // Entry 340 + 0x1.745d1745d174a0p-8, + 0x1.745d1745d174ap-2, + (int)-6 + }, + { // Entry 341 + 0x1.745d1745d174a0p-7, + 0x1.745d1745d174ap-2, + (int)-5 + }, + { // Entry 342 + 0x1.745d1745d174a0p-6, + 0x1.745d1745d174ap-2, + (int)-4 + }, + { // Entry 343 + 0x1.745d1745d174a0p-5, + 0x1.745d1745d174ap-2, + (int)-3 + }, + { // Entry 344 + 0x1.745d1745d174a0p-4, + 0x1.745d1745d174ap-2, + (int)-2 + }, + { // Entry 345 + 0x1.745d1745d174a0p-3, + 0x1.745d1745d174ap-2, + (int)-1 + }, + { // Entry 346 + 0x1.745d1745d174a0p-2, + 0x1.745d1745d174ap-2, + (int)0 + }, + { // Entry 347 + 0x1.745d1745d174a0p-1, + 0x1.745d1745d174ap-2, + (int)1 + }, + { // Entry 348 + 0x1.745d1745d174a0p0, + 0x1.745d1745d174ap-2, + (int)2 + }, + { // Entry 349 + 0x1.745d1745d174a0p1, + 0x1.745d1745d174ap-2, + (int)3 + }, + { // Entry 350 + 0x1.745d1745d174a0p2, + 0x1.745d1745d174ap-2, + (int)4 + }, + { // Entry 351 + 0x1.745d1745d174a0p3, + 0x1.745d1745d174ap-2, + (int)5 + }, + { // Entry 352 + 0x1.745d1745d174a0p4, + 0x1.745d1745d174ap-2, + (int)6 + }, + { // Entry 353 + 0x1.745d1745d174a0p5, + 0x1.745d1745d174ap-2, + (int)7 + }, + { // Entry 354 + 0x1.745d1745d174a0p6, + 0x1.745d1745d174ap-2, + (int)8 + }, + { // Entry 355 + 0x1.745d1745d174a0p7, + 0x1.745d1745d174ap-2, + (int)9 + }, + { // Entry 356 + 0x1.745d1745d174a0p8, + 0x1.745d1745d174ap-2, + (int)10 + }, + { // Entry 357 + 0x1.d1745d1745d1c0p-12, + 0x1.d1745d1745d1cp-2, + (int)-10 + }, + { // Entry 358 + 0x1.d1745d1745d1c0p-11, + 0x1.d1745d1745d1cp-2, + (int)-9 + }, + { // Entry 359 + 0x1.d1745d1745d1c0p-10, + 0x1.d1745d1745d1cp-2, + (int)-8 + }, + { // Entry 360 + 0x1.d1745d1745d1c0p-9, + 0x1.d1745d1745d1cp-2, + (int)-7 + }, + { // Entry 361 + 0x1.d1745d1745d1c0p-8, + 0x1.d1745d1745d1cp-2, + (int)-6 + }, + { // Entry 362 + 0x1.d1745d1745d1c0p-7, + 0x1.d1745d1745d1cp-2, + (int)-5 + }, + { // Entry 363 + 0x1.d1745d1745d1c0p-6, + 0x1.d1745d1745d1cp-2, + (int)-4 + }, + { // Entry 364 + 0x1.d1745d1745d1c0p-5, + 0x1.d1745d1745d1cp-2, + (int)-3 + }, + { // Entry 365 + 0x1.d1745d1745d1c0p-4, + 0x1.d1745d1745d1cp-2, + (int)-2 + }, + { // Entry 366 + 0x1.d1745d1745d1c0p-3, + 0x1.d1745d1745d1cp-2, + (int)-1 + }, + { // Entry 367 + 0x1.d1745d1745d1c0p-2, + 0x1.d1745d1745d1cp-2, + (int)0 + }, + { // Entry 368 + 0x1.d1745d1745d1c0p-1, + 0x1.d1745d1745d1cp-2, + (int)1 + }, + { // Entry 369 + 0x1.d1745d1745d1c0p0, + 0x1.d1745d1745d1cp-2, + (int)2 + }, + { // Entry 370 + 0x1.d1745d1745d1c0p1, + 0x1.d1745d1745d1cp-2, + (int)3 + }, + { // Entry 371 + 0x1.d1745d1745d1c0p2, + 0x1.d1745d1745d1cp-2, + (int)4 + }, + { // Entry 372 + 0x1.d1745d1745d1c0p3, + 0x1.d1745d1745d1cp-2, + (int)5 + }, + { // Entry 373 + 0x1.d1745d1745d1c0p4, + 0x1.d1745d1745d1cp-2, + (int)6 + }, + { // Entry 374 + 0x1.d1745d1745d1c0p5, + 0x1.d1745d1745d1cp-2, + (int)7 + }, + { // Entry 375 + 0x1.d1745d1745d1c0p6, + 0x1.d1745d1745d1cp-2, + (int)8 + }, + { // Entry 376 + 0x1.d1745d1745d1c0p7, + 0x1.d1745d1745d1cp-2, + (int)9 + }, + { // Entry 377 + 0x1.d1745d1745d1c0p8, + 0x1.d1745d1745d1cp-2, + (int)10 + }, + { // Entry 378 + 0x1.1745d1745d1770p-11, + 0x1.1745d1745d177p-1, + (int)-10 + }, + { // Entry 379 + 0x1.1745d1745d1770p-10, + 0x1.1745d1745d177p-1, + (int)-9 + }, + { // Entry 380 + 0x1.1745d1745d1770p-9, + 0x1.1745d1745d177p-1, + (int)-8 + }, + { // Entry 381 + 0x1.1745d1745d1770p-8, + 0x1.1745d1745d177p-1, + (int)-7 + }, + { // Entry 382 + 0x1.1745d1745d1770p-7, + 0x1.1745d1745d177p-1, + (int)-6 + }, + { // Entry 383 + 0x1.1745d1745d1770p-6, + 0x1.1745d1745d177p-1, + (int)-5 + }, + { // Entry 384 + 0x1.1745d1745d1770p-5, + 0x1.1745d1745d177p-1, + (int)-4 + }, + { // Entry 385 + 0x1.1745d1745d1770p-4, + 0x1.1745d1745d177p-1, + (int)-3 + }, + { // Entry 386 + 0x1.1745d1745d1770p-3, + 0x1.1745d1745d177p-1, + (int)-2 + }, + { // Entry 387 + 0x1.1745d1745d1770p-2, + 0x1.1745d1745d177p-1, + (int)-1 + }, + { // Entry 388 + 0x1.1745d1745d1770p-1, + 0x1.1745d1745d177p-1, + (int)0 + }, + { // Entry 389 + 0x1.1745d1745d1770p0, + 0x1.1745d1745d177p-1, + (int)1 + }, + { // Entry 390 + 0x1.1745d1745d1770p1, + 0x1.1745d1745d177p-1, + (int)2 + }, + { // Entry 391 + 0x1.1745d1745d1770p2, + 0x1.1745d1745d177p-1, + (int)3 + }, + { // Entry 392 + 0x1.1745d1745d1770p3, + 0x1.1745d1745d177p-1, + (int)4 + }, + { // Entry 393 + 0x1.1745d1745d1770p4, + 0x1.1745d1745d177p-1, + (int)5 + }, + { // Entry 394 + 0x1.1745d1745d1770p5, + 0x1.1745d1745d177p-1, + (int)6 + }, + { // Entry 395 + 0x1.1745d1745d1770p6, + 0x1.1745d1745d177p-1, + (int)7 + }, + { // Entry 396 + 0x1.1745d1745d1770p7, + 0x1.1745d1745d177p-1, + (int)8 + }, + { // Entry 397 + 0x1.1745d1745d1770p8, + 0x1.1745d1745d177p-1, + (int)9 + }, + { // Entry 398 + 0x1.1745d1745d1770p9, + 0x1.1745d1745d177p-1, + (int)10 + }, + { // Entry 399 + 0x1.45d1745d1746p-11, + 0x1.45d1745d17460p-1, + (int)-10 + }, + { // Entry 400 + 0x1.45d1745d1746p-10, + 0x1.45d1745d17460p-1, + (int)-9 + }, + { // Entry 401 + 0x1.45d1745d1746p-9, + 0x1.45d1745d17460p-1, + (int)-8 + }, + { // Entry 402 + 0x1.45d1745d1746p-8, + 0x1.45d1745d17460p-1, + (int)-7 + }, + { // Entry 403 + 0x1.45d1745d1746p-7, + 0x1.45d1745d17460p-1, + (int)-6 + }, + { // Entry 404 + 0x1.45d1745d1746p-6, + 0x1.45d1745d17460p-1, + (int)-5 + }, + { // Entry 405 + 0x1.45d1745d1746p-5, + 0x1.45d1745d17460p-1, + (int)-4 + }, + { // Entry 406 + 0x1.45d1745d1746p-4, + 0x1.45d1745d17460p-1, + (int)-3 + }, + { // Entry 407 + 0x1.45d1745d1746p-3, + 0x1.45d1745d17460p-1, + (int)-2 + }, + { // Entry 408 + 0x1.45d1745d1746p-2, + 0x1.45d1745d17460p-1, + (int)-1 + }, + { // Entry 409 + 0x1.45d1745d1746p-1, + 0x1.45d1745d17460p-1, + (int)0 + }, + { // Entry 410 + 0x1.45d1745d1746p0, + 0x1.45d1745d17460p-1, + (int)1 + }, + { // Entry 411 + 0x1.45d1745d1746p1, + 0x1.45d1745d17460p-1, + (int)2 + }, + { // Entry 412 + 0x1.45d1745d1746p2, + 0x1.45d1745d17460p-1, + (int)3 + }, + { // Entry 413 + 0x1.45d1745d1746p3, + 0x1.45d1745d17460p-1, + (int)4 + }, + { // Entry 414 + 0x1.45d1745d1746p4, + 0x1.45d1745d17460p-1, + (int)5 + }, + { // Entry 415 + 0x1.45d1745d1746p5, + 0x1.45d1745d17460p-1, + (int)6 + }, + { // Entry 416 + 0x1.45d1745d1746p6, + 0x1.45d1745d17460p-1, + (int)7 + }, + { // Entry 417 + 0x1.45d1745d1746p7, + 0x1.45d1745d17460p-1, + (int)8 + }, + { // Entry 418 + 0x1.45d1745d1746p8, + 0x1.45d1745d17460p-1, + (int)9 + }, + { // Entry 419 + 0x1.45d1745d1746p9, + 0x1.45d1745d17460p-1, + (int)10 + }, + { // Entry 420 + 0x1.745d1745d17490p-11, + 0x1.745d1745d1749p-1, + (int)-10 + }, + { // Entry 421 + 0x1.745d1745d17490p-10, + 0x1.745d1745d1749p-1, + (int)-9 + }, + { // Entry 422 + 0x1.745d1745d17490p-9, + 0x1.745d1745d1749p-1, + (int)-8 + }, + { // Entry 423 + 0x1.745d1745d17490p-8, + 0x1.745d1745d1749p-1, + (int)-7 + }, + { // Entry 424 + 0x1.745d1745d17490p-7, + 0x1.745d1745d1749p-1, + (int)-6 + }, + { // Entry 425 + 0x1.745d1745d17490p-6, + 0x1.745d1745d1749p-1, + (int)-5 + }, + { // Entry 426 + 0x1.745d1745d17490p-5, + 0x1.745d1745d1749p-1, + (int)-4 + }, + { // Entry 427 + 0x1.745d1745d17490p-4, + 0x1.745d1745d1749p-1, + (int)-3 + }, + { // Entry 428 + 0x1.745d1745d17490p-3, + 0x1.745d1745d1749p-1, + (int)-2 + }, + { // Entry 429 + 0x1.745d1745d17490p-2, + 0x1.745d1745d1749p-1, + (int)-1 + }, + { // Entry 430 + 0x1.745d1745d17490p-1, + 0x1.745d1745d1749p-1, + (int)0 + }, + { // Entry 431 + 0x1.745d1745d17490p0, + 0x1.745d1745d1749p-1, + (int)1 + }, + { // Entry 432 + 0x1.745d1745d17490p1, + 0x1.745d1745d1749p-1, + (int)2 + }, + { // Entry 433 + 0x1.745d1745d17490p2, + 0x1.745d1745d1749p-1, + (int)3 + }, + { // Entry 434 + 0x1.745d1745d17490p3, + 0x1.745d1745d1749p-1, + (int)4 + }, + { // Entry 435 + 0x1.745d1745d17490p4, + 0x1.745d1745d1749p-1, + (int)5 + }, + { // Entry 436 + 0x1.745d1745d17490p5, + 0x1.745d1745d1749p-1, + (int)6 + }, + { // Entry 437 + 0x1.745d1745d17490p6, + 0x1.745d1745d1749p-1, + (int)7 + }, + { // Entry 438 + 0x1.745d1745d17490p7, + 0x1.745d1745d1749p-1, + (int)8 + }, + { // Entry 439 + 0x1.745d1745d17490p8, + 0x1.745d1745d1749p-1, + (int)9 + }, + { // Entry 440 + 0x1.745d1745d17490p9, + 0x1.745d1745d1749p-1, + (int)10 + }, + { // Entry 441 + 0x1.a2e8ba2e8ba320p-11, + 0x1.a2e8ba2e8ba32p-1, + (int)-10 + }, + { // Entry 442 + 0x1.a2e8ba2e8ba320p-10, + 0x1.a2e8ba2e8ba32p-1, + (int)-9 + }, + { // Entry 443 + 0x1.a2e8ba2e8ba320p-9, + 0x1.a2e8ba2e8ba32p-1, + (int)-8 + }, + { // Entry 444 + 0x1.a2e8ba2e8ba320p-8, + 0x1.a2e8ba2e8ba32p-1, + (int)-7 + }, + { // Entry 445 + 0x1.a2e8ba2e8ba320p-7, + 0x1.a2e8ba2e8ba32p-1, + (int)-6 + }, + { // Entry 446 + 0x1.a2e8ba2e8ba320p-6, + 0x1.a2e8ba2e8ba32p-1, + (int)-5 + }, + { // Entry 447 + 0x1.a2e8ba2e8ba320p-5, + 0x1.a2e8ba2e8ba32p-1, + (int)-4 + }, + { // Entry 448 + 0x1.a2e8ba2e8ba320p-4, + 0x1.a2e8ba2e8ba32p-1, + (int)-3 + }, + { // Entry 449 + 0x1.a2e8ba2e8ba320p-3, + 0x1.a2e8ba2e8ba32p-1, + (int)-2 + }, + { // Entry 450 + 0x1.a2e8ba2e8ba320p-2, + 0x1.a2e8ba2e8ba32p-1, + (int)-1 + }, + { // Entry 451 + 0x1.a2e8ba2e8ba320p-1, + 0x1.a2e8ba2e8ba32p-1, + (int)0 + }, + { // Entry 452 + 0x1.a2e8ba2e8ba320p0, + 0x1.a2e8ba2e8ba32p-1, + (int)1 + }, + { // Entry 453 + 0x1.a2e8ba2e8ba320p1, + 0x1.a2e8ba2e8ba32p-1, + (int)2 + }, + { // Entry 454 + 0x1.a2e8ba2e8ba320p2, + 0x1.a2e8ba2e8ba32p-1, + (int)3 + }, + { // Entry 455 + 0x1.a2e8ba2e8ba320p3, + 0x1.a2e8ba2e8ba32p-1, + (int)4 + }, + { // Entry 456 + 0x1.a2e8ba2e8ba320p4, + 0x1.a2e8ba2e8ba32p-1, + (int)5 + }, + { // Entry 457 + 0x1.a2e8ba2e8ba320p5, + 0x1.a2e8ba2e8ba32p-1, + (int)6 + }, + { // Entry 458 + 0x1.a2e8ba2e8ba320p6, + 0x1.a2e8ba2e8ba32p-1, + (int)7 + }, + { // Entry 459 + 0x1.a2e8ba2e8ba320p7, + 0x1.a2e8ba2e8ba32p-1, + (int)8 + }, + { // Entry 460 + 0x1.a2e8ba2e8ba320p8, + 0x1.a2e8ba2e8ba32p-1, + (int)9 + }, + { // Entry 461 + 0x1.a2e8ba2e8ba320p9, + 0x1.a2e8ba2e8ba32p-1, + (int)10 + }, + { // Entry 462 + 0x1.d1745d1745d1b0p-11, + 0x1.d1745d1745d1bp-1, + (int)-10 + }, + { // Entry 463 + 0x1.d1745d1745d1b0p-10, + 0x1.d1745d1745d1bp-1, + (int)-9 + }, + { // Entry 464 + 0x1.d1745d1745d1b0p-9, + 0x1.d1745d1745d1bp-1, + (int)-8 + }, + { // Entry 465 + 0x1.d1745d1745d1b0p-8, + 0x1.d1745d1745d1bp-1, + (int)-7 + }, + { // Entry 466 + 0x1.d1745d1745d1b0p-7, + 0x1.d1745d1745d1bp-1, + (int)-6 + }, + { // Entry 467 + 0x1.d1745d1745d1b0p-6, + 0x1.d1745d1745d1bp-1, + (int)-5 + }, + { // Entry 468 + 0x1.d1745d1745d1b0p-5, + 0x1.d1745d1745d1bp-1, + (int)-4 + }, + { // Entry 469 + 0x1.d1745d1745d1b0p-4, + 0x1.d1745d1745d1bp-1, + (int)-3 + }, + { // Entry 470 + 0x1.d1745d1745d1b0p-3, + 0x1.d1745d1745d1bp-1, + (int)-2 + }, + { // Entry 471 + 0x1.d1745d1745d1b0p-2, + 0x1.d1745d1745d1bp-1, + (int)-1 + }, + { // Entry 472 + 0x1.d1745d1745d1b0p-1, + 0x1.d1745d1745d1bp-1, + (int)0 + }, + { // Entry 473 + 0x1.d1745d1745d1b0p0, + 0x1.d1745d1745d1bp-1, + (int)1 + }, + { // Entry 474 + 0x1.d1745d1745d1b0p1, + 0x1.d1745d1745d1bp-1, + (int)2 + }, + { // Entry 475 + 0x1.d1745d1745d1b0p2, + 0x1.d1745d1745d1bp-1, + (int)3 + }, + { // Entry 476 + 0x1.d1745d1745d1b0p3, + 0x1.d1745d1745d1bp-1, + (int)4 + }, + { // Entry 477 + 0x1.d1745d1745d1b0p4, + 0x1.d1745d1745d1bp-1, + (int)5 + }, + { // Entry 478 + 0x1.d1745d1745d1b0p5, + 0x1.d1745d1745d1bp-1, + (int)6 + }, + { // Entry 479 + 0x1.d1745d1745d1b0p6, + 0x1.d1745d1745d1bp-1, + (int)7 + }, + { // Entry 480 + 0x1.d1745d1745d1b0p7, + 0x1.d1745d1745d1bp-1, + (int)8 + }, + { // Entry 481 + 0x1.d1745d1745d1b0p8, + 0x1.d1745d1745d1bp-1, + (int)9 + }, + { // Entry 482 + 0x1.d1745d1745d1b0p9, + 0x1.d1745d1745d1bp-1, + (int)10 + }, + { // Entry 483 + 0x1.p-10, + 0x1.0p0, + (int)-10 + }, + { // Entry 484 + 0x1.p-9, + 0x1.0p0, + (int)-9 + }, + { // Entry 485 + 0x1.p-8, + 0x1.0p0, + (int)-8 + }, + { // Entry 486 + 0x1.p-7, + 0x1.0p0, + (int)-7 + }, + { // Entry 487 + 0x1.p-6, + 0x1.0p0, + (int)-6 + }, + { // Entry 488 + 0x1.p-5, + 0x1.0p0, + (int)-5 + }, + { // Entry 489 + 0x1.p-4, + 0x1.0p0, + (int)-4 + }, + { // Entry 490 + 0x1.p-3, + 0x1.0p0, + (int)-3 + }, + { // Entry 491 + 0x1.p-2, + 0x1.0p0, + (int)-2 + }, + { // Entry 492 + 0x1.p-1, + 0x1.0p0, + (int)-1 + }, + { // Entry 493 + 0x1.p0, + 0x1.0p0, + (int)0 + }, + { // Entry 494 + 0x1.p1, + 0x1.0p0, + (int)1 + }, + { // Entry 495 + 0x1.p2, + 0x1.0p0, + (int)2 + }, + { // Entry 496 + 0x1.p3, + 0x1.0p0, + (int)3 + }, + { // Entry 497 + 0x1.p4, + 0x1.0p0, + (int)4 + }, + { // Entry 498 + 0x1.p5, + 0x1.0p0, + (int)5 + }, + { // Entry 499 + 0x1.p6, + 0x1.0p0, + (int)6 + }, + { // Entry 500 + 0x1.p7, + 0x1.0p0, + (int)7 + }, + { // Entry 501 + 0x1.p8, + 0x1.0p0, + (int)8 + }, + { // Entry 502 + 0x1.p9, + 0x1.0p0, + (int)9 + }, + { // Entry 503 + 0x1.p10, + 0x1.0p0, + (int)10 + }, + { // Entry 504 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp1023, + (int)-1023 + }, + { // Entry 505 + 0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + (int)-1022 + }, + { // Entry 506 + 0x1.fffffffffffff0p23, + 0x1.fffffffffffffp1023, + (int)-1000 + }, + { // Entry 507 + 0x1.fffffffffffff0p24, + 0x1.fffffffffffffp1023, + (int)-999 + }, + { // Entry 508 + 0x1.fffffffffffff0p1013, + 0x1.fffffffffffffp1023, + (int)-10 + }, + { // Entry 509 + 0x1.fffffffffffff0p1014, + 0x1.fffffffffffffp1023, + (int)-9 + }, + { // Entry 510 + 0x1.fffffffffffff0p1015, + 0x1.fffffffffffffp1023, + (int)-8 + }, + { // Entry 511 + 0x1.fffffffffffff0p1016, + 0x1.fffffffffffffp1023, + (int)-7 + }, + { // Entry 512 + 0x1.fffffffffffff0p1017, + 0x1.fffffffffffffp1023, + (int)-6 + }, + { // Entry 513 + 0x1.fffffffffffff0p1018, + 0x1.fffffffffffffp1023, + (int)-5 + }, + { // Entry 514 + 0x1.fffffffffffff0p1019, + 0x1.fffffffffffffp1023, + (int)-4 + }, + { // Entry 515 + 0x1.fffffffffffff0p1020, + 0x1.fffffffffffffp1023, + (int)-3 + }, + { // Entry 516 + 0x1.fffffffffffff0p1021, + 0x1.fffffffffffffp1023, + (int)-2 + }, + { // Entry 517 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1023, + (int)-1 + }, + { // Entry 518 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + (int)0 + }, + { // Entry 519 + 0x1.p-51, + 0x1.0p-1074, + (int)1023 + }, + { // Entry 520 + 0x1.p-52, + 0x1.0p-1074, + (int)1022 + }, + { // Entry 521 + 0x1.p-74, + 0x1.0p-1074, + (int)1000 + }, + { // Entry 522 + 0x1.p-75, + 0x1.0p-1074, + (int)999 + }, + { // Entry 523 + 0x1.p-1074, + 0x1.0p-1074, + (int)0 + }, + { // Entry 524 + 0x1.p-1073, + 0x1.0p-1074, + (int)1 + }, + { // Entry 525 + 0x1.p-1072, + 0x1.0p-1074, + (int)2 + }, + { // Entry 526 + 0x1.p-1071, + 0x1.0p-1074, + (int)3 + }, + { // Entry 527 + 0x1.p-1070, + 0x1.0p-1074, + (int)4 + }, + { // Entry 528 + 0x1.p-1069, + 0x1.0p-1074, + (int)5 + }, + { // Entry 529 + 0x1.p-1068, + 0x1.0p-1074, + (int)6 + }, + { // Entry 530 + 0x1.p-1067, + 0x1.0p-1074, + (int)7 + }, + { // Entry 531 + 0x1.p-1066, + 0x1.0p-1074, + (int)8 + }, + { // Entry 532 + 0x1.p-1065, + 0x1.0p-1074, + (int)9 + }, + { // Entry 533 + 0x1.p-1064, + 0x1.0p-1074, + (int)10 + }, + { // Entry 534 + 0x1.p-1025, + 0x1.0p-2, + (int)-1023 + }, + { // Entry 535 + 0x1.p-1024, + 0x1.0p-2, + (int)-1022 + }, + { // Entry 536 + 0x1.p-1024, + 0x1.0p-1, + (int)-1023 + }, + { // Entry 537 + 0x1.p-1023, + 0x1.0p-1, + (int)-1022 + }, + { // Entry 538 + 0x1.80p-1024, + 0x1.8p-1, + (int)-1023 + }, + { // Entry 539 + 0x1.80p-1023, + 0x1.8p-1, + (int)-1022 + }, + { // Entry 540 + 0.0, + 0x1.0p-2, + (int)-1074 + }, + { // Entry 541 + 0.0, + 0x1.0p-2, + (int)-1073 + }, + { // Entry 542 + 0.0, + 0x1.0p-1, + (int)-1074 + }, + { // Entry 543 + 0x1.p-1074, + 0x1.0p-1, + (int)-1073 + }, + { // Entry 544 + 0.0, + 0x1.8p-1, + (int)-1074 + }, + { // Entry 545 + 0x1.80p-1074, + 0x1.8p-1, + (int)-1073 + }, + { // Entry 546 + 0x1.p1023, + 0x1.0p0, + (int)1023 + }, + { // Entry 547 + 0x1.p1022, + 0x1.0p0, + (int)1022 + }, + { // Entry 548 + 0x1.p-1074, + 0x1.0p-1074, + (int)0 + }, + { // Entry 549 + 0x1.p-1073, + 0x1.0p-1074, + (int)1 + }, + { // Entry 550 + 0x1.p-1072, + 0x1.0p-1074, + (int)2 + }, + { // Entry 551 + 0x1.p-1071, + 0x1.0p-1074, + (int)3 + }, + { // Entry 552 + 0x1.p-1070, + 0x1.0p-1074, + (int)4 + }, + { // Entry 553 + 0x1.p-1069, + 0x1.0p-1074, + (int)5 + }, + { // Entry 554 + 0x1.p-1068, + 0x1.0p-1074, + (int)6 + }, + { // Entry 555 + 0x1.p-1067, + 0x1.0p-1074, + (int)7 + }, + { // Entry 556 + 0x1.p-1066, + 0x1.0p-1074, + (int)8 + }, + { // Entry 557 + 0x1.p-1065, + 0x1.0p-1074, + (int)9 + }, + { // Entry 558 + 0x1.p-1064, + 0x1.0p-1074, + (int)10 + }, + { // Entry 559 + 0x1.p-1063, + 0x1.0p-1074, + (int)11 + }, + { // Entry 560 + 0x1.p-1062, + 0x1.0p-1074, + (int)12 + }, + { // Entry 561 + 0x1.p-1061, + 0x1.0p-1074, + (int)13 + }, + { // Entry 562 + 0x1.p-1060, + 0x1.0p-1074, + (int)14 + }, + { // Entry 563 + 0x1.p-1059, + 0x1.0p-1074, + (int)15 + }, + { // Entry 564 + 0x1.p-1058, + 0x1.0p-1074, + (int)16 + }, + { // Entry 565 + 0x1.p-1057, + 0x1.0p-1074, + (int)17 + }, + { // Entry 566 + 0x1.p-1056, + 0x1.0p-1074, + (int)18 + }, + { // Entry 567 + 0x1.p-1055, + 0x1.0p-1074, + (int)19 + }, + { // Entry 568 + 0x1.p-1054, + 0x1.0p-1074, + (int)20 + }, + { // Entry 569 + 0x1.p-1053, + 0x1.0p-1074, + (int)21 + }, + { // Entry 570 + 0x1.p-1052, + 0x1.0p-1074, + (int)22 + }, + { // Entry 571 + 0x1.p-1051, + 0x1.0p-1074, + (int)23 + }, + { // Entry 572 + 0x1.p-1050, + 0x1.0p-1074, + (int)24 + }, + { // Entry 573 + 0x1.p-1049, + 0x1.0p-1074, + (int)25 + }, + { // Entry 574 + 0x1.p-1048, + 0x1.0p-1074, + (int)26 + }, + { // Entry 575 + 0x1.p-1047, + 0x1.0p-1074, + (int)27 + }, + { // Entry 576 + 0x1.p-1046, + 0x1.0p-1074, + (int)28 + }, + { // Entry 577 + 0x1.p-1045, + 0x1.0p-1074, + (int)29 + }, + { // Entry 578 + 0x1.p-1044, + 0x1.0p-1074, + (int)30 + }, + { // Entry 579 + 0x1.p-1043, + 0x1.0p-1074, + (int)31 + }, + { // Entry 580 + 0x1.p-1042, + 0x1.0p-1074, + (int)32 + }, + { // Entry 581 + 0x1.p-1041, + 0x1.0p-1074, + (int)33 + }, + { // Entry 582 + 0x1.p-1040, + 0x1.0p-1074, + (int)34 + }, + { // Entry 583 + 0x1.p-1039, + 0x1.0p-1074, + (int)35 + }, + { // Entry 584 + 0x1.p-1038, + 0x1.0p-1074, + (int)36 + }, + { // Entry 585 + 0x1.p-1037, + 0x1.0p-1074, + (int)37 + }, + { // Entry 586 + 0x1.p-1036, + 0x1.0p-1074, + (int)38 + }, + { // Entry 587 + 0x1.p-1035, + 0x1.0p-1074, + (int)39 + }, + { // Entry 588 + 0x1.p-1034, + 0x1.0p-1074, + (int)40 + }, + { // Entry 589 + 0x1.p-1033, + 0x1.0p-1074, + (int)41 + }, + { // Entry 590 + 0x1.p-1032, + 0x1.0p-1074, + (int)42 + }, + { // Entry 591 + 0x1.p-1031, + 0x1.0p-1074, + (int)43 + }, + { // Entry 592 + 0x1.p-1030, + 0x1.0p-1074, + (int)44 + }, + { // Entry 593 + 0x1.p-1029, + 0x1.0p-1074, + (int)45 + }, + { // Entry 594 + 0x1.p-1028, + 0x1.0p-1074, + (int)46 + }, + { // Entry 595 + 0x1.p-1027, + 0x1.0p-1074, + (int)47 + }, + { // Entry 596 + 0x1.p-1026, + 0x1.0p-1074, + (int)48 + }, + { // Entry 597 + 0x1.p-1025, + 0x1.0p-1074, + (int)49 + }, + { // Entry 598 + 0x1.p-1024, + 0x1.0p-1074, + (int)50 + }, + { // Entry 599 + 0x1.p-1023, + 0x1.0p-1074, + (int)51 + }, + { // Entry 600 + 0x1.p-1022, + 0x1.0p-1074, + (int)52 + }, + { // Entry 601 + 0x1.p-1021, + 0x1.0p-1074, + (int)53 + }, + { // Entry 602 + 0x1.p-1020, + 0x1.0p-1074, + (int)54 + }, + { // Entry 603 + 0x1.p-1019, + 0x1.0p-1074, + (int)55 + }, + { // Entry 604 + 0x1.p-1018, + 0x1.0p-1074, + (int)56 + }, + { // Entry 605 + 0x1.p-1017, + 0x1.0p-1074, + (int)57 + }, + { // Entry 606 + 0x1.p-1016, + 0x1.0p-1074, + (int)58 + }, + { // Entry 607 + 0x1.p-1015, + 0x1.0p-1074, + (int)59 + }, + { // Entry 608 + 0x1.p-1014, + 0x1.0p-1074, + (int)60 + }, + { // Entry 609 + 0x1.p-1013, + 0x1.0p-1074, + (int)61 + }, + { // Entry 610 + 0x1.p-1012, + 0x1.0p-1074, + (int)62 + }, + { // Entry 611 + 0x1.p-1011, + 0x1.0p-1074, + (int)63 + }, + { // Entry 612 + 0x1.p-1010, + 0x1.0p-1074, + (int)64 + }, + { // Entry 613 + 0x1.p-1009, + 0x1.0p-1074, + (int)65 + }, + { // Entry 614 + 0x1.p-1008, + 0x1.0p-1074, + (int)66 + }, + { // Entry 615 + 0x1.p-1007, + 0x1.0p-1074, + (int)67 + }, + { // Entry 616 + 0x1.p-1006, + 0x1.0p-1074, + (int)68 + }, + { // Entry 617 + 0x1.p-1005, + 0x1.0p-1074, + (int)69 + }, + { // Entry 618 + 0x1.p-1004, + 0x1.0p-1074, + (int)70 + }, + { // Entry 619 + 0x1.p-1003, + 0x1.0p-1074, + (int)71 + }, + { // Entry 620 + 0x1.p-1002, + 0x1.0p-1074, + (int)72 + }, + { // Entry 621 + 0x1.p-1001, + 0x1.0p-1074, + (int)73 + }, + { // Entry 622 + 0x1.p-1000, + 0x1.0p-1074, + (int)74 + }, + { // Entry 623 + 0x1.p-999, + 0x1.0p-1074, + (int)75 + }, + { // Entry 624 + 0x1.p-998, + 0x1.0p-1074, + (int)76 + }, + { // Entry 625 + 0x1.p-997, + 0x1.0p-1074, + (int)77 + }, + { // Entry 626 + 0x1.p-996, + 0x1.0p-1074, + (int)78 + }, + { // Entry 627 + 0x1.p-995, + 0x1.0p-1074, + (int)79 + }, + { // Entry 628 + 0x1.p-994, + 0x1.0p-1074, + (int)80 + }, + { // Entry 629 + 0x1.p-993, + 0x1.0p-1074, + (int)81 + }, + { // Entry 630 + 0x1.p-992, + 0x1.0p-1074, + (int)82 + }, + { // Entry 631 + 0x1.p-991, + 0x1.0p-1074, + (int)83 + }, + { // Entry 632 + 0x1.p-990, + 0x1.0p-1074, + (int)84 + }, + { // Entry 633 + 0x1.p-989, + 0x1.0p-1074, + (int)85 + }, + { // Entry 634 + 0x1.p-988, + 0x1.0p-1074, + (int)86 + }, + { // Entry 635 + 0x1.p-987, + 0x1.0p-1074, + (int)87 + }, + { // Entry 636 + 0x1.p-986, + 0x1.0p-1074, + (int)88 + }, + { // Entry 637 + 0x1.p-985, + 0x1.0p-1074, + (int)89 + }, + { // Entry 638 + 0x1.p-984, + 0x1.0p-1074, + (int)90 + }, + { // Entry 639 + 0x1.p-983, + 0x1.0p-1074, + (int)91 + }, + { // Entry 640 + 0x1.p-982, + 0x1.0p-1074, + (int)92 + }, + { // Entry 641 + 0x1.p-981, + 0x1.0p-1074, + (int)93 + }, + { // Entry 642 + 0x1.p-980, + 0x1.0p-1074, + (int)94 + }, + { // Entry 643 + 0x1.p-979, + 0x1.0p-1074, + (int)95 + }, + { // Entry 644 + 0x1.p-978, + 0x1.0p-1074, + (int)96 + }, + { // Entry 645 + 0x1.p-977, + 0x1.0p-1074, + (int)97 + }, + { // Entry 646 + 0x1.p-976, + 0x1.0p-1074, + (int)98 + }, + { // Entry 647 + 0x1.p-975, + 0x1.0p-1074, + (int)99 + }, + { // Entry 648 + 0x1.p-974, + 0x1.0p-1074, + (int)100 + }, + { // Entry 649 + 0x1.p-973, + 0x1.0p-1074, + (int)101 + }, + { // Entry 650 + 0x1.p-972, + 0x1.0p-1074, + (int)102 + }, + { // Entry 651 + 0x1.p-971, + 0x1.0p-1074, + (int)103 + }, + { // Entry 652 + 0x1.p-970, + 0x1.0p-1074, + (int)104 + }, + { // Entry 653 + 0x1.p-969, + 0x1.0p-1074, + (int)105 + }, + { // Entry 654 + 0x1.p-968, + 0x1.0p-1074, + (int)106 + }, + { // Entry 655 + 0x1.p-967, + 0x1.0p-1074, + (int)107 + }, + { // Entry 656 + 0x1.p-966, + 0x1.0p-1074, + (int)108 + }, + { // Entry 657 + 0x1.p-965, + 0x1.0p-1074, + (int)109 + }, + { // Entry 658 + 0x1.p-964, + 0x1.0p-1074, + (int)110 + }, + { // Entry 659 + 0x1.p-963, + 0x1.0p-1074, + (int)111 + }, + { // Entry 660 + 0x1.p-962, + 0x1.0p-1074, + (int)112 + }, + { // Entry 661 + 0x1.p-961, + 0x1.0p-1074, + (int)113 + }, + { // Entry 662 + 0x1.p-960, + 0x1.0p-1074, + (int)114 + }, + { // Entry 663 + 0x1.p-959, + 0x1.0p-1074, + (int)115 + }, + { // Entry 664 + 0x1.p-958, + 0x1.0p-1074, + (int)116 + }, + { // Entry 665 + 0x1.p-957, + 0x1.0p-1074, + (int)117 + }, + { // Entry 666 + 0x1.p-956, + 0x1.0p-1074, + (int)118 + }, + { // Entry 667 + 0x1.p-955, + 0x1.0p-1074, + (int)119 + }, + { // Entry 668 + 0x1.p-954, + 0x1.0p-1074, + (int)120 + }, + { // Entry 669 + 0x1.p-953, + 0x1.0p-1074, + (int)121 + }, + { // Entry 670 + 0x1.p-952, + 0x1.0p-1074, + (int)122 + }, + { // Entry 671 + 0x1.p-951, + 0x1.0p-1074, + (int)123 + }, + { // Entry 672 + 0x1.p-950, + 0x1.0p-1074, + (int)124 + }, + { // Entry 673 + 0x1.p-949, + 0x1.0p-1074, + (int)125 + }, + { // Entry 674 + 0x1.p-948, + 0x1.0p-1074, + (int)126 + }, + { // Entry 675 + 0x1.p-947, + 0x1.0p-1074, + (int)127 + }, + { // Entry 676 + 0x1.p-946, + 0x1.0p-1074, + (int)128 + }, + { // Entry 677 + 0x1.p-945, + 0x1.0p-1074, + (int)129 + }, + { // Entry 678 + 0x1.p-944, + 0x1.0p-1074, + (int)130 + }, + { // Entry 679 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + (int)0 + }, + { // Entry 680 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + (int)1 + }, + { // Entry 681 + 0x1.ffffffffffffe0p-1021, + 0x1.ffffffffffffep-1023, + (int)2 + }, + { // Entry 682 + 0x1.ffffffffffffe0p-1020, + 0x1.ffffffffffffep-1023, + (int)3 + }, + { // Entry 683 + 0x1.ffffffffffffe0p-1019, + 0x1.ffffffffffffep-1023, + (int)4 + }, + { // Entry 684 + 0x1.ffffffffffffe0p-1018, + 0x1.ffffffffffffep-1023, + (int)5 + }, + { // Entry 685 + 0x1.ffffffffffffe0p-1017, + 0x1.ffffffffffffep-1023, + (int)6 + }, + { // Entry 686 + 0x1.ffffffffffffe0p-1016, + 0x1.ffffffffffffep-1023, + (int)7 + }, + { // Entry 687 + 0x1.ffffffffffffe0p-1015, + 0x1.ffffffffffffep-1023, + (int)8 + }, + { // Entry 688 + 0x1.ffffffffffffe0p-1014, + 0x1.ffffffffffffep-1023, + (int)9 + }, + { // Entry 689 + 0x1.ffffffffffffe0p-1013, + 0x1.ffffffffffffep-1023, + (int)10 + }, + { // Entry 690 + 0x1.ffffffffffffe0p-1012, + 0x1.ffffffffffffep-1023, + (int)11 + }, + { // Entry 691 + 0x1.ffffffffffffe0p-1011, + 0x1.ffffffffffffep-1023, + (int)12 + }, + { // Entry 692 + 0x1.ffffffffffffe0p-1010, + 0x1.ffffffffffffep-1023, + (int)13 + }, + { // Entry 693 + 0x1.ffffffffffffe0p-1009, + 0x1.ffffffffffffep-1023, + (int)14 + }, + { // Entry 694 + 0x1.ffffffffffffe0p-1008, + 0x1.ffffffffffffep-1023, + (int)15 + }, + { // Entry 695 + 0x1.ffffffffffffe0p-1007, + 0x1.ffffffffffffep-1023, + (int)16 + }, + { // Entry 696 + 0x1.ffffffffffffe0p-1006, + 0x1.ffffffffffffep-1023, + (int)17 + }, + { // Entry 697 + 0x1.ffffffffffffe0p-1005, + 0x1.ffffffffffffep-1023, + (int)18 + }, + { // Entry 698 + 0x1.ffffffffffffe0p-1004, + 0x1.ffffffffffffep-1023, + (int)19 + }, + { // Entry 699 + 0x1.ffffffffffffe0p-1003, + 0x1.ffffffffffffep-1023, + (int)20 + }, + { // Entry 700 + 0x1.ffffffffffffe0p-1002, + 0x1.ffffffffffffep-1023, + (int)21 + }, + { // Entry 701 + 0x1.ffffffffffffe0p-1001, + 0x1.ffffffffffffep-1023, + (int)22 + }, + { // Entry 702 + 0x1.ffffffffffffe0p-1000, + 0x1.ffffffffffffep-1023, + (int)23 + }, + { // Entry 703 + 0x1.ffffffffffffe0p-999, + 0x1.ffffffffffffep-1023, + (int)24 + }, + { // Entry 704 + 0x1.ffffffffffffe0p-998, + 0x1.ffffffffffffep-1023, + (int)25 + }, + { // Entry 705 + 0x1.ffffffffffffe0p-997, + 0x1.ffffffffffffep-1023, + (int)26 + }, + { // Entry 706 + 0x1.ffffffffffffe0p-996, + 0x1.ffffffffffffep-1023, + (int)27 + }, + { // Entry 707 + 0x1.ffffffffffffe0p-995, + 0x1.ffffffffffffep-1023, + (int)28 + }, + { // Entry 708 + 0x1.ffffffffffffe0p-994, + 0x1.ffffffffffffep-1023, + (int)29 + }, + { // Entry 709 + 0x1.ffffffffffffe0p-993, + 0x1.ffffffffffffep-1023, + (int)30 + }, + { // Entry 710 + 0x1.ffffffffffffe0p-992, + 0x1.ffffffffffffep-1023, + (int)31 + }, + { // Entry 711 + 0x1.ffffffffffffe0p-991, + 0x1.ffffffffffffep-1023, + (int)32 + }, + { // Entry 712 + 0x1.ffffffffffffe0p-990, + 0x1.ffffffffffffep-1023, + (int)33 + }, + { // Entry 713 + 0x1.ffffffffffffe0p-989, + 0x1.ffffffffffffep-1023, + (int)34 + }, + { // Entry 714 + 0x1.ffffffffffffe0p-988, + 0x1.ffffffffffffep-1023, + (int)35 + }, + { // Entry 715 + 0x1.ffffffffffffe0p-987, + 0x1.ffffffffffffep-1023, + (int)36 + }, + { // Entry 716 + 0x1.ffffffffffffe0p-986, + 0x1.ffffffffffffep-1023, + (int)37 + }, + { // Entry 717 + 0x1.ffffffffffffe0p-985, + 0x1.ffffffffffffep-1023, + (int)38 + }, + { // Entry 718 + 0x1.ffffffffffffe0p-984, + 0x1.ffffffffffffep-1023, + (int)39 + }, + { // Entry 719 + 0x1.ffffffffffffe0p-983, + 0x1.ffffffffffffep-1023, + (int)40 + }, + { // Entry 720 + 0x1.ffffffffffffe0p-982, + 0x1.ffffffffffffep-1023, + (int)41 + }, + { // Entry 721 + 0x1.ffffffffffffe0p-981, + 0x1.ffffffffffffep-1023, + (int)42 + }, + { // Entry 722 + 0x1.ffffffffffffe0p-980, + 0x1.ffffffffffffep-1023, + (int)43 + }, + { // Entry 723 + 0x1.ffffffffffffe0p-979, + 0x1.ffffffffffffep-1023, + (int)44 + }, + { // Entry 724 + 0x1.ffffffffffffe0p-978, + 0x1.ffffffffffffep-1023, + (int)45 + }, + { // Entry 725 + 0x1.ffffffffffffe0p-977, + 0x1.ffffffffffffep-1023, + (int)46 + }, + { // Entry 726 + 0x1.ffffffffffffe0p-976, + 0x1.ffffffffffffep-1023, + (int)47 + }, + { // Entry 727 + 0x1.ffffffffffffe0p-975, + 0x1.ffffffffffffep-1023, + (int)48 + }, + { // Entry 728 + 0x1.ffffffffffffe0p-974, + 0x1.ffffffffffffep-1023, + (int)49 + }, + { // Entry 729 + 0x1.ffffffffffffe0p-973, + 0x1.ffffffffffffep-1023, + (int)50 + }, + { // Entry 730 + 0x1.ffffffffffffe0p-972, + 0x1.ffffffffffffep-1023, + (int)51 + }, + { // Entry 731 + 0x1.ffffffffffffe0p-971, + 0x1.ffffffffffffep-1023, + (int)52 + }, + { // Entry 732 + 0x1.ffffffffffffe0p-970, + 0x1.ffffffffffffep-1023, + (int)53 + }, + { // Entry 733 + 0x1.ffffffffffffe0p-969, + 0x1.ffffffffffffep-1023, + (int)54 + }, + { // Entry 734 + 0x1.ffffffffffffe0p-968, + 0x1.ffffffffffffep-1023, + (int)55 + }, + { // Entry 735 + 0x1.ffffffffffffe0p-967, + 0x1.ffffffffffffep-1023, + (int)56 + }, + { // Entry 736 + 0x1.ffffffffffffe0p-966, + 0x1.ffffffffffffep-1023, + (int)57 + }, + { // Entry 737 + 0x1.ffffffffffffe0p-965, + 0x1.ffffffffffffep-1023, + (int)58 + }, + { // Entry 738 + 0x1.ffffffffffffe0p-964, + 0x1.ffffffffffffep-1023, + (int)59 + }, + { // Entry 739 + 0x1.ffffffffffffe0p-963, + 0x1.ffffffffffffep-1023, + (int)60 + }, + { // Entry 740 + 0x1.ffffffffffffe0p-962, + 0x1.ffffffffffffep-1023, + (int)61 + }, + { // Entry 741 + 0x1.ffffffffffffe0p-961, + 0x1.ffffffffffffep-1023, + (int)62 + }, + { // Entry 742 + 0x1.ffffffffffffe0p-960, + 0x1.ffffffffffffep-1023, + (int)63 + }, + { // Entry 743 + 0x1.ffffffffffffe0p-959, + 0x1.ffffffffffffep-1023, + (int)64 + }, + { // Entry 744 + 0x1.ffffffffffffe0p-958, + 0x1.ffffffffffffep-1023, + (int)65 + }, + { // Entry 745 + 0x1.ffffffffffffe0p-957, + 0x1.ffffffffffffep-1023, + (int)66 + }, + { // Entry 746 + 0x1.ffffffffffffe0p-956, + 0x1.ffffffffffffep-1023, + (int)67 + }, + { // Entry 747 + 0x1.ffffffffffffe0p-955, + 0x1.ffffffffffffep-1023, + (int)68 + }, + { // Entry 748 + 0x1.ffffffffffffe0p-954, + 0x1.ffffffffffffep-1023, + (int)69 + }, + { // Entry 749 + 0x1.ffffffffffffe0p-953, + 0x1.ffffffffffffep-1023, + (int)70 + }, + { // Entry 750 + 0x1.ffffffffffffe0p-952, + 0x1.ffffffffffffep-1023, + (int)71 + }, + { // Entry 751 + 0x1.ffffffffffffe0p-951, + 0x1.ffffffffffffep-1023, + (int)72 + }, + { // Entry 752 + 0x1.ffffffffffffe0p-950, + 0x1.ffffffffffffep-1023, + (int)73 + }, + { // Entry 753 + 0x1.ffffffffffffe0p-949, + 0x1.ffffffffffffep-1023, + (int)74 + }, + { // Entry 754 + 0x1.ffffffffffffe0p-948, + 0x1.ffffffffffffep-1023, + (int)75 + }, + { // Entry 755 + 0x1.ffffffffffffe0p-947, + 0x1.ffffffffffffep-1023, + (int)76 + }, + { // Entry 756 + 0x1.ffffffffffffe0p-946, + 0x1.ffffffffffffep-1023, + (int)77 + }, + { // Entry 757 + 0x1.ffffffffffffe0p-945, + 0x1.ffffffffffffep-1023, + (int)78 + }, + { // Entry 758 + 0x1.ffffffffffffe0p-944, + 0x1.ffffffffffffep-1023, + (int)79 + }, + { // Entry 759 + 0x1.ffffffffffffe0p-943, + 0x1.ffffffffffffep-1023, + (int)80 + }, + { // Entry 760 + 0x1.ffffffffffffe0p-942, + 0x1.ffffffffffffep-1023, + (int)81 + }, + { // Entry 761 + 0x1.ffffffffffffe0p-941, + 0x1.ffffffffffffep-1023, + (int)82 + }, + { // Entry 762 + 0x1.ffffffffffffe0p-940, + 0x1.ffffffffffffep-1023, + (int)83 + }, + { // Entry 763 + 0x1.ffffffffffffe0p-939, + 0x1.ffffffffffffep-1023, + (int)84 + }, + { // Entry 764 + 0x1.ffffffffffffe0p-938, + 0x1.ffffffffffffep-1023, + (int)85 + }, + { // Entry 765 + 0x1.ffffffffffffe0p-937, + 0x1.ffffffffffffep-1023, + (int)86 + }, + { // Entry 766 + 0x1.ffffffffffffe0p-936, + 0x1.ffffffffffffep-1023, + (int)87 + }, + { // Entry 767 + 0x1.ffffffffffffe0p-935, + 0x1.ffffffffffffep-1023, + (int)88 + }, + { // Entry 768 + 0x1.ffffffffffffe0p-934, + 0x1.ffffffffffffep-1023, + (int)89 + }, + { // Entry 769 + 0x1.ffffffffffffe0p-933, + 0x1.ffffffffffffep-1023, + (int)90 + }, + { // Entry 770 + 0x1.ffffffffffffe0p-932, + 0x1.ffffffffffffep-1023, + (int)91 + }, + { // Entry 771 + 0x1.ffffffffffffe0p-931, + 0x1.ffffffffffffep-1023, + (int)92 + }, + { // Entry 772 + 0x1.ffffffffffffe0p-930, + 0x1.ffffffffffffep-1023, + (int)93 + }, + { // Entry 773 + 0x1.ffffffffffffe0p-929, + 0x1.ffffffffffffep-1023, + (int)94 + }, + { // Entry 774 + 0x1.ffffffffffffe0p-928, + 0x1.ffffffffffffep-1023, + (int)95 + }, + { // Entry 775 + 0x1.ffffffffffffe0p-927, + 0x1.ffffffffffffep-1023, + (int)96 + }, + { // Entry 776 + 0x1.ffffffffffffe0p-926, + 0x1.ffffffffffffep-1023, + (int)97 + }, + { // Entry 777 + 0x1.ffffffffffffe0p-925, + 0x1.ffffffffffffep-1023, + (int)98 + }, + { // Entry 778 + 0x1.ffffffffffffe0p-924, + 0x1.ffffffffffffep-1023, + (int)99 + }, + { // Entry 779 + 0x1.ffffffffffffe0p-923, + 0x1.ffffffffffffep-1023, + (int)100 + }, + { // Entry 780 + 0x1.ffffffffffffe0p-922, + 0x1.ffffffffffffep-1023, + (int)101 + }, + { // Entry 781 + 0x1.ffffffffffffe0p-921, + 0x1.ffffffffffffep-1023, + (int)102 + }, + { // Entry 782 + 0x1.ffffffffffffe0p-920, + 0x1.ffffffffffffep-1023, + (int)103 + }, + { // Entry 783 + 0x1.ffffffffffffe0p-919, + 0x1.ffffffffffffep-1023, + (int)104 + }, + { // Entry 784 + 0x1.ffffffffffffe0p-918, + 0x1.ffffffffffffep-1023, + (int)105 + }, + { // Entry 785 + 0x1.ffffffffffffe0p-917, + 0x1.ffffffffffffep-1023, + (int)106 + }, + { // Entry 786 + 0x1.ffffffffffffe0p-916, + 0x1.ffffffffffffep-1023, + (int)107 + }, + { // Entry 787 + 0x1.ffffffffffffe0p-915, + 0x1.ffffffffffffep-1023, + (int)108 + }, + { // Entry 788 + 0x1.ffffffffffffe0p-914, + 0x1.ffffffffffffep-1023, + (int)109 + }, + { // Entry 789 + 0x1.ffffffffffffe0p-913, + 0x1.ffffffffffffep-1023, + (int)110 + }, + { // Entry 790 + 0x1.ffffffffffffe0p-912, + 0x1.ffffffffffffep-1023, + (int)111 + }, + { // Entry 791 + 0x1.ffffffffffffe0p-911, + 0x1.ffffffffffffep-1023, + (int)112 + }, + { // Entry 792 + 0x1.ffffffffffffe0p-910, + 0x1.ffffffffffffep-1023, + (int)113 + }, + { // Entry 793 + 0x1.ffffffffffffe0p-909, + 0x1.ffffffffffffep-1023, + (int)114 + }, + { // Entry 794 + 0x1.ffffffffffffe0p-908, + 0x1.ffffffffffffep-1023, + (int)115 + }, + { // Entry 795 + 0x1.ffffffffffffe0p-907, + 0x1.ffffffffffffep-1023, + (int)116 + }, + { // Entry 796 + 0x1.ffffffffffffe0p-906, + 0x1.ffffffffffffep-1023, + (int)117 + }, + { // Entry 797 + 0x1.ffffffffffffe0p-905, + 0x1.ffffffffffffep-1023, + (int)118 + }, + { // Entry 798 + 0x1.ffffffffffffe0p-904, + 0x1.ffffffffffffep-1023, + (int)119 + }, + { // Entry 799 + 0x1.ffffffffffffe0p-903, + 0x1.ffffffffffffep-1023, + (int)120 + }, + { // Entry 800 + 0x1.ffffffffffffe0p-902, + 0x1.ffffffffffffep-1023, + (int)121 + }, + { // Entry 801 + 0x1.ffffffffffffe0p-901, + 0x1.ffffffffffffep-1023, + (int)122 + }, + { // Entry 802 + 0x1.ffffffffffffe0p-900, + 0x1.ffffffffffffep-1023, + (int)123 + }, + { // Entry 803 + 0x1.ffffffffffffe0p-899, + 0x1.ffffffffffffep-1023, + (int)124 + }, + { // Entry 804 + 0x1.ffffffffffffe0p-898, + 0x1.ffffffffffffep-1023, + (int)125 + }, + { // Entry 805 + 0x1.ffffffffffffe0p-897, + 0x1.ffffffffffffep-1023, + (int)126 + }, + { // Entry 806 + 0x1.ffffffffffffe0p-896, + 0x1.ffffffffffffep-1023, + (int)127 + }, + { // Entry 807 + 0x1.ffffffffffffe0p-895, + 0x1.ffffffffffffep-1023, + (int)128 + }, + { // Entry 808 + 0x1.ffffffffffffe0p-894, + 0x1.ffffffffffffep-1023, + (int)129 + }, + { // Entry 809 + 0x1.ffffffffffffe0p-893, + 0x1.ffffffffffffep-1023, + (int)130 + }, + { // Entry 810 + 0x1.p0, + 0x1.0p-1074, + (int)1074 + }, + { // Entry 811 + 0x1.p-1, + 0x1.0p-1074, + (int)1073 + }, + { // Entry 812 + 0x1.ffffffffffffe0p51, + 0x1.ffffffffffffep-1023, + (int)1074 + }, + { // Entry 813 + 0x1.ffffffffffffe0p50, + 0x1.ffffffffffffep-1023, + (int)1073 + }, + { // Entry 814 + 0x1.p-1022, + 0x1.0p-1074, + (int)52 + }, + { // Entry 815 + 0x1.p-1023, + 0x1.0p-1074, + (int)51 + }, + { // Entry 816 + 0x1.ffffffffffffe0p-971, + 0x1.ffffffffffffep-1023, + (int)52 + }, + { // Entry 817 + 0x1.ffffffffffffe0p-972, + 0x1.ffffffffffffep-1023, + (int)51 + }, + { // Entry 818 + 0x1.p-1074, + 0x1.0p-1074, + (int)0 + }, + { // Entry 819 + 0x1.p-1073, + 0x1.0p-1074, + (int)1 + }, + { // Entry 820 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + (int)0 + }, + { // Entry 821 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + (int)1 + }, + { // Entry 822 + 0.0, + 0.0, + (int)0 + }, + { // Entry 823 + -0.0, + -0.0, + (int)0 + }, + { // Entry 824 + 0.0, + 0.0, + (int)1 + }, + { // Entry 825 + -0.0, + -0.0, + (int)1 + }, + { // Entry 826 + 0.0, + 0.0, + (int)-1 + }, + { // Entry 827 + -0.0, + -0.0, + (int)-1 + }, + { // Entry 828 + 0.0, + 0.0, + (int)127 + }, + { // Entry 829 + -0.0, + -0.0, + (int)127 + }, + { // Entry 830 + 0.0, + 0.0, + (int)-127 + }, + { // Entry 831 + -0.0, + -0.0, + (int)-127 + }, + { // Entry 832 + HUGE_VAL, + HUGE_VAL, + (int)0 + }, + { // Entry 833 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + (int)0 + }, + { // Entry 834 + 0x1.p-1022, + 0x1.0p-1022, + (int)0 + }, + { // Entry 835 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + (int)0 + }, + { // Entry 836 + 0x1.p-1074, + 0x1.0p-1074, + (int)0 + }, + { // Entry 837 + -0x1.p-1074, + -0x1.0p-1074, + (int)0 + }, + { // Entry 838 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + (int)0 + }, + { // Entry 839 + -0x1.p-1022, + -0x1.0p-1022, + (int)0 + }, + { // Entry 840 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + (int)0 + }, + { // Entry 841 + -HUGE_VAL, + -HUGE_VAL, + (int)0 + }, + { // Entry 842 + HUGE_VAL, + HUGE_VAL, + (int)1 + }, + { // Entry 843 + -HUGE_VAL, + -HUGE_VAL, + (int)1 + }, + { // Entry 844 + HUGE_VAL, + HUGE_VAL, + (int)-1 + }, + { // Entry 845 + -HUGE_VAL, + -HUGE_VAL, + (int)-1 + }, + { // Entry 846 + HUGE_VAL, + HUGE_VAL, + (int)127 + }, + { // Entry 847 + -HUGE_VAL, + -HUGE_VAL, + (int)127 + }, + { // Entry 848 + HUGE_VAL, + HUGE_VAL, + (int)-127 + }, + { // Entry 849 + -HUGE_VAL, + -HUGE_VAL, + (int)-127 + }, + { // Entry 850 + HUGE_VAL, + 0x1.fffffffffffffp1023, + (int)1 + }, + { // Entry 851 + HUGE_VAL, + 0x1.fffffffffffffp1023, + (int)127 + }, + { // Entry 852 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + (int)1 + }, + { // Entry 853 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + (int)127 + }, + { // Entry 854 + HUGE_VAL, + 0x1.0p-1022, + (int)40000 + }, + { // Entry 855 + HUGE_VAL, + 0x1.0p-1074, + (int)40000 + }, + { // Entry 856 + -HUGE_VAL, + -0x1.0p-1022, + (int)40000 + }, + { // Entry 857 + -HUGE_VAL, + -0x1.0p-1074, + (int)40000 + }, + { // Entry 858 + 0x1.p-1023, + 0x1.0p-1022, + (int)-1 + }, + { // Entry 859 + 0x1.ffffffffffffe0p-1024, + 0x1.ffffffffffffep-1023, + (int)-1 + }, + { // Entry 860 + 0.0, + 0x1.0p-1074, + (int)-1 + }, + { // Entry 861 + -0.0, + -0x1.0p-1074, + (int)-1 + }, + { // Entry 862 + -0x1.ffffffffffffe0p-1024, + -0x1.ffffffffffffep-1023, + (int)-1 + }, + { // Entry 863 + -0x1.p-1023, + -0x1.0p-1022, + (int)-1 + }, + { // Entry 864 + 0.0, + 0x1.fffffffffffffp1023, + (int)-40000 + }, + { // Entry 865 + -0.0, + -0x1.fffffffffffffp1023, + (int)-40000 + } +}; diff --git a/tests/math_data/ldexpf_intel_data.h b/tests/math_data/ldexpf_intel_data.h new file mode 100644 index 000000000..b74ed93da --- /dev/null +++ b/tests/math_data/ldexpf_intel_data.h @@ -0,0 +1,4288 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_ldexpf_intel_data[] = { + { // Entry 0 + -0.0f, + -0x1.p-149, + (int)-10 + }, + { // Entry 1 + -0x1.555554p-128, + -0x1.555554p-2, + (int)-126 + }, + { // Entry 2 + -0x1.6db6dcp-128, + -0x1.6db6dcp-1, + (int)-127 + }, + { // Entry 3 + -0x1.8e38e4p-128, + -0x1.8e38e4p-1, + (int)-127 + }, + { // Entry 4 + 0.0f, + 0x1.p-149, + (int)-1 + }, + { // Entry 5 + 0.0f, + 0x1.p-149, + (int)-10 + }, + { // Entry 6 + 0x1.29e412p-127, + 0x1.29e412p-7, + (int)-120 + }, + { // Entry 7 + 0.0f, + 0x1.dddddep-2, + (int)-148 + }, + { // Entry 8 + 0.0f, + 0x1.ffff60p-127, + (int)-23 + }, + { // Entry 9 + 0.0f, + 0x1.ffff84p-127, + (int)-23 + }, + { // Entry 10 + 0x1.fffff8p-137, + 0x1.fffff8p-127, + (int)-10 + }, + { // Entry 11 + 0.0f, + 0x1.fffffep127, + (int)(-2147483647-1) + }, + { // Entry 12 + HUGE_VALF, + 0x1.fffffep127, + (int)2147483647 + }, + { // Entry 13 + -0x1.p-10, + -0x1.p0, + (int)-10 + }, + { // Entry 14 + -0x1.p-9, + -0x1.p0, + (int)-9 + }, + { // Entry 15 + -0x1.p-8, + -0x1.p0, + (int)-8 + }, + { // Entry 16 + -0x1.p-7, + -0x1.p0, + (int)-7 + }, + { // Entry 17 + -0x1.p-6, + -0x1.p0, + (int)-6 + }, + { // Entry 18 + -0x1.p-5, + -0x1.p0, + (int)-5 + }, + { // Entry 19 + -0x1.p-4, + -0x1.p0, + (int)-4 + }, + { // Entry 20 + -0x1.p-3, + -0x1.p0, + (int)-3 + }, + { // Entry 21 + -0x1.p-2, + -0x1.p0, + (int)-2 + }, + { // Entry 22 + -0x1.p-1, + -0x1.p0, + (int)-1 + }, + { // Entry 23 + -0x1.p0, + -0x1.p0, + (int)0 + }, + { // Entry 24 + -0x1.p1, + -0x1.p0, + (int)1 + }, + { // Entry 25 + -0x1.p2, + -0x1.p0, + (int)2 + }, + { // Entry 26 + -0x1.p3, + -0x1.p0, + (int)3 + }, + { // Entry 27 + -0x1.p4, + -0x1.p0, + (int)4 + }, + { // Entry 28 + -0x1.p5, + -0x1.p0, + (int)5 + }, + { // Entry 29 + -0x1.p6, + -0x1.p0, + (int)6 + }, + { // Entry 30 + -0x1.p7, + -0x1.p0, + (int)7 + }, + { // Entry 31 + -0x1.p8, + -0x1.p0, + (int)8 + }, + { // Entry 32 + -0x1.p9, + -0x1.p0, + (int)9 + }, + { // Entry 33 + -0x1.p10, + -0x1.p0, + (int)10 + }, + { // Entry 34 + -0x1.d1745cp-11, + -0x1.d1745cp-1, + (int)-10 + }, + { // Entry 35 + -0x1.d1745cp-10, + -0x1.d1745cp-1, + (int)-9 + }, + { // Entry 36 + -0x1.d1745cp-9, + -0x1.d1745cp-1, + (int)-8 + }, + { // Entry 37 + -0x1.d1745cp-8, + -0x1.d1745cp-1, + (int)-7 + }, + { // Entry 38 + -0x1.d1745cp-7, + -0x1.d1745cp-1, + (int)-6 + }, + { // Entry 39 + -0x1.d1745cp-6, + -0x1.d1745cp-1, + (int)-5 + }, + { // Entry 40 + -0x1.d1745cp-5, + -0x1.d1745cp-1, + (int)-4 + }, + { // Entry 41 + -0x1.d1745cp-4, + -0x1.d1745cp-1, + (int)-3 + }, + { // Entry 42 + -0x1.d1745cp-3, + -0x1.d1745cp-1, + (int)-2 + }, + { // Entry 43 + -0x1.d1745cp-2, + -0x1.d1745cp-1, + (int)-1 + }, + { // Entry 44 + -0x1.d1745cp-1, + -0x1.d1745cp-1, + (int)0 + }, + { // Entry 45 + -0x1.d1745cp0, + -0x1.d1745cp-1, + (int)1 + }, + { // Entry 46 + -0x1.d1745cp1, + -0x1.d1745cp-1, + (int)2 + }, + { // Entry 47 + -0x1.d1745cp2, + -0x1.d1745cp-1, + (int)3 + }, + { // Entry 48 + -0x1.d1745cp3, + -0x1.d1745cp-1, + (int)4 + }, + { // Entry 49 + -0x1.d1745cp4, + -0x1.d1745cp-1, + (int)5 + }, + { // Entry 50 + -0x1.d1745cp5, + -0x1.d1745cp-1, + (int)6 + }, + { // Entry 51 + -0x1.d1745cp6, + -0x1.d1745cp-1, + (int)7 + }, + { // Entry 52 + -0x1.d1745cp7, + -0x1.d1745cp-1, + (int)8 + }, + { // Entry 53 + -0x1.d1745cp8, + -0x1.d1745cp-1, + (int)9 + }, + { // Entry 54 + -0x1.d1745cp9, + -0x1.d1745cp-1, + (int)10 + }, + { // Entry 55 + -0x1.a2e8b8p-11, + -0x1.a2e8b8p-1, + (int)-10 + }, + { // Entry 56 + -0x1.a2e8b8p-10, + -0x1.a2e8b8p-1, + (int)-9 + }, + { // Entry 57 + -0x1.a2e8b8p-9, + -0x1.a2e8b8p-1, + (int)-8 + }, + { // Entry 58 + -0x1.a2e8b8p-8, + -0x1.a2e8b8p-1, + (int)-7 + }, + { // Entry 59 + -0x1.a2e8b8p-7, + -0x1.a2e8b8p-1, + (int)-6 + }, + { // Entry 60 + -0x1.a2e8b8p-6, + -0x1.a2e8b8p-1, + (int)-5 + }, + { // Entry 61 + -0x1.a2e8b8p-5, + -0x1.a2e8b8p-1, + (int)-4 + }, + { // Entry 62 + -0x1.a2e8b8p-4, + -0x1.a2e8b8p-1, + (int)-3 + }, + { // Entry 63 + -0x1.a2e8b8p-3, + -0x1.a2e8b8p-1, + (int)-2 + }, + { // Entry 64 + -0x1.a2e8b8p-2, + -0x1.a2e8b8p-1, + (int)-1 + }, + { // Entry 65 + -0x1.a2e8b8p-1, + -0x1.a2e8b8p-1, + (int)0 + }, + { // Entry 66 + -0x1.a2e8b8p0, + -0x1.a2e8b8p-1, + (int)1 + }, + { // Entry 67 + -0x1.a2e8b8p1, + -0x1.a2e8b8p-1, + (int)2 + }, + { // Entry 68 + -0x1.a2e8b8p2, + -0x1.a2e8b8p-1, + (int)3 + }, + { // Entry 69 + -0x1.a2e8b8p3, + -0x1.a2e8b8p-1, + (int)4 + }, + { // Entry 70 + -0x1.a2e8b8p4, + -0x1.a2e8b8p-1, + (int)5 + }, + { // Entry 71 + -0x1.a2e8b8p5, + -0x1.a2e8b8p-1, + (int)6 + }, + { // Entry 72 + -0x1.a2e8b8p6, + -0x1.a2e8b8p-1, + (int)7 + }, + { // Entry 73 + -0x1.a2e8b8p7, + -0x1.a2e8b8p-1, + (int)8 + }, + { // Entry 74 + -0x1.a2e8b8p8, + -0x1.a2e8b8p-1, + (int)9 + }, + { // Entry 75 + -0x1.a2e8b8p9, + -0x1.a2e8b8p-1, + (int)10 + }, + { // Entry 76 + -0x1.745d14p-11, + -0x1.745d14p-1, + (int)-10 + }, + { // Entry 77 + -0x1.745d14p-10, + -0x1.745d14p-1, + (int)-9 + }, + { // Entry 78 + -0x1.745d14p-9, + -0x1.745d14p-1, + (int)-8 + }, + { // Entry 79 + -0x1.745d14p-8, + -0x1.745d14p-1, + (int)-7 + }, + { // Entry 80 + -0x1.745d14p-7, + -0x1.745d14p-1, + (int)-6 + }, + { // Entry 81 + -0x1.745d14p-6, + -0x1.745d14p-1, + (int)-5 + }, + { // Entry 82 + -0x1.745d14p-5, + -0x1.745d14p-1, + (int)-4 + }, + { // Entry 83 + -0x1.745d14p-4, + -0x1.745d14p-1, + (int)-3 + }, + { // Entry 84 + -0x1.745d14p-3, + -0x1.745d14p-1, + (int)-2 + }, + { // Entry 85 + -0x1.745d14p-2, + -0x1.745d14p-1, + (int)-1 + }, + { // Entry 86 + -0x1.745d14p-1, + -0x1.745d14p-1, + (int)0 + }, + { // Entry 87 + -0x1.745d14p0, + -0x1.745d14p-1, + (int)1 + }, + { // Entry 88 + -0x1.745d14p1, + -0x1.745d14p-1, + (int)2 + }, + { // Entry 89 + -0x1.745d14p2, + -0x1.745d14p-1, + (int)3 + }, + { // Entry 90 + -0x1.745d14p3, + -0x1.745d14p-1, + (int)4 + }, + { // Entry 91 + -0x1.745d14p4, + -0x1.745d14p-1, + (int)5 + }, + { // Entry 92 + -0x1.745d14p5, + -0x1.745d14p-1, + (int)6 + }, + { // Entry 93 + -0x1.745d14p6, + -0x1.745d14p-1, + (int)7 + }, + { // Entry 94 + -0x1.745d14p7, + -0x1.745d14p-1, + (int)8 + }, + { // Entry 95 + -0x1.745d14p8, + -0x1.745d14p-1, + (int)9 + }, + { // Entry 96 + -0x1.745d14p9, + -0x1.745d14p-1, + (int)10 + }, + { // Entry 97 + -0x1.45d170p-11, + -0x1.45d170p-1, + (int)-10 + }, + { // Entry 98 + -0x1.45d170p-10, + -0x1.45d170p-1, + (int)-9 + }, + { // Entry 99 + -0x1.45d170p-9, + -0x1.45d170p-1, + (int)-8 + }, + { // Entry 100 + -0x1.45d170p-8, + -0x1.45d170p-1, + (int)-7 + }, + { // Entry 101 + -0x1.45d170p-7, + -0x1.45d170p-1, + (int)-6 + }, + { // Entry 102 + -0x1.45d170p-6, + -0x1.45d170p-1, + (int)-5 + }, + { // Entry 103 + -0x1.45d170p-5, + -0x1.45d170p-1, + (int)-4 + }, + { // Entry 104 + -0x1.45d170p-4, + -0x1.45d170p-1, + (int)-3 + }, + { // Entry 105 + -0x1.45d170p-3, + -0x1.45d170p-1, + (int)-2 + }, + { // Entry 106 + -0x1.45d170p-2, + -0x1.45d170p-1, + (int)-1 + }, + { // Entry 107 + -0x1.45d170p-1, + -0x1.45d170p-1, + (int)0 + }, + { // Entry 108 + -0x1.45d170p0, + -0x1.45d170p-1, + (int)1 + }, + { // Entry 109 + -0x1.45d170p1, + -0x1.45d170p-1, + (int)2 + }, + { // Entry 110 + -0x1.45d170p2, + -0x1.45d170p-1, + (int)3 + }, + { // Entry 111 + -0x1.45d170p3, + -0x1.45d170p-1, + (int)4 + }, + { // Entry 112 + -0x1.45d170p4, + -0x1.45d170p-1, + (int)5 + }, + { // Entry 113 + -0x1.45d170p5, + -0x1.45d170p-1, + (int)6 + }, + { // Entry 114 + -0x1.45d170p6, + -0x1.45d170p-1, + (int)7 + }, + { // Entry 115 + -0x1.45d170p7, + -0x1.45d170p-1, + (int)8 + }, + { // Entry 116 + -0x1.45d170p8, + -0x1.45d170p-1, + (int)9 + }, + { // Entry 117 + -0x1.45d170p9, + -0x1.45d170p-1, + (int)10 + }, + { // Entry 118 + -0x1.1745ccp-11, + -0x1.1745ccp-1, + (int)-10 + }, + { // Entry 119 + -0x1.1745ccp-10, + -0x1.1745ccp-1, + (int)-9 + }, + { // Entry 120 + -0x1.1745ccp-9, + -0x1.1745ccp-1, + (int)-8 + }, + { // Entry 121 + -0x1.1745ccp-8, + -0x1.1745ccp-1, + (int)-7 + }, + { // Entry 122 + -0x1.1745ccp-7, + -0x1.1745ccp-1, + (int)-6 + }, + { // Entry 123 + -0x1.1745ccp-6, + -0x1.1745ccp-1, + (int)-5 + }, + { // Entry 124 + -0x1.1745ccp-5, + -0x1.1745ccp-1, + (int)-4 + }, + { // Entry 125 + -0x1.1745ccp-4, + -0x1.1745ccp-1, + (int)-3 + }, + { // Entry 126 + -0x1.1745ccp-3, + -0x1.1745ccp-1, + (int)-2 + }, + { // Entry 127 + -0x1.1745ccp-2, + -0x1.1745ccp-1, + (int)-1 + }, + { // Entry 128 + -0x1.1745ccp-1, + -0x1.1745ccp-1, + (int)0 + }, + { // Entry 129 + -0x1.1745ccp0, + -0x1.1745ccp-1, + (int)1 + }, + { // Entry 130 + -0x1.1745ccp1, + -0x1.1745ccp-1, + (int)2 + }, + { // Entry 131 + -0x1.1745ccp2, + -0x1.1745ccp-1, + (int)3 + }, + { // Entry 132 + -0x1.1745ccp3, + -0x1.1745ccp-1, + (int)4 + }, + { // Entry 133 + -0x1.1745ccp4, + -0x1.1745ccp-1, + (int)5 + }, + { // Entry 134 + -0x1.1745ccp5, + -0x1.1745ccp-1, + (int)6 + }, + { // Entry 135 + -0x1.1745ccp6, + -0x1.1745ccp-1, + (int)7 + }, + { // Entry 136 + -0x1.1745ccp7, + -0x1.1745ccp-1, + (int)8 + }, + { // Entry 137 + -0x1.1745ccp8, + -0x1.1745ccp-1, + (int)9 + }, + { // Entry 138 + -0x1.1745ccp9, + -0x1.1745ccp-1, + (int)10 + }, + { // Entry 139 + -0x1.d17452p-12, + -0x1.d17452p-2, + (int)-10 + }, + { // Entry 140 + -0x1.d17452p-11, + -0x1.d17452p-2, + (int)-9 + }, + { // Entry 141 + -0x1.d17452p-10, + -0x1.d17452p-2, + (int)-8 + }, + { // Entry 142 + -0x1.d17452p-9, + -0x1.d17452p-2, + (int)-7 + }, + { // Entry 143 + -0x1.d17452p-8, + -0x1.d17452p-2, + (int)-6 + }, + { // Entry 144 + -0x1.d17452p-7, + -0x1.d17452p-2, + (int)-5 + }, + { // Entry 145 + -0x1.d17452p-6, + -0x1.d17452p-2, + (int)-4 + }, + { // Entry 146 + -0x1.d17452p-5, + -0x1.d17452p-2, + (int)-3 + }, + { // Entry 147 + -0x1.d17452p-4, + -0x1.d17452p-2, + (int)-2 + }, + { // Entry 148 + -0x1.d17452p-3, + -0x1.d17452p-2, + (int)-1 + }, + { // Entry 149 + -0x1.d17452p-2, + -0x1.d17452p-2, + (int)0 + }, + { // Entry 150 + -0x1.d17452p-1, + -0x1.d17452p-2, + (int)1 + }, + { // Entry 151 + -0x1.d17452p0, + -0x1.d17452p-2, + (int)2 + }, + { // Entry 152 + -0x1.d17452p1, + -0x1.d17452p-2, + (int)3 + }, + { // Entry 153 + -0x1.d17452p2, + -0x1.d17452p-2, + (int)4 + }, + { // Entry 154 + -0x1.d17452p3, + -0x1.d17452p-2, + (int)5 + }, + { // Entry 155 + -0x1.d17452p4, + -0x1.d17452p-2, + (int)6 + }, + { // Entry 156 + -0x1.d17452p5, + -0x1.d17452p-2, + (int)7 + }, + { // Entry 157 + -0x1.d17452p6, + -0x1.d17452p-2, + (int)8 + }, + { // Entry 158 + -0x1.d17452p7, + -0x1.d17452p-2, + (int)9 + }, + { // Entry 159 + -0x1.d17452p8, + -0x1.d17452p-2, + (int)10 + }, + { // Entry 160 + -0x1.745d0cp-12, + -0x1.745d0cp-2, + (int)-10 + }, + { // Entry 161 + -0x1.745d0cp-11, + -0x1.745d0cp-2, + (int)-9 + }, + { // Entry 162 + -0x1.745d0cp-10, + -0x1.745d0cp-2, + (int)-8 + }, + { // Entry 163 + -0x1.745d0cp-9, + -0x1.745d0cp-2, + (int)-7 + }, + { // Entry 164 + -0x1.745d0cp-8, + -0x1.745d0cp-2, + (int)-6 + }, + { // Entry 165 + -0x1.745d0cp-7, + -0x1.745d0cp-2, + (int)-5 + }, + { // Entry 166 + -0x1.745d0cp-6, + -0x1.745d0cp-2, + (int)-4 + }, + { // Entry 167 + -0x1.745d0cp-5, + -0x1.745d0cp-2, + (int)-3 + }, + { // Entry 168 + -0x1.745d0cp-4, + -0x1.745d0cp-2, + (int)-2 + }, + { // Entry 169 + -0x1.745d0cp-3, + -0x1.745d0cp-2, + (int)-1 + }, + { // Entry 170 + -0x1.745d0cp-2, + -0x1.745d0cp-2, + (int)0 + }, + { // Entry 171 + -0x1.745d0cp-1, + -0x1.745d0cp-2, + (int)1 + }, + { // Entry 172 + -0x1.745d0cp0, + -0x1.745d0cp-2, + (int)2 + }, + { // Entry 173 + -0x1.745d0cp1, + -0x1.745d0cp-2, + (int)3 + }, + { // Entry 174 + -0x1.745d0cp2, + -0x1.745d0cp-2, + (int)4 + }, + { // Entry 175 + -0x1.745d0cp3, + -0x1.745d0cp-2, + (int)5 + }, + { // Entry 176 + -0x1.745d0cp4, + -0x1.745d0cp-2, + (int)6 + }, + { // Entry 177 + -0x1.745d0cp5, + -0x1.745d0cp-2, + (int)7 + }, + { // Entry 178 + -0x1.745d0cp6, + -0x1.745d0cp-2, + (int)8 + }, + { // Entry 179 + -0x1.745d0cp7, + -0x1.745d0cp-2, + (int)9 + }, + { // Entry 180 + -0x1.745d0cp8, + -0x1.745d0cp-2, + (int)10 + }, + { // Entry 181 + -0x1.1745c6p-12, + -0x1.1745c6p-2, + (int)-10 + }, + { // Entry 182 + -0x1.1745c6p-11, + -0x1.1745c6p-2, + (int)-9 + }, + { // Entry 183 + -0x1.1745c6p-10, + -0x1.1745c6p-2, + (int)-8 + }, + { // Entry 184 + -0x1.1745c6p-9, + -0x1.1745c6p-2, + (int)-7 + }, + { // Entry 185 + -0x1.1745c6p-8, + -0x1.1745c6p-2, + (int)-6 + }, + { // Entry 186 + -0x1.1745c6p-7, + -0x1.1745c6p-2, + (int)-5 + }, + { // Entry 187 + -0x1.1745c6p-6, + -0x1.1745c6p-2, + (int)-4 + }, + { // Entry 188 + -0x1.1745c6p-5, + -0x1.1745c6p-2, + (int)-3 + }, + { // Entry 189 + -0x1.1745c6p-4, + -0x1.1745c6p-2, + (int)-2 + }, + { // Entry 190 + -0x1.1745c6p-3, + -0x1.1745c6p-2, + (int)-1 + }, + { // Entry 191 + -0x1.1745c6p-2, + -0x1.1745c6p-2, + (int)0 + }, + { // Entry 192 + -0x1.1745c6p-1, + -0x1.1745c6p-2, + (int)1 + }, + { // Entry 193 + -0x1.1745c6p0, + -0x1.1745c6p-2, + (int)2 + }, + { // Entry 194 + -0x1.1745c6p1, + -0x1.1745c6p-2, + (int)3 + }, + { // Entry 195 + -0x1.1745c6p2, + -0x1.1745c6p-2, + (int)4 + }, + { // Entry 196 + -0x1.1745c6p3, + -0x1.1745c6p-2, + (int)5 + }, + { // Entry 197 + -0x1.1745c6p4, + -0x1.1745c6p-2, + (int)6 + }, + { // Entry 198 + -0x1.1745c6p5, + -0x1.1745c6p-2, + (int)7 + }, + { // Entry 199 + -0x1.1745c6p6, + -0x1.1745c6p-2, + (int)8 + }, + { // Entry 200 + -0x1.1745c6p7, + -0x1.1745c6p-2, + (int)9 + }, + { // Entry 201 + -0x1.1745c6p8, + -0x1.1745c6p-2, + (int)10 + }, + { // Entry 202 + -0x1.745dp-13, + -0x1.745dp-3, + (int)-10 + }, + { // Entry 203 + -0x1.745dp-12, + -0x1.745dp-3, + (int)-9 + }, + { // Entry 204 + -0x1.745dp-11, + -0x1.745dp-3, + (int)-8 + }, + { // Entry 205 + -0x1.745dp-10, + -0x1.745dp-3, + (int)-7 + }, + { // Entry 206 + -0x1.745dp-9, + -0x1.745dp-3, + (int)-6 + }, + { // Entry 207 + -0x1.745dp-8, + -0x1.745dp-3, + (int)-5 + }, + { // Entry 208 + -0x1.745dp-7, + -0x1.745dp-3, + (int)-4 + }, + { // Entry 209 + -0x1.745dp-6, + -0x1.745dp-3, + (int)-3 + }, + { // Entry 210 + -0x1.745dp-5, + -0x1.745dp-3, + (int)-2 + }, + { // Entry 211 + -0x1.745dp-4, + -0x1.745dp-3, + (int)-1 + }, + { // Entry 212 + -0x1.745dp-3, + -0x1.745dp-3, + (int)0 + }, + { // Entry 213 + -0x1.745dp-2, + -0x1.745dp-3, + (int)1 + }, + { // Entry 214 + -0x1.745dp-1, + -0x1.745dp-3, + (int)2 + }, + { // Entry 215 + -0x1.745dp0, + -0x1.745dp-3, + (int)3 + }, + { // Entry 216 + -0x1.745dp1, + -0x1.745dp-3, + (int)4 + }, + { // Entry 217 + -0x1.745dp2, + -0x1.745dp-3, + (int)5 + }, + { // Entry 218 + -0x1.745dp3, + -0x1.745dp-3, + (int)6 + }, + { // Entry 219 + -0x1.745dp4, + -0x1.745dp-3, + (int)7 + }, + { // Entry 220 + -0x1.745dp5, + -0x1.745dp-3, + (int)8 + }, + { // Entry 221 + -0x1.745dp6, + -0x1.745dp-3, + (int)9 + }, + { // Entry 222 + -0x1.745dp7, + -0x1.745dp-3, + (int)10 + }, + { // Entry 223 + -0x1.745ce8p-14, + -0x1.745ce8p-4, + (int)-10 + }, + { // Entry 224 + -0x1.745ce8p-13, + -0x1.745ce8p-4, + (int)-9 + }, + { // Entry 225 + -0x1.745ce8p-12, + -0x1.745ce8p-4, + (int)-8 + }, + { // Entry 226 + -0x1.745ce8p-11, + -0x1.745ce8p-4, + (int)-7 + }, + { // Entry 227 + -0x1.745ce8p-10, + -0x1.745ce8p-4, + (int)-6 + }, + { // Entry 228 + -0x1.745ce8p-9, + -0x1.745ce8p-4, + (int)-5 + }, + { // Entry 229 + -0x1.745ce8p-8, + -0x1.745ce8p-4, + (int)-4 + }, + { // Entry 230 + -0x1.745ce8p-7, + -0x1.745ce8p-4, + (int)-3 + }, + { // Entry 231 + -0x1.745ce8p-6, + -0x1.745ce8p-4, + (int)-2 + }, + { // Entry 232 + -0x1.745ce8p-5, + -0x1.745ce8p-4, + (int)-1 + }, + { // Entry 233 + -0x1.745ce8p-4, + -0x1.745ce8p-4, + (int)0 + }, + { // Entry 234 + -0x1.745ce8p-3, + -0x1.745ce8p-4, + (int)1 + }, + { // Entry 235 + -0x1.745ce8p-2, + -0x1.745ce8p-4, + (int)2 + }, + { // Entry 236 + -0x1.745ce8p-1, + -0x1.745ce8p-4, + (int)3 + }, + { // Entry 237 + -0x1.745ce8p0, + -0x1.745ce8p-4, + (int)4 + }, + { // Entry 238 + -0x1.745ce8p1, + -0x1.745ce8p-4, + (int)5 + }, + { // Entry 239 + -0x1.745ce8p2, + -0x1.745ce8p-4, + (int)6 + }, + { // Entry 240 + -0x1.745ce8p3, + -0x1.745ce8p-4, + (int)7 + }, + { // Entry 241 + -0x1.745ce8p4, + -0x1.745ce8p-4, + (int)8 + }, + { // Entry 242 + -0x1.745ce8p5, + -0x1.745ce8p-4, + (int)9 + }, + { // Entry 243 + -0x1.745ce8p6, + -0x1.745ce8p-4, + (int)10 + }, + { // Entry 244 + 0x1.80p-33, + 0x1.80p-23, + (int)-10 + }, + { // Entry 245 + 0x1.80p-32, + 0x1.80p-23, + (int)-9 + }, + { // Entry 246 + 0x1.80p-31, + 0x1.80p-23, + (int)-8 + }, + { // Entry 247 + 0x1.80p-30, + 0x1.80p-23, + (int)-7 + }, + { // Entry 248 + 0x1.80p-29, + 0x1.80p-23, + (int)-6 + }, + { // Entry 249 + 0x1.80p-28, + 0x1.80p-23, + (int)-5 + }, + { // Entry 250 + 0x1.80p-27, + 0x1.80p-23, + (int)-4 + }, + { // Entry 251 + 0x1.80p-26, + 0x1.80p-23, + (int)-3 + }, + { // Entry 252 + 0x1.80p-25, + 0x1.80p-23, + (int)-2 + }, + { // Entry 253 + 0x1.80p-24, + 0x1.80p-23, + (int)-1 + }, + { // Entry 254 + 0x1.80p-23, + 0x1.80p-23, + (int)0 + }, + { // Entry 255 + 0x1.80p-22, + 0x1.80p-23, + (int)1 + }, + { // Entry 256 + 0x1.80p-21, + 0x1.80p-23, + (int)2 + }, + { // Entry 257 + 0x1.80p-20, + 0x1.80p-23, + (int)3 + }, + { // Entry 258 + 0x1.80p-19, + 0x1.80p-23, + (int)4 + }, + { // Entry 259 + 0x1.80p-18, + 0x1.80p-23, + (int)5 + }, + { // Entry 260 + 0x1.80p-17, + 0x1.80p-23, + (int)6 + }, + { // Entry 261 + 0x1.80p-16, + 0x1.80p-23, + (int)7 + }, + { // Entry 262 + 0x1.80p-15, + 0x1.80p-23, + (int)8 + }, + { // Entry 263 + 0x1.80p-14, + 0x1.80p-23, + (int)9 + }, + { // Entry 264 + 0x1.80p-13, + 0x1.80p-23, + (int)10 + }, + { // Entry 265 + 0x1.745d48p-14, + 0x1.745d48p-4, + (int)-10 + }, + { // Entry 266 + 0x1.745d48p-13, + 0x1.745d48p-4, + (int)-9 + }, + { // Entry 267 + 0x1.745d48p-12, + 0x1.745d48p-4, + (int)-8 + }, + { // Entry 268 + 0x1.745d48p-11, + 0x1.745d48p-4, + (int)-7 + }, + { // Entry 269 + 0x1.745d48p-10, + 0x1.745d48p-4, + (int)-6 + }, + { // Entry 270 + 0x1.745d48p-9, + 0x1.745d48p-4, + (int)-5 + }, + { // Entry 271 + 0x1.745d48p-8, + 0x1.745d48p-4, + (int)-4 + }, + { // Entry 272 + 0x1.745d48p-7, + 0x1.745d48p-4, + (int)-3 + }, + { // Entry 273 + 0x1.745d48p-6, + 0x1.745d48p-4, + (int)-2 + }, + { // Entry 274 + 0x1.745d48p-5, + 0x1.745d48p-4, + (int)-1 + }, + { // Entry 275 + 0x1.745d48p-4, + 0x1.745d48p-4, + (int)0 + }, + { // Entry 276 + 0x1.745d48p-3, + 0x1.745d48p-4, + (int)1 + }, + { // Entry 277 + 0x1.745d48p-2, + 0x1.745d48p-4, + (int)2 + }, + { // Entry 278 + 0x1.745d48p-1, + 0x1.745d48p-4, + (int)3 + }, + { // Entry 279 + 0x1.745d48p0, + 0x1.745d48p-4, + (int)4 + }, + { // Entry 280 + 0x1.745d48p1, + 0x1.745d48p-4, + (int)5 + }, + { // Entry 281 + 0x1.745d48p2, + 0x1.745d48p-4, + (int)6 + }, + { // Entry 282 + 0x1.745d48p3, + 0x1.745d48p-4, + (int)7 + }, + { // Entry 283 + 0x1.745d48p4, + 0x1.745d48p-4, + (int)8 + }, + { // Entry 284 + 0x1.745d48p5, + 0x1.745d48p-4, + (int)9 + }, + { // Entry 285 + 0x1.745d48p6, + 0x1.745d48p-4, + (int)10 + }, + { // Entry 286 + 0x1.745d30p-13, + 0x1.745d30p-3, + (int)-10 + }, + { // Entry 287 + 0x1.745d30p-12, + 0x1.745d30p-3, + (int)-9 + }, + { // Entry 288 + 0x1.745d30p-11, + 0x1.745d30p-3, + (int)-8 + }, + { // Entry 289 + 0x1.745d30p-10, + 0x1.745d30p-3, + (int)-7 + }, + { // Entry 290 + 0x1.745d30p-9, + 0x1.745d30p-3, + (int)-6 + }, + { // Entry 291 + 0x1.745d30p-8, + 0x1.745d30p-3, + (int)-5 + }, + { // Entry 292 + 0x1.745d30p-7, + 0x1.745d30p-3, + (int)-4 + }, + { // Entry 293 + 0x1.745d30p-6, + 0x1.745d30p-3, + (int)-3 + }, + { // Entry 294 + 0x1.745d30p-5, + 0x1.745d30p-3, + (int)-2 + }, + { // Entry 295 + 0x1.745d30p-4, + 0x1.745d30p-3, + (int)-1 + }, + { // Entry 296 + 0x1.745d30p-3, + 0x1.745d30p-3, + (int)0 + }, + { // Entry 297 + 0x1.745d30p-2, + 0x1.745d30p-3, + (int)1 + }, + { // Entry 298 + 0x1.745d30p-1, + 0x1.745d30p-3, + (int)2 + }, + { // Entry 299 + 0x1.745d30p0, + 0x1.745d30p-3, + (int)3 + }, + { // Entry 300 + 0x1.745d30p1, + 0x1.745d30p-3, + (int)4 + }, + { // Entry 301 + 0x1.745d30p2, + 0x1.745d30p-3, + (int)5 + }, + { // Entry 302 + 0x1.745d30p3, + 0x1.745d30p-3, + (int)6 + }, + { // Entry 303 + 0x1.745d30p4, + 0x1.745d30p-3, + (int)7 + }, + { // Entry 304 + 0x1.745d30p5, + 0x1.745d30p-3, + (int)8 + }, + { // Entry 305 + 0x1.745d30p6, + 0x1.745d30p-3, + (int)9 + }, + { // Entry 306 + 0x1.745d30p7, + 0x1.745d30p-3, + (int)10 + }, + { // Entry 307 + 0x1.1745dep-12, + 0x1.1745dep-2, + (int)-10 + }, + { // Entry 308 + 0x1.1745dep-11, + 0x1.1745dep-2, + (int)-9 + }, + { // Entry 309 + 0x1.1745dep-10, + 0x1.1745dep-2, + (int)-8 + }, + { // Entry 310 + 0x1.1745dep-9, + 0x1.1745dep-2, + (int)-7 + }, + { // Entry 311 + 0x1.1745dep-8, + 0x1.1745dep-2, + (int)-6 + }, + { // Entry 312 + 0x1.1745dep-7, + 0x1.1745dep-2, + (int)-5 + }, + { // Entry 313 + 0x1.1745dep-6, + 0x1.1745dep-2, + (int)-4 + }, + { // Entry 314 + 0x1.1745dep-5, + 0x1.1745dep-2, + (int)-3 + }, + { // Entry 315 + 0x1.1745dep-4, + 0x1.1745dep-2, + (int)-2 + }, + { // Entry 316 + 0x1.1745dep-3, + 0x1.1745dep-2, + (int)-1 + }, + { // Entry 317 + 0x1.1745dep-2, + 0x1.1745dep-2, + (int)0 + }, + { // Entry 318 + 0x1.1745dep-1, + 0x1.1745dep-2, + (int)1 + }, + { // Entry 319 + 0x1.1745dep0, + 0x1.1745dep-2, + (int)2 + }, + { // Entry 320 + 0x1.1745dep1, + 0x1.1745dep-2, + (int)3 + }, + { // Entry 321 + 0x1.1745dep2, + 0x1.1745dep-2, + (int)4 + }, + { // Entry 322 + 0x1.1745dep3, + 0x1.1745dep-2, + (int)5 + }, + { // Entry 323 + 0x1.1745dep4, + 0x1.1745dep-2, + (int)6 + }, + { // Entry 324 + 0x1.1745dep5, + 0x1.1745dep-2, + (int)7 + }, + { // Entry 325 + 0x1.1745dep6, + 0x1.1745dep-2, + (int)8 + }, + { // Entry 326 + 0x1.1745dep7, + 0x1.1745dep-2, + (int)9 + }, + { // Entry 327 + 0x1.1745dep8, + 0x1.1745dep-2, + (int)10 + }, + { // Entry 328 + 0x1.745d24p-12, + 0x1.745d24p-2, + (int)-10 + }, + { // Entry 329 + 0x1.745d24p-11, + 0x1.745d24p-2, + (int)-9 + }, + { // Entry 330 + 0x1.745d24p-10, + 0x1.745d24p-2, + (int)-8 + }, + { // Entry 331 + 0x1.745d24p-9, + 0x1.745d24p-2, + (int)-7 + }, + { // Entry 332 + 0x1.745d24p-8, + 0x1.745d24p-2, + (int)-6 + }, + { // Entry 333 + 0x1.745d24p-7, + 0x1.745d24p-2, + (int)-5 + }, + { // Entry 334 + 0x1.745d24p-6, + 0x1.745d24p-2, + (int)-4 + }, + { // Entry 335 + 0x1.745d24p-5, + 0x1.745d24p-2, + (int)-3 + }, + { // Entry 336 + 0x1.745d24p-4, + 0x1.745d24p-2, + (int)-2 + }, + { // Entry 337 + 0x1.745d24p-3, + 0x1.745d24p-2, + (int)-1 + }, + { // Entry 338 + 0x1.745d24p-2, + 0x1.745d24p-2, + (int)0 + }, + { // Entry 339 + 0x1.745d24p-1, + 0x1.745d24p-2, + (int)1 + }, + { // Entry 340 + 0x1.745d24p0, + 0x1.745d24p-2, + (int)2 + }, + { // Entry 341 + 0x1.745d24p1, + 0x1.745d24p-2, + (int)3 + }, + { // Entry 342 + 0x1.745d24p2, + 0x1.745d24p-2, + (int)4 + }, + { // Entry 343 + 0x1.745d24p3, + 0x1.745d24p-2, + (int)5 + }, + { // Entry 344 + 0x1.745d24p4, + 0x1.745d24p-2, + (int)6 + }, + { // Entry 345 + 0x1.745d24p5, + 0x1.745d24p-2, + (int)7 + }, + { // Entry 346 + 0x1.745d24p6, + 0x1.745d24p-2, + (int)8 + }, + { // Entry 347 + 0x1.745d24p7, + 0x1.745d24p-2, + (int)9 + }, + { // Entry 348 + 0x1.745d24p8, + 0x1.745d24p-2, + (int)10 + }, + { // Entry 349 + 0x1.d1746ap-12, + 0x1.d1746ap-2, + (int)-10 + }, + { // Entry 350 + 0x1.d1746ap-11, + 0x1.d1746ap-2, + (int)-9 + }, + { // Entry 351 + 0x1.d1746ap-10, + 0x1.d1746ap-2, + (int)-8 + }, + { // Entry 352 + 0x1.d1746ap-9, + 0x1.d1746ap-2, + (int)-7 + }, + { // Entry 353 + 0x1.d1746ap-8, + 0x1.d1746ap-2, + (int)-6 + }, + { // Entry 354 + 0x1.d1746ap-7, + 0x1.d1746ap-2, + (int)-5 + }, + { // Entry 355 + 0x1.d1746ap-6, + 0x1.d1746ap-2, + (int)-4 + }, + { // Entry 356 + 0x1.d1746ap-5, + 0x1.d1746ap-2, + (int)-3 + }, + { // Entry 357 + 0x1.d1746ap-4, + 0x1.d1746ap-2, + (int)-2 + }, + { // Entry 358 + 0x1.d1746ap-3, + 0x1.d1746ap-2, + (int)-1 + }, + { // Entry 359 + 0x1.d1746ap-2, + 0x1.d1746ap-2, + (int)0 + }, + { // Entry 360 + 0x1.d1746ap-1, + 0x1.d1746ap-2, + (int)1 + }, + { // Entry 361 + 0x1.d1746ap0, + 0x1.d1746ap-2, + (int)2 + }, + { // Entry 362 + 0x1.d1746ap1, + 0x1.d1746ap-2, + (int)3 + }, + { // Entry 363 + 0x1.d1746ap2, + 0x1.d1746ap-2, + (int)4 + }, + { // Entry 364 + 0x1.d1746ap3, + 0x1.d1746ap-2, + (int)5 + }, + { // Entry 365 + 0x1.d1746ap4, + 0x1.d1746ap-2, + (int)6 + }, + { // Entry 366 + 0x1.d1746ap5, + 0x1.d1746ap-2, + (int)7 + }, + { // Entry 367 + 0x1.d1746ap6, + 0x1.d1746ap-2, + (int)8 + }, + { // Entry 368 + 0x1.d1746ap7, + 0x1.d1746ap-2, + (int)9 + }, + { // Entry 369 + 0x1.d1746ap8, + 0x1.d1746ap-2, + (int)10 + }, + { // Entry 370 + 0x1.1745d8p-11, + 0x1.1745d8p-1, + (int)-10 + }, + { // Entry 371 + 0x1.1745d8p-10, + 0x1.1745d8p-1, + (int)-9 + }, + { // Entry 372 + 0x1.1745d8p-9, + 0x1.1745d8p-1, + (int)-8 + }, + { // Entry 373 + 0x1.1745d8p-8, + 0x1.1745d8p-1, + (int)-7 + }, + { // Entry 374 + 0x1.1745d8p-7, + 0x1.1745d8p-1, + (int)-6 + }, + { // Entry 375 + 0x1.1745d8p-6, + 0x1.1745d8p-1, + (int)-5 + }, + { // Entry 376 + 0x1.1745d8p-5, + 0x1.1745d8p-1, + (int)-4 + }, + { // Entry 377 + 0x1.1745d8p-4, + 0x1.1745d8p-1, + (int)-3 + }, + { // Entry 378 + 0x1.1745d8p-3, + 0x1.1745d8p-1, + (int)-2 + }, + { // Entry 379 + 0x1.1745d8p-2, + 0x1.1745d8p-1, + (int)-1 + }, + { // Entry 380 + 0x1.1745d8p-1, + 0x1.1745d8p-1, + (int)0 + }, + { // Entry 381 + 0x1.1745d8p0, + 0x1.1745d8p-1, + (int)1 + }, + { // Entry 382 + 0x1.1745d8p1, + 0x1.1745d8p-1, + (int)2 + }, + { // Entry 383 + 0x1.1745d8p2, + 0x1.1745d8p-1, + (int)3 + }, + { // Entry 384 + 0x1.1745d8p3, + 0x1.1745d8p-1, + (int)4 + }, + { // Entry 385 + 0x1.1745d8p4, + 0x1.1745d8p-1, + (int)5 + }, + { // Entry 386 + 0x1.1745d8p5, + 0x1.1745d8p-1, + (int)6 + }, + { // Entry 387 + 0x1.1745d8p6, + 0x1.1745d8p-1, + (int)7 + }, + { // Entry 388 + 0x1.1745d8p7, + 0x1.1745d8p-1, + (int)8 + }, + { // Entry 389 + 0x1.1745d8p8, + 0x1.1745d8p-1, + (int)9 + }, + { // Entry 390 + 0x1.1745d8p9, + 0x1.1745d8p-1, + (int)10 + }, + { // Entry 391 + 0x1.45d17cp-11, + 0x1.45d17cp-1, + (int)-10 + }, + { // Entry 392 + 0x1.45d17cp-10, + 0x1.45d17cp-1, + (int)-9 + }, + { // Entry 393 + 0x1.45d17cp-9, + 0x1.45d17cp-1, + (int)-8 + }, + { // Entry 394 + 0x1.45d17cp-8, + 0x1.45d17cp-1, + (int)-7 + }, + { // Entry 395 + 0x1.45d17cp-7, + 0x1.45d17cp-1, + (int)-6 + }, + { // Entry 396 + 0x1.45d17cp-6, + 0x1.45d17cp-1, + (int)-5 + }, + { // Entry 397 + 0x1.45d17cp-5, + 0x1.45d17cp-1, + (int)-4 + }, + { // Entry 398 + 0x1.45d17cp-4, + 0x1.45d17cp-1, + (int)-3 + }, + { // Entry 399 + 0x1.45d17cp-3, + 0x1.45d17cp-1, + (int)-2 + }, + { // Entry 400 + 0x1.45d17cp-2, + 0x1.45d17cp-1, + (int)-1 + }, + { // Entry 401 + 0x1.45d17cp-1, + 0x1.45d17cp-1, + (int)0 + }, + { // Entry 402 + 0x1.45d17cp0, + 0x1.45d17cp-1, + (int)1 + }, + { // Entry 403 + 0x1.45d17cp1, + 0x1.45d17cp-1, + (int)2 + }, + { // Entry 404 + 0x1.45d17cp2, + 0x1.45d17cp-1, + (int)3 + }, + { // Entry 405 + 0x1.45d17cp3, + 0x1.45d17cp-1, + (int)4 + }, + { // Entry 406 + 0x1.45d17cp4, + 0x1.45d17cp-1, + (int)5 + }, + { // Entry 407 + 0x1.45d17cp5, + 0x1.45d17cp-1, + (int)6 + }, + { // Entry 408 + 0x1.45d17cp6, + 0x1.45d17cp-1, + (int)7 + }, + { // Entry 409 + 0x1.45d17cp7, + 0x1.45d17cp-1, + (int)8 + }, + { // Entry 410 + 0x1.45d17cp8, + 0x1.45d17cp-1, + (int)9 + }, + { // Entry 411 + 0x1.45d17cp9, + 0x1.45d17cp-1, + (int)10 + }, + { // Entry 412 + 0x1.745d20p-11, + 0x1.745d20p-1, + (int)-10 + }, + { // Entry 413 + 0x1.745d20p-10, + 0x1.745d20p-1, + (int)-9 + }, + { // Entry 414 + 0x1.745d20p-9, + 0x1.745d20p-1, + (int)-8 + }, + { // Entry 415 + 0x1.745d20p-8, + 0x1.745d20p-1, + (int)-7 + }, + { // Entry 416 + 0x1.745d20p-7, + 0x1.745d20p-1, + (int)-6 + }, + { // Entry 417 + 0x1.745d20p-6, + 0x1.745d20p-1, + (int)-5 + }, + { // Entry 418 + 0x1.745d20p-5, + 0x1.745d20p-1, + (int)-4 + }, + { // Entry 419 + 0x1.745d20p-4, + 0x1.745d20p-1, + (int)-3 + }, + { // Entry 420 + 0x1.745d20p-3, + 0x1.745d20p-1, + (int)-2 + }, + { // Entry 421 + 0x1.745d20p-2, + 0x1.745d20p-1, + (int)-1 + }, + { // Entry 422 + 0x1.745d20p-1, + 0x1.745d20p-1, + (int)0 + }, + { // Entry 423 + 0x1.745d20p0, + 0x1.745d20p-1, + (int)1 + }, + { // Entry 424 + 0x1.745d20p1, + 0x1.745d20p-1, + (int)2 + }, + { // Entry 425 + 0x1.745d20p2, + 0x1.745d20p-1, + (int)3 + }, + { // Entry 426 + 0x1.745d20p3, + 0x1.745d20p-1, + (int)4 + }, + { // Entry 427 + 0x1.745d20p4, + 0x1.745d20p-1, + (int)5 + }, + { // Entry 428 + 0x1.745d20p5, + 0x1.745d20p-1, + (int)6 + }, + { // Entry 429 + 0x1.745d20p6, + 0x1.745d20p-1, + (int)7 + }, + { // Entry 430 + 0x1.745d20p7, + 0x1.745d20p-1, + (int)8 + }, + { // Entry 431 + 0x1.745d20p8, + 0x1.745d20p-1, + (int)9 + }, + { // Entry 432 + 0x1.745d20p9, + 0x1.745d20p-1, + (int)10 + }, + { // Entry 433 + 0x1.a2e8c4p-11, + 0x1.a2e8c4p-1, + (int)-10 + }, + { // Entry 434 + 0x1.a2e8c4p-10, + 0x1.a2e8c4p-1, + (int)-9 + }, + { // Entry 435 + 0x1.a2e8c4p-9, + 0x1.a2e8c4p-1, + (int)-8 + }, + { // Entry 436 + 0x1.a2e8c4p-8, + 0x1.a2e8c4p-1, + (int)-7 + }, + { // Entry 437 + 0x1.a2e8c4p-7, + 0x1.a2e8c4p-1, + (int)-6 + }, + { // Entry 438 + 0x1.a2e8c4p-6, + 0x1.a2e8c4p-1, + (int)-5 + }, + { // Entry 439 + 0x1.a2e8c4p-5, + 0x1.a2e8c4p-1, + (int)-4 + }, + { // Entry 440 + 0x1.a2e8c4p-4, + 0x1.a2e8c4p-1, + (int)-3 + }, + { // Entry 441 + 0x1.a2e8c4p-3, + 0x1.a2e8c4p-1, + (int)-2 + }, + { // Entry 442 + 0x1.a2e8c4p-2, + 0x1.a2e8c4p-1, + (int)-1 + }, + { // Entry 443 + 0x1.a2e8c4p-1, + 0x1.a2e8c4p-1, + (int)0 + }, + { // Entry 444 + 0x1.a2e8c4p0, + 0x1.a2e8c4p-1, + (int)1 + }, + { // Entry 445 + 0x1.a2e8c4p1, + 0x1.a2e8c4p-1, + (int)2 + }, + { // Entry 446 + 0x1.a2e8c4p2, + 0x1.a2e8c4p-1, + (int)3 + }, + { // Entry 447 + 0x1.a2e8c4p3, + 0x1.a2e8c4p-1, + (int)4 + }, + { // Entry 448 + 0x1.a2e8c4p4, + 0x1.a2e8c4p-1, + (int)5 + }, + { // Entry 449 + 0x1.a2e8c4p5, + 0x1.a2e8c4p-1, + (int)6 + }, + { // Entry 450 + 0x1.a2e8c4p6, + 0x1.a2e8c4p-1, + (int)7 + }, + { // Entry 451 + 0x1.a2e8c4p7, + 0x1.a2e8c4p-1, + (int)8 + }, + { // Entry 452 + 0x1.a2e8c4p8, + 0x1.a2e8c4p-1, + (int)9 + }, + { // Entry 453 + 0x1.a2e8c4p9, + 0x1.a2e8c4p-1, + (int)10 + }, + { // Entry 454 + 0x1.d17468p-11, + 0x1.d17468p-1, + (int)-10 + }, + { // Entry 455 + 0x1.d17468p-10, + 0x1.d17468p-1, + (int)-9 + }, + { // Entry 456 + 0x1.d17468p-9, + 0x1.d17468p-1, + (int)-8 + }, + { // Entry 457 + 0x1.d17468p-8, + 0x1.d17468p-1, + (int)-7 + }, + { // Entry 458 + 0x1.d17468p-7, + 0x1.d17468p-1, + (int)-6 + }, + { // Entry 459 + 0x1.d17468p-6, + 0x1.d17468p-1, + (int)-5 + }, + { // Entry 460 + 0x1.d17468p-5, + 0x1.d17468p-1, + (int)-4 + }, + { // Entry 461 + 0x1.d17468p-4, + 0x1.d17468p-1, + (int)-3 + }, + { // Entry 462 + 0x1.d17468p-3, + 0x1.d17468p-1, + (int)-2 + }, + { // Entry 463 + 0x1.d17468p-2, + 0x1.d17468p-1, + (int)-1 + }, + { // Entry 464 + 0x1.d17468p-1, + 0x1.d17468p-1, + (int)0 + }, + { // Entry 465 + 0x1.d17468p0, + 0x1.d17468p-1, + (int)1 + }, + { // Entry 466 + 0x1.d17468p1, + 0x1.d17468p-1, + (int)2 + }, + { // Entry 467 + 0x1.d17468p2, + 0x1.d17468p-1, + (int)3 + }, + { // Entry 468 + 0x1.d17468p3, + 0x1.d17468p-1, + (int)4 + }, + { // Entry 469 + 0x1.d17468p4, + 0x1.d17468p-1, + (int)5 + }, + { // Entry 470 + 0x1.d17468p5, + 0x1.d17468p-1, + (int)6 + }, + { // Entry 471 + 0x1.d17468p6, + 0x1.d17468p-1, + (int)7 + }, + { // Entry 472 + 0x1.d17468p7, + 0x1.d17468p-1, + (int)8 + }, + { // Entry 473 + 0x1.d17468p8, + 0x1.d17468p-1, + (int)9 + }, + { // Entry 474 + 0x1.d17468p9, + 0x1.d17468p-1, + (int)10 + }, + { // Entry 475 + 0x1.p-10, + 0x1.p0, + (int)-10 + }, + { // Entry 476 + 0x1.p-9, + 0x1.p0, + (int)-9 + }, + { // Entry 477 + 0x1.p-8, + 0x1.p0, + (int)-8 + }, + { // Entry 478 + 0x1.p-7, + 0x1.p0, + (int)-7 + }, + { // Entry 479 + 0x1.p-6, + 0x1.p0, + (int)-6 + }, + { // Entry 480 + 0x1.p-5, + 0x1.p0, + (int)-5 + }, + { // Entry 481 + 0x1.p-4, + 0x1.p0, + (int)-4 + }, + { // Entry 482 + 0x1.p-3, + 0x1.p0, + (int)-3 + }, + { // Entry 483 + 0x1.p-2, + 0x1.p0, + (int)-2 + }, + { // Entry 484 + 0x1.p-1, + 0x1.p0, + (int)-1 + }, + { // Entry 485 + 0x1.p0, + 0x1.p0, + (int)0 + }, + { // Entry 486 + 0x1.p1, + 0x1.p0, + (int)1 + }, + { // Entry 487 + 0x1.p2, + 0x1.p0, + (int)2 + }, + { // Entry 488 + 0x1.p3, + 0x1.p0, + (int)3 + }, + { // Entry 489 + 0x1.p4, + 0x1.p0, + (int)4 + }, + { // Entry 490 + 0x1.p5, + 0x1.p0, + (int)5 + }, + { // Entry 491 + 0x1.p6, + 0x1.p0, + (int)6 + }, + { // Entry 492 + 0x1.p7, + 0x1.p0, + (int)7 + }, + { // Entry 493 + 0x1.p8, + 0x1.p0, + (int)8 + }, + { // Entry 494 + 0x1.p9, + 0x1.p0, + (int)9 + }, + { // Entry 495 + 0x1.p10, + 0x1.p0, + (int)10 + }, + { // Entry 496 + 0x1.fffffep0, + 0x1.fffffep127, + (int)-127 + }, + { // Entry 497 + 0x1.fffffep1, + 0x1.fffffep127, + (int)-126 + }, + { // Entry 498 + 0x1.fffffep117, + 0x1.fffffep127, + (int)-10 + }, + { // Entry 499 + 0x1.fffffep118, + 0x1.fffffep127, + (int)-9 + }, + { // Entry 500 + 0x1.fffffep119, + 0x1.fffffep127, + (int)-8 + }, + { // Entry 501 + 0x1.fffffep120, + 0x1.fffffep127, + (int)-7 + }, + { // Entry 502 + 0x1.fffffep121, + 0x1.fffffep127, + (int)-6 + }, + { // Entry 503 + 0x1.fffffep122, + 0x1.fffffep127, + (int)-5 + }, + { // Entry 504 + 0x1.fffffep123, + 0x1.fffffep127, + (int)-4 + }, + { // Entry 505 + 0x1.fffffep124, + 0x1.fffffep127, + (int)-3 + }, + { // Entry 506 + 0x1.fffffep125, + 0x1.fffffep127, + (int)-2 + }, + { // Entry 507 + 0x1.fffffep126, + 0x1.fffffep127, + (int)-1 + }, + { // Entry 508 + 0x1.fffffep127, + 0x1.fffffep127, + (int)0 + }, + { // Entry 509 + 0x1.p-22, + 0x1.p-149, + (int)127 + }, + { // Entry 510 + 0x1.p-23, + 0x1.p-149, + (int)126 + }, + { // Entry 511 + 0x1.p-149, + 0x1.p-149, + (int)0 + }, + { // Entry 512 + 0x1.p-148, + 0x1.p-149, + (int)1 + }, + { // Entry 513 + 0x1.p-147, + 0x1.p-149, + (int)2 + }, + { // Entry 514 + 0x1.p-146, + 0x1.p-149, + (int)3 + }, + { // Entry 515 + 0x1.p-145, + 0x1.p-149, + (int)4 + }, + { // Entry 516 + 0x1.p-144, + 0x1.p-149, + (int)5 + }, + { // Entry 517 + 0x1.p-143, + 0x1.p-149, + (int)6 + }, + { // Entry 518 + 0x1.p-142, + 0x1.p-149, + (int)7 + }, + { // Entry 519 + 0x1.p-141, + 0x1.p-149, + (int)8 + }, + { // Entry 520 + 0x1.p-140, + 0x1.p-149, + (int)9 + }, + { // Entry 521 + 0x1.p-139, + 0x1.p-149, + (int)10 + }, + { // Entry 522 + 0x1.p-129, + 0x1.p-2, + (int)-127 + }, + { // Entry 523 + 0x1.p-128, + 0x1.p-2, + (int)-126 + }, + { // Entry 524 + 0x1.p-128, + 0x1.p-1, + (int)-127 + }, + { // Entry 525 + 0x1.p-127, + 0x1.p-1, + (int)-126 + }, + { // Entry 526 + 0x1.80p-128, + 0x1.80p-1, + (int)-127 + }, + { // Entry 527 + 0x1.80p-127, + 0x1.80p-1, + (int)-126 + }, + { // Entry 528 + 0.0f, + 0x1.p-2, + (int)-149 + }, + { // Entry 529 + 0.0f, + 0x1.p-2, + (int)-148 + }, + { // Entry 530 + 0.0f, + 0x1.p-1, + (int)-149 + }, + { // Entry 531 + 0x1.p-149, + 0x1.p-1, + (int)-148 + }, + { // Entry 532 + 0.0f, + 0x1.80p-1, + (int)-149 + }, + { // Entry 533 + 0x1.80p-149, + 0x1.80p-1, + (int)-148 + }, + { // Entry 534 + 0x1.p127, + 0x1.p0, + (int)127 + }, + { // Entry 535 + 0x1.p126, + 0x1.p0, + (int)126 + }, + { // Entry 536 + 0x1.p-149, + 0x1.p-149, + (int)0 + }, + { // Entry 537 + 0x1.p-148, + 0x1.p-149, + (int)1 + }, + { // Entry 538 + 0x1.p-147, + 0x1.p-149, + (int)2 + }, + { // Entry 539 + 0x1.p-146, + 0x1.p-149, + (int)3 + }, + { // Entry 540 + 0x1.p-145, + 0x1.p-149, + (int)4 + }, + { // Entry 541 + 0x1.p-144, + 0x1.p-149, + (int)5 + }, + { // Entry 542 + 0x1.p-143, + 0x1.p-149, + (int)6 + }, + { // Entry 543 + 0x1.p-142, + 0x1.p-149, + (int)7 + }, + { // Entry 544 + 0x1.p-141, + 0x1.p-149, + (int)8 + }, + { // Entry 545 + 0x1.p-140, + 0x1.p-149, + (int)9 + }, + { // Entry 546 + 0x1.p-139, + 0x1.p-149, + (int)10 + }, + { // Entry 547 + 0x1.p-138, + 0x1.p-149, + (int)11 + }, + { // Entry 548 + 0x1.p-137, + 0x1.p-149, + (int)12 + }, + { // Entry 549 + 0x1.p-136, + 0x1.p-149, + (int)13 + }, + { // Entry 550 + 0x1.p-135, + 0x1.p-149, + (int)14 + }, + { // Entry 551 + 0x1.p-134, + 0x1.p-149, + (int)15 + }, + { // Entry 552 + 0x1.p-133, + 0x1.p-149, + (int)16 + }, + { // Entry 553 + 0x1.p-132, + 0x1.p-149, + (int)17 + }, + { // Entry 554 + 0x1.p-131, + 0x1.p-149, + (int)18 + }, + { // Entry 555 + 0x1.p-130, + 0x1.p-149, + (int)19 + }, + { // Entry 556 + 0x1.p-129, + 0x1.p-149, + (int)20 + }, + { // Entry 557 + 0x1.p-128, + 0x1.p-149, + (int)21 + }, + { // Entry 558 + 0x1.p-127, + 0x1.p-149, + (int)22 + }, + { // Entry 559 + 0x1.p-126, + 0x1.p-149, + (int)23 + }, + { // Entry 560 + 0x1.p-125, + 0x1.p-149, + (int)24 + }, + { // Entry 561 + 0x1.p-124, + 0x1.p-149, + (int)25 + }, + { // Entry 562 + 0x1.p-123, + 0x1.p-149, + (int)26 + }, + { // Entry 563 + 0x1.p-122, + 0x1.p-149, + (int)27 + }, + { // Entry 564 + 0x1.p-121, + 0x1.p-149, + (int)28 + }, + { // Entry 565 + 0x1.p-120, + 0x1.p-149, + (int)29 + }, + { // Entry 566 + 0x1.p-119, + 0x1.p-149, + (int)30 + }, + { // Entry 567 + 0x1.p-118, + 0x1.p-149, + (int)31 + }, + { // Entry 568 + 0x1.p-117, + 0x1.p-149, + (int)32 + }, + { // Entry 569 + 0x1.p-116, + 0x1.p-149, + (int)33 + }, + { // Entry 570 + 0x1.p-115, + 0x1.p-149, + (int)34 + }, + { // Entry 571 + 0x1.p-114, + 0x1.p-149, + (int)35 + }, + { // Entry 572 + 0x1.p-113, + 0x1.p-149, + (int)36 + }, + { // Entry 573 + 0x1.p-112, + 0x1.p-149, + (int)37 + }, + { // Entry 574 + 0x1.p-111, + 0x1.p-149, + (int)38 + }, + { // Entry 575 + 0x1.p-110, + 0x1.p-149, + (int)39 + }, + { // Entry 576 + 0x1.p-109, + 0x1.p-149, + (int)40 + }, + { // Entry 577 + 0x1.p-108, + 0x1.p-149, + (int)41 + }, + { // Entry 578 + 0x1.p-107, + 0x1.p-149, + (int)42 + }, + { // Entry 579 + 0x1.p-106, + 0x1.p-149, + (int)43 + }, + { // Entry 580 + 0x1.p-105, + 0x1.p-149, + (int)44 + }, + { // Entry 581 + 0x1.p-104, + 0x1.p-149, + (int)45 + }, + { // Entry 582 + 0x1.p-103, + 0x1.p-149, + (int)46 + }, + { // Entry 583 + 0x1.p-102, + 0x1.p-149, + (int)47 + }, + { // Entry 584 + 0x1.p-101, + 0x1.p-149, + (int)48 + }, + { // Entry 585 + 0x1.p-100, + 0x1.p-149, + (int)49 + }, + { // Entry 586 + 0x1.p-99, + 0x1.p-149, + (int)50 + }, + { // Entry 587 + 0x1.p-98, + 0x1.p-149, + (int)51 + }, + { // Entry 588 + 0x1.p-97, + 0x1.p-149, + (int)52 + }, + { // Entry 589 + 0x1.p-96, + 0x1.p-149, + (int)53 + }, + { // Entry 590 + 0x1.p-95, + 0x1.p-149, + (int)54 + }, + { // Entry 591 + 0x1.p-94, + 0x1.p-149, + (int)55 + }, + { // Entry 592 + 0x1.p-93, + 0x1.p-149, + (int)56 + }, + { // Entry 593 + 0x1.p-92, + 0x1.p-149, + (int)57 + }, + { // Entry 594 + 0x1.p-91, + 0x1.p-149, + (int)58 + }, + { // Entry 595 + 0x1.p-90, + 0x1.p-149, + (int)59 + }, + { // Entry 596 + 0x1.p-89, + 0x1.p-149, + (int)60 + }, + { // Entry 597 + 0x1.p-88, + 0x1.p-149, + (int)61 + }, + { // Entry 598 + 0x1.p-87, + 0x1.p-149, + (int)62 + }, + { // Entry 599 + 0x1.p-86, + 0x1.p-149, + (int)63 + }, + { // Entry 600 + 0x1.p-85, + 0x1.p-149, + (int)64 + }, + { // Entry 601 + 0x1.p-84, + 0x1.p-149, + (int)65 + }, + { // Entry 602 + 0x1.p-83, + 0x1.p-149, + (int)66 + }, + { // Entry 603 + 0x1.p-82, + 0x1.p-149, + (int)67 + }, + { // Entry 604 + 0x1.p-81, + 0x1.p-149, + (int)68 + }, + { // Entry 605 + 0x1.p-80, + 0x1.p-149, + (int)69 + }, + { // Entry 606 + 0x1.p-79, + 0x1.p-149, + (int)70 + }, + { // Entry 607 + 0x1.p-78, + 0x1.p-149, + (int)71 + }, + { // Entry 608 + 0x1.p-77, + 0x1.p-149, + (int)72 + }, + { // Entry 609 + 0x1.p-76, + 0x1.p-149, + (int)73 + }, + { // Entry 610 + 0x1.p-75, + 0x1.p-149, + (int)74 + }, + { // Entry 611 + 0x1.p-74, + 0x1.p-149, + (int)75 + }, + { // Entry 612 + 0x1.p-73, + 0x1.p-149, + (int)76 + }, + { // Entry 613 + 0x1.p-72, + 0x1.p-149, + (int)77 + }, + { // Entry 614 + 0x1.p-71, + 0x1.p-149, + (int)78 + }, + { // Entry 615 + 0x1.p-70, + 0x1.p-149, + (int)79 + }, + { // Entry 616 + 0x1.p-69, + 0x1.p-149, + (int)80 + }, + { // Entry 617 + 0x1.p-68, + 0x1.p-149, + (int)81 + }, + { // Entry 618 + 0x1.p-67, + 0x1.p-149, + (int)82 + }, + { // Entry 619 + 0x1.p-66, + 0x1.p-149, + (int)83 + }, + { // Entry 620 + 0x1.p-65, + 0x1.p-149, + (int)84 + }, + { // Entry 621 + 0x1.p-64, + 0x1.p-149, + (int)85 + }, + { // Entry 622 + 0x1.p-63, + 0x1.p-149, + (int)86 + }, + { // Entry 623 + 0x1.p-62, + 0x1.p-149, + (int)87 + }, + { // Entry 624 + 0x1.p-61, + 0x1.p-149, + (int)88 + }, + { // Entry 625 + 0x1.p-60, + 0x1.p-149, + (int)89 + }, + { // Entry 626 + 0x1.p-59, + 0x1.p-149, + (int)90 + }, + { // Entry 627 + 0x1.p-58, + 0x1.p-149, + (int)91 + }, + { // Entry 628 + 0x1.p-57, + 0x1.p-149, + (int)92 + }, + { // Entry 629 + 0x1.p-56, + 0x1.p-149, + (int)93 + }, + { // Entry 630 + 0x1.p-55, + 0x1.p-149, + (int)94 + }, + { // Entry 631 + 0x1.p-54, + 0x1.p-149, + (int)95 + }, + { // Entry 632 + 0x1.p-53, + 0x1.p-149, + (int)96 + }, + { // Entry 633 + 0x1.p-52, + 0x1.p-149, + (int)97 + }, + { // Entry 634 + 0x1.p-51, + 0x1.p-149, + (int)98 + }, + { // Entry 635 + 0x1.p-50, + 0x1.p-149, + (int)99 + }, + { // Entry 636 + 0x1.p-49, + 0x1.p-149, + (int)100 + }, + { // Entry 637 + 0x1.p-48, + 0x1.p-149, + (int)101 + }, + { // Entry 638 + 0x1.p-47, + 0x1.p-149, + (int)102 + }, + { // Entry 639 + 0x1.p-46, + 0x1.p-149, + (int)103 + }, + { // Entry 640 + 0x1.p-45, + 0x1.p-149, + (int)104 + }, + { // Entry 641 + 0x1.p-44, + 0x1.p-149, + (int)105 + }, + { // Entry 642 + 0x1.p-43, + 0x1.p-149, + (int)106 + }, + { // Entry 643 + 0x1.p-42, + 0x1.p-149, + (int)107 + }, + { // Entry 644 + 0x1.p-41, + 0x1.p-149, + (int)108 + }, + { // Entry 645 + 0x1.p-40, + 0x1.p-149, + (int)109 + }, + { // Entry 646 + 0x1.p-39, + 0x1.p-149, + (int)110 + }, + { // Entry 647 + 0x1.p-38, + 0x1.p-149, + (int)111 + }, + { // Entry 648 + 0x1.p-37, + 0x1.p-149, + (int)112 + }, + { // Entry 649 + 0x1.p-36, + 0x1.p-149, + (int)113 + }, + { // Entry 650 + 0x1.p-35, + 0x1.p-149, + (int)114 + }, + { // Entry 651 + 0x1.p-34, + 0x1.p-149, + (int)115 + }, + { // Entry 652 + 0x1.p-33, + 0x1.p-149, + (int)116 + }, + { // Entry 653 + 0x1.p-32, + 0x1.p-149, + (int)117 + }, + { // Entry 654 + 0x1.p-31, + 0x1.p-149, + (int)118 + }, + { // Entry 655 + 0x1.p-30, + 0x1.p-149, + (int)119 + }, + { // Entry 656 + 0x1.p-29, + 0x1.p-149, + (int)120 + }, + { // Entry 657 + 0x1.p-28, + 0x1.p-149, + (int)121 + }, + { // Entry 658 + 0x1.p-27, + 0x1.p-149, + (int)122 + }, + { // Entry 659 + 0x1.p-26, + 0x1.p-149, + (int)123 + }, + { // Entry 660 + 0x1.p-25, + 0x1.p-149, + (int)124 + }, + { // Entry 661 + 0x1.p-24, + 0x1.p-149, + (int)125 + }, + { // Entry 662 + 0x1.p-23, + 0x1.p-149, + (int)126 + }, + { // Entry 663 + 0x1.p-22, + 0x1.p-149, + (int)127 + }, + { // Entry 664 + 0x1.p-21, + 0x1.p-149, + (int)128 + }, + { // Entry 665 + 0x1.p-20, + 0x1.p-149, + (int)129 + }, + { // Entry 666 + 0x1.p-19, + 0x1.p-149, + (int)130 + }, + { // Entry 667 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + (int)0 + }, + { // Entry 668 + 0x1.fffffcp-126, + 0x1.fffffcp-127, + (int)1 + }, + { // Entry 669 + 0x1.fffffcp-125, + 0x1.fffffcp-127, + (int)2 + }, + { // Entry 670 + 0x1.fffffcp-124, + 0x1.fffffcp-127, + (int)3 + }, + { // Entry 671 + 0x1.fffffcp-123, + 0x1.fffffcp-127, + (int)4 + }, + { // Entry 672 + 0x1.fffffcp-122, + 0x1.fffffcp-127, + (int)5 + }, + { // Entry 673 + 0x1.fffffcp-121, + 0x1.fffffcp-127, + (int)6 + }, + { // Entry 674 + 0x1.fffffcp-120, + 0x1.fffffcp-127, + (int)7 + }, + { // Entry 675 + 0x1.fffffcp-119, + 0x1.fffffcp-127, + (int)8 + }, + { // Entry 676 + 0x1.fffffcp-118, + 0x1.fffffcp-127, + (int)9 + }, + { // Entry 677 + 0x1.fffffcp-117, + 0x1.fffffcp-127, + (int)10 + }, + { // Entry 678 + 0x1.fffffcp-116, + 0x1.fffffcp-127, + (int)11 + }, + { // Entry 679 + 0x1.fffffcp-115, + 0x1.fffffcp-127, + (int)12 + }, + { // Entry 680 + 0x1.fffffcp-114, + 0x1.fffffcp-127, + (int)13 + }, + { // Entry 681 + 0x1.fffffcp-113, + 0x1.fffffcp-127, + (int)14 + }, + { // Entry 682 + 0x1.fffffcp-112, + 0x1.fffffcp-127, + (int)15 + }, + { // Entry 683 + 0x1.fffffcp-111, + 0x1.fffffcp-127, + (int)16 + }, + { // Entry 684 + 0x1.fffffcp-110, + 0x1.fffffcp-127, + (int)17 + }, + { // Entry 685 + 0x1.fffffcp-109, + 0x1.fffffcp-127, + (int)18 + }, + { // Entry 686 + 0x1.fffffcp-108, + 0x1.fffffcp-127, + (int)19 + }, + { // Entry 687 + 0x1.fffffcp-107, + 0x1.fffffcp-127, + (int)20 + }, + { // Entry 688 + 0x1.fffffcp-106, + 0x1.fffffcp-127, + (int)21 + }, + { // Entry 689 + 0x1.fffffcp-105, + 0x1.fffffcp-127, + (int)22 + }, + { // Entry 690 + 0x1.fffffcp-104, + 0x1.fffffcp-127, + (int)23 + }, + { // Entry 691 + 0x1.fffffcp-103, + 0x1.fffffcp-127, + (int)24 + }, + { // Entry 692 + 0x1.fffffcp-102, + 0x1.fffffcp-127, + (int)25 + }, + { // Entry 693 + 0x1.fffffcp-101, + 0x1.fffffcp-127, + (int)26 + }, + { // Entry 694 + 0x1.fffffcp-100, + 0x1.fffffcp-127, + (int)27 + }, + { // Entry 695 + 0x1.fffffcp-99, + 0x1.fffffcp-127, + (int)28 + }, + { // Entry 696 + 0x1.fffffcp-98, + 0x1.fffffcp-127, + (int)29 + }, + { // Entry 697 + 0x1.fffffcp-97, + 0x1.fffffcp-127, + (int)30 + }, + { // Entry 698 + 0x1.fffffcp-96, + 0x1.fffffcp-127, + (int)31 + }, + { // Entry 699 + 0x1.fffffcp-95, + 0x1.fffffcp-127, + (int)32 + }, + { // Entry 700 + 0x1.fffffcp-94, + 0x1.fffffcp-127, + (int)33 + }, + { // Entry 701 + 0x1.fffffcp-93, + 0x1.fffffcp-127, + (int)34 + }, + { // Entry 702 + 0x1.fffffcp-92, + 0x1.fffffcp-127, + (int)35 + }, + { // Entry 703 + 0x1.fffffcp-91, + 0x1.fffffcp-127, + (int)36 + }, + { // Entry 704 + 0x1.fffffcp-90, + 0x1.fffffcp-127, + (int)37 + }, + { // Entry 705 + 0x1.fffffcp-89, + 0x1.fffffcp-127, + (int)38 + }, + { // Entry 706 + 0x1.fffffcp-88, + 0x1.fffffcp-127, + (int)39 + }, + { // Entry 707 + 0x1.fffffcp-87, + 0x1.fffffcp-127, + (int)40 + }, + { // Entry 708 + 0x1.fffffcp-86, + 0x1.fffffcp-127, + (int)41 + }, + { // Entry 709 + 0x1.fffffcp-85, + 0x1.fffffcp-127, + (int)42 + }, + { // Entry 710 + 0x1.fffffcp-84, + 0x1.fffffcp-127, + (int)43 + }, + { // Entry 711 + 0x1.fffffcp-83, + 0x1.fffffcp-127, + (int)44 + }, + { // Entry 712 + 0x1.fffffcp-82, + 0x1.fffffcp-127, + (int)45 + }, + { // Entry 713 + 0x1.fffffcp-81, + 0x1.fffffcp-127, + (int)46 + }, + { // Entry 714 + 0x1.fffffcp-80, + 0x1.fffffcp-127, + (int)47 + }, + { // Entry 715 + 0x1.fffffcp-79, + 0x1.fffffcp-127, + (int)48 + }, + { // Entry 716 + 0x1.fffffcp-78, + 0x1.fffffcp-127, + (int)49 + }, + { // Entry 717 + 0x1.fffffcp-77, + 0x1.fffffcp-127, + (int)50 + }, + { // Entry 718 + 0x1.fffffcp-76, + 0x1.fffffcp-127, + (int)51 + }, + { // Entry 719 + 0x1.fffffcp-75, + 0x1.fffffcp-127, + (int)52 + }, + { // Entry 720 + 0x1.fffffcp-74, + 0x1.fffffcp-127, + (int)53 + }, + { // Entry 721 + 0x1.fffffcp-73, + 0x1.fffffcp-127, + (int)54 + }, + { // Entry 722 + 0x1.fffffcp-72, + 0x1.fffffcp-127, + (int)55 + }, + { // Entry 723 + 0x1.fffffcp-71, + 0x1.fffffcp-127, + (int)56 + }, + { // Entry 724 + 0x1.fffffcp-70, + 0x1.fffffcp-127, + (int)57 + }, + { // Entry 725 + 0x1.fffffcp-69, + 0x1.fffffcp-127, + (int)58 + }, + { // Entry 726 + 0x1.fffffcp-68, + 0x1.fffffcp-127, + (int)59 + }, + { // Entry 727 + 0x1.fffffcp-67, + 0x1.fffffcp-127, + (int)60 + }, + { // Entry 728 + 0x1.fffffcp-66, + 0x1.fffffcp-127, + (int)61 + }, + { // Entry 729 + 0x1.fffffcp-65, + 0x1.fffffcp-127, + (int)62 + }, + { // Entry 730 + 0x1.fffffcp-64, + 0x1.fffffcp-127, + (int)63 + }, + { // Entry 731 + 0x1.fffffcp-63, + 0x1.fffffcp-127, + (int)64 + }, + { // Entry 732 + 0x1.fffffcp-62, + 0x1.fffffcp-127, + (int)65 + }, + { // Entry 733 + 0x1.fffffcp-61, + 0x1.fffffcp-127, + (int)66 + }, + { // Entry 734 + 0x1.fffffcp-60, + 0x1.fffffcp-127, + (int)67 + }, + { // Entry 735 + 0x1.fffffcp-59, + 0x1.fffffcp-127, + (int)68 + }, + { // Entry 736 + 0x1.fffffcp-58, + 0x1.fffffcp-127, + (int)69 + }, + { // Entry 737 + 0x1.fffffcp-57, + 0x1.fffffcp-127, + (int)70 + }, + { // Entry 738 + 0x1.fffffcp-56, + 0x1.fffffcp-127, + (int)71 + }, + { // Entry 739 + 0x1.fffffcp-55, + 0x1.fffffcp-127, + (int)72 + }, + { // Entry 740 + 0x1.fffffcp-54, + 0x1.fffffcp-127, + (int)73 + }, + { // Entry 741 + 0x1.fffffcp-53, + 0x1.fffffcp-127, + (int)74 + }, + { // Entry 742 + 0x1.fffffcp-52, + 0x1.fffffcp-127, + (int)75 + }, + { // Entry 743 + 0x1.fffffcp-51, + 0x1.fffffcp-127, + (int)76 + }, + { // Entry 744 + 0x1.fffffcp-50, + 0x1.fffffcp-127, + (int)77 + }, + { // Entry 745 + 0x1.fffffcp-49, + 0x1.fffffcp-127, + (int)78 + }, + { // Entry 746 + 0x1.fffffcp-48, + 0x1.fffffcp-127, + (int)79 + }, + { // Entry 747 + 0x1.fffffcp-47, + 0x1.fffffcp-127, + (int)80 + }, + { // Entry 748 + 0x1.fffffcp-46, + 0x1.fffffcp-127, + (int)81 + }, + { // Entry 749 + 0x1.fffffcp-45, + 0x1.fffffcp-127, + (int)82 + }, + { // Entry 750 + 0x1.fffffcp-44, + 0x1.fffffcp-127, + (int)83 + }, + { // Entry 751 + 0x1.fffffcp-43, + 0x1.fffffcp-127, + (int)84 + }, + { // Entry 752 + 0x1.fffffcp-42, + 0x1.fffffcp-127, + (int)85 + }, + { // Entry 753 + 0x1.fffffcp-41, + 0x1.fffffcp-127, + (int)86 + }, + { // Entry 754 + 0x1.fffffcp-40, + 0x1.fffffcp-127, + (int)87 + }, + { // Entry 755 + 0x1.fffffcp-39, + 0x1.fffffcp-127, + (int)88 + }, + { // Entry 756 + 0x1.fffffcp-38, + 0x1.fffffcp-127, + (int)89 + }, + { // Entry 757 + 0x1.fffffcp-37, + 0x1.fffffcp-127, + (int)90 + }, + { // Entry 758 + 0x1.fffffcp-36, + 0x1.fffffcp-127, + (int)91 + }, + { // Entry 759 + 0x1.fffffcp-35, + 0x1.fffffcp-127, + (int)92 + }, + { // Entry 760 + 0x1.fffffcp-34, + 0x1.fffffcp-127, + (int)93 + }, + { // Entry 761 + 0x1.fffffcp-33, + 0x1.fffffcp-127, + (int)94 + }, + { // Entry 762 + 0x1.fffffcp-32, + 0x1.fffffcp-127, + (int)95 + }, + { // Entry 763 + 0x1.fffffcp-31, + 0x1.fffffcp-127, + (int)96 + }, + { // Entry 764 + 0x1.fffffcp-30, + 0x1.fffffcp-127, + (int)97 + }, + { // Entry 765 + 0x1.fffffcp-29, + 0x1.fffffcp-127, + (int)98 + }, + { // Entry 766 + 0x1.fffffcp-28, + 0x1.fffffcp-127, + (int)99 + }, + { // Entry 767 + 0x1.fffffcp-27, + 0x1.fffffcp-127, + (int)100 + }, + { // Entry 768 + 0x1.fffffcp-26, + 0x1.fffffcp-127, + (int)101 + }, + { // Entry 769 + 0x1.fffffcp-25, + 0x1.fffffcp-127, + (int)102 + }, + { // Entry 770 + 0x1.fffffcp-24, + 0x1.fffffcp-127, + (int)103 + }, + { // Entry 771 + 0x1.fffffcp-23, + 0x1.fffffcp-127, + (int)104 + }, + { // Entry 772 + 0x1.fffffcp-22, + 0x1.fffffcp-127, + (int)105 + }, + { // Entry 773 + 0x1.fffffcp-21, + 0x1.fffffcp-127, + (int)106 + }, + { // Entry 774 + 0x1.fffffcp-20, + 0x1.fffffcp-127, + (int)107 + }, + { // Entry 775 + 0x1.fffffcp-19, + 0x1.fffffcp-127, + (int)108 + }, + { // Entry 776 + 0x1.fffffcp-18, + 0x1.fffffcp-127, + (int)109 + }, + { // Entry 777 + 0x1.fffffcp-17, + 0x1.fffffcp-127, + (int)110 + }, + { // Entry 778 + 0x1.fffffcp-16, + 0x1.fffffcp-127, + (int)111 + }, + { // Entry 779 + 0x1.fffffcp-15, + 0x1.fffffcp-127, + (int)112 + }, + { // Entry 780 + 0x1.fffffcp-14, + 0x1.fffffcp-127, + (int)113 + }, + { // Entry 781 + 0x1.fffffcp-13, + 0x1.fffffcp-127, + (int)114 + }, + { // Entry 782 + 0x1.fffffcp-12, + 0x1.fffffcp-127, + (int)115 + }, + { // Entry 783 + 0x1.fffffcp-11, + 0x1.fffffcp-127, + (int)116 + }, + { // Entry 784 + 0x1.fffffcp-10, + 0x1.fffffcp-127, + (int)117 + }, + { // Entry 785 + 0x1.fffffcp-9, + 0x1.fffffcp-127, + (int)118 + }, + { // Entry 786 + 0x1.fffffcp-8, + 0x1.fffffcp-127, + (int)119 + }, + { // Entry 787 + 0x1.fffffcp-7, + 0x1.fffffcp-127, + (int)120 + }, + { // Entry 788 + 0x1.fffffcp-6, + 0x1.fffffcp-127, + (int)121 + }, + { // Entry 789 + 0x1.fffffcp-5, + 0x1.fffffcp-127, + (int)122 + }, + { // Entry 790 + 0x1.fffffcp-4, + 0x1.fffffcp-127, + (int)123 + }, + { // Entry 791 + 0x1.fffffcp-3, + 0x1.fffffcp-127, + (int)124 + }, + { // Entry 792 + 0x1.fffffcp-2, + 0x1.fffffcp-127, + (int)125 + }, + { // Entry 793 + 0x1.fffffcp-1, + 0x1.fffffcp-127, + (int)126 + }, + { // Entry 794 + 0x1.fffffcp0, + 0x1.fffffcp-127, + (int)127 + }, + { // Entry 795 + 0x1.fffffcp1, + 0x1.fffffcp-127, + (int)128 + }, + { // Entry 796 + 0x1.fffffcp2, + 0x1.fffffcp-127, + (int)129 + }, + { // Entry 797 + 0x1.fffffcp3, + 0x1.fffffcp-127, + (int)130 + }, + { // Entry 798 + 0x1.p0, + 0x1.p-149, + (int)149 + }, + { // Entry 799 + 0x1.p-1, + 0x1.p-149, + (int)148 + }, + { // Entry 800 + 0x1.fffffcp22, + 0x1.fffffcp-127, + (int)149 + }, + { // Entry 801 + 0x1.fffffcp21, + 0x1.fffffcp-127, + (int)148 + }, + { // Entry 802 + 0x1.p-126, + 0x1.p-149, + (int)23 + }, + { // Entry 803 + 0x1.p-127, + 0x1.p-149, + (int)22 + }, + { // Entry 804 + 0x1.fffffcp-104, + 0x1.fffffcp-127, + (int)23 + }, + { // Entry 805 + 0x1.fffffcp-105, + 0x1.fffffcp-127, + (int)22 + }, + { // Entry 806 + 0x1.p-149, + 0x1.p-149, + (int)0 + }, + { // Entry 807 + 0x1.p-148, + 0x1.p-149, + (int)1 + }, + { // Entry 808 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + (int)0 + }, + { // Entry 809 + 0x1.fffffcp-126, + 0x1.fffffcp-127, + (int)1 + }, + { // Entry 810 + 0.0, + 0.0f, + (int)0 + }, + { // Entry 811 + -0.0, + -0.0f, + (int)0 + }, + { // Entry 812 + 0.0, + 0.0f, + (int)1 + }, + { // Entry 813 + -0.0, + -0.0f, + (int)1 + }, + { // Entry 814 + 0.0, + 0.0f, + (int)-1 + }, + { // Entry 815 + -0.0, + -0.0f, + (int)-1 + }, + { // Entry 816 + 0.0, + 0.0f, + (int)127 + }, + { // Entry 817 + -0.0, + -0.0f, + (int)127 + }, + { // Entry 818 + 0.0, + 0.0f, + (int)-127 + }, + { // Entry 819 + -0.0, + -0.0f, + (int)-127 + }, + { // Entry 820 + HUGE_VALF, + HUGE_VALF, + (int)0 + }, + { // Entry 821 + 0x1.fffffep127, + 0x1.fffffep127, + (int)0 + }, + { // Entry 822 + 0x1.p-126, + 0x1.p-126, + (int)0 + }, + { // Entry 823 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + (int)0 + }, + { // Entry 824 + 0x1.p-149, + 0x1.p-149, + (int)0 + }, + { // Entry 825 + -0x1.p-149, + -0x1.p-149, + (int)0 + }, + { // Entry 826 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + (int)0 + }, + { // Entry 827 + -0x1.p-126, + -0x1.p-126, + (int)0 + }, + { // Entry 828 + -0x1.fffffep127, + -0x1.fffffep127, + (int)0 + }, + { // Entry 829 + -HUGE_VALF, + -HUGE_VALF, + (int)0 + }, + { // Entry 830 + HUGE_VALF, + HUGE_VALF, + (int)1 + }, + { // Entry 831 + -HUGE_VALF, + -HUGE_VALF, + (int)1 + }, + { // Entry 832 + HUGE_VALF, + HUGE_VALF, + (int)-1 + }, + { // Entry 833 + -HUGE_VALF, + -HUGE_VALF, + (int)-1 + }, + { // Entry 834 + HUGE_VALF, + HUGE_VALF, + (int)127 + }, + { // Entry 835 + -HUGE_VALF, + -HUGE_VALF, + (int)127 + }, + { // Entry 836 + HUGE_VALF, + HUGE_VALF, + (int)-127 + }, + { // Entry 837 + -HUGE_VALF, + -HUGE_VALF, + (int)-127 + }, + { // Entry 838 + HUGE_VALF, + 0x1.fffffep127, + (int)1 + }, + { // Entry 839 + HUGE_VALF, + 0x1.fffffep127, + (int)127 + }, + { // Entry 840 + -HUGE_VALF, + -0x1.fffffep127, + (int)1 + }, + { // Entry 841 + -HUGE_VALF, + -0x1.fffffep127, + (int)127 + }, + { // Entry 842 + HUGE_VALF, + 0x1.p-126, + (int)40000 + }, + { // Entry 843 + HUGE_VALF, + 0x1.p-149, + (int)40000 + }, + { // Entry 844 + -HUGE_VALF, + -0x1.p-126, + (int)40000 + }, + { // Entry 845 + -HUGE_VALF, + -0x1.p-149, + (int)40000 + }, + { // Entry 846 + 0x1.p-127, + 0x1.p-126, + (int)-1 + }, + { // Entry 847 + 0x1.fffffcp-128, + 0x1.fffffcp-127, + (int)-1 + }, + { // Entry 848 + 0.0f, + 0x1.p-149, + (int)-1 + }, + { // Entry 849 + -0.0f, + -0x1.p-149, + (int)-1 + }, + { // Entry 850 + -0x1.fffffcp-128, + -0x1.fffffcp-127, + (int)-1 + }, + { // Entry 851 + -0x1.p-127, + -0x1.p-126, + (int)-1 + }, + { // Entry 852 + 0.0f, + 0x1.fffffep127, + (int)-40000 + }, + { // Entry 853 + -0.0f, + -0x1.fffffep127, + (int)-40000 + } +}; diff --git a/tests/math_data/log10_intel_data.h b/tests/math_data/log10_intel_data.h new file mode 100644 index 000000000..ae8a9bd2d --- /dev/null +++ b/tests/math_data/log10_intel_data.h @@ -0,0 +1,1474 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_log10_intel_data[] = { + { // Entry 0 + -0x1.a7d9a8edb47be8052ee10d61f72bedb3p3, + 0x1.0000000000001p-44 + }, + { // Entry 1 + -0x1.b64cb76a2c1767fe0cb381da5b9ce962p6, + 0x1.0000000000001p-364 + }, + { // Entry 2 + -0x1.ce61cf8e9227b7ffbbc2258f06b00848p-1, + 0x1.000000007p-3 + }, + { // Entry 3 + -0x1.ce61cf8e9227b7ffd109efcb25d89632p0, + 0x1.00000000ep-6 + }, + { // Entry 4 + 0x1.dd4f85658431780003c8d7bebe51f836p-33, + 0x1.0000000225863p0 + }, + { // Entry 5 + -0x1.815182473f60d80043383683153332aap3, + 0x1.0000006p-40 + }, + { // Entry 6 + -0x1.c4bfc5e08f300001961133d67a8ae8f8p5, + 0x1.000001cp-188 + }, + { // Entry 7 + -0x1.3428e5a6db26b002262970cb294f81p0, + 0x1.00380p-4 + }, + { // Entry 8 + -0x1.8a593abb7a102800f94e99ea178864eep7, + 0x1.00380p-655 + }, + { // Entry 9 + 0x1.e1a95d2d9ba1dfa58b2f8e5fdf0a1b54p4, + 0x1.0080402010080p100 + }, + { // Entry 10 + 0x1.fdc9fc7b9d3258675b494256b7928fc6p-11, + 0x1.0092e4b92e4a0p0 + }, + { // Entry 11 + 0x1.159c1712e74c68277fba58fe711f8027p-10, + 0x1.00ap0 + }, + { // Entry 12 + 0x1.bd94e520279af862fe39c005f4682635p-10, + 0x1.01010p0 + }, + { // Entry 13 + 0x1.828f82071564e84adb4af8ee9eed7b5ep-9, + 0x1.01be8f10cdap0 + }, + { // Entry 14 + 0x1.9fb8cdcda6c2645e174538ea88aed24ap-9, + 0x1.01e05e9614213p0 + }, + { // Entry 15 + 0x1.a37a0053a01f959dff9d7ed8c0738223p-9, + 0x1.01e4b95a8d930p0 + }, + { // Entry 16 + 0x1.a605801cb85f27525bcda3da5f201ad1p-9, + 0x1.01e7acfc057dap0 + }, + { // Entry 17 + 0x1.a619cc7168fac569791c99d75180265dp-9, + 0x1.01e7c4870a56dp0 + }, + { // Entry 18 + 0x1.bafb8ddcf618275fe4ba979af560a660p-9, + 0x1.01fffe0p0 + }, + { // Entry 19 + 0x1.cf3f4e32847f4ffcdca9e1a8a08a4547p0, + 0x1.020p6 + }, + { // Entry 20 + 0x1.bafd4774dbc9b71fc01c9b281b1290d1p-9, + 0x1.020000006p0 + }, + { // Entry 21 + 0x1.bbaa41582bd4b75516bf1e86eef4bba8p-9, + 0x1.0200c8b461357p0 + }, + { // Entry 22 + 0x1.ec0d5a07492628986cc18f5d6a668867p-9, + 0x1.0238f392a2110p0 + }, + { // Entry 23 + 0x1.4c9795fd1f7e88009e3273bf7835f084p-7, + 0x1.060dae8131baap0 + }, + { // Entry 24 + 0x1.78b4ee43af1c080139a43926058a6e46p-7, + 0x1.06ddf6ab94edcp0 + }, + { // Entry 25 + -0x1.93ca96452c85680041ebe338f63d139ap2, + 0x1.076899d38cc30p-21 + }, + { // Entry 26 + 0x1.ab09f93221f40000194c663bebd78f55p-7, + 0x1.07cc640f96a18p0 + }, + { // Entry 27 + 0x1.6671b365d15bb76f5080cc3658e2519ep-6, + 0x1.0d39f5fc24fa3p0 + }, + { // Entry 28 + 0x1.671a9b1bc6da7fffc947cfdb4dd24e3ap-6, + 0x1.0d405a1bfe7p0 + }, + { // Entry 29 + 0x1.dd9de2ebee648801272900e785c996b3p-6, + 0x1.11c602d8a1b64p0 + }, + { // Entry 30 + 0x1.4b55b84c74ca87ff3d23b3b83347c50fp-1, + 0x1.1c0p2 + }, + { // Entry 31 + -0x1.9897e85148d75fffff988e06dd8eae5ep4, + 0x1.1f8b0260ccc08p-85 + }, + { // Entry 32 + -0x1.ffbfc2bbc780375837c4b0b84f38a14ap-3, + 0x1.2p-1 + }, + { // Entry 33 + 0x1.de288434c35c582817ddb245949a59a7p-5, + 0x1.24d3540217b15p0 + }, + { // Entry 34 + -0x1.ee30e065377edd211ae67f49d114a8dep-3, + 0x1.25bde8b09bc9fp-1 + }, + { // Entry 35 + -0x1.bef28412a9d80800871c59a8425d3aa6p0, + 0x1.262p-6 + }, + { // Entry 36 + 0x1.f25d629171aaeb2276907167a9aecd6ep-5, + 0x1.267e4cfc99f93p0 + }, + { // Entry 37 + -0x1.9080890e2f1798003a7f3166289a2555p2, + 0x1.288p-21 + }, + { // Entry 38 + -0x1.e561065b019c7c8d498e8c78464330bap-3, + 0x1.28aa9f2515f87p-1 + }, + { // Entry 39 + -0x1.acdc65a935a5e7fbeb2a0414dae29db6p-1, + 0x1.29a74a135d178p-3 + }, + { // Entry 40 + -0x1.ef0c55090466e7fc5d2be8b017aa1eb5p4, + 0x1.29ba33c33bb58p-103 + }, + { // Entry 41 + -0x1.d8d9a2cfb79d0b2ce6db09b403fbdef1p-3, + 0x1.2cep-1 + }, + { // Entry 42 + 0x1.44538ea06035a000000e7cc1825ca422p-4, + 0x1.33333353c89c5p0 + }, + { // Entry 43 + 0x1.p0, + 0x1.4p3 + }, + { // Entry 44 + 0x1.9c899ddb7cc3a80106bd92d9f30607adp-4, + 0x1.42d14b4da920cp0 + }, + { // Entry 45 + -0x1.7ddfc5b2002037feab4460e64664b09dp3, + 0x1.480p-40 + }, + { // Entry 46 + 0x1.a8eec6065bd99ffffff2293a34b1917dp-2, + 0x1.4cccccd6ceda7p1 + }, + { // Entry 47 + 0x1.d2b644665f10c7fffff2e1d2418998f5p-4, + 0x1.4ccccceca919dp0 + }, + { // Entry 48 + 0x1.d3bdb9847bf709c43457968ca6e28646p-4, + 0x1.4cfe1a8c30ed4p0 + }, + { // Entry 49 + 0x1.d6cf13653b91464319282088eeff4c97p-4, + 0x1.4d913e35aea4ep0 + }, + { // Entry 50 + -0x1.f1225ac4366237fdb303a0597a3c8f4ap-2, + 0x1.4ed318236c85ap-2 + }, + { // Entry 51 + 0x1.f37196430c2beec26b1c31bf38d57f48p-4, + 0x1.52faf510e022dp0 + }, + { // Entry 52 + 0x1.f38c0c8325d85ad659b2174a3ebf6f55p-4, + 0x1.530p0 + }, + { // Entry 53 + 0x1.ffedeac4d176f7d2cde344b7ec70f166p-4, + 0x1.555e30bbda69fp0 + }, + { // Entry 54 + 0x1.ef35aa1c6b1a77fd9de45a1e172b02c6p0, + 0x1.57ee98247d966p6 + }, + { // Entry 55 + -0x1.e280fe9b8cf857fdc3ad0dc812e58d1dp-2, + 0x1.5a05d853c77c9p-2 + }, + { // Entry 56 + -0x1.dae3311da4c40884648c41a830dfe372p-2, + 0x1.6p-2 + }, + { // Entry 57 + -0x1.cbac8ba352de3be2a5cca8fb96402862p-2, + 0x1.6c4p-2 + }, + { // Entry 58 + 0x1.d97edc6cb096a800000c666995420256p-2, + 0x1.7333334217b9ap1 + }, + { // Entry 59 + 0x1.4fb68838ccfa27ff2311eecb508d5928p-3, + 0x1.7563c3887db28p0 + }, + { // Entry 60 + 0x1.f8871c174778c7fff5731acf2ea4467cp0, + 0x1.76000000040p6 + }, + { // Entry 61 + -0x1.f2c14c2f6c5c9dbe7c8284b15fe01787p-4, + 0x1.82d0b42d0b428p-1 + }, + { // Entry 62 + -0x1.db1d990e111ee766e962104fbbf0f003p-4, + 0x1.87fd6da61c3dbp-1 + }, + { // Entry 63 + -0x1.88bdca024f32e80a1de6671b22560759p2, + 0x1.880p-21 + }, + { // Entry 64 + -0x1.d03b8ce6051c97fdd425647f3739d7a7p-4, + 0x1.8a653d99282aap-1 + }, + { // Entry 65 + -0x1.c2d826f6ad5fe8162592cc036e069cedp-4, + 0x1.8d6p-1 + }, + { // Entry 66 + -0x1.c02618e0447d27f9ebb51462d6978f25p-4, + 0x1.8dfa43fe5c91dp-1 + }, + { // Entry 67 + -0x1.eeaa19fc34f817fda340aeb7b652075bp3, + 0x1.915c782e20b7cp-52 + }, + { // Entry 68 + -0x1.977d95879da08ffffff16749a9bc1021p-2, + 0x1.999999f61e1aap-2 + }, + { // Entry 69 + -0x1.65df6512f76d17ffffefc71689395abep-1, + 0x1.99999a5944542p-3 + }, + { // Entry 70 + -0x1.65df64c430555800001074b613f83508p-1, + 0x1.99999aea617cep-3 + }, + { // Entry 71 + -0x1.fffffec8e4ad680000105809fee7c68cp-1, + 0x1.99999bd6ae073p-4 + }, + { // Entry 72 + 0x1.b88245f86df8afffff2313af8a910f6bp0, + 0x1.a48f51c27f3efp5 + }, + { // Entry 73 + 0x1.c03ec805c52c92447268d7949588e608p-3, + 0x1.a7cp0 + }, + { // Entry 74 + 0x1.e37abe09539ad7fdb2cbb9c1975d1fc2p5, + 0x1.b1af286bca208p200 + }, + { // Entry 75 + 0x1.d7f59ab2bcd057ffffffb4bb61effb6fp-3, + 0x1.b33333398e9e6p0 + }, + { // Entry 76 + 0x1.d7f59ae8908aa7ffffef7f3f17823162p-3, + 0x1.b3333353e507cp0 + }, + { // Entry 77 + 0x1.e67b44ba485188898012c0536c604a15p-3, + 0x1.ba5d2e974bap0 + }, + { // Entry 78 + -0x1.d51e74e2235f9001c902f49b3d39be88p-5, + 0x1.c0cp-1 + }, + { // Entry 79 + -0x1.c250b537e74bc8265c7b1b0eb3cb7541p-5, + 0x1.c320c8320c832p-1 + }, + { // Entry 80 + 0x1.c1497aa3ee77f7fcf0bc96c7418f04b6p0, + 0x1.c71c71c71c71ep5 + }, + { // Entry 81 + 0x1.78d835115ae9f7ff0c0680783889e6a1p0, + 0x1.da6d369b4dap4 + }, + { // Entry 82 + -0x1.ee844d23120e6ff4b9d27f8ce30b3cc2p-6, + 0x1.ddap-1 + }, + { // Entry 83 + -0x1.af7bceba1050d7feead6ef91625b91dfp-6, + 0x1.e1dff861891p-1 + }, + { // Entry 84 + 0x1.e3dbd09431d0d7fdf2755b85be8a1676p5, + 0x1.e3b21bc1779ecp200 + }, + { // Entry 85 + -0x1.7aea2aab13a0480729dec748658b34fdp-6, + 0x1.e572b95cae540p-1 + }, + { // Entry 86 + 0x1.c8de2fbafe18580003cdaa774a73d0c0p0, + 0x1.e739ce739ce70p5 + }, + { // Entry 87 + -0x1.0ce446e3ca10c004d63fb70fab6a26ffp-6, + 0x1.ed0340d0340d0p-1 + }, + { // Entry 88 + -0x1.fcf458f6faa4380097af1db4b2910c7dp-7, + 0x1.ee033092fe620p-1 + }, + { // Entry 89 + -0x1.fbe09900f2e9d7e3bbbe0bd455c92038p-7, + 0x1.ee0cc330cc347p-1 + }, + { // Entry 90 + -0x1.f9454ad8c58a6801723d48914bdbc81bp-7, + 0x1.ee23ee5df745dp-1 + }, + { // Entry 91 + 0x1.2c858a2326ced800dd3ed3ad03e0efedp-1, + 0x1.ee8p1 + }, + { // Entry 92 + 0x1.7f694cc35a4da800fb6e6f17a5903e17p1, + 0x1.eebbaeebbaee8p9 + }, + { // Entry 93 + -0x1.e2cfbb4934806fe698638d9325ce0de6p-7, + 0x1.eeebbaeebbaeep-1 + }, + { // Entry 94 + -0x1.c3d0837783cac8005374209e6248fb22p-7, + 0x1.f00000000008bp-1 + }, + { // Entry 95 + -0x1.51824c7587ecc4cae0ebe2a8eae894b0p-7, + 0x1.f3fffffffffffp-1 + }, + { // Entry 96 + -0x1.d0ef7d83c50a77fdf0a9df7625174df6p0, + 0x1.f46p-7 + }, + { // Entry 97 + -0x1.3cad2633010287ec521f3fb1b0e16c34p-7, + 0x1.f4bb83ff25408p-1 + }, + { // Entry 98 + -0x1.30260ecbe5e48801930721a2e427895ap-7, + 0x1.f52c691251919p-1 + }, + { // Entry 99 + 0x1.6937e0674dae37fec020473dcad8c7e5p7, + 0x1.f5a814afd69f4p599 + }, + { // Entry 100 + -0x1.f78887a8d70da00092ac096e0c2a748dp-8, + 0x1.f70588f144d4ep-1 + }, + { // Entry 101 + -0x1.f6f8472e06512801501371ceeb6902c1p-8, + 0x1.f708159aab0fep-1 + }, + { // Entry 102 + -0x1.c575bc711f57f7bcd5e65219b01c819cp-8, + 0x1.f7e849868c907p-1 + }, + { // Entry 103 + -0x1.c03a80ae608087bcec4b95b43cc7cf68p-8, + 0x1.f7fffffffff4cp-1 + }, + { // Entry 104 + 0x1.2d536e42845f97fe560fa7b450804b26p8, + 0x1.f9fe7f9fe7f9cp1000 + }, + { // Entry 105 + -0x1.f568e77ed84b1372c94cff5e7e38e985p-10, + 0x1.fdcp-1 + }, + { // Entry 106 + -0x1.be202babd38921235652db287907f634p-10, + 0x1.fdff6245a12f2p-1 + }, + { // Entry 107 + -0x1.bd96a1d7da0391520e1595e0904768ffp-10, + 0x1.fdffffffffffcp-1 + }, + { // Entry 108 + -0x1.bd96a1d7d9d9b63e5aa7d082a140d738p-10, + 0x1.fdfffffffffffp-1 + }, + { // Entry 109 + -0x1.bd27045bfd1e24767eb1fadda38b82e2p-11, + 0x1.fefffffffffffp-1 + }, + { // Entry 110 + -0x1.bd27045bc77c779853b6fc7b419acb49p-11, + 0x1.ff000000001ecp-1 + }, + { // Entry 111 + -0x1.bd25e056b638d812a81d48bf2dd5c055p-11, + 0x1.ff0000a7c5b2ap-1 + }, + { // Entry 112 + -0x1.bd226529bffa7801b54d1e695f9cf46ap-11, + 0x1.ff0002a7c5b2ap-1 + }, + { // Entry 113 + -0x1.d8c1f8f29d862387133a7814cb061b6dp-12, + 0x1.ff77fffffffffp-1 + }, + { // Entry 114 + -0x1.7c85657289fbe8275c1971e953a6ae71p-12, + 0x1.ff9285e1ae9c8p-1 + }, + { // Entry 115 + -0x1.ea7ebec511a69b37b972d41a517cd884p-13, + 0x1.ffb96e5b96e40p-1 + }, + { // Entry 116 + -0x1.c4e293b148cec847b4e214c76642cd73p-13, + 0x1.ffbed73ec264ep-1 + }, + { // Entry 117 + -0x1.bcd37f1eb06ff7cc110a8bd0efc2804bp-13, + 0x1.ffbffffffffffp-1 + }, + { // Entry 118 + -0x1.bcd37f1eb000bbf841f514e78b0bec67p-13, + 0x1.ffcp-1 + }, + { // Entry 119 + -0x1.8536047fb9d4f3b5cba95cabacae22aep-13, + 0x1.ffc7fffffffffp-1 + }, + { // Entry 120 + 0x1.343573efa4c4c000047648d4f349dfcep-1, + 0x1.ffe4effffffffp1 + }, + { // Entry 121 + -0x1.85236427a08717efc89ebcb159b0b578p-16, + 0x1.fff8fffffffffp-1 + }, + { // Entry 122 + -0x1.e8df7421f041fffffe5b0949761ec657p5, + 0x1.fffa3bfffffffp-204 + }, + { // Entry 123 + -0x1.e2efbc1dc92337d7a679ab6c98fab739p-20, + 0x1.ffff74fffffffp-1 + }, + { // Entry 124 + -0x1.34413657816577fd436fcbc4aa32de88p-2, + 0x1.fffffe7ffffffp-2 + }, + { // Entry 125 + -0x1.d0ca51f95ac197fe1add64b6119cb454p7, + 0x1.ffffff3ffffffp-773 + }, + { // Entry 126 + -0x1.f018f15c0ab6094209fcfe083ebc306ep4, + 0x1.fffffffff1fffp-104 + }, + { // Entry 127 + 0x1.465107258d1d1800062fee82bffbff4cp6, + 0x1.fffffffff9fffp270 + }, + { // Entry 128 + -0x1.9a9adba646d8e7ff39ebe5c5b651ecbcp7, + 0x1.fffffffffdfffp-683 + }, + { // Entry 129 + -0x1.16c0f776836d8ffe515d679ed8a253b1p8, + 0x1.fffffffffdfffp-927 + }, + { // Entry 130 + 0x1.d59b56cd2f3cc80209ce8056d3477a08p7, + 0x1.fffffffffdfffp779 + }, + { // Entry 131 + -0x1.ce61cf8ef372f7fe03b197d05decff0ep-1, + 0x1.fffffffffff8fp-4 + }, + { // Entry 132 + -0x1.c85c8985c199c7fc14d958ba92e399dbp7, + 0x1.fffffffffffe0p-759 + }, + { // Entry 133 + -0x1.bcb7b1526e511ac160e1a3298010d96dp-52, + 0x1.ffffffffffff8p-1 + }, + { // Entry 134 + -0x1.34413509f7a00562d2bf0506ef44e3a5p-3, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 135 + -0x1.8e271da4056a43993fdb13487031fbd4p-4, + 0x1.995255f2d00abp-1 + }, + { // Entry 136 + -0x1.9762be26c2c57dcae0118e0cced6e75ap-5, + 0x1.c89ac57dac58ap-1 + }, + { // Entry 137 + -0x1.c694ace08e5124f7327cd5da1fc480f6p-8, + 0x1.f7e3350888a69p-1 + }, + { // Entry 138 + 0x1.064664d0dd47cb0784b117d2efb0afb2p-5, + 0x1.1395d249b27a4p0 + }, + { // Entry 139 + 0x1.158bee1e56be974c17844d0736925a83p-4, + 0x1.2b3a0a0f20a14p0 + }, + { // Entry 140 + 0x1.9cd10b008ddd739de9e6d843b8ff4092p-4, + 0x1.42de41d48ec84p0 + }, + { // Entry 141 + 0x1.0d42f84798b4be1db02431f73c710b5fp-3, + 0x1.5a827999fcef4p0 + }, + { // Entry 142 + 0x1.47f70647644a538dd717c3f0c99b4f52p-3, + 0x1.7226b15f6b164p0 + }, + { // Entry 143 + 0x1.7f08548e0992552054c82deff65c5a7ep-3, + 0x1.89cae924d93d4p0 + }, + { // Entry 144 + 0x1.b2e37bef02ca65a6b69ef0ef6045fca9p-3, + 0x1.a16f20ea47644p0 + }, + { // Entry 145 + 0x1.e3e31eb5585d6defbecf1003ed8586ddp-3, + 0x1.b91358afb58b4p0 + }, + { // Entry 146 + 0x1.0929d506851b759ac8b971a365bb53bfp-2, + 0x1.d0b7907523b24p0 + }, + { // Entry 147 + 0x1.1f3b144d2903aa0e15b5d3c67d53f91bp-2, + 0x1.e85bc83a91d94p0 + }, + { // Entry 148 + 0x1.34413509f79fef311f12b35816f922f0p-2, + 0x1.0p1 + }, + { // Entry 149 + -0x1.34413509f7a00562d2bf0506ef44e3a5p-3, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 150 + -0x1.edc7b28c1cdff646afa1bdcd4e6a02f0p-4, + 0x1.83e609263c011p-1 + }, + { // Entry 151 + -0x1.7af97358b9e0a424fa702e69d4ac3a8cp-4, + 0x1.9dc22be484456p-1 + }, + { // Entry 152 + -0x1.0f218eacb6487dd0c606c3e816e7c3dap-4, + 0x1.b79e4ea2cc89bp-1 + }, + { // Entry 153 + -0x1.52e84950d4c307d9bedea47d3987c01bp-5, + 0x1.d17a716114ce0p-1 + }, + { // Entry 154 + -0x1.2519b7f1cb3d94d33244a6c708ffaefcp-6, + 0x1.eb56941f5d125p-1 + }, + { // Entry 155 + 0x1.1f8102faa9fd301aa54cd13599ef1980p-8, + 0x1.02995b6ed2ab5p0 + }, + { // Entry 156 + 0x1.a30a9d609efc4751d9d20363fa852e63p-6, + 0x1.0f876ccdf6cd8p0 + }, + { // Entry 157 + 0x1.7706e100e01d4da13cc59446df5969d9p-5, + 0x1.1c757e2d1aefbp0 + }, + { // Entry 158 + 0x1.0a965ca3c59fa6843ec39c17298b1aaap-4, + 0x1.29638f8c3f11ep0 + }, + { // Entry 159 + 0x1.564b9e135d1f0f233bd67e02bc5bf6eap-4, + 0x1.3651a0eb63341p0 + }, + { // Entry 160 + 0x1.9ee993b80f2136ca6bfb66b9c7b25428p-4, + 0x1.433fb24a87564p0 + }, + { // Entry 161 + 0x1.e4ae53ebbcefbd04882f10aaa3de86b7p-4, + 0x1.502dc3a9ab787p0 + }, + { // Entry 162 + 0x1.13e87661d64f5246b5a8d69214746331p-3, + 0x1.5d1bd508cf9aap0 + }, + { // Entry 163 + 0x1.34413509f79fd8ff6b6661a93ead623bp-3, + 0x1.6a09e667f3bccp0 + }, + { // Entry 164 + -0x1.ffbfc2bbc780375837c4b0b84f38a14ap-4, + 0x1.8p-1 + }, + { // Entry 165 + -0x1.5634626b0211c48738b33f07d1594431p-4, + 0x1.a666666666666p-1 + }, + { // Entry 166 + -0x1.76d869b02a035a10797953f058b52ecap-5, + 0x1.cccccccccccccp-1 + }, + { // Entry 167 + -0x1.684bf7fda98a1c59efaac6272939dcd6p-7, + 0x1.f333333333332p-1 + }, + { // Entry 168 + 0x1.5b2a5ca1f47b15b644b33c640923bf35p-6, + 0x1.0ccccccccccccp0 + }, + { // Entry 169 + 0x1.a30a9d609efdd6812008dfbb8239bf8cp-5, + 0x1.1ffffffffffffp0 + }, + { // Entry 170 + 0x1.44538de3b27e4c8bcd11e934e41583aap-4, + 0x1.3333333333332p0 + }, + { // Entry 171 + 0x1.b02b728fb6168040e2c4e5e7fb3809b1p-4, + 0x1.4666666666665p0 + }, + { // Entry 172 + 0x1.0aec6e4a00fec3048feb505070bb4f14p-3, + 0x1.5999999999998p0 + }, + { // Entry 173 + 0x1.3b03499ffcc7d7b28a254f6122a6a4d4p-3, + 0x1.6cccccccccccbp0 + }, + { // Entry 174 + 0x1.68a288b60b7f789784b55146880d9ce1p-3, + 0x1.7fffffffffffep0 + }, + { // Entry 175 + 0.0, + 0x1.0p0 + }, + { // Entry 176 + 0x1.e1a5e2df92e9e5bcc08d3839a3e54697p4, + 0x1.0p100 + }, + { // Entry 177 + 0x1.e24f6e3fe3af5472f332ca85bdbb9d77p4, + 0x1.199999999999ap100 + }, + { // Entry 178 + 0x1.e2ea366d769c64c298e42c7b7a7f4693p4, + 0x1.3333333333334p100 + }, + { // Entry 179 + 0x1.e37899234efc355b9919ffe367a51209p4, + 0x1.4cccccccccccep100 + }, + { // Entry 180 + 0x1.e3fc6d39772e858d4b8607d59bb8d0ddp4, + 0x1.6666666666668p100 + }, + { // Entry 181 + 0x1.e47727f0ff00e5d66a0cd9d066e228c3p4, + 0x1.8000000000002p100 + }, + { // Entry 182 + 0x1.e4e9f6303263e5569760e25883a23773p4, + 0x1.999999999999cp100 + }, + { // Entry 183 + 0x1.e555ce14de677da58c6cbe260334cf1bp4, + 0x1.b333333333336p100 + }, + { // Entry 184 + 0x1.e5bb7b7ee2b364c38d849ed338fa804dp4, + 0x1.cccccccccccd0p100 + }, + { // Entry 185 + 0x1.e61ba9358eaaf702959b2a4bfffdca28p4, + 0x1.e66666666666ap100 + }, + { // Entry 186 + 0x1.e676e7b3bac865798509830704412b23p4, + 0x1.0p101 + }, + { // Entry 187 + 0x1.e1a5e2df92e9e5bcc08d3839a3e54697p5, + 0x1.0p200 + }, + { // Entry 188 + 0x1.e1faa88fbb4c9d17d9e0015fb0d07207p5, + 0x1.199999999999ap200 + }, + { // Entry 189 + 0x1.e2480ca684c3253facb8b25a8f324695p5, + 0x1.3333333333334p200 + }, + { // Entry 190 + 0x1.e28f3e0170f30d8c2cd39c0e85c52c50p5, + 0x1.4cccccccccccep200 + }, + { // Entry 191 + 0x1.e2d1280c850c35a50609a0079fcf0bbap5, + 0x1.6666666666668p200 + }, + { // Entry 192 + 0x1.e30e856848f565c9954d09050563b7adp5, + 0x1.8000000000002p200 + }, + { // Entry 193 + 0x1.e347ec87e2a6e589abf70d4913c3bf05p5, + 0x1.999999999999cp200 + }, + { // Entry 194 + 0x1.e37dd87a38a8b1b1267cfb2fd38d0ad9p5, + 0x1.b333333333336p200 + }, + { // Entry 195 + 0x1.e3b0af2f3acea5402708eb866e6fe372p5, + 0x1.cccccccccccd0p200 + }, + { // Entry 196 + 0x1.e3e0c60a90ca6e5fab143142d1f18860p5, + 0x1.e66666666666ap200 + }, + { // Entry 197 + 0x1.e40e6549a6d9259b22cb5da0541338ddp5, + 0x1.0p201 + }, + { // Entry 198 + 0x1.2d07adcbbbd22f95f8584324066f4c1ep8, + 0x1.0p1000 + }, + { // Entry 199 + 0x1.2d124681c0de86815b829c48c80cb18cp8, + 0x1.199999999999ap1000 + }, + { // Entry 200 + 0x1.2d1bf3049a0d578655ddb26823d8ec1ep8, + 0x1.3333333333334p1000 + }, + { // Entry 201 + 0x1.2d24d92ff793548fe5e10f9ea2ab48d5p8, + 0x1.4cccccccccccep1000 + }, + { // Entry 202 + 0x1.2d2d16715a1679930107d01dc5ec84c3p8, + 0x1.6666666666668p1000 + }, + { // Entry 203 + 0x1.2d34c21cd2939f9792f03d3d729f1a41p8, + 0x1.8000000000002p1000 + }, + { // Entry 204 + 0x1.2d3bef00c5c9cf8f95c57dc5f46b1b2cp8, + 0x1.999999999999cp1000 + }, + { // Entry 205 + 0x1.2d42ac7f108a091485163b82cc6444a6p8, + 0x1.b333333333336p1000 + }, + { // Entry 206 + 0x1.2d490755b0cec7866527b98d9fc09fbap8, + 0x1.cccccccccccd0p1000 + }, + { // Entry 207 + 0x1.2d4f0a311b8e40aa55a922452c30d457p8, + 0x1.e66666666666ap1000 + }, + { // Entry 208 + 0x1.2d54be18fe501791c4a007d0dc750a67p8, + 0x1.0p1001 + }, + { // Entry 209 + -0x1.bcb7bf382c6fb3df0029e1e6c04e5b04p-22, + 0x1.ffffep-1 + }, + { // Entry 210 + -0x1.287a794e24640de79fb5dd39033f1c3ap-23, + 0x1.fffff55555555p-1 + }, + { // Entry 211 + 0x1.287a731f2fe08fea55a78b1501306850p-23, + 0x1.0000055555555p0 + }, + { // Entry 212 + 0x1.bcb7a36cb15a8cec0c39b0a7cf2d7858p-22, + 0x1.00001p0 + }, + { // Entry 213 + -0x1.bcb7b155e7c045d88b2ccd879d00dedap-32, + 0x1.fffffff80p-1 + }, + { // Entry 214 + -0x1.287a7888aec95740a166efaf8756eaa1p-33, + 0x1.fffffffd55555p-1 + }, + { // Entry 215 + 0x1.287a719444b61daa0968ca1f55a6be9ap-33, + 0x1.0000000155555p0 + }, + { // Entry 216 + 0x1.bcb7b14ef4e1808ed1e940a65b2d5f0fp-32, + 0x1.000000040p0 + }, + { // Entry 217 + -0x1.bcb7b1526f2f3f0313ef120e2ab88e99p-42, + 0x1.fffffffffe0p-1 + }, + { // Entry 218 + -0x1.2883ba0aa61efb4b5ec5882d1426a118p-43, + 0x1.ffffffffff555p-1 + }, + { // Entry 219 + 0x1.2867ee8f909545d6cd4484a582495a1fp-43, + 0x1.0000000000555p0 + }, + { // Entry 220 + 0x1.bcb7b1526d728751c180c12b004dd665p-42, + 0x1.00000000010p0 + }, + { // Entry 221 + -0x1.bcb7b1526e511ac160e1a3298010d96dp-52, + 0x1.ffffffffffff8p-1 + }, + { // Entry 222 + -0x1.4d89c4fdd2bcba02454565e85cc46f5fp-53, + 0x1.ffffffffffffdp-1 + }, + { // Entry 223 + 0x1.bcb7b1526e50d544ad2cc1ecd3e2a249p-54, + 0x1.0000000000001p0 + }, + { // Entry 224 + 0x1.bcb7b1526e50ab93748d079547463ebfp-52, + 0x1.0000000000004p0 + }, + { // Entry 225 + 0x1.34413509f79fef2da5a350b33a574eb5p8, + 0x1.fffffffffffffp1023 + }, + { // Entry 226 + -0x1.434e6420f4373e5f05171d19e4184d25p8, + 0x1.0p-1074 + }, + { // Entry 227 + -0x1.34413509f7a02cb1a1f65baf60cb15dfp-3, + 0x1.6a09e667f3bcbp-1 + }, + { // Entry 228 + -0x1.34413509f7a00562d2bf0506ef44e3a5p-3, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 229 + -0x1.34413509f79fde140387ae5e7f7b691dp-3, + 0x1.6a09e667f3bcdp-1 + }, + { // Entry 230 + 0x1.34413509f79fb1b09c2f0b00cd273001p-3, + 0x1.6a09e667f3bcbp0 + }, + { // Entry 231 + 0x1.34413509f79fd8ff6b6661a93ead623bp-3, + 0x1.6a09e667f3bccp0 + }, + { // Entry 232 + 0x1.34413509f7a0004e3a9db851ae76dcc3p-3, + 0x1.6a09e667f3bcdp0 + }, + { // Entry 233 + -0x1.34413509f79ffd16dc9d46ca9e4a0d3cp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 234 + -0x1.34413509f79fef311f12b35816f922f0p-2, + 0x1.0p-1 + }, + { // Entry 235 + -0x1.34413509f79fd365a3fd8c7309a4d81dp-2, + 0x1.0000000000001p-1 + }, + { // Entry 236 + -0x1.ffbfc2bbc7808176d5526dc5cbf5abb0p-4, + 0x1.7ffffffffffffp-1 + }, + { // Entry 237 + -0x1.ffbfc2bbc780375837c4b0b84f38a14ap-4, + 0x1.8p-1 + }, + { // Entry 238 + -0x1.ffbfc2bbc77fed399a36f3aad59232c9p-4, + 0x1.8000000000001p-1 + }, + { // Entry 239 + 0x1.68a288b60b7f9da6d37c2fcd47f77008p-3, + 0x1.7ffffffffffffp0 + }, + { // Entry 240 + 0x1.68a288b60b7fc2b622430e540655f53bp-3, + 0x1.8p0 + }, + { // Entry 241 + 0x1.68a288b60b7fe7c57109ecdac3292c7bp-3, + 0x1.8000000000001p0 + }, + { // Entry 242 + 0x1.2817ce90842c0e5d9ca444ee93c2f2b2p-10, + 0x1.00aaaaaaaaaaap0 + }, + { // Entry 243 + 0x1.2817ce908447c75d5ca081d47714bc4cp-10, + 0x1.00aaaaaaaaaabp0 + }, + { // Entry 244 + 0x1.2817ce908463805d1c9cbeb89ffd7a98p-10, + 0x1.00aaaaaaaaaacp0 + }, + { // Entry 245 + 0x1.34413509f79fe83e404d699ed350adcap-1, + 0x1.fffffffffffffp1 + }, + { // Entry 246 + 0x1.34413509f79fef311f12b35816f922f0p-1, + 0x1.0p2 + }, + { // Entry 247 + 0x1.34413509f79ffd16dc9d46ca9da34859p-1, + 0x1.0000000000001p2 + }, + { // Entry 248 + 0x1.34413509f79fe14b61881fe58fa838a4p-2, + 0x1.fffffffffffffp0 + }, + { // Entry 249 + 0x1.34413509f79fef311f12b35816f922f0p-2, + 0x1.0p1 + }, + { // Entry 250 + 0x1.34413509f7a00afc9a27da3d244d6dc3p-2, + 0x1.0000000000001p1 + }, + { // Entry 251 + -0x1.bcb7b1526e50ea1d497c9f189e19715ep-55, + 0x1.fffffffffffffp-1 + }, + { // Entry 252 + 0.0, + 0x1.0p0 + }, + { // Entry 253 + 0x1.bcb7b1526e50d544ad2cc1ecd3e2a249p-54, + 0x1.0000000000001p0 + }, + { // Entry 254 + -0x1.34413509f79ffd16dc9d46ca9e4a0d3cp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 255 + -0x1.34413509f79fef311f12b35816f922f0p-2, + 0x1.0p-1 + }, + { // Entry 256 + -0x1.34413509f79fd365a3fd8c7309a4d81dp-2, + 0x1.0000000000001p-1 + }, + { // Entry 257 + -0x1.34413509f79ff623fdd7fd115aa19816p-1, + 0x1.fffffffffffffp-3 + }, + { // Entry 258 + -0x1.34413509f79fef311f12b35816f922f0p-1, + 0x1.0p-2 + }, + { // Entry 259 + -0x1.34413509f79fe14b61881fe5904efd86p-1, + 0x1.0000000000001p-2 + }, + { // Entry 260 + -0x1.ce61cf8ef36fedbc8d6156bd661e298ep-1, + 0x1.fffffffffffffp-4 + }, + { // Entry 261 + -0x1.ce61cf8ef36fe6c9ae9c0d042275b468p-1, + 0x1.0p-3 + }, + { // Entry 262 + -0x1.ce61cf8ef36fd8e3f11179919bcb8effp-1, + 0x1.0000000000001p-3 + }, + { // Entry 263 + -0x1.34413509f79ff2aa8e755834b8cd5d83p0, + 0x1.fffffffffffffp-5 + }, + { // Entry 264 + -0x1.34413509f79fef311f12b35816f922f0p0, + 0x1.0p-4 + }, + { // Entry 265 + -0x1.34413509f79fe83e404d699ed3a4103bp0, + 0x1.0000000000001p-4 + }, + { // Entry 266 + -0x1.8151824c7587ee76d63a050abe8ba63fp0, + 0x1.fffffffffffffp-6 + }, + { // Entry 267 + -0x1.8151824c7587eafd66d7602e1cb76bacp0, + 0x1.0p-5 + }, + { // Entry 268 + -0x1.8151824c7587e40a88121674d96258f7p0, + 0x1.0000000000001p-5 + }, + { // Entry 269 + -0x1.ce61cf8ef36fea431dfeb1e0c449eefbp0, + 0x1.fffffffffffffp-7 + }, + { // Entry 270 + -0x1.ce61cf8ef36fe6c9ae9c0d042275b468p0, + 0x1.0p-6 + }, + { // Entry 271 + -0x1.ce61cf8ef36fdfd6cfd6c34adf20a1b3p0, + 0x1.0000000000001p-6 + }, + { // Entry 272 + -0x1.0db90e68b8abf307b2e1af5b65041bdbp1, + 0x1.fffffffffffffp-8 + }, + { // Entry 273 + -0x1.0db90e68b8abf14afb305ced1419fe92p1, + 0x1.0p-7 + }, + { // Entry 274 + -0x1.0db90e68b8abedd18bcdb810726f7537p1, + 0x1.0000000000001p-7 + }, + { // Entry 275 + -0x1.34413509f79ff0edd6c405c667e34039p1, + 0x1.fffffffffffffp-9 + }, + { // Entry 276 + -0x1.34413509f79fef311f12b35816f922f0p1, + 0x1.0p-8 + }, + { // Entry 277 + -0x1.34413509f79febb7afb00e7b754e9995p1, + 0x1.0000000000001p-8 + }, + { // Entry 278 + -0x1.5ac95bab3693eed3faa65c316ac26497p1, + 0x1.fffffffffffffp-10 + }, + { // Entry 279 + -0x1.5ac95bab3693ed1742f509c319d8474ep1, + 0x1.0p-9 + }, + { // Entry 280 + -0x1.5ac95bab3693e99dd39264e6782dbdf3p1, + 0x1.0000000000001p-9 + }, + { // Entry 281 + -0x1.8151824c7587ecba1e88b29c6da188f5p1, + 0x1.fffffffffffffp-11 + }, + { // Entry 282 + -0x1.8151824c7587eafd66d7602e1cb76bacp1, + 0x1.0p-10 + }, + { // Entry 283 + -0x1.8151824c7587e783f774bb517b0ce252p1, + 0x1.0000000000001p-10 + }, + { // Entry 284 + -0x1.f4e9f6303263e66c8a2fb5dd763ef60fp1, + 0x1.fffffffffffffp-14 + }, + { // Entry 285 + -0x1.f4e9f6303263e4afd27e636f2554d8c6p1, + 0x1.0p-13 + }, + { // Entry 286 + -0x1.f4e9f6303263e136631bbe9283aa4f6cp1, + 0x1.0000000000001p-13 + }, + { // Entry 287 + -0x1.f4e9f6303263e66c8a2fb5dd763ef60fp1, + 0x1.fffffffffffffp-14 + }, + { // Entry 288 + -0x1.f4e9f6303263e4afd27e636f2554d8c6p1, + 0x1.0p-13 + }, + { // Entry 289 + -0x1.f4e9f6303263e136631bbe9283aa4f6cp1, + 0x1.0000000000001p-13 + }, + { // Entry 290 + -0x1.ce61cf8ef36fedbc8d6156bd661e298ep-1, + 0x1.fffffffffffffp-4 + }, + { // Entry 291 + -0x1.ce61cf8ef36fe6c9ae9c0d042275b468p-1, + 0x1.0p-3 + }, + { // Entry 292 + -0x1.ce61cf8ef36fd8e3f11179919bcb8effp-1, + 0x1.0000000000001p-3 + }, + { // Entry 293 + -0x1.db11ed766abfc23dad46ff588641095dp-5, + 0x1.bffffffffffffp-1 + }, + { // Entry 294 + -0x1.db11ed766abf432dc3c1bb4167a6eb47p-5, + 0x1.cp-1 + }, + { // Entry 295 + -0x1.db11ed766abec41dda3c772a4d96833ep-5, + 0x1.c000000000001p-1 + }, + { // Entry 296 + -0x1.34413509f79ff2aa8e755834b8cd5d83p0, + 0x1.fffffffffffffp-5 + }, + { // Entry 297 + -0x1.34413509f79fef311f12b35816f922f0p0, + 0x1.0p-4 + }, + { // Entry 298 + -0x1.34413509f79fe83e404d699ed3a4103bp0, + 0x1.0000000000001p-4 + }, + { // Entry 299 + -0x1.cb38fccd8bfea3c5778d26c3e6929b36p-6, + 0x1.dffffffffffffp-1 + }, + { // Entry 300 + -0x1.cb38fccd8bfdb696b29463658b991237p-6, + 0x1.ep-1 + }, + { // Entry 301 + -0x1.cb38fccd8bfcc967ed9ba00738877eb7p-6, + 0x1.e000000000001p-1 + }, + { // Entry 302 + -0x1.8151824c7587ee76d63a050abe8ba63fp0, + 0x1.fffffffffffffp-6 + }, + { // Entry 303 + -0x1.8151824c7587eafd66d7602e1cb76bacp0, + 0x1.0p-5 + }, + { // Entry 304 + -0x1.8151824c7587e40a88121674d96258f7p0, + 0x1.0000000000001p-5 + }, + { // Entry 305 + -0x1.c3d0837784c5d4dc2b470a089b8b6137p-7, + 0x1.effffffffffffp-1 + }, + { // Entry 306 + -0x1.c3d0837784c409cbf85d4dd61d426e1bp-7, + 0x1.fp-1 + }, + { // Entry 307 + -0x1.c3d0837784c23ebbc57391a3adc87461p-7, + 0x1.f000000000001p-1 + }, + { // Entry 308 + -0x1.ce61cf8ef36fea431dfeb1e0c449eefbp0, + 0x1.fffffffffffffp-7 + }, + { // Entry 309 + -0x1.ce61cf8ef36fe6c9ae9c0d042275b468p0, + 0x1.0p-6 + }, + { // Entry 310 + -0x1.ce61cf8ef36fdfd6cfd6c34adf20a1b3p0, + 0x1.0000000000001p-6 + }, + { // Entry 311 + -0x1.c03a80ae5e08bfbaeb001bb3cc0e0020p-8, + 0x1.f7fffffffffffp-1 + }, + { // Entry 312 + -0x1.c03a80ae5e05382d51f71b0f6602c76ap-8, + 0x1.f80p-1 + }, + { // Entry 313 + -0x1.c03a80ae5e01b09fb8ee1a6b1ca6b823p-8, + 0x1.f800000000001p-1 + }, + { // Entry 314 + -0x1.0db90e68b8abf307b2e1af5b65041bdbp1, + 0x1.fffffffffffffp-8 + }, + { // Entry 315 + -0x1.0db90e68b8abf14afb305ced1419fe92p1, + 0x1.0p-7 + }, + { // Entry 316 + -0x1.0db90e68b8abedd18bcdb810726f7537p1, + 0x1.0000000000001p-7 + }, + { // Entry 317 + -0x1.be76bd77b50331b751b4d8af88fb07ecp-9, + 0x1.fbfffffffffffp-1 + }, + { // Entry 318 + -0x1.be76bd77b4fc30d6cb5e729fc0bd5fa5p-9, + 0x1.fc0p-1 + }, + { // Entry 319 + -0x1.be76bd77b4f52ff645080c9030f7ab79p-9, + 0x1.fc00000000001p-1 + }, + { // Entry 320 + -0x1.34413509f79ff0edd6c405c667e34039p1, + 0x1.fffffffffffffp-9 + }, + { // Entry 321 + -0x1.34413509f79fef311f12b35816f922f0p1, + 0x1.0p-8 + }, + { // Entry 322 + -0x1.34413509f79febb7afb00e7b754e9995p1, + 0x1.0000000000001p-8 + }, + { // Entry 323 + -0x1.bd96a1d7d9d9b63e5aa7d082a140d738p-10, + 0x1.fdfffffffffffp-1 + }, + { // Entry 324 + -0x1.bd96a1d7d9cbc28d1ed88eb987048038p-10, + 0x1.fe0p-1 + }, + { // Entry 325 + -0x1.bd96a1d7d9bdcedbe3094cf0dcd5c0adp-10, + 0x1.fe00000000001p-1 + }, + { // Entry 326 + -0x1.5ac95bab3693eed3faa65c316ac26497p1, + 0x1.fffffffffffffp-10 + }, + { // Entry 327 + -0x1.5ac95bab3693ed1742f509c319d8474ep1, + 0x1.0p-9 + }, + { // Entry 328 + -0x1.5ac95bab3693e99dd39264e6782dbdf3p1, + 0x1.0000000000001p-9 + }, + { // Entry 329 + -0x1.bd27045bfd1e24767eb1fadda38b82e2p-11, + 0x1.fefffffffffffp-1 + }, + { // Entry 330 + -0x1.bd27045bfd024b0eb5a690199f7d311fp-11, + 0x1.ff0p-1 + }, + { // Entry 331 + -0x1.bd27045bfce671a6ec9b25567aa9bb13p-11, + 0x1.ff00000000001p-1 + }, + { // Entry 332 + -0x1.8151824c7587ecba1e88b29c6da188f5p1, + 0x1.fffffffffffffp-11 + }, + { // Entry 333 + -0x1.8151824c7587eafd66d7602e1cb76bacp1, + 0x1.0p-10 + }, + { // Entry 334 + -0x1.8151824c7587e783f774bb517b0ce252p1, + 0x1.0000000000001p-10 + }, + { // Entry 335 + -0x1.bcef518e2998bf2fcdeca6d0c7d243c3p-12, + 0x1.ff7ffffffffffp-1 + }, + { // Entry 336 + -0x1.bcef518e29611a506bc6531e97655414p-12, + 0x1.ff8p-1 + }, + { // Entry 337 + -0x1.bcef518e29297571099fff6e248ec50ep-12, + 0x1.ff80000000001p-1 + }, + { // Entry 338 + -0x1.f4e9f6303263e66c8a2fb5dd763ef60fp1, + 0x1.fffffffffffffp-14 + }, + { // Entry 339 + -0x1.f4e9f6303263e4afd27e636f2554d8c6p1, + 0x1.0p-13 + }, + { // Entry 340 + -0x1.f4e9f6303263e136631bbe9283aa4f6cp1, + 0x1.0000000000001p-13 + }, + { // Entry 341 + -0x1.bcbea45645848a4be42e2d4ac91c6d9fp-15, + 0x1.ffeffffffffffp-1 + }, + { // Entry 342 + -0x1.bcbea45643c7c4b46503e30e59b7dd28p-15, + 0x1.fffp-1 + }, + { // Entry 343 + -0x1.bcbea456420aff1ce5d998dfd0ef3d8bp-15, + 0x1.fff0000000001p-1 + }, + { // Entry 344 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 345 + 0x1.34413509f79fef2da5a350b33a574eb5p8, + 0x1.fffffffffffffp1023 + }, + { // Entry 346 + 0x1.34413509f79fef2a2c33ee0e5db55eafp8, + 0x1.ffffffffffffep1023 + }, + { // Entry 347 + 0x1.fd14db31ba3bab2b91a5ae782f204d4fp-2, + 0x1.921fb54442d18p1 + }, + { // Entry 348 + 0x1.91a74c4f853777f4e525f640304e54bep-3, + 0x1.921fb54442d18p0 + }, + { // Entry 349 + 0x1.bcb7b1526e50d544ad2cc1ecd3e2a249p-54, + 0x1.0000000000001p0 + }, + { // Entry 350 + 0.0, + 0x1.0p0 + }, + { // Entry 351 + -0x1.bcb7b1526e50ea1d497c9f189e19715ep-55, + 0x1.fffffffffffffp-1 + }, + { // Entry 352 + -0x1.adb63b88d410ccdab1fee0dffb47e244p-4, + 0x1.921fb54442d18p-1 + }, + { // Entry 353 + -0x1.33a7146f72a41f3293a464b4b1aa514cp8, + 0x1.0000000000001p-1022 + }, + { // Entry 354 + -0x1.33a7146f72a41f39868329fe6aeda65ep8, + 0x1.0p-1022 + }, + { // Entry 355 + -0x1.33a7146f72a41f407961ef4824316a9fp8, + 0x1.ffffffffffffep-1023 + }, + { // Entry 356 + -0x1.33a7146f72a41f476c40b491dd759e0ep8, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 357 + -0x1.430153d3b1b9566338cf586d0e128edcp8, + 0x1.0p-1073 + }, + { // Entry 358 + -0x1.434e6420f4373e5f05171d19e4184d25p8, + 0x1.0p-1074 + }, + { // Entry 359 + -HUGE_VAL, + 0.0 + }, + { // Entry 360 + -HUGE_VAL, + -0.0 + }, + { // Entry 361 + 0x1.p0, + 0x1.4p3 + }, + { // Entry 362 + 0x1.p1, + 0x1.9p6 + }, + { // Entry 363 + 0x1.80p1, + 0x1.f40p9 + } +}; diff --git a/tests/math_data/log10f_intel_data.h b/tests/math_data/log10f_intel_data.h new file mode 100644 index 000000000..0f1ac267a --- /dev/null +++ b/tests/math_data/log10f_intel_data.h @@ -0,0 +1,1226 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_log10f_intel_data[] = { + { // Entry 0 + -0x1.fe8bfdffff13dd47512c048f491f9b43p3, + 0x1.000022p-53 + }, + { // Entry 1 + -0x1.815170ed4e086e755171000a21e4418ap2, + 0x1.0000a0p-20 + }, + { // Entry 2 + -0x1.fe8beafff5736c97130c9ced1f57d1a3p3, + 0x1.000180p-53 + }, + { // Entry 3 + -0x1.343e0effe0b2cf5c4261140f67bbb9dbp-2, + 0x1.0001d0p-1 + }, + { // Entry 4 + 0x1.bc41b9006f9ea191f8d77992988148e8p-11, + 0x1.007ffep0 + }, + { // Entry 5 + 0x1.286d48f2328d1c51bb42649f1e36f51cp-10, + 0x1.00aadcp0 + }, + { // Entry 6 + 0x1.3c3724fff9a66a1fc88c62753a01a093p-10, + 0x1.00b648p0 + }, + { // Entry 7 + 0x1.b41066a765c47c650e3f2b65383836c5p-10, + 0x1.00fb80p0 + }, + { // Entry 8 + 0x1.b4ede8ab7383b8e1ac6403842ab125e1p-10, + 0x1.00fcp0 + }, + { // Entry 9 + 0x1.b606409a66ace2644d565b3bbe495b4bp-10, + 0x1.00fca2p0 + }, + { // Entry 10 + 0x1.361702fff27220603ff5a74b9a7278a1p-2, + 0x1.010fp1 + }, + { // Entry 11 + 0x1.30ecd6fe9803b26443d0a8c84cf88f49p-9, + 0x1.0160p0 + }, + { // Entry 12 + 0x1.ad1561043e238a54f2968308b5b84a0ap-9, + 0x1.01efdep0 + }, + { // Entry 13 + 0x1.add67b049b9eccb589d59f2e94044d4cp-9, + 0x1.01f0bep0 + }, + { // Entry 14 + 0x1.b4181727e525aa3c9fe9bb81a1ea32f2p-9, + 0x1.01f8p0 + }, + { // Entry 15 + 0x1.ba90af0300546714c91e69807716244bp-9, + 0x1.01ff82p0 + }, + { // Entry 16 + 0x1.bf75c6fdd387cfc33e178c7140ff4a43p-9, + 0x1.020530p0 + }, + { // Entry 17 + 0x1.c160fcfb3f11263df6c5479a7fc1f96ep-9, + 0x1.02076ap0 + }, + { // Entry 18 + 0x1.c3b396fb7cc17548094cdeed806812d7p-9, + 0x1.020a1cp0 + }, + { // Entry 19 + 0x1.041e5efff8637a181cab5a487e534f1cp5, + 0x1.0220p108 + }, + { // Entry 20 + 0x1.deaf41009dde64cb85f68d09d2edf173p-9, + 0x1.02296ep0 + }, + { // Entry 21 + 0x1.ecf47efdaeb10f5ade28ff93f4f44527p-9, + 0x1.023ap0 + }, + { // Entry 22 + 0x1.f514f89756d667a2094b9aa6f5425a94p-8, + 0x1.048cp0 + }, + { // Entry 23 + -0x1.31add3ffcf191eb75b949d0c4b25562ep0, + 0x1.06p-4 + }, + { // Entry 24 + 0x1.5d5eb8fffce13ef5613f5c26350b3ef3p-7, + 0x1.065cd2p0 + }, + { // Entry 25 + 0x1.b02afb003def304a513c84d809f21238p-7, + 0x1.07e4bcp0 + }, + { // Entry 26 + 0x1.e8296b002bba062b42b25642380152e2p-7, + 0x1.08ef12p0 + }, + { // Entry 27 + 0x1.e9c5e90021ec01c297e475abe4ba42p-7, + 0x1.08f6c0p0 + }, + { // Entry 28 + -0x1.7d2b50ffff0186373287a99f0cecd28ep0, + 0x1.09bcp-5 + }, + { // Entry 29 + 0x1.3a62cbffff2834d75a70360f6b9d64cfp0, + 0x1.0e83a0p4 + }, + { // Entry 30 + -0x1.7aa2bc000221055273bfa7fee62d0379p0, + 0x1.0fdcp-5 + }, + { // Entry 31 + 0x1.d5bbd4fffd35c403bb0a652e9334f1e4p0, + 0x1.1180p6 + }, + { // Entry 32 + 0x1.ef425287c21feec9c54e178d894354edp-6, + 0x1.1274p0 + }, + { // Entry 33 + -0x1.29297dffff901bb8ac5190eca10186b9p0, + 0x1.1adcp-4 + }, + { // Entry 34 + 0x1.817dc8fccbc0fb5087e88f554f1908fdp-5, + 0x1.1d4cp0 + }, + { // Entry 35 + 0x1.96aaacfefcf3bb8dcf3d8c94eb1423cap-5, + 0x1.1fp0 + }, + { // Entry 36 + 0x1.a2d9334a67417635918aaf61a00994f0p-5, + 0x1.1ffcp0 + }, + { // Entry 37 + 0x1.e32d32fa5c9d38509a7ba3e2bfb93574p-5, + 0x1.253d24p0 + }, + { // Entry 38 + 0x1.55811effbe311325be81852b0556032cp-1, + 0x1.294a50p2 + }, + { // Entry 39 + -0x1.d7dae0fffee85f639c44d1f94b88a9aap-3, + 0x1.2d363ap-1 + }, + { // Entry 40 + -0x1.9ba71b0001bcb89106e975a5735cc54cp1, + 0x1.3ecf84p-11 + }, + { // Entry 41 + 0x1.p0, + 0x1.40p3 + }, + { // Entry 42 + 0x1.879ecefffff999362de3e56a2a6ed238p2, + 0x1.412668p20 + }, + { // Entry 43 + 0x1.c10343057f36be857e8738b6dfecd5dep-4, + 0x1.498152p0 + }, + { // Entry 44 + 0x1.f237b389b8afaac4cac40f2695df7209p-4, + 0x1.52bf2ap0 + }, + { // Entry 45 + -0x1.e0e8f9e4b17e517c0a47404130e68838p-2, + 0x1.5b43e2p-2 + }, + { // Entry 46 + 0x1.bce8b0000212bd563ade9f93343779fbp-2, + 0x1.5c17p1 + }, + { // Entry 47 + -0x1.d30fa3d9517968762410807be9c7cb7ep-2, + 0x1.663fe0p-2 + }, + { // Entry 48 + 0x1.ca3f98fffffea806640e073c5b17da75p-2, + 0x1.66b06ap1 + }, + { // Entry 49 + -0x1.81bbccfffeb10074d0f87e9e6ab68f3fp-1, + 0x1.695dp-3 + }, + { // Entry 50 + -0x1.3442891155fedc1531e5c4a593f0e2f0p-3, + 0x1.6a095cp-1 + }, + { // Entry 51 + 0x1.f28489002d32f29f766276e96f7f21aap4, + 0x1.6aaaaap103 + }, + { // Entry 52 + -0x1.7d9722fffffee06829536561f0f13e07p-1, + 0x1.7028e2p-3 + }, + { // Entry 53 + 0x1.e39e45d51ccc5ba793598e2a5b79a0dfp-2, + 0x1.7bbf06p1 + }, + { // Entry 54 + -0x1.ffbfcbff9b381c31b8783059f0acf062p-4, + 0x1.7ffffep-1 + }, + { // Entry 55 + -0x1.ffbfc2bbc780375837c4b0b84f38a14ap-4, + 0x1.80p-1 + }, + { // Entry 56 + -0x1.b40dd238181b3a9e0aacd04028af4a80p-2, + 0x1.801e82p-2 + }, + { // Entry 57 + -0x1.f9043300033a2fda0c9e8b664d0dfae2p-4, + 0x1.8174c4p-1 + }, + { // Entry 58 + -0x1.530ccb00030817c37d1894f62c055194p0, + 0x1.8421p-5 + }, + { // Entry 59 + -0x1.e2278820b34cd516815ccd9af00ec36cp-4, + 0x1.867124p-1 + }, + { // Entry 60 + -0x1.db11ed766abf432dc3c1bb4167a6eb47p-4, + 0x1.88p-1 + }, + { // Entry 61 + 0x1.eb76a4317f935066a9dd258d69495f3bp-3, + 0x1.bcd946p0 + }, + { // Entry 62 + -0x1.e5a7d2fffbde5faba9ad1dafa9f8e25ep-1, + 0x1.cd1eb6p-4 + }, + { // Entry 63 + -0x1.e3e2e8000003707015334e8f6d4e1baep-1, + 0x1.d0cdb4p-4 + }, + { // Entry 64 + -0x1.46b528fff19f0db93b31ce66c94d4faap-1, + 0x1.d739cep-3 + }, + { // Entry 65 + -0x1.ffd158bd0b2827904af6cec4c6e1bbe4p-6, + 0x1.dc7710p-1 + }, + { // Entry 66 + 0x1.c00806bb584a81d2425a4c449277a3c0p-1, + 0x1.dffffep2 + }, + { // Entry 67 + -0x1.a0ed34fffc666da4d52ec02aeafec305p-6, + 0x1.e2dc9ap-1 + }, + { // Entry 68 + 0x1.e61002ffffc2d1e0983851bf24c9ce23p4, + 0x1.e339a2p100 + }, + { // Entry 69 + -0x1.3a6ae8fffd0faf4aca1345a2b412cb11p-6, + 0x1.e9de50p-1 + }, + { // Entry 70 + -0x1.9775a6e35532e99d0cf2384ab86d5473p-7, + 0x1.f18c60p-1 + }, + { // Entry 71 + -0x1.81f977002634432665d65d78d2968a65p2, + 0x1.f40e5ep-21 + }, + { // Entry 72 + -0x1.f62251ffffff968db3edbd69bcf5cfdcp1, + 0x1.f4e26ap-14 + }, + { // Entry 73 + -0x1.14f03effe1727a0c4e49b2a6bad88689p-7, + 0x1.f621f6p-1 + }, + { // Entry 74 + -0x1.f7c3f8ffbdab13a6cac3e1e31df4ebbfp-8, + 0x1.f7047cp-1 + }, + { // Entry 75 + -0x1.f63efaafb8883e9793490850e59689c5p-8, + 0x1.f70b5cp-1 + }, + { // Entry 76 + -0x1.f37d18ffb9ef3b0fef577217ed18e097p-8, + 0x1.f717d6p-1 + }, + { // Entry 77 + -0x1.def364ad9e50296b41e69bbd93d4b89dp-8, + 0x1.f774cep-1 + }, + { // Entry 78 + -0x1.d980a30635055b8d9b54edd672c858a3p-10, + 0x1.fddffep-1 + }, + { // Entry 79 + -0x1.be7cd6ffc9f63979c62763b7424b91b8p-10, + 0x1.fdfef8p-1 + }, + { // Entry 80 + -0x1.a0d0f2971f8c3359f07a6bb4fccab210p-10, + 0x1.fe21p-1 + }, + { // Entry 81 + -0x1.bd2a7f88f7e22e1fbeda7c34e78c5fbfp-11, + 0x1.fefffep-1 + }, + { // Entry 82 + -0x1.ad17eafff3e585f32e96d0e7c6897eaep-11, + 0x1.ff093ap-1 + }, + { // Entry 83 + -0x1.e1b20eab03fb3a4a3c1ca58716aa04d8p2, + 0x1.ff1ffep-26 + }, + { // Entry 84 + -0x1.bd42c8df31e3d447244cc720bd67faadp-12, + 0x1.ff7fe8p-1 + }, + { // Entry 85 + -0x1.bdb1f6cd42c7c46d6967bb003016e45bp-13, + 0x1.ffbfe0p-1 + }, + { // Entry 86 + -0x1.ca749c8706de8e46ee3cf5bf9a96ab1bp-14, + 0x1.ffdf04p-1 + }, + { // Entry 87 + -0x1.c600bcbce645991d16979edbbc0c311fp-14, + 0x1.ffdf56p-1 + }, + { // Entry 88 + -0x1.bd34cc84be200f8cb449c26c3f6763d1p-14, + 0x1.ffdff8p-1 + }, + { // Entry 89 + -0x1.bce164dc339f92c17cc22cb9a07458d6p-14, + 0x1.ffdffep-1 + }, + { // Entry 90 + -0x1.3443d0ffc8b4e8b31ed055e579024a80p-1, + 0x1.fff9fep-3 + }, + { // Entry 91 + -0x1.72de800001549031af6ca96747c1126fp4, + 0x1.fffc7ep-78 + }, + { // Entry 92 + 0x1.344134ff8b51b7a013d2358e0089d30dp5, + 0x1.fffffap127 + }, + { // Entry 93 + -0x1.bcb7b30f2604868dab81d79e1f40443cp-25, + 0x1.fffffcp-1 + }, + { // Entry 94 + -0x1.3441360959c2bf17a59af37357663f09p-3, + 0x1.6a09e6p-1 + }, + { // Entry 95 + -0x1.8e271d6ab5d7ee84106f48e33b8cb8e0p-4, + 0x1.995256p-1 + }, + { // Entry 96 + -0x1.9762ba2f4a2198a2ce8974450be1661fp-5, + 0x1.c89ac6p-1 + }, + { // Entry 97 + -0x1.c694764682002f79a74b22bb7570477ep-8, + 0x1.f7e336p-1 + }, + { // Entry 98 + 0x1.064661197381c71f1a9f9ac21e313749p-5, + 0x1.1395d2p0 + }, + { // Entry 99 + 0x1.158bedc46861d0d27c114033f3db9a96p-4, + 0x1.2b3a0ap0 + }, + { // Entry 100 + 0x1.9cd10befe72cc8a8ecfeacd70aed874ap-4, + 0x1.42de42p0 + }, + { // Entry 101 + 0x1.0d42f94d71eab1a45a4e19f5a1d78fcbp-3, + 0x1.5a827ap0 + }, + { // Entry 102 + 0x1.47f707c940c69c0e2b81a883c7fcf3e2p-3, + 0x1.7226b2p0 + }, + { // Entry 103 + 0x1.7f08567d056a15ac18992a2573074fc1p-3, + 0x1.89caeap0 + }, + { // Entry 104 + 0x1.b2e37e3ec1bd60c78ec0b821ea37604dp-3, + 0x1.a16f22p0 + }, + { // Entry 105 + 0x1.e3e3215b7afa3355ef4ed63c72685ff3p-3, + 0x1.b9135ap0 + }, + { // Entry 106 + 0x1.0929d68063288eaf1594278eb7b2fc8ep-2, + 0x1.d0b792p0 + }, + { // Entry 107 + 0x1.1f3b15ea121ed378638c6e76b1a3108fp-2, + 0x1.e85bcap0 + }, + { // Entry 108 + 0x1.34413509f79fef311f12b35816f922f0p-2, + 0x1.p1 + }, + { // Entry 109 + -0x1.3441360959c2bf17a59af37357663f09p-3, + 0x1.6a09e6p-1 + }, + { // Entry 110 + -0x1.edc7b7d1726b9d3a32996762d45e780ap-4, + 0x1.83e608p-1 + }, + { // Entry 111 + -0x1.7af97b7bce8afc77122afb0375a2da53p-4, + 0x1.9dc22ap-1 + }, + { // Entry 112 + -0x1.0f219957375a31be41be4c43a6916104p-4, + 0x1.b79e4cp-1 + }, + { // Entry 113 + -0x1.52e86324d08348db62a1b30a19674a5cp-5, + 0x1.d17a6ep-1 + }, + { // Entry 114 + -0x1.2519f3a5667aea40e1f962a1f5d85c21p-6, + 0x1.eb5690p-1 + }, + { // Entry 115 + 0x1.1f80654567c5aa07e1d9578dfde75b1fp-8, + 0x1.02995ap0 + }, + { // Entry 116 + 0x1.a30a884b48ced10372c3c1f79d81055bp-6, + 0x1.0f876cp0 + }, + { // Entry 117 + 0x1.7706deccbe15df9c9101690cc9b736b0p-5, + 0x1.1c757ep0 + }, + { // Entry 118 + 0x1.0a965f582ad2d2cc3962364e72fabf4bp-4, + 0x1.296390p0 + }, + { // Entry 119 + 0x1.564ba4450402b6d51b22231ee30056ecp-4, + 0x1.3651a2p0 + }, + { // Entry 120 + 0x1.9ee99d1f81cea5262e8e5fa8308a4f10p-4, + 0x1.433fb4p0 + }, + { // Entry 121 + 0x1.e4ae6049c4561ba2e5b54e4aef7ec1f7p-4, + 0x1.502dc6p0 + }, + { // Entry 122 + 0x1.13e87df00be5c8e58f5f6baa00a8e9a8p-3, + 0x1.5d1bd8p0 + }, + { // Entry 123 + 0x1.3441340a957d1f4a988a733cd68c06d7p-3, + 0x1.6a09e6p0 + }, + { // Entry 124 + -0x1.ffbfc2bbc780375837c4b0b84f38a14ap-4, + 0x1.80p-1 + }, + { // Entry 125 + -0x1.5634641a3fd51681f12d3df90719aed0p-4, + 0x1.a66666p-1 + }, + { // Entry 126 + -0x1.76d86fdd61d0265fd8416f7297bd494fp-5, + 0x1.ccccccp-1 + }, + { // Entry 127 + -0x1.684c1a332d5dc3307d73c7ba25168d0fp-7, + 0x1.f33332p-1 + }, + { // Entry 128 + 0x1.5b2a4774a2de2143d8ff5f649a50863bp-6, + 0x1.0cccccp0 + }, + { // Entry 129 + 0x1.a30a9d609efe9c281982d7df7ae69259p-5, + 0x1.20p0 + }, + { // Entry 130 + 0x1.445392859c560c3c9ed56125e21ba584p-4, + 0x1.333334p0 + }, + { // Entry 131 + 0x1.b02b7b4804d6e3346e6f30fb0ed80ed8p-4, + 0x1.466668p0 + }, + { // Entry 132 + 0x1.0aec747738c557211b21410621b26f8fp-3, + 0x1.59999cp0 + }, + { // Entry 133 + 0x1.3b03516d50b3544158f589c768f946e6p-3, + 0x1.6cccd0p0 + }, + { // Entry 134 + 0x1.68a288b60b7fc2b622430e540655f53bp-3, + 0x1.80p0 + }, + { // Entry 135 + 0.0, + 0x1.p0 + }, + { // Entry 136 + 0x1.e1a5e2df92e9e5bcc08d3839a3e54697p4, + 0x1.p100 + }, + { // Entry 137 + 0x1.e24f6e426a8bf8a9e67a7799f8b17451p4, + 0x1.19999ap100 + }, + { // Entry 138 + 0x1.e2ea367218863bc8fd2c0d9ac9c7623cp4, + 0x1.333334p100 + }, + { // Entry 139 + 0x1.e3789929b904e81bc6f0e5158f365203p4, + 0x1.4ccccep100 + }, + { // Entry 140 + 0x1.e3fc6d41682d18d8c703d601ddc1fa20p4, + 0x1.666668p100 + }, + { // Entry 141 + 0x1.e47727fa42d490cc96bad253a3656436p4, + 0x1.800002p100 + }, + { // Entry 142 + 0x1.e4e9f63a9eb204cd2dcd94b7ceca28a7p4, + 0x1.99999cp100 + }, + { // Entry 143 + 0x1.e555ce20504ed691954bc10e175867a8p4, + 0x1.b33336p100 + }, + { // Entry 144 + 0x1.e5bb7b8b3d22f0a25afb3f6c6877e417p4, + 0x1.ccccd0p100 + }, + { // Entry 145 + 0x1.e61ba942b928956af0bafc1ad04f0b20p4, + 0x1.e6666ap100 + }, + { // Entry 146 + 0x1.e676e7b3bac865798509830704412b23p4, + 0x1.p101 + }, + { // Entry 147 + -0x1.bcb7bf382c6fb3df0029e1e6c04e5b04p-22, + 0x1.ffffe0p-1 + }, + { // Entry 148 + -0x1.15f2d18a6400ab03be90bfceaa5447fbp-23, + 0x1.fffff6p-1 + }, + { // Entry 149 + 0x1.4d89c115357d535c8f9533338e6883eap-23, + 0x1.000006p0 + }, + { // Entry 150 + 0x1.bcb7a36cb15a8cec0c39b0a7cf2d7858p-22, + 0x1.000010p0 + }, + { // Entry 151 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 152 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 153 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 154 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 155 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 156 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 157 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 158 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 159 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 160 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 161 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 162 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 163 + 0x1.344135067e308acf8abe721a7991fdb7p5, + 0x1.fffffep127 + }, + { // Entry 164 + -0x1.66d3e7bd9a402c6f2e2bc4c48abe02abp5, + 0x1.p-149 + }, + { // Entry 165 + -0x1.34413af333ae8c86c135ab5278494452p-3, + 0x1.6a09e4p-1 + }, + { // Entry 166 + -0x1.3441360959c2bf17a59af37357663f09p-3, + 0x1.6a09e6p-1 + }, + { // Entry 167 + -0x1.3441311f7fdde48753477d6b1af5d93dp-3, + 0x1.6a09e8p-1 + }, + { // Entry 168 + 0x1.34412f20bb9151db7cefbb5db5a9018ep-3, + 0x1.6a09e4p0 + }, + { // Entry 169 + 0x1.3441340a957d1f4a988a733cd68c06d7p-3, + 0x1.6a09e6p0 + }, + { // Entry 170 + 0x1.344138f46f61f9daeadde94512fc6ca3p-3, + 0x1.6a09e8p0 + }, + { // Entry 171 + -0x1.344136c6af521ffb49335226ca8bbf4ap-2, + 0x1.fffffep-2 + }, + { // Entry 172 + -0x1.34413509f79fef311f12b35816f922f0p-2, + 0x1.p-1 + }, + { // Entry 173 + -0x1.344131908840c3c3db4f515285b11c22p-2, + 0x1.000002p-1 + }, + { // Entry 174 + -0x1.ffbfcbff9b381c31b8783059f0acf062p-4, + 0x1.7ffffep-1 + }, + { // Entry 175 + -0x1.ffbfc2bbc780375837c4b0b84f38a14ap-4, + 0x1.80p-1 + }, + { // Entry 176 + -0x1.ffbfb977f3d4acee4eb0b360dbc6ec48p-4, + 0x1.800002p-1 + }, + { // Entry 177 + 0x1.68a2841421a3d04961e94e83359bcdafp-3, + 0x1.7ffffep0 + }, + { // Entry 178 + 0x1.68a288b60b7fc2b622430e540655f53bp-3, + 0x1.80p0 + }, + { // Entry 179 + 0x1.68a28d57f55587eb16cd0cffc00ecfbcp-3, + 0x1.800002p0 + }, + { // Entry 180 + 0x1.28132fbb336f7bcb34b70b00867dc9d5p-10, + 0x1.00aaa8p0 + }, + { // Entry 181 + 0x1.2816a6db3131b6eda414e69eae447c9dp-10, + 0x1.00aaaap0 + }, + { // Entry 182 + 0x1.281a1dfb280a4dd9abcda3a702e5258dp-10, + 0x1.00aaacp0 + }, + { // Entry 183 + 0x1.3441342b9bc6d6cc0a0263f0bd2fd4c3p-1, + 0x1.fffffep1 + }, + { // Entry 184 + 0x1.34413509f79fef311f12b35816f922f0p-1, + 0x1.p2 + }, + { // Entry 185 + 0x1.344136c6af4f84e7c0f4645adf9d2657p-1, + 0x1.000002p2 + }, + { // Entry 186 + 0x1.3441334d3fedbe66f4f2148963668696p-2, + 0x1.fffffep0 + }, + { // Entry 187 + 0x1.34413509f79fef311f12b35816f922f0p-2, + 0x1.p1 + }, + { // Entry 188 + 0x1.3441388366ff1a9e62d6155da84129bep-2, + 0x1.000002p1 + }, + { // Entry 189 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 190 + 0.0, + 0x1.p0 + }, + { // Entry 191 + 0x1.bcb7af95b6a1e1b102c8a40366dc2f73p-25, + 0x1.000002p0 + }, + { // Entry 192 + -0x1.344136c6af521ffb49335226ca8bbf4ap-2, + 0x1.fffffep-2 + }, + { // Entry 193 + -0x1.34413509f79fef311f12b35816f922f0p-2, + 0x1.p-1 + }, + { // Entry 194 + -0x1.344131908840c3c3db4f515285b11c22p-2, + 0x1.000002p-1 + }, + { // Entry 195 + -0x1.344135e853790796342302bf70c2711dp-1, + 0x1.fffffep-3 + }, + { // Entry 196 + -0x1.34413509f79fef311f12b35816f922f0p-1, + 0x1.p-2 + }, + { // Entry 197 + -0x1.3441334d3ff0597a7d3102554e551f89p-1, + 0x1.000002p-2 + }, + { // Entry 198 + -0x1.ce61d06d4f48ff2ec3ac5c6b7c3f0295p-1, + 0x1.fffffep-4 + }, + { // Entry 199 + -0x1.ce61cf8ef36fe6c9ae9c0d042275b468p-1, + 0x1.p-3 + }, + { // Entry 200 + -0x1.ce61cdd23bc051130cba5c0159d1b101p-1, + 0x1.000002p-3 + }, + { // Entry 201 + -0x1.34413579258c7b63a99adb0bc3ddca06p0, + 0x1.fffffep-5 + }, + { // Entry 202 + -0x1.34413509f79fef311f12b35816f922f0p0, + 0x1.p-4 + }, + { // Entry 203 + -0x1.3441342b9bc82455ce21dad6b2a7213cp0, + 0x1.000002p-4 + }, + { // Entry 204 + -0x1.815182bba374772ff15f87e1c99c12c2p0, + 0x1.fffffep-6 + }, + { // Entry 205 + -0x1.8151824c7587eafd66d7602e1cb76bacp0, + 0x1.p-5 + }, + { // Entry 206 + -0x1.8151816e19b0202215e687acb86569f8p0, + 0x1.000002p-5 + }, + { // Entry 207 + -0x1.ce61cffe215c72fc392434b7cf5a5b7ep0, + 0x1.fffffep-7 + }, + { // Entry 208 + -0x1.ce61cf8ef36fe6c9ae9c0d042275b468p0, + 0x1.p-6 + }, + { // Entry 209 + -0x1.ce61ceb097981bee5dab3482be23b2b5p0, + 0x1.000002p-6 + }, + { // Entry 210 + -0x1.0db90ea04fa23764407470c6ea8c521dp1, + 0x1.fffffep-8 + }, + { // Entry 211 + -0x1.0db90e68b8abf14afb305ced1419fe92p1, + 0x1.p-7 + }, + { // Entry 212 + -0x1.0db90df98ac00bdd52b7f0ac61f0fdb8p1, + 0x1.000002p-7 + }, + { // Entry 213 + -0x1.344135418e96354a6456c731ed6b767bp1, + 0x1.fffffep-9 + }, + { // Entry 214 + -0x1.34413509f79fef311f12b35816f922f0p1, + 0x1.p-8 + }, + { // Entry 215 + -0x1.3441349ac9b409c3769a471764d02216p1, + 0x1.000002p-8 + }, + { // Entry 216 + -0x1.5ac95be2cd8a333088391d9cf04a9ad9p1, + 0x1.fffffep-10 + }, + { // Entry 217 + -0x1.5ac95bab3693ed1742f509c319d8474ep1, + 0x1.p-9 + }, + { // Entry 218 + -0x1.5ac95b3c08a807a99a7c9d8267af4674p1, + 0x1.000002p-9 + }, + { // Entry 219 + -0x1.815182840c7e3116ac1b7407f329bf37p1, + 0x1.fffffep-11 + }, + { // Entry 220 + -0x1.8151824c7587eafd66d7602e1cb76bacp1, + 0x1.p-10 + }, + { // Entry 221 + -0x1.815181dd479c058fbe5ef3ed6a8e6ad2p1, + 0x1.000002p-10 + }, + { // Entry 222 + -0x1.f4e9f667c95a2ac917c27748fbc72c51p1, + 0x1.fffffep-14 + }, + { // Entry 223 + -0x1.f4e9f6303263e4afd27e636f2554d8c6p1, + 0x1.p-13 + }, + { // Entry 224 + -0x1.f4e9f5c10477ff422a05f72e732bd7ecp1, + 0x1.000002p-13 + }, + { // Entry 225 + -0x1.f4e9f667c95a2ac917c27748fbc72c51p1, + 0x1.fffffep-14 + }, + { // Entry 226 + -0x1.f4e9f6303263e4afd27e636f2554d8c6p1, + 0x1.p-13 + }, + { // Entry 227 + -0x1.f4e9f5c10477ff422a05f72e732bd7ecp1, + 0x1.000002p-13 + }, + { // Entry 228 + -0x1.ce61d06d4f48ff2ec3ac5c6b7c3f0295p-1, + 0x1.fffffep-4 + }, + { // Entry 229 + -0x1.ce61cf8ef36fe6c9ae9c0d042275b468p-1, + 0x1.p-3 + }, + { // Entry 230 + -0x1.ce61cdd23bc051130cba5c0159d1b101p-1, + 0x1.000002p-3 + }, + { // Entry 231 + -0x1.db11fd5867f8ff1cca049f4cb4fd8694p-5, + 0x1.bffffep-1 + }, + { // Entry 232 + -0x1.db11ed766abf432dc3c1bb4167a6eb47p-5, + 0x1.c0p-1 + }, + { // Entry 233 + -0x1.db11dd946d97ae16f51ada8f25bd4cc1p-5, + 0x1.c00002p-1 + }, + { // Entry 234 + -0x1.34413579258c7b63a99adb0bc3ddca06p0, + 0x1.fffffep-5 + }, + { // Entry 235 + -0x1.34413509f79fef311f12b35816f922f0p0, + 0x1.p-4 + }, + { // Entry 236 + -0x1.3441342b9bc82455ce21dad6b2a7213cp0, + 0x1.000002p-4 + }, + { // Entry 237 + -0x1.cb391a7364ac9eed883817f1ffc2150cp-6, + 0x1.dffffep-1 + }, + { // Entry 238 + -0x1.cb38fccd8bfdb696b29463658b991237p-6, + 0x1.e0p-1 + }, + { // Entry 239 + -0x1.cb38df27b36e6e15dbf9aa6e26e0527bp-6, + 0x1.e00002p-1 + }, + { // Entry 240 + -0x1.815182bba374772ff15f87e1c99c12c2p0, + 0x1.fffffep-6 + }, + { // Entry 241 + -0x1.8151824c7587eafd66d7602e1cb76bacp0, + 0x1.p-5 + }, + { // Entry 242 + -0x1.8151816e19b0202215e687acb86569f8p0, + 0x1.000002p-5 + }, + { // Entry 243 + -0x1.c3d0bcd98b3edf45205cfdbb6aed1917p-7, + 0x1.effffep-1 + }, + { // Entry 244 + -0x1.c3d0837784c409cbf85d4dd61d426e1bp-7, + 0x1.f0p-1 + }, + { // Entry 245 + -0x1.c3d04a157e84703859e1417a8c326212p-7, + 0x1.f00002p-1 + }, + { // Entry 246 + -0x1.ce61cffe215c72fc392434b7cf5a5b7ep0, + 0x1.fffffep-7 + }, + { // Entry 247 + -0x1.ce61cf8ef36fe6c9ae9c0d042275b468p0, + 0x1.p-6 + }, + { // Entry 248 + -0x1.ce61ceb097981bee5dab3482be23b2b5p0, + 0x1.000002p-6 + }, + { // Entry 249 + -0x1.c03af1a0115fb694dfc7e5305e350297p-8, + 0x1.f7fffep-1 + }, + { // Entry 250 + -0x1.c03a80ae5e05382d51f71b0f6602c76ap-8, + 0x1.f8p-1 + }, + { // Entry 251 + -0x1.c03a0fbcab1d766b7c26660812478675p-8, + 0x1.f80002p-1 + }, + { // Entry 252 + -0x1.0db90ea04fa23764407470c6ea8c521dp1, + 0x1.fffffep-8 + }, + { // Entry 253 + -0x1.0db90e68b8abf14afb305ced1419fe92p1, + 0x1.p-7 + }, + { // Entry 254 + -0x1.0db90df98ac00bdd52b7f0ac61f0fdb8p1, + 0x1.000002p-7 + }, + { // Entry 255 + -0x1.be779d93c637ed8142930d32c760672cp-9, + 0x1.fbfffep-1 + }, + { // Entry 256 + -0x1.be76bd77b4fc30d6cb5e729fc0bd5fa5p-9, + 0x1.fcp-1 + }, + { // Entry 257 + -0x1.be75dd5ba4a253fcbfcde28906782f81p-9, + 0x1.fc0002p-1 + }, + { // Entry 258 + -0x1.344135418e96354a6456c731ed6b767bp1, + 0x1.fffffep-9 + }, + { // Entry 259 + -0x1.34413509f79fef311f12b35816f922f0p1, + 0x1.p-8 + }, + { // Entry 260 + -0x1.3441349ac9b409c3769a471764d02216p1, + 0x1.000002p-8 + }, + { // Entry 261 + -0x1.bd98604e0225c5f5bcfcaf2d317a9cb8p-10, + 0x1.fdfffep-1 + }, + { // Entry 262 + -0x1.bd96a1d7d9cbc28d1ed88eb987048038p-10, + 0x1.fep-1 + }, + { // Entry 263 + -0x1.bd94e361b331f5825874683d16a4fa02p-10, + 0x1.fe0002p-1 + }, + { // Entry 264 + -0x1.5ac95be2cd8a333088391d9cf04a9ad9p1, + 0x1.fffffep-10 + }, + { // Entry 265 + -0x1.5ac95bab3693ed1742f509c319d8474ep1, + 0x1.p-9 + }, + { // Entry 266 + -0x1.5ac95b3c08a807a99a7c9d8267af4674p1, + 0x1.000002p-9 + }, + { // Entry 267 + -0x1.bd2a7f88f7e22e1fbeda7c34e78c5fbfp-11, + 0x1.fefffep-1 + }, + { // Entry 268 + -0x1.bd27045bfd024b0eb5a690199f7d311fp-11, + 0x1.ffp-1 + }, + { // Entry 269 + -0x1.bd23892f059f536c854c6b13c5a3b7bfp-11, + 0x1.ff0002p-1 + }, + { // Entry 270 + -0x1.815182840c7e3116ac1b7407f329bf37p1, + 0x1.fffffep-11 + }, + { // Entry 271 + -0x1.8151824c7587eafd66d7602e1cb76bacp1, + 0x1.p-10 + }, + { // Entry 272 + -0x1.815181dd479c058fbe5ef3ed6a8e6ad2p1, + 0x1.000002p-10 + }, + { // Entry 273 + -0x1.bcf6462a1921118a3b66f92fb7c60797p-12, + 0x1.ff7ffep-1 + }, + { // Entry 274 + -0x1.bcef518e29611a506bc6531e97655414p-12, + 0x1.ff80p-1 + }, + { // Entry 275 + -0x1.bce85cf240977c99419983a95dfa8d28p-12, + 0x1.ff8002p-1 + }, + { // Entry 276 + -0x1.f4e9f667c95a2ac917c27748fbc72c51p1, + 0x1.fffffep-14 + }, + { // Entry 277 + -0x1.f4e9f6303263e4afd27e636f2554d8c6p1, + 0x1.p-13 + }, + { // Entry 278 + -0x1.f4e9f5c10477ff422a05f72e732bd7ecp1, + 0x1.000002p-13 + }, + { // Entry 279 + -0x1.bcf63d094f7a45ef4f9d2bcde45ded2fp-15, + 0x1.ffeffep-1 + }, + { // Entry 280 + -0x1.bcbea45643c7c4b46503e30e59b7dd28p-15, + 0x1.fff0p-1 + }, + { // Entry 281 + -0x1.bc870ba36fafb33cddcf17f055436437p-15, + 0x1.fff002p-1 + }, + { // Entry 282 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 283 + 0x1.344135067e308acf8abe721a7991fdb7p5, + 0x1.fffffep127 + }, + { // Entry 284 + 0x1.3441350304c122f48700992168f1c477p5, + 0x1.fffffcp127 + }, + { // Entry 285 + 0x1.fd14dc015a2443dc8d1c9a7a4ead7c44p-2, + 0x1.921fb6p1 + }, + { // Entry 286 + 0x1.91a74deec508a956dc13ce446f68b2a7p-3, + 0x1.921fb6p0 + }, + { // Entry 287 + 0x1.bcb7af95b6a1e1b102c8a40366dc2f73p-25, + 0x1.000002p0 + }, + { // Entry 288 + 0.0, + 0x1.p0 + }, + { // Entry 289 + -0x1.bcb7b230ca2a209eceb3929c5a02ff59p-26, + 0x1.fffffep-1 + }, + { // Entry 290 + -0x1.adb6384a546e6a16c42330d77d132671p-4, + 0x1.921fb6p-1 + }, + { // Entry 291 + -0x1.2f70302edce2b11d800ee1c6ab7aae56p5, + 0x1.000002p-126 + }, + { // Entry 292 + -0x1.2f703035cfc16f745a96688ab69d3e64p5, + 0x1.p-126 + }, + { // Entry 293 + -0x1.2f70303cc2a03bb0f2a882c164a49cddp5, + 0x1.fffffcp-127 + }, + { // Entry 294 + -0x1.2f703043b57f15d3487cc76186a378f6p5, + 0x1.fffff8p-127 + }, + { // Entry 295 + -0x1.646b65538650ec90cbed9f5dda901065p5, + 0x1.p-148 + }, + { // Entry 296 + -0x1.66d3e7bd9a402c6f2e2bc4c48abe02abp5, + 0x1.p-149 + }, + { // Entry 297 + -HUGE_VALF, + 0.0f + }, + { // Entry 298 + -HUGE_VALF, + -0.0f + }, + { // Entry 299 + 0x1.p0, + 0x1.40p3 + }, + { // Entry 300 + 0x1.p1, + 0x1.90p6 + }, + { // Entry 301 + 0x1.80p1, + 0x1.f4p9 + } +}; diff --git a/tests/math_data/log1p_intel_data.h b/tests/math_data/log1p_intel_data.h new file mode 100644 index 000000000..12118ea3d --- /dev/null +++ b/tests/math_data/log1p_intel_data.h @@ -0,0 +1,1486 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_log1p_intel_data[] = { + { // Entry 0 + -0x1.00000000000010p-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 1 + -0x1.0415d89e74446809b5d7e16e90dcfb17p-5, + -0x1.0000000000002p-5 + }, + { // Entry 2 + -0x1.269621334db92803beb76a16b5547d4dp-2, + -0x1.000000180p-2 + }, + { // Entry 3 + -0x1.00080000000008008002000000555d55p-52, + -0x1.00080p-52 + }, + { // Entry 4 + -0x1.001000000040080040001559559556b2p-41, + -0x1.001p-41 + }, + { // Entry 5 + -0x1.65724c2110f35416c9322de1fbce6ea0p-2, + -0x1.2dba262a7c8b0p-2 + }, + { // Entry 6 + -0x1.5af4179028eb7638f1145bd433d6c831p-11, + -0x1.5ad6b5ad6b5b0p-11 + }, + { // Entry 7 + -0x1.74fc36f06cd5b7ffd79b0ff90a64bb6ep-6, + -0x1.70c58e67b7aeap-6 + }, + { // Entry 8 + -0x1.d62e0cd7372ac11cfb2f285d279dc3d4p-2, + -0x1.7905b82a1839dp-2 + }, + { // Entry 9 + -0x1.7d9c1debf082f7fe3df487d0e4823676p-6, + -0x1.793331eece596p-6 + }, + { // Entry 10 + -0x1.e148a1a2726cbfb45f343d2e78b71a51p-2, + -0x1.7ffffffffffffp-2 + }, + { // Entry 11 + -0x1.9baf61134c048801e3731883b65290b3p-5, + -0x1.9182fde7e3318p-5 + }, + { // Entry 12 + -0x1.ff93ccbd3124237a5b3cf16c47c915c9p-2, + -0x1.92a7fc86dcbd9p-2 + }, + { // Entry 13 + -0x1.8feb5ba3c5b0d7fddffe1b9133bd3827p0, + -0x1.94a5294a5294cp-1 + }, + { // Entry 14 + -0x1.e265a1d9483178002922dd984d33f198p-4, + -0x1.c712d0d7f0490p-4 + }, + { // Entry 15 + -0x1.cd4e4c03a55707e868994265170eefb8p-10, + -0x1.cce673399cce8p-10 + }, + { // Entry 16 + -0x1.e5df7f9b307ac000115f8473c90fb515p-9, + -0x1.e4f93e4f93e50p-9 + }, + { // Entry 17 + -0x1.f96ef48ecd4037fe220ffae33fef5d04p-5, + -0x1.ea28302403580p-5 + }, + { // Entry 18 + -0x1.fdd09f73d7f688dd5508c770fe7b7a9fp-5, + -0x1.ee4675d0ac9aap-5 + }, + { // Entry 19 + -0x1.ffffffffffe4b72dd5ac98791a728e1fp-5, + -0x1.f0540438fd429p-5 + }, + { // Entry 20 + -0x1.ff7fac9bb11607daf86980492f147eedp-10, + -0x1.ff0001ffffffep-10 + }, + { // Entry 21 + -0x1.ffe7fffffffff7ff40047fffffaaaaaap-54, + -0x1.ffe7fffffffffp-54 + }, + { // Entry 22 + -0x1.4cb9ed50b6bc79d44d301801ce0ff6f3p4, + -0x1.fffffff801fffp-1 + }, + { // Entry 23 + -0x1.57cd0e3026827bbcd5d3d6a532515bd1p4, + -0x1.fffffffbfffffp-1 + }, + { // Entry 24 + -0x1.002005545508732d7b57a1ec86bd5c7ap-10, + -0x1.fffffffc0p-11 + }, + { // Entry 25 + -0x1.08598b57c1806001dbb99c0aebf44bdep-4, + -0x1.fffffffc0003fp-5 + }, + { // Entry 26 + -0x1.08598b58e3a06001bf513750331fb25cp-4, + -0x1.fffffffe1ffffp-5 + }, + { // Entry 27 + -0x1.ffffffff000007fffffff800002aacaap-54, + -0x1.ffffffff0p-54 + }, + { // Entry 28 + -0x1.00000000001ff7fffffff54d55555547p-40, + -0x1.ffffffffff3ffp-41 + }, + { // Entry 29 + -0x1.ffffffffffffeffffffffffffeaaaaaap-53, + -0x1.ffffffffffffep-53 + }, + { // Entry 30 + 0x1.ffffffffff0000000000aaaaaaaaaa2ap-41, + 0x1.0p-40 + }, + { // Entry 31 + 0x1.ffffffffffffffffffffffffffffffp-121, + 0x1.0p-120 + }, + { // Entry 32 + 0.0, + 0x1.0p-1074 + }, + { // Entry 33 + 0x1.fffffffffffffffffffffffffeaaaaaap-52, + 0x1.0000000000001p-51 + }, + { // Entry 34 + 0x1.00000000000007ffffffffffff555555p-52, + 0x1.0000000000001p-52 + }, + { // Entry 35 + 0x1.9f323ecbf9855480be2cbc494f93df36p-2, + 0x1.0000000000007p-1 + }, + { // Entry 36 + 0x1.ffffffffffc0000000000aaaaaaaaaa8p-42, + 0x1.00000000002p-41 + }, + { // Entry 37 + 0x1.ffffffffffdffffffffffaaaaaaaaaaep-42, + 0x1.00000000003p-41 + }, + { // Entry 38 + 0x1.ffe002ae6a31006877edb3328bd3ae91p-12, + 0x1.00000001fffffp-11 + }, + { // Entry 39 + 0x1.9f323f094c68a8000013901093412da6p-2, + 0x1.0000002dfe2afp-1 + }, + { // Entry 40 + 0x1.9f323f094c692800000be5b40e615d2dp-2, + 0x1.0000002dfe2b5p-1 + }, + { // Entry 41 + 0x1.193ea82ad0308976a42437ffabe62762p0, + 0x1.000000cp1 + }, + { // Entry 42 + 0x1.f0b21b0c9a27f7973092bef2b8a18d80p-5, + 0x1.00080p-4 + }, + { // Entry 43 + 0x1.1ace1631f668001f17e5430537a94f9fp5, + 0x1.00080p51 + }, + { // Entry 44 + 0x1.000fffffffbff7ffc0001559559556a2p-41, + 0x1.001p-41 + }, + { // Entry 45 + 0x1.f31cdeeb3cd4c7c0a3e945ad856befcbp4, + 0x1.00cp45 + }, + { // Entry 46 + 0x1.206360b7e569587b36009d7c942d4f3cp5, + 0x1.014p52 + }, + { // Entry 47 + 0x1.f333a5f5edb1b76e16684e60b7181719p-5, + 0x1.015cdfc51f91cp-4 + }, + { // Entry 48 + 0x1.64892563f80250000b60adaac677e2eap-1, + 0x1.01a5a2b15fc5cp0 + }, + { // Entry 49 + 0x1.0482afcf527d98002bc41c40cd3b44c5p-23, + 0x1.0482b0d86c362p-23 + }, + { // Entry 50 + 0x1.045dcf2cb15f57fe3f2ed152226368c8p-5, + 0x1.088c59ac8c7d1p-5 + }, + { // Entry 51 + 0x1.015e05876e3e67fff047c696eba44ba2p-4, + 0x1.09ap-4 + }, + { // Entry 52 + 0x1.0b6515d81d9732694cd7ec512fc6f1b4p-11, + 0x1.0b768b5ad8019p-11 + }, + { // Entry 53 + 0x1.b346a1d28f44d7fdcee7a0bd07405845p-2, + 0x1.0f35566ed3cc2p-1 + }, + { // Entry 54 + 0x1.b3cce9b7221757feb43dcf531070c894p0, + 0x1.1f27c14e425b9p2 + }, + { // Entry 55 + 0x1.fbc379bd13a6b00091e8da2307a3712fp-3, + 0x1.202p-2 + }, + { // Entry 56 + 0x1.2140a33ee4f537fe4de38bae4056e098p-5, + 0x1.266b753946441p-5 + }, + { // Entry 57 + 0x1.d6bfbea5ab7fd4c43b30348da32e2a7dp-2, + 0x1.2ad0c02f60402p-1 + }, + { // Entry 58 + 0x1.c09da5a8b37876f669efaffd93412f9ap0, + 0x1.312e7b7be62a5p2 + }, + { // Entry 59 + 0x1.e3a91d4d7516cb9db08fd3c3cf7d40cap-2, + 0x1.351a8d46a35p-1 + }, + { // Entry 60 + 0x1.f128f5faf06ecb35c83b1131cf5d73d5p-2, + 0x1.4p-1 + }, + { // Entry 61 + 0x1.f1ee31f14d4f17ffde2f2fe766dfc318p-2, + 0x1.40a0502814080p-1 + }, + { // Entry 62 + 0x1.41e3e450b6073001c502b22fec3ab4d7p-5, + 0x1.484c43acc194cp-5 + }, + { // Entry 63 + 0x1.4d9ff934d99f37ff40fd39eb618dcd3ap-21, + 0x1.4dap-21 + }, + { // Entry 64 + 0x1.a0711f9b475687ffffd2981b5b49910ep2, + 0x1.4e5fffff0p9 + }, + { // Entry 65 + 0x1.e1905175711a17c09fd40254fad72ae8p4, + 0x1.56f3052920ef0p43 + }, + { // Entry 66 + 0x1.4f7ef3b13e1fa800361c4277dfa1092ap-4, + 0x1.5d9e6884d6ac2p-4 + }, + { // Entry 67 + 0x1.e45c01e8c233cffe5ac108bc6c123bfap0, + 0x1.688p2 + }, + { // Entry 68 + 0x1.c34366179d4258048e0ec51c6fefd58cp-1, + 0x1.6a09e667f3bcbp0 + }, + { // Entry 69 + 0x1.e2af1644433ac7c03096da53cf28c18ap4, + 0x1.6fd1ffb140878p43 + }, + { // Entry 70 + 0x1.6392a510033287ffc3d40d8ce33d1627p-4, + 0x1.73767fd8537b3p-4 + }, + { // Entry 71 + 0x1.d36a35aaae768800f77be0b2a29e40b7p-1, + 0x1.7dd89e50e078ep0 + }, + { // Entry 72 + 0x1.83ffed9f8129180039f0eacf23501c34p-20, + 0x1.840p-20 + }, + { // Entry 73 + 0x1.8996381ef2cb67ff2c1a031d8e88fa81p-8, + 0x1.8ac562b158ac4p-8 + }, + { // Entry 74 + 0x1.926499264fd877fe77bab85881dbab74p-43, + 0x1.926499265p-43 + }, + { // Entry 75 + 0x1.e737cb23865c6b921552ad81d572b729p-1, + 0x1.970p0 + }, + { // Entry 76 + 0x1.588c2de5e88db000000ea4e59847d15cp-2, + 0x1.99999a1030f9dp-2 + }, + { // Entry 77 + 0x1.588c2df2c02057ffffefc30ff25d79ddp-2, + 0x1.99999a222b93fp-2 + }, + { // Entry 78 + 0x1.756501be3e242800001019cd7cd7ce3fp-3, + 0x1.99999a598c15cp-3 + }, + { // Entry 79 + 0x1.756502257dbf5000000bc0ddc72156fap-3, + 0x1.99999ad572033p-3 + }, + { // Entry 80 + 0x1.8663f9903e12effffff039fafc6b5f67p-4, + 0x1.99999bc8ec375p-4 + }, + { // Entry 81 + 0x1.9bd8abb150fbd005aa9e2ed5a074a08ep-21, + 0x1.9bd8b60b96e2fp-21 + }, + { // Entry 82 + 0x1.9955bad1e36537ffd7fd8448d392de25p-7, + 0x1.9be6f9be6f9b1p-7 + }, + { // Entry 83 + 0x1.5ba06e3fb01a2d107ec5201223f00bbbp-2, + 0x1.9dead086a58cdp-2 + }, + { // Entry 84 + 0x1.5f1a557f41f26cc673db4f91686a3758p-2, + 0x1.a2ce8df554b2cp-2 + }, + { // Entry 85 + 0x1.62405ebd6ab333837c8a77026ab4aae8p-2, + 0x1.a74p-2 + }, + { // Entry 86 + 0x1.f5f73d69114c2b85b3b151d45a33d0e5p-1, + 0x1.aa6p0 + }, + { // Entry 87 + 0x1.b229fbeca7781fffe6f5fdb97b7242c6p-5, + 0x1.bdep-5 + }, + { // Entry 88 + 0x1.bc21a8cfe0c4178b34990a731d3fbd15p-5, + 0x1.c86432190c8p-5 + }, + { // Entry 89 + 0x1.07952367af5c880000105e2b54a5a062p0, + 0x1.cccccced2ed7ep0 + }, + { // Entry 90 + 0x1.c1de8bc3181ba001c1b60c40eff90650p-5, + 0x1.ce7375b5023c4p-5 + }, + { // Entry 91 + 0x1.d59efda67795a800fddf8c5bba4a60b3p-43, + 0x1.d59efda677cb8p-43 + }, + { // Entry 92 + 0x1.d80158c4069057ff768740aa80c0bd66p-7, + 0x1.db6bcf502f3e0p-7 + }, + { // Entry 93 + 0x1.dfeabe29b510312e8367f414b0511949p-11, + 0x1.e022fd930f86ap-11 + }, + { // Entry 94 + 0x1.8a9a59caf11980a5915d2b6b7cf2553dp-2, + 0x1.e16b24d38d1b2p-2 + }, + { // Entry 95 + 0x1.8f11e873662c77e1769d569868a65e72p-2, + 0x1.e80p-2 + }, + { // Entry 96 + 0x1.dd166106e87f37622aac2c908d6aaf91p-5, + 0x1.eb40e151fad81p-5 + }, + { // Entry 97 + 0x1.ec80ffffffc4b7fe6ff009824ddc235ap-43, + 0x1.ec80fffffffffp-43 + }, + { // Entry 98 + 0x1.edf52c2e34740b24b736dca45fb4ae9ep-13, + 0x1.ee0410e3b1d24p-13 + }, + { // Entry 99 + 0x1.f02717d855569ffe85bb9f224358afeap-6, + 0x1.f7bdd6789c670p-6 + }, + { // Entry 100 + 0x1.fbfffffffe07e80000029aea55555174p-40, + 0x1.fbfffffffffffp-40 + }, + { // Entry 101 + 0x1.fbfffffffe07f80000029aca95555174p-40, + 0x1.fc0p-40 + }, + { // Entry 102 + 0x1.367799dc39a238068eae0d5339eafee2p5, + 0x1.fc00000000006p55 + }, + { // Entry 103 + 0x1.ffc7ffffff0027fcf000aa82af0a71p-41, + 0x1.ffc7fffffffffp-41 + }, + { // Entry 104 + 0x1.ffdfffffffffe800fff8000000aa9aabp-54, + 0x1.ffdffffffffffp-54 + }, + { // Entry 105 + 0x1.fff7fffffefff7fff000aab2aa8aa9ffp-41, + 0x1.fff7fffffffffp-41 + }, + { // Entry 106 + 0x1.fff7ffffffffe8003fff800000aaa6aap-54, + 0x1.fff7fffffffffp-54 + }, + { // Entry 107 + 0x1.c55179395a000800ddc334790469d4dep7, + 0x1.fffffe3ffffffp326 + }, + { // Entry 108 + 0x1.ffc00aa4ac10abd44706d89cf12892a3p-11, + 0x1.fffffffbfffffp-11 + }, + { // Entry 109 + 0x1.ffc00aa7ab50ebc44bf56111ce332375p-11, + 0x1.ffffffff0p-11 + }, + { // Entry 110 + 0x1.25e4f7b2737f9fc486612173c6596892p5, + 0x1.ffffffffffff8p52 + }, + { // Entry 111 + 0x1.62e42fefa39ef33793c7673007e1ed5ep9, + 0x1.ffffffffffff8p1023 + }, + { // Entry 112 + 0x1.9f323ecbf98489d61382119eae69348bp-2, + 0x1.ffffffffffffbp-2 + }, + { // Entry 113 + 0x1.5ca72d17ed3ea80089ae65dfafc1e2b2p8, + 0x1.ffffffffffffep502 + }, + { // Entry 114 + 0x1.11d14e1fcb72edcb28a032e083a6f199p-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 115 + 0x1.2ccac6c8f41b74d6b733c9141c0bece5p-1, + 0x1.995255f2d00abp-1 + }, + { // Entry 116 + 0x1.466a9269707376e50187259ee2b04818p-1, + 0x1.c89ac57dac58ap-1 + }, + { // Entry 117 + 0x1.5ed1a7dce11ace55a3cdbe341ee88222p-1, + 0x1.f7e3350888a69p-1 + }, + { // Entry 118 + 0x1.761c7d9dddc01d509dcb9b4ebceca84ep-1, + 0x1.1395d249b27a4p0 + }, + { // Entry 119 + 0x1.8c63d27d4ca03daba8c98a232b2380f0p-1, + 0x1.2b3a0a0f20a14p0 + }, + { // Entry 120 + 0x1.a1bd4c77d55363ab3b61dc89f7812c71p-1, + 0x1.42de41d48ec84p0 + }, + { // Entry 121 + 0x1.b63bf7baf5eaa6eadec65ed0408ff964p-1, + 0x1.5a827999fcef4p0 + }, + { // Entry 122 + 0x1.c9f0ad341cbebd1d84ae0c2674a34983p-1, + 0x1.7226b15f6b164p0 + }, + { // Entry 123 + 0x1.dcea661b59e7f2a61f64bc6d943ab5aep-1, + 0x1.89cae924d93d4p0 + }, + { // Entry 124 + 0x1.ef36808e501ff5bc97de3be617ad08b5p-1, + 0x1.a16f20ea47644p0 + }, + { // Entry 125 + 0x1.00707c29c4643ea6f53f2c0edcf3f90ep0, + 0x1.b91358afb58b4p0 + }, + { // Entry 126 + 0x1.08fa4b129d365103d8615b0fee830753p0, + 0x1.d0b7907523b24p0 + }, + { // Entry 127 + 0x1.113d8baca8608c19974ff89c21cc8d16p0, + 0x1.e85bc83a91d94p0 + }, + { // Entry 128 + 0x1.193ea7aad030a976a4198d55053b7cb5p0, + 0x1.0p1 + }, + { // Entry 129 + 0x1.11d14e1fcb72edcb28a032e083a6f199p-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 130 + 0x1.26990e07e25825de21cb52e655390d9ap-1, + 0x1.8e3e170bf282dp-1 + }, + { // Entry 131 + 0x1.3a914a1db8cc3855d200ca3202e23d04p-1, + 0x1.b27247aff148ep-1 + }, + { // Entry 132 + 0x1.4dc997cbf2ed6806315c6962614b41f2p-1, + 0x1.d6a67853f00efp-1 + }, + { // Entry 133 + 0x1.604fdb515451526fcf632e2255d97ef2p-1, + 0x1.fadaa8f7eed50p-1 + }, + { // Entry 134 + 0x1.72308447c51665ec8f42f6c1c2f51294p-1, + 0x1.0f876ccdf6cd9p0 + }, + { // Entry 135 + 0x1.8376bff406f913a3579a23f2e932df57p-1, + 0x1.21a1851ff630ap0 + }, + { // Entry 136 + 0x1.942ca35e8f18f3591aded43add2260dbp-1, + 0x1.33bb9d71f593bp0 + }, + { // Entry 137 + 0x1.a45b4ec4852597b4ab8fdd6275a5c1f7p-1, + 0x1.45d5b5c3f4f6cp0 + }, + { // Entry 138 + 0x1.b40b0b9a489f168f5ffc2c60ac5bd06ap-1, + 0x1.57efce15f459dp0 + }, + { // Entry 139 + 0x1.c34366179d426545cadbc394096e719bp-1, + 0x1.6a09e667f3bccp0 + }, + { // Entry 140 + 0x1.1e85f5e7040d03dec59a5f3e3c6be5cfp-1, + 0x1.8p-1 + }, + { // Entry 141 + 0x1.34024ac47b6fcebf994c642ef7a882adp-1, + 0x1.a666666666666p-1 + }, + { // Entry 142 + 0x1.48a11293d785b50c2a3feb14c3680501p-1, + 0x1.cccccccccccccp-1 + }, + { // Entry 143 + 0x1.5c73760b3c362e51806f6a2fcb5402b3p-1, + 0x1.f333333333332p-1 + }, + { // Entry 144 + 0x1.6f88b286b22f0a5f70b8ce35df42c80ap-1, + 0x1.0ccccccccccccp0 + }, + { // Entry 145 + 0x1.81ee60afb5018aaa0181c98fe3d11e57p-1, + 0x1.1ffffffffffffp0 + }, + { // Entry 146 + 0x1.93b0aee21c2c6f1afb29632c77f0434bp-1, + 0x1.3333333333332p0 + }, + { // Entry 147 + 0x1.a4da91c611dbcf17d743bad01121e91dp-1, + 0x1.4666666666665p0 + }, + { // Entry 148 + 0x1.b575ed0743492c8aacff60d5920dffc4p-1, + 0x1.5999999999998p0 + }, + { // Entry 149 + 0x1.c58bb5a60978a15095fe55861acca737p-1, + 0x1.6cccccccccccbp0 + }, + { // Entry 150 + 0x1.d5240f0e0e07606e918e49626c8f05e6p-1, + 0x1.7fffffffffffep0 + }, + { // Entry 151 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.0p0 + }, + { // Entry 152 + 0x1.7bdf362e9666e2dc442baf4dc625807dp-1, + 0x1.199999999999ap0 + }, + { // Entry 153 + 0x1.93b0aee21c2c8c3240fad7898f606525p-1, + 0x1.3333333333334p0 + }, + { // Entry 154 + 0x1.aa73108717b6b240250c5393b356e40ap-1, + 0x1.4cccccccccccep0 + }, + { // Entry 155 + 0x1.c03d703735f8e1920627f4336073fe78p-1, + 0x1.6666666666668p0 + }, + { // Entry 156 + 0x1.d5240f0e0e0793a1c4c17c959fc23919p-1, + 0x1.8000000000002p0 + }, + { // Entry 157 + 0x1.e938cbceb16defcbb921fdd58d5dd567p-1, + 0x1.999999999999cp0 + }, + { // Entry 158 + 0x1.fc8b7f138bdeb93fee2e78b4fe3e0831p-1, + 0x1.b333333333336p0 + }, + { // Entry 159 + 0x1.0795235c1ea1ca8c0592ee75b4579a8ep0, + 0x1.cccccccccccd0p0 + }, + { // Entry 160 + 0x1.1090e20315213b2ddb45c328435c3ca7p0, + 0x1.e66666666666ap0 + }, + { // Entry 161 + 0x1.193ea7aad030a976a4198d55053b7cb5p0, + 0x1.0p1 + }, + { // Entry 162 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.0p-1 + }, + { // Entry 163 + -0x1.3217b0fd2b116908897cb1050beea205p-1, + -0x1.ccccccccccccdp-2 + }, + { // Entry 164 + -0x1.058aefa811451fc7cc1184d75997dc44p-1, + -0x1.999999999999ap-2 + }, + { // Entry 165 + -0x1.b91f28212ba0379f7a6379b28d1ba9b7p-2, + -0x1.6666666666667p-2 + }, + { // Entry 166 + -0x1.6d3c324e13f4fe9befad50a0273411c8p-2, + -0x1.3333333333334p-2 + }, + { // Entry 167 + -0x1.269621134db93cd9140cbcc16037fb86p-2, + -0x1.0000000000001p-2 + }, + { // Entry 168 + -0x1.c8ff7c79a9a24ac25d81ef2ffc2a24aep-3, + -0x1.999999999999cp-3 + }, + { // Entry 169 + -0x1.4cd6b9796417b5f11f10de290430b32bp-3, + -0x1.3333333333336p-3 + }, + { // Entry 170 + -0x1.af8e8210a41636e61283e0400e72f380p-4, + -0x1.999999999999fp-4 + }, + { // Entry 171 + -0x1.a431d5bcc1942814e94f55ea2e15d5f4p-5, + -0x1.99999999999a4p-5 + }, + { // Entry 172 + -0x1.400000000000032000000000000a6aaap-54, + -0x1.4p-54 + }, + { // Entry 173 + 0.0, + 0.0 + }, + { // Entry 174 + 0x1.8fb063ef2c7e9cdd4f691425091f8212p-5, + 0x1.999999999999ap-5 + }, + { // Entry 175 + 0x1.8663f793c46c6f8f982725b4f7100a62p-4, + 0x1.999999999999ap-4 + }, + { // Entry 176 + 0x1.1e3b825dd05ec3fb503515bb34638d41p-3, + 0x1.3333333333334p-3 + }, + { // Entry 177 + 0x1.7565011e496768e9c982340d63fd99bep-3, + 0x1.999999999999ap-3 + }, + { // Entry 178 + 0x1.c8ff7c79a9a21ac25d81ef2ffb9a24aep-3, + 0x1.0p-2 + }, + { // Entry 179 + 0x1.0ca937be1b9dbb5e7217a3726f197837p-2, + 0x1.3333333333333p-2 + }, + { // Entry 180 + 0x1.334e9e47d07f44b44307069827b79584p-2, + 0x1.6666666666666p-2 + }, + { // Entry 181 + 0x1.588c2d913348f380eebceb76c4296aeap-2, + 0x1.9999999999999p-2 + }, + { // Entry 182 + 0x1.7c7b282d0d46adc1a6a2b9d712581488p-2, + 0x1.cccccccccccccp-2 + }, + { // Entry 183 + 0x1.9f323ecbf984b480be2cbc495a69348bp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 184 + -0x1.7f7427b73e38f503b99f86230b9f8fa9p1, + -0x1.e666666666666p-1 + }, + { // Entry 185 + -0x1.26bb1bbb5551382dd4adac5709a61451p1, + -0x1.cccccccccccccp-1 + }, + { // Entry 186 + -0x1.e5a9a7c3ac414090cf257ef11203a29dp0, + -0x1.b333333333332p-1 + }, + { // Entry 187 + -0x1.9c041f7ed8d2f6afdf77a5160f5931f4p0, + -0x1.9999999999998p-1 + }, + { // Entry 188 + -0x1.62e42fefa39eb35793c767300fe5ed5ep0, + -0x1.7fffffffffffep-1 + }, + { // Entry 189 + -0x1.34378fcbda71c6e50541cb590e10abedp0, + -0x1.6666666666664p-1 + }, + { // Entry 190 + -0x1.0cc1248b56cc74c07caa7576f1233f0cp0, + -0x1.4cccccccccccap-1 + }, + { // Entry 191 + -0x1.d5240f0e0e06fa082b27e2fc16cc768ap-1, + -0x1.3333333333330p-1 + }, + { // Entry 192 + -0x1.98d60031b8212e345617e33819904bcep-1, + -0x1.1999999999996p-1 + }, + { // Entry 193 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.0p-1 + }, + { // Entry 194 + 0x1.1542457337d42e1c6b73c89d866ba171p6, + 0x1.0p100 + }, + { // Entry 195 + 0x1.15a3de711cc5494e20ce2f7e3974c4edp6, + 0x1.199999999999ap100 + }, + { // Entry 196 + 0x1.15fcf7f3c6f8e1f8e05889b78d1212e9p6, + 0x1.3333333333334p100 + }, + { // Entry 197 + 0x1.164eeeaaf5efcc1553be7dcad167cc55p6, + 0x1.4cccccccccccep100 + }, + { // Entry 198 + 0x1.169ad1a0c907775fec628588fd1aeadcp6, + 0x1.6666666666668p100 + }, + { // Entry 199 + 0x1.16e177b203cdb330ec31f559cfad3551p6, + 0x1.8000000000002p100 + }, + { // Entry 200 + 0x1.17238e14da469b55b96c96744e61203ap6, + 0x1.999999999999cp100 + }, + { // Entry 201 + 0x1.1761a2765a6960abe5cf92c0959da837p6, + 0x1.b333333333336p100 + }, + { // Entry 202 + 0x1.179c2a3292f266ff2833283af2c71bb8p6, + 0x1.cccccccccccd0p100 + }, + { // Entry 203 + 0x1.17d387985f833a0d4069f79c1b97242fp6, + 0x1.e66666666666ap100 + }, + { // Entry 204 + 0x1.18080dd3171b6c031a9b576be65b6d4cp6, + 0x1.0p101 + }, + { // Entry 205 + 0x1.1542457337d42e1c6b73c89d862ba171p7, + 0x1.0p200 + }, + { // Entry 206 + 0x1.157311f22a4cbbb54620fc0ddfb31be9p7, + 0x1.199999999999ap200 + }, + { // Entry 207 + 0x1.159f9eb37f66880aa5e6292a89842f82p7, + 0x1.3333333333334p200 + }, + { // Entry 208 + 0x1.15c89a0f16e1fd18df9923342bb11959p7, + 0x1.4cccccccccccep200 + }, + { // Entry 209 + 0x1.15ee8b8a006dd2be2beb2713418c6ab9p7, + 0x1.6666666666668p200 + }, + { // Entry 210 + 0x1.1611de929dd0f0a6abd2defbaad7160cp7, + 0x1.8000000000002p200 + }, + { // Entry 211 + 0x1.1632e9c4090d64b912702f88ea3260d6p7, + 0x1.999999999999cp200 + }, + { // Entry 212 + 0x1.1651f3f4c91ec76428a1adaf0dd1d201p7, + 0x1.b333333333336p200 + }, + { // Entry 213 + 0x1.166f37d2e5634a8dc9d3786c3c679778p7, + 0x1.cccccccccccd0p200 + }, + { // Entry 214 + 0x1.168ae685cbabb414d5eee01cd0d08b3cp7, + 0x1.e66666666666ap200 + }, + { // Entry 215 + 0x1.16a529a32777cd0fc3079004b633875fp7, + 0x1.0p201 + }, + { // Entry 216 + 0x1.5a92d6d005c939a38650bac4e7b689cep9, + 0x1.0p1000 + }, + { // Entry 217 + 0x1.5a9f09efc2675d09bcfc07a0fe18686cp9, + 0x1.199999999999ap1000 + }, + { // Entry 218 + 0x1.5aaa2d2017add01f14ed52e8288cad52p9, + 0x1.3333333333334p1000 + }, + { // Entry 219 + 0x1.5ab46bf6fd8cad62a35a116a9117e7c8p9, + 0x1.4cccccccccccep1000 + }, + { // Entry 220 + 0x1.5abde855b7efa2cbf66e9262568ebc20p9, + 0x1.6666666666668p1000 + }, + { // Entry 221 + 0x1.5ac6bd17df486a461668805c70e166f4p9, + 0x1.8000000000002p1000 + }, + { // Entry 222 + 0x1.5aceffe43a17874ab00fd47fc0b839a7p9, + 0x1.999999999999cp1000 + }, + { // Entry 223 + 0x1.5ad6c2706a1bdff5759c340949a015f2p9, + 0x1.b333333333336p1000 + }, + { // Entry 224 + 0x1.5ade1367f12d00bfdde8a6b895458750p9, + 0x1.cccccccccccd0p1000 + }, + { // Entry 225 + 0x1.5ae4ff14aabf1b21a0ef80a4ba5fc441p9, + 0x1.e66666666666ap1000 + }, + { // Entry 226 + 0x1.5aeb8fdc01b221605c35ac9eb3b88349p9, + 0x1.0p1001 + }, + { // Entry 227 + 0x1.62e42fefa39ef35393c7673007e5dd5ep9, + 0x1.fffffffffffffp1023 + }, + { // Entry 228 + 0.0, + 0x1.0p-1074 + }, + { // Entry 229 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 230 + 0x1.11d14e1fcb72e46bc706b21c5008b9f1p-1, + 0x1.6a09e667f3bcbp-1 + }, + { // Entry 231 + 0x1.11d14e1fcb72edcb28a032e083a6f199p-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 232 + 0x1.11d14e1fcb72f72a8a39b3a4b7193d0ep-1, + 0x1.6a09e667f3bcdp-1 + }, + { // Entry 233 + -0x1.3a5abf07b788ff1b06e03c7b74301bb8p0, + -0x1.6a09e667f3bcdp-1 + }, + { // Entry 234 + -0x1.3a5abf07b788e3cab7acfcdd8e180c5dp0, + -0x1.6a09e667f3bccp-1 + }, + { // Entry 235 + -0x1.3a5abf07b788c87a6879bd3faaea06e8p0, + -0x1.6a09e667f3bcbp-1 + }, + { // Entry 236 + 0x1.c34366179d4258048e0ec51c6fefd58cp-1, + 0x1.6a09e667f3bcbp0 + }, + { // Entry 237 + 0x1.c34366179d426545cadbc394096e719bp-1, + 0x1.6a09e667f3bccp0 + }, + { // Entry 238 + 0x1.c34366179d42728707a8c20ba2953544p-1, + 0x1.6a09e667f3bcdp0 + }, + { // Entry 239 + 0x1.9f323ecbf984b480be2cbc495a69348bp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 240 + 0x1.9f323ecbf984bf2b68d766f405221819p-2, + 0x1.0p-1 + }, + { // Entry 241 + 0x1.9f323ecbf984d480be2cbc495a3e89e1p-2, + 0x1.0000000000001p-1 + }, + { // Entry 242 + 0x1.1e85f5e7040cfaba33513aabf3326da5p-1, + 0x1.7ffffffffffffp-1 + }, + { // Entry 243 + 0x1.1e85f5e7040d03dec59a5f3e3c6be5cfp-1, + 0x1.8p-1 + }, + { // Entry 244 + 0x1.1e85f5e7040d0d0357e383d0857b9238p-1, + 0x1.8000000000001p-1 + }, + { // Entry 245 + -0x1.62e42fefa39f135793c7673009e5ed5ep0, + -0x1.8000000000001p-1 + }, + { // Entry 246 + -0x1.62e42fefa39ef35793c7673007e5ed5ep0, + -0x1.8p-1 + }, + { // Entry 247 + -0x1.62e42fefa39ed35793c7673009e5ed5ep0, + -0x1.7ffffffffffffp-1 + }, + { // Entry 248 + 0x1.d5240f0e0e076d3b5e5b162f39d6b3fap-1, + 0x1.7ffffffffffffp0 + }, + { // Entry 249 + 0x1.d5240f0e0e077a082b27e2fc06cc768ap-1, + 0x1.8p0 + }, + { // Entry 250 + 0x1.d5240f0e0e0786d4f7f4afc8d3704d94p-1, + 0x1.8000000000001p0 + }, + { // Entry 251 + -0x1.25e4f7b2737fa18486612173c68a6892p5, + -0x1.fffffffffffffp-1 + }, + { // Entry 252 + 0x1.9c041f7ed8d3304979113eafa0de50acp0, + 0x1.fffffffffffffp1 + }, + { // Entry 253 + 0x1.9c041f7ed8d336afdf77a516075931f4p0, + 0x1.0p2 + }, + { // Entry 254 + 0x1.9c041f7ed8d3437cac4471e2d3d4133bp0, + 0x1.0000000000001p2 + }, + { // Entry 255 + 0x1.193ea7aad030a4214ec437ffafd7ee7cp0, + 0x1.fffffffffffffp0 + }, + { // Entry 256 + 0x1.193ea7aad030a976a4198d55053b7cb5p0, + 0x1.0p1 + }, + { // Entry 257 + 0x1.193ea7aad030b4214ec437ffafad43d2p0, + 0x1.0000000000001p1 + }, + { // Entry 258 + 0x1.62e42fefa39eeb5793c7673007d5ed5ep-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 259 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.0p0 + }, + { // Entry 260 + 0x1.62e42fefa39f035793c7673007a5ed5ep-1, + 0x1.0000000000001p0 + }, + { // Entry 261 + 0x1.9f323ecbf984b480be2cbc495a69348bp-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 262 + 0x1.9f323ecbf984bf2b68d766f405221819p-2, + 0x1.0p-1 + }, + { // Entry 263 + 0x1.9f323ecbf984d480be2cbc495a3e89e1p-2, + 0x1.0000000000001p-1 + }, + { // Entry 264 + 0x1.c8ff7c79a9a20df590b522632ec31a70p-3, + 0x1.fffffffffffffp-3 + }, + { // Entry 265 + 0x1.c8ff7c79a9a21ac25d81ef2ffb9a24aep-3, + 0x1.0p-2 + }, + { // Entry 266 + 0x1.c8ff7c79a9a2345bf71b88c9950ac885p-3, + 0x1.0000000000001p-2 + }, + { // Entry 267 + 0x1.e27076e2af2e5065c4f1c53c5ba22021p-4, + 0x1.fffffffffffffp-4 + }, + { // Entry 268 + 0x1.e27076e2af2e5e9ea87ffe1fe9e155dbp-4, + 0x1.0p-3 + }, + { // Entry 269 + 0x1.e27076e2af2e7b106f9c6fe70639d447p-4, + 0x1.0000000000001p-3 + }, + { // Entry 270 + 0x1.f0a30c01162a5708bd8807dfa41c78f8p-5, + 0x1.fffffffffffffp-5 + }, + { // Entry 271 + 0x1.f0a30c01162a6617cc9716eeb32f131ap-5, + 0x1.0p-4 + }, + { // Entry 272 + 0x1.f0a30c01162a8435eab5350cd13f04eep-5, + 0x1.0000000000001p-4 + }, + { // Entry 273 + 0x1.f829b0e7832ff54baec8fe6c44c511fdp-6, + 0x1.fffffffffffffp-6 + }, + { // Entry 274 + 0x1.f829b0e7833004cf8fc13c7bc8a7ebabp-6, + 0x1.0p-5 + }, + { // Entry 275 + 0x1.f829b0e7833023d751b1b89ad0625665p-6, + 0x1.0000000000001p-5 + }, + { // Entry 276 + 0x1.fc0a8b0fc03e2d38f1978c3b9c1379b6p-7, + 0x1.fffffffffffffp-7 + }, + { // Entry 277 + 0x1.fc0a8b0fc03e3cf9eda74d37abd56df5p-7, + 0x1.0p-6 + }, + { // Entry 278 + 0x1.fc0a8b0fc03e5c7be5c6cf2fcb538558p-7, + 0x1.0000000000001p-6 + }, + { // Entry 279 + 0x1.fe02a6b106787fe3370f3b19ca72746ep-8, + 0x1.fffffffffffffp-8 + }, + { // Entry 280 + 0x1.fe02a6b106788fc37690391dc282d2b3p-8, + 0x1.0p-7 + }, + { // Entry 281 + 0x1.fe02a6b10678af83f5923525b2a09b1bp-8, + 0x1.0000000000001p-7 + }, + { // Entry 282 + 0x1.ff00aa2b10bbf4b076c559c4c4c719a8p-9, + 0x1.fffffffffffffp-9 + }, + { // Entry 283 + 0x1.ff00aa2b10bc04a086b569b4d4b76919p-9, + 0x1.0p-8 + }, + { // Entry 284 + 0x1.ff00aa2b10bc2480a6958994f4968af6p-9, + 0x1.0000000000001p-8 + }, + { // Entry 285 + 0x1.ff802a9ab10e579274ea53f96c2ac73bp-10, + 0x1.fffffffffffffp-10 + }, + { // Entry 286 + 0x1.ff802a9ab10e678a78e854f8ec6ac72bp-10, + 0x1.0p-9 + }, + { // Entry 287 + 0x1.ff802a9ab10e877a80e456f7ecea07cap-10, + 0x1.0000000000001p-9 + }, + { // Entry 288 + 0x1.ffc00aa8ab10ebc44c055914cd3364b9p-11, + 0x1.fffffffffffffp-11 + }, + { // Entry 289 + 0x1.ffc00aa8ab10fbc04d051924c9347471p-11, + 0x1.0p-10 + }, + { // Entry 290 + 0x1.ffc00aa8ab111bb84f049944c1363411p-11, + 0x1.0000000000001p-10 + }, + { // Entry 291 + 0x1.fff8002aa9aaa11166638b10aec3e0a4p-14, + 0x1.fffffffffffffp-14 + }, + { // Entry 292 + 0x1.fff8002aa9aab110e6678af0afc3daa4p-14, + 0x1.0p-13 + }, + { // Entry 293 + 0x1.fff8002aa9aad10fe66f8ab0b1c3c2a5p-14, + 0x1.0000000000001p-13 + }, + { // Entry 294 + -0x1.62e42fefa39f135793c7673008e5ed5ep-1, + -0x1.0000000000001p-1 + }, + { // Entry 295 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.0p-1 + }, + { // Entry 296 + -0x1.62e42fefa39ee35793c767300825ed5ep-1, + -0x1.fffffffffffffp-2 + }, + { // Entry 297 + -0x1.269621134db93cd9140cbcc16037fb86p-2, + -0x1.0000000000001p-2 + }, + { // Entry 298 + -0x1.269621134db92783beb7676c0aa9c2a3p-2, + -0x1.0p-2 + }, + { // Entry 299 + -0x1.269621134db91cd9140cbcc1600d50dbp-2, + -0x1.fffffffffffffp-3 + }, + { // Entry 300 + -0x1.1178e8227e47d02c5d4668ebc04628aep-3, + -0x1.0000000000001p-3 + }, + { // Entry 301 + -0x1.1178e8227e47bde338b41fc72de81e3bp-3, + -0x1.0p-3 + }, + { // Entry 302 + -0x1.1178e8227e47b4bea66afb34e4c8c56ap-3, + -0x1.fffffffffffffp-4 + }, + { // Entry 303 + -0x1.08598b59e3a0799b50ead061448cec6cp-4, + -0x1.0000000000001p-4 + }, + { // Entry 304 + -0x1.08598b59e3a0688a3fd9bf503372c12fp-4, + -0x1.0p-4 + }, + { // Entry 305 + -0x1.08598b59e3a06001b75136c7aaec7f32p-4, + -0x1.fffffffffffffp-5 + }, + { // Entry 306 + -0x1.0415d89e7444578594cf9f5e0caf2971p-5, + -0x1.0000000000001p-5 + }, + { // Entry 307 + -0x1.0415d89e7444470173c75d4d8889de0ep-5, + -0x1.0p-5 + }, + { // Entry 308 + -0x1.0415d89e74443ebf63433c45467a6ab5p-5, + -0x1.fffffffffffffp-6 + }, + { // Entry 309 + -0x1.02056589358484e027b146bdd7feaee1p-6, + -0x1.0000000000001p-6 + }, + { // Entry 310 + -0x1.020565893584749f23a105b9c7bb9a6fp-6, + -0x1.0p-6 + }, + { // Entry 311 + -0x1.0205658935846c7ea198e537bf9b9c7fp-6, + -0x1.fffffffffffffp-7 + }, + { // Entry 312 + -0x1.010157588de722ad0cdb84fde21218d8p-7, + -0x1.0000000000001p-7 + }, + { // Entry 313 + -0x1.010157588de7128ccc5a82f9da00f48bp-7, + -0x1.0p-7 + }, + { // Entry 314 + -0x1.010157588de70a7cac1a01f7d5f9256ep-7, + -0x1.fffffffffffffp-8 + }, + { // Entry 315 + -0x1.0080559588b367f5a8f34d9dadc40b3ap-8, + -0x1.0000000000001p-8 + }, + { // Entry 316 + -0x1.0080559588b357e598e33d8d9db37a29p-8, + -0x1.0p-8 + }, + { // Entry 317 + -0x1.0080559588b34fdd90db358595ab9261p-8, + -0x1.fffffffffffffp-9 + }, + { // Entry 318 + -0x1.0040155d5889ee786b20efc1400f5ea4p-9, + -0x1.0000000000001p-9 + }, + { // Entry 319 + -0x1.0040155d5889de70671eeec0bfcefe53p-9, + -0x1.0p-9 + }, + { // Entry 320 + -0x1.0040155d5889d66c651dee407faefe5bp-9, + -0x1.fffffffffffffp-10 + }, + { // Entry 321 + -0x1.002005565588a3397dd822048abe2755p-10, + -0x1.0000000000001p-10 + }, + { // Entry 322 + -0x1.00200556558893357cd7e1f486bd0705p-10, + -0x1.0p-10 + }, + { // Entry 323 + -0x1.0020055655888b337c57c1ec84bc8ee9p-10, + -0x1.fffffffffffffp-11 + }, + { // Entry 324 + -0x1.0004001555d568891de2704b038ca596p-13, + -0x1.0000000000001p-13 + }, + { // Entry 325 + -0x1.0004001555d558889dde702b028c9996p-13, + -0x1.0p-13 + }, + { // Entry 326 + -0x1.0004001555d550885ddc701b020c9696p-13, + -0x1.fffffffffffffp-14 + }, + { // Entry 327 + 0x1.73242d45267376d3a2a0a820c4902335p-1, + 0x1.1082b577d34eap0 + }, + { // Entry 328 + 0x1.73242d4526738653ad4a41d5fe7ea6c1p-1, + 0x1.1082b577d34ebp0 + }, + { // Entry 329 + 0x1.73242d45267395d3b7f3db8b37f509a8p-1, + 0x1.1082b577d34ecp0 + }, + { // Entry 330 + 0x1.73242d452673a553c29d754070f34beap-1, + 0x1.1082b577d34edp0 + }, + { // Entry 331 + 0x1.73242d452673b4d3cd470ef5a9796d86p-1, + 0x1.1082b577d34eep0 + }, + { // Entry 332 + 0x1.73242d452673c453d7f0a8aae1876e7ep-1, + 0x1.1082b577d34efp0 + }, + { // Entry 333 + 0x1.73242d452673d3d3e29a4260191d4ecfp-1, + 0x1.1082b577d34f0p0 + }, + { // Entry 334 + -0x1.00000000000018ade0e8cb684e083468p-4, + -0x1.f0540438fd5c6p-5 + }, + { // Entry 335 + -0x1.0000000000001029cb3d0ccdd73ea85ap-4, + -0x1.f0540438fd5c5p-5 + }, + { // Entry 336 + -0x1.00000000000007a5b5914e336079a4a5p-4, + -0x1.f0540438fd5c4p-5 + }, + { // Entry 337 + -0x1.fffffffffffffe433fcb1f31d3725290p-5, + -0x1.f0540438fd5c3p-5 + }, + { // Entry 338 + -0x1.ffffffffffffed3b1473a1fce5fa6c86p-5, + -0x1.f0540438fd5c2p-5 + }, + { // Entry 339 + -0x1.ffffffffffffdc32e91c24c7f88b972cp-5, + -0x1.f0540438fd5c1p-5 + }, + { // Entry 340 + -0x1.ffffffffffffcb2abdc4a7930b25d282p-5, + -0x1.f0540438fd5c0p-5 + }, + { // Entry 341 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 342 + 0x1.62e42fefa39ef35393c7673007e5dd5ep9, + 0x1.fffffffffffffp1023 + }, + { // Entry 343 + 0x1.62e42fefa39ef34f93c7673007e5ad5ep9, + 0x1.ffffffffffffep1023 + }, + { // Entry 344 + 0x1.6bcbed09f00aece2ea800b6af0f24a0bp0, + 0x1.921fb54442d18p1 + }, + { // Entry 345 + 0x1.e3703db0ab119bed3e763f434dd7c4fbp-1, + 0x1.921fb54442d18p0 + }, + { // Entry 346 + 0x1.62e42fefa39f035793c7673007a5ed5ep-1, + 0x1.0000000000001p0 + }, + { // Entry 347 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.0p0 + }, + { // Entry 348 + -HUGE_VAL, + -0x1.0p0 + }, + { // Entry 349 + 0x1.62e42fefa39eeb5793c7673007d5ed5ep-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 350 + -0x1.25e4f7b2737fa18486612173c68a6892p5, + -0x1.fffffffffffffp-1 + }, + { // Entry 351 + 0x1.28c6c3a79fe295c7ca64ed982642adcfp-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 352 + -0x1.89f9ff0c761bc5454f17ec539e887d37p0, + -0x1.921fb54442d18p-1 + }, + { // Entry 353 + 0x1.0000000000000fffffffffffffffffffp-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 354 + -0x1.00000000000010p-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 355 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022 + }, + { // Entry 356 + -0x1.p-1022, + -0x1.0p-1022 + }, + { // Entry 357 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 358 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 359 + 0x1.ffffffffffffbfffffffffffffffffffp-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 360 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 361 + 0x1.ffffffffffffffffffffffffffffffffp-1074, + 0x1.0p-1073 + }, + { // Entry 362 + -0x1.p-1073, + -0x1.0p-1073 + }, + { // Entry 363 + 0.0, + 0x1.0p-1074 + }, + { // Entry 364 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 365 + 0.0, + 0.0 + }, + { // Entry 366 + -0.0, + -0.0 + } +}; diff --git a/tests/math_data/log1pf_intel_data.h b/tests/math_data/log1pf_intel_data.h new file mode 100644 index 000000000..3519a634f --- /dev/null +++ b/tests/math_data/log1pf_intel_data.h @@ -0,0 +1,1182 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_log1pf_intel_data[] = { + { // Entry 0 + -0x1.630430efae4a1e08a52dd228f774747ap-1, + -0x1.0010p-1 + }, + { // Entry 1 + -0x1.0a6a950320b815309cee76c6c346aa8ap-6, + -0x1.084310p-6 + }, + { // Entry 2 + -0x1.4592f4df3c22380a8a7a6bd256a231c9p-2, + -0x1.16e480p-2 + }, + { // Entry 3 + -0x1.5362b6deece53e28930e0d75f3b0e969p-2, + -0x1.20e0p-2 + }, + { // Entry 4 + -0x1.66ea0edec29ccaccbbc9459e55583852p-2, + -0x1.2ec3p-2 + }, + { // Entry 5 + -0x1.e5ee02ef643742b40691cfbbe5c34235p-1, + -0x1.39ce80p-1 + }, + { // Entry 6 + -0x1.ee2a156b413e4fe8b48e04a1a81d7d1fp-2, + -0x1.88p-2 + }, + { // Entry 7 + -0x1.af8967d890ceb5ae2c25ac22be3d5d14p-4, + -0x1.999502p-4 + }, + { // Entry 8 + -0x1.c50e9e00c0346f0253e08a684bbb9a7ep-7, + -0x1.c1f080p-7 + }, + { // Entry 9 + -0x1.d240ed01404debfca8485f4159238678p-7, + -0x1.cef3c0p-7 + }, + { // Entry 10 + -0x1.e3d6ff014fb650f40fcce84889424dadp-7, + -0x1.e04906p-7 + }, + { // Entry 11 + -0x1.e3dbcb012249a6d99fa2c2ccddddacc7p-7, + -0x1.e04dc0p-7 + }, + { // Entry 12 + -0x1.e9924b01a753cecfd33f2d536b84f02fp-7, + -0x1.e5eeb0p-7 + }, + { // Entry 13 + -0x1.f82ba0e78ab204f65a17734933732987p-6, + -0x1.f07ep-6 + }, + { // Entry 14 + -0x1.f9c13b02072dd9618b9803ed7ddfbabep-7, + -0x1.f5df2ep-7 + }, + { // Entry 15 + -0x1.fa2f5d01c871d22cde70cc085ced02ebp-7, + -0x1.f64ba0p-7 + }, + { // Entry 16 + -0x1.fb1175021cc3e1272f3c6b103248fc29p-7, + -0x1.f72a40p-7 + }, + { // Entry 17 + -0x1.fd69f70227b4fea60671e68dcb4dee6cp-7, + -0x1.f97984p-7 + }, + { // Entry 18 + -0x1.62c42eefb8f3c8a68360fc37186210edp-1, + -0x1.ffdffep-2 + }, + { // Entry 19 + -0x1.fffffdfffffaaaaaa6aaaab111112666p-24, + -0x1.fffffcp-24 + }, + { // Entry 20 + 0x1.ff802a9ab10e678a78e854f8ec6ac72bp-10, + 0x1.p-9 + }, + { // Entry 21 + 0x1.ffc00aa8ab10fbc04d051924c9347471p-11, + 0x1.p-10 + }, + { // Entry 22 + 0x1.fffff00000aaaaa2aaab11110bbbbc04p-21, + 0x1.p-20 + }, + { // Entry 23 + 0x1.fffff800002aaaa9aaaab11110e66667p-22, + 0x1.p-21 + }, + { // Entry 24 + 0x1.ffffffffffffffffffffffffffffffp-121, + 0x1.p-120 + }, + { // Entry 25 + 0.0f, + 0x1.p-149 + }, + { // Entry 26 + 0x1.fc0a8effff421db6014956cf936c5246p-7, + 0x1.000002p-6 + }, + { // Entry 27 + 0x1.ffffc40009aaa8e9ab0190ff8c14b319p-19, + 0x1.000002p-18 + }, + { // Entry 28 + 0x1.000000fffffd55555755555888887dddp-23, + 0x1.000002p-23 + }, + { // Entry 29 + 0x1.000001ffffbfffff0000145555d5554ep-41, + 0x1.000002p-41 + }, + { // Entry 30 + 0x1.e270851b92b64555fb421203aa0bcb5cp-4, + 0x1.000008p-3 + }, + { // Entry 31 + 0x1.193ead002577c5e89dc7604b89fc7cebp0, + 0x1.000008p1 + }, + { // Entry 32 + 0x1.193f3cfff9f7d6d8965e4e6b818cb622p0, + 0x1.0000e0p1 + }, + { // Entry 33 + 0x1.ffd006a99ad908d29312234ef301f8a7p-11, + 0x1.0008p-10 + }, + { // Entry 34 + 0x1.f2a7c700004b00f1cb775536c5857252p-5, + 0x1.01128cp-4 + }, + { // Entry 35 + 0x1.cabc19000311437879afccdb6fc91aafp-3, + 0x1.0116p-2 + }, + { // Entry 36 + 0x1.20794701579253647a43cecd04c093e2p4, + 0x1.01fffep26 + }, + { // Entry 37 + 0x1.02d59bfffebbee3ec0c159b239188c69p-7, + 0x1.03dcp-7 + }, + { // Entry 38 + 0x1.ea5f11000fca3ff94bceefddbe67b553p-4, + 0x1.047752p-3 + }, + { // Entry 39 + 0x1.be69c4ffffedd2cb5e5f046e949251cap-2, + 0x1.17c5f0p-1 + }, + { // Entry 40 + 0x1.f40ade790277455219208e6cbce12c81p-3, + 0x1.1b30p-2 + }, + { // Entry 41 + 0x1.b17d614548b69a74509e9d003c096acdp0, + 0x1.1cp2 + }, + { // Entry 42 + 0x1.c4017efffec839b96cd1a043d59e5735p-2, + 0x1.1c1cp-1 + }, + { // Entry 43 + 0x1.6fb67efffb26578a0527f61362ac8fa8p-8, + 0x1.70bf14p-8 + }, + { // Entry 44 + 0x1.7b9b982b27d8fd65f78363d3dedc97b2p-14, + 0x1.7b9ffep-14 + }, + { // Entry 45 + 0x1.4402c0fffffff1ee8f659da5ea3af296p-2, + 0x1.7d2286p-2 + }, + { // Entry 46 + 0x1.453252ffffff9b941dfd07fbfe366e98p3, + 0x1.94d4eap14 + }, + { // Entry 47 + 0x1.981eb6000011b05ecb59c7545ff929fap-4, + 0x1.ad250ap-4 + }, + { // Entry 48 + 0x1.ff1e1e73e713dc5a44e45f9c3f28b7c8p-1, + 0x1.b6ae94p0 + }, + { // Entry 49 + 0x1.990193ffffdd6f9fee37f808cd2663abp-3, + 0x1.c4b528p-3 + }, + { // Entry 50 + 0x1.cd15fefff69640aea34534134c884cf5p-14, + 0x1.cd1c7cp-14 + }, + { // Entry 51 + 0x1.d29b864c3678db9fafb9295703bb2bc1p-7, + 0x1.d5f20ep-7 + }, + { // Entry 52 + 0x1.db8be7c511d00e008415288ce9a25163p-8, + 0x1.dd46aap-8 + }, + { // Entry 53 + 0x1.9a37cb000006cf9ac9e3b0eedec553ffp-2, + 0x1.f88cf6p-2 + }, + { // Entry 54 + 0x1.0b2148000d52175d80c54887b0d4a470p2, + 0x1.ffbffep5 + }, + { // Entry 55 + 0x1.fc090efffd0dee6eb02f2fa5b5d354afp-7, + 0x1.fffe7ep-7 + }, + { // Entry 56 + 0x1.193e2700053065bd8378fbbd3b637eb6p0, + 0x1.fffe7ep0 + }, + { // Entry 57 + 0x1.f82970e7831004cf7a6be71673528989p-6, + 0x1.ffffbep-6 + }, + { // Entry 58 + 0x1.193ea500258270930f8e7d7af244dcffp0, + 0x1.fffff8p0 + }, + { // Entry 59 + 0x1.fffff400004aaaa88aaabb11108d1115p-22, + 0x1.fffffcp-22 + }, + { // Entry 60 + 0x1.11d14de2e6a77280841e892fac90ccfap-1, + 0x1.6a09e6p-1 + }, + { // Entry 61 + 0x1.2ccac6d04834d03c513a0f03d4c89b83p-1, + 0x1.995256p-1 + }, + { // Entry 62 + 0x1.466a92ae5453d95b0ba6631497388e92p-1, + 0x1.c89ac6p-1 + }, + { // Entry 63 + 0x1.5ed1a85999ba7b8b5440ce7e5a6b56f2p-1, + 0x1.f7e336p-1 + }, + { // Entry 64 + 0x1.761c7d56e25f3f7369eb2e8d33b8209cp-1, + 0x1.1395d2p0 + }, + { // Entry 65 + 0x1.8c63d26f597f171e4d44ff4b30356555p-1, + 0x1.2b3a0ap0 + }, + { // Entry 66 + 0x1.a1bd4c9e41df1dbc9bdcf52548fe75b2p-1, + 0x1.42de42p0 + }, + { // Entry 67 + 0x1.b63bf811a5f2ac93a5d17ec91bb5daabp-1, + 0x1.5a827ap0 + }, + { // Entry 68 + 0x1.c9f0adb76b4112afacd4ebe2a82850c6p-1, + 0x1.7226b2p0 + }, + { // Entry 69 + 0x1.dcea66c807b8ed92f41a4c7968b5559fp-1, + 0x1.89caeap0 + }, + { // Entry 70 + 0x1.ef368161759d5a9bb2da51833d2b502bp-1, + 0x1.a16f22p0 + }, + { // Entry 71 + 0x1.00707ca544fcb52315ebafd578b872b3p0, + 0x1.b9135ap0 + }, + { // Entry 72 + 0x1.08fa4b9ede8a0b58b4cad9c182b5bc7ap0, + 0x1.d0b792p0 + }, + { // Entry 73 + 0x1.113d8c489a020b1485aeadcbd8328e39p0, + 0x1.e85bcap0 + }, + { // Entry 74 + 0x1.193ea7aad030a976a4198d55053b7cb5p0, + 0x1.p1 + }, + { // Entry 75 + 0x1.11d14de2e6a77280841e892fac90ccfap-1, + 0x1.6a09e6p-1 + }, + { // Entry 76 + 0x1.26990d712acaf377db999b7a4d6f0d77p-1, + 0x1.8e3e16p-1 + }, + { // Entry 77 + 0x1.3a9149340db314ea32356ecefac481p-1, + 0x1.b27246p-1 + }, + { // Entry 78 + 0x1.4dc99695710c65b9bcf0bb6b8edd5d21p-1, + 0x1.d6a676p-1 + }, + { // Entry 79 + 0x1.604fd9d3719dfe935e33ddc7d697914bp-1, + 0x1.fadaa6p-1 + }, + { // Entry 80 + 0x1.7230837fde6a8438b4a457e20a8e06fep-1, + 0x1.0f876cp0 + }, + { // Entry 81 + 0x1.8376bee5d088c50a9458bc6f7ae9a783p-1, + 0x1.21a184p0 + }, + { // Entry 82 + 0x1.942ca20e8cddd1db45fd28a8128ba122p-1, + 0x1.33bb9cp0 + }, + { // Entry 83 + 0x1.a45b4d36cf3486c62245ff3fa2915f6fp-1, + 0x1.45d5b4p0 + }, + { // Entry 84 + 0x1.b40b09d2982dde5fa679cf307e5857c2p-1, + 0x1.57efccp0 + }, + { // Entry 85 + 0x1.c343641957c53687deafd15a44326c6cp-1, + 0x1.6a09e4p0 + }, + { // Entry 86 + 0x1.1e85f5e7040d03dec59a5f3e3c6be5cfp-1, + 0x1.80p-1 + }, + { // Entry 87 + 0x1.34024a8c5f61c82ac61e318087908df6p-1, + 0x1.a66666p-1 + }, + { // Entry 88 + 0x1.48a112280d6abde96ac67b1fb5ecb146p-1, + 0x1.ccccccp-1 + }, + { // Entry 89 + 0x1.5c73756fb0dea2087cd90d8b7bc997a9p-1, + 0x1.f33332p-1 + }, + { // Entry 90 + 0x1.6f88b1bee42272ff0a57db75096d585ep-1, + 0x1.0cccccp0 + }, + { // Entry 91 + 0x1.81ee60afb50199b91090d89ef318de90p-1, + 0x1.20p0 + }, + { // Entry 92 + 0x1.93b0af9c4ab8019e279f9c3bc8a37955p-1, + 0x1.333334p0 + }, + { // Entry 93 + 0x1.a4da932e285ccc3fc07f118701145a41p-1, + 0x1.466668p0 + }, + { // Entry 94 + 0x1.b575ef12280c4d1b4f06a46e25e8a4a6p-1, + 0x1.59999cp0 + }, + { // Entry 95 + 0x1.c58bb849aa7457a9abbdac063833d724p-1, + 0x1.6cccd0p0 + }, + { // Entry 96 + 0x1.d5240f0e0e077a082b27e2fc06cc768ap-1, + 0x1.80p0 + }, + { // Entry 97 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.p0 + }, + { // Entry 98 + 0x1.7bdf36901c7f350041da6ef1304395cep-1, + 0x1.19999ap0 + }, + { // Entry 99 + 0x1.93b0af9c4ab8019e279f9c3bc8a37955p-1, + 0x1.333334p0 + }, + { // Entry 100 + 0x1.aa731192391a8863f4bfe8452991c141p-1, + 0x1.4ccccep0 + }, + { // Entry 101 + 0x1.c03d718c8b4dafcae9e8be78cf83cbf4p-1, + 0x1.666668p0 + }, + { // Entry 102 + 0x1.d52410a7a7a06fcabadb6d90a4a19793p-1, + 0x1.800002p0 + }, + { // Entry 103 + 0x1.e938cda74ef6d0be179304b52619eb82p-1, + 0x1.99999cp0 + }, + { // Entry 104 + 0x1.fc8b8126826242614b481d83aaec3cbdp-1, + 0x1.b33336p0 + }, + { // Entry 105 + 0x1.07952480b0ea35a6256b2037158f39fdp0, + 0x1.ccccd0p0 + }, + { // Entry 106 + 0x1.1090e340e02935eda17728b57dbb2974p0, + 0x1.e6666ap0 + }, + { // Entry 107 + 0x1.193ea7aad030a976a4198d55053b7cb5p0, + 0x1.p1 + }, + { // Entry 108 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.p-1 + }, + { // Entry 109 + -0x1.3217b042fc85e510ffef322447286167p-1, + -0x1.ccccccp-2 + }, + { // Entry 110 + -0x1.058aee52bbf036e43da60fe740480ec8p-1, + -0x1.999998p-2 + }, + { // Entry 111 + -0x1.b91f246ff08e2be21ff79355d363de75p-2, + -0x1.666664p-2 + }, + { // Entry 112 + -0x1.6d3c2dbbcad2f6c5b9711be3c95acd83p-2, + -0x1.333330p-2 + }, + { // Entry 113 + -0x1.26961d134dbb2783bd621217b5546c80p-2, + -0x1.fffffap-3 + }, + { // Entry 114 + -0x1.c8ff7579a9a52ac25bb899dbd264ce86p-3, + -0x1.999994p-3 + }, + { // Entry 115 + -0x1.4cd6b35b45fbb9ed92ccfd7f10d29dfcp-3, + -0x1.33332ep-3 + }, + { // Entry 116 + -0x1.af8e7765f96eba7449d2e369edb815d8p-4, + -0x1.999990p-4 + }, + { // Entry 117 + -0x1.a431c11b1271b3c8501cfaf9d3319015p-5, + -0x1.999986p-5 + }, + { // Entry 118 + 0.0, + 0.0 + }, + { // Entry 119 + 0.0, + 0.0 + }, + { // Entry 120 + 0x1.8fb06450b296f7b66ab1a549ae4826a2p-5, + 0x1.99999ap-5 + }, + { // Entry 121 + 0x1.8663f7f0dbb23a23b18a99f13b06839ap-4, + 0x1.99999ap-4 + }, + { // Entry 122 + 0x1.1e3b830fe6a17974c7bd84c4e3eab82cp-3, + 0x1.333334p-3 + }, + { // Entry 123 + 0x1.756501739ebcb722ad1079954ab64abbp-3, + 0x1.99999ap-3 + }, + { // Entry 124 + 0x1.c8ff7c79a9a21ac25d81ef2ffb9a24aep-3, + 0x1.p-2 + }, + { // Entry 125 + 0x1.0ca9385ba5764f40265b8842277dec27p-2, + 0x1.333334p-2 + }, + { // Entry 126 + 0x1.334e9f7738caf691d9028f70d0039fefp-2, + 0x1.666668p-2 + }, + { // Entry 127 + 0x1.588c2f480eb6532d57552d24a22c18b8p-2, + 0x1.99999cp-2 + }, + { // Entry 128 + 0x1.7c7b2a6204723e0ab52a960a21dbe461p-2, + 0x1.ccccd0p-2 + }, + { // Entry 129 + 0x1.9f323ecbf984bf2b68d766f405221819p-2, + 0x1.p-1 + }, + { // Entry 130 + -0x1.7f7425b73e3d1503aef4db985cf47e98p1, + -0x1.e66666p-1 + }, + { // Entry 131 + -0x1.26bb19bb5555582dca0301cc5afb0340p1, + -0x1.ccccccp-1 + }, + { // Entry 132 + -0x1.e5a9a3c3ac498090b9d029dbb4ad807ap0, + -0x1.b33332p-1 + }, + { // Entry 133 + -0x1.9c041b7ed8db36afca225000b2030fd2p0, + -0x1.999998p-1 + }, + { // Entry 134 + -0x1.62e42befa3a6f3577e72121ab28fcb3cp0, + -0x1.7ffffep-1 + }, + { // Entry 135 + -0x1.34378bcbda7a06e4efec7643b0ba89cbp0, + -0x1.666664p-1 + }, + { // Entry 136 + -0x1.0cc1208b56d4b4c06755206193cd1ceap0, + -0x1.4ccccap-1 + }, + { // Entry 137 + -0x1.d524070e0e177a08007d38d15c203245p-1, + -0x1.333330p-1 + }, + { // Entry 138 + -0x1.98d5f831b831ae342b6d390d5ee4078ap-1, + -0x1.199996p-1 + }, + { // Entry 139 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.p-1 + }, + { // Entry 140 + 0x1.1542457337d42e1c6b73c89d866ba171p6, + 0x1.p100 + }, + { // Entry 141 + 0x1.15a3de7291226038f89b79079de74b15p6, + 0x1.19999ap100 + }, + { // Entry 142 + 0x1.15fcf7f671a38b9552200b4c17f03284p6, + 0x1.333334p100 + }, + { // Entry 143 + 0x1.164eeeaea72addd7387b5fd890994481p6, + 0x1.4ccccep100 + }, + { // Entry 144 + 0x1.169ad1a55b50990c54e1e650029fc95ap6, + 0x1.666668p100 + }, + { // Entry 145 + 0x1.16e177b7592304a2b3519037089451c5p6, + 0x1.800002p100 + }, + { // Entry 146 + 0x1.17238e1ada469675b97116744955a040p6, + 0x1.99999cp100 + }, + { // Entry 147 + 0x1.1761a27cf0fff16c1e86b183310631dfp6, + 0x1.b33336p100 + }, + { // Entry 148 + 0x1.179c2a39af642757a6a61b00bba160aep6, + 0x1.ccccd0p100 + }, + { // Entry 149 + 0x1.17d3879ff3b917735e3bb947a1e5476fp6, + 0x1.e6666ap100 + }, + { // Entry 150 + 0x1.18080dd3171b6c031a9b576be65b6d4cp6, + 0x1.p101 + }, + { // Entry 151 + 0x1.62e42feba39ef15793c611dab1909808p6, + 0x1.fffffep127 + }, + { // Entry 152 + 0.0f, + 0x1.p-149 + }, + { // Entry 153 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 154 + 0x1.11d14cb6fa73c6e3e2b32fdc2e39187cp-1, + 0x1.6a09e4p-1 + }, + { // Entry 155 + 0x1.11d14de2e6a77280841e892fac90ccfap-1, + 0x1.6a09e6p-1 + }, + { // Entry 156 + 0x1.11d14f0ed2da6e6c589fb5f4332d476fp-1, + 0x1.6a09e8p-1 + }, + { // Entry 157 + -0x1.3a5ac1c04c5f3b4913b799da9d738173p0, + -0x1.6a09e8p-1 + }, + { // Entry 158 + -0x1.3a5abe5642755d2215d06656abb38c5dp0, + -0x1.6a09e6p-1 + }, + { // Entry 159 + -0x1.3a5abaec38972722a15fd1d5c0a89c36p0, + -0x1.6a09e4p-1 + }, + { // Entry 160 + 0x1.c343641957c53687deafd15a44326c6cp-1, + 0x1.6a09e4p0 + }, + { // Entry 161 + 0x1.c34365c17f5fcd5f0800083c5f3f2de3p-1, + 0x1.6a09e6p0 + }, + { // Entry 162 + 0x1.c3436769a6f904d49759471bcfce4490p-1, + 0x1.6a09e8p0 + }, + { // Entry 163 + 0x1.9f323d76a42f30f2853c89b7f554a97bp-2, + 0x1.fffffep-2 + }, + { // Entry 164 + 0x1.9f323ecbf984bf2b68d766f405221819p-2, + 0x1.p-1 + }, + { // Entry 165 + 0x1.9f324176a42e8647db03a6298d08cf83p-2, + 0x1.000002p-1 + }, + { // Entry 166 + 0x1.1e85f4c271c38bb4f9b938ae62856a75p-1, + 0x1.7ffffep-1 + }, + { // Entry 167 + 0x1.1e85f5e7040d03dec59a5f3e3c6be5cfp-1, + 0x1.80p-1 + }, + { // Entry 168 + 0x1.1e85f70b9655d4d98c420da42f457a6ep-1, + 0x1.800002p-1 + }, + { // Entry 169 + -0x1.62e433efa3a6f357a91cbcc55d3c0f80p0, + -0x1.800002p-1 + }, + { // Entry 170 + -0x1.62e42fefa39ef35793c7673007e5ed5ep0, + -0x1.80p-1 + }, + { // Entry 171 + -0x1.62e42befa3a6f3577e72121ab28fcb3cp0, + -0x1.7ffffep-1 + }, + { // Entry 172 + 0x1.d5240d74746d3c9786f9771f52074ef3p-1, + 0x1.7ffffep0 + }, + { // Entry 173 + 0x1.d5240f0e0e077a082b27e2fc06cc768ap-1, + 0x1.80p0 + }, + { // Entry 174 + 0x1.d52410a7a7a06fcabadb6d90a4a19793p-1, + 0x1.800002p0 + }, + { // Entry 175 + -0x1.0a2b23f3bab73681aed58d6405ec7206p4, + -0x1.fffffep-1 + }, + { // Entry 176 + 0x1.9c041eb20c0617f78d606f27acf69e28p0, + 0x1.fffffep1 + }, + { // Entry 177 + 0x1.9c041f7ed8d336afdf77a516075931f4p0, + 0x1.p2 + }, + { // Entry 178 + 0x1.9c042118726b889b65f3e3e28e3e4e66p0, + 0x1.000002p2 + }, + { // Entry 179 + 0x1.193ea7002585c5e86b1cb66b1832016cp0, + 0x1.fffffep0 + }, + { // Entry 180 + 0x1.193ea7aad030a976a4198d55053b7cb5p0, + 0x1.p1 + }, + { // Entry 181 + 0x1.193ea90025851b3dc15599f89374611bp0, + 0x1.000002p1 + }, + { // Entry 182 + 0x1.62e42eefa39eb35793b211daaa909805p-1, + 0x1.fffffep-1 + }, + { // Entry 183 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.p0 + }, + { // Entry 184 + 0x1.62e431efa39df357947211da3290986fp-1, + 0x1.000002p0 + }, + { // Entry 185 + 0x1.9f323d76a42f30f2853c89b7f554a97bp-2, + 0x1.fffffep-2 + }, + { // Entry 186 + 0x1.9f323ecbf984bf2b68d766f405221819p-2, + 0x1.p-1 + }, + { // Entry 187 + 0x1.9f324176a42e8647db03a6298d08cf83p-2, + 0x1.000002p-1 + }, + { // Entry 188 + 0x1.c8ff7ae010085833015383537a710bf7p-3, + 0x1.fffffep-3 + }, + { // Entry 189 + 0x1.c8ff7c79a9a21ac25d81ef2ffb9a24aep-3, + 0x1.p-2 + }, + { // Entry 190 + 0x1.c8ff7facdcd4aa1e86a3628ed2816e49p-3, + 0x1.000002p-2 + }, + { // Entry 191 + 0x1.e270751b92bc7e3985ba2b4eda27e177p-4, + 0x1.fffffep-4 + }, + { // Entry 192 + 0x1.e27076e2af2e5e9ea87ffe1fe9e155dbp-4, + 0x1.p-3 + }, + { // Entry 193 + 0x1.e2707a70e81187b4c829d7073485c254p-4, + 0x1.000002p-3 + }, + { // Entry 194 + 0x1.f0a30a1f34487609a04c201edd1f6224p-5, + 0x1.fffffep-5 + }, + { // Entry 195 + 0x1.f0a30c01162a6617cc9716eeb32f131ap-5, + 0x1.p-4 + }, + { // Entry 196 + 0x1.f0a30fc4d9edf12a66bd3268f53eb247p-5, + 0x1.000002p-4 + }, + { // Entry 197 + 0x1.f829aef70710f587dcdc1e46f5c8fc28p-6, + 0x1.fffffep-6 + }, + { // Entry 198 + 0x1.f829b0e7833004cf8fc13c7bc8a7ebabp-6, + 0x1.p-5 + }, + { // Entry 199 + 0x1.f829b4c87b6df63c671750b0d49bd0d0p-6, + 0x1.000002p-5 + }, + { // Entry 200 + 0x1.fc0a8917a0bc40f9af9b81ceffb6876ap-7, + 0x1.fffffep-7 + }, + { // Entry 201 + 0x1.fc0a8b0fc03e3cf9eda74d37abd56df5p-7, + 0x1.p-6 + }, + { // Entry 202 + 0x1.fc0a8effff421db6014956cf936c5246p-7, + 0x1.000002p-6 + }, + { // Entry 203 + 0x1.fe02a4b4fe886e0adfcd9bf770796795p-8, + 0x1.fffffep-8 + }, + { // Entry 204 + 0x1.fe02a6b106788fc37690391dc282d2b3p-8, + 0x1.p-7 + }, + { // Entry 205 + 0x1.fe02aaa91658c7641591cbf711392789p-8, + 0x1.000002p-7 + }, + { // Entry 206 + 0x1.ff00a82d0ebe01a481bb62141d1d53b5p-9, + 0x1.fffffep-9 + }, + { // Entry 207 + 0x1.ff00aa2b10bc04a086b569b4d4b76919p-9, + 0x1.p-8 + }, + { // Entry 208 + 0x1.ff00ae2714b804a47ec15f0e31f390edp-9, + 0x1.000002p-8 + }, + { // Entry 209 + 0x1.ff80289bb08ea6eb088098a49a71d9d9p-10, + 0x1.fffffep-10 + }, + { // Entry 210 + 0x1.ff802a9ab10e678a78e854f8ec6ac72bp-10, + 0x1.p-9 + }, + { // Entry 211 + 0x1.ff802e98b20de5cc57794db0a1879185p-10, + 0x1.000002p-9 + }, + { // Entry 212 + 0x1.ffc008a92af1037e6d78fd20e4e62f56p-11, + 0x1.fffffep-11 + }, + { // Entry 213 + 0x1.ffc00aa8ab10fbc04d051924c9347471p-11, + 0x1.p-10 + }, + { // Entry 214 + 0x1.ffc00ea7ab50eac4cbd56964e4284cb6p-11, + 0x1.000002p-10 + }, + { // Entry 215 + 0x1.fff7fe2ab9aa310ce6c785f0bd1aefcfp-14, + 0x1.fffffep-14 + }, + { // Entry 216 + 0x1.fff8002aa9aab110e6678af0afc3daa4p-14, + 0x1.p-13 + }, + { // Entry 217 + 0x1.fff8042a89abb0e8e8a770f314eeb25dp-14, + 0x1.000002p-13 + }, + { // Entry 218 + -0x1.62e433efa3a2f357991cbc8d5d3b4f80p-1, + -0x1.000002p-1 + }, + { // Entry 219 + -0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + -0x1.p-1 + }, + { // Entry 220 + -0x1.62e42defa39ff357931cbc85dd3b424dp-1, + -0x1.fffffep-2 + }, + { // Entry 221 + -0x1.269623bdf864b5bca2aac313becfafc7p-2, + -0x1.000002p-2 + }, + { // Entry 222 + -0x1.269621134db92783beb7676c0aa9c2a3p-2, + -0x1.p-2 + }, + { // Entry 223 + -0x1.26961fbdf8640b11f78e514c72f59cb5p-2, + -0x1.fffffep-3 + }, + { // Entry 224 + -0x1.1178ea6ba2da5a9f4da9ec87413daa29p-3, + -0x1.000002p-3 + }, + { // Entry 225 + -0x1.1178e8227e47bde338b41fc72de81e3bp-3, + -0x1.p-3 + }, + { // Entry 226 + -0x1.1178e6fdebfeae36d034bf0026e7ba26p-3, + -0x1.fffffep-4 + }, + { // Entry 227 + -0x1.08598d7c05c2af150ef0536d3a6bec43p-4, + -0x1.000002p-4 + }, + { // Entry 228 + -0x1.08598b59e3a0688a3fd9bf503372c12fp-4, + -0x1.p-4 + }, + { // Entry 229 + -0x1.08598a48d28f60935a04940d6d173246p-4, + -0x1.fffffep-5 + }, + { // Entry 230 + -0x1.0415daaef8656050097e0aa39f7eb53ep-5, + -0x1.000002p-5 + }, + { // Entry 231 + -0x1.0415d89e7444470173c75d4d8889de0ep-5, + -0x1.p-5 + }, + { // Entry 232 + -0x1.0415d7963233c7238cd1a9779dfbd10fp-5, + -0x1.fffffep-6 + }, + { // Entry 233 + -0x1.02056791560685012dd216873106670ep-6, + -0x1.000002p-6 + }, + { // Entry 234 + -0x1.020565893584749f23a105b9c7bb9a6fp-6, + -0x1.p-6 + }, + { // Entry 235 + -0x1.020564852543729f44a720c573005c5fp-6, + -0x1.fffffep-7 + }, + { // Entry 236 + -0x1.0101595c95f736dd7dddd4f4a84fc30ep-7, + -0x1.000002p-7 + }, + { // Entry 237 + -0x1.010157588de7128ccc5a82f9da00f48bp-7, + -0x1.p-7 + }, + { // Entry 238 + -0x1.0101565689df037097f9d05a2038a6fep-7, + -0x1.fffffep-8 + }, + { // Entry 239 + -0x1.008057978ab55beba0ed4c4e688b0fddp-8, + -0x1.000002p-8 + }, + { // Entry 240 + -0x1.0080559588b357e598e33d8d9db37a29p-8, + -0x1.p-8 + }, + { // Entry 241 + -0x1.0080549487b2576599643eb948ddce3cp-8, + -0x1.fffffep-9 + }, + { // Entry 242 + -0x1.0040175e590a1f9177e773be9c970fbep-9, + -0x1.000002p-9 + }, + { // Entry 243 + -0x1.0040155d5889de70671eeec0bfcefe53p-9, + -0x1.p-9 + }, + { // Entry 244 + -0x1.0040145cd849bea09f4b0cbe55e0522ap-9, + -0x1.fffffep-10 + }, + { // Entry 245 + -0x1.00200756d5a89bb7bd700a29d438709dp-10, + -0x1.000002p-10 + }, + { // Entry 246 + -0x1.00200556558893357cd7e1f486bd0705p-10, + -0x1.p-10 + }, + { // Entry 247 + -0x1.0020045615788f548c9dd3ebcc957ecfp-10, + -0x1.fffffep-11 + }, + { // Entry 248 + -0x1.0004021565d5d89c9efe7d2c354c8573p-13, + -0x1.000002p-13 + }, + { // Entry 249 + -0x1.0004001555d558889dde702b028c9996p-13, + -0x1.p-13 + }, + { // Entry 250 + -0x1.0003ff154dd5188a9e0e72ab0936642cp-13, + -0x1.fffffep-14 + }, + { // Entry 251 + 0x1.732426090cb8287b20767f822cff213fp-1, + 0x1.1082aep0 + }, + { // Entry 252 + 0x1.732427f90e136dae43644376436d483ap-1, + 0x1.1082b0p0 + }, + { // Entry 253 + 0x1.732429e90f6cd25ec74c889c28bbeb0dp-1, + 0x1.1082b2p0 + }, + { // Entry 254 + 0x1.73242bd910c4568cafd24e8cbead4f8cp-1, + 0x1.1082b4p0 + }, + { // Entry 255 + 0x1.73242dc91219fa38009894d655459f92p-1, + 0x1.1082b6p0 + }, + { // Entry 256 + 0x1.73242fb9136dbd60bd425afcaacb11f0p-1, + 0x1.1082b8p0 + }, + { // Entry 257 + 0x1.732431a914bfa006e972a078ebc6136bp-1, + 0x1.1082bap0 + }, + { // Entry 258 + -0x1.0000031332fb3170f147bbabd5a5dbe2p-4, + -0x1.f0540ap-5 + }, + { // Entry 259 + -0x1.00000202b0458e4ed1041496e7335a4dp-4, + -0x1.f05408p-5 + }, + { // Entry 260 + -0x1.000000f22d8ffd4e110ab2e7abbf098bp-4, + -0x1.f05406p-5 + }, + { // Entry 261 + -0x1.ffffffc355b4fcdd62b25a0e3f78a172p-5, + -0x1.f05404p-5 + }, + { // Entry 262 + -0x1.fffffda2504a236163da32bc8033b657p-5, + -0x1.f05402p-5 + }, + { // Entry 263 + -0x1.fffffb814adf6e2825881cac148330d7p-5, + -0x1.f054p-5 + }, + { // Entry 264 + -0x1.fffff9604574dd31a7b744aef831786ep-5, + -0x1.f053fep-5 + }, + { // Entry 265 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 266 + 0x1.62e42feba39ef15793c611dab1909808p6, + 0x1.fffffep127 + }, + { // Entry 267 + 0x1.62e42fe7a39eeb5793bcbc854d3b429ap6, + 0x1.fffffcp127 + }, + { // Entry 268 + 0x1.6bcbed6499137a6d8cb88a3b46fe313bp0, + 0x1.921fb6p1 + }, + { // Entry 269 + 0x1.e3703e42b92e44cc4a16c64759347ba9p-1, + 0x1.921fb6p0 + }, + { // Entry 270 + 0x1.62e431efa39df357947211da3290986fp-1, + 0x1.000002p0 + }, + { // Entry 271 + 0x1.62e42fefa39ef35793c7673007e5ed5ep-1, + 0x1.p0 + }, + { // Entry 272 + -HUGE_VALF, + -0x1.p0 + }, + { // Entry 273 + 0x1.62e42eefa39eb35793b211daaa909805p-1, + 0x1.fffffep-1 + }, + { // Entry 274 + -0x1.0a2b23f3bab73681aed58d6405ec7206p4, + -0x1.fffffep-1 + }, + { // Entry 275 + 0x1.28c6c410c6e97e86ac65cbbaf9be56e1p-1, + 0x1.921fb6p-1 + }, + { // Entry 276 + -0x1.89fa00c1dfad872a5efe4c31eb7dddb5p0, + -0x1.921fb6p-1 + }, + { // Entry 277 + 0x1.000001fffffffffffffffffffffffffdp-126, + 0x1.000002p-126 + }, + { // Entry 278 + -0x1.00000200000000000000000000000002p-126, + -0x1.000002p-126 + }, + { // Entry 279 + 0x1.fffffffffffffffffffffffffffffffcp-127, + 0x1.p-126 + }, + { // Entry 280 + -0x1.00000000000000000000000000000002p-126, + -0x1.p-126 + }, + { // Entry 281 + 0x1.fffffbfffffffffffffffffffffffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 282 + -0x1.fffffc00000000000000000000000003p-127, + -0x1.fffffcp-127 + }, + { // Entry 283 + 0x1.fffff7fffffffffffffffffffffffffcp-127, + 0x1.fffff8p-127 + }, + { // Entry 284 + -0x1.fffff800000000000000000000000003p-127, + -0x1.fffff8p-127 + }, + { // Entry 285 + 0x1.ffffffffffffffffffffffffffffffffp-149, + 0x1.p-148 + }, + { // Entry 286 + -0x1.p-148, + -0x1.p-148 + }, + { // Entry 287 + 0.0f, + 0x1.p-149 + }, + { // Entry 288 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 289 + 0.0, + 0.0f + }, + { // Entry 290 + -0.0, + -0.0f + } +}; diff --git a/tests/math_data/log2_intel_data.h b/tests/math_data/log2_intel_data.h new file mode 100644 index 000000000..8a4fb7920 --- /dev/null +++ b/tests/math_data/log2_intel_data.h @@ -0,0 +1,1422 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_log2_intel_data[] = { + { // Entry 0 + -0x1.fefffffffffffff4755c4d6a3e815099p9, + 0x1.0000000000001p-1022 + }, + { // Entry 1 + -0x1.dfffffffffa3a7ffc265aaf2255b6929p3, + 0x1.0000000002001p-15 + }, + { // Entry 2 + 0x1.14ff58be06e4eb0f63ba8e7579bab913p-37, + 0x1.00000000060p0 + }, + { // Entry 3 + 0x1.14ff5a1566a9a8000208af7208121486p-26, + 0x1.0000003000004p0 + }, + { // Entry 4 + 0x1.4329e6fafed4ec17674fb20107ee4738p-24, + 0x1.000000ep0 + }, + { // Entry 5 + 0x1.f2d8fc80dac97800003cbce6797ac725p-22, + 0x1.0000056719764p0 + }, + { // Entry 6 + 0x1.dc413771d9f3c80050b7ef09134bfc65p-10, + 0x1.005294a5294a4p0 + }, + { // Entry 7 + 0x1.f94f46da272ae87214f66783dc0012aep-10, + 0x1.00579f3c8a71dp0 + }, + { // Entry 8 + 0x1.5af457c06976d86934e812fcabd086a0p-9, + 0x1.00785b0addce9p0 + }, + { // Entry 9 + 0x1.9002e361d485cbe42f7c524eb194d904p6, + 0x1.0080402010080p100 + }, + { // Entry 10 + 0x1.ebccc1095cfa8866ace79cfc00544c63p-9, + 0x1.00aaaaaaaa9abp0 + }, + { // Entry 11 + 0x1.6fe50b6ef08517f8e37b001794f4441cp-7, + 0x1.020p0 + }, + { // Entry 12 + -0x1.f15f624786a9ffffff74dc63a8516430p-1, + 0x1.051eb856134c8p-1 + }, + { // Entry 13 + 0x1.d73e46341148efff33d83f08a3113bb1p-6, + 0x1.0527acc8ad0c0p0 + }, + { // Entry 14 + 0x1.06844f3329cf480160c9207b0fe9686dp-5, + 0x1.05bffd7177f90p0 + }, + { // Entry 15 + 0x1.6d16ccbfe831300071d2e127dcadc62cp-5, + 0x1.080813d392eeap0 + }, + { // Entry 16 + 0x1.bd735eb18cf5e801185222972fe7d7f7p-5, + 0x1.09d53e5078566p0 + }, + { // Entry 17 + 0x1.883a578a2144d80000082236bb975a7bp6, + 0x1.0a4fea894ce63p98 + }, + { // Entry 18 + 0x1.e52bb32dde0e37835b09979ee48eb915p-5, + 0x1.0aba57c4ca2d2p0 + }, + { // Entry 19 + 0x1.8c4d60a6f91cffffffc4db521ec23052p1, + 0x1.11a2ad570fc84p3 + }, + { // Entry 20 + 0x1.3c10652cd2c037b722d8c301a9cbb787p-3, + 0x1.1ce739ce739cdp0 + }, + { // Entry 21 + 0x1.25a57ea54060affffd6e2b38d8a6e680p3, + 0x1.214e5031c9c98p9 + }, + { // Entry 22 + -0x1.95d8976fa2bec7fffe44e71ab30da275p-1, + 0x1.2790a7a4ac2e0p-1 + }, + { // Entry 23 + 0x1.ad532cd7cfc0c800fec9752b0728c5e1p-3, + 0x1.280958add66e8p0 + }, + { // Entry 24 + -0x1.92a321a719e2f7ffffa46c9962f213fcp-1, + 0x1.28da10faa7922p-1 + }, + { // Entry 25 + 0x1.f00d883a5154c80b7cdca07e1f4c03b7p-3, + 0x1.2ecc5d98bb317p0 + }, + { // Entry 26 + -0x1.79538de327eb0000008a31eeec5b4479p-1, + 0x1.333333363af15p-1 + }, + { // Entry 27 + -0x1.79538dd93df7d800008833cc9d230deap-1, + 0x1.3333333a5a724p-1 + }, + { // Entry 28 + 0x1.83988d0dfa3b6fffff7c315d9eb388a3p-2, + 0x1.4ccccccd37c59p0 + }, + { // Entry 29 + 0x1.83988d1cb5af2ffffffb364351973dbfp-2, + 0x1.4cccccd08960ap0 + }, + { // Entry 30 + 0x1.60e6235281e10fffff72c07b47d5653ap0, + 0x1.4cccccdabef48p1 + }, + { // Entry 31 + 0x1.325fe221441468000004dbe427ffcc6ap1, + 0x1.5049964882f16p2 + }, + { // Entry 32 + -0x1.95c01a39fbdf57ffa2ec6f697886f6abp0, + 0x1.55555555554d3p-2 + }, + { // Entry 33 + 0x1.b219b408ac406801297f9c0f313a0abcp-2, + 0x1.57715d9c62be2p0 + }, + { // Entry 34 + -0x1.14c560fe68af880e0a0f337d55565281p-1, + 0x1.6p-1 + }, + { // Entry 35 + -0x1.5140ccfbc94ba7fc14cae25af1322e19p3, + 0x1.6057ff1745294p-11 + }, + { // Entry 36 + 0x1.7c44eecc79d9080000884a87ce09a1e3p0, + 0x1.6666667712026p1 + }, + { // Entry 37 + 0x1.f44c3b80ce1b7f53077e2d0ba2df3c58p-2, + 0x1.672ea4c8ed13cp0 + }, + { // Entry 38 + 0x1.7e3d59b76fecf800001f276bfc801af5p0, + 0x1.685132bfb7bd6p1 + }, + { // Entry 39 + -0x1.a02b5ec4fc7c87ff9784e19a86accb9ep2, + 0x1.696p-7 + }, + { // Entry 40 + 0x1.fffffffffff39d44979cc67bcf7dedfap-2, + 0x1.6a09e667f3b9cp0 + }, + { // Entry 41 + -0x1.ffffffffffe3d5cb0585a3840c91514cp-2, + 0x1.6a09e667f3c3bp-1 + }, + { // Entry 42 + -0x1.ebe47960e3c087fe4e5268625f5a697ap-2, + 0x1.6f0p-1 + }, + { // Entry 43 + -0x1.9e9716d1cb72c80133c5f0f373cd97d0p2, + 0x1.6f9be6f9be6f8p-7 + }, + { // Entry 44 + 0x1.182ffdcced70affff9846eab53e769dfp-1, + 0x1.761702ac1314cp0 + }, + { // Entry 45 + -0x1.c5272484399d1fffa79b8c4ab89ea8bcp-2, + 0x1.78c0475799b40p-1 + }, + { // Entry 46 + -0x1.c1bae6863c7b178789fef871a533f17ap-2, + 0x1.79ap-1 + }, + { // Entry 47 + -0x1.b7fcec2565ee77fbd36d69837dd95420p1, + 0x1.7a17944879f04p-4 + }, + { // Entry 48 + 0x1.95c01a410a1af7ffffffff18ac20bc4fp0, + 0x1.8000000756038p1 + }, + { // Entry 49 + -0x1.b5a2a91024a237fc250d48b7dfc575f6p6, + 0x1.81a6a65785de5p-110 + }, + { // Entry 50 + -0x1.5b2c3da19723a80db6a0480592812599p0, + 0x1.9p-2 + }, + { // Entry 51 + -0x1.9596d761c3c1f000942a87960c4e6acap2, + 0x1.954p-7 + }, + { // Entry 52 + -0x1.361f7a0f40acf80008a3cdbb56ef43a3p-2, + 0x1.9f0d1c4a85df8p-1 + }, + { // Entry 53 + -0x1.a64a14ea31ff27ffffc6e0491c00ece0p1, + 0x1.a01f56d5c8bf5p-4 + }, + { // Entry 54 + 0x1.36bda7028a6c18000436ccebd654b112p3, + 0x1.a2f4704a7b7fcp9 + }, + { // Entry 55 + -0x1.9162c8a7c89d6fff3b61696cc0cb7b08p2, + 0x1.a82p-7 + }, + { // Entry 56 + -0x1.3df5f27f08238fff3d930b0aa7b67e19p0, + 0x1.b0ec3b0ec3b0cp-2 + }, + { // Entry 57 + 0x1.c20a0d80f7dc7000c26cf4f5584981e6p0, + 0x1.b0ec3b0ec3b0cp1 + }, + { // Entry 58 + 0x1.f32d6c73fe4eb00000998f802fd894a2p2, + 0x1.bd9cec1c72c90p7 + }, + { // Entry 59 + -0x1.4f575b7d4160880182c6f69306d03c28p-3, + 0x1.c910ef0d6d89fp-1 + }, + { // Entry 60 + -0x1.4f278abffb110801a3d7edcb79ee5f32p-3, + 0x1.c91854af9ee26p-1 + }, + { // Entry 61 + -0x1.285378da90d7e7fb008eedf0a10fba48p-3, + 0x1.cf243ff1971a1p-1 + }, + { // Entry 62 + 0x1.b74949020f785800105ca3140afb53b5p-1, + 0x1.d00000080p0 + }, + { // Entry 63 + -0x1.020fbb4ae01c67fa85f5128eef800678p-3, + 0x1.d52db96328edcp-1 + }, + { // Entry 64 + 0x1.730a8d241efbb7fffff32ce95a694993p1, + 0x1.dd4d6407c04c0p2 + }, + { // Entry 65 + -0x1.7d06d263cf06e8013519197ee311d70dp-4, + 0x1.e007446d5317ap-1 + }, + { // Entry 66 + -0x1.651a043e59908801518f9ad8a730b006p-4, + 0x1.e1f9cfe4da365p-1 + }, + { // Entry 67 + -0x1.c315ace83f6d87ffd47ee348821be931p-5, + 0x1.ecd393ee2a22dp-1 + }, + { // Entry 68 + -0x1.c1a2dd30e92c97fe1e8a8927bca88d09p-5, + 0x1.ece30a99708f3p-1 + }, + { // Entry 69 + -0x1.31811414c9f457fedb339a2a59aa6a15p-5, + 0x1.f2ef441966b20p-1 + }, + { // Entry 70 + -0x1.ff54d4e01906700082476686f339feb0p-6, + 0x1.f50b068c69ab9p-1 + }, + { // Entry 71 + -0x1.fe4764e025a7a8010db1b6cf13da17afp-6, + 0x1.f510bcafa535bp-1 + }, + { // Entry 72 + -0x1.e9c8fb8a7a8ff9f9d482d43f89c910f1p-6, + 0x1.f58p-1 + }, + { // Entry 73 + -0x1.cff929eee46f28012d55ba72f9106a3fp-6, + 0x1.f60c45b178d4dp-1 + }, + { // Entry 74 + -0x1.cfbe0973d009a801f32a0b405f64c8fbp-6, + 0x1.f60d8730dc09ap-1 + }, + { // Entry 75 + -0x1.aef13de1197f92a24897297a335df9e7p-6, + 0x1.f6cp-1 + }, + { // Entry 76 + -0x1.a2551c8f2ac46800ba85b1a1eae0a6e2p-6, + 0x1.f704add85e4a5p-1 + }, + { // Entry 77 + -0x1.a21fbdfed5c5a801e2269de517fa7ab6p-6, + 0x1.f705d098ffd9dp-1 + }, + { // Entry 78 + -0x1.a0b920176bda5800c044f6f904f1595cp-6, + 0x1.f70d7261c2ba0p-1 + }, + { // Entry 79 + -0x1.c587cdb2b5cc67cae4990a6eaf50ba8cp-9, + 0x1.fec603682f6b8p-1 + }, + { // Entry 80 + -0x1.7c16ffe1cccb47d5379db27f7b490df5p-9, + 0x1.fef8ce70306d5p-1 + }, + { // Entry 81 + -0x1.71b0ea42e4e818440ecc7e467e125d9cp-9, + 0x1.ff0000000000cp-1 + }, + { // Entry 82 + -0x1.71b0ea42c98838d39811a1f869da817dp-9, + 0x1.ff0000000013bp-1 + }, + { // Entry 83 + -0x1.fe3672e0fc0b17be54e4caf20434a198p-10, + 0x1.ff4f4b00a4f8ep-1 + }, + { // Entry 84 + -0x1.f914d523f178576eeb72527f2b70a29cp-10, + 0x1.ff5111a810580p-1 + }, + { // Entry 85 + -0x1.f914d523ee66777286ccfd4913235594p-10, + 0x1.ff5111a810591p-1 + }, + { // Entry 86 + -0x1.de7e861144ac97832a4e3a5d92856809p-10, + 0x1.ff5a457a5e13ep-1 + }, + { // Entry 87 + -0x1.b6d5736af0ac97d260200b6dea2e4c1bp-10, + 0x1.ff67fffffffffp-1 + }, + { // Entry 88 + -0x1.54c6cf781fa087d33241ec17c4837255p-10, + 0x1.ff89f2f328ed2p-1 + }, + { // Entry 89 + -0x1.fb243353a93b57621a8538f059d9ae9cp-11, + 0x1.ffa826070f4cbp-1 + }, + { // Entry 90 + -0x1.b82668250050d778d8993a10e828c390p-11, + 0x1.ffb3bffffffffp-1 + }, + { // Entry 91 + -0x1.c0050ccaf8b8980002bd379e2a6c6214p2, + 0x1.ffe3fffffc050p-8 + }, + { // Entry 92 + -0x1.7d4120671257680005a86d606dcf2f32p-14, + 0x1.fff7bdf17bdefp-1 + }, + { // Entry 93 + -0x1.018000b8aaf5a80007b2db4c192253cbp10, + 0x1.fffbfffff5ep-1031 + }, + { // Entry 94 + -0x1.14ff72b62bdf4ffe64fb34d59dd51e74p-18, + 0x1.ffff9ffffffffp-1 + }, + { // Entry 95 + -0x1.f8000171548d6801817dc6695b1d7bb1p5, + 0x1.ffffcp-64 + }, + { // Entry 96 + -0x1.fe4a9a023f0577fdff3db84b62d9f2eap-21, + 0x1.ffffe9e4b0628p-1 + }, + { // Entry 97 + -0x1.fa4ac0aba3c2a7fc024396607228ba9dp-21, + 0x1.ffffea110b39dp-1 + }, + { // Entry 98 + -0x1.d6a5b47f4af0f7fd4f300c0b6918c63fp-21, + 0x1.ffffeb9c5b2d8p-1 + }, + { // Entry 99 + -0x1.715477c9d1f81923f8738f56fafb397bp-29, + 0x1.ffffffeffffffp-1 + }, + { // Entry 100 + -0x1.886a76622be3cab6d2103fbee1307674p-36, + 0x1.ffffffffddfffp-1 + }, + { // Entry 101 + -0x1.1500ca1283b5a7fbb9fa255a6b5e382bp-37, + 0x1.fffffffff3fffp-1 + }, + { // Entry 102 + -0x1.8000000000b8b0007b35bf2c5e4202cep1, + 0x1.fffffffffdfffp-4 + }, + { // Entry 103 + -0x1.00000000005c58003d9adf962f210167p2, + 0x1.fffffffffdfffp-5 + }, + { // Entry 104 + -0x1.40000000005c58003d9adf962f210167p2, + 0x1.fffffffffdfffp-6 + }, + { // Entry 105 + -0x1.c0000000005c58003d9adf962f210167p2, + 0x1.fffffffffdfffp-8 + }, + { // Entry 106 + 0x1.7fffffffff474fff84ca40d3a1bdfd31p1, + 0x1.fffffffffdfffp2 + }, + { // Entry 107 + -0x1.9f7f051d0f361814496a13788aa1cd5fp-50, + 0x1.ffffffffffff7p-1 + }, + { // Entry 108 + -0x1.000000000000126e8d1ea7de883e83ddp-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 109 + -0x1.5614640c6fbc486cb295b10f8abd6939p-2, + 0x1.962b5f9438d25p-1 + }, + { // Entry 110 + -0x1.7b67e3d8e1879c50407e8e09ca62d7c2p-3, + 0x1.c24cd8c07de7ep-1 + }, + { // Entry 111 + -0x1.9cab985fe1d8d99581e09a95c3fac8e5p-5, + 0x1.ee6e51ecc2fd7p-1 + }, + { // Entry 112 + 0x1.2ae04a51c9bc0b1821ec386516792b26p-4, + 0x1.0d47e58c84098p0 + }, + { // Entry 113 + 0x1.7e235191cc46bfaed961bbad6075fcacp-3, + 0x1.2358a222a6944p0 + }, + { // Entry 114 + 0x1.2aebb4eed34bf42bc5448a189070885ap-2, + 0x1.39695eb8c91f0p0 + }, + { // Entry 115 + 0x1.8f6e7fe9764c2e91cb4ffe5f0bc8c5bdp-2, + 0x1.4f7a1b4eeba9cp0 + }, + { // Entry 116 + 0x1.ed89a2dc1bb787ab7102598199c4314ep-2, + 0x1.658ad7e50e348p0 + }, + { // Entry 117 + 0x1.2300d01a02b0f4c423375f5f27dc7268p-1, + 0x1.7b9b947b30bf4p0 + }, + { // Entry 118 + 0x1.4cbcd1db0cd52626c88c135def6fe9adp-1, + 0x1.91ac5111534a0p0 + }, + { // Entry 119 + 0x1.743d53168a525134e8343eebcf59fe0ep-1, + 0x1.a7bd0da775d4cp0 + }, + { // Entry 120 + 0x1.99bc604e5748bb53276e45341eb98a06p-1, + 0x1.bdcdca3d985f8p0 + }, + { // Entry 121 + 0x1.bd6b9ae6661c8790715131587a707f63p-1, + 0x1.d3de86d3baea4p0 + }, + { // Entry 122 + 0x1.df75c6b861b93599aaeb3776b6013c7dp-1, + 0x1.e9ef4369dd750p0 + }, + { // Entry 123 + 0x1.ffffffffffffa3aae26b51f401dccee2p-1, + 0x1.ffffffffffffcp0 + }, + { // Entry 124 + -0x1.000000000000126e8d1ea7de883e83ddp-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 125 + -0x1.733246b9a317f0bca830a0c588c3277bp-2, + 0x1.8e3e170bf282dp-1 + }, + { // Entry 126 + -0x1.e54e37a9c4bd980cfe450419c6f883fcp-3, + 0x1.b27247aff148ep-1 + }, + { // Entry 127 + -0x1.f19dcbcf827de4f7d32b492b04a24c27p-4, + 0x1.d6a67853f00efp-1 + }, + { // Entry 128 + -0x1.dd88a259f451a87b03861bb7688f43cep-7, + 0x1.fadaa8f7eed50p-1 + }, + { // Entry 129 + 0x1.5c01a39fbd67e68597bbe1ac26c6be25p-4, + 0x1.0f876ccdf6cd9p0 + }, + { // Entry 130 + 0x1.6cb0f6865c8e97c69cfca0255e6776bap-3, + 0x1.21a1851ff630ap0 + }, + { // Entry 131 + 0x1.0fe8572e5293c2a44ea258726691bcdep-2, + 0x1.33bb9d71f593bp0 + }, + { // Entry 132 + 0x1.64594d130cfbbf489ca3faaa8e6ee937p-2, + 0x1.45d5b5c3f4f6cp0 + }, + { // Entry 133 + 0x1.b439310b4187ea516fa4708c4226a66dp-2, + 0x1.57efce15f459dp0 + }, + { // Entry 134 + 0x1.ffffffffffffdb22e5c2b042ef82f844p-2, + 0x1.6a09e667f3bccp0 + }, + { // Entry 135 + -0x1.a8ff971810a5e1817fd3b7d7e5d148bbp-2, + 0x1.8p-1 + }, + { // Entry 136 + -0x1.1c31ddd1b3bdb7e45c68feca52877fddp-2, + 0x1.a666666666666p-1 + }, + { // Entry 137 + -0x1.374d65d9e60937e1e9c3af53f2460781p-3, + 0x1.cccccccccccccp-1 + }, + { // Entry 138 + -0x1.2b38505f8a2a84910fe2def6e099c1a4p-5, + 0x1.f333333333332p-1 + }, + { // Entry 139 + 0x1.20508f547ede543575d3d1c5271c8aebp-4, + 0x1.0ccccccccccccp0 + }, + { // Entry 140 + 0x1.5c01a39fbd67d5d476c5408b1c684536p-3, + 0x1.1ffffffffffffp0 + }, + { // Entry 141 + 0x1.0d58e42b1da11244cfd82a2743f07a46p-2, + 0x1.3333333333332p0 + }, + { // Entry 142 + 0x1.66e8c01641ed632aa3e56de7648499cdp-2, + 0x1.4666666666665p0 + }, + { // Entry 143 + 0x1.bb59b5fafc553e2891d2d31fea53fcb0p-2, + 0x1.5999999999998p0 + }, + { // Entry 144 + 0x1.059cccf99870a58ae5bee787b5da3e26p-1, + 0x1.6cccccccccccbp0 + }, + { // Entry 145 + 0x1.2b803473f7acd1b12c5db00c0f9d85f7p-1, + 0x1.7fffffffffffep0 + }, + { // Entry 146 + 0.0, + 0x1.0p0 + }, + { // Entry 147 + 0x1.199b728cb9d0c325536aa229a8894fd2p-3, + 0x1.199999999999ap0 + }, + { // Entry 148 + 0x1.0d58e42b1da1ac2801254c3b38d1f6e5p-2, + 0x1.3333333333334p0 + }, + { // Entry 149 + 0x1.83988d0c1f611efc28e37b6de8f0d25ep-2, + 0x1.4cccccccccccep0 + }, + { // Entry 150 + 0x1.f113baed305e266df10e8a16d5d1b604p-2, + 0x1.6666666666668p0 + }, + { // Entry 151 + 0x1.2b803473f7ad4ccd53ce981c057004fdp-1, + 0x1.8000000000002p0 + }, + { // Entry 152 + 0x1.5b2c3da19723ed4d8ccfca8e89888f01p-1, + 0x1.999999999999cp0 + }, + { // Entry 153 + 0x1.87f42b97294a21112b6763a4c5b15c5ep-1, + 0x1.b333333333336p0 + }, + { // Entry 154 + 0x1.b22ca689867e189efbc280384c02430cp-1, + 0x1.cccccccccccd0p0 + }, + { // Entry 155 + 0x1.da1c9885a0c428156893856b99d4ce5ap-1, + 0x1.e66666666666ap0 + }, + { // Entry 156 + 0x1.p0, + 0x1.0p1 + }, + { // Entry 157 + 0x1.90p6, + 0x1.0p100 + }, + { // Entry 158 + 0x1.908ccdb9465ce86192a9b55114d444a7p6, + 0x1.199999999999ap100 + }, + { // Entry 159 + 0x1.910d58e42b1da1ac2801254c3b38d1f6p6, + 0x1.3333333333334p100 + }, + { // Entry 160 + 0x1.9183988d0c1f611efc28e37b6de8f0d2p6, + 0x1.4cccccccccccep100 + }, + { // Entry 161 + 0x1.91f113baed305e266df10e8a16d5d1b6p6, + 0x1.6666666666668p100 + }, + { // Entry 162 + 0x1.92570068e7ef5a999aa79d30380ae009p6, + 0x1.8000000000002p100 + }, + { // Entry 163 + 0x1.92b6587b432e47da9b199f951d13111ep6, + 0x1.999999999999cp100 + }, + { // Entry 164 + 0x1.930fe8572e5294422256cec7498b62b8p6, + 0x1.b333333333336p100 + }, + { // Entry 165 + 0x1.9364594d130cfc313df7850070980486p6, + 0x1.cccccccccccd0p100 + }, + { // Entry 166 + 0x1.93b439310b4188502ad1270ad733a99cp6, + 0x1.e66666666666ap100 + }, + { // Entry 167 + 0x1.94p6, + 0x1.0p101 + }, + { // Entry 168 + 0x1.90p7, + 0x1.0p200 + }, + { // Entry 169 + 0x1.904666dca32e7430c954daa88a6a2253p7, + 0x1.199999999999ap200 + }, + { // Entry 170 + 0x1.9086ac72158ed0d6140092a61d9c68fbp7, + 0x1.3333333333334p200 + }, + { // Entry 171 + 0x1.90c1cc46860fb08f7e1471bdb6f47869p7, + 0x1.4cccccccccccep200 + }, + { // Entry 172 + 0x1.90f889dd76982f1336f887450b6ae8dbp7, + 0x1.6666666666668p200 + }, + { // Entry 173 + 0x1.912b803473f7ad4ccd53ce981c057004p7, + 0x1.8000000000002p200 + }, + { // Entry 174 + 0x1.915b2c3da19723ed4d8ccfca8e89888fp7, + 0x1.999999999999cp200 + }, + { // Entry 175 + 0x1.9187f42b97294a21112b6763a4c5b15cp7, + 0x1.b333333333336p200 + }, + { // Entry 176 + 0x1.91b22ca689867e189efbc280384c0243p7, + 0x1.cccccccccccd0p200 + }, + { // Entry 177 + 0x1.91da1c9885a0c428156893856b99d4cep7, + 0x1.e66666666666ap200 + }, + { // Entry 178 + 0x1.92p7, + 0x1.0p201 + }, + { // Entry 179 + 0x1.f4p9, + 0x1.0p1000 + }, + { // Entry 180 + 0x1.f41199b728cb9d0c325536aa229a8894p9, + 0x1.199999999999ap1000 + }, + { // Entry 181 + 0x1.f421ab1c8563b435850024a987671a3ep9, + 0x1.3333333333334p1000 + }, + { // Entry 182 + 0x1.f4307311a183ec23df851c6f6dbd1e1ap9, + 0x1.4cccccccccccep1000 + }, + { // Entry 183 + 0x1.f43e22775da60bc4cdbe21d142daba36p9, + 0x1.6666666666668p1000 + }, + { // Entry 184 + 0x1.f44ae00d1cfdeb533354f3a607015c01p9, + 0x1.8000000000002p1000 + }, + { // Entry 185 + 0x1.f456cb0f6865c8fb536333f2a3a26223p9, + 0x1.999999999999cp1000 + }, + { // Entry 186 + 0x1.f461fd0ae5ca5288444ad9d8e9316c57p9, + 0x1.b333333333336p1000 + }, + { // Entry 187 + 0x1.f46c8b29a2619f8627bef0a00e130090p9, + 0x1.cccccccccccd0p1000 + }, + { // Entry 188 + 0x1.f47687262168310a055a24e15ae67533p9, + 0x1.e66666666666ap1000 + }, + { // Entry 189 + 0x1.f480p9, + 0x1.0p1001 + }, + { // Entry 190 + -0x1.715481dd5c5d93663255eca7ba82aeb6p-20, + 0x1.ffffep-1 + }, + { // Entry 191 + -0x1.71547c180a27f362d17a1f59be1bb55dp-21, + 0x1.fffffp-1 + }, + { // Entry 192 + 0.0, + 0x1.0p0 + }, + { // Entry 193 + 0x1.7154708d66755d9fe119ed1e85c13f40p-21, + 0x1.0000080p0 + }, + { // Entry 194 + 0x1.71546ac814f867d7a99ac240f177d35fp-20, + 0x1.00001p0 + }, + { // Entry 195 + -0x1.715476559ad8ce249f3237b562a13af0p-30, + 0x1.fffffff80p-1 + }, + { // Entry 196 + -0x1.71547654298457cc21b07cded2333ea6p-31, + 0x1.fffffffc0p-1 + }, + { // Entry 197 + 0.0, + 0x1.0p0 + }, + { // Entry 198 + 0x1.7154765146db6b26b150b9ea12c16a1ap-31, + 0x1.000000020p0 + }, + { // Entry 199 + 0x1.7154764fd586f4d9be72b1a943d27a16p-30, + 0x1.000000040p0 + }, + { // Entry 200 + -0x1.71547652b8e88bb2a66c90adb569ed7cp-40, + 0x1.fffffffffe0p-1 + }, + { // Entry 201 + -0x1.71547652b88c369511be286039f5fb20p-41, + 0x1.ffffffffff0p-1 + }, + { // Entry 202 + 0.0, + 0x1.0p0 + }, + { // Entry 203 + 0x1.71547652b7d38c59e862106f7e37730ap-41, + 0x1.00000000008p0 + }, + { // Entry 204 + 0x1.71547652b777373c53b460cc3decdcc6p-40, + 0x1.00000000010p0 + }, + { // Entry 205 + -0x1.71547652b8300fa20bda54a6d61b2f2ap-50, + 0x1.ffffffffffff8p-1 + }, + { // Entry 206 + -0x1.71547652b82ff88cc4752923d23e6580p-51, + 0x1.ffffffffffffcp-1 + }, + { // Entry 207 + 0.0, + 0x1.0p0 + }, + { // Entry 208 + 0x1.71547652b82fca6235aad21dd60f75dep-51, + 0x1.0000000000002p0 + }, + { // Entry 209 + 0x1.71547652b82fb34cee45a69addbd4fe6p-50, + 0x1.0000000000004p0 + }, + { // Entry 210 + 0x1.fffffffffffffffa3aae26b51f40630cp9, + 0x1.fffffffffffffp1023 + }, + { // Entry 211 + -0x1.0c80p10, + 0x1.0p-1074 + }, + { // Entry 212 + -0x1.00000000000033138899b7a32401fb1cp-1, + 0x1.6a09e667f3bcbp-1 + }, + { // Entry 213 + -0x1.000000000000126e8d1ea7de883e83ddp-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 214 + -0x1.ffffffffffffe39323473033dbd8c22ap-2, + 0x1.6a09e667f3bcdp-1 + }, + { // Entry 215 + 0x1.ffffffffffff99d8eecc90b9b7fc09c7p-2, + 0x1.6a09e667f3bcbp0 + }, + { // Entry 216 + 0x1.ffffffffffffdb22e5c2b042ef82f844p-2, + 0x1.6a09e667f3bccp0 + }, + { // Entry 217 + 0x1.0000000000000e366e5c67e612139eeap-1, + 0x1.6a09e667f3bcdp0 + }, + { // Entry 218 + -0x1.0000000000000b8aa3b295c17f39e677p0, + 0x1.fffffffffffffp-2 + }, + { // Entry 219 + -0x1.p0, + 0x1.0p-1 + }, + { // Entry 220 + -0x1.ffffffffffffd1d57135a8fa054264d4p-1, + 0x1.0000000000001p-1 + }, + { // Entry 221 + -0x1.a8ff971810a61f0f938c2bdfe202d351p-2, + 0x1.7ffffffffffffp-1 + }, + { // Entry 222 + -0x1.a8ff971810a5e1817fd3b7d7e5d148bbp-2, + 0x1.8p-1 + }, + { // Entry 223 + -0x1.a8ff971810a5a3f36c1b43cfec30544cp-2, + 0x1.8000000000001p-1 + }, + { // Entry 224 + 0x1.2b803473f7acf0783639ea100efe9657p-1, + 0x1.7ffffffffffffp0 + }, + { // Entry 225 + 0x1.2b803473f7ad0f3f401624140d175ba2p-1, + 0x1.8p0 + }, + { // Entry 226 + 0x1.2b803473f7ad2e0649f25e1809e7d5d9p-1, + 0x1.8000000000001p0 + }, + { // Entry 227 + 0x1.ebccc1098ad858c1fcb8223ebc3a2d89p-9, + 0x1.00aaaaaaaaaaap0 + }, + { // Entry 228 + 0x1.ebccc1098b06649e343f78ac72257de7p-9, + 0x1.00aaaaaaaaaabp0 + }, + { // Entry 229 + 0x1.ebccc1098b34707a6bc6cf17493ced63p-9, + 0x1.00aaaaaaaaaacp0 + }, + { // Entry 230 + 0x1.fffffffffffff4755c4d6a3e80c61988p0, + 0x1.fffffffffffffp1 + }, + { // Entry 231 + 0x1.p1, + 0x1.0p2 + }, + { // Entry 232 + 0x1.0000000000000b8aa3b295c17eaf66cap1, + 0x1.0000000000001p2 + }, + { // Entry 233 + 0x1.ffffffffffffe8eab89ad47d018c3311p-1, + 0x1.fffffffffffffp0 + }, + { // Entry 234 + 0x1.p0, + 0x1.0p1 + }, + { // Entry 235 + 0x1.000000000000171547652b82fd5ecd95p0, + 0x1.0000000000001p1 + }, + { // Entry 236 + -0x1.71547652b82fe73ccee9488191df220fp-53, + 0x1.fffffffffffffp-1 + }, + { // Entry 237 + 0.0, + 0x1.0p0 + }, + { // Entry 238 + 0x1.71547652b82fd5ecd95d67df53a9dd50p-52, + 0x1.0000000000001p0 + }, + { // Entry 239 + -0x1.0000000000000b8aa3b295c17f39e677p0, + 0x1.fffffffffffffp-2 + }, + { // Entry 240 + -0x1.p0, + 0x1.0p-1 + }, + { // Entry 241 + -0x1.ffffffffffffd1d57135a8fa054264d4p-1, + 0x1.0000000000001p-1 + }, + { // Entry 242 + -0x1.00000000000005c551d94ae0bf9cf33bp1, + 0x1.fffffffffffffp-3 + }, + { // Entry 243 + -0x1.p1, + 0x1.0p-2 + }, + { // Entry 244 + -0x1.ffffffffffffe8eab89ad47d02a1326ap0, + 0x1.0000000000001p-2 + }, + { // Entry 245 + -0x1.80000000000005c551d94ae0bf9cf33bp1, + 0x1.fffffffffffffp-4 + }, + { // Entry 246 + -0x1.80p1, + 0x1.0p-3 + }, + { // Entry 247 + -0x1.7ffffffffffff4755c4d6a3e81509935p1, + 0x1.0000000000001p-3 + }, + { // Entry 248 + -0x1.00000000000002e2a8eca5705fce799dp2, + 0x1.fffffffffffffp-5 + }, + { // Entry 249 + -0x1.p2, + 0x1.0p-4 + }, + { // Entry 250 + -0x1.fffffffffffff4755c4d6a3e81509935p1, + 0x1.0000000000001p-4 + }, + { // Entry 251 + -0x1.40000000000002e2a8eca5705fce799dp2, + 0x1.fffffffffffffp-6 + }, + { // Entry 252 + -0x1.40p2, + 0x1.0p-5 + }, + { // Entry 253 + -0x1.3ffffffffffffa3aae26b51f40a84c9ap2, + 0x1.0000000000001p-5 + }, + { // Entry 254 + -0x1.80000000000002e2a8eca5705fce799dp2, + 0x1.fffffffffffffp-7 + }, + { // Entry 255 + -0x1.80p2, + 0x1.0p-6 + }, + { // Entry 256 + -0x1.7ffffffffffffa3aae26b51f40a84c9ap2, + 0x1.0000000000001p-6 + }, + { // Entry 257 + -0x1.c0000000000002e2a8eca5705fce799dp2, + 0x1.fffffffffffffp-8 + }, + { // Entry 258 + -0x1.c0p2, + 0x1.0p-7 + }, + { // Entry 259 + -0x1.bffffffffffffa3aae26b51f40a84c9ap2, + 0x1.0000000000001p-7 + }, + { // Entry 260 + -0x1.0000000000000171547652b82fe73ccep3, + 0x1.fffffffffffffp-9 + }, + { // Entry 261 + -0x1.p3, + 0x1.0p-8 + }, + { // Entry 262 + -0x1.fffffffffffffa3aae26b51f40a84c9ap2, + 0x1.0000000000001p-8 + }, + { // Entry 263 + -0x1.2000000000000171547652b82fe73ccep3, + 0x1.fffffffffffffp-10 + }, + { // Entry 264 + -0x1.20p3, + 0x1.0p-9 + }, + { // Entry 265 + -0x1.1ffffffffffffd1d57135a8fa054264dp3, + 0x1.0000000000001p-9 + }, + { // Entry 266 + -0x1.4000000000000171547652b82fe73ccep3, + 0x1.fffffffffffffp-11 + }, + { // Entry 267 + -0x1.40p3, + 0x1.0p-10 + }, + { // Entry 268 + -0x1.3ffffffffffffd1d57135a8fa054264dp3, + 0x1.0000000000001p-10 + }, + { // Entry 269 + -0x1.a000000000000171547652b82fe73ccep3, + 0x1.fffffffffffffp-14 + }, + { // Entry 270 + -0x1.a0p3, + 0x1.0p-13 + }, + { // Entry 271 + -0x1.9ffffffffffffd1d57135a8fa054264dp3, + 0x1.0000000000001p-13 + }, + { // Entry 272 + -0x1.a000000000000171547652b82fe73ccep3, + 0x1.fffffffffffffp-14 + }, + { // Entry 273 + -0x1.a0p3, + 0x1.0p-13 + }, + { // Entry 274 + -0x1.9ffffffffffffd1d57135a8fa054264dp3, + 0x1.0000000000001p-13 + }, + { // Entry 275 + -0x1.80000000000005c551d94ae0bf9cf33bp1, + 0x1.fffffffffffffp-4 + }, + { // Entry 276 + -0x1.80p1, + 0x1.0p-3 + }, + { // Entry 277 + -0x1.7ffffffffffff4755c4d6a3e81509935p1, + 0x1.0000000000001p-3 + }, + { // Entry 278 + -0x1.8a8980abfbd38fec8261ce5ac7b2b316p-3, + 0x1.bffffffffffffp-1 + }, + { // Entry 279 + -0x1.8a8980abfbd32666a9b7e2df60d2bdc6p-3, + 0x1.cp-1 + }, + { // Entry 280 + -0x1.8a8980abfbd2bce0d10df763fdb79032p-3, + 0x1.c000000000001p-1 + }, + { // Entry 281 + -0x1.00000000000002e2a8eca5705fce799dp2, + 0x1.fffffffffffffp-5 + }, + { // Entry 282 + -0x1.p2, + 0x1.0p-4 + }, + { // Entry 283 + -0x1.fffffffffffff4755c4d6a3e81509935p1, + 0x1.0000000000001p-4 + }, + { // Entry 284 + -0x1.7d60496cfbb58b6d8d05c60c1e4defa0p-4, + 0x1.dffffffffffffp-1 + }, + { // Entry 285 + -0x1.7d60496cfbb4c673b4511f8c2b4e4fb7p-4, + 0x1.ep-1 + }, + { // Entry 286 + -0x1.7d60496cfbb40179db9c790c3edf8c5cp-4, + 0x1.e000000000001p-1 + }, + { // Entry 287 + -0x1.40000000000002e2a8eca5705fce799dp2, + 0x1.fffffffffffffp-6 + }, + { // Entry 288 + -0x1.40p2, + 0x1.0p-5 + }, + { // Entry 289 + -0x1.3ffffffffffffa3aae26b51f40a84c9ap2, + 0x1.0000000000001p-5 + }, + { // Entry 290 + -0x1.77394c9d958ed31cc5d7c5bf657ce7c7p-5, + 0x1.effffffffffffp-1 + }, + { // Entry 291 + -0x1.77394c9d958d55de5c380fe0871d757fp-5, + 0x1.fp-1 + }, + { // Entry 292 + -0x1.77394c9d958bd89ff2985a01b50a5933p-5, + 0x1.f000000000001p-1 + }, + { // Entry 293 + -0x1.80000000000002e2a8eca5705fce799dp2, + 0x1.fffffffffffffp-7 + }, + { // Entry 294 + -0x1.80p2, + 0x1.0p-6 + }, + { // Entry 295 + -0x1.7ffffffffffffa3aae26b51f40a84c9ap2, + 0x1.0000000000001p-6 + }, + { // Entry 296 + -0x1.743ee861f35851c7beb5800ff025220ap-6, + 0x1.f7fffffffffffp-1 + }, + { // Entry 297 + -0x1.743ee861f3556365483611f7c0bf059fp-6, + 0x1.f80p-1 + }, + { // Entry 298 + -0x1.743ee861f3527502d1b6a3dfa92b465cp-6, + 0x1.f800000000001p-1 + }, + { // Entry 299 + -0x1.c0000000000002e2a8eca5705fce799dp2, + 0x1.fffffffffffffp-8 + }, + { // Entry 300 + -0x1.c0p2, + 0x1.0p-7 + }, + { // Entry 301 + -0x1.bffffffffffffa3aae26b51f40a84c9ap2, + 0x1.0000000000001p-7 + }, + { // Entry 302 + -0x1.72c7ba20f73846a992511c7918df1e3ep-7, + 0x1.fbfffffffffffp-1 + }, + { // Entry 303 + -0x1.72c7ba20f73275b5d184a2c615b70ad4p-7, + 0x1.fc0p-1 + }, + { // Entry 304 + -0x1.72c7ba20f72ca4c210b8291341746042p-7, + 0x1.fc00000000001p-1 + }, + { // Entry 305 + -0x1.0000000000000171547652b82fe73ccep3, + 0x1.fffffffffffffp-9 + }, + { // Entry 306 + -0x1.p3, + 0x1.0p-8 + }, + { // Entry 307 + -0x1.fffffffffffffa3aae26b51f40a84c9ap2, + 0x1.0000000000001p-8 + }, + { // Entry 308 + -0x1.720d9c06a84180a8de11db415a9c19bfp-8, + 0x1.fdfffffffffffp-1 + }, + { // Entry 309 + -0x1.720d9c06a835ea6ef18f977e5d8a37abp-8, + 0x1.fe0p-1 + }, + { // Entry 310 + -0x1.720d9c06a82a5435050d53bbbd8733d9p-8, + 0x1.fe00000000001p-1 + }, + { // Entry 311 + -0x1.2000000000000171547652b82fe73ccep3, + 0x1.fffffffffffffp-10 + }, + { // Entry 312 + -0x1.20p3, + 0x1.0p-9 + }, + { // Entry 313 + -0x1.1ffffffffffffd1d57135a8fa054264dp3, + 0x1.0000000000001p-9 + }, + { // Entry 314 + -0x1.71b0ea42e614c339acd1274e85c99f12p-9, + 0x1.fefffffffffffp-1 + }, + { // Entry 315 + -0x1.71b0ea42e5fda261dbbd1a498f533398p-9, + 0x1.ff0p-1 + }, + { // Entry 316 + -0x1.71b0ea42e5e6818a0aa90d455240385fp-9, + 0x1.ff00000000001p-1 + }, + { // Entry 317 + -0x1.4000000000000171547652b82fe73ccep3, + 0x1.fffffffffffffp-11 + }, + { // Entry 318 + -0x1.40p3, + 0x1.0p-10 + }, + { // Entry 319 + -0x1.3ffffffffffffd1d57135a8fa054264dp3, + 0x1.0000000000001p-10 + }, + { // Entry 320 + -0x1.7182a894b6ca8f7bca8c2f767eabc572p-10, + 0x1.ff7ffffffffffp-1 + }, + { // Entry 321 + -0x1.7182a894b69c595f7920cea1619c6e57p-10, + 0x1.ff8p-1 + }, + { // Entry 322 + -0x1.7182a894b66e234327b56dcdb69a7d21p-10, + 0x1.ff80000000001p-1 + }, + { // Entry 323 + -0x1.a000000000000171547652b82fe73ccep3, + 0x1.fffffffffffffp-14 + }, + { // Entry 324 + -0x1.a0p3, + 0x1.0p-13 + }, + { // Entry 325 + -0x1.9ffffffffffffd1d57135a8fa054264dp3, + 0x1.0000000000001p-13 + }, + { // Entry 326 + -0x1.715a3bc35aaead4b7ce65d43632af0adp-13, + 0x1.ffeffffffffffp-1 + }, + { // Entry 327 + -0x1.715a3bc3593d4d4a2a239745f6427420p-13, + 0x1.fffp-1 + }, + { // Entry 328 + -0x1.715a3bc357cbed48d760d15414b65d0dp-13, + 0x1.fff0000000001p-1 + }, + { // Entry 329 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 330 + 0x1.fffffffffffffffa3aae26b51f40630cp9, + 0x1.fffffffffffffp1023 + }, + { // Entry 331 + 0x1.fffffffffffffff4755c4d6a3e8097eep9, + 0x1.ffffffffffffep1023 + }, + { // Entry 332 + 0x1.a6c873498ddf71a36f477a776fb34e4bp0, + 0x1.921fb54442d18p1 + }, + { // Entry 333 + 0x1.4d90e6931bbee346de8ef4eedf669c96p-1, + 0x1.921fb54442d18p0 + }, + { // Entry 334 + 0x1.71547652b82fd5ecd95d67df53a9dd50p-52, + 0x1.0000000000001p0 + }, + { // Entry 335 + 0.0, + 0x1.0p0 + }, + { // Entry 336 + -0x1.71547652b82fe73ccee9488191df220fp-53, + 0x1.fffffffffffffp-1 + }, + { // Entry 337 + -0x1.64de32d9c882397242e216224132c6d2p-2, + 0x1.921fb54442d18p-1 + }, + { // Entry 338 + -0x1.fefffffffffffff4755c4d6a3e815099p9, + 0x1.0000000000001p-1022 + }, + { // Entry 339 + -0x1.ffp9, + 0x1.0p-1022 + }, + { // Entry 340 + -0x1.ff0000000000000b8aa3b295c17f6811p9, + 0x1.ffffffffffffep-1023 + }, + { // Entry 341 + -0x1.ff000000000000171547652b82ff88ccp9, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 342 + -0x1.0c40p10, + 0x1.0p-1073 + }, + { // Entry 343 + -0x1.0c80p10, + 0x1.0p-1074 + }, + { // Entry 344 + -HUGE_VAL, + 0.0 + }, + { // Entry 345 + -HUGE_VAL, + -0.0 + }, + { // Entry 346 + 0x1.f4p6, + 0x1.0p125 + }, + { // Entry 347 + -0x1.fcp6, + 0x1.0p-127 + }, + { // Entry 348 + 0x1.p0, + 0x1.0p1 + }, + { // Entry 349 + 0x1.p1, + 0x1.0p2 + }, + { // Entry 350 + -0x1.p0, + 0x1.0p-1 + } +}; diff --git a/tests/math_data/log2f_intel_data.h b/tests/math_data/log2f_intel_data.h new file mode 100644 index 000000000..666a84ef9 --- /dev/null +++ b/tests/math_data/log2f_intel_data.h @@ -0,0 +1,1150 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_log2f_intel_data[] = { + { // Entry 0 + 0x1.715419fdb96231bd1fa15f37bfa42910p-17, + 0x1.000080p0 + }, + { // Entry 1 + 0x1.14fe88ff5753fa56dc27bca056285672p-15, + 0x1.000180p0 + }, + { // Entry 2 + 0x1.715305002e4ae466ed064a01ae55204ep-15, + 0x1.0002p0 + }, + { // Entry 3 + 0x1.4327b20433837a3e2c610a392bbd295ap-14, + 0x1.000380p0 + }, + { // Entry 4 + 0x1.64531effed17eb9b0a93b3ccaa24f82bp-13, + 0x1.0007b8p0 + }, + { // Entry 5 + -0x1.ffe7a4ffff5f125cad7f0468b55a873cp2, + 0x1.004390p-8 + }, + { // Entry 6 + -0x1.4fdd63002e000ea74a80c91b771feb2ep4, + 0x1.0181p-21 + }, + { // Entry 7 + 0x1.61382d01166a5f656628676dd57287c3p-7, + 0x1.01eb80p0 + }, + { // Entry 8 + 0x1.67ea1b041aeef5d06d27db173c4a8ec3p-7, + 0x1.01f4dap0 + }, + { // Entry 9 + 0x1.6f089703fa8b836209e806374014eeeap-7, + 0x1.01feccp0 + }, + { // Entry 10 + 0x1.d8c5b9000072814ba11dc07e3e55730cp-6, + 0x1.052cp0 + }, + { // Entry 11 + 0x1.65ad73003698ae3b6629d42d6d969d65p-5, + 0x1.07ddb4p0 + }, + { // Entry 12 + 0x1.671b720031bff18c21d3c6680b607a97p-5, + 0x1.07e5e0p0 + }, + { // Entry 13 + -0x1.bd01820013d2bdf2e708a03b63cad894p2, + 0x1.0870p-7 + }, + { // Entry 14 + 0x1.bc8a3f002d49ff2fff61bbc88ca84366p-5, + 0x1.09d0p0 + }, + { // Entry 15 + 0x1.d15cfd000ba18b834668273db43a54f4p-5, + 0x1.0a48p0 + }, + { // Entry 16 + 0x1.254503fffff2c7469f0c551c58628c75p-4, + 0x1.0d0686p0 + }, + { // Entry 17 + 0x1.8972445dbe2011fbaf76774ecaa1886bp-4, + 0x1.11a0p0 + }, + { // Entry 18 + -0x1.4e0dddfffd1fadff896c773a983cb069p4, + 0x1.1684p-21 + }, + { // Entry 19 + -0x1.6d9f4300000188d5e28bf9ecd7eb48a3p1, + 0x1.1ac9bcp-3 + }, + { // Entry 20 + 0x1.3e8666fed9e0919054d1723c7bfa2a2ep-3, + 0x1.1d24p0 + }, + { // Entry 21 + -0x1.a9967dfffdea2f22e87a3d2cfb4653e0p-1, + 0x1.1fc530p-1 + }, + { // Entry 22 + -0x1.ac7b430000002b16a835260d35f73f3bp0, + 0x1.40f572p-2 + }, + { // Entry 23 + -0x1.50fd36ffff7b1fe211b2f1e467a808c6p1, + 0x1.4a37aap-3 + }, + { // Entry 24 + -0x1.68e3e700011eed1c8bdf78a5004ec845p4, + 0x1.5c5780p-23 + }, + { // Entry 25 + -0x1.14c560fe68af880e0a0f337d55565281p-1, + 0x1.60p-1 + }, + { // Entry 26 + 0x1.eee0f9e9bd541c2161fbaa601ad44f9dp-2, + 0x1.65ddfap0 + }, + { // Entry 27 + 0x1.ffff6b715e229192074dd520e800523dp-2, + 0x1.6a09c2p0 + }, + { // Entry 28 + 0x1.ffffb4e49986d923a4e540f03b1da0dap-2, + 0x1.6a09d4p0 + }, + { // Entry 29 + -0x1.000008fd564a8532198fd9c602596351p-1, + 0x1.6a09e2p-1 + }, + { // Entry 30 + -0x1.5e7df5fe538ab34efb515ac93b443d55p2, + 0x1.70p-6 + }, + { // Entry 31 + 0x1.3719d8ffda8ee27c20ca5d36ce40a19bp3, + 0x1.a63c60p9 + }, + { // Entry 32 + -0x1.95152a001cb0000297a418bc58741cd8p6, + 0x1.a86a40p-102 + }, + { // Entry 33 + -0x1.a86d52000000dde9cc8582ca6f4adf02p3, + 0x1.aa932cp-14 + }, + { // Entry 34 + -0x1.a65bf4fffdc2eb6e2bba1e155731485cp3, + 0x1.be1dacp-14 + }, + { // Entry 35 + 0x1.19e96affffe46969e091319af39bf01dp3, + 0x1.c0be08p8 + }, + { // Entry 36 + -0x1.6b2194fffbcc473e6b408598b11c0b76p-3, + 0x1.c4c990p-1 + }, + { // Entry 37 + -0x1.b0747afff09129e7c27981832371a2b7p-4, + 0x1.dbde6cp-1 + }, + { // Entry 38 + -0x1.a31d90fffdc06fa674e6c77e0d27325ep3, + 0x1.de9690p-14 + }, + { // Entry 39 + -0x1.7d61ebfff707baf0a4babc7a455fdedap-4, + 0x1.dfffdep-1 + }, + { // Entry 40 + -0x1.8be3350000129024f1746df09b18e1c0p1, + 0x1.e01448p-4 + }, + { // Entry 41 + -0x1.2dab68ffff653aa0f522110f165fc6cdp-4, + 0x1.e684aep-1 + }, + { // Entry 42 + -0x1.1ddc06ffe493eb9e838bc57f1692f071p-5, + 0x1.f3c3c0p-1 + }, + { // Entry 43 + -0x1.fe5c28b51763fd9e597b74b77eaef363p-6, + 0x1.f5104cp-1 + }, + { // Entry 44 + -0x1.fb46c8ffb297bc8b36ec72bf8f845dafp-6, + 0x1.f52108p-1 + }, + { // Entry 45 + -0x1.83a4382bc0ca76ba53a02f5c39dd1105p1, + 0x1.f600a8p-4 + }, + { // Entry 46 + -0x1.c5685effd6dc60c465f6d4566400ea1bp-6, + 0x1.f645bcp-1 + }, + { // Entry 47 + -0x1.c0daa2ffe3fde42c220d9cdd6dba636bp-6, + 0x1.f65e82p-1 + }, + { // Entry 48 + -0x1.a0ab3effb22b2baa230d01d368f486cfp-6, + 0x1.f70dbep-1 + }, + { // Entry 49 + -0x1.9993e6b5eebc60c6416982df9bf027cdp-6, + 0x1.f73462p-1 + }, + { // Entry 50 + -0x1.90db40b3d98bebe6e068b72646536233p-6, + 0x1.f763ecp-1 + }, + { // Entry 51 + -0x1.805ce6d1eec4e554c05d1277b7a61f1ep-6, + 0x1.f7bde0p-1 + }, + { // Entry 52 + -0x1.71c5270003e7400a82571e14d211b1abp-9, + 0x1.fefff2p-1 + }, + { // Entry 53 + -0x1.4fd0950000f9ea163e3b6b379b806a27p-9, + 0x1.ff1770p-1 + }, + { // Entry 54 + -0x1.802e2bfffffc33f278fa52402320f10ap1, + 0x1.ff800cp-4 + }, + { // Entry 55 + -0x1.718867c39aac5ee37685394fe9bfd749p-13, + 0x1.ffeffep-1 + }, + { // Entry 56 + -0x1.72c684e5cfc146d2275210812c0c7f68p-16, + 0x1.fffdfep-1 + }, + { // Entry 57 + -0x1.71552efd6e75c155bd4e4ed94f59a26ap-16, + 0x1.fffep-1 + }, + { // Entry 58 + -0x1.48ef5e00535d9165bbb9b9a8c056f797p-18, + 0x1.ffff8ep-1 + }, + { // Entry 59 + -0x1.71547935612438aa6af6b5495892e719p-22, + 0x1.fffff8p-1 + }, + { // Entry 60 + -0x1.715477c40ca820a04d97be4efccd95a9p-23, + 0x1.fffffcp-1 + }, + { // Entry 61 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 62 + -0x1.000000d4175ddebaa6cc9d6112365229p-1, + 0x1.6a09e6p-1 + }, + { // Entry 63 + -0x1.561462846d15350ee6248ecd4c1b002bp-2, + 0x1.962b60p-1 + }, + { // Entry 64 + -0x1.7b67dba86e896c0a53d2c939ef0d29bfp-3, + 0x1.c24cdap-1 + }, + { // Entry 65 + -0x1.9cab66c58143f2a800e68dbb02f54331p-5, + 0x1.ee6e54p-1 + }, + { // Entry 66 + 0x1.2ae054380d16d8f59673a7e3928246cdp-4, + 0x1.0d47e6p0 + }, + { // Entry 67 + 0x1.7e23503264c4ad371b8f163c4f9aef26p-3, + 0x1.2358a2p0 + }, + { // Entry 68 + 0x1.2aebb187ce6ee362d3103a2200b286e2p-2, + 0x1.39695ep0 + }, + { // Entry 69 + 0x1.8f6e7a2697b530fad3d12a9d6a8f1d3ap-2, + 0x1.4f7a1ap0 + }, + { // Entry 70 + 0x1.ed899b07eb9cb8af2c927ecf12ec7cbep-2, + 0x1.658ad6p0 + }, + { // Entry 71 + 0x1.2300cb4606615b744653e167d86f2813p-1, + 0x1.7b9b92p0 + }, + { // Entry 72 + 0x1.4cbccc36deb50dd3e00c1a4eca18d57ep-1, + 0x1.91ac4ep0 + }, + { // Entry 73 + 0x1.743d4cb7d92562e1484f862b688a46fbp-1, + 0x1.a7bd0ap0 + }, + { // Entry 74 + 0x1.99bc5947999b190ccc67cef041311282p-1, + 0x1.bdcdc6p0 + }, + { // Entry 75 + 0x1.bd6b934775bef13a6359e331efe67a11p-1, + 0x1.d3de82p0 + }, + { // Entry 76 + 0x1.df75be8ef439ce361ebbb13fff3a7b53p-1, + 0x1.e9ef3ep0 + }, + { // Entry 77 + 0x1.fffff758052d13b69dd6c8d6740a3357p-1, + 0x1.fffffap0 + }, + { // Entry 78 + -0x1.000000d4175ddebaa6cc9d6112365229p-1, + 0x1.6a09e6p-1 + }, + { // Entry 79 + -0x1.73324a9b9d2895d79d8ddf07a502bep-2, + 0x1.8e3e16p-1 + }, + { // Entry 80 + -0x1.e54e432361189c3353cc06c2dd27d736p-3, + 0x1.b27246p-1 + }, + { // Entry 81 + -0x1.f19de909d7e63fd264a2c312d0c1789dp-4, + 0x1.d6a676p-1 + }, + { // Entry 82 + -0x1.dd89b738d21d0221c908b8a0c32f1212p-7, + 0x1.fadaa6p-1 + }, + { // Entry 83 + 0x1.5c01921d594ace74709e134409d4ed24p-4, + 0x1.0f876cp0 + }, + { // Entry 84 + 0x1.6cb0eb0cc03326cfabdb68ecee7aba40p-3, + 0x1.21a184p0 + }, + { // Entry 85 + 0x1.0fe8503e467106a65788ddb3a15f5375p-2, + 0x1.33bb9cp0 + }, + { // Entry 86 + 0x1.64594511e637e6f93b5cb2912b99abedp-2, + 0x1.45d5b4p0 + }, + { // Entry 87 + 0x1.b4392815bf92113e75eb0dd2b26fd740p-2, + 0x1.57efccp0 + }, + { // Entry 88 + 0x1.fffff62e925d61652c914504dc3ee2cep-2, + 0x1.6a09e4p0 + }, + { // Entry 89 + -0x1.a8ff971810a5e1817fd3b7d7e5d148bbp-2, + 0x1.80p-1 + }, + { // Entry 90 + -0x1.1c31df37d71943eb77829a1feb37b99ap-2, + 0x1.a66666p-1 + }, + { // Entry 91 + -0x1.374d6afb125968a0c493df15bf69e438p-3, + 0x1.ccccccp-1 + }, + { // Entry 92 + -0x1.2b386cc87f9a4eee785d4a5dbce887b7p-5, + 0x1.f33332p-1 + }, + { // Entry 93 + 0x1.20507dbe3011bddb9a9b123c4341bc4cp-4, + 0x1.0cccccp0 + }, + { // Entry 94 + 0x1.5c01a39fbd6879fa00b120a068badd12p-3, + 0x1.20p0 + }, + { // Entry 95 + 0x1.0d58e803fedbad8f59d5947b2a21a425p-2, + 0x1.333334p0 + }, + { // Entry 96 + 0x1.66e8c754261d0ebda20c00ad74e85091p-2, + 0x1.466668p0 + }, + { // Entry 97 + 0x1.bb59c03d54eb4b10a384046c38ed39fdp-2, + 0x1.59999cp0 + }, + { // Entry 98 + 0x1.059cd374571eb31852640bb553677c83p-1, + 0x1.6cccd0p0 + }, + { // Entry 99 + 0x1.2b803473f7ad0f3f401624140d175ba2p-1, + 0x1.80p0 + }, + { // Entry 100 + 0.0, + 0x1.p0 + }, + { // Entry 101 + 0x1.199b76bf23e221a6231fc33bca41b607p-3, + 0x1.19999ap0 + }, + { // Entry 102 + 0x1.0d58e803fedbad8f59d5947b2a21a425p-2, + 0x1.333334p0 + }, + { // Entry 103 + 0x1.8398925fcd61fbf1aa81ef798b08bb2cp-2, + 0x1.4ccccep0 + }, + { // Entry 104 + 0x1.f113c1858de496d814a68e82919d673bp-2, + 0x1.666668p0 + }, + { // Entry 105 + 0x1.2b80384cd8e605e99a5cd99f34293888p-1, + 0x1.800002p0 + }, + { // Entry 106 + 0x1.5b2c41f5948361383f498e179a6dd347p-1, + 0x1.99999cp0 + }, + { // Entry 107 + 0x1.87f43057c707ec89ca00835fb95f66d7p-1, + 0x1.b33336p0 + }, + { // Entry 108 + 0x1.b22cabaab2c8964911abde220f5f415cp-1, + 0x1.ccccd0p0 + }, + { // Entry 109 + 0x1.da1c9dfd31a7706146ef266c16ed655dp-1, + 0x1.e6666ap0 + }, + { // Entry 110 + 0x1.p0, + 0x1.p1 + }, + { // Entry 111 + 0x1.90p6, + 0x1.p100 + }, + { // Entry 112 + 0x1.908ccdbb5f91f110d3118fe19de520dbp6, + 0x1.19999ap100 + }, + { // Entry 113 + 0x1.910d58e803fedbad8f59d5947b2a21a4p6, + 0x1.333334p100 + }, + { // Entry 114 + 0x1.918398925fcd61fbf1aa81ef798b08bbp6, + 0x1.4ccccep100 + }, + { // Entry 115 + 0x1.91f113c1858de496d814a68e82919d67p6, + 0x1.666668p100 + }, + { // Entry 116 + 0x1.9257007099b1cc0bd334b9b33e685271p6, + 0x1.800002p100 + }, + { // Entry 117 + 0x1.92b65883eb2906c2707e931c2f34dba6p6, + 0x1.99999cp100 + }, + { // Entry 118 + 0x1.930fe860af8e0fd913940106bf72becdp6, + 0x1.b33336p100 + }, + { // Entry 119 + 0x1.936459575565912c922357bc441ebe82p6, + 0x1.ccccd0p100 + }, + { // Entry 120 + 0x1.93b4393bfa634ee0c28dde4cd82ddacap6, + 0x1.e6666ap100 + }, + { // Entry 121 + 0x1.94p6, + 0x1.p101 + }, + { // Entry 122 + -0x1.715481dd5c5d93663255eca7ba82aeb6p-20, + 0x1.ffffe0p-1 + }, + { // Entry 123 + -0x1.71547c180a27f362d17a1f59be1bb55dp-21, + 0x1.fffff0p-1 + }, + { // Entry 124 + 0.0, + 0x1.p0 + }, + { // Entry 125 + 0x1.7154708d66755d9fe119ed1e85c13f40p-21, + 0x1.000008p0 + }, + { // Entry 126 + 0x1.71546ac814f867d7a99ac240f177d35fp-20, + 0x1.000010p0 + }, + { // Entry 127 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 128 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 129 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 130 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 131 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 132 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 133 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 134 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 135 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 136 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 137 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 138 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 139 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 140 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 141 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 142 + 0x1.fffffffa3aae23d27651e8410cc825cbp6, + 0x1.fffffep127 + }, + { // Entry 143 + -0x1.2ap7, + 0x1.p-149 + }, + { // Entry 144 + -0x1.000004e8b6d14f4d69b75d7d91e08e98p-1, + 0x1.6a09e4p-1 + }, + { // Entry 145 + -0x1.000000d4175ddebaa6cc9d6112365229p-1, + 0x1.6a09e6p-1 + }, + { // Entry 146 + -0x1.fffff97eefe066f380fa3704987b9811p-2, + 0x1.6a09e8p-1 + }, + { // Entry 147 + 0x1.fffff62e925d61652c914504dc3ee2cep-2, + 0x1.6a09e4p0 + }, + { // Entry 148 + 0x1.fffffe57d144428ab266c53ddb935bacp-2, + 0x1.6a09e6p0 + }, + { // Entry 149 + 0x1.00000340880fcc863f82e47db3c233f7p-1, + 0x1.6a09e8p0 + }, + { // Entry 150 + -0x1.0000017154770b626b85efbccdf68d2ep0, + 0x1.fffffep-2 + }, + { // Entry 151 + -0x1.p0, + 0x1.p-1 + }, + { // Entry 152 + -0x1.fffffa3aae2c7a711213405fc20a11b8p-1, + 0x1.000002p-1 + }, + { // Entry 153 + -0x1.a8ff9ec9d322112ed31f244bceb1ec85p-2, + 0x1.7ffffep-1 + }, + { // Entry 154 + -0x1.a8ff971810a5e1817fd3b7d7e5d148bbp-2, + 0x1.80p-1 + }, + { // Entry 155 + -0x1.a8ff8f664e33f42ccb464cc197ad8eefp-2, + 0x1.800002p-1 + }, + { // Entry 156 + 0x1.2b80309b166ef76896706dda18a709bdp-1, + 0x1.7ffffep0 + }, + { // Entry 157 + 0x1.2b803473f7ad0f3f401624140d175ba2p-1, + 0x1.80p0 + }, + { // Entry 158 + 0x1.2b80384cd8e605e99a5cd99f34293888p-1, + 0x1.800002p0 + }, + { // Entry 159 + 0x1.ebc51464ccd66f10e7d234a2a0ce225fp-9, + 0x1.00aaa8p0 + }, + { // Entry 160 + 0x1.ebcad5e05d58c6ddfd6c09c193fb3e3ep-9, + 0x1.00aaaap0 + }, + { // Entry 161 + 0x1.ebd0975be25fcf1843facabaa7aa7b51p-9, + 0x1.00aaacp0 + }, + { // Entry 162 + 0x1.fffffe8eab88f49d947a1043320972d1p0, + 0x1.fffffep1 + }, + { // Entry 163 + 0x1.p1, + 0x1.p2 + }, + { // Entry 164 + 0x1.000001715474e163bb7b2fe80f7d7b91p1, + 0x1.000002p2 + }, + { // Entry 165 + 0x1.fffffd1d5711e93b28f420866412e5a2p-1, + 0x1.fffffep0 + }, + { // Entry 166 + 0x1.p0, + 0x1.p1 + }, + { // Entry 167 + 0x1.000002e2a8e9c2c776f65fd01efaf723p0, + 0x1.000002p1 + }, + { // Entry 168 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 169 + 0.0, + 0x1.p0 + }, + { // Entry 170 + 0x1.715474e163bb7b2fe80f7d7b91f1851cp-23, + 0x1.000002p0 + }, + { // Entry 171 + -0x1.0000017154770b626b85efbccdf68d2ep0, + 0x1.fffffep-2 + }, + { // Entry 172 + -0x1.p0, + 0x1.p-1 + }, + { // Entry 173 + -0x1.fffffa3aae2c7a711213405fc20a11b8p-1, + 0x1.000002p-1 + }, + { // Entry 174 + -0x1.000000b8aa3b85b135c2f7de66fb4697p1, + 0x1.fffffep-3 + }, + { // Entry 175 + -0x1.p1, + 0x1.p-2 + }, + { // Entry 176 + -0x1.fffffd1d57163d388909a02fe10508dcp0, + 0x1.000002p-2 + }, + { // Entry 177 + -0x1.800000b8aa3b85b135c2f7de66fb4697p1, + 0x1.fffffep-4 + }, + { // Entry 178 + -0x1.80p1, + 0x1.p-3 + }, + { // Entry 179 + -0x1.7ffffe8eab8b1e9c4484d017f082846ep1, + 0x1.000002p-3 + }, + { // Entry 180 + -0x1.0000005c551dc2d89ae17bef337da34bp2, + 0x1.fffffep-5 + }, + { // Entry 181 + -0x1.p2, + 0x1.p-4 + }, + { // Entry 182 + -0x1.fffffe8eab8b1e9c4484d017f082846ep1, + 0x1.000002p-4 + }, + { // Entry 183 + -0x1.4000005c551dc2d89ae17bef337da34bp2, + 0x1.fffffep-6 + }, + { // Entry 184 + -0x1.40p2, + 0x1.p-5 + }, + { // Entry 185 + -0x1.3fffff4755c58f4e2242680bf8414237p2, + 0x1.000002p-5 + }, + { // Entry 186 + -0x1.8000005c551dc2d89ae17bef337da34bp2, + 0x1.fffffep-7 + }, + { // Entry 187 + -0x1.80p2, + 0x1.p-6 + }, + { // Entry 188 + -0x1.7fffff4755c58f4e2242680bf8414237p2, + 0x1.000002p-6 + }, + { // Entry 189 + -0x1.c000005c551dc2d89ae17bef337da34bp2, + 0x1.fffffep-8 + }, + { // Entry 190 + -0x1.c0p2, + 0x1.p-7 + }, + { // Entry 191 + -0x1.bfffff4755c58f4e2242680bf8414237p2, + 0x1.000002p-7 + }, + { // Entry 192 + -0x1.0000002e2a8ee16c4d70bdf799bed1a5p3, + 0x1.fffffep-9 + }, + { // Entry 193 + -0x1.p3, + 0x1.p-8 + }, + { // Entry 194 + -0x1.ffffff4755c58f4e2242680bf8414237p2, + 0x1.000002p-8 + }, + { // Entry 195 + -0x1.2000002e2a8ee16c4d70bdf799bed1a5p3, + 0x1.fffffep-10 + }, + { // Entry 196 + -0x1.20p3, + 0x1.p-9 + }, + { // Entry 197 + -0x1.1fffffa3aae2c7a711213405fc20a11bp3, + 0x1.000002p-9 + }, + { // Entry 198 + -0x1.4000002e2a8ee16c4d70bdf799bed1a5p3, + 0x1.fffffep-11 + }, + { // Entry 199 + -0x1.40p3, + 0x1.p-10 + }, + { // Entry 200 + -0x1.3fffffa3aae2c7a711213405fc20a11bp3, + 0x1.000002p-10 + }, + { // Entry 201 + -0x1.a000002e2a8ee16c4d70bdf799bed1a5p3, + 0x1.fffffep-14 + }, + { // Entry 202 + -0x1.a0p3, + 0x1.p-13 + }, + { // Entry 203 + -0x1.9fffffa3aae2c7a711213405fc20a11bp3, + 0x1.000002p-13 + }, + { // Entry 204 + -0x1.a000002e2a8ee16c4d70bdf799bed1a5p3, + 0x1.fffffep-14 + }, + { // Entry 205 + -0x1.a0p3, + 0x1.p-13 + }, + { // Entry 206 + -0x1.9fffffa3aae2c7a711213405fc20a11bp3, + 0x1.000002p-13 + }, + { // Entry 207 + -0x1.800000b8aa3b85b135c2f7de66fb4697p1, + 0x1.fffffep-4 + }, + { // Entry 208 + -0x1.80p1, + 0x1.p-3 + }, + { // Entry 209 + -0x1.7ffffe8eab8b1e9c4484d017f082846ep1, + 0x1.000002p-3 + }, + { // Entry 210 + -0x1.8a898ddcb6efed6595efafc5e077a1cbp-3, + 0x1.bffffep-1 + }, + { // Entry 211 + -0x1.8a8980abfbd32666a9b7e2df60d2bdc6p-3, + 0x1.c0p-1 + }, + { // Entry 212 + -0x1.8a89737b40c57286b134031126c9c7edp-3, + 0x1.c00002p-1 + }, + { // Entry 213 + -0x1.0000005c551dc2d89ae17bef337da34bp2, + 0x1.fffffep-5 + }, + { // Entry 214 + -0x1.p2, + 0x1.p-4 + }, + { // Entry 215 + -0x1.fffffe8eab8b1e9c4484d017f082846ep1, + 0x1.000002p-4 + }, + { // Entry 216 + -0x1.7d60620c36d87cfcd8babf751edc0c8bp-4, + 0x1.dffffep-1 + }, + { // Entry 217 + -0x1.7d60496cfbb4c673b4511f8c2b4e4fb7p-4, + 0x1.e0p-1 + }, + { // Entry 218 + -0x1.7d6030cdc0ab535cca1fd50552237b1ep-4, + 0x1.e00002p-1 + }, + { // Entry 219 + -0x1.4000005c551dc2d89ae17bef337da34bp2, + 0x1.fffffep-6 + }, + { // Entry 220 + -0x1.40p2, + 0x1.p-5 + }, + { // Entry 221 + -0x1.3fffff4755c58f4e2242680bf8414237p2, + 0x1.000002p-5 + }, + { // Entry 222 + -0x1.77397c4562d9e54641f615a6ca2b27bap-5, + 0x1.effffep-1 + }, + { // Entry 223 + -0x1.77394c9d958d55de5c380fe0871d757fp-5, + 0x1.f0p-1 + }, + { // Entry 224 + -0x1.77391cf5c871f7ce6a0d60c3fcc8c0a3p-5, + 0x1.f00002p-1 + }, + { // Entry 225 + -0x1.8000005c551dc2d89ae17bef337da34bp2, + 0x1.fffffep-7 + }, + { // Entry 226 + -0x1.80p2, + 0x1.p-6 + }, + { // Entry 227 + -0x1.7fffff4755c58f4e2242680bf8414237p2, + 0x1.000002p-6 + }, + { // Entry 228 + -0x1.743f462e4254f5e2be25b8506028d08ap-6, + 0x1.f7fffep-1 + }, + { // Entry 229 + -0x1.743ee861f3556365483611f7c0bf059fp-6, + 0x1.f8p-1 + }, + { // Entry 230 + -0x1.743e8a95a4b51a5c74be0d5ae65aab1bp-6, + 0x1.f80002p-1 + }, + { // Entry 231 + -0x1.c000005c551dc2d89ae17bef337da34bp2, + 0x1.fffffep-8 + }, + { // Entry 232 + -0x1.c0p2, + 0x1.p-7 + }, + { // Entry 233 + -0x1.bfffff4755c58f4e2242680bf8414237p2, + 0x1.000002p-7 + }, + { // Entry 234 + -0x1.72c8743f6fa9cfbe1e287ad19aca6d67p-7, + 0x1.fbfffep-1 + }, + { // Entry 235 + -0x1.72c7ba20f73275b5d184a2c615b70ad4p-7, + 0x1.fcp-1 + }, + { // Entry 236 + -0x1.72c700027f76b150e530a12360d1566ap-7, + 0x1.fc0002p-1 + }, + { // Entry 237 + -0x1.0000002e2a8ee16c4d70bdf799bed1a5p3, + 0x1.fffffep-9 + }, + { // Entry 238 + -0x1.p3, + 0x1.p-8 + }, + { // Entry 239 + -0x1.ffffff4755c58f4e2242680bf8414237p2, + 0x1.000002p-8 + }, + { // Entry 240 + -0x1.720f0ecde68050a44c9a2eb30002eb02p-8, + 0x1.fdfffep-1 + }, + { // Entry 241 + -0x1.720d9c06a835ea6ef18f977e5d8a37abp-8, + 0x1.fep-1 + }, + { // Entry 242 + -0x1.720c293f6b5fbfb29fd6cb29447e6957p-8, + 0x1.fe0002p-1 + }, + { // Entry 243 + -0x1.2000002e2a8ee16c4d70bdf799bed1a5p3, + 0x1.fffffep-10 + }, + { // Entry 244 + -0x1.20p3, + 0x1.p-9 + }, + { // Entry 245 + -0x1.1fffffa3aae2c7a711213405fc20a11bp3, + 0x1.000002p-9 + }, + { // Entry 246 + -0x1.71b3ce5de192eae3e822586249ef1031p-9, + 0x1.fefffep-1 + }, + { // Entry 247 + -0x1.71b0ea42e5fda261dbbd1a498f533398p-9, + 0x1.ffp-1 + }, + { // Entry 248 + -0x1.71ae0627ed4de7a0d25affc95a315118p-9, + 0x1.ff0002p-1 + }, + { // Entry 249 + -0x1.4000002e2a8ee16c4d70bdf799bed1a5p3, + 0x1.fffffep-11 + }, + { // Entry 250 + -0x1.40p3, + 0x1.p-10 + }, + { // Entry 251 + -0x1.3fffffa3aae2c7a711213405fc20a11bp3, + 0x1.000002p-10 + }, + { // Entry 252 + -0x1.71886f5843ade047bd2d072e96484a61p-10, + 0x1.ff7ffep-1 + }, + { // Entry 253 + -0x1.7182a894b69c595f7920cea1619c6e57p-10, + 0x1.ff80p-1 + }, + { // Entry 254 + -0x1.717ce1d12f53080ec86587c1ed76029bp-10, + 0x1.ff8002p-1 + }, + { // Entry 255 + -0x1.a000002e2a8ee16c4d70bdf799bed1a5p3, + 0x1.fffffep-14 + }, + { // Entry 256 + -0x1.a0p3, + 0x1.p-13 + }, + { // Entry 257 + -0x1.9fffffa3aae2c7a711213405fc20a11bp3, + 0x1.000002p-13 + }, + { // Entry 258 + -0x1.718867c39aac5ee37685394fe9bfd749p-13, + 0x1.ffeffep-1 + }, + { // Entry 259 + -0x1.715a3bc3593d4d4a2a239745f6427420p-13, + 0x1.fff0p-1 + }, + { // Entry 260 + -0x1.712c0fc345fbad46c2c9f3884df7233ep-13, + 0x1.fff002p-1 + }, + { // Entry 261 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 262 + 0x1.fffffffa3aae23d27651e8410cc825cbp6, + 0x1.fffffep127 + }, + { // Entry 263 + 0x1.fffffff4755c41df9abefafd93420d88p6, + 0x1.fffffcp127 + }, + { // Entry 264 + 0x1.a6c873f5fb93d2711418c769ccf4818ap0, + 0x1.921fb6p1 + }, + { // Entry 265 + 0x1.4d90e7ebf727a4e228318ed399e90315p-1, + 0x1.921fb6p0 + }, + { // Entry 266 + 0x1.715474e163bb7b2fe80f7d7b91f1851cp-23, + 0x1.000002p0 + }, + { // Entry 267 + 0.0, + 0x1.p0 + }, + { // Entry 268 + -0x1.7154770b626b85efbccdf68d2e9789f9p-24, + 0x1.fffffep-1 + }, + { // Entry 269 + -0x1.64de302811b0b63baf9ce258cc2df9d5p-2, + 0x1.921fb6p-1 + }, + { // Entry 270 + -0x1.f7fffff4755c58f4e2242680bf841423p6, + 0x1.000002p-126 + }, + { // Entry 271 + -0x1.f8p6, + 0x1.p-126 + }, + { // Entry 272 + -0x1.f800000b8aa3be20654105026cbdf277p6, + 0x1.fffffcp-127 + }, + { // Entry 273 + -0x1.f80000171547935612438aa6af6b5495p6, + 0x1.fffff8p-127 + }, + { // Entry 274 + -0x1.28p7, + 0x1.p-148 + }, + { // Entry 275 + -0x1.2ap7, + 0x1.p-149 + }, + { // Entry 276 + -HUGE_VALF, + 0.0f + }, + { // Entry 277 + -HUGE_VALF, + -0.0f + }, + { // Entry 278 + 0x1.f4p6, + 0x1.p125 + }, + { // Entry 279 + -0x1.fcp6, + 0x1.p-127 + }, + { // Entry 280 + 0x1.p0, + 0x1.p1 + }, + { // Entry 281 + 0x1.p1, + 0x1.p2 + }, + { // Entry 282 + -0x1.p0, + 0x1.p-1 + } +}; diff --git a/tests/math_log_intel_data.h b/tests/math_data/log_intel_data.h similarity index 100% rename from tests/math_log_intel_data.h rename to tests/math_data/log_intel_data.h diff --git a/tests/math_data/logb_intel_data.h b/tests/math_data/logb_intel_data.h new file mode 100644 index 000000000..4657014bf --- /dev/null +++ b/tests/math_data/logb_intel_data.h @@ -0,0 +1,898 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_logb_intel_data[] = { + { // Entry 0 + -0x1.0c80p10, + -0x1.0p-1074 + }, + { // Entry 1 + -0x1.0c80p10, + 0x1.0p-1074 + }, + { // Entry 2 + 0x1.90p6, + 0x1.0p100 + }, + { // Entry 3 + 0x1.90p6, + 0x1.199999999999ap100 + }, + { // Entry 4 + 0x1.90p6, + 0x1.3333333333334p100 + }, + { // Entry 5 + 0x1.90p6, + 0x1.4cccccccccccep100 + }, + { // Entry 6 + 0x1.90p6, + 0x1.6666666666668p100 + }, + { // Entry 7 + 0x1.90p6, + 0x1.8000000000002p100 + }, + { // Entry 8 + 0x1.90p6, + 0x1.999999999999cp100 + }, + { // Entry 9 + 0x1.90p6, + 0x1.b333333333336p100 + }, + { // Entry 10 + 0x1.90p6, + 0x1.cccccccccccd0p100 + }, + { // Entry 11 + 0x1.90p6, + 0x1.e66666666666ap100 + }, + { // Entry 12 + 0x1.94p6, + 0x1.0p101 + }, + { // Entry 13 + 0x1.90p7, + 0x1.0p200 + }, + { // Entry 14 + 0x1.90p7, + 0x1.199999999999ap200 + }, + { // Entry 15 + 0x1.90p7, + 0x1.3333333333334p200 + }, + { // Entry 16 + 0x1.90p7, + 0x1.4cccccccccccep200 + }, + { // Entry 17 + 0x1.90p7, + 0x1.6666666666668p200 + }, + { // Entry 18 + 0x1.90p7, + 0x1.8000000000002p200 + }, + { // Entry 19 + 0x1.90p7, + 0x1.999999999999cp200 + }, + { // Entry 20 + 0x1.90p7, + 0x1.b333333333336p200 + }, + { // Entry 21 + 0x1.90p7, + 0x1.cccccccccccd0p200 + }, + { // Entry 22 + 0x1.90p7, + 0x1.e66666666666ap200 + }, + { // Entry 23 + 0x1.92p7, + 0x1.0p201 + }, + { // Entry 24 + 0x1.f4p9, + 0x1.0p1000 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.199999999999ap1000 + }, + { // Entry 26 + 0x1.f4p9, + 0x1.3333333333334p1000 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.4cccccccccccep1000 + }, + { // Entry 28 + 0x1.f4p9, + 0x1.6666666666668p1000 + }, + { // Entry 29 + 0x1.f4p9, + 0x1.8000000000002p1000 + }, + { // Entry 30 + 0x1.f4p9, + 0x1.999999999999cp1000 + }, + { // Entry 31 + 0x1.f4p9, + 0x1.b333333333336p1000 + }, + { // Entry 32 + 0x1.f4p9, + 0x1.cccccccccccd0p1000 + }, + { // Entry 33 + 0x1.f4p9, + 0x1.e66666666666ap1000 + }, + { // Entry 34 + 0x1.f480p9, + 0x1.0p1001 + }, + { // Entry 35 + 0x1.94p6, + -0x1.0p101 + }, + { // Entry 36 + 0x1.90p6, + -0x1.e666666666666p100 + }, + { // Entry 37 + 0x1.90p6, + -0x1.cccccccccccccp100 + }, + { // Entry 38 + 0x1.90p6, + -0x1.b333333333332p100 + }, + { // Entry 39 + 0x1.90p6, + -0x1.9999999999998p100 + }, + { // Entry 40 + 0x1.90p6, + -0x1.7fffffffffffep100 + }, + { // Entry 41 + 0x1.90p6, + -0x1.6666666666664p100 + }, + { // Entry 42 + 0x1.90p6, + -0x1.4cccccccccccap100 + }, + { // Entry 43 + 0x1.90p6, + -0x1.3333333333330p100 + }, + { // Entry 44 + 0x1.90p6, + -0x1.1999999999996p100 + }, + { // Entry 45 + 0x1.90p6, + -0x1.0p100 + }, + { // Entry 46 + 0x1.92p7, + -0x1.0p201 + }, + { // Entry 47 + 0x1.90p7, + -0x1.e666666666666p200 + }, + { // Entry 48 + 0x1.90p7, + -0x1.cccccccccccccp200 + }, + { // Entry 49 + 0x1.90p7, + -0x1.b333333333332p200 + }, + { // Entry 50 + 0x1.90p7, + -0x1.9999999999998p200 + }, + { // Entry 51 + 0x1.90p7, + -0x1.7fffffffffffep200 + }, + { // Entry 52 + 0x1.90p7, + -0x1.6666666666664p200 + }, + { // Entry 53 + 0x1.90p7, + -0x1.4cccccccccccap200 + }, + { // Entry 54 + 0x1.90p7, + -0x1.3333333333330p200 + }, + { // Entry 55 + 0x1.90p7, + -0x1.1999999999996p200 + }, + { // Entry 56 + 0x1.90p7, + -0x1.0p200 + }, + { // Entry 57 + 0x1.f480p9, + -0x1.0p1001 + }, + { // Entry 58 + 0x1.f4p9, + -0x1.e666666666666p1000 + }, + { // Entry 59 + 0x1.f4p9, + -0x1.cccccccccccccp1000 + }, + { // Entry 60 + 0x1.f4p9, + -0x1.b333333333332p1000 + }, + { // Entry 61 + 0x1.f4p9, + -0x1.9999999999998p1000 + }, + { // Entry 62 + 0x1.f4p9, + -0x1.7fffffffffffep1000 + }, + { // Entry 63 + 0x1.f4p9, + -0x1.6666666666664p1000 + }, + { // Entry 64 + 0x1.f4p9, + -0x1.4cccccccccccap1000 + }, + { // Entry 65 + 0x1.f4p9, + -0x1.3333333333330p1000 + }, + { // Entry 66 + 0x1.f4p9, + -0x1.1999999999996p1000 + }, + { // Entry 67 + 0x1.f4p9, + -0x1.0p1000 + }, + { // Entry 68 + 0x1.90p5, + 0x1.0p50 + }, + { // Entry 69 + 0x1.90p5, + 0x1.199999999999ap50 + }, + { // Entry 70 + 0x1.90p5, + 0x1.3333333333334p50 + }, + { // Entry 71 + 0x1.90p5, + 0x1.4cccccccccccep50 + }, + { // Entry 72 + 0x1.90p5, + 0x1.6666666666668p50 + }, + { // Entry 73 + 0x1.90p5, + 0x1.8000000000002p50 + }, + { // Entry 74 + 0x1.90p5, + 0x1.999999999999cp50 + }, + { // Entry 75 + 0x1.90p5, + 0x1.b333333333336p50 + }, + { // Entry 76 + 0x1.90p5, + 0x1.cccccccccccd0p50 + }, + { // Entry 77 + 0x1.90p5, + 0x1.e66666666666ap50 + }, + { // Entry 78 + 0x1.98p5, + 0x1.0p51 + }, + { // Entry 79 + 0x1.98p5, + 0x1.0p51 + }, + { // Entry 80 + 0x1.98p5, + 0x1.199999999999ap51 + }, + { // Entry 81 + 0x1.98p5, + 0x1.3333333333334p51 + }, + { // Entry 82 + 0x1.98p5, + 0x1.4cccccccccccep51 + }, + { // Entry 83 + 0x1.98p5, + 0x1.6666666666668p51 + }, + { // Entry 84 + 0x1.98p5, + 0x1.8000000000002p51 + }, + { // Entry 85 + 0x1.98p5, + 0x1.999999999999cp51 + }, + { // Entry 86 + 0x1.98p5, + 0x1.b333333333336p51 + }, + { // Entry 87 + 0x1.98p5, + 0x1.cccccccccccd0p51 + }, + { // Entry 88 + 0x1.98p5, + 0x1.e66666666666ap51 + }, + { // Entry 89 + 0x1.a0p5, + 0x1.0p52 + }, + { // Entry 90 + 0x1.a0p5, + 0x1.0p52 + }, + { // Entry 91 + 0x1.a0p5, + 0x1.199999999999ap52 + }, + { // Entry 92 + 0x1.a0p5, + 0x1.3333333333334p52 + }, + { // Entry 93 + 0x1.a0p5, + 0x1.4cccccccccccep52 + }, + { // Entry 94 + 0x1.a0p5, + 0x1.6666666666668p52 + }, + { // Entry 95 + 0x1.a0p5, + 0x1.8000000000002p52 + }, + { // Entry 96 + 0x1.a0p5, + 0x1.999999999999cp52 + }, + { // Entry 97 + 0x1.a0p5, + 0x1.b333333333336p52 + }, + { // Entry 98 + 0x1.a0p5, + 0x1.cccccccccccd0p52 + }, + { // Entry 99 + 0x1.a0p5, + 0x1.e66666666666ap52 + }, + { // Entry 100 + 0x1.a8p5, + 0x1.0p53 + }, + { // Entry 101 + 0x1.a8p5, + 0x1.0p53 + }, + { // Entry 102 + 0x1.a8p5, + 0x1.199999999999ap53 + }, + { // Entry 103 + 0x1.a8p5, + 0x1.3333333333334p53 + }, + { // Entry 104 + 0x1.a8p5, + 0x1.4cccccccccccep53 + }, + { // Entry 105 + 0x1.a8p5, + 0x1.6666666666668p53 + }, + { // Entry 106 + 0x1.a8p5, + 0x1.8000000000002p53 + }, + { // Entry 107 + 0x1.a8p5, + 0x1.999999999999cp53 + }, + { // Entry 108 + 0x1.a8p5, + 0x1.b333333333336p53 + }, + { // Entry 109 + 0x1.a8p5, + 0x1.cccccccccccd0p53 + }, + { // Entry 110 + 0x1.a8p5, + 0x1.e66666666666ap53 + }, + { // Entry 111 + 0x1.b0p5, + 0x1.0p54 + }, + { // Entry 112 + -0x1.0080p10, + 0x1.0p-1026 + }, + { // Entry 113 + -0x1.p10, + 0x1.d333333333334p-1024 + }, + { // Entry 114 + -0x1.ff80p9, + 0x1.b333333333334p-1023 + }, + { // Entry 115 + -0x1.ffp9, + 0x1.3e66666666667p-1022 + }, + { // Entry 116 + -0x1.ffp9, + 0x1.a333333333334p-1022 + }, + { // Entry 117 + -0x1.fe80p9, + 0x1.040p-1021 + }, + { // Entry 118 + -0x1.fe80p9, + 0x1.3666666666666p-1021 + }, + { // Entry 119 + -0x1.fe80p9, + 0x1.68cccccccccccp-1021 + }, + { // Entry 120 + -0x1.fe80p9, + 0x1.9b33333333332p-1021 + }, + { // Entry 121 + -0x1.fe80p9, + 0x1.cd99999999998p-1021 + }, + { // Entry 122 + -0x1.fe80p9, + 0x1.ffffffffffffep-1021 + }, + { // Entry 123 + 0x1.90p5, + 0x1.fffffffffffffp50 + }, + { // Entry 124 + 0x1.98p5, + 0x1.0p51 + }, + { // Entry 125 + 0x1.98p5, + 0x1.0000000000001p51 + }, + { // Entry 126 + 0x1.98p5, + 0x1.fffffffffffffp51 + }, + { // Entry 127 + 0x1.a0p5, + 0x1.0p52 + }, + { // Entry 128 + 0x1.a0p5, + 0x1.0000000000001p52 + }, + { // Entry 129 + 0x1.a0p5, + 0x1.fffffffffffffp52 + }, + { // Entry 130 + 0x1.a8p5, + 0x1.0p53 + }, + { // Entry 131 + 0x1.a8p5, + 0x1.0000000000001p53 + }, + { // Entry 132 + 0x1.98p5, + -0x1.0000000000001p51 + }, + { // Entry 133 + 0x1.98p5, + -0x1.0p51 + }, + { // Entry 134 + 0x1.90p5, + -0x1.fffffffffffffp50 + }, + { // Entry 135 + 0x1.a0p5, + -0x1.0000000000001p52 + }, + { // Entry 136 + 0x1.a0p5, + -0x1.0p52 + }, + { // Entry 137 + 0x1.98p5, + -0x1.fffffffffffffp51 + }, + { // Entry 138 + 0x1.a8p5, + -0x1.0000000000001p53 + }, + { // Entry 139 + 0x1.a8p5, + -0x1.0p53 + }, + { // Entry 140 + 0x1.a0p5, + -0x1.fffffffffffffp52 + }, + { // Entry 141 + 0x1.ff80p9, + 0x1.fffffffffffffp1023 + }, + { // Entry 142 + 0x1.ff80p9, + -0x1.fffffffffffffp1023 + }, + { // Entry 143 + -0x1.c0p2, + 0x1.fffffffffffffp-7 + }, + { // Entry 144 + -0x1.80p2, + 0x1.0p-6 + }, + { // Entry 145 + -0x1.80p2, + 0x1.0000000000001p-6 + }, + { // Entry 146 + -0x1.80p2, + 0x1.fffffffffffffp-6 + }, + { // Entry 147 + -0x1.40p2, + 0x1.0p-5 + }, + { // Entry 148 + -0x1.40p2, + 0x1.0000000000001p-5 + }, + { // Entry 149 + -0x1.40p2, + 0x1.fffffffffffffp-5 + }, + { // Entry 150 + -0x1.p2, + 0x1.0p-4 + }, + { // Entry 151 + -0x1.p2, + 0x1.0000000000001p-4 + }, + { // Entry 152 + -0x1.p2, + 0x1.fffffffffffffp-4 + }, + { // Entry 153 + -0x1.80p1, + 0x1.0p-3 + }, + { // Entry 154 + -0x1.80p1, + 0x1.0000000000001p-3 + }, + { // Entry 155 + -0x1.80p1, + 0x1.fffffffffffffp-3 + }, + { // Entry 156 + -0x1.p1, + 0x1.0p-2 + }, + { // Entry 157 + -0x1.p1, + 0x1.0000000000001p-2 + }, + { // Entry 158 + -0x1.p1, + 0x1.fffffffffffffp-2 + }, + { // Entry 159 + -0x1.p0, + 0x1.0p-1 + }, + { // Entry 160 + -0x1.p0, + 0x1.0000000000001p-1 + }, + { // Entry 161 + -0x1.0c80p10, + -0x1.0p-1074 + }, + { // Entry 162 + -HUGE_VAL, + -0.0 + }, + { // Entry 163 + -0x1.0c80p10, + 0x1.0p-1074 + }, + { // Entry 164 + -0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 165 + 0.0, + 0x1.0p0 + }, + { // Entry 166 + 0.0, + 0x1.0000000000001p0 + }, + { // Entry 167 + 0.0, + 0x1.fffffffffffffp0 + }, + { // Entry 168 + 0x1.p0, + 0x1.0p1 + }, + { // Entry 169 + 0x1.p0, + 0x1.0000000000001p1 + }, + { // Entry 170 + 0x1.p0, + 0x1.fffffffffffffp1 + }, + { // Entry 171 + 0x1.p1, + 0x1.0p2 + }, + { // Entry 172 + 0x1.p1, + 0x1.0000000000001p2 + }, + { // Entry 173 + 0x1.p1, + 0x1.fffffffffffffp2 + }, + { // Entry 174 + 0x1.80p1, + 0x1.0p3 + }, + { // Entry 175 + 0x1.80p1, + 0x1.0000000000001p3 + }, + { // Entry 176 + 0x1.80p1, + 0x1.fffffffffffffp3 + }, + { // Entry 177 + 0x1.p2, + 0x1.0p4 + }, + { // Entry 178 + 0x1.p2, + 0x1.0000000000001p4 + }, + { // Entry 179 + 0x1.p2, + 0x1.fffffffffffffp4 + }, + { // Entry 180 + 0x1.40p2, + 0x1.0p5 + }, + { // Entry 181 + 0x1.40p2, + 0x1.0000000000001p5 + }, + { // Entry 182 + 0x1.40p2, + 0x1.fffffffffffffp5 + }, + { // Entry 183 + 0x1.80p2, + 0x1.0p6 + }, + { // Entry 184 + 0x1.80p2, + 0x1.0000000000001p6 + }, + { // Entry 185 + 0x1.80p2, + 0x1.fffffffffffffp6 + }, + { // Entry 186 + 0x1.c0p2, + 0x1.0p7 + }, + { // Entry 187 + 0x1.c0p2, + 0x1.0000000000001p7 + }, + { // Entry 188 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 189 + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 190 + 0x1.ff80p9, + 0x1.fffffffffffffp1023 + }, + { // Entry 191 + 0x1.ff80p9, + -0x1.fffffffffffffp1023 + }, + { // Entry 192 + 0x1.ff80p9, + 0x1.ffffffffffffep1023 + }, + { // Entry 193 + 0x1.ff80p9, + -0x1.ffffffffffffep1023 + }, + { // Entry 194 + 0x1.p0, + 0x1.921fb54442d18p1 + }, + { // Entry 195 + 0x1.p0, + -0x1.921fb54442d18p1 + }, + { // Entry 196 + 0.0, + 0x1.921fb54442d18p0 + }, + { // Entry 197 + 0.0, + -0x1.921fb54442d18p0 + }, + { // Entry 198 + 0.0, + 0x1.0000000000001p0 + }, + { // Entry 199 + 0.0, + -0x1.0000000000001p0 + }, + { // Entry 200 + 0.0, + 0x1.0p0 + }, + { // Entry 201 + 0.0, + -0x1.0p0 + }, + { // Entry 202 + -0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 203 + -0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 204 + -0x1.p0, + 0x1.921fb54442d18p-1 + }, + { // Entry 205 + -0x1.p0, + -0x1.921fb54442d18p-1 + }, + { // Entry 206 + -0x1.ffp9, + 0x1.0000000000001p-1022 + }, + { // Entry 207 + -0x1.ffp9, + -0x1.0000000000001p-1022 + }, + { // Entry 208 + -0x1.ffp9, + 0x1.0p-1022 + }, + { // Entry 209 + -0x1.ffp9, + -0x1.0p-1022 + }, + { // Entry 210 + -0x1.ff80p9, + 0x1.ffffffffffffep-1023 + }, + { // Entry 211 + -0x1.ff80p9, + -0x1.ffffffffffffep-1023 + }, + { // Entry 212 + -0x1.ff80p9, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 213 + -0x1.ff80p9, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 214 + -0x1.0c40p10, + 0x1.0p-1073 + }, + { // Entry 215 + -0x1.0c40p10, + -0x1.0p-1073 + }, + { // Entry 216 + -0x1.0c80p10, + 0x1.0p-1074 + }, + { // Entry 217 + -0x1.0c80p10, + -0x1.0p-1074 + }, + { // Entry 218 + -HUGE_VAL, + 0.0 + }, + { // Entry 219 + -HUGE_VAL, + -0.0 + } +}; diff --git a/tests/math_data/logbf_intel_data.h b/tests/math_data/logbf_intel_data.h new file mode 100644 index 000000000..1ad3c035b --- /dev/null +++ b/tests/math_data/logbf_intel_data.h @@ -0,0 +1,714 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_logbf_intel_data[] = { + { // Entry 0 + 0x1.90p6, + 0x1.p100 + }, + { // Entry 1 + 0x1.90p6, + 0x1.19999ap100 + }, + { // Entry 2 + 0x1.90p6, + 0x1.333334p100 + }, + { // Entry 3 + 0x1.90p6, + 0x1.4ccccep100 + }, + { // Entry 4 + 0x1.90p6, + 0x1.666668p100 + }, + { // Entry 5 + 0x1.90p6, + 0x1.800002p100 + }, + { // Entry 6 + 0x1.90p6, + 0x1.99999cp100 + }, + { // Entry 7 + 0x1.90p6, + 0x1.b33336p100 + }, + { // Entry 8 + 0x1.90p6, + 0x1.ccccd0p100 + }, + { // Entry 9 + 0x1.90p6, + 0x1.e6666ap100 + }, + { // Entry 10 + 0x1.94p6, + 0x1.p101 + }, + { // Entry 11 + 0x1.94p6, + -0x1.p101 + }, + { // Entry 12 + 0x1.90p6, + -0x1.e66666p100 + }, + { // Entry 13 + 0x1.90p6, + -0x1.ccccccp100 + }, + { // Entry 14 + 0x1.90p6, + -0x1.b33332p100 + }, + { // Entry 15 + 0x1.90p6, + -0x1.999998p100 + }, + { // Entry 16 + 0x1.90p6, + -0x1.7ffffep100 + }, + { // Entry 17 + 0x1.90p6, + -0x1.666664p100 + }, + { // Entry 18 + 0x1.90p6, + -0x1.4ccccap100 + }, + { // Entry 19 + 0x1.90p6, + -0x1.333330p100 + }, + { // Entry 20 + 0x1.90p6, + -0x1.199996p100 + }, + { // Entry 21 + 0x1.90p6, + -0x1.p100 + }, + { // Entry 22 + 0x1.50p4, + 0x1.p21 + }, + { // Entry 23 + 0x1.50p4, + 0x1.19999ap21 + }, + { // Entry 24 + 0x1.50p4, + 0x1.333334p21 + }, + { // Entry 25 + 0x1.50p4, + 0x1.4ccccep21 + }, + { // Entry 26 + 0x1.50p4, + 0x1.666668p21 + }, + { // Entry 27 + 0x1.50p4, + 0x1.800002p21 + }, + { // Entry 28 + 0x1.50p4, + 0x1.99999cp21 + }, + { // Entry 29 + 0x1.50p4, + 0x1.b33336p21 + }, + { // Entry 30 + 0x1.50p4, + 0x1.ccccd0p21 + }, + { // Entry 31 + 0x1.50p4, + 0x1.e6666ap21 + }, + { // Entry 32 + 0x1.60p4, + 0x1.p22 + }, + { // Entry 33 + 0x1.60p4, + 0x1.p22 + }, + { // Entry 34 + 0x1.60p4, + 0x1.19999ap22 + }, + { // Entry 35 + 0x1.60p4, + 0x1.333334p22 + }, + { // Entry 36 + 0x1.60p4, + 0x1.4ccccep22 + }, + { // Entry 37 + 0x1.60p4, + 0x1.666668p22 + }, + { // Entry 38 + 0x1.60p4, + 0x1.800002p22 + }, + { // Entry 39 + 0x1.60p4, + 0x1.99999cp22 + }, + { // Entry 40 + 0x1.60p4, + 0x1.b33336p22 + }, + { // Entry 41 + 0x1.60p4, + 0x1.ccccd0p22 + }, + { // Entry 42 + 0x1.60p4, + 0x1.e6666ap22 + }, + { // Entry 43 + 0x1.70p4, + 0x1.p23 + }, + { // Entry 44 + 0x1.70p4, + 0x1.p23 + }, + { // Entry 45 + 0x1.70p4, + 0x1.19999ap23 + }, + { // Entry 46 + 0x1.70p4, + 0x1.333334p23 + }, + { // Entry 47 + 0x1.70p4, + 0x1.4ccccep23 + }, + { // Entry 48 + 0x1.70p4, + 0x1.666668p23 + }, + { // Entry 49 + 0x1.70p4, + 0x1.800002p23 + }, + { // Entry 50 + 0x1.70p4, + 0x1.99999cp23 + }, + { // Entry 51 + 0x1.70p4, + 0x1.b33336p23 + }, + { // Entry 52 + 0x1.70p4, + 0x1.ccccd0p23 + }, + { // Entry 53 + 0x1.70p4, + 0x1.e6666ap23 + }, + { // Entry 54 + 0x1.80p4, + 0x1.p24 + }, + { // Entry 55 + 0x1.80p4, + 0x1.p24 + }, + { // Entry 56 + 0x1.80p4, + 0x1.19999ap24 + }, + { // Entry 57 + 0x1.80p4, + 0x1.333334p24 + }, + { // Entry 58 + 0x1.80p4, + 0x1.4ccccep24 + }, + { // Entry 59 + 0x1.80p4, + 0x1.666668p24 + }, + { // Entry 60 + 0x1.80p4, + 0x1.800002p24 + }, + { // Entry 61 + 0x1.80p4, + 0x1.99999cp24 + }, + { // Entry 62 + 0x1.80p4, + 0x1.b33336p24 + }, + { // Entry 63 + 0x1.80p4, + 0x1.ccccd0p24 + }, + { // Entry 64 + 0x1.80p4, + 0x1.e6666ap24 + }, + { // Entry 65 + 0x1.90p4, + 0x1.p25 + }, + { // Entry 66 + -0x1.04p7, + 0x1.p-130 + }, + { // Entry 67 + -0x1.p7, + 0x1.d33330p-128 + }, + { // Entry 68 + -0x1.fcp6, + 0x1.b33330p-127 + }, + { // Entry 69 + -0x1.f8p6, + 0x1.3e6664p-126 + }, + { // Entry 70 + -0x1.f8p6, + 0x1.a33330p-126 + }, + { // Entry 71 + -0x1.f4p6, + 0x1.03fffep-125 + }, + { // Entry 72 + -0x1.f4p6, + 0x1.366664p-125 + }, + { // Entry 73 + -0x1.f4p6, + 0x1.68cccap-125 + }, + { // Entry 74 + -0x1.f4p6, + 0x1.9b3330p-125 + }, + { // Entry 75 + -0x1.f4p6, + 0x1.cd9996p-125 + }, + { // Entry 76 + -0x1.f4p6, + 0x1.fffffcp-125 + }, + { // Entry 77 + 0x1.50p4, + 0x1.fffffep21 + }, + { // Entry 78 + 0x1.60p4, + 0x1.p22 + }, + { // Entry 79 + 0x1.60p4, + 0x1.000002p22 + }, + { // Entry 80 + 0x1.60p4, + 0x1.fffffep22 + }, + { // Entry 81 + 0x1.70p4, + 0x1.p23 + }, + { // Entry 82 + 0x1.70p4, + 0x1.000002p23 + }, + { // Entry 83 + 0x1.70p4, + 0x1.fffffep23 + }, + { // Entry 84 + 0x1.80p4, + 0x1.p24 + }, + { // Entry 85 + 0x1.80p4, + 0x1.000002p24 + }, + { // Entry 86 + 0x1.60p4, + -0x1.000002p22 + }, + { // Entry 87 + 0x1.60p4, + -0x1.p22 + }, + { // Entry 88 + 0x1.50p4, + -0x1.fffffep21 + }, + { // Entry 89 + 0x1.70p4, + -0x1.000002p23 + }, + { // Entry 90 + 0x1.70p4, + -0x1.p23 + }, + { // Entry 91 + 0x1.60p4, + -0x1.fffffep22 + }, + { // Entry 92 + 0x1.80p4, + -0x1.000002p24 + }, + { // Entry 93 + 0x1.80p4, + -0x1.p24 + }, + { // Entry 94 + 0x1.70p4, + -0x1.fffffep23 + }, + { // Entry 95 + 0x1.fcp6, + 0x1.fffffep127 + }, + { // Entry 96 + 0x1.fcp6, + -0x1.fffffep127 + }, + { // Entry 97 + -0x1.c0p2, + 0x1.fffffep-7 + }, + { // Entry 98 + -0x1.80p2, + 0x1.p-6 + }, + { // Entry 99 + -0x1.80p2, + 0x1.000002p-6 + }, + { // Entry 100 + -0x1.80p2, + 0x1.fffffep-6 + }, + { // Entry 101 + -0x1.40p2, + 0x1.p-5 + }, + { // Entry 102 + -0x1.40p2, + 0x1.000002p-5 + }, + { // Entry 103 + -0x1.40p2, + 0x1.fffffep-5 + }, + { // Entry 104 + -0x1.p2, + 0x1.p-4 + }, + { // Entry 105 + -0x1.p2, + 0x1.000002p-4 + }, + { // Entry 106 + -0x1.p2, + 0x1.fffffep-4 + }, + { // Entry 107 + -0x1.80p1, + 0x1.p-3 + }, + { // Entry 108 + -0x1.80p1, + 0x1.000002p-3 + }, + { // Entry 109 + -0x1.80p1, + 0x1.fffffep-3 + }, + { // Entry 110 + -0x1.p1, + 0x1.p-2 + }, + { // Entry 111 + -0x1.p1, + 0x1.000002p-2 + }, + { // Entry 112 + -0x1.p1, + 0x1.fffffep-2 + }, + { // Entry 113 + -0x1.p0, + 0x1.p-1 + }, + { // Entry 114 + -0x1.p0, + 0x1.000002p-1 + }, + { // Entry 115 + -0x1.2ap7, + -0x1.p-149 + }, + { // Entry 116 + -HUGE_VALF, + 0.0 + }, + { // Entry 117 + -0x1.2ap7, + 0x1.p-149 + }, + { // Entry 118 + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 119 + 0.0, + 0x1.p0 + }, + { // Entry 120 + 0.0, + 0x1.000002p0 + }, + { // Entry 121 + 0.0, + 0x1.fffffep0 + }, + { // Entry 122 + 0x1.p0, + 0x1.p1 + }, + { // Entry 123 + 0x1.p0, + 0x1.000002p1 + }, + { // Entry 124 + 0x1.p0, + 0x1.fffffep1 + }, + { // Entry 125 + 0x1.p1, + 0x1.p2 + }, + { // Entry 126 + 0x1.p1, + 0x1.000002p2 + }, + { // Entry 127 + 0x1.p1, + 0x1.fffffep2 + }, + { // Entry 128 + 0x1.80p1, + 0x1.p3 + }, + { // Entry 129 + 0x1.80p1, + 0x1.000002p3 + }, + { // Entry 130 + 0x1.80p1, + 0x1.fffffep3 + }, + { // Entry 131 + 0x1.p2, + 0x1.p4 + }, + { // Entry 132 + 0x1.p2, + 0x1.000002p4 + }, + { // Entry 133 + 0x1.p2, + 0x1.fffffep4 + }, + { // Entry 134 + 0x1.40p2, + 0x1.p5 + }, + { // Entry 135 + 0x1.40p2, + 0x1.000002p5 + }, + { // Entry 136 + 0x1.40p2, + 0x1.fffffep5 + }, + { // Entry 137 + 0x1.80p2, + 0x1.p6 + }, + { // Entry 138 + 0x1.80p2, + 0x1.000002p6 + }, + { // Entry 139 + 0x1.80p2, + 0x1.fffffep6 + }, + { // Entry 140 + 0x1.c0p2, + 0x1.p7 + }, + { // Entry 141 + 0x1.c0p2, + 0x1.000002p7 + }, + { // Entry 142 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 143 + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 144 + 0x1.fcp6, + 0x1.fffffep127 + }, + { // Entry 145 + 0x1.fcp6, + -0x1.fffffep127 + }, + { // Entry 146 + 0x1.fcp6, + 0x1.fffffcp127 + }, + { // Entry 147 + 0x1.fcp6, + -0x1.fffffcp127 + }, + { // Entry 148 + 0x1.p0, + 0x1.921fb6p1 + }, + { // Entry 149 + 0x1.p0, + -0x1.921fb6p1 + }, + { // Entry 150 + 0.0, + 0x1.921fb6p0 + }, + { // Entry 151 + 0.0, + -0x1.921fb6p0 + }, + { // Entry 152 + 0.0, + 0x1.000002p0 + }, + { // Entry 153 + 0.0, + -0x1.000002p0 + }, + { // Entry 154 + 0.0, + 0x1.p0 + }, + { // Entry 155 + 0.0, + -0x1.p0 + }, + { // Entry 156 + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 157 + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 158 + -0x1.p0, + 0x1.921fb6p-1 + }, + { // Entry 159 + -0x1.p0, + -0x1.921fb6p-1 + }, + { // Entry 160 + -0x1.f8p6, + 0x1.000002p-126 + }, + { // Entry 161 + -0x1.f8p6, + -0x1.000002p-126 + }, + { // Entry 162 + -0x1.f8p6, + 0x1.p-126 + }, + { // Entry 163 + -0x1.f8p6, + -0x1.p-126 + }, + { // Entry 164 + -0x1.fcp6, + 0x1.fffffcp-127 + }, + { // Entry 165 + -0x1.fcp6, + -0x1.fffffcp-127 + }, + { // Entry 166 + -0x1.fcp6, + 0x1.fffff8p-127 + }, + { // Entry 167 + -0x1.fcp6, + -0x1.fffff8p-127 + }, + { // Entry 168 + -0x1.28p7, + 0x1.p-148 + }, + { // Entry 169 + -0x1.28p7, + -0x1.p-148 + }, + { // Entry 170 + -0x1.2ap7, + 0x1.p-149 + }, + { // Entry 171 + -0x1.2ap7, + -0x1.p-149 + }, + { // Entry 172 + -HUGE_VALF, + 0.0f + }, + { // Entry 173 + -HUGE_VALF, + -0.0f + } +}; diff --git a/tests/math_logf_intel_data.h b/tests/math_data/logf_intel_data.h similarity index 100% rename from tests/math_logf_intel_data.h rename to tests/math_data/logf_intel_data.h diff --git a/tests/math_data/modf_intel_data.h b/tests/math_data/modf_intel_data.h new file mode 100644 index 000000000..9af7e1bdd --- /dev/null +++ b/tests/math_data/modf_intel_data.h @@ -0,0 +1,1858 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_2_1_t g_modf_intel_data[] = { + { // Entry 0 + -0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 1 + -0.0, + -0.0, + -0.0 + }, + { // Entry 2 + 0x1.p-1074, + 0.0, + 0x1.0p-1074 + }, + { // Entry 3 + 0x1.fffffffffffff0p-2, + 0.0, + 0x1.fffffffffffffp-2 + }, + { // Entry 4 + 0x1.p-1, + 0.0, + 0x1.0p-1 + }, + { // Entry 5 + 0x1.00000000000010p-1, + 0.0, + 0x1.0000000000001p-1 + }, + { // Entry 6 + 0x1.fffffffffffff0p-1, + 0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 7 + 0.0, + 0x1.p0, + 0x1.0p0 + }, + { // Entry 8 + 0x1.p-52, + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 9 + 0x1.ffffffffffffc0p-2, + 0x1.p0, + 0x1.7ffffffffffffp0 + }, + { // Entry 10 + 0x1.p-1, + 0x1.p0, + 0x1.8p0 + }, + { // Entry 11 + 0x1.00000000000020p-1, + 0x1.p0, + 0x1.8000000000001p0 + }, + { // Entry 12 + 0x1.ffffffffffffe0p-1, + 0x1.p0, + 0x1.fffffffffffffp0 + }, + { // Entry 13 + 0.0, + 0x1.p1, + 0x1.0p1 + }, + { // Entry 14 + 0x1.p-51, + 0x1.p1, + 0x1.0000000000001p1 + }, + { // Entry 15 + 0x1.ffffffffffff80p-2, + 0x1.p1, + 0x1.3ffffffffffffp1 + }, + { // Entry 16 + 0x1.p-1, + 0x1.p1, + 0x1.4p1 + }, + { // Entry 17 + 0x1.00000000000040p-1, + 0x1.p1, + 0x1.4000000000001p1 + }, + { // Entry 18 + 0x1.fffffffffff8p-1, + 0x1.8cp6, + 0x1.8ffffffffffffp6 + }, + { // Entry 19 + 0.0, + 0x1.90p6, + 0x1.9p6 + }, + { // Entry 20 + 0x1.p-46, + 0x1.90p6, + 0x1.9000000000001p6 + }, + { // Entry 21 + 0x1.fffffffffff0p-2, + 0x1.90p6, + 0x1.91fffffffffffp6 + }, + { // Entry 22 + 0x1.p-1, + 0x1.90p6, + 0x1.920p6 + }, + { // Entry 23 + 0x1.000000000008p-1, + 0x1.90p6, + 0x1.9200000000001p6 + }, + { // Entry 24 + 0x1.ffffffffffc0p-1, + 0x1.f380p9, + 0x1.f3fffffffffffp9 + }, + { // Entry 25 + 0.0, + 0x1.f4p9, + 0x1.f40p9 + }, + { // Entry 26 + 0x1.p-43, + 0x1.f4p9, + 0x1.f400000000001p9 + }, + { // Entry 27 + 0x1.ffffffffff80p-2, + 0x1.f4p9, + 0x1.f43ffffffffffp9 + }, + { // Entry 28 + 0x1.p-1, + 0x1.f4p9, + 0x1.f44p9 + }, + { // Entry 29 + 0x1.000000000040p-1, + 0x1.f4p9, + 0x1.f440000000001p9 + }, + { // Entry 30 + 0x1.c0p-1, + 0x1.ffffffffffff80p49, + 0x1.fffffffffffffp49 + }, + { // Entry 31 + 0.0, + 0x1.p50, + 0x1.0p50 + }, + { // Entry 32 + 0x1.p-2, + 0x1.p50, + 0x1.0000000000001p50 + }, + { // Entry 33 + 0x1.80p-1, + 0x1.ffffffffffffc0p50, + 0x1.fffffffffffffp50 + }, + { // Entry 34 + 0.0, + 0x1.p51, + 0x1.0p51 + }, + { // Entry 35 + 0x1.p-1, + 0x1.p51, + 0x1.0000000000001p51 + }, + { // Entry 36 + 0x1.p-1, + 0x1.ffffffffffffe0p51, + 0x1.fffffffffffffp51 + }, + { // Entry 37 + 0.0, + 0x1.p52, + 0x1.0p52 + }, + { // Entry 38 + 0.0, + 0x1.00000000000010p52, + 0x1.0000000000001p52 + }, + { // Entry 39 + 0.0, + 0x1.fffffffffffff0p52, + 0x1.fffffffffffffp52 + }, + { // Entry 40 + 0.0, + 0x1.p53, + 0x1.0p53 + }, + { // Entry 41 + 0.0, + 0x1.00000000000010p53, + 0x1.0000000000001p53 + }, + { // Entry 42 + 0.0, + 0x1.fffffffffffff0p53, + 0x1.fffffffffffffp53 + }, + { // Entry 43 + 0.0, + 0x1.p54, + 0x1.0p54 + }, + { // Entry 44 + 0.0, + 0x1.00000000000010p54, + 0x1.0000000000001p54 + }, + { // Entry 45 + 0.0, + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 46 + -0x1.00000000000010p-1, + -0.0, + -0x1.0000000000001p-1 + }, + { // Entry 47 + -0x1.p-1, + -0.0, + -0x1.0p-1 + }, + { // Entry 48 + -0x1.fffffffffffff0p-2, + -0.0, + -0x1.fffffffffffffp-2 + }, + { // Entry 49 + -0x1.p-52, + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 50 + -0.0, + -0x1.p0, + -0x1.0p0 + }, + { // Entry 51 + -0x1.fffffffffffff0p-1, + -0.0, + -0x1.fffffffffffffp-1 + }, + { // Entry 52 + -0x1.00000000000020p-1, + -0x1.p0, + -0x1.8000000000001p0 + }, + { // Entry 53 + -0x1.p-1, + -0x1.p0, + -0x1.8p0 + }, + { // Entry 54 + -0x1.ffffffffffffc0p-2, + -0x1.p0, + -0x1.7ffffffffffffp0 + }, + { // Entry 55 + -0x1.p-51, + -0x1.p1, + -0x1.0000000000001p1 + }, + { // Entry 56 + -0.0, + -0x1.p1, + -0x1.0p1 + }, + { // Entry 57 + -0x1.ffffffffffffe0p-1, + -0x1.p0, + -0x1.fffffffffffffp0 + }, + { // Entry 58 + -0x1.00000000000040p-1, + -0x1.p1, + -0x1.4000000000001p1 + }, + { // Entry 59 + -0x1.p-1, + -0x1.p1, + -0x1.4p1 + }, + { // Entry 60 + -0x1.ffffffffffff80p-2, + -0x1.p1, + -0x1.3ffffffffffffp1 + }, + { // Entry 61 + -0x1.p-46, + -0x1.90p6, + -0x1.9000000000001p6 + }, + { // Entry 62 + -0.0, + -0x1.90p6, + -0x1.9p6 + }, + { // Entry 63 + -0x1.fffffffffff8p-1, + -0x1.8cp6, + -0x1.8ffffffffffffp6 + }, + { // Entry 64 + -0x1.000000000008p-1, + -0x1.90p6, + -0x1.9200000000001p6 + }, + { // Entry 65 + -0x1.p-1, + -0x1.90p6, + -0x1.920p6 + }, + { // Entry 66 + -0x1.fffffffffff0p-2, + -0x1.90p6, + -0x1.91fffffffffffp6 + }, + { // Entry 67 + -0x1.p-43, + -0x1.f4p9, + -0x1.f400000000001p9 + }, + { // Entry 68 + -0.0, + -0x1.f4p9, + -0x1.f40p9 + }, + { // Entry 69 + -0x1.ffffffffffc0p-1, + -0x1.f380p9, + -0x1.f3fffffffffffp9 + }, + { // Entry 70 + -0x1.000000000040p-1, + -0x1.f4p9, + -0x1.f440000000001p9 + }, + { // Entry 71 + -0x1.p-1, + -0x1.f4p9, + -0x1.f44p9 + }, + { // Entry 72 + -0x1.ffffffffff80p-2, + -0x1.f4p9, + -0x1.f43ffffffffffp9 + }, + { // Entry 73 + -0x1.p-2, + -0x1.p50, + -0x1.0000000000001p50 + }, + { // Entry 74 + -0.0, + -0x1.p50, + -0x1.0p50 + }, + { // Entry 75 + -0x1.c0p-1, + -0x1.ffffffffffff80p49, + -0x1.fffffffffffffp49 + }, + { // Entry 76 + -0x1.p-1, + -0x1.p51, + -0x1.0000000000001p51 + }, + { // Entry 77 + -0.0, + -0x1.p51, + -0x1.0p51 + }, + { // Entry 78 + -0x1.80p-1, + -0x1.ffffffffffffc0p50, + -0x1.fffffffffffffp50 + }, + { // Entry 79 + -0.0, + -0x1.00000000000010p52, + -0x1.0000000000001p52 + }, + { // Entry 80 + -0.0, + -0x1.p52, + -0x1.0p52 + }, + { // Entry 81 + -0x1.p-1, + -0x1.ffffffffffffe0p51, + -0x1.fffffffffffffp51 + }, + { // Entry 82 + -0.0, + -0x1.00000000000010p53, + -0x1.0000000000001p53 + }, + { // Entry 83 + -0.0, + -0x1.p53, + -0x1.0p53 + }, + { // Entry 84 + -0.0, + -0x1.fffffffffffff0p52, + -0x1.fffffffffffffp52 + }, + { // Entry 85 + -0.0, + -0x1.00000000000010p54, + -0x1.0000000000001p54 + }, + { // Entry 86 + -0.0, + -0x1.p54, + -0x1.0p54 + }, + { // Entry 87 + -0.0, + -0x1.fffffffffffff0p53, + -0x1.fffffffffffffp53 + }, + { // Entry 88 + -0.0, + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 89 + 0x1.fffffcp-1, + 0x1.fffffff8p29, + 0x1.fffffffffffffp29 + }, + { // Entry 90 + 0.0, + 0x1.p30, + 0x1.0p30 + }, + { // Entry 91 + 0x1.p-22, + 0x1.p30, + 0x1.0000000000001p30 + }, + { // Entry 92 + 0x1.ffffe8p-1, + 0x1.fffffff4p30, + 0x1.fffffff7ffffdp30 + }, + { // Entry 93 + 0x1.fffff0p-1, + 0x1.fffffff4p30, + 0x1.fffffff7ffffep30 + }, + { // Entry 94 + 0x1.fffff8p-1, + 0x1.fffffff4p30, + 0x1.fffffff7fffffp30 + }, + { // Entry 95 + 0.0, + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 96 + 0x1.p-22, + 0x1.fffffff8p30, + 0x1.fffffff800001p30 + }, + { // Entry 97 + 0x1.p-21, + 0x1.fffffff8p30, + 0x1.fffffff800002p30 + }, + { // Entry 98 + 0x1.80p-21, + 0x1.fffffff8p30, + 0x1.fffffff800003p30 + }, + { // Entry 99 + 0x1.ffffd0p-2, + 0x1.fffffff8p30, + 0x1.fffffff9ffffdp30 + }, + { // Entry 100 + 0x1.ffffe0p-2, + 0x1.fffffff8p30, + 0x1.fffffff9ffffep30 + }, + { // Entry 101 + 0x1.fffff0p-2, + 0x1.fffffff8p30, + 0x1.fffffff9fffffp30 + }, + { // Entry 102 + 0x1.p-1, + 0x1.fffffff8p30, + 0x1.fffffffa0p30 + }, + { // Entry 103 + 0x1.000008p-1, + 0x1.fffffff8p30, + 0x1.fffffffa00001p30 + }, + { // Entry 104 + 0x1.000010p-1, + 0x1.fffffff8p30, + 0x1.fffffffa00002p30 + }, + { // Entry 105 + 0x1.000018p-1, + 0x1.fffffff8p30, + 0x1.fffffffa00003p30 + }, + { // Entry 106 + 0x1.ffffe8p-1, + 0x1.fffffff8p30, + 0x1.fffffffbffffdp30 + }, + { // Entry 107 + 0x1.fffff0p-1, + 0x1.fffffff8p30, + 0x1.fffffffbffffep30 + }, + { // Entry 108 + 0x1.fffff8p-1, + 0x1.fffffff8p30, + 0x1.fffffffbfffffp30 + }, + { // Entry 109 + 0.0, + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 110 + 0x1.p-22, + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 111 + 0x1.p-21, + 0x1.fffffffcp30, + 0x1.fffffffc00002p30 + }, + { // Entry 112 + 0x1.80p-21, + 0x1.fffffffcp30, + 0x1.fffffffc00003p30 + }, + { // Entry 113 + 0x1.ffffd0p-2, + 0x1.fffffffcp30, + 0x1.fffffffdffffdp30 + }, + { // Entry 114 + 0x1.ffffe0p-2, + 0x1.fffffffcp30, + 0x1.fffffffdffffep30 + }, + { // Entry 115 + 0x1.fffff0p-2, + 0x1.fffffffcp30, + 0x1.fffffffdfffffp30 + }, + { // Entry 116 + 0x1.p-1, + 0x1.fffffffcp30, + 0x1.fffffffe0p30 + }, + { // Entry 117 + 0x1.000008p-1, + 0x1.fffffffcp30, + 0x1.fffffffe00001p30 + }, + { // Entry 118 + 0x1.000010p-1, + 0x1.fffffffcp30, + 0x1.fffffffe00002p30 + }, + { // Entry 119 + 0x1.000018p-1, + 0x1.fffffffcp30, + 0x1.fffffffe00003p30 + }, + { // Entry 120 + 0x1.ffffe8p-1, + 0x1.fffffffcp30, + 0x1.ffffffffffffdp30 + }, + { // Entry 121 + 0x1.fffff0p-1, + 0x1.fffffffcp30, + 0x1.ffffffffffffep30 + }, + { // Entry 122 + 0x1.fffff8p-1, + 0x1.fffffffcp30, + 0x1.fffffffffffffp30 + }, + { // Entry 123 + 0.0, + 0x1.p31, + 0x1.0p31 + }, + { // Entry 124 + 0x1.p-21, + 0x1.p31, + 0x1.0000000000001p31 + }, + { // Entry 125 + 0x1.p-20, + 0x1.p31, + 0x1.0000000000002p31 + }, + { // Entry 126 + 0x1.80p-20, + 0x1.p31, + 0x1.0000000000003p31 + }, + { // Entry 127 + 0x1.ffffa0p-2, + 0x1.p31, + 0x1.00000000ffffdp31 + }, + { // Entry 128 + 0x1.ffffc0p-2, + 0x1.p31, + 0x1.00000000ffffep31 + }, + { // Entry 129 + 0x1.ffffe0p-2, + 0x1.p31, + 0x1.00000000fffffp31 + }, + { // Entry 130 + 0x1.p-1, + 0x1.p31, + 0x1.000000010p31 + }, + { // Entry 131 + 0x1.000010p-1, + 0x1.p31, + 0x1.0000000100001p31 + }, + { // Entry 132 + 0x1.000020p-1, + 0x1.p31, + 0x1.0000000100002p31 + }, + { // Entry 133 + 0x1.000030p-1, + 0x1.p31, + 0x1.0000000100003p31 + }, + { // Entry 134 + 0.0, + 0x1.ffffffe0p30, + 0x1.ffffffep30 + }, + { // Entry 135 + 0.0, + 0x1.ffffffe4p30, + 0x1.ffffffe40p30 + }, + { // Entry 136 + 0.0, + 0x1.ffffffe8p30, + 0x1.ffffffe80p30 + }, + { // Entry 137 + 0.0, + 0x1.ffffffecp30, + 0x1.ffffffec0p30 + }, + { // Entry 138 + 0.0, + 0x1.fffffff0p30, + 0x1.fffffffp30 + }, + { // Entry 139 + 0.0, + 0x1.fffffff4p30, + 0x1.fffffff40p30 + }, + { // Entry 140 + 0.0, + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 141 + 0.0, + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 142 + 0.0, + 0x1.p31, + 0x1.0p31 + }, + { // Entry 143 + 0.0, + 0x1.00000002p31, + 0x1.000000020p31 + }, + { // Entry 144 + -0x1.p-22, + -0x1.p30, + -0x1.0000000000001p30 + }, + { // Entry 145 + -0.0, + -0x1.p30, + -0x1.0p30 + }, + { // Entry 146 + -0x1.fffffcp-1, + -0x1.fffffff8p29, + -0x1.fffffffffffffp29 + }, + { // Entry 147 + -0x1.80p-21, + -0x1.fffffff8p30, + -0x1.fffffff800003p30 + }, + { // Entry 148 + -0x1.p-21, + -0x1.fffffff8p30, + -0x1.fffffff800002p30 + }, + { // Entry 149 + -0x1.p-22, + -0x1.fffffff8p30, + -0x1.fffffff800001p30 + }, + { // Entry 150 + -0.0, + -0x1.fffffff8p30, + -0x1.fffffff80p30 + }, + { // Entry 151 + -0x1.fffff8p-1, + -0x1.fffffff4p30, + -0x1.fffffff7fffffp30 + }, + { // Entry 152 + -0x1.fffff0p-1, + -0x1.fffffff4p30, + -0x1.fffffff7ffffep30 + }, + { // Entry 153 + -0x1.ffffe8p-1, + -0x1.fffffff4p30, + -0x1.fffffff7ffffdp30 + }, + { // Entry 154 + -0x1.000018p-1, + -0x1.fffffff8p30, + -0x1.fffffffa00003p30 + }, + { // Entry 155 + -0x1.000010p-1, + -0x1.fffffff8p30, + -0x1.fffffffa00002p30 + }, + { // Entry 156 + -0x1.000008p-1, + -0x1.fffffff8p30, + -0x1.fffffffa00001p30 + }, + { // Entry 157 + -0x1.p-1, + -0x1.fffffff8p30, + -0x1.fffffffa0p30 + }, + { // Entry 158 + -0x1.fffff0p-2, + -0x1.fffffff8p30, + -0x1.fffffff9fffffp30 + }, + { // Entry 159 + -0x1.ffffe0p-2, + -0x1.fffffff8p30, + -0x1.fffffff9ffffep30 + }, + { // Entry 160 + -0x1.ffffd0p-2, + -0x1.fffffff8p30, + -0x1.fffffff9ffffdp30 + }, + { // Entry 161 + -0x1.80p-21, + -0x1.fffffffcp30, + -0x1.fffffffc00003p30 + }, + { // Entry 162 + -0x1.p-21, + -0x1.fffffffcp30, + -0x1.fffffffc00002p30 + }, + { // Entry 163 + -0x1.p-22, + -0x1.fffffffcp30, + -0x1.fffffffc00001p30 + }, + { // Entry 164 + -0.0, + -0x1.fffffffcp30, + -0x1.fffffffc0p30 + }, + { // Entry 165 + -0x1.fffff8p-1, + -0x1.fffffff8p30, + -0x1.fffffffbfffffp30 + }, + { // Entry 166 + -0x1.fffff0p-1, + -0x1.fffffff8p30, + -0x1.fffffffbffffep30 + }, + { // Entry 167 + -0x1.ffffe8p-1, + -0x1.fffffff8p30, + -0x1.fffffffbffffdp30 + }, + { // Entry 168 + -0x1.000018p-1, + -0x1.fffffffcp30, + -0x1.fffffffe00003p30 + }, + { // Entry 169 + -0x1.000010p-1, + -0x1.fffffffcp30, + -0x1.fffffffe00002p30 + }, + { // Entry 170 + -0x1.000008p-1, + -0x1.fffffffcp30, + -0x1.fffffffe00001p30 + }, + { // Entry 171 + -0x1.p-1, + -0x1.fffffffcp30, + -0x1.fffffffe0p30 + }, + { // Entry 172 + -0x1.fffff0p-2, + -0x1.fffffffcp30, + -0x1.fffffffdfffffp30 + }, + { // Entry 173 + -0x1.ffffe0p-2, + -0x1.fffffffcp30, + -0x1.fffffffdffffep30 + }, + { // Entry 174 + -0x1.ffffd0p-2, + -0x1.fffffffcp30, + -0x1.fffffffdffffdp30 + }, + { // Entry 175 + -0x1.80p-20, + -0x1.p31, + -0x1.0000000000003p31 + }, + { // Entry 176 + -0x1.p-20, + -0x1.p31, + -0x1.0000000000002p31 + }, + { // Entry 177 + -0x1.p-21, + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 178 + -0.0, + -0x1.p31, + -0x1.0p31 + }, + { // Entry 179 + -0x1.fffff8p-1, + -0x1.fffffffcp30, + -0x1.fffffffffffffp30 + }, + { // Entry 180 + -0x1.fffff0p-1, + -0x1.fffffffcp30, + -0x1.ffffffffffffep30 + }, + { // Entry 181 + -0x1.ffffe8p-1, + -0x1.fffffffcp30, + -0x1.ffffffffffffdp30 + }, + { // Entry 182 + -0x1.000030p-1, + -0x1.p31, + -0x1.0000000100003p31 + }, + { // Entry 183 + -0x1.000020p-1, + -0x1.p31, + -0x1.0000000100002p31 + }, + { // Entry 184 + -0x1.000010p-1, + -0x1.p31, + -0x1.0000000100001p31 + }, + { // Entry 185 + -0x1.p-1, + -0x1.p31, + -0x1.000000010p31 + }, + { // Entry 186 + -0x1.ffffe0p-2, + -0x1.p31, + -0x1.00000000fffffp31 + }, + { // Entry 187 + -0x1.ffffc0p-2, + -0x1.p31, + -0x1.00000000ffffep31 + }, + { // Entry 188 + -0x1.ffffa0p-2, + -0x1.p31, + -0x1.00000000ffffdp31 + }, + { // Entry 189 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 190 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 191 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 192 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 193 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 194 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 195 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 196 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 197 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 198 + -0.0, + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 199 + 0.0, + 0x1.ffffffffffffd0p61, + 0x1.ffffffffffffdp61 + }, + { // Entry 200 + 0.0, + 0x1.ffffffffffffe0p61, + 0x1.ffffffffffffep61 + }, + { // Entry 201 + 0.0, + 0x1.fffffffffffff0p61, + 0x1.fffffffffffffp61 + }, + { // Entry 202 + 0.0, + 0x1.p62, + 0x1.0p62 + }, + { // Entry 203 + 0.0, + 0x1.00000000000010p62, + 0x1.0000000000001p62 + }, + { // Entry 204 + 0.0, + 0x1.00000000000020p62, + 0x1.0000000000002p62 + }, + { // Entry 205 + 0.0, + 0x1.00000000000030p62, + 0x1.0000000000003p62 + }, + { // Entry 206 + 0.0, + 0x1.ffffffffffffd0p62, + 0x1.ffffffffffffdp62 + }, + { // Entry 207 + 0.0, + 0x1.ffffffffffffe0p62, + 0x1.ffffffffffffep62 + }, + { // Entry 208 + 0.0, + 0x1.fffffffffffff0p62, + 0x1.fffffffffffffp62 + }, + { // Entry 209 + 0.0, + 0x1.p63, + 0x1.0p63 + }, + { // Entry 210 + 0.0, + 0x1.00000000000010p63, + 0x1.0000000000001p63 + }, + { // Entry 211 + 0.0, + 0x1.00000000000020p63, + 0x1.0000000000002p63 + }, + { // Entry 212 + 0.0, + 0x1.00000000000030p63, + 0x1.0000000000003p63 + }, + { // Entry 213 + 0.0, + 0x1.ffffffffffffd0p63, + 0x1.ffffffffffffdp63 + }, + { // Entry 214 + 0.0, + 0x1.ffffffffffffe0p63, + 0x1.ffffffffffffep63 + }, + { // Entry 215 + 0.0, + 0x1.fffffffffffff0p63, + 0x1.fffffffffffffp63 + }, + { // Entry 216 + 0.0, + 0x1.p64, + 0x1.0p64 + }, + { // Entry 217 + 0.0, + 0x1.00000000000010p64, + 0x1.0000000000001p64 + }, + { // Entry 218 + 0.0, + 0x1.00000000000020p64, + 0x1.0000000000002p64 + }, + { // Entry 219 + 0.0, + 0x1.00000000000030p64, + 0x1.0000000000003p64 + }, + { // Entry 220 + -0.0, + -0x1.00000000000030p62, + -0x1.0000000000003p62 + }, + { // Entry 221 + -0.0, + -0x1.00000000000020p62, + -0x1.0000000000002p62 + }, + { // Entry 222 + -0.0, + -0x1.00000000000010p62, + -0x1.0000000000001p62 + }, + { // Entry 223 + -0.0, + -0x1.p62, + -0x1.0p62 + }, + { // Entry 224 + -0.0, + -0x1.fffffffffffff0p61, + -0x1.fffffffffffffp61 + }, + { // Entry 225 + -0.0, + -0x1.ffffffffffffe0p61, + -0x1.ffffffffffffep61 + }, + { // Entry 226 + -0.0, + -0x1.ffffffffffffd0p61, + -0x1.ffffffffffffdp61 + }, + { // Entry 227 + -0.0, + -0x1.00000000000030p63, + -0x1.0000000000003p63 + }, + { // Entry 228 + -0.0, + -0x1.00000000000020p63, + -0x1.0000000000002p63 + }, + { // Entry 229 + -0.0, + -0x1.00000000000010p63, + -0x1.0000000000001p63 + }, + { // Entry 230 + -0.0, + -0x1.p63, + -0x1.0p63 + }, + { // Entry 231 + -0.0, + -0x1.fffffffffffff0p62, + -0x1.fffffffffffffp62 + }, + { // Entry 232 + -0.0, + -0x1.ffffffffffffe0p62, + -0x1.ffffffffffffep62 + }, + { // Entry 233 + -0.0, + -0x1.ffffffffffffd0p62, + -0x1.ffffffffffffdp62 + }, + { // Entry 234 + -0.0, + -0x1.00000000000030p64, + -0x1.0000000000003p64 + }, + { // Entry 235 + -0.0, + -0x1.00000000000020p64, + -0x1.0000000000002p64 + }, + { // Entry 236 + -0.0, + -0x1.00000000000010p64, + -0x1.0000000000001p64 + }, + { // Entry 237 + -0.0, + -0x1.p64, + -0x1.0p64 + }, + { // Entry 238 + -0.0, + -0x1.fffffffffffff0p63, + -0x1.fffffffffffffp63 + }, + { // Entry 239 + -0.0, + -0x1.ffffffffffffe0p63, + -0x1.ffffffffffffep63 + }, + { // Entry 240 + -0.0, + -0x1.ffffffffffffd0p63, + -0x1.ffffffffffffdp63 + }, + { // Entry 241 + 0.0, + 0x1.p62, + 0x1.0p62 + }, + { // Entry 242 + 0.0, + 0x1.40p62, + 0x1.4p62 + }, + { // Entry 243 + 0.0, + 0x1.80p62, + 0x1.8p62 + }, + { // Entry 244 + 0.0, + 0x1.c0p62, + 0x1.cp62 + }, + { // Entry 245 + 0.0, + 0x1.p63, + 0x1.0p63 + }, + { // Entry 246 + 0.0, + 0x1.p63, + 0x1.0p63 + }, + { // Entry 247 + 0.0, + 0x1.40p63, + 0x1.4p63 + }, + { // Entry 248 + 0.0, + 0x1.80p63, + 0x1.8p63 + }, + { // Entry 249 + 0.0, + 0x1.c0p63, + 0x1.cp63 + }, + { // Entry 250 + 0.0, + 0x1.p64, + 0x1.0p64 + }, + { // Entry 251 + -0.0, + -0x1.p62, + -0x1.0p62 + }, + { // Entry 252 + -0.0, + -0x1.40p62, + -0x1.4p62 + }, + { // Entry 253 + -0.0, + -0x1.80p62, + -0x1.8p62 + }, + { // Entry 254 + -0.0, + -0x1.c0p62, + -0x1.cp62 + }, + { // Entry 255 + -0.0, + -0x1.p63, + -0x1.0p63 + }, + { // Entry 256 + -0.0, + -0x1.p63, + -0x1.0p63 + }, + { // Entry 257 + -0.0, + -0x1.40p63, + -0x1.4p63 + }, + { // Entry 258 + -0.0, + -0x1.80p63, + -0x1.8p63 + }, + { // Entry 259 + -0.0, + -0x1.c0p63, + -0x1.cp63 + }, + { // Entry 260 + -0.0, + -0x1.p64, + -0x1.0p64 + }, + { // Entry 261 + 0x1.fffff8p-1, + 0x1.fffffff8p30, + 0x1.fffffffbfffffp30 + }, + { // Entry 262 + 0.0, + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 263 + 0x1.p-22, + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 264 + -0x1.p-21, + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 265 + -0.0, + -0x1.p31, + -0x1.0p31 + }, + { // Entry 266 + -0x1.fffff8p-1, + -0x1.fffffffcp30, + -0x1.fffffffffffffp30 + }, + { // Entry 267 + 0x1.ffffffffffffc0p-1, + 0x1.80p1, + 0x1.fffffffffffffp1 + }, + { // Entry 268 + 0.0, + 0x1.p2, + 0x1.0p2 + }, + { // Entry 269 + 0x1.p-50, + 0x1.p2, + 0x1.0000000000001p2 + }, + { // Entry 270 + 0x1.ffffffffffff80p-1, + 0x1.c0p2, + 0x1.fffffffffffffp2 + }, + { // Entry 271 + 0.0, + 0x1.p3, + 0x1.0p3 + }, + { // Entry 272 + 0x1.p-49, + 0x1.p3, + 0x1.0000000000001p3 + }, + { // Entry 273 + 0x1.ffffffffffffp-1, + 0x1.e0p3, + 0x1.fffffffffffffp3 + }, + { // Entry 274 + 0.0, + 0x1.p4, + 0x1.0p4 + }, + { // Entry 275 + 0x1.p-48, + 0x1.p4, + 0x1.0000000000001p4 + }, + { // Entry 276 + 0x1.fffffffffffep-1, + 0x1.f0p4, + 0x1.fffffffffffffp4 + }, + { // Entry 277 + 0.0, + 0x1.p5, + 0x1.0p5 + }, + { // Entry 278 + 0x1.p-47, + 0x1.p5, + 0x1.0000000000001p5 + }, + { // Entry 279 + 0x1.fffffffffffcp-1, + 0x1.f8p5, + 0x1.fffffffffffffp5 + }, + { // Entry 280 + 0.0, + 0x1.p6, + 0x1.0p6 + }, + { // Entry 281 + 0x1.p-46, + 0x1.p6, + 0x1.0000000000001p6 + }, + { // Entry 282 + 0x1.fffffffffff8p-1, + 0x1.fcp6, + 0x1.fffffffffffffp6 + }, + { // Entry 283 + 0.0, + 0x1.p7, + 0x1.0p7 + }, + { // Entry 284 + 0x1.p-45, + 0x1.p7, + 0x1.0000000000001p7 + }, + { // Entry 285 + 0x1.fffffffffff0p-1, + 0x1.fep7, + 0x1.fffffffffffffp7 + }, + { // Entry 286 + 0.0, + 0x1.p8, + 0x1.0p8 + }, + { // Entry 287 + 0x1.p-44, + 0x1.p8, + 0x1.0000000000001p8 + }, + { // Entry 288 + 0x1.ffffffffffe0p-1, + 0x1.ffp8, + 0x1.fffffffffffffp8 + }, + { // Entry 289 + 0.0, + 0x1.p9, + 0x1.0p9 + }, + { // Entry 290 + 0x1.p-43, + 0x1.p9, + 0x1.0000000000001p9 + }, + { // Entry 291 + 0x1.ffffffffffc0p-1, + 0x1.ff80p9, + 0x1.fffffffffffffp9 + }, + { // Entry 292 + 0.0, + 0x1.p10, + 0x1.0p10 + }, + { // Entry 293 + 0x1.p-42, + 0x1.p10, + 0x1.0000000000001p10 + }, + { // Entry 294 + 0x1.ffffffffff80p-1, + 0x1.ffc0p10, + 0x1.fffffffffffffp10 + }, + { // Entry 295 + 0.0, + 0x1.p11, + 0x1.0p11 + }, + { // Entry 296 + 0x1.p-41, + 0x1.p11, + 0x1.0000000000001p11 + }, + { // Entry 297 + 0x1.ffffffffffp-1, + 0x1.ffe0p11, + 0x1.fffffffffffffp11 + }, + { // Entry 298 + 0.0, + 0x1.p12, + 0x1.0p12 + }, + { // Entry 299 + 0x1.p-40, + 0x1.p12, + 0x1.0000000000001p12 + }, + { // Entry 300 + 0x1.ffffffffffffp-2, + 0x1.p2, + 0x1.1ffffffffffffp2 + }, + { // Entry 301 + 0x1.p-1, + 0x1.p2, + 0x1.2p2 + }, + { // Entry 302 + 0x1.00000000000080p-1, + 0x1.p2, + 0x1.2000000000001p2 + }, + { // Entry 303 + 0x1.fffffffffffep-2, + 0x1.p3, + 0x1.0ffffffffffffp3 + }, + { // Entry 304 + 0x1.p-1, + 0x1.p3, + 0x1.1p3 + }, + { // Entry 305 + 0x1.000000000001p-1, + 0x1.p3, + 0x1.1000000000001p3 + }, + { // Entry 306 + 0x1.fffffffffffcp-2, + 0x1.p4, + 0x1.07fffffffffffp4 + }, + { // Entry 307 + 0x1.p-1, + 0x1.p4, + 0x1.080p4 + }, + { // Entry 308 + 0x1.000000000002p-1, + 0x1.p4, + 0x1.0800000000001p4 + }, + { // Entry 309 + 0x1.fffffffffff8p-2, + 0x1.p5, + 0x1.03fffffffffffp5 + }, + { // Entry 310 + 0x1.p-1, + 0x1.p5, + 0x1.040p5 + }, + { // Entry 311 + 0x1.000000000004p-1, + 0x1.p5, + 0x1.0400000000001p5 + }, + { // Entry 312 + 0x1.fffffffffff0p-2, + 0x1.p6, + 0x1.01fffffffffffp6 + }, + { // Entry 313 + 0x1.p-1, + 0x1.p6, + 0x1.020p6 + }, + { // Entry 314 + 0x1.000000000008p-1, + 0x1.p6, + 0x1.0200000000001p6 + }, + { // Entry 315 + 0x1.ffffffffffe0p-2, + 0x1.p7, + 0x1.00fffffffffffp7 + }, + { // Entry 316 + 0x1.p-1, + 0x1.p7, + 0x1.010p7 + }, + { // Entry 317 + 0x1.000000000010p-1, + 0x1.p7, + 0x1.0100000000001p7 + }, + { // Entry 318 + 0x1.ffffffffffc0p-2, + 0x1.p8, + 0x1.007ffffffffffp8 + }, + { // Entry 319 + 0x1.p-1, + 0x1.p8, + 0x1.008p8 + }, + { // Entry 320 + 0x1.000000000020p-1, + 0x1.p8, + 0x1.0080000000001p8 + }, + { // Entry 321 + 0x1.ffffffffff80p-2, + 0x1.p9, + 0x1.003ffffffffffp9 + }, + { // Entry 322 + 0x1.p-1, + 0x1.p9, + 0x1.004p9 + }, + { // Entry 323 + 0x1.000000000040p-1, + 0x1.p9, + 0x1.0040000000001p9 + }, + { // Entry 324 + 0x1.ffffffffffp-2, + 0x1.p10, + 0x1.001ffffffffffp10 + }, + { // Entry 325 + 0x1.p-1, + 0x1.p10, + 0x1.002p10 + }, + { // Entry 326 + 0x1.000000000080p-1, + 0x1.p10, + 0x1.0020000000001p10 + }, + { // Entry 327 + 0x1.ffffffffffp-2, + 0x1.0040p10, + 0x1.005ffffffffffp10 + }, + { // Entry 328 + 0x1.p-1, + 0x1.0040p10, + 0x1.006p10 + }, + { // Entry 329 + 0x1.000000000080p-1, + 0x1.0040p10, + 0x1.0060000000001p10 + }, + { // Entry 330 + 0x1.fffffffffep-2, + 0x1.p11, + 0x1.000ffffffffffp11 + }, + { // Entry 331 + 0x1.p-1, + 0x1.p11, + 0x1.001p11 + }, + { // Entry 332 + 0x1.0000000001p-1, + 0x1.p11, + 0x1.0010000000001p11 + }, + { // Entry 333 + 0x1.fffffffffcp-2, + 0x1.p12, + 0x1.0007fffffffffp12 + }, + { // Entry 334 + 0x1.p-1, + 0x1.p12, + 0x1.00080p12 + }, + { // Entry 335 + 0x1.0000000002p-1, + 0x1.p12, + 0x1.0008000000001p12 + }, + { // Entry 336 + 0.0, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 337 + -0.0, + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 338 + 0.0, + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 339 + -0.0, + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 340 + 0.0, + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 341 + -0.0, + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 342 + 0x1.21fb54442d18p-3, + 0x1.80p1, + 0x1.921fb54442d18p1 + }, + { // Entry 343 + -0x1.21fb54442d18p-3, + -0x1.80p1, + -0x1.921fb54442d18p1 + }, + { // Entry 344 + 0x1.243f6a8885a3p-1, + 0x1.p0, + 0x1.921fb54442d18p0 + }, + { // Entry 345 + -0x1.243f6a8885a3p-1, + -0x1.p0, + -0x1.921fb54442d18p0 + }, + { // Entry 346 + 0x1.p-52, + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 347 + -0x1.p-52, + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 348 + 0.0, + 0x1.p0, + 0x1.0p0 + }, + { // Entry 349 + -0.0, + -0x1.p0, + -0x1.0p0 + }, + { // Entry 350 + 0x1.fffffffffffff0p-1, + 0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 351 + -0x1.fffffffffffff0p-1, + -0.0, + -0x1.fffffffffffffp-1 + }, + { // Entry 352 + 0x1.921fb54442d180p-1, + 0.0, + 0x1.921fb54442d18p-1 + }, + { // Entry 353 + -0x1.921fb54442d180p-1, + -0.0, + -0x1.921fb54442d18p-1 + }, + { // Entry 354 + 0x1.00000000000010p-1022, + 0.0, + 0x1.0000000000001p-1022 + }, + { // Entry 355 + -0x1.00000000000010p-1022, + -0.0, + -0x1.0000000000001p-1022 + }, + { // Entry 356 + 0x1.p-1022, + 0.0, + 0x1.0p-1022 + }, + { // Entry 357 + -0x1.p-1022, + -0.0, + -0x1.0p-1022 + }, + { // Entry 358 + 0x1.ffffffffffffe0p-1023, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 359 + -0x1.ffffffffffffe0p-1023, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 360 + 0x1.ffffffffffffc0p-1023, + 0.0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 361 + -0x1.ffffffffffffc0p-1023, + -0.0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 362 + 0x1.p-1073, + 0.0, + 0x1.0p-1073 + }, + { // Entry 363 + -0x1.p-1073, + -0.0, + -0x1.0p-1073 + }, + { // Entry 364 + 0x1.p-1074, + 0.0, + 0x1.0p-1074 + }, + { // Entry 365 + -0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 366 + 0.0, + 0.0, + 0.0 + }, + { // Entry 367 + -0.0, + -0.0, + -0.0 + } +}; diff --git a/tests/math_data/modff_intel_data.h b/tests/math_data/modff_intel_data.h new file mode 100644 index 000000000..f28f5c912 --- /dev/null +++ b/tests/math_data/modff_intel_data.h @@ -0,0 +1,1858 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_2_1_t g_modff_intel_data[] = { + { // Entry 0 + -0x1.p-149, + -0.0, + -0x1.p-149 + }, + { // Entry 1 + 0.0, + 0.0, + 0.0 + }, + { // Entry 2 + 0x1.p-149, + 0.0, + 0x1.p-149 + }, + { // Entry 3 + 0x1.fffffep-2, + 0.0, + 0x1.fffffep-2 + }, + { // Entry 4 + 0x1.p-1, + 0.0, + 0x1.p-1 + }, + { // Entry 5 + 0x1.000002p-1, + 0.0, + 0x1.000002p-1 + }, + { // Entry 6 + 0x1.fffffep-1, + 0.0, + 0x1.fffffep-1 + }, + { // Entry 7 + 0.0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 8 + 0x1.p-23, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 9 + 0x1.fffff8p-2, + 0x1.p0, + 0x1.7ffffep0 + }, + { // Entry 10 + 0x1.p-1, + 0x1.p0, + 0x1.80p0 + }, + { // Entry 11 + 0x1.000004p-1, + 0x1.p0, + 0x1.800002p0 + }, + { // Entry 12 + 0x1.fffffcp-1, + 0x1.p0, + 0x1.fffffep0 + }, + { // Entry 13 + 0.0, + 0x1.p1, + 0x1.p1 + }, + { // Entry 14 + 0x1.p-22, + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 15 + 0x1.fffff0p-2, + 0x1.p1, + 0x1.3ffffep1 + }, + { // Entry 16 + 0x1.p-1, + 0x1.p1, + 0x1.40p1 + }, + { // Entry 17 + 0x1.000008p-1, + 0x1.p1, + 0x1.400002p1 + }, + { // Entry 18 + 0x1.ffffp-1, + 0x1.8cp6, + 0x1.8ffffep6 + }, + { // Entry 19 + 0.0, + 0x1.90p6, + 0x1.90p6 + }, + { // Entry 20 + 0x1.p-17, + 0x1.90p6, + 0x1.900002p6 + }, + { // Entry 21 + 0x1.fffep-2, + 0x1.90p6, + 0x1.91fffep6 + }, + { // Entry 22 + 0x1.p-1, + 0x1.90p6, + 0x1.92p6 + }, + { // Entry 23 + 0x1.0001p-1, + 0x1.90p6, + 0x1.920002p6 + }, + { // Entry 24 + 0x1.fff8p-1, + 0x1.f380p9, + 0x1.f3fffep9 + }, + { // Entry 25 + 0.0, + 0x1.f4p9, + 0x1.f4p9 + }, + { // Entry 26 + 0x1.p-14, + 0x1.f4p9, + 0x1.f40002p9 + }, + { // Entry 27 + 0x1.fff0p-2, + 0x1.f4p9, + 0x1.f43ffep9 + }, + { // Entry 28 + 0x1.p-1, + 0x1.f4p9, + 0x1.f440p9 + }, + { // Entry 29 + 0x1.0008p-1, + 0x1.f4p9, + 0x1.f44002p9 + }, + { // Entry 30 + 0x1.c0p-1, + 0x1.fffff0p20, + 0x1.fffffep20 + }, + { // Entry 31 + 0.0, + 0x1.p21, + 0x1.p21 + }, + { // Entry 32 + 0x1.p-2, + 0x1.p21, + 0x1.000002p21 + }, + { // Entry 33 + 0x1.80p-1, + 0x1.fffff8p21, + 0x1.fffffep21 + }, + { // Entry 34 + 0.0, + 0x1.p22, + 0x1.p22 + }, + { // Entry 35 + 0x1.p-1, + 0x1.p22, + 0x1.000002p22 + }, + { // Entry 36 + 0x1.p-1, + 0x1.fffffcp22, + 0x1.fffffep22 + }, + { // Entry 37 + 0.0, + 0x1.p23, + 0x1.p23 + }, + { // Entry 38 + 0.0, + 0x1.000002p23, + 0x1.000002p23 + }, + { // Entry 39 + 0.0, + 0x1.fffffep23, + 0x1.fffffep23 + }, + { // Entry 40 + 0.0, + 0x1.p24, + 0x1.p24 + }, + { // Entry 41 + 0.0, + 0x1.000002p24, + 0x1.000002p24 + }, + { // Entry 42 + 0.0, + 0x1.fffffep24, + 0x1.fffffep24 + }, + { // Entry 43 + 0.0, + 0x1.p25, + 0x1.p25 + }, + { // Entry 44 + 0.0, + 0x1.000002p25, + 0x1.000002p25 + }, + { // Entry 45 + 0.0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 46 + -0x1.000002p-1, + -0.0, + -0x1.000002p-1 + }, + { // Entry 47 + -0x1.p-1, + -0.0, + -0x1.p-1 + }, + { // Entry 48 + -0x1.fffffep-2, + -0.0, + -0x1.fffffep-2 + }, + { // Entry 49 + -0x1.p-23, + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 50 + -0.0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 51 + -0x1.fffffep-1, + -0.0, + -0x1.fffffep-1 + }, + { // Entry 52 + -0x1.000004p-1, + -0x1.p0, + -0x1.800002p0 + }, + { // Entry 53 + -0x1.p-1, + -0x1.p0, + -0x1.80p0 + }, + { // Entry 54 + -0x1.fffff8p-2, + -0x1.p0, + -0x1.7ffffep0 + }, + { // Entry 55 + -0x1.p-22, + -0x1.p1, + -0x1.000002p1 + }, + { // Entry 56 + -0.0, + -0x1.p1, + -0x1.p1 + }, + { // Entry 57 + -0x1.fffffcp-1, + -0x1.p0, + -0x1.fffffep0 + }, + { // Entry 58 + -0x1.000008p-1, + -0x1.p1, + -0x1.400002p1 + }, + { // Entry 59 + -0x1.p-1, + -0x1.p1, + -0x1.40p1 + }, + { // Entry 60 + -0x1.fffff0p-2, + -0x1.p1, + -0x1.3ffffep1 + }, + { // Entry 61 + -0x1.p-17, + -0x1.90p6, + -0x1.900002p6 + }, + { // Entry 62 + -0.0, + -0x1.90p6, + -0x1.90p6 + }, + { // Entry 63 + -0x1.ffffp-1, + -0x1.8cp6, + -0x1.8ffffep6 + }, + { // Entry 64 + -0x1.0001p-1, + -0x1.90p6, + -0x1.920002p6 + }, + { // Entry 65 + -0x1.p-1, + -0x1.90p6, + -0x1.92p6 + }, + { // Entry 66 + -0x1.fffep-2, + -0x1.90p6, + -0x1.91fffep6 + }, + { // Entry 67 + -0x1.p-14, + -0x1.f4p9, + -0x1.f40002p9 + }, + { // Entry 68 + -0.0, + -0x1.f4p9, + -0x1.f4p9 + }, + { // Entry 69 + -0x1.fff8p-1, + -0x1.f380p9, + -0x1.f3fffep9 + }, + { // Entry 70 + -0x1.0008p-1, + -0x1.f4p9, + -0x1.f44002p9 + }, + { // Entry 71 + -0x1.p-1, + -0x1.f4p9, + -0x1.f440p9 + }, + { // Entry 72 + -0x1.fff0p-2, + -0x1.f4p9, + -0x1.f43ffep9 + }, + { // Entry 73 + -0x1.p-2, + -0x1.p21, + -0x1.000002p21 + }, + { // Entry 74 + -0.0, + -0x1.p21, + -0x1.p21 + }, + { // Entry 75 + -0x1.c0p-1, + -0x1.fffff0p20, + -0x1.fffffep20 + }, + { // Entry 76 + -0x1.p-1, + -0x1.p22, + -0x1.000002p22 + }, + { // Entry 77 + -0.0, + -0x1.p22, + -0x1.p22 + }, + { // Entry 78 + -0x1.80p-1, + -0x1.fffff8p21, + -0x1.fffffep21 + }, + { // Entry 79 + -0.0, + -0x1.000002p23, + -0x1.000002p23 + }, + { // Entry 80 + -0.0, + -0x1.p23, + -0x1.p23 + }, + { // Entry 81 + -0x1.p-1, + -0x1.fffffcp22, + -0x1.fffffep22 + }, + { // Entry 82 + -0.0, + -0x1.000002p24, + -0x1.000002p24 + }, + { // Entry 83 + -0.0, + -0x1.p24, + -0x1.p24 + }, + { // Entry 84 + -0.0, + -0x1.fffffep23, + -0x1.fffffep23 + }, + { // Entry 85 + -0.0, + -0x1.000002p25, + -0x1.000002p25 + }, + { // Entry 86 + -0.0, + -0x1.p25, + -0x1.p25 + }, + { // Entry 87 + -0.0, + -0x1.fffffep24, + -0x1.fffffep24 + }, + { // Entry 88 + -0.0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 89 + 0.0, + 0x1.fffffep29, + 0x1.fffffep29 + }, + { // Entry 90 + 0.0, + 0x1.p30, + 0x1.p30 + }, + { // Entry 91 + 0.0, + 0x1.000002p30, + 0x1.000002p30 + }, + { // Entry 92 + 0.0, + 0x1.fffffap30, + 0x1.fffffap30 + }, + { // Entry 93 + 0.0, + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 94 + 0.0, + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 95 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 96 + 0.0, + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 97 + 0.0, + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 98 + 0.0, + 0x1.000006p31, + 0x1.000006p31 + }, + { // Entry 99 + 0.0, + 0x1.fffffap30, + 0x1.fffffap30 + }, + { // Entry 100 + 0.0, + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 101 + 0.0, + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 102 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 103 + 0.0, + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 104 + 0.0, + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 105 + 0.0, + 0x1.000006p31, + 0x1.000006p31 + }, + { // Entry 106 + 0.0, + 0x1.fffffap30, + 0x1.fffffap30 + }, + { // Entry 107 + 0.0, + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 108 + 0.0, + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 109 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 110 + 0.0, + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 111 + 0.0, + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 112 + 0.0, + 0x1.000006p31, + 0x1.000006p31 + }, + { // Entry 113 + 0.0, + 0x1.fffffap30, + 0x1.fffffap30 + }, + { // Entry 114 + 0.0, + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 115 + 0.0, + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 116 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 117 + 0.0, + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 118 + 0.0, + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 119 + 0.0, + 0x1.000006p31, + 0x1.000006p31 + }, + { // Entry 120 + 0.0, + 0x1.fffffap30, + 0x1.fffffap30 + }, + { // Entry 121 + 0.0, + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 122 + 0.0, + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 123 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 124 + 0.0, + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 125 + 0.0, + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 126 + 0.0, + 0x1.000006p31, + 0x1.000006p31 + }, + { // Entry 127 + 0.0, + 0x1.fffffap30, + 0x1.fffffap30 + }, + { // Entry 128 + 0.0, + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 129 + 0.0, + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 130 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 131 + 0.0, + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 132 + 0.0, + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 133 + 0.0, + 0x1.000006p31, + 0x1.000006p31 + }, + { // Entry 134 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 135 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 136 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 137 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 138 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 139 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 140 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 141 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 142 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 143 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 144 + -0.0, + -0x1.000002p30, + -0x1.000002p30 + }, + { // Entry 145 + -0.0, + -0x1.p30, + -0x1.p30 + }, + { // Entry 146 + -0.0, + -0x1.fffffep29, + -0x1.fffffep29 + }, + { // Entry 147 + -0.0, + -0x1.000006p31, + -0x1.000006p31 + }, + { // Entry 148 + -0.0, + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 149 + -0.0, + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 150 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 151 + -0.0, + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 152 + -0.0, + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 153 + -0.0, + -0x1.fffffap30, + -0x1.fffffap30 + }, + { // Entry 154 + -0.0, + -0x1.000006p31, + -0x1.000006p31 + }, + { // Entry 155 + -0.0, + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 156 + -0.0, + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 157 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 158 + -0.0, + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 159 + -0.0, + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 160 + -0.0, + -0x1.fffffap30, + -0x1.fffffap30 + }, + { // Entry 161 + -0.0, + -0x1.000006p31, + -0x1.000006p31 + }, + { // Entry 162 + -0.0, + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 163 + -0.0, + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 164 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 165 + -0.0, + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 166 + -0.0, + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 167 + -0.0, + -0x1.fffffap30, + -0x1.fffffap30 + }, + { // Entry 168 + -0.0, + -0x1.000006p31, + -0x1.000006p31 + }, + { // Entry 169 + -0.0, + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 170 + -0.0, + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 171 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 172 + -0.0, + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 173 + -0.0, + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 174 + -0.0, + -0x1.fffffap30, + -0x1.fffffap30 + }, + { // Entry 175 + -0.0, + -0x1.000006p31, + -0x1.000006p31 + }, + { // Entry 176 + -0.0, + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 177 + -0.0, + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 178 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 179 + -0.0, + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 180 + -0.0, + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 181 + -0.0, + -0x1.fffffap30, + -0x1.fffffap30 + }, + { // Entry 182 + -0.0, + -0x1.000006p31, + -0x1.000006p31 + }, + { // Entry 183 + -0.0, + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 184 + -0.0, + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 185 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 186 + -0.0, + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 187 + -0.0, + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 188 + -0.0, + -0x1.fffffap30, + -0x1.fffffap30 + }, + { // Entry 189 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 190 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 191 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 192 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 193 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 194 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 195 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 196 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 197 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 198 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 199 + 0.0, + 0x1.fffffap61, + 0x1.fffffap61 + }, + { // Entry 200 + 0.0, + 0x1.fffffcp61, + 0x1.fffffcp61 + }, + { // Entry 201 + 0.0, + 0x1.fffffep61, + 0x1.fffffep61 + }, + { // Entry 202 + 0.0, + 0x1.p62, + 0x1.p62 + }, + { // Entry 203 + 0.0, + 0x1.000002p62, + 0x1.000002p62 + }, + { // Entry 204 + 0.0, + 0x1.000004p62, + 0x1.000004p62 + }, + { // Entry 205 + 0.0, + 0x1.000006p62, + 0x1.000006p62 + }, + { // Entry 206 + 0.0, + 0x1.fffffap62, + 0x1.fffffap62 + }, + { // Entry 207 + 0.0, + 0x1.fffffcp62, + 0x1.fffffcp62 + }, + { // Entry 208 + 0.0, + 0x1.fffffep62, + 0x1.fffffep62 + }, + { // Entry 209 + 0.0, + 0x1.p63, + 0x1.p63 + }, + { // Entry 210 + 0.0, + 0x1.000002p63, + 0x1.000002p63 + }, + { // Entry 211 + 0.0, + 0x1.000004p63, + 0x1.000004p63 + }, + { // Entry 212 + 0.0, + 0x1.000006p63, + 0x1.000006p63 + }, + { // Entry 213 + 0.0, + 0x1.fffffap63, + 0x1.fffffap63 + }, + { // Entry 214 + 0.0, + 0x1.fffffcp63, + 0x1.fffffcp63 + }, + { // Entry 215 + 0.0, + 0x1.fffffep63, + 0x1.fffffep63 + }, + { // Entry 216 + 0.0, + 0x1.p64, + 0x1.p64 + }, + { // Entry 217 + 0.0, + 0x1.000002p64, + 0x1.000002p64 + }, + { // Entry 218 + 0.0, + 0x1.000004p64, + 0x1.000004p64 + }, + { // Entry 219 + 0.0, + 0x1.000006p64, + 0x1.000006p64 + }, + { // Entry 220 + -0.0, + -0x1.000006p62, + -0x1.000006p62 + }, + { // Entry 221 + -0.0, + -0x1.000004p62, + -0x1.000004p62 + }, + { // Entry 222 + -0.0, + -0x1.000002p62, + -0x1.000002p62 + }, + { // Entry 223 + -0.0, + -0x1.p62, + -0x1.p62 + }, + { // Entry 224 + -0.0, + -0x1.fffffep61, + -0x1.fffffep61 + }, + { // Entry 225 + -0.0, + -0x1.fffffcp61, + -0x1.fffffcp61 + }, + { // Entry 226 + -0.0, + -0x1.fffffap61, + -0x1.fffffap61 + }, + { // Entry 227 + -0.0, + -0x1.000006p63, + -0x1.000006p63 + }, + { // Entry 228 + -0.0, + -0x1.000004p63, + -0x1.000004p63 + }, + { // Entry 229 + -0.0, + -0x1.000002p63, + -0x1.000002p63 + }, + { // Entry 230 + -0.0, + -0x1.p63, + -0x1.p63 + }, + { // Entry 231 + -0.0, + -0x1.fffffep62, + -0x1.fffffep62 + }, + { // Entry 232 + -0.0, + -0x1.fffffcp62, + -0x1.fffffcp62 + }, + { // Entry 233 + -0.0, + -0x1.fffffap62, + -0x1.fffffap62 + }, + { // Entry 234 + -0.0, + -0x1.000006p64, + -0x1.000006p64 + }, + { // Entry 235 + -0.0, + -0x1.000004p64, + -0x1.000004p64 + }, + { // Entry 236 + -0.0, + -0x1.000002p64, + -0x1.000002p64 + }, + { // Entry 237 + -0.0, + -0x1.p64, + -0x1.p64 + }, + { // Entry 238 + -0.0, + -0x1.fffffep63, + -0x1.fffffep63 + }, + { // Entry 239 + -0.0, + -0x1.fffffcp63, + -0x1.fffffcp63 + }, + { // Entry 240 + -0.0, + -0x1.fffffap63, + -0x1.fffffap63 + }, + { // Entry 241 + 0.0, + 0x1.p62, + 0x1.p62 + }, + { // Entry 242 + 0.0, + 0x1.40p62, + 0x1.40p62 + }, + { // Entry 243 + 0.0, + 0x1.80p62, + 0x1.80p62 + }, + { // Entry 244 + 0.0, + 0x1.c0p62, + 0x1.c0p62 + }, + { // Entry 245 + 0.0, + 0x1.p63, + 0x1.p63 + }, + { // Entry 246 + 0.0, + 0x1.p63, + 0x1.p63 + }, + { // Entry 247 + 0.0, + 0x1.40p63, + 0x1.40p63 + }, + { // Entry 248 + 0.0, + 0x1.80p63, + 0x1.80p63 + }, + { // Entry 249 + 0.0, + 0x1.c0p63, + 0x1.c0p63 + }, + { // Entry 250 + 0.0, + 0x1.p64, + 0x1.p64 + }, + { // Entry 251 + -0.0, + -0x1.p62, + -0x1.p62 + }, + { // Entry 252 + -0.0, + -0x1.40p62, + -0x1.40p62 + }, + { // Entry 253 + -0.0, + -0x1.80p62, + -0x1.80p62 + }, + { // Entry 254 + -0.0, + -0x1.c0p62, + -0x1.c0p62 + }, + { // Entry 255 + -0.0, + -0x1.p63, + -0x1.p63 + }, + { // Entry 256 + -0.0, + -0x1.p63, + -0x1.p63 + }, + { // Entry 257 + -0.0, + -0x1.40p63, + -0x1.40p63 + }, + { // Entry 258 + -0.0, + -0x1.80p63, + -0x1.80p63 + }, + { // Entry 259 + -0.0, + -0x1.c0p63, + -0x1.c0p63 + }, + { // Entry 260 + -0.0, + -0x1.p64, + -0x1.p64 + }, + { // Entry 261 + 0.0, + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 262 + 0.0, + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 263 + 0.0, + 0x1.p31, + 0x1.p31 + }, + { // Entry 264 + -0.0, + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 265 + -0.0, + -0x1.p31, + -0x1.p31 + }, + { // Entry 266 + -0.0, + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 267 + 0x1.fffff8p-1, + 0x1.80p1, + 0x1.fffffep1 + }, + { // Entry 268 + 0.0, + 0x1.p2, + 0x1.p2 + }, + { // Entry 269 + 0x1.p-21, + 0x1.p2, + 0x1.000002p2 + }, + { // Entry 270 + 0x1.fffff0p-1, + 0x1.c0p2, + 0x1.fffffep2 + }, + { // Entry 271 + 0.0, + 0x1.p3, + 0x1.p3 + }, + { // Entry 272 + 0x1.p-20, + 0x1.p3, + 0x1.000002p3 + }, + { // Entry 273 + 0x1.ffffe0p-1, + 0x1.e0p3, + 0x1.fffffep3 + }, + { // Entry 274 + 0.0, + 0x1.p4, + 0x1.p4 + }, + { // Entry 275 + 0x1.p-19, + 0x1.p4, + 0x1.000002p4 + }, + { // Entry 276 + 0x1.ffffc0p-1, + 0x1.f0p4, + 0x1.fffffep4 + }, + { // Entry 277 + 0.0, + 0x1.p5, + 0x1.p5 + }, + { // Entry 278 + 0x1.p-18, + 0x1.p5, + 0x1.000002p5 + }, + { // Entry 279 + 0x1.ffff80p-1, + 0x1.f8p5, + 0x1.fffffep5 + }, + { // Entry 280 + 0.0, + 0x1.p6, + 0x1.p6 + }, + { // Entry 281 + 0x1.p-17, + 0x1.p6, + 0x1.000002p6 + }, + { // Entry 282 + 0x1.ffffp-1, + 0x1.fcp6, + 0x1.fffffep6 + }, + { // Entry 283 + 0.0, + 0x1.p7, + 0x1.p7 + }, + { // Entry 284 + 0x1.p-16, + 0x1.p7, + 0x1.000002p7 + }, + { // Entry 285 + 0x1.fffep-1, + 0x1.fep7, + 0x1.fffffep7 + }, + { // Entry 286 + 0.0, + 0x1.p8, + 0x1.p8 + }, + { // Entry 287 + 0x1.p-15, + 0x1.p8, + 0x1.000002p8 + }, + { // Entry 288 + 0x1.fffcp-1, + 0x1.ffp8, + 0x1.fffffep8 + }, + { // Entry 289 + 0.0, + 0x1.p9, + 0x1.p9 + }, + { // Entry 290 + 0x1.p-14, + 0x1.p9, + 0x1.000002p9 + }, + { // Entry 291 + 0x1.fff8p-1, + 0x1.ff80p9, + 0x1.fffffep9 + }, + { // Entry 292 + 0.0, + 0x1.p10, + 0x1.p10 + }, + { // Entry 293 + 0x1.p-13, + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 294 + 0x1.fff0p-1, + 0x1.ffc0p10, + 0x1.fffffep10 + }, + { // Entry 295 + 0.0, + 0x1.p11, + 0x1.p11 + }, + { // Entry 296 + 0x1.p-12, + 0x1.p11, + 0x1.000002p11 + }, + { // Entry 297 + 0x1.ffe0p-1, + 0x1.ffe0p11, + 0x1.fffffep11 + }, + { // Entry 298 + 0.0, + 0x1.p12, + 0x1.p12 + }, + { // Entry 299 + 0x1.p-11, + 0x1.p12, + 0x1.000002p12 + }, + { // Entry 300 + 0x1.ffffe0p-2, + 0x1.p2, + 0x1.1ffffep2 + }, + { // Entry 301 + 0x1.p-1, + 0x1.p2, + 0x1.20p2 + }, + { // Entry 302 + 0x1.000010p-1, + 0x1.p2, + 0x1.200002p2 + }, + { // Entry 303 + 0x1.ffffc0p-2, + 0x1.p3, + 0x1.0ffffep3 + }, + { // Entry 304 + 0x1.p-1, + 0x1.p3, + 0x1.10p3 + }, + { // Entry 305 + 0x1.000020p-1, + 0x1.p3, + 0x1.100002p3 + }, + { // Entry 306 + 0x1.ffff80p-2, + 0x1.p4, + 0x1.07fffep4 + }, + { // Entry 307 + 0x1.p-1, + 0x1.p4, + 0x1.08p4 + }, + { // Entry 308 + 0x1.000040p-1, + 0x1.p4, + 0x1.080002p4 + }, + { // Entry 309 + 0x1.ffffp-2, + 0x1.p5, + 0x1.03fffep5 + }, + { // Entry 310 + 0x1.p-1, + 0x1.p5, + 0x1.04p5 + }, + { // Entry 311 + 0x1.000080p-1, + 0x1.p5, + 0x1.040002p5 + }, + { // Entry 312 + 0x1.fffep-2, + 0x1.p6, + 0x1.01fffep6 + }, + { // Entry 313 + 0x1.p-1, + 0x1.p6, + 0x1.02p6 + }, + { // Entry 314 + 0x1.0001p-1, + 0x1.p6, + 0x1.020002p6 + }, + { // Entry 315 + 0x1.fffcp-2, + 0x1.p7, + 0x1.00fffep7 + }, + { // Entry 316 + 0x1.p-1, + 0x1.p7, + 0x1.01p7 + }, + { // Entry 317 + 0x1.0002p-1, + 0x1.p7, + 0x1.010002p7 + }, + { // Entry 318 + 0x1.fff8p-2, + 0x1.p8, + 0x1.007ffep8 + }, + { // Entry 319 + 0x1.p-1, + 0x1.p8, + 0x1.0080p8 + }, + { // Entry 320 + 0x1.0004p-1, + 0x1.p8, + 0x1.008002p8 + }, + { // Entry 321 + 0x1.fff0p-2, + 0x1.p9, + 0x1.003ffep9 + }, + { // Entry 322 + 0x1.p-1, + 0x1.p9, + 0x1.0040p9 + }, + { // Entry 323 + 0x1.0008p-1, + 0x1.p9, + 0x1.004002p9 + }, + { // Entry 324 + 0x1.ffe0p-2, + 0x1.p10, + 0x1.001ffep10 + }, + { // Entry 325 + 0x1.p-1, + 0x1.p10, + 0x1.0020p10 + }, + { // Entry 326 + 0x1.0010p-1, + 0x1.p10, + 0x1.002002p10 + }, + { // Entry 327 + 0x1.ffe0p-2, + 0x1.0040p10, + 0x1.005ffep10 + }, + { // Entry 328 + 0x1.p-1, + 0x1.0040p10, + 0x1.0060p10 + }, + { // Entry 329 + 0x1.0010p-1, + 0x1.0040p10, + 0x1.006002p10 + }, + { // Entry 330 + 0x1.ffc0p-2, + 0x1.p11, + 0x1.000ffep11 + }, + { // Entry 331 + 0x1.p-1, + 0x1.p11, + 0x1.0010p11 + }, + { // Entry 332 + 0x1.0020p-1, + 0x1.p11, + 0x1.001002p11 + }, + { // Entry 333 + 0x1.ff80p-2, + 0x1.p12, + 0x1.0007fep12 + }, + { // Entry 334 + 0x1.p-1, + 0x1.p12, + 0x1.0008p12 + }, + { // Entry 335 + 0x1.0040p-1, + 0x1.p12, + 0x1.000802p12 + }, + { // Entry 336 + 0.0, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 337 + -0.0, + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 338 + 0.0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 339 + -0.0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 340 + 0.0, + 0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 341 + -0.0, + -0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 342 + 0x1.21fb60p-3, + 0x1.80p1, + 0x1.921fb6p1 + }, + { // Entry 343 + -0x1.21fb60p-3, + -0x1.80p1, + -0x1.921fb6p1 + }, + { // Entry 344 + 0x1.243f6cp-1, + 0x1.p0, + 0x1.921fb6p0 + }, + { // Entry 345 + -0x1.243f6cp-1, + -0x1.p0, + -0x1.921fb6p0 + }, + { // Entry 346 + 0x1.p-23, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 347 + -0x1.p-23, + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 348 + 0.0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 349 + -0.0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 350 + 0x1.fffffep-1, + 0.0, + 0x1.fffffep-1 + }, + { // Entry 351 + -0x1.fffffep-1, + -0.0, + -0x1.fffffep-1 + }, + { // Entry 352 + 0x1.921fb6p-1, + 0.0, + 0x1.921fb6p-1 + }, + { // Entry 353 + -0x1.921fb6p-1, + -0.0, + -0x1.921fb6p-1 + }, + { // Entry 354 + 0x1.000002p-126, + 0.0, + 0x1.000002p-126 + }, + { // Entry 355 + -0x1.000002p-126, + -0.0, + -0x1.000002p-126 + }, + { // Entry 356 + 0x1.p-126, + 0.0, + 0x1.p-126 + }, + { // Entry 357 + -0x1.p-126, + -0.0, + -0x1.p-126 + }, + { // Entry 358 + 0x1.fffffcp-127, + 0.0, + 0x1.fffffcp-127 + }, + { // Entry 359 + -0x1.fffffcp-127, + -0.0, + -0x1.fffffcp-127 + }, + { // Entry 360 + 0x1.fffff8p-127, + 0.0, + 0x1.fffff8p-127 + }, + { // Entry 361 + -0x1.fffff8p-127, + -0.0, + -0x1.fffff8p-127 + }, + { // Entry 362 + 0x1.p-148, + 0.0, + 0x1.p-148 + }, + { // Entry 363 + -0x1.p-148, + -0.0, + -0x1.p-148 + }, + { // Entry 364 + 0x1.p-149, + 0.0, + 0x1.p-149 + }, + { // Entry 365 + -0x1.p-149, + -0.0, + -0x1.p-149 + }, + { // Entry 366 + 0.0, + 0.0, + 0.0f + }, + { // Entry 367 + -0.0, + -0.0, + -0.0f + } +}; diff --git a/tests/math_data/nearbyint_intel_data.h b/tests/math_data/nearbyint_intel_data.h new file mode 100644 index 000000000..d51cbe46f --- /dev/null +++ b/tests/math_data/nearbyint_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_nearbyint_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.0p-1074 + }, + { // Entry 1 + -0.0, + -0.0 + }, + { // Entry 2 + 0.0, + 0x1.0p-1074 + }, + { // Entry 3 + 0.0, + 0x1.fffffffffffffp-2 + }, + { // Entry 4 + 0.0, + 0x1.0p-1 + }, + { // Entry 5 + 0x1.p0, + 0x1.0000000000001p-1 + }, + { // Entry 6 + 0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 8 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 9 + 0x1.p0, + 0x1.7ffffffffffffp0 + }, + { // Entry 10 + 0x1.p1, + 0x1.8p0 + }, + { // Entry 11 + 0x1.p1, + 0x1.8000000000001p0 + }, + { // Entry 12 + 0x1.p1, + 0x1.fffffffffffffp0 + }, + { // Entry 13 + 0x1.p1, + 0x1.0p1 + }, + { // Entry 14 + 0x1.p1, + 0x1.0000000000001p1 + }, + { // Entry 15 + 0x1.p1, + 0x1.3ffffffffffffp1 + }, + { // Entry 16 + 0x1.p1, + 0x1.4p1 + }, + { // Entry 17 + 0x1.80p1, + 0x1.4000000000001p1 + }, + { // Entry 18 + 0x1.90p6, + 0x1.8ffffffffffffp6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.9p6 + }, + { // Entry 20 + 0x1.90p6, + 0x1.9000000000001p6 + }, + { // Entry 21 + 0x1.90p6, + 0x1.91fffffffffffp6 + }, + { // Entry 22 + 0x1.90p6, + 0x1.920p6 + }, + { // Entry 23 + 0x1.94p6, + 0x1.9200000000001p6 + }, + { // Entry 24 + 0x1.f4p9, + 0x1.f3fffffffffffp9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f40p9 + }, + { // Entry 26 + 0x1.f4p9, + 0x1.f400000000001p9 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.f43ffffffffffp9 + }, + { // Entry 28 + 0x1.f4p9, + 0x1.f44p9 + }, + { // Entry 29 + 0x1.f480p9, + 0x1.f440000000001p9 + }, + { // Entry 30 + 0x1.p50, + 0x1.fffffffffffffp49 + }, + { // Entry 31 + 0x1.p50, + 0x1.0p50 + }, + { // Entry 32 + 0x1.p50, + 0x1.0000000000001p50 + }, + { // Entry 33 + 0x1.p51, + 0x1.fffffffffffffp50 + }, + { // Entry 34 + 0x1.p51, + 0x1.0p51 + }, + { // Entry 35 + 0x1.p51, + 0x1.0000000000001p51 + }, + { // Entry 36 + 0x1.p52, + 0x1.fffffffffffffp51 + }, + { // Entry 37 + 0x1.p52, + 0x1.0p52 + }, + { // Entry 38 + 0x1.00000000000010p52, + 0x1.0000000000001p52 + }, + { // Entry 39 + 0x1.fffffffffffff0p52, + 0x1.fffffffffffffp52 + }, + { // Entry 40 + 0x1.p53, + 0x1.0p53 + }, + { // Entry 41 + 0x1.00000000000010p53, + 0x1.0000000000001p53 + }, + { // Entry 42 + 0x1.fffffffffffff0p53, + 0x1.fffffffffffffp53 + }, + { // Entry 43 + 0x1.p54, + 0x1.0p54 + }, + { // Entry 44 + 0x1.00000000000010p54, + 0x1.0000000000001p54 + }, + { // Entry 45 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 46 + -0x1.p0, + -0x1.0000000000001p-1 + }, + { // Entry 47 + -0.0, + -0x1.0p-1 + }, + { // Entry 48 + -0.0, + -0x1.fffffffffffffp-2 + }, + { // Entry 49 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 51 + -0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 52 + -0x1.p1, + -0x1.8000000000001p0 + }, + { // Entry 53 + -0x1.p1, + -0x1.8p0 + }, + { // Entry 54 + -0x1.p0, + -0x1.7ffffffffffffp0 + }, + { // Entry 55 + -0x1.p1, + -0x1.0000000000001p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.0p1 + }, + { // Entry 57 + -0x1.p1, + -0x1.fffffffffffffp0 + }, + { // Entry 58 + -0x1.80p1, + -0x1.4000000000001p1 + }, + { // Entry 59 + -0x1.p1, + -0x1.4p1 + }, + { // Entry 60 + -0x1.p1, + -0x1.3ffffffffffffp1 + }, + { // Entry 61 + -0x1.90p6, + -0x1.9000000000001p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.9p6 + }, + { // Entry 63 + -0x1.90p6, + -0x1.8ffffffffffffp6 + }, + { // Entry 64 + -0x1.94p6, + -0x1.9200000000001p6 + }, + { // Entry 65 + -0x1.90p6, + -0x1.920p6 + }, + { // Entry 66 + -0x1.90p6, + -0x1.91fffffffffffp6 + }, + { // Entry 67 + -0x1.f4p9, + -0x1.f400000000001p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f40p9 + }, + { // Entry 69 + -0x1.f4p9, + -0x1.f3fffffffffffp9 + }, + { // Entry 70 + -0x1.f480p9, + -0x1.f440000000001p9 + }, + { // Entry 71 + -0x1.f4p9, + -0x1.f44p9 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f43ffffffffffp9 + }, + { // Entry 73 + -0x1.p50, + -0x1.0000000000001p50 + }, + { // Entry 74 + -0x1.p50, + -0x1.0p50 + }, + { // Entry 75 + -0x1.p50, + -0x1.fffffffffffffp49 + }, + { // Entry 76 + -0x1.p51, + -0x1.0000000000001p51 + }, + { // Entry 77 + -0x1.p51, + -0x1.0p51 + }, + { // Entry 78 + -0x1.p51, + -0x1.fffffffffffffp50 + }, + { // Entry 79 + -0x1.00000000000010p52, + -0x1.0000000000001p52 + }, + { // Entry 80 + -0x1.p52, + -0x1.0p52 + }, + { // Entry 81 + -0x1.p52, + -0x1.fffffffffffffp51 + }, + { // Entry 82 + -0x1.00000000000010p53, + -0x1.0000000000001p53 + }, + { // Entry 83 + -0x1.p53, + -0x1.0p53 + }, + { // Entry 84 + -0x1.fffffffffffff0p52, + -0x1.fffffffffffffp52 + }, + { // Entry 85 + -0x1.00000000000010p54, + -0x1.0000000000001p54 + }, + { // Entry 86 + -0x1.p54, + -0x1.0p54 + }, + { // Entry 87 + -0x1.fffffffffffff0p53, + -0x1.fffffffffffffp53 + }, + { // Entry 88 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 89 + 0x1.p30, + 0x1.fffffffffffffp29 + }, + { // Entry 90 + 0x1.p30, + 0x1.0p30 + }, + { // Entry 91 + 0x1.p30, + 0x1.0000000000001p30 + }, + { // Entry 92 + 0x1.fffffff8p30, + 0x1.fffffff7ffffep30 + }, + { // Entry 93 + 0x1.fffffff8p30, + 0x1.fffffff7fffffp30 + }, + { // Entry 94 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 95 + 0x1.fffffff8p30, + 0x1.fffffff800001p30 + }, + { // Entry 96 + 0x1.fffffff8p30, + 0x1.fffffff800002p30 + }, + { // Entry 97 + 0x1.fffffff8p30, + 0x1.fffffff9ffffep30 + }, + { // Entry 98 + 0x1.fffffff8p30, + 0x1.fffffff9fffffp30 + }, + { // Entry 99 + 0x1.fffffff8p30, + 0x1.fffffffa0p30 + }, + { // Entry 100 + 0x1.fffffffcp30, + 0x1.fffffffa00001p30 + }, + { // Entry 101 + 0x1.fffffffcp30, + 0x1.fffffffa00002p30 + }, + { // Entry 102 + 0x1.fffffffcp30, + 0x1.fffffffbffffep30 + }, + { // Entry 103 + 0x1.fffffffcp30, + 0x1.fffffffbfffffp30 + }, + { // Entry 104 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 105 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 106 + 0x1.fffffffcp30, + 0x1.fffffffc00002p30 + }, + { // Entry 107 + 0x1.fffffffcp30, + 0x1.fffffffdffffep30 + }, + { // Entry 108 + 0x1.fffffffcp30, + 0x1.fffffffdfffffp30 + }, + { // Entry 109 + 0x1.p31, + 0x1.fffffffe0p30 + }, + { // Entry 110 + 0x1.p31, + 0x1.fffffffe00001p30 + }, + { // Entry 111 + 0x1.p31, + 0x1.fffffffe00002p30 + }, + { // Entry 112 + 0x1.p31, + 0x1.ffffffffffffep30 + }, + { // Entry 113 + 0x1.p31, + 0x1.fffffffffffffp30 + }, + { // Entry 114 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 115 + 0x1.p31, + 0x1.0000000000001p31 + }, + { // Entry 116 + 0x1.p31, + 0x1.0000000000002p31 + }, + { // Entry 117 + 0x1.p31, + 0x1.00000000ffffep31 + }, + { // Entry 118 + 0x1.p31, + 0x1.00000000fffffp31 + }, + { // Entry 119 + 0x1.p31, + 0x1.000000010p31 + }, + { // Entry 120 + 0x1.00000002p31, + 0x1.0000000100001p31 + }, + { // Entry 121 + 0x1.00000002p31, + 0x1.0000000100002p31 + }, + { // Entry 122 + 0x1.ffffffe0p30, + 0x1.ffffffep30 + }, + { // Entry 123 + 0x1.ffffffe4p30, + 0x1.ffffffe40p30 + }, + { // Entry 124 + 0x1.ffffffe8p30, + 0x1.ffffffe80p30 + }, + { // Entry 125 + 0x1.ffffffecp30, + 0x1.ffffffec0p30 + }, + { // Entry 126 + 0x1.fffffff0p30, + 0x1.fffffffp30 + }, + { // Entry 127 + 0x1.fffffff4p30, + 0x1.fffffff40p30 + }, + { // Entry 128 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 129 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 130 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 131 + 0x1.00000002p31, + 0x1.000000020p31 + }, + { // Entry 132 + -0x1.p30, + -0x1.0000000000001p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.0p30 + }, + { // Entry 134 + -0x1.p30, + -0x1.fffffffffffffp29 + }, + { // Entry 135 + -0x1.fffffff8p30, + -0x1.fffffff800002p30 + }, + { // Entry 136 + -0x1.fffffff8p30, + -0x1.fffffff800001p30 + }, + { // Entry 137 + -0x1.fffffff8p30, + -0x1.fffffff80p30 + }, + { // Entry 138 + -0x1.fffffff8p30, + -0x1.fffffff7fffffp30 + }, + { // Entry 139 + -0x1.fffffff8p30, + -0x1.fffffff7ffffep30 + }, + { // Entry 140 + -0x1.fffffffcp30, + -0x1.fffffffa00002p30 + }, + { // Entry 141 + -0x1.fffffffcp30, + -0x1.fffffffa00001p30 + }, + { // Entry 142 + -0x1.fffffff8p30, + -0x1.fffffffa0p30 + }, + { // Entry 143 + -0x1.fffffff8p30, + -0x1.fffffff9fffffp30 + }, + { // Entry 144 + -0x1.fffffff8p30, + -0x1.fffffff9ffffep30 + }, + { // Entry 145 + -0x1.fffffffcp30, + -0x1.fffffffc00002p30 + }, + { // Entry 146 + -0x1.fffffffcp30, + -0x1.fffffffc00001p30 + }, + { // Entry 147 + -0x1.fffffffcp30, + -0x1.fffffffc0p30 + }, + { // Entry 148 + -0x1.fffffffcp30, + -0x1.fffffffbfffffp30 + }, + { // Entry 149 + -0x1.fffffffcp30, + -0x1.fffffffbffffep30 + }, + { // Entry 150 + -0x1.p31, + -0x1.fffffffe00002p30 + }, + { // Entry 151 + -0x1.p31, + -0x1.fffffffe00001p30 + }, + { // Entry 152 + -0x1.p31, + -0x1.fffffffe0p30 + }, + { // Entry 153 + -0x1.fffffffcp30, + -0x1.fffffffdfffffp30 + }, + { // Entry 154 + -0x1.fffffffcp30, + -0x1.fffffffdffffep30 + }, + { // Entry 155 + -0x1.p31, + -0x1.0000000000002p31 + }, + { // Entry 156 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 158 + -0x1.p31, + -0x1.fffffffffffffp30 + }, + { // Entry 159 + -0x1.p31, + -0x1.ffffffffffffep30 + }, + { // Entry 160 + -0x1.00000002p31, + -0x1.0000000100002p31 + }, + { // Entry 161 + -0x1.00000002p31, + -0x1.0000000100001p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.000000010p31 + }, + { // Entry 163 + -0x1.p31, + -0x1.00000000fffffp31 + }, + { // Entry 164 + -0x1.p31, + -0x1.00000000ffffep31 + }, + { // Entry 165 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 166 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 167 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 168 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 169 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 170 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 171 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 172 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 173 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 174 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 175 + 0x1.ffffffffffffe0p61, + 0x1.ffffffffffffep61 + }, + { // Entry 176 + 0x1.fffffffffffff0p61, + 0x1.fffffffffffffp61 + }, + { // Entry 177 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 178 + 0x1.00000000000010p62, + 0x1.0000000000001p62 + }, + { // Entry 179 + 0x1.00000000000020p62, + 0x1.0000000000002p62 + }, + { // Entry 180 + 0x1.ffffffffffffe0p62, + 0x1.ffffffffffffep62 + }, + { // Entry 181 + 0x1.fffffffffffff0p62, + 0x1.fffffffffffffp62 + }, + { // Entry 182 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 183 + 0x1.00000000000010p63, + 0x1.0000000000001p63 + }, + { // Entry 184 + 0x1.00000000000020p63, + 0x1.0000000000002p63 + }, + { // Entry 185 + 0x1.ffffffffffffe0p63, + 0x1.ffffffffffffep63 + }, + { // Entry 186 + 0x1.fffffffffffff0p63, + 0x1.fffffffffffffp63 + }, + { // Entry 187 + 0x1.p64, + 0x1.0p64 + }, + { // Entry 188 + 0x1.00000000000010p64, + 0x1.0000000000001p64 + }, + { // Entry 189 + 0x1.00000000000020p64, + 0x1.0000000000002p64 + }, + { // Entry 190 + -0x1.00000000000020p62, + -0x1.0000000000002p62 + }, + { // Entry 191 + -0x1.00000000000010p62, + -0x1.0000000000001p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 193 + -0x1.fffffffffffff0p61, + -0x1.fffffffffffffp61 + }, + { // Entry 194 + -0x1.ffffffffffffe0p61, + -0x1.ffffffffffffep61 + }, + { // Entry 195 + -0x1.00000000000020p63, + -0x1.0000000000002p63 + }, + { // Entry 196 + -0x1.00000000000010p63, + -0x1.0000000000001p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 198 + -0x1.fffffffffffff0p62, + -0x1.fffffffffffffp62 + }, + { // Entry 199 + -0x1.ffffffffffffe0p62, + -0x1.ffffffffffffep62 + }, + { // Entry 200 + -0x1.00000000000020p64, + -0x1.0000000000002p64 + }, + { // Entry 201 + -0x1.00000000000010p64, + -0x1.0000000000001p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.0p64 + }, + { // Entry 203 + -0x1.fffffffffffff0p63, + -0x1.fffffffffffffp63 + }, + { // Entry 204 + -0x1.ffffffffffffe0p63, + -0x1.ffffffffffffep63 + }, + { // Entry 205 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 209 + 0x1.fffffffcp30, + 0x1.fffffffbfffffp30 + }, + { // Entry 210 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 211 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 212 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 214 + -0x1.p31, + -0x1.fffffffffffffp30 + }, + { // Entry 215 + 0x1.p2, + 0x1.fffffffffffffp1 + }, + { // Entry 216 + 0x1.p2, + 0x1.0p2 + }, + { // Entry 217 + 0x1.p2, + 0x1.0000000000001p2 + }, + { // Entry 218 + 0x1.p3, + 0x1.fffffffffffffp2 + }, + { // Entry 219 + 0x1.p3, + 0x1.0p3 + }, + { // Entry 220 + 0x1.p3, + 0x1.0000000000001p3 + }, + { // Entry 221 + 0x1.p4, + 0x1.fffffffffffffp3 + }, + { // Entry 222 + 0x1.p4, + 0x1.0p4 + }, + { // Entry 223 + 0x1.p4, + 0x1.0000000000001p4 + }, + { // Entry 224 + 0x1.p5, + 0x1.fffffffffffffp4 + }, + { // Entry 225 + 0x1.p5, + 0x1.0p5 + }, + { // Entry 226 + 0x1.p5, + 0x1.0000000000001p5 + }, + { // Entry 227 + 0x1.p6, + 0x1.fffffffffffffp5 + }, + { // Entry 228 + 0x1.p6, + 0x1.0p6 + }, + { // Entry 229 + 0x1.p6, + 0x1.0000000000001p6 + }, + { // Entry 230 + 0x1.p7, + 0x1.fffffffffffffp6 + }, + { // Entry 231 + 0x1.p7, + 0x1.0p7 + }, + { // Entry 232 + 0x1.p7, + 0x1.0000000000001p7 + }, + { // Entry 233 + 0x1.p8, + 0x1.fffffffffffffp7 + }, + { // Entry 234 + 0x1.p8, + 0x1.0p8 + }, + { // Entry 235 + 0x1.p8, + 0x1.0000000000001p8 + }, + { // Entry 236 + 0x1.p9, + 0x1.fffffffffffffp8 + }, + { // Entry 237 + 0x1.p9, + 0x1.0p9 + }, + { // Entry 238 + 0x1.p9, + 0x1.0000000000001p9 + }, + { // Entry 239 + 0x1.p10, + 0x1.fffffffffffffp9 + }, + { // Entry 240 + 0x1.p10, + 0x1.0p10 + }, + { // Entry 241 + 0x1.p10, + 0x1.0000000000001p10 + }, + { // Entry 242 + 0x1.p11, + 0x1.fffffffffffffp10 + }, + { // Entry 243 + 0x1.p11, + 0x1.0p11 + }, + { // Entry 244 + 0x1.p11, + 0x1.0000000000001p11 + }, + { // Entry 245 + 0x1.p12, + 0x1.fffffffffffffp11 + }, + { // Entry 246 + 0x1.p12, + 0x1.0p12 + }, + { // Entry 247 + 0x1.p12, + 0x1.0000000000001p12 + }, + { // Entry 248 + 0x1.p2, + 0x1.1ffffffffffffp2 + }, + { // Entry 249 + 0x1.p2, + 0x1.2p2 + }, + { // Entry 250 + 0x1.40p2, + 0x1.2000000000001p2 + }, + { // Entry 251 + 0x1.p3, + 0x1.0ffffffffffffp3 + }, + { // Entry 252 + 0x1.p3, + 0x1.1p3 + }, + { // Entry 253 + 0x1.20p3, + 0x1.1000000000001p3 + }, + { // Entry 254 + 0x1.p4, + 0x1.07fffffffffffp4 + }, + { // Entry 255 + 0x1.p4, + 0x1.080p4 + }, + { // Entry 256 + 0x1.10p4, + 0x1.0800000000001p4 + }, + { // Entry 257 + 0x1.p5, + 0x1.03fffffffffffp5 + }, + { // Entry 258 + 0x1.p5, + 0x1.040p5 + }, + { // Entry 259 + 0x1.08p5, + 0x1.0400000000001p5 + }, + { // Entry 260 + 0x1.p6, + 0x1.01fffffffffffp6 + }, + { // Entry 261 + 0x1.p6, + 0x1.020p6 + }, + { // Entry 262 + 0x1.04p6, + 0x1.0200000000001p6 + }, + { // Entry 263 + 0x1.p7, + 0x1.00fffffffffffp7 + }, + { // Entry 264 + 0x1.p7, + 0x1.010p7 + }, + { // Entry 265 + 0x1.02p7, + 0x1.0100000000001p7 + }, + { // Entry 266 + 0x1.p8, + 0x1.007ffffffffffp8 + }, + { // Entry 267 + 0x1.p8, + 0x1.008p8 + }, + { // Entry 268 + 0x1.01p8, + 0x1.0080000000001p8 + }, + { // Entry 269 + 0x1.p9, + 0x1.003ffffffffffp9 + }, + { // Entry 270 + 0x1.p9, + 0x1.004p9 + }, + { // Entry 271 + 0x1.0080p9, + 0x1.0040000000001p9 + }, + { // Entry 272 + 0x1.p10, + 0x1.001ffffffffffp10 + }, + { // Entry 273 + 0x1.p10, + 0x1.002p10 + }, + { // Entry 274 + 0x1.0040p10, + 0x1.0020000000001p10 + }, + { // Entry 275 + 0x1.0040p10, + 0x1.005ffffffffffp10 + }, + { // Entry 276 + 0x1.0080p10, + 0x1.006p10 + }, + { // Entry 277 + 0x1.0080p10, + 0x1.0060000000001p10 + }, + { // Entry 278 + 0x1.p11, + 0x1.000ffffffffffp11 + }, + { // Entry 279 + 0x1.p11, + 0x1.001p11 + }, + { // Entry 280 + 0x1.0020p11, + 0x1.0010000000001p11 + }, + { // Entry 281 + 0x1.p12, + 0x1.0007fffffffffp12 + }, + { // Entry 282 + 0x1.p12, + 0x1.00080p12 + }, + { // Entry 283 + 0x1.0010p12, + 0x1.0008000000001p12 + }, + { // Entry 284 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 285 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 286 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 287 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 288 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 289 + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 290 + 0x1.80p1, + 0x1.921fb54442d18p1 + }, + { // Entry 291 + -0x1.80p1, + -0x1.921fb54442d18p1 + }, + { // Entry 292 + 0x1.p1, + 0x1.921fb54442d18p0 + }, + { // Entry 293 + -0x1.p1, + -0x1.921fb54442d18p0 + }, + { // Entry 294 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 295 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 298 + 0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 299 + -0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 300 + 0x1.p0, + 0x1.921fb54442d18p-1 + }, + { // Entry 301 + -0x1.p0, + -0x1.921fb54442d18p-1 + }, + { // Entry 302 + 0.0, + 0x1.0000000000001p-1022 + }, + { // Entry 303 + -0.0, + -0x1.0000000000001p-1022 + }, + { // Entry 304 + 0.0, + 0x1.0p-1022 + }, + { // Entry 305 + -0.0, + -0x1.0p-1022 + }, + { // Entry 306 + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 307 + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 308 + 0.0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 309 + -0.0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 310 + 0.0, + 0x1.0p-1073 + }, + { // Entry 311 + -0.0, + -0x1.0p-1073 + }, + { // Entry 312 + 0.0, + 0x1.0p-1074 + }, + { // Entry 313 + -0.0, + -0x1.0p-1074 + }, + { // Entry 314 + 0.0, + 0.0 + }, + { // Entry 315 + -0.0, + -0.0 + }, + { // Entry 316 + 0x1.p1, + 0x1.8p0 + }, + { // Entry 317 + -0x1.p1, + -0x1.8p0 + }, + { // Entry 318 + 0x1.p1, + 0x1.4p1 + }, + { // Entry 319 + -0x1.p1, + -0x1.4p1 + }, + { // Entry 320 + 0.0, + 0x1.fffffp-2 + }, + { // Entry 321 + 0.0, + 0x1.0p-1 + }, + { // Entry 322 + 0x1.p0, + 0x1.00001p-1 + }, + { // Entry 323 + -0.0, + -0x1.fffffp-2 + }, + { // Entry 324 + -0.0, + -0x1.0p-1 + }, + { // Entry 325 + -0x1.p0, + -0x1.00001p-1 + }, + { // Entry 326 + 0x1.p1, + 0x1.80001p0 + }, + { // Entry 327 + 0x1.p0, + 0x1.7ffffp0 + }, + { // Entry 328 + -0x1.p1, + -0x1.80001p0 + }, + { // Entry 329 + -0x1.p0, + -0x1.7ffffp0 + } +}; diff --git a/tests/math_data/nearbyintf_intel_data.h b/tests/math_data/nearbyintf_intel_data.h new file mode 100644 index 000000000..a917b77bf --- /dev/null +++ b/tests/math_data/nearbyintf_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_nearbyintf_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.p-149 + }, + { // Entry 1 + 0.0, + 0.0 + }, + { // Entry 2 + 0.0, + 0x1.p-149 + }, + { // Entry 3 + 0.0, + 0x1.fffffep-2 + }, + { // Entry 4 + 0.0, + 0x1.p-1 + }, + { // Entry 5 + 0x1.p0, + 0x1.000002p-1 + }, + { // Entry 6 + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.p0 + }, + { // Entry 8 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 9 + 0x1.p0, + 0x1.7ffffep0 + }, + { // Entry 10 + 0x1.p1, + 0x1.80p0 + }, + { // Entry 11 + 0x1.p1, + 0x1.800002p0 + }, + { // Entry 12 + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 13 + 0x1.p1, + 0x1.p1 + }, + { // Entry 14 + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 15 + 0x1.p1, + 0x1.3ffffep1 + }, + { // Entry 16 + 0x1.p1, + 0x1.40p1 + }, + { // Entry 17 + 0x1.80p1, + 0x1.400002p1 + }, + { // Entry 18 + 0x1.90p6, + 0x1.8ffffep6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.90p6 + }, + { // Entry 20 + 0x1.90p6, + 0x1.900002p6 + }, + { // Entry 21 + 0x1.90p6, + 0x1.91fffep6 + }, + { // Entry 22 + 0x1.90p6, + 0x1.92p6 + }, + { // Entry 23 + 0x1.94p6, + 0x1.920002p6 + }, + { // Entry 24 + 0x1.f4p9, + 0x1.f3fffep9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f4p9 + }, + { // Entry 26 + 0x1.f4p9, + 0x1.f40002p9 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.f43ffep9 + }, + { // Entry 28 + 0x1.f4p9, + 0x1.f440p9 + }, + { // Entry 29 + 0x1.f480p9, + 0x1.f44002p9 + }, + { // Entry 30 + 0x1.p21, + 0x1.fffffep20 + }, + { // Entry 31 + 0x1.p21, + 0x1.p21 + }, + { // Entry 32 + 0x1.p21, + 0x1.000002p21 + }, + { // Entry 33 + 0x1.p22, + 0x1.fffffep21 + }, + { // Entry 34 + 0x1.p22, + 0x1.p22 + }, + { // Entry 35 + 0x1.p22, + 0x1.000002p22 + }, + { // Entry 36 + 0x1.p23, + 0x1.fffffep22 + }, + { // Entry 37 + 0x1.p23, + 0x1.p23 + }, + { // Entry 38 + 0x1.000002p23, + 0x1.000002p23 + }, + { // Entry 39 + 0x1.fffffep23, + 0x1.fffffep23 + }, + { // Entry 40 + 0x1.p24, + 0x1.p24 + }, + { // Entry 41 + 0x1.000002p24, + 0x1.000002p24 + }, + { // Entry 42 + 0x1.fffffep24, + 0x1.fffffep24 + }, + { // Entry 43 + 0x1.p25, + 0x1.p25 + }, + { // Entry 44 + 0x1.000002p25, + 0x1.000002p25 + }, + { // Entry 45 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 46 + -0x1.p0, + -0x1.000002p-1 + }, + { // Entry 47 + -0.0, + -0x1.p-1 + }, + { // Entry 48 + -0.0, + -0x1.fffffep-2 + }, + { // Entry 49 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.p0 + }, + { // Entry 51 + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 52 + -0x1.p1, + -0x1.800002p0 + }, + { // Entry 53 + -0x1.p1, + -0x1.80p0 + }, + { // Entry 54 + -0x1.p0, + -0x1.7ffffep0 + }, + { // Entry 55 + -0x1.p1, + -0x1.000002p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.p1 + }, + { // Entry 57 + -0x1.p1, + -0x1.fffffep0 + }, + { // Entry 58 + -0x1.80p1, + -0x1.400002p1 + }, + { // Entry 59 + -0x1.p1, + -0x1.40p1 + }, + { // Entry 60 + -0x1.p1, + -0x1.3ffffep1 + }, + { // Entry 61 + -0x1.90p6, + -0x1.900002p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.90p6 + }, + { // Entry 63 + -0x1.90p6, + -0x1.8ffffep6 + }, + { // Entry 64 + -0x1.94p6, + -0x1.920002p6 + }, + { // Entry 65 + -0x1.90p6, + -0x1.92p6 + }, + { // Entry 66 + -0x1.90p6, + -0x1.91fffep6 + }, + { // Entry 67 + -0x1.f4p9, + -0x1.f40002p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f4p9 + }, + { // Entry 69 + -0x1.f4p9, + -0x1.f3fffep9 + }, + { // Entry 70 + -0x1.f480p9, + -0x1.f44002p9 + }, + { // Entry 71 + -0x1.f4p9, + -0x1.f440p9 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f43ffep9 + }, + { // Entry 73 + -0x1.p21, + -0x1.000002p21 + }, + { // Entry 74 + -0x1.p21, + -0x1.p21 + }, + { // Entry 75 + -0x1.p21, + -0x1.fffffep20 + }, + { // Entry 76 + -0x1.p22, + -0x1.000002p22 + }, + { // Entry 77 + -0x1.p22, + -0x1.p22 + }, + { // Entry 78 + -0x1.p22, + -0x1.fffffep21 + }, + { // Entry 79 + -0x1.000002p23, + -0x1.000002p23 + }, + { // Entry 80 + -0x1.p23, + -0x1.p23 + }, + { // Entry 81 + -0x1.p23, + -0x1.fffffep22 + }, + { // Entry 82 + -0x1.000002p24, + -0x1.000002p24 + }, + { // Entry 83 + -0x1.p24, + -0x1.p24 + }, + { // Entry 84 + -0x1.fffffep23, + -0x1.fffffep23 + }, + { // Entry 85 + -0x1.000002p25, + -0x1.000002p25 + }, + { // Entry 86 + -0x1.p25, + -0x1.p25 + }, + { // Entry 87 + -0x1.fffffep24, + -0x1.fffffep24 + }, + { // Entry 88 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 89 + 0x1.fffffep29, + 0x1.fffffep29 + }, + { // Entry 90 + 0x1.p30, + 0x1.p30 + }, + { // Entry 91 + 0x1.000002p30, + 0x1.000002p30 + }, + { // Entry 92 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 93 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 94 + 0x1.p31, + 0x1.p31 + }, + { // Entry 95 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 96 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 97 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 98 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 99 + 0x1.p31, + 0x1.p31 + }, + { // Entry 100 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 101 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 102 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 103 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 104 + 0x1.p31, + 0x1.p31 + }, + { // Entry 105 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 106 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 107 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 108 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 109 + 0x1.p31, + 0x1.p31 + }, + { // Entry 110 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 111 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 112 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 113 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 114 + 0x1.p31, + 0x1.p31 + }, + { // Entry 115 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 116 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 117 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 118 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 119 + 0x1.p31, + 0x1.p31 + }, + { // Entry 120 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 121 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 122 + 0x1.p31, + 0x1.p31 + }, + { // Entry 123 + 0x1.p31, + 0x1.p31 + }, + { // Entry 124 + 0x1.p31, + 0x1.p31 + }, + { // Entry 125 + 0x1.p31, + 0x1.p31 + }, + { // Entry 126 + 0x1.p31, + 0x1.p31 + }, + { // Entry 127 + 0x1.p31, + 0x1.p31 + }, + { // Entry 128 + 0x1.p31, + 0x1.p31 + }, + { // Entry 129 + 0x1.p31, + 0x1.p31 + }, + { // Entry 130 + 0x1.p31, + 0x1.p31 + }, + { // Entry 131 + 0x1.p31, + 0x1.p31 + }, + { // Entry 132 + -0x1.000002p30, + -0x1.000002p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.p30 + }, + { // Entry 134 + -0x1.fffffep29, + -0x1.fffffep29 + }, + { // Entry 135 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 136 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 137 + -0x1.p31, + -0x1.p31 + }, + { // Entry 138 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 139 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 140 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 141 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 142 + -0x1.p31, + -0x1.p31 + }, + { // Entry 143 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 144 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 145 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 146 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 147 + -0x1.p31, + -0x1.p31 + }, + { // Entry 148 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 149 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 150 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 151 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 152 + -0x1.p31, + -0x1.p31 + }, + { // Entry 153 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 154 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 155 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 156 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.p31 + }, + { // Entry 158 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 159 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 160 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 161 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.p31 + }, + { // Entry 163 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 164 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 165 + -0x1.p31, + -0x1.p31 + }, + { // Entry 166 + -0x1.p31, + -0x1.p31 + }, + { // Entry 167 + -0x1.p31, + -0x1.p31 + }, + { // Entry 168 + -0x1.p31, + -0x1.p31 + }, + { // Entry 169 + -0x1.p31, + -0x1.p31 + }, + { // Entry 170 + -0x1.p31, + -0x1.p31 + }, + { // Entry 171 + -0x1.p31, + -0x1.p31 + }, + { // Entry 172 + -0x1.p31, + -0x1.p31 + }, + { // Entry 173 + -0x1.p31, + -0x1.p31 + }, + { // Entry 174 + -0x1.p31, + -0x1.p31 + }, + { // Entry 175 + 0x1.fffffcp61, + 0x1.fffffcp61 + }, + { // Entry 176 + 0x1.fffffep61, + 0x1.fffffep61 + }, + { // Entry 177 + 0x1.p62, + 0x1.p62 + }, + { // Entry 178 + 0x1.000002p62, + 0x1.000002p62 + }, + { // Entry 179 + 0x1.000004p62, + 0x1.000004p62 + }, + { // Entry 180 + 0x1.fffffcp62, + 0x1.fffffcp62 + }, + { // Entry 181 + 0x1.fffffep62, + 0x1.fffffep62 + }, + { // Entry 182 + 0x1.p63, + 0x1.p63 + }, + { // Entry 183 + 0x1.000002p63, + 0x1.000002p63 + }, + { // Entry 184 + 0x1.000004p63, + 0x1.000004p63 + }, + { // Entry 185 + 0x1.fffffcp63, + 0x1.fffffcp63 + }, + { // Entry 186 + 0x1.fffffep63, + 0x1.fffffep63 + }, + { // Entry 187 + 0x1.p64, + 0x1.p64 + }, + { // Entry 188 + 0x1.000002p64, + 0x1.000002p64 + }, + { // Entry 189 + 0x1.000004p64, + 0x1.000004p64 + }, + { // Entry 190 + -0x1.000004p62, + -0x1.000004p62 + }, + { // Entry 191 + -0x1.000002p62, + -0x1.000002p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.p62 + }, + { // Entry 193 + -0x1.fffffep61, + -0x1.fffffep61 + }, + { // Entry 194 + -0x1.fffffcp61, + -0x1.fffffcp61 + }, + { // Entry 195 + -0x1.000004p63, + -0x1.000004p63 + }, + { // Entry 196 + -0x1.000002p63, + -0x1.000002p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.p63 + }, + { // Entry 198 + -0x1.fffffep62, + -0x1.fffffep62 + }, + { // Entry 199 + -0x1.fffffcp62, + -0x1.fffffcp62 + }, + { // Entry 200 + -0x1.000004p64, + -0x1.000004p64 + }, + { // Entry 201 + -0x1.000002p64, + -0x1.000002p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.p64 + }, + { // Entry 203 + -0x1.fffffep63, + -0x1.fffffep63 + }, + { // Entry 204 + -0x1.fffffcp63, + -0x1.fffffcp63 + }, + { // Entry 205 + 0x1.p62, + 0x1.p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.p63 + }, + { // Entry 209 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 210 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 211 + 0x1.p31, + 0x1.p31 + }, + { // Entry 212 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.p31 + }, + { // Entry 214 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 215 + 0x1.p2, + 0x1.fffffep1 + }, + { // Entry 216 + 0x1.p2, + 0x1.p2 + }, + { // Entry 217 + 0x1.p2, + 0x1.000002p2 + }, + { // Entry 218 + 0x1.p3, + 0x1.fffffep2 + }, + { // Entry 219 + 0x1.p3, + 0x1.p3 + }, + { // Entry 220 + 0x1.p3, + 0x1.000002p3 + }, + { // Entry 221 + 0x1.p4, + 0x1.fffffep3 + }, + { // Entry 222 + 0x1.p4, + 0x1.p4 + }, + { // Entry 223 + 0x1.p4, + 0x1.000002p4 + }, + { // Entry 224 + 0x1.p5, + 0x1.fffffep4 + }, + { // Entry 225 + 0x1.p5, + 0x1.p5 + }, + { // Entry 226 + 0x1.p5, + 0x1.000002p5 + }, + { // Entry 227 + 0x1.p6, + 0x1.fffffep5 + }, + { // Entry 228 + 0x1.p6, + 0x1.p6 + }, + { // Entry 229 + 0x1.p6, + 0x1.000002p6 + }, + { // Entry 230 + 0x1.p7, + 0x1.fffffep6 + }, + { // Entry 231 + 0x1.p7, + 0x1.p7 + }, + { // Entry 232 + 0x1.p7, + 0x1.000002p7 + }, + { // Entry 233 + 0x1.p8, + 0x1.fffffep7 + }, + { // Entry 234 + 0x1.p8, + 0x1.p8 + }, + { // Entry 235 + 0x1.p8, + 0x1.000002p8 + }, + { // Entry 236 + 0x1.p9, + 0x1.fffffep8 + }, + { // Entry 237 + 0x1.p9, + 0x1.p9 + }, + { // Entry 238 + 0x1.p9, + 0x1.000002p9 + }, + { // Entry 239 + 0x1.p10, + 0x1.fffffep9 + }, + { // Entry 240 + 0x1.p10, + 0x1.p10 + }, + { // Entry 241 + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 242 + 0x1.p11, + 0x1.fffffep10 + }, + { // Entry 243 + 0x1.p11, + 0x1.p11 + }, + { // Entry 244 + 0x1.p11, + 0x1.000002p11 + }, + { // Entry 245 + 0x1.p12, + 0x1.fffffep11 + }, + { // Entry 246 + 0x1.p12, + 0x1.p12 + }, + { // Entry 247 + 0x1.p12, + 0x1.000002p12 + }, + { // Entry 248 + 0x1.p2, + 0x1.1ffffep2 + }, + { // Entry 249 + 0x1.p2, + 0x1.20p2 + }, + { // Entry 250 + 0x1.40p2, + 0x1.200002p2 + }, + { // Entry 251 + 0x1.p3, + 0x1.0ffffep3 + }, + { // Entry 252 + 0x1.p3, + 0x1.10p3 + }, + { // Entry 253 + 0x1.20p3, + 0x1.100002p3 + }, + { // Entry 254 + 0x1.p4, + 0x1.07fffep4 + }, + { // Entry 255 + 0x1.p4, + 0x1.08p4 + }, + { // Entry 256 + 0x1.10p4, + 0x1.080002p4 + }, + { // Entry 257 + 0x1.p5, + 0x1.03fffep5 + }, + { // Entry 258 + 0x1.p5, + 0x1.04p5 + }, + { // Entry 259 + 0x1.08p5, + 0x1.040002p5 + }, + { // Entry 260 + 0x1.p6, + 0x1.01fffep6 + }, + { // Entry 261 + 0x1.p6, + 0x1.02p6 + }, + { // Entry 262 + 0x1.04p6, + 0x1.020002p6 + }, + { // Entry 263 + 0x1.p7, + 0x1.00fffep7 + }, + { // Entry 264 + 0x1.p7, + 0x1.01p7 + }, + { // Entry 265 + 0x1.02p7, + 0x1.010002p7 + }, + { // Entry 266 + 0x1.p8, + 0x1.007ffep8 + }, + { // Entry 267 + 0x1.p8, + 0x1.0080p8 + }, + { // Entry 268 + 0x1.01p8, + 0x1.008002p8 + }, + { // Entry 269 + 0x1.p9, + 0x1.003ffep9 + }, + { // Entry 270 + 0x1.p9, + 0x1.0040p9 + }, + { // Entry 271 + 0x1.0080p9, + 0x1.004002p9 + }, + { // Entry 272 + 0x1.p10, + 0x1.001ffep10 + }, + { // Entry 273 + 0x1.p10, + 0x1.0020p10 + }, + { // Entry 274 + 0x1.0040p10, + 0x1.002002p10 + }, + { // Entry 275 + 0x1.0040p10, + 0x1.005ffep10 + }, + { // Entry 276 + 0x1.0080p10, + 0x1.0060p10 + }, + { // Entry 277 + 0x1.0080p10, + 0x1.006002p10 + }, + { // Entry 278 + 0x1.p11, + 0x1.000ffep11 + }, + { // Entry 279 + 0x1.p11, + 0x1.0010p11 + }, + { // Entry 280 + 0x1.0020p11, + 0x1.001002p11 + }, + { // Entry 281 + 0x1.p12, + 0x1.0007fep12 + }, + { // Entry 282 + 0x1.p12, + 0x1.0008p12 + }, + { // Entry 283 + 0x1.0010p12, + 0x1.000802p12 + }, + { // Entry 284 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 285 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 286 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 287 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 288 + 0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 289 + -0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 290 + 0x1.80p1, + 0x1.921fb6p1 + }, + { // Entry 291 + -0x1.80p1, + -0x1.921fb6p1 + }, + { // Entry 292 + 0x1.p1, + 0x1.921fb6p0 + }, + { // Entry 293 + -0x1.p1, + -0x1.921fb6p0 + }, + { // Entry 294 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 295 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.p0 + }, + { // Entry 298 + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 299 + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 300 + 0x1.p0, + 0x1.921fb6p-1 + }, + { // Entry 301 + -0x1.p0, + -0x1.921fb6p-1 + }, + { // Entry 302 + 0.0, + 0x1.000002p-126 + }, + { // Entry 303 + -0.0, + -0x1.000002p-126 + }, + { // Entry 304 + 0.0, + 0x1.p-126 + }, + { // Entry 305 + -0.0, + -0x1.p-126 + }, + { // Entry 306 + 0.0, + 0x1.fffffcp-127 + }, + { // Entry 307 + -0.0, + -0x1.fffffcp-127 + }, + { // Entry 308 + 0.0, + 0x1.fffff8p-127 + }, + { // Entry 309 + -0.0, + -0x1.fffff8p-127 + }, + { // Entry 310 + 0.0, + 0x1.p-148 + }, + { // Entry 311 + -0.0, + -0x1.p-148 + }, + { // Entry 312 + 0.0, + 0x1.p-149 + }, + { // Entry 313 + -0.0, + -0x1.p-149 + }, + { // Entry 314 + 0.0, + 0.0f + }, + { // Entry 315 + -0.0, + -0.0f + }, + { // Entry 316 + 0x1.p1, + 0x1.80p0 + }, + { // Entry 317 + -0x1.p1, + -0x1.80p0 + }, + { // Entry 318 + 0x1.p1, + 0x1.40p1 + }, + { // Entry 319 + -0x1.p1, + -0x1.40p1 + }, + { // Entry 320 + 0.0, + 0x1.fffff0p-2 + }, + { // Entry 321 + 0.0, + 0x1.p-1 + }, + { // Entry 322 + 0x1.p0, + 0x1.000010p-1 + }, + { // Entry 323 + -0.0, + -0x1.fffff0p-2 + }, + { // Entry 324 + -0.0, + -0x1.p-1 + }, + { // Entry 325 + -0x1.p0, + -0x1.000010p-1 + }, + { // Entry 326 + 0x1.p1, + 0x1.800010p0 + }, + { // Entry 327 + 0x1.p0, + 0x1.7ffff0p0 + }, + { // Entry 328 + -0x1.p1, + -0x1.800010p0 + }, + { // Entry 329 + -0x1.p0, + -0x1.7ffff0p0 + } +}; diff --git a/tests/math_data/nextafter_intel_data.h b/tests/math_data/nextafter_intel_data.h new file mode 100644 index 000000000..191dbf608 --- /dev/null +++ b/tests/math_data/nextafter_intel_data.h @@ -0,0 +1,2088 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_nextafter_intel_data[] = { + { // Entry 0 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 1 + -0.0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 2 + -0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 3 + -0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 4 + -0.0, + -0.0, + -0.0 + }, + { // Entry 5 + 0x1.p-1074, + -0.0, + 0x1.0p-1074 + }, + { // Entry 6 + 0.0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 7 + 0.0, + 0x1.0p-1074, + -0.0 + }, + { // Entry 8 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 9 + 0x1.fffffffffffff0p-1, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 10 + 0x1.p0, + 0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 11 + 0x1.p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 12 + 0x1.fffffffffffff0p-1, + 0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 13 + 0x1.p0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 14 + 0x1.00000000000010p0, + 0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 15 + 0x1.p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 16 + 0x1.p0, + 0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 17 + 0x1.00000000000010p0, + 0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 18 + 0x1.ffffffffffffe0p-1, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 19 + 0x1.ffffffffffffe0p-1, + 0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 20 + 0x1.ffffffffffffe0p-1, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 21 + 0x1.fffffffffffff0p-1, + 0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 22 + 0x1.fffffffffffff0p-1, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 23 + 0x1.fffffffffffff0p-1, + 0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 24 + 0x1.p0, + 0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 25 + 0x1.p0, + 0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 26 + 0x1.p0, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 27 + -0x1.p0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 28 + -0x1.p0, + -0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 29 + -0x1.p0, + -0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 30 + -0x1.fffffffffffff0p-1, + -0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 31 + -0x1.fffffffffffff0p-1, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 32 + -0x1.fffffffffffff0p-1, + -0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 33 + -0x1.ffffffffffffe0p-1, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 34 + -0x1.ffffffffffffe0p-1, + -0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 35 + -0x1.ffffffffffffe0p-1, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 36 + -0x1.00000000000010p0, + -0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 37 + -0x1.p0, + -0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 38 + -0x1.p0, + -0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 39 + -0x1.00000000000010p0, + -0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 40 + -0x1.p0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 41 + -0x1.fffffffffffff0p-1, + -0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 42 + -0x1.p0, + -0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 43 + -0x1.p0, + -0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 44 + -0x1.fffffffffffff0p-1, + -0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 45 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp0, + 0x1.fffffffffffffp0 + }, + { // Entry 46 + 0x1.p1, + 0x1.fffffffffffffp0, + 0x1.0p1 + }, + { // Entry 47 + 0x1.p1, + 0x1.fffffffffffffp0, + 0x1.0000000000001p1 + }, + { // Entry 48 + 0x1.fffffffffffff0p0, + 0x1.0p1, + 0x1.fffffffffffffp0 + }, + { // Entry 49 + 0x1.p1, + 0x1.0p1, + 0x1.0p1 + }, + { // Entry 50 + 0x1.00000000000010p1, + 0x1.0p1, + 0x1.0000000000001p1 + }, + { // Entry 51 + 0x1.p1, + 0x1.0000000000001p1, + 0x1.fffffffffffffp0 + }, + { // Entry 52 + 0x1.p1, + 0x1.0000000000001p1, + 0x1.0p1 + }, + { // Entry 53 + 0x1.00000000000010p1, + 0x1.0000000000001p1, + 0x1.0000000000001p1 + }, + { // Entry 54 + 0x1.ffffffffffffe0p0, + 0x1.fffffffffffffp0, + -0x1.0000000000001p1 + }, + { // Entry 55 + 0x1.ffffffffffffe0p0, + 0x1.fffffffffffffp0, + -0x1.0p1 + }, + { // Entry 56 + 0x1.ffffffffffffe0p0, + 0x1.fffffffffffffp0, + -0x1.fffffffffffffp0 + }, + { // Entry 57 + 0x1.fffffffffffff0p0, + 0x1.0p1, + -0x1.0000000000001p1 + }, + { // Entry 58 + 0x1.fffffffffffff0p0, + 0x1.0p1, + -0x1.0p1 + }, + { // Entry 59 + 0x1.fffffffffffff0p0, + 0x1.0p1, + -0x1.fffffffffffffp0 + }, + { // Entry 60 + 0x1.p1, + 0x1.0000000000001p1, + -0x1.0000000000001p1 + }, + { // Entry 61 + 0x1.p1, + 0x1.0000000000001p1, + -0x1.0p1 + }, + { // Entry 62 + 0x1.p1, + 0x1.0000000000001p1, + -0x1.fffffffffffffp0 + }, + { // Entry 63 + -0x1.p1, + -0x1.0000000000001p1, + 0x1.fffffffffffffp0 + }, + { // Entry 64 + -0x1.p1, + -0x1.0000000000001p1, + 0x1.0p1 + }, + { // Entry 65 + -0x1.p1, + -0x1.0000000000001p1, + 0x1.0000000000001p1 + }, + { // Entry 66 + -0x1.fffffffffffff0p0, + -0x1.0p1, + 0x1.fffffffffffffp0 + }, + { // Entry 67 + -0x1.fffffffffffff0p0, + -0x1.0p1, + 0x1.0p1 + }, + { // Entry 68 + -0x1.fffffffffffff0p0, + -0x1.0p1, + 0x1.0000000000001p1 + }, + { // Entry 69 + -0x1.ffffffffffffe0p0, + -0x1.fffffffffffffp0, + 0x1.fffffffffffffp0 + }, + { // Entry 70 + -0x1.ffffffffffffe0p0, + -0x1.fffffffffffffp0, + 0x1.0p1 + }, + { // Entry 71 + -0x1.ffffffffffffe0p0, + -0x1.fffffffffffffp0, + 0x1.0000000000001p1 + }, + { // Entry 72 + -0x1.00000000000010p1, + -0x1.0000000000001p1, + -0x1.0000000000001p1 + }, + { // Entry 73 + -0x1.p1, + -0x1.0000000000001p1, + -0x1.0p1 + }, + { // Entry 74 + -0x1.p1, + -0x1.0000000000001p1, + -0x1.fffffffffffffp0 + }, + { // Entry 75 + -0x1.00000000000010p1, + -0x1.0p1, + -0x1.0000000000001p1 + }, + { // Entry 76 + -0x1.p1, + -0x1.0p1, + -0x1.0p1 + }, + { // Entry 77 + -0x1.fffffffffffff0p0, + -0x1.0p1, + -0x1.fffffffffffffp0 + }, + { // Entry 78 + -0x1.p1, + -0x1.fffffffffffffp0, + -0x1.0000000000001p1 + }, + { // Entry 79 + -0x1.p1, + -0x1.fffffffffffffp0, + -0x1.0p1 + }, + { // Entry 80 + -0x1.fffffffffffff0p0, + -0x1.fffffffffffffp0, + -0x1.fffffffffffffp0 + }, + { // Entry 81 + 0x1.fffffffffffff0p9, + 0x1.fffffffffffffp9, + 0x1.fffffffffffffp9 + }, + { // Entry 82 + 0x1.p10, + 0x1.fffffffffffffp9, + 0x1.0p10 + }, + { // Entry 83 + 0x1.p10, + 0x1.fffffffffffffp9, + 0x1.0000000000001p10 + }, + { // Entry 84 + 0x1.fffffffffffff0p9, + 0x1.0p10, + 0x1.fffffffffffffp9 + }, + { // Entry 85 + 0x1.p10, + 0x1.0p10, + 0x1.0p10 + }, + { // Entry 86 + 0x1.00000000000010p10, + 0x1.0p10, + 0x1.0000000000001p10 + }, + { // Entry 87 + 0x1.p10, + 0x1.0000000000001p10, + 0x1.fffffffffffffp9 + }, + { // Entry 88 + 0x1.p10, + 0x1.0000000000001p10, + 0x1.0p10 + }, + { // Entry 89 + 0x1.00000000000010p10, + 0x1.0000000000001p10, + 0x1.0000000000001p10 + }, + { // Entry 90 + 0x1.ffffffffffffe0p9, + 0x1.fffffffffffffp9, + -0x1.0000000000001p10 + }, + { // Entry 91 + 0x1.ffffffffffffe0p9, + 0x1.fffffffffffffp9, + -0x1.0p10 + }, + { // Entry 92 + 0x1.ffffffffffffe0p9, + 0x1.fffffffffffffp9, + -0x1.fffffffffffffp9 + }, + { // Entry 93 + 0x1.fffffffffffff0p9, + 0x1.0p10, + -0x1.0000000000001p10 + }, + { // Entry 94 + 0x1.fffffffffffff0p9, + 0x1.0p10, + -0x1.0p10 + }, + { // Entry 95 + 0x1.fffffffffffff0p9, + 0x1.0p10, + -0x1.fffffffffffffp9 + }, + { // Entry 96 + 0x1.p10, + 0x1.0000000000001p10, + -0x1.0000000000001p10 + }, + { // Entry 97 + 0x1.p10, + 0x1.0000000000001p10, + -0x1.0p10 + }, + { // Entry 98 + 0x1.p10, + 0x1.0000000000001p10, + -0x1.fffffffffffffp9 + }, + { // Entry 99 + -0x1.p10, + -0x1.0000000000001p10, + 0x1.fffffffffffffp9 + }, + { // Entry 100 + -0x1.p10, + -0x1.0000000000001p10, + 0x1.0p10 + }, + { // Entry 101 + -0x1.p10, + -0x1.0000000000001p10, + 0x1.0000000000001p10 + }, + { // Entry 102 + -0x1.fffffffffffff0p9, + -0x1.0p10, + 0x1.fffffffffffffp9 + }, + { // Entry 103 + -0x1.fffffffffffff0p9, + -0x1.0p10, + 0x1.0p10 + }, + { // Entry 104 + -0x1.fffffffffffff0p9, + -0x1.0p10, + 0x1.0000000000001p10 + }, + { // Entry 105 + -0x1.ffffffffffffe0p9, + -0x1.fffffffffffffp9, + 0x1.fffffffffffffp9 + }, + { // Entry 106 + -0x1.ffffffffffffe0p9, + -0x1.fffffffffffffp9, + 0x1.0p10 + }, + { // Entry 107 + -0x1.ffffffffffffe0p9, + -0x1.fffffffffffffp9, + 0x1.0000000000001p10 + }, + { // Entry 108 + -0x1.00000000000010p10, + -0x1.0000000000001p10, + -0x1.0000000000001p10 + }, + { // Entry 109 + -0x1.p10, + -0x1.0000000000001p10, + -0x1.0p10 + }, + { // Entry 110 + -0x1.p10, + -0x1.0000000000001p10, + -0x1.fffffffffffffp9 + }, + { // Entry 111 + -0x1.00000000000010p10, + -0x1.0p10, + -0x1.0000000000001p10 + }, + { // Entry 112 + -0x1.p10, + -0x1.0p10, + -0x1.0p10 + }, + { // Entry 113 + -0x1.fffffffffffff0p9, + -0x1.0p10, + -0x1.fffffffffffffp9 + }, + { // Entry 114 + -0x1.p10, + -0x1.fffffffffffffp9, + -0x1.0000000000001p10 + }, + { // Entry 115 + -0x1.p10, + -0x1.fffffffffffffp9, + -0x1.0p10 + }, + { // Entry 116 + -0x1.fffffffffffff0p9, + -0x1.fffffffffffffp9, + -0x1.fffffffffffffp9 + }, + { // Entry 117 + 0x1.fffffffffffff0p99, + 0x1.fffffffffffffp99, + 0x1.fffffffffffffp99 + }, + { // Entry 118 + 0x1.p100, + 0x1.fffffffffffffp99, + 0x1.0p100 + }, + { // Entry 119 + 0x1.p100, + 0x1.fffffffffffffp99, + 0x1.0000000000001p100 + }, + { // Entry 120 + 0x1.fffffffffffff0p99, + 0x1.0p100, + 0x1.fffffffffffffp99 + }, + { // Entry 121 + 0x1.p100, + 0x1.0p100, + 0x1.0p100 + }, + { // Entry 122 + 0x1.00000000000010p100, + 0x1.0p100, + 0x1.0000000000001p100 + }, + { // Entry 123 + 0x1.p100, + 0x1.0000000000001p100, + 0x1.fffffffffffffp99 + }, + { // Entry 124 + 0x1.p100, + 0x1.0000000000001p100, + 0x1.0p100 + }, + { // Entry 125 + 0x1.00000000000010p100, + 0x1.0000000000001p100, + 0x1.0000000000001p100 + }, + { // Entry 126 + 0x1.ffffffffffffe0p99, + 0x1.fffffffffffffp99, + -0x1.0000000000001p100 + }, + { // Entry 127 + 0x1.ffffffffffffe0p99, + 0x1.fffffffffffffp99, + -0x1.0p100 + }, + { // Entry 128 + 0x1.ffffffffffffe0p99, + 0x1.fffffffffffffp99, + -0x1.fffffffffffffp99 + }, + { // Entry 129 + 0x1.fffffffffffff0p99, + 0x1.0p100, + -0x1.0000000000001p100 + }, + { // Entry 130 + 0x1.fffffffffffff0p99, + 0x1.0p100, + -0x1.0p100 + }, + { // Entry 131 + 0x1.fffffffffffff0p99, + 0x1.0p100, + -0x1.fffffffffffffp99 + }, + { // Entry 132 + 0x1.p100, + 0x1.0000000000001p100, + -0x1.0000000000001p100 + }, + { // Entry 133 + 0x1.p100, + 0x1.0000000000001p100, + -0x1.0p100 + }, + { // Entry 134 + 0x1.p100, + 0x1.0000000000001p100, + -0x1.fffffffffffffp99 + }, + { // Entry 135 + -0x1.p100, + -0x1.0000000000001p100, + 0x1.fffffffffffffp99 + }, + { // Entry 136 + -0x1.p100, + -0x1.0000000000001p100, + 0x1.0p100 + }, + { // Entry 137 + -0x1.p100, + -0x1.0000000000001p100, + 0x1.0000000000001p100 + }, + { // Entry 138 + -0x1.fffffffffffff0p99, + -0x1.0p100, + 0x1.fffffffffffffp99 + }, + { // Entry 139 + -0x1.fffffffffffff0p99, + -0x1.0p100, + 0x1.0p100 + }, + { // Entry 140 + -0x1.fffffffffffff0p99, + -0x1.0p100, + 0x1.0000000000001p100 + }, + { // Entry 141 + -0x1.ffffffffffffe0p99, + -0x1.fffffffffffffp99, + 0x1.fffffffffffffp99 + }, + { // Entry 142 + -0x1.ffffffffffffe0p99, + -0x1.fffffffffffffp99, + 0x1.0p100 + }, + { // Entry 143 + -0x1.ffffffffffffe0p99, + -0x1.fffffffffffffp99, + 0x1.0000000000001p100 + }, + { // Entry 144 + -0x1.00000000000010p100, + -0x1.0000000000001p100, + -0x1.0000000000001p100 + }, + { // Entry 145 + -0x1.p100, + -0x1.0000000000001p100, + -0x1.0p100 + }, + { // Entry 146 + -0x1.p100, + -0x1.0000000000001p100, + -0x1.fffffffffffffp99 + }, + { // Entry 147 + -0x1.00000000000010p100, + -0x1.0p100, + -0x1.0000000000001p100 + }, + { // Entry 148 + -0x1.p100, + -0x1.0p100, + -0x1.0p100 + }, + { // Entry 149 + -0x1.fffffffffffff0p99, + -0x1.0p100, + -0x1.fffffffffffffp99 + }, + { // Entry 150 + -0x1.p100, + -0x1.fffffffffffffp99, + -0x1.0000000000001p100 + }, + { // Entry 151 + -0x1.p100, + -0x1.fffffffffffffp99, + -0x1.0p100 + }, + { // Entry 152 + -0x1.fffffffffffff0p99, + -0x1.fffffffffffffp99, + -0x1.fffffffffffffp99 + }, + { // Entry 153 + 0x1.fffffffffffff0p999, + 0x1.fffffffffffffp999, + 0x1.fffffffffffffp999 + }, + { // Entry 154 + 0x1.p1000, + 0x1.fffffffffffffp999, + 0x1.0p1000 + }, + { // Entry 155 + 0x1.p1000, + 0x1.fffffffffffffp999, + 0x1.0000000000001p1000 + }, + { // Entry 156 + 0x1.fffffffffffff0p999, + 0x1.0p1000, + 0x1.fffffffffffffp999 + }, + { // Entry 157 + 0x1.p1000, + 0x1.0p1000, + 0x1.0p1000 + }, + { // Entry 158 + 0x1.00000000000010p1000, + 0x1.0p1000, + 0x1.0000000000001p1000 + }, + { // Entry 159 + 0x1.p1000, + 0x1.0000000000001p1000, + 0x1.fffffffffffffp999 + }, + { // Entry 160 + 0x1.p1000, + 0x1.0000000000001p1000, + 0x1.0p1000 + }, + { // Entry 161 + 0x1.00000000000010p1000, + 0x1.0000000000001p1000, + 0x1.0000000000001p1000 + }, + { // Entry 162 + 0x1.ffffffffffffe0p999, + 0x1.fffffffffffffp999, + -0x1.0000000000001p1000 + }, + { // Entry 163 + 0x1.ffffffffffffe0p999, + 0x1.fffffffffffffp999, + -0x1.0p1000 + }, + { // Entry 164 + 0x1.ffffffffffffe0p999, + 0x1.fffffffffffffp999, + -0x1.fffffffffffffp999 + }, + { // Entry 165 + 0x1.fffffffffffff0p999, + 0x1.0p1000, + -0x1.0000000000001p1000 + }, + { // Entry 166 + 0x1.fffffffffffff0p999, + 0x1.0p1000, + -0x1.0p1000 + }, + { // Entry 167 + 0x1.fffffffffffff0p999, + 0x1.0p1000, + -0x1.fffffffffffffp999 + }, + { // Entry 168 + 0x1.p1000, + 0x1.0000000000001p1000, + -0x1.0000000000001p1000 + }, + { // Entry 169 + 0x1.p1000, + 0x1.0000000000001p1000, + -0x1.0p1000 + }, + { // Entry 170 + 0x1.p1000, + 0x1.0000000000001p1000, + -0x1.fffffffffffffp999 + }, + { // Entry 171 + -0x1.p1000, + -0x1.0000000000001p1000, + 0x1.fffffffffffffp999 + }, + { // Entry 172 + -0x1.p1000, + -0x1.0000000000001p1000, + 0x1.0p1000 + }, + { // Entry 173 + -0x1.p1000, + -0x1.0000000000001p1000, + 0x1.0000000000001p1000 + }, + { // Entry 174 + -0x1.fffffffffffff0p999, + -0x1.0p1000, + 0x1.fffffffffffffp999 + }, + { // Entry 175 + -0x1.fffffffffffff0p999, + -0x1.0p1000, + 0x1.0p1000 + }, + { // Entry 176 + -0x1.fffffffffffff0p999, + -0x1.0p1000, + 0x1.0000000000001p1000 + }, + { // Entry 177 + -0x1.ffffffffffffe0p999, + -0x1.fffffffffffffp999, + 0x1.fffffffffffffp999 + }, + { // Entry 178 + -0x1.ffffffffffffe0p999, + -0x1.fffffffffffffp999, + 0x1.0p1000 + }, + { // Entry 179 + -0x1.ffffffffffffe0p999, + -0x1.fffffffffffffp999, + 0x1.0000000000001p1000 + }, + { // Entry 180 + -0x1.00000000000010p1000, + -0x1.0000000000001p1000, + -0x1.0000000000001p1000 + }, + { // Entry 181 + -0x1.p1000, + -0x1.0000000000001p1000, + -0x1.0p1000 + }, + { // Entry 182 + -0x1.p1000, + -0x1.0000000000001p1000, + -0x1.fffffffffffffp999 + }, + { // Entry 183 + -0x1.00000000000010p1000, + -0x1.0p1000, + -0x1.0000000000001p1000 + }, + { // Entry 184 + -0x1.p1000, + -0x1.0p1000, + -0x1.0p1000 + }, + { // Entry 185 + -0x1.fffffffffffff0p999, + -0x1.0p1000, + -0x1.fffffffffffffp999 + }, + { // Entry 186 + -0x1.p1000, + -0x1.fffffffffffffp999, + -0x1.0000000000001p1000 + }, + { // Entry 187 + -0x1.p1000, + -0x1.fffffffffffffp999, + -0x1.0p1000 + }, + { // Entry 188 + -0x1.fffffffffffff0p999, + -0x1.fffffffffffffp999, + -0x1.fffffffffffffp999 + }, + { // Entry 189 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 190 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 191 + 0x1.fffffffffffff0p1023, + 0x1.ffffffffffffep1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 192 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 193 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 194 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 195 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 196 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 197 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 198 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 199 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 200 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffdp1023 + }, + { // Entry 201 + -0x1.fffffffffffff0p1023, + -0x1.ffffffffffffep1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 202 + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffep1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 203 + -0x1.ffffffffffffd0p1023, + -0x1.ffffffffffffep1023, + -0x1.ffffffffffffdp1023 + }, + { // Entry 204 + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffdp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 205 + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffdp1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 206 + -0x1.ffffffffffffd0p1023, + -0x1.ffffffffffffdp1023, + -0x1.ffffffffffffdp1023 + }, + { // Entry 207 + 0x1.ffffffffffffd0p1023, + 0x1.ffffffffffffep1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 208 + 0x1.ffffffffffffd0p1023, + 0x1.ffffffffffffep1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 209 + 0x1.ffffffffffffd0p1023, + 0x1.ffffffffffffep1023, + -0x1.ffffffffffffdp1023 + }, + { // Entry 210 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 211 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 212 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffdp1023 + }, + { // Entry 213 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 214 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 215 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffdp1023 + }, + { // Entry 216 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 217 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 218 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 219 + -0x1.ffffffffffffd0p1023, + -0x1.ffffffffffffep1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 220 + -0x1.ffffffffffffd0p1023, + -0x1.ffffffffffffep1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 221 + -0x1.ffffffffffffd0p1023, + -0x1.ffffffffffffep1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 222 + -0x1.ffffffffffffc0p1023, + -0x1.ffffffffffffdp1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 223 + -0x1.ffffffffffffc0p1023, + -0x1.ffffffffffffdp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 224 + -0x1.ffffffffffffc0p1023, + -0x1.ffffffffffffdp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 225 + 0x1.ffffffffffffd0p1023, + 0x1.ffffffffffffep1023, + -0x1.0p-1074 + }, + { // Entry 226 + 0x1.ffffffffffffd0p1023, + 0x1.ffffffffffffep1023, + -0.0 + }, + { // Entry 227 + 0x1.ffffffffffffd0p1023, + 0x1.ffffffffffffep1023, + 0x1.0p-1074 + }, + { // Entry 228 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 229 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 230 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 231 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 232 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 233 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 234 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 235 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 236 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 237 + -0x1.ffffffffffffd0p1023, + -0x1.ffffffffffffep1023, + -0x1.0p-1074 + }, + { // Entry 238 + -0x1.ffffffffffffd0p1023, + -0x1.ffffffffffffep1023, + -0.0 + }, + { // Entry 239 + -0x1.ffffffffffffd0p1023, + -0x1.ffffffffffffep1023, + 0x1.0p-1074 + }, + { // Entry 240 + -0x1.ffffffffffffc0p1023, + -0x1.ffffffffffffdp1023, + -0x1.0p-1074 + }, + { // Entry 241 + -0x1.ffffffffffffc0p1023, + -0x1.ffffffffffffdp1023, + -0.0 + }, + { // Entry 242 + -0x1.ffffffffffffc0p1023, + -0x1.ffffffffffffdp1023, + 0x1.0p-1074 + }, + { // Entry 243 + -0.0, + -0x1.0p-1074, + 0x1.ffffffffffffep1023 + }, + { // Entry 244 + -0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 245 + -0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 246 + 0x1.p-1074, + -0.0, + 0x1.ffffffffffffep1023 + }, + { // Entry 247 + 0x1.p-1074, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 248 + 0x1.p-1074, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 249 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.ffffffffffffep1023 + }, + { // Entry 250 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 251 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 252 + -0x1.p-1073, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 253 + -0x1.p-1073, + -0x1.0p-1074, + -0x1.ffffffffffffep1023 + }, + { // Entry 254 + -0x1.p-1073, + -0x1.0p-1074, + -0x1.ffffffffffffdp1023 + }, + { // Entry 255 + -0x1.p-1074, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 256 + -0x1.p-1074, + -0.0, + -0x1.ffffffffffffep1023 + }, + { // Entry 257 + -0x1.p-1074, + -0.0, + -0x1.ffffffffffffdp1023 + }, + { // Entry 258 + 0.0, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 259 + 0.0, + 0x1.0p-1074, + -0x1.ffffffffffffep1023 + }, + { // Entry 260 + 0.0, + 0x1.0p-1074, + -0x1.ffffffffffffdp1023 + }, + { // Entry 261 + 0x1.00000fffffffe0p1, + 0x1.00000fffffffep1, + 0x1.00000fffffffep1 + }, + { // Entry 262 + 0x1.00000ffffffff0p1, + 0x1.00000fffffffep1, + 0x1.00000ffffffffp1 + }, + { // Entry 263 + 0x1.00000ffffffff0p1, + 0x1.00000fffffffep1, + 0x1.00001p1 + }, + { // Entry 264 + 0x1.00000fffffffe0p1, + 0x1.00000ffffffffp1, + 0x1.00000fffffffep1 + }, + { // Entry 265 + 0x1.00000ffffffff0p1, + 0x1.00000ffffffffp1, + 0x1.00000ffffffffp1 + }, + { // Entry 266 + 0x1.000010p1, + 0x1.00000ffffffffp1, + 0x1.00001p1 + }, + { // Entry 267 + 0x1.00000ffffffff0p1, + 0x1.00001p1, + 0x1.00000fffffffep1 + }, + { // Entry 268 + 0x1.00000ffffffff0p1, + 0x1.00001p1, + 0x1.00000ffffffffp1 + }, + { // Entry 269 + 0x1.000010p1, + 0x1.00001p1, + 0x1.00001p1 + }, + { // Entry 270 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 271 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 272 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 273 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 274 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 275 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + 0.0 + }, + { // Entry 276 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + -0.0 + }, + { // Entry 277 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 278 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 279 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 280 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 281 + 0x1.fffffffffffff0p1023, + HUGE_VAL, + -HUGE_VAL + }, + { // Entry 282 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 283 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 284 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 285 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 286 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 287 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 288 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 289 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 290 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 291 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 292 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 293 + 0x1.ffffffffffffe0p1023, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 294 + 0x1.00000000000010p-1022, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 295 + 0x1.00000000000010p-1022, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 296 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 297 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 298 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 299 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + 0.0 + }, + { // Entry 300 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0.0 + }, + { // Entry 301 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 302 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 303 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 304 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 305 + 0x1.ffffffffffffe0p-1023, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 306 + 0x1.p-1022, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 307 + 0x1.p-1022, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 308 + 0x1.p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 309 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 310 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 311 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 312 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 313 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 314 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 315 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 316 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 317 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 318 + 0x1.p-1073, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 319 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 320 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 321 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 322 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 323 + 0.0, + 0x1.0p-1074, + 0.0 + }, + { // Entry 324 + 0.0, + 0x1.0p-1074, + -0.0 + }, + { // Entry 325 + 0.0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 326 + 0.0, + 0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 327 + 0.0, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 328 + 0.0, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 329 + 0.0, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 330 + 0x1.p-1074, + 0.0, + HUGE_VAL + }, + { // Entry 331 + 0x1.p-1074, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 332 + 0x1.p-1074, + 0.0, + 0x1.0p-1022 + }, + { // Entry 333 + 0x1.p-1074, + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 334 + 0x1.p-1074, + 0.0, + 0x1.0p-1074 + }, + { // Entry 335 + 0.0, + 0.0, + 0.0 + }, + { // Entry 336 + -0.0, + 0.0, + -0.0 + }, + { // Entry 337 + -0x1.p-1074, + 0.0, + -0x1.0p-1074 + }, + { // Entry 338 + -0x1.p-1074, + 0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 339 + -0x1.p-1074, + 0.0, + -0x1.0p-1022 + }, + { // Entry 340 + -0x1.p-1074, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 341 + -0x1.p-1074, + 0.0, + -HUGE_VAL + }, + { // Entry 342 + 0x1.p-1074, + -0.0, + HUGE_VAL + }, + { // Entry 343 + 0x1.p-1074, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 344 + 0x1.p-1074, + -0.0, + 0x1.0p-1022 + }, + { // Entry 345 + 0x1.p-1074, + -0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 346 + 0x1.p-1074, + -0.0, + 0x1.0p-1074 + }, + { // Entry 347 + 0.0, + -0.0, + 0.0 + }, + { // Entry 348 + -0.0, + -0.0, + -0.0 + }, + { // Entry 349 + -0x1.p-1074, + -0.0, + -0x1.0p-1074 + }, + { // Entry 350 + -0x1.p-1074, + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 351 + -0x1.p-1074, + -0.0, + -0x1.0p-1022 + }, + { // Entry 352 + -0x1.p-1074, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 353 + -0x1.p-1074, + -0.0, + -HUGE_VAL + }, + { // Entry 354 + -0.0, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 355 + -0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 356 + -0.0, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 357 + -0.0, + -0x1.0p-1074, + 0x1.ffffffffffffep-1023 + }, + { // Entry 358 + -0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 359 + -0.0, + -0x1.0p-1074, + 0.0 + }, + { // Entry 360 + -0.0, + -0x1.0p-1074, + -0.0 + }, + { // Entry 361 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 362 + -0x1.p-1073, + -0x1.0p-1074, + -0x1.ffffffffffffep-1023 + }, + { // Entry 363 + -0x1.p-1073, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 364 + -0x1.p-1073, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 365 + -0x1.p-1073, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 366 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 367 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 368 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1022 + }, + { // Entry 369 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 370 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffep-1023, + 0x1.0p-1074 + }, + { // Entry 371 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 372 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 373 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.0p-1074 + }, + { // Entry 374 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 375 + -0x1.p-1022, + -0x1.ffffffffffffep-1023, + -0x1.0p-1022 + }, + { // Entry 376 + -0x1.p-1022, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 377 + -0x1.p-1022, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 378 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 379 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 380 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 381 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0x1.ffffffffffffep-1023 + }, + { // Entry 382 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 383 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + 0.0 + }, + { // Entry 384 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + -0.0 + }, + { // Entry 385 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 386 + -0x1.ffffffffffffe0p-1023, + -0x1.0p-1022, + -0x1.ffffffffffffep-1023 + }, + { // Entry 387 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 388 + -0x1.00000000000010p-1022, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 389 + -0x1.00000000000010p-1022, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 390 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 391 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 392 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 393 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 394 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 395 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 396 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 397 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 398 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 399 + -0x1.ffffffffffffe0p1023, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 400 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 401 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 402 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 403 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 404 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + 0x1.0p-1022 + }, + { // Entry 405 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + 0x1.ffffffffffffep-1023 + }, + { // Entry 406 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + 0x1.0p-1074 + }, + { // Entry 407 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + 0.0 + }, + { // Entry 408 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + -0.0 + }, + { // Entry 409 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + -0x1.0p-1074 + }, + { // Entry 410 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + -0x1.ffffffffffffep-1023 + }, + { // Entry 411 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + -0x1.0p-1022 + }, + { // Entry 412 + -0x1.fffffffffffff0p1023, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 413 + -HUGE_VAL, + -HUGE_VAL, + -HUGE_VAL + } +}; diff --git a/tests/math_data/nextafterf_intel_data.h b/tests/math_data/nextafterf_intel_data.h new file mode 100644 index 000000000..f47bce2ea --- /dev/null +++ b/tests/math_data/nextafterf_intel_data.h @@ -0,0 +1,1863 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_nextafterf_intel_data[] = { + { // Entry 0 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 1 + -0.0, + -0x1.p-149, + 0.0 + }, + { // Entry 2 + -0.0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 3 + -0x1.p-149, + 0.0, + -0x1.p-149 + }, + { // Entry 4 + 0.0, + 0.0, + 0.0 + }, + { // Entry 5 + 0x1.p-149, + 0.0, + 0x1.p-149 + }, + { // Entry 6 + 0.0, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 7 + 0.0, + 0x1.p-149, + 0.0 + }, + { // Entry 8 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 9 + 0x1.fffffep-1, + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 10 + 0x1.p0, + 0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 11 + 0x1.p0, + 0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 12 + 0x1.fffffep-1, + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 13 + 0x1.p0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 14 + 0x1.000002p0, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 15 + 0x1.p0, + 0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 16 + 0x1.p0, + 0x1.000002p0, + 0x1.p0 + }, + { // Entry 17 + 0x1.000002p0, + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 18 + 0x1.fffffcp-1, + 0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 19 + 0x1.fffffcp-1, + 0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 20 + 0x1.fffffcp-1, + 0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 21 + 0x1.fffffep-1, + 0x1.p0, + -0x1.000002p0 + }, + { // Entry 22 + 0x1.fffffep-1, + 0x1.p0, + -0x1.p0 + }, + { // Entry 23 + 0x1.fffffep-1, + 0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 24 + 0x1.p0, + 0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 25 + 0x1.p0, + 0x1.000002p0, + -0x1.p0 + }, + { // Entry 26 + 0x1.p0, + 0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 27 + -0x1.p0, + -0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 28 + -0x1.p0, + -0x1.000002p0, + 0x1.p0 + }, + { // Entry 29 + -0x1.p0, + -0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 30 + -0x1.fffffep-1, + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 31 + -0x1.fffffep-1, + -0x1.p0, + 0x1.p0 + }, + { // Entry 32 + -0x1.fffffep-1, + -0x1.p0, + 0x1.000002p0 + }, + { // Entry 33 + -0x1.fffffcp-1, + -0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 34 + -0x1.fffffcp-1, + -0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 35 + -0x1.fffffcp-1, + -0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 36 + -0x1.000002p0, + -0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 37 + -0x1.p0, + -0x1.000002p0, + -0x1.p0 + }, + { // Entry 38 + -0x1.p0, + -0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 39 + -0x1.000002p0, + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 40 + -0x1.p0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 41 + -0x1.fffffep-1, + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 42 + -0x1.p0, + -0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 43 + -0x1.p0, + -0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 44 + -0x1.fffffep-1, + -0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 45 + 0x1.fffffep0, + 0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 46 + 0x1.p1, + 0x1.fffffep0, + 0x1.p1 + }, + { // Entry 47 + 0x1.p1, + 0x1.fffffep0, + 0x1.000002p1 + }, + { // Entry 48 + 0x1.fffffep0, + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 49 + 0x1.p1, + 0x1.p1, + 0x1.p1 + }, + { // Entry 50 + 0x1.000002p1, + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 51 + 0x1.p1, + 0x1.000002p1, + 0x1.fffffep0 + }, + { // Entry 52 + 0x1.p1, + 0x1.000002p1, + 0x1.p1 + }, + { // Entry 53 + 0x1.000002p1, + 0x1.000002p1, + 0x1.000002p1 + }, + { // Entry 54 + 0x1.fffffcp0, + 0x1.fffffep0, + -0x1.000002p1 + }, + { // Entry 55 + 0x1.fffffcp0, + 0x1.fffffep0, + -0x1.p1 + }, + { // Entry 56 + 0x1.fffffcp0, + 0x1.fffffep0, + -0x1.fffffep0 + }, + { // Entry 57 + 0x1.fffffep0, + 0x1.p1, + -0x1.000002p1 + }, + { // Entry 58 + 0x1.fffffep0, + 0x1.p1, + -0x1.p1 + }, + { // Entry 59 + 0x1.fffffep0, + 0x1.p1, + -0x1.fffffep0 + }, + { // Entry 60 + 0x1.p1, + 0x1.000002p1, + -0x1.000002p1 + }, + { // Entry 61 + 0x1.p1, + 0x1.000002p1, + -0x1.p1 + }, + { // Entry 62 + 0x1.p1, + 0x1.000002p1, + -0x1.fffffep0 + }, + { // Entry 63 + -0x1.p1, + -0x1.000002p1, + 0x1.fffffep0 + }, + { // Entry 64 + -0x1.p1, + -0x1.000002p1, + 0x1.p1 + }, + { // Entry 65 + -0x1.p1, + -0x1.000002p1, + 0x1.000002p1 + }, + { // Entry 66 + -0x1.fffffep0, + -0x1.p1, + 0x1.fffffep0 + }, + { // Entry 67 + -0x1.fffffep0, + -0x1.p1, + 0x1.p1 + }, + { // Entry 68 + -0x1.fffffep0, + -0x1.p1, + 0x1.000002p1 + }, + { // Entry 69 + -0x1.fffffcp0, + -0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 70 + -0x1.fffffcp0, + -0x1.fffffep0, + 0x1.p1 + }, + { // Entry 71 + -0x1.fffffcp0, + -0x1.fffffep0, + 0x1.000002p1 + }, + { // Entry 72 + -0x1.000002p1, + -0x1.000002p1, + -0x1.000002p1 + }, + { // Entry 73 + -0x1.p1, + -0x1.000002p1, + -0x1.p1 + }, + { // Entry 74 + -0x1.p1, + -0x1.000002p1, + -0x1.fffffep0 + }, + { // Entry 75 + -0x1.000002p1, + -0x1.p1, + -0x1.000002p1 + }, + { // Entry 76 + -0x1.p1, + -0x1.p1, + -0x1.p1 + }, + { // Entry 77 + -0x1.fffffep0, + -0x1.p1, + -0x1.fffffep0 + }, + { // Entry 78 + -0x1.p1, + -0x1.fffffep0, + -0x1.000002p1 + }, + { // Entry 79 + -0x1.p1, + -0x1.fffffep0, + -0x1.p1 + }, + { // Entry 80 + -0x1.fffffep0, + -0x1.fffffep0, + -0x1.fffffep0 + }, + { // Entry 81 + 0x1.fffffep9, + 0x1.fffffep9, + 0x1.fffffep9 + }, + { // Entry 82 + 0x1.p10, + 0x1.fffffep9, + 0x1.p10 + }, + { // Entry 83 + 0x1.p10, + 0x1.fffffep9, + 0x1.000002p10 + }, + { // Entry 84 + 0x1.fffffep9, + 0x1.p10, + 0x1.fffffep9 + }, + { // Entry 85 + 0x1.p10, + 0x1.p10, + 0x1.p10 + }, + { // Entry 86 + 0x1.000002p10, + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 87 + 0x1.p10, + 0x1.000002p10, + 0x1.fffffep9 + }, + { // Entry 88 + 0x1.p10, + 0x1.000002p10, + 0x1.p10 + }, + { // Entry 89 + 0x1.000002p10, + 0x1.000002p10, + 0x1.000002p10 + }, + { // Entry 90 + 0x1.fffffcp9, + 0x1.fffffep9, + -0x1.000002p10 + }, + { // Entry 91 + 0x1.fffffcp9, + 0x1.fffffep9, + -0x1.p10 + }, + { // Entry 92 + 0x1.fffffcp9, + 0x1.fffffep9, + -0x1.fffffep9 + }, + { // Entry 93 + 0x1.fffffep9, + 0x1.p10, + -0x1.000002p10 + }, + { // Entry 94 + 0x1.fffffep9, + 0x1.p10, + -0x1.p10 + }, + { // Entry 95 + 0x1.fffffep9, + 0x1.p10, + -0x1.fffffep9 + }, + { // Entry 96 + 0x1.p10, + 0x1.000002p10, + -0x1.000002p10 + }, + { // Entry 97 + 0x1.p10, + 0x1.000002p10, + -0x1.p10 + }, + { // Entry 98 + 0x1.p10, + 0x1.000002p10, + -0x1.fffffep9 + }, + { // Entry 99 + -0x1.p10, + -0x1.000002p10, + 0x1.fffffep9 + }, + { // Entry 100 + -0x1.p10, + -0x1.000002p10, + 0x1.p10 + }, + { // Entry 101 + -0x1.p10, + -0x1.000002p10, + 0x1.000002p10 + }, + { // Entry 102 + -0x1.fffffep9, + -0x1.p10, + 0x1.fffffep9 + }, + { // Entry 103 + -0x1.fffffep9, + -0x1.p10, + 0x1.p10 + }, + { // Entry 104 + -0x1.fffffep9, + -0x1.p10, + 0x1.000002p10 + }, + { // Entry 105 + -0x1.fffffcp9, + -0x1.fffffep9, + 0x1.fffffep9 + }, + { // Entry 106 + -0x1.fffffcp9, + -0x1.fffffep9, + 0x1.p10 + }, + { // Entry 107 + -0x1.fffffcp9, + -0x1.fffffep9, + 0x1.000002p10 + }, + { // Entry 108 + -0x1.000002p10, + -0x1.000002p10, + -0x1.000002p10 + }, + { // Entry 109 + -0x1.p10, + -0x1.000002p10, + -0x1.p10 + }, + { // Entry 110 + -0x1.p10, + -0x1.000002p10, + -0x1.fffffep9 + }, + { // Entry 111 + -0x1.000002p10, + -0x1.p10, + -0x1.000002p10 + }, + { // Entry 112 + -0x1.p10, + -0x1.p10, + -0x1.p10 + }, + { // Entry 113 + -0x1.fffffep9, + -0x1.p10, + -0x1.fffffep9 + }, + { // Entry 114 + -0x1.p10, + -0x1.fffffep9, + -0x1.000002p10 + }, + { // Entry 115 + -0x1.p10, + -0x1.fffffep9, + -0x1.p10 + }, + { // Entry 116 + -0x1.fffffep9, + -0x1.fffffep9, + -0x1.fffffep9 + }, + { // Entry 117 + 0x1.fffffep99, + 0x1.fffffep99, + 0x1.fffffep99 + }, + { // Entry 118 + 0x1.p100, + 0x1.fffffep99, + 0x1.p100 + }, + { // Entry 119 + 0x1.p100, + 0x1.fffffep99, + 0x1.000002p100 + }, + { // Entry 120 + 0x1.fffffep99, + 0x1.p100, + 0x1.fffffep99 + }, + { // Entry 121 + 0x1.p100, + 0x1.p100, + 0x1.p100 + }, + { // Entry 122 + 0x1.000002p100, + 0x1.p100, + 0x1.000002p100 + }, + { // Entry 123 + 0x1.p100, + 0x1.000002p100, + 0x1.fffffep99 + }, + { // Entry 124 + 0x1.p100, + 0x1.000002p100, + 0x1.p100 + }, + { // Entry 125 + 0x1.000002p100, + 0x1.000002p100, + 0x1.000002p100 + }, + { // Entry 126 + 0x1.fffffcp99, + 0x1.fffffep99, + -0x1.000002p100 + }, + { // Entry 127 + 0x1.fffffcp99, + 0x1.fffffep99, + -0x1.p100 + }, + { // Entry 128 + 0x1.fffffcp99, + 0x1.fffffep99, + -0x1.fffffep99 + }, + { // Entry 129 + 0x1.fffffep99, + 0x1.p100, + -0x1.000002p100 + }, + { // Entry 130 + 0x1.fffffep99, + 0x1.p100, + -0x1.p100 + }, + { // Entry 131 + 0x1.fffffep99, + 0x1.p100, + -0x1.fffffep99 + }, + { // Entry 132 + 0x1.p100, + 0x1.000002p100, + -0x1.000002p100 + }, + { // Entry 133 + 0x1.p100, + 0x1.000002p100, + -0x1.p100 + }, + { // Entry 134 + 0x1.p100, + 0x1.000002p100, + -0x1.fffffep99 + }, + { // Entry 135 + -0x1.p100, + -0x1.000002p100, + 0x1.fffffep99 + }, + { // Entry 136 + -0x1.p100, + -0x1.000002p100, + 0x1.p100 + }, + { // Entry 137 + -0x1.p100, + -0x1.000002p100, + 0x1.000002p100 + }, + { // Entry 138 + -0x1.fffffep99, + -0x1.p100, + 0x1.fffffep99 + }, + { // Entry 139 + -0x1.fffffep99, + -0x1.p100, + 0x1.p100 + }, + { // Entry 140 + -0x1.fffffep99, + -0x1.p100, + 0x1.000002p100 + }, + { // Entry 141 + -0x1.fffffcp99, + -0x1.fffffep99, + 0x1.fffffep99 + }, + { // Entry 142 + -0x1.fffffcp99, + -0x1.fffffep99, + 0x1.p100 + }, + { // Entry 143 + -0x1.fffffcp99, + -0x1.fffffep99, + 0x1.000002p100 + }, + { // Entry 144 + -0x1.000002p100, + -0x1.000002p100, + -0x1.000002p100 + }, + { // Entry 145 + -0x1.p100, + -0x1.000002p100, + -0x1.p100 + }, + { // Entry 146 + -0x1.p100, + -0x1.000002p100, + -0x1.fffffep99 + }, + { // Entry 147 + -0x1.000002p100, + -0x1.p100, + -0x1.000002p100 + }, + { // Entry 148 + -0x1.p100, + -0x1.p100, + -0x1.p100 + }, + { // Entry 149 + -0x1.fffffep99, + -0x1.p100, + -0x1.fffffep99 + }, + { // Entry 150 + -0x1.p100, + -0x1.fffffep99, + -0x1.000002p100 + }, + { // Entry 151 + -0x1.p100, + -0x1.fffffep99, + -0x1.p100 + }, + { // Entry 152 + -0x1.fffffep99, + -0x1.fffffep99, + -0x1.fffffep99 + }, + { // Entry 153 + 0x1.fffffcp127, + 0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 154 + 0x1.fffffep127, + 0x1.fffffcp127, + 0x1.fffffep127 + }, + { // Entry 155 + 0x1.fffffep127, + 0x1.fffffcp127, + 0x1.fffffep127 + }, + { // Entry 156 + 0x1.fffffcp127, + 0x1.fffffep127, + 0x1.fffffcp127 + }, + { // Entry 157 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 158 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 159 + 0x1.fffffcp127, + 0x1.fffffep127, + 0x1.fffffcp127 + }, + { // Entry 160 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 161 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 162 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 163 + -0x1.fffffcp127, + -0x1.fffffep127, + -0x1.fffffcp127 + }, + { // Entry 164 + -0x1.fffffcp127, + -0x1.fffffep127, + -0x1.fffffap127 + }, + { // Entry 165 + -0x1.fffffep127, + -0x1.fffffcp127, + -0x1.fffffep127 + }, + { // Entry 166 + -0x1.fffffcp127, + -0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 167 + -0x1.fffffap127, + -0x1.fffffcp127, + -0x1.fffffap127 + }, + { // Entry 168 + -0x1.fffffcp127, + -0x1.fffffap127, + -0x1.fffffep127 + }, + { // Entry 169 + -0x1.fffffcp127, + -0x1.fffffap127, + -0x1.fffffcp127 + }, + { // Entry 170 + -0x1.fffffap127, + -0x1.fffffap127, + -0x1.fffffap127 + }, + { // Entry 171 + 0x1.fffffap127, + 0x1.fffffcp127, + -0x1.fffffep127 + }, + { // Entry 172 + 0x1.fffffap127, + 0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 173 + 0x1.fffffap127, + 0x1.fffffcp127, + -0x1.fffffap127 + }, + { // Entry 174 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 175 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.fffffcp127 + }, + { // Entry 176 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.fffffap127 + }, + { // Entry 177 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 178 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.fffffcp127 + }, + { // Entry 179 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.fffffap127 + }, + { // Entry 180 + -0x1.fffffcp127, + -0x1.fffffep127, + 0x1.fffffcp127 + }, + { // Entry 181 + -0x1.fffffcp127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 182 + -0x1.fffffcp127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 183 + -0x1.fffffap127, + -0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 184 + -0x1.fffffap127, + -0x1.fffffcp127, + 0x1.fffffep127 + }, + { // Entry 185 + -0x1.fffffap127, + -0x1.fffffcp127, + 0x1.fffffep127 + }, + { // Entry 186 + -0x1.fffff8p127, + -0x1.fffffap127, + 0x1.fffffcp127 + }, + { // Entry 187 + -0x1.fffff8p127, + -0x1.fffffap127, + 0x1.fffffep127 + }, + { // Entry 188 + -0x1.fffff8p127, + -0x1.fffffap127, + 0x1.fffffep127 + }, + { // Entry 189 + 0x1.fffffap127, + 0x1.fffffcp127, + -0x1.p-149 + }, + { // Entry 190 + 0x1.fffffap127, + 0x1.fffffcp127, + 0.0 + }, + { // Entry 191 + 0x1.fffffap127, + 0x1.fffffcp127, + 0x1.p-149 + }, + { // Entry 192 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 193 + 0x1.fffffcp127, + 0x1.fffffep127, + 0.0 + }, + { // Entry 194 + 0x1.fffffcp127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 195 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 196 + 0x1.fffffcp127, + 0x1.fffffep127, + 0.0 + }, + { // Entry 197 + 0x1.fffffcp127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 198 + -0x1.fffffcp127, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 199 + -0x1.fffffcp127, + -0x1.fffffep127, + 0.0 + }, + { // Entry 200 + -0x1.fffffcp127, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 201 + -0x1.fffffap127, + -0x1.fffffcp127, + -0x1.p-149 + }, + { // Entry 202 + -0x1.fffffap127, + -0x1.fffffcp127, + 0.0 + }, + { // Entry 203 + -0x1.fffffap127, + -0x1.fffffcp127, + 0x1.p-149 + }, + { // Entry 204 + -0x1.fffff8p127, + -0x1.fffffap127, + -0x1.p-149 + }, + { // Entry 205 + -0x1.fffff8p127, + -0x1.fffffap127, + 0.0 + }, + { // Entry 206 + -0x1.fffff8p127, + -0x1.fffffap127, + 0x1.p-149 + }, + { // Entry 207 + -0.0, + -0x1.p-149, + 0x1.fffffcp127 + }, + { // Entry 208 + -0.0, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 209 + -0.0, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 210 + 0x1.p-149, + 0.0, + 0x1.fffffcp127 + }, + { // Entry 211 + 0x1.p-149, + 0.0, + 0x1.fffffep127 + }, + { // Entry 212 + 0x1.p-149, + 0.0, + 0x1.fffffep127 + }, + { // Entry 213 + 0x1.p-148, + 0x1.p-149, + 0x1.fffffcp127 + }, + { // Entry 214 + 0x1.p-148, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 215 + 0x1.p-148, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 216 + -0x1.p-148, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 217 + -0x1.p-148, + -0x1.p-149, + -0x1.fffffcp127 + }, + { // Entry 218 + -0x1.p-148, + -0x1.p-149, + -0x1.fffffap127 + }, + { // Entry 219 + -0x1.p-149, + 0.0, + -0x1.fffffep127 + }, + { // Entry 220 + -0x1.p-149, + 0.0, + -0x1.fffffcp127 + }, + { // Entry 221 + -0x1.p-149, + 0.0, + -0x1.fffffap127 + }, + { // Entry 222 + 0.0, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 223 + 0.0, + 0x1.p-149, + -0x1.fffffcp127 + }, + { // Entry 224 + 0.0, + 0x1.p-149, + -0x1.fffffap127 + }, + { // Entry 225 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 226 + 0x1.fffffep127, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 227 + 0x1.fffffep127, + HUGE_VALF, + 0x1.p-126 + }, + { // Entry 228 + 0x1.fffffep127, + HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 229 + 0x1.fffffep127, + HUGE_VALF, + 0x1.p-149 + }, + { // Entry 230 + 0x1.fffffep127, + HUGE_VALF, + 0.0f + }, + { // Entry 231 + 0x1.fffffep127, + HUGE_VALF, + -0.0f + }, + { // Entry 232 + 0x1.fffffep127, + HUGE_VALF, + -0x1.p-149 + }, + { // Entry 233 + 0x1.fffffep127, + HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 234 + 0x1.fffffep127, + HUGE_VALF, + -0x1.p-126 + }, + { // Entry 235 + 0x1.fffffep127, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 236 + 0x1.fffffep127, + HUGE_VALF, + -HUGE_VALF + }, + { // Entry 237 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 238 + 0x1.fffffep127, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 239 + 0x1.fffffcp127, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 240 + 0x1.fffffcp127, + 0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 241 + 0x1.fffffcp127, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 242 + 0x1.fffffcp127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 243 + 0x1.fffffcp127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 244 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 245 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 246 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 247 + 0x1.fffffcp127, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 248 + 0x1.fffffcp127, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 249 + 0x1.000002p-126, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 250 + 0x1.000002p-126, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 251 + 0x1.p-126, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 252 + 0x1.fffffcp-127, + 0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 253 + 0x1.fffffcp-127, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 254 + 0x1.fffffcp-127, + 0x1.p-126, + 0.0f + }, + { // Entry 255 + 0x1.fffffcp-127, + 0x1.p-126, + -0.0f + }, + { // Entry 256 + 0x1.fffffcp-127, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 257 + 0x1.fffffcp-127, + 0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 258 + 0x1.fffffcp-127, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 259 + 0x1.fffffcp-127, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 260 + 0x1.fffffcp-127, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 261 + 0x1.p-126, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 262 + 0x1.p-126, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 263 + 0x1.p-126, + 0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 264 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 265 + 0x1.fffff8p-127, + 0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 266 + 0x1.fffff8p-127, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 267 + 0x1.fffff8p-127, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 268 + 0x1.fffff8p-127, + 0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 269 + 0x1.fffff8p-127, + 0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 270 + 0x1.fffff8p-127, + 0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 271 + 0x1.fffff8p-127, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 272 + 0x1.fffff8p-127, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 273 + 0x1.p-148, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 274 + 0x1.p-148, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 275 + 0x1.p-148, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 276 + 0x1.p-148, + 0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 277 + 0x1.p-149, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 278 + 0.0, + 0x1.p-149, + 0.0f + }, + { // Entry 279 + 0.0, + 0x1.p-149, + -0.0f + }, + { // Entry 280 + 0.0, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 281 + 0.0, + 0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 282 + 0.0, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 283 + 0.0, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 284 + 0.0, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 285 + 0x1.p-149, + 0.0f, + HUGE_VALF + }, + { // Entry 286 + 0x1.p-149, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 287 + 0x1.p-149, + 0.0f, + 0x1.p-126 + }, + { // Entry 288 + 0x1.p-149, + 0.0f, + 0x1.fffffcp-127 + }, + { // Entry 289 + 0x1.p-149, + 0.0f, + 0x1.p-149 + }, + { // Entry 290 + 0.0, + 0.0f, + 0.0f + }, + { // Entry 291 + -0.0, + 0.0f, + -0.0f + }, + { // Entry 292 + -0x1.p-149, + 0.0f, + -0x1.p-149 + }, + { // Entry 293 + -0x1.p-149, + 0.0f, + -0x1.fffffcp-127 + }, + { // Entry 294 + -0x1.p-149, + 0.0f, + -0x1.p-126 + }, + { // Entry 295 + -0x1.p-149, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 296 + -0x1.p-149, + 0.0f, + -HUGE_VALF + }, + { // Entry 297 + 0x1.p-149, + -0.0f, + HUGE_VALF + }, + { // Entry 298 + 0x1.p-149, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 299 + 0x1.p-149, + -0.0f, + 0x1.p-126 + }, + { // Entry 300 + 0x1.p-149, + -0.0f, + 0x1.fffffcp-127 + }, + { // Entry 301 + 0x1.p-149, + -0.0f, + 0x1.p-149 + }, + { // Entry 302 + 0.0, + -0.0f, + 0.0f + }, + { // Entry 303 + -0.0, + -0.0f, + -0.0f + }, + { // Entry 304 + -0x1.p-149, + -0.0f, + -0x1.p-149 + }, + { // Entry 305 + -0x1.p-149, + -0.0f, + -0x1.fffffcp-127 + }, + { // Entry 306 + -0x1.p-149, + -0.0f, + -0x1.p-126 + }, + { // Entry 307 + -0x1.p-149, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 308 + -0x1.p-149, + -0.0f, + -HUGE_VALF + }, + { // Entry 309 + -0.0, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 310 + -0.0, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 311 + -0.0, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 312 + -0.0, + -0x1.p-149, + 0x1.fffffcp-127 + }, + { // Entry 313 + -0.0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 314 + -0.0, + -0x1.p-149, + 0.0f + }, + { // Entry 315 + -0.0, + -0x1.p-149, + -0.0f + }, + { // Entry 316 + -0x1.p-149, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 317 + -0x1.p-148, + -0x1.p-149, + -0x1.fffffcp-127 + }, + { // Entry 318 + -0x1.p-148, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 319 + -0x1.p-148, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 320 + -0x1.p-148, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 321 + -0x1.fffff8p-127, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 322 + -0x1.fffff8p-127, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 323 + -0x1.fffff8p-127, + -0x1.fffffcp-127, + 0x1.p-126 + }, + { // Entry 324 + -0x1.fffff8p-127, + -0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 325 + -0x1.fffff8p-127, + -0x1.fffffcp-127, + 0x1.p-149 + }, + { // Entry 326 + -0x1.fffff8p-127, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 327 + -0x1.fffff8p-127, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 328 + -0x1.fffff8p-127, + -0x1.fffffcp-127, + -0x1.p-149 + }, + { // Entry 329 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 330 + -0x1.p-126, + -0x1.fffffcp-127, + -0x1.p-126 + }, + { // Entry 331 + -0x1.p-126, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 332 + -0x1.p-126, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 333 + -0x1.fffffcp-127, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 334 + -0x1.fffffcp-127, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 335 + -0x1.fffffcp-127, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 336 + -0x1.fffffcp-127, + -0x1.p-126, + 0x1.fffffcp-127 + }, + { // Entry 337 + -0x1.fffffcp-127, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 338 + -0x1.fffffcp-127, + -0x1.p-126, + 0.0f + }, + { // Entry 339 + -0x1.fffffcp-127, + -0x1.p-126, + -0.0f + }, + { // Entry 340 + -0x1.fffffcp-127, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 341 + -0x1.fffffcp-127, + -0x1.p-126, + -0x1.fffffcp-127 + }, + { // Entry 342 + -0x1.p-126, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 343 + -0x1.000002p-126, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 344 + -0x1.000002p-126, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 345 + -0x1.fffffcp127, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 346 + -0x1.fffffcp127, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 347 + -0x1.fffffcp127, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 348 + -0x1.fffffcp127, + -0x1.fffffep127, + 0x1.fffffcp-127 + }, + { // Entry 349 + -0x1.fffffcp127, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 350 + -0x1.fffffcp127, + -0x1.fffffep127, + 0.0f + }, + { // Entry 351 + -0x1.fffffcp127, + -0x1.fffffep127, + -0.0f + }, + { // Entry 352 + -0x1.fffffcp127, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 353 + -0x1.fffffcp127, + -0x1.fffffep127, + -0x1.fffffcp-127 + }, + { // Entry 354 + -0x1.fffffcp127, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 355 + -0x1.fffffep127, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 356 + -HUGE_VALF, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 357 + -0x1.fffffep127, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 358 + -0x1.fffffep127, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 359 + -0x1.fffffep127, + -HUGE_VALF, + 0x1.p-126 + }, + { // Entry 360 + -0x1.fffffep127, + -HUGE_VALF, + 0x1.fffffcp-127 + }, + { // Entry 361 + -0x1.fffffep127, + -HUGE_VALF, + 0x1.p-149 + }, + { // Entry 362 + -0x1.fffffep127, + -HUGE_VALF, + 0.0f + }, + { // Entry 363 + -0x1.fffffep127, + -HUGE_VALF, + -0.0f + }, + { // Entry 364 + -0x1.fffffep127, + -HUGE_VALF, + -0x1.p-149 + }, + { // Entry 365 + -0x1.fffffep127, + -HUGE_VALF, + -0x1.fffffcp-127 + }, + { // Entry 366 + -0x1.fffffep127, + -HUGE_VALF, + -0x1.p-126 + }, + { // Entry 367 + -0x1.fffffep127, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 368 + -HUGE_VALF, + -HUGE_VALF, + -HUGE_VALF + } +}; diff --git a/tests/math_pow_intel_data.h b/tests/math_data/pow_intel_data.h similarity index 100% rename from tests/math_pow_intel_data.h rename to tests/math_data/pow_intel_data.h diff --git a/tests/math_powf_intel_data.h b/tests/math_data/powf_intel_data.h similarity index 100% rename from tests/math_powf_intel_data.h rename to tests/math_data/powf_intel_data.h diff --git a/tests/math_data/remainder_intel_data.h b/tests/math_data/remainder_intel_data.h new file mode 100644 index 000000000..721961630 --- /dev/null +++ b/tests/math_data/remainder_intel_data.h @@ -0,0 +1,1308 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_remainder_intel_data[] = { + { // Entry 0 + -0x1.p-51, + -0x1.4p1, + -0x1.3ffffffffffffp1 + }, + { // Entry 1 + 0x1.c0p46, + -0x1.8888888888888p100, + -0x1.1111111111111p95 + }, + { // Entry 2 + 0x1.0c6f7a20p-16, + -0x1.b155555555555p9, + -0x1.b15555db8d126p9 + }, + { // Entry 3 + -0.0, + -0x1.0p-117, + -0x1.0p-117 + }, + { // Entry 4 + -0.0, + -0x1.0p-117, + 0x1.0p-117 + }, + { // Entry 5 + 0.0, + 0x1.0p-117, + -0x1.0p-117 + }, + { // Entry 6 + 0.0, + 0x1.0p-117, + 0x1.0p-117 + }, + { // Entry 7 + -0x1.p-117, + -0x1.0p-117, + 0x1.0p15 + }, + { // Entry 8 + -0x1.p-117, + -0x1.0p-117, + 0x1.0p16 + }, + { // Entry 9 + 0x1.p-117, + 0x1.0p-117, + 0x1.0p15 + }, + { // Entry 10 + 0x1.p-117, + 0x1.0p-117, + 0x1.0p16 + }, + { // Entry 11 + -0x1.p-117, + -0x1.0p-117, + 0x1.0p117 + }, + { // Entry 12 + -0x1.p-117, + -0x1.0p-117, + 0x1.0p118 + }, + { // Entry 13 + 0x1.p-117, + 0x1.0p-117, + 0x1.0p117 + }, + { // Entry 14 + 0x1.p-117, + 0x1.0p-117, + 0x1.0p118 + }, + { // Entry 15 + 0.0, + 0x1.0p15, + -0x1.0p-117 + }, + { // Entry 16 + 0.0, + 0x1.0p15, + 0x1.0p-117 + }, + { // Entry 17 + 0.0, + 0x1.0p16, + -0x1.0p-117 + }, + { // Entry 18 + 0.0, + 0x1.0p16, + 0x1.0p-117 + }, + { // Entry 19 + 0.0, + 0x1.0p15, + 0x1.0p15 + }, + { // Entry 20 + 0x1.p15, + 0x1.0p15, + 0x1.0p16 + }, + { // Entry 21 + 0.0, + 0x1.0p16, + 0x1.0p15 + }, + { // Entry 22 + 0.0, + 0x1.0p16, + 0x1.0p16 + }, + { // Entry 23 + 0x1.p15, + 0x1.0p15, + 0x1.0p117 + }, + { // Entry 24 + 0x1.p15, + 0x1.0p15, + 0x1.0p118 + }, + { // Entry 25 + 0x1.p16, + 0x1.0p16, + 0x1.0p117 + }, + { // Entry 26 + 0x1.p16, + 0x1.0p16, + 0x1.0p118 + }, + { // Entry 27 + 0.0, + 0x1.0p117, + -0x1.0p-117 + }, + { // Entry 28 + 0.0, + 0x1.0p117, + 0x1.0p-117 + }, + { // Entry 29 + 0.0, + 0x1.0p118, + -0x1.0p-117 + }, + { // Entry 30 + 0.0, + 0x1.0p118, + 0x1.0p-117 + }, + { // Entry 31 + 0.0, + 0x1.0p117, + 0x1.0p15 + }, + { // Entry 32 + 0.0, + 0x1.0p117, + 0x1.0p16 + }, + { // Entry 33 + 0.0, + 0x1.0p118, + 0x1.0p15 + }, + { // Entry 34 + 0.0, + 0x1.0p118, + 0x1.0p16 + }, + { // Entry 35 + 0.0, + 0x1.0p117, + 0x1.0p117 + }, + { // Entry 36 + 0x1.p117, + 0x1.0p117, + 0x1.0p118 + }, + { // Entry 37 + 0.0, + 0x1.0p118, + 0x1.0p117 + }, + { // Entry 38 + 0.0, + 0x1.0p118, + 0x1.0p118 + }, + { // Entry 39 + 0.0, + 0x1.9p6, + 0x1.4p3 + }, + { // Entry 40 + 0x1.p0, + 0x1.9p6, + 0x1.6p3 + }, + { // Entry 41 + 0x1.p2, + 0x1.9p6, + 0x1.8p3 + }, + { // Entry 42 + 0x1.p0, + 0x1.940p6, + 0x1.4p3 + }, + { // Entry 43 + 0x1.p1, + 0x1.940p6, + 0x1.6p3 + }, + { // Entry 44 + 0x1.40p2, + 0x1.940p6, + 0x1.8p3 + }, + { // Entry 45 + 0x1.p1, + 0x1.980p6, + 0x1.4p3 + }, + { // Entry 46 + 0x1.80p1, + 0x1.980p6, + 0x1.6p3 + }, + { // Entry 47 + 0x1.80p2, + 0x1.980p6, + 0x1.8p3 + }, + { // Entry 48 + 0x1.80p1, + 0x1.9c0p6, + 0x1.4p3 + }, + { // Entry 49 + 0x1.p2, + 0x1.9c0p6, + 0x1.6p3 + }, + { // Entry 50 + -0x1.40p2, + 0x1.9c0p6, + 0x1.8p3 + }, + { // Entry 51 + 0x1.p2, + 0x1.ap6, + 0x1.4p3 + }, + { // Entry 52 + 0x1.40p2, + 0x1.ap6, + 0x1.6p3 + }, + { // Entry 53 + -0x1.p2, + 0x1.ap6, + 0x1.8p3 + }, + { // Entry 54 + 0x1.40p2, + 0x1.a40p6, + 0x1.4p3 + }, + { // Entry 55 + -0x1.40p2, + 0x1.a40p6, + 0x1.6p3 + }, + { // Entry 56 + -0x1.80p1, + 0x1.a40p6, + 0x1.8p3 + }, + { // Entry 57 + -0x1.p2, + 0x1.a80p6, + 0x1.4p3 + }, + { // Entry 58 + -0x1.p2, + 0x1.a80p6, + 0x1.6p3 + }, + { // Entry 59 + -0x1.p1, + 0x1.a80p6, + 0x1.8p3 + }, + { // Entry 60 + -0x1.80p1, + 0x1.ac0p6, + 0x1.4p3 + }, + { // Entry 61 + -0x1.80p1, + 0x1.ac0p6, + 0x1.6p3 + }, + { // Entry 62 + -0x1.p0, + 0x1.ac0p6, + 0x1.8p3 + }, + { // Entry 63 + -0x1.p1, + 0x1.bp6, + 0x1.4p3 + }, + { // Entry 64 + -0x1.p1, + 0x1.bp6, + 0x1.6p3 + }, + { // Entry 65 + 0.0, + 0x1.bp6, + 0x1.8p3 + }, + { // Entry 66 + -0x1.p0, + 0x1.b40p6, + 0x1.4p3 + }, + { // Entry 67 + -0x1.p0, + 0x1.b40p6, + 0x1.6p3 + }, + { // Entry 68 + 0x1.p0, + 0x1.b40p6, + 0x1.8p3 + }, + { // Entry 69 + 0.0, + 0x1.b80p6, + 0x1.4p3 + }, + { // Entry 70 + 0.0, + 0x1.b80p6, + 0x1.6p3 + }, + { // Entry 71 + 0x1.p1, + 0x1.b80p6, + 0x1.8p3 + }, + { // Entry 72 + -0.0, + -0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 73 + -0x1.p-52, + -0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 74 + -0x1.80p-52, + -0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 75 + 0x1.p-52, + -0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 76 + -0.0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 77 + -0x1.p-53, + -0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 78 + 0x1.80p-52, + -0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 79 + 0x1.p-53, + -0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 80 + -0.0, + -0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 81 + -0x1.80p-52, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 82 + -0x1.p-52, + -0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 83 + -0.0, + -0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 84 + -0x1.p-53, + -0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 85 + -0.0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 86 + 0x1.p-52, + -0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 87 + -0.0, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 88 + 0x1.p-53, + -0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 89 + 0x1.80p-52, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 90 + -0x1.80p-52, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 91 + -0x1.p-53, + 0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 92 + 0.0, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 93 + -0x1.p-52, + 0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 94 + 0.0, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 95 + 0x1.p-53, + 0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 96 + 0.0, + 0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 97 + 0x1.p-52, + 0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 98 + 0x1.80p-52, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 99 + 0.0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 100 + -0x1.p-53, + 0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 101 + -0x1.80p-52, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 102 + 0x1.p-53, + 0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 103 + 0.0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 104 + -0x1.p-52, + 0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 105 + 0x1.80p-52, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 106 + 0x1.p-52, + 0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 107 + 0.0, + 0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 108 + -0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 109 + -0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 110 + 0.0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 111 + -0.0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 112 + -0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 113 + 0.0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 114 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 115 + -0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 116 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 117 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 118 + -0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 119 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 120 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 121 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 122 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 123 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 124 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 125 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 126 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 127 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 128 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 129 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 130 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 131 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 132 + 0x1.ffffffffffffc0p-3, + -0x1.0000000000001p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 133 + -0x1.p-1, + -0x1.0000000000001p51, + 0x1.0p0 + }, + { // Entry 134 + -0.0, + -0x1.0000000000001p51, + 0x1.0000000000001p0 + }, + { // Entry 135 + -0x1.p-2, + -0x1.0p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 136 + -0.0, + -0x1.0p51, + 0x1.0p0 + }, + { // Entry 137 + 0x1.p-1, + -0x1.0p51, + 0x1.0000000000001p0 + }, + { // Entry 138 + -0.0, + -0x1.fffffffffffffp50, + 0x1.fffffffffffffp-1 + }, + { // Entry 139 + 0x1.p-2, + -0x1.fffffffffffffp50, + 0x1.0p0 + }, + { // Entry 140 + -0x1.00000000000040p-2, + -0x1.fffffffffffffp50, + 0x1.0000000000001p0 + }, + { // Entry 141 + 0.0, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1 + }, + { // Entry 142 + -0x1.p-1, + 0x1.fffffffffffffp51, + 0x1.0p0 + }, + { // Entry 143 + -0x1.ffffffffffffc0p-2, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0 + }, + { // Entry 144 + -0x1.ffffffffffffe0p-2, + 0x1.0p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 145 + 0.0, + 0x1.0p52, + 0x1.0p0 + }, + { // Entry 146 + 0x1.p-52, + 0x1.0p52, + 0x1.0000000000001p0 + }, + { // Entry 147 + -0x1.ffffffffffffc0p-2, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 148 + 0.0, + 0x1.0000000000001p52, + 0x1.0p0 + }, + { // Entry 149 + 0.0, + 0x1.0000000000001p52, + 0x1.0000000000001p0 + }, + { // Entry 150 + -0x1.80p-52, + -0x1.0000000000001p53, + 0x1.fffffffffffffp-1 + }, + { // Entry 151 + -0.0, + -0x1.0000000000001p53, + 0x1.0p0 + }, + { // Entry 152 + -0.0, + -0x1.0000000000001p53, + 0x1.0000000000001p0 + }, + { // Entry 153 + -0x1.p-53, + -0x1.0p53, + 0x1.fffffffffffffp-1 + }, + { // Entry 154 + -0.0, + -0x1.0p53, + 0x1.0p0 + }, + { // Entry 155 + -0x1.p-51, + -0x1.0p53, + 0x1.0000000000001p0 + }, + { // Entry 156 + -0.0, + -0x1.fffffffffffffp52, + 0x1.fffffffffffffp-1 + }, + { // Entry 157 + -0.0, + -0x1.fffffffffffffp52, + 0x1.0p0 + }, + { // Entry 158 + -0x1.80p-51, + -0x1.fffffffffffffp52, + 0x1.0000000000001p0 + }, + { // Entry 159 + 0.0, + 0x1.fffffffffffffp50, + 0x1.fffffffffffffp-1 + }, + { // Entry 160 + -0x1.p-2, + 0x1.fffffffffffffp50, + 0x1.0p0 + }, + { // Entry 161 + 0x1.00000000000040p-2, + 0x1.fffffffffffffp50, + 0x1.0000000000001p0 + }, + { // Entry 162 + 0x1.p-2, + 0x1.0p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 163 + 0.0, + 0x1.0p51, + 0x1.0p0 + }, + { // Entry 164 + -0x1.p-1, + 0x1.0p51, + 0x1.0000000000001p0 + }, + { // Entry 165 + -0x1.ffffffffffffc0p-3, + 0x1.0000000000001p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 166 + 0x1.p-1, + 0x1.0000000000001p51, + 0x1.0p0 + }, + { // Entry 167 + 0.0, + 0x1.0000000000001p51, + 0x1.0000000000001p0 + }, + { // Entry 168 + 0.0, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1 + }, + { // Entry 169 + -0x1.p-1, + 0x1.fffffffffffffp51, + 0x1.0p0 + }, + { // Entry 170 + -0x1.ffffffffffffc0p-2, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0 + }, + { // Entry 171 + -0x1.ffffffffffffe0p-2, + 0x1.0p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 172 + 0.0, + 0x1.0p52, + 0x1.0p0 + }, + { // Entry 173 + 0x1.p-52, + 0x1.0p52, + 0x1.0000000000001p0 + }, + { // Entry 174 + -0x1.ffffffffffffc0p-2, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 175 + 0.0, + 0x1.0000000000001p52, + 0x1.0p0 + }, + { // Entry 176 + 0.0, + 0x1.0000000000001p52, + 0x1.0000000000001p0 + }, + { // Entry 177 + -0.0, + -0x1.0000000000001p53, + -0x1.0000000000001p0 + }, + { // Entry 178 + -0.0, + -0x1.0000000000001p53, + -0x1.0p0 + }, + { // Entry 179 + -0x1.80p-52, + -0x1.0000000000001p53, + -0x1.fffffffffffffp-1 + }, + { // Entry 180 + -0x1.p-51, + -0x1.0p53, + -0x1.0000000000001p0 + }, + { // Entry 181 + -0.0, + -0x1.0p53, + -0x1.0p0 + }, + { // Entry 182 + -0x1.p-53, + -0x1.0p53, + -0x1.fffffffffffffp-1 + }, + { // Entry 183 + -0x1.80p-51, + -0x1.fffffffffffffp52, + -0x1.0000000000001p0 + }, + { // Entry 184 + -0.0, + -0x1.fffffffffffffp52, + -0x1.0p0 + }, + { // Entry 185 + -0.0, + -0x1.fffffffffffffp52, + -0x1.fffffffffffffp-1 + }, + { // Entry 186 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 187 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 188 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 189 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 190 + 0x1.p-1022, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 191 + -0x1.p-1022, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 192 + 0x1.p-1022, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 193 + -0x1.p-1022, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 194 + 0x1.p-1074, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 195 + -0x1.p-1074, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 196 + 0x1.p-1074, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 197 + -0x1.p-1074, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 198 + 0.0, + 0.0, + HUGE_VAL + }, + { // Entry 199 + -0.0, + -0.0, + HUGE_VAL + }, + { // Entry 200 + 0.0, + 0.0, + -HUGE_VAL + }, + { // Entry 201 + -0.0, + -0.0, + -HUGE_VAL + }, + { // Entry 202 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 203 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 204 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 205 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 206 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 207 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 208 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 209 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 210 + 0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 211 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 212 + -0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 213 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 214 + 0x1.p-1022, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 215 + -0x1.p-1022, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 216 + 0x1.p-1022, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 217 + -0x1.p-1022, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 218 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 219 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 220 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 221 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 222 + 0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 223 + -0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 224 + 0.0, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 225 + -0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 226 + 0.0, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 227 + 0.0, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 228 + -0.0, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 229 + -0.0, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 230 + 0.0, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 231 + 0.0, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 232 + -0.0, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 233 + -0.0, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 234 + 0x1.p-1074, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 235 + -0x1.p-1074, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 236 + 0x1.p-1074, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 237 + -0x1.p-1074, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 238 + 0.0, + 0.0, + 0x1.0p-1022 + }, + { // Entry 239 + -0.0, + -0.0, + 0x1.0p-1022 + }, + { // Entry 240 + 0.0, + 0.0, + -0x1.0p-1022 + }, + { // Entry 241 + -0.0, + -0.0, + -0x1.0p-1022 + }, + { // Entry 242 + 0.0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 243 + -0.0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 244 + 0.0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 245 + -0.0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 246 + 0.0, + 0.0, + 0x1.0p-1074 + }, + { // Entry 247 + -0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 248 + 0.0, + 0.0, + -0x1.0p-1074 + }, + { // Entry 249 + -0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 250 + -0x1.p0, + 0x1.8p1, + 0x1.0p1 + }, + { // Entry 251 + 0x1.p0, + -0x1.8p1, + 0x1.0p1 + }, + { // Entry 252 + -0x1.p0, + 0x1.8p1, + -0x1.0p1 + }, + { // Entry 253 + 0x1.p0, + -0x1.8p1, + -0x1.0p1 + }, + { // Entry 254 + 0x1.p0, + 0x1.4p2, + 0x1.0p1 + }, + { // Entry 255 + -0x1.p0, + -0x1.4p2, + 0x1.0p1 + }, + { // Entry 256 + 0x1.p0, + 0x1.4p2, + -0x1.0p1 + }, + { // Entry 257 + -0x1.p0, + -0x1.4p2, + -0x1.0p1 + } +}; diff --git a/tests/math_data/remainderf_intel_data.h b/tests/math_data/remainderf_intel_data.h new file mode 100644 index 000000000..94c4af57c --- /dev/null +++ b/tests/math_data/remainderf_intel_data.h @@ -0,0 +1,1293 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_remainderf_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.p-117, + -0x1.p-117 + }, + { // Entry 1 + -0.0, + -0x1.p-117, + 0x1.p-117 + }, + { // Entry 2 + 0.0, + 0x1.p-117, + -0x1.p-117 + }, + { // Entry 3 + 0.0, + 0x1.p-117, + 0x1.p-117 + }, + { // Entry 4 + -0x1.p-117, + -0x1.p-117, + 0x1.p15 + }, + { // Entry 5 + -0x1.p-117, + -0x1.p-117, + 0x1.p16 + }, + { // Entry 6 + 0x1.p-117, + 0x1.p-117, + 0x1.p15 + }, + { // Entry 7 + 0x1.p-117, + 0x1.p-117, + 0x1.p16 + }, + { // Entry 8 + -0x1.p-117, + -0x1.p-117, + 0x1.p117 + }, + { // Entry 9 + -0x1.p-117, + -0x1.p-117, + 0x1.p118 + }, + { // Entry 10 + 0x1.p-117, + 0x1.p-117, + 0x1.p117 + }, + { // Entry 11 + 0x1.p-117, + 0x1.p-117, + 0x1.p118 + }, + { // Entry 12 + 0.0, + 0x1.p15, + -0x1.p-117 + }, + { // Entry 13 + 0.0, + 0x1.p15, + 0x1.p-117 + }, + { // Entry 14 + 0.0, + 0x1.p16, + -0x1.p-117 + }, + { // Entry 15 + 0.0, + 0x1.p16, + 0x1.p-117 + }, + { // Entry 16 + 0.0, + 0x1.p15, + 0x1.p15 + }, + { // Entry 17 + 0x1.p15, + 0x1.p15, + 0x1.p16 + }, + { // Entry 18 + 0.0, + 0x1.p16, + 0x1.p15 + }, + { // Entry 19 + 0.0, + 0x1.p16, + 0x1.p16 + }, + { // Entry 20 + 0x1.p15, + 0x1.p15, + 0x1.p117 + }, + { // Entry 21 + 0x1.p15, + 0x1.p15, + 0x1.p118 + }, + { // Entry 22 + 0x1.p16, + 0x1.p16, + 0x1.p117 + }, + { // Entry 23 + 0x1.p16, + 0x1.p16, + 0x1.p118 + }, + { // Entry 24 + 0.0, + 0x1.p117, + -0x1.p-117 + }, + { // Entry 25 + 0.0, + 0x1.p117, + 0x1.p-117 + }, + { // Entry 26 + 0.0, + 0x1.p118, + -0x1.p-117 + }, + { // Entry 27 + 0.0, + 0x1.p118, + 0x1.p-117 + }, + { // Entry 28 + 0.0, + 0x1.p117, + 0x1.p15 + }, + { // Entry 29 + 0.0, + 0x1.p117, + 0x1.p16 + }, + { // Entry 30 + 0.0, + 0x1.p118, + 0x1.p15 + }, + { // Entry 31 + 0.0, + 0x1.p118, + 0x1.p16 + }, + { // Entry 32 + 0.0, + 0x1.p117, + 0x1.p117 + }, + { // Entry 33 + 0x1.p117, + 0x1.p117, + 0x1.p118 + }, + { // Entry 34 + 0.0, + 0x1.p118, + 0x1.p117 + }, + { // Entry 35 + 0.0, + 0x1.p118, + 0x1.p118 + }, + { // Entry 36 + 0.0, + 0x1.90p6, + 0x1.40p3 + }, + { // Entry 37 + 0x1.p0, + 0x1.90p6, + 0x1.60p3 + }, + { // Entry 38 + 0x1.p2, + 0x1.90p6, + 0x1.80p3 + }, + { // Entry 39 + 0x1.p0, + 0x1.94p6, + 0x1.40p3 + }, + { // Entry 40 + 0x1.p1, + 0x1.94p6, + 0x1.60p3 + }, + { // Entry 41 + 0x1.40p2, + 0x1.94p6, + 0x1.80p3 + }, + { // Entry 42 + 0x1.p1, + 0x1.98p6, + 0x1.40p3 + }, + { // Entry 43 + 0x1.80p1, + 0x1.98p6, + 0x1.60p3 + }, + { // Entry 44 + 0x1.80p2, + 0x1.98p6, + 0x1.80p3 + }, + { // Entry 45 + 0x1.80p1, + 0x1.9cp6, + 0x1.40p3 + }, + { // Entry 46 + 0x1.p2, + 0x1.9cp6, + 0x1.60p3 + }, + { // Entry 47 + -0x1.40p2, + 0x1.9cp6, + 0x1.80p3 + }, + { // Entry 48 + 0x1.p2, + 0x1.a0p6, + 0x1.40p3 + }, + { // Entry 49 + 0x1.40p2, + 0x1.a0p6, + 0x1.60p3 + }, + { // Entry 50 + -0x1.p2, + 0x1.a0p6, + 0x1.80p3 + }, + { // Entry 51 + 0x1.40p2, + 0x1.a4p6, + 0x1.40p3 + }, + { // Entry 52 + -0x1.40p2, + 0x1.a4p6, + 0x1.60p3 + }, + { // Entry 53 + -0x1.80p1, + 0x1.a4p6, + 0x1.80p3 + }, + { // Entry 54 + -0x1.p2, + 0x1.a8p6, + 0x1.40p3 + }, + { // Entry 55 + -0x1.p2, + 0x1.a8p6, + 0x1.60p3 + }, + { // Entry 56 + -0x1.p1, + 0x1.a8p6, + 0x1.80p3 + }, + { // Entry 57 + -0x1.80p1, + 0x1.acp6, + 0x1.40p3 + }, + { // Entry 58 + -0x1.80p1, + 0x1.acp6, + 0x1.60p3 + }, + { // Entry 59 + -0x1.p0, + 0x1.acp6, + 0x1.80p3 + }, + { // Entry 60 + -0x1.p1, + 0x1.b0p6, + 0x1.40p3 + }, + { // Entry 61 + -0x1.p1, + 0x1.b0p6, + 0x1.60p3 + }, + { // Entry 62 + 0.0, + 0x1.b0p6, + 0x1.80p3 + }, + { // Entry 63 + -0x1.p0, + 0x1.b4p6, + 0x1.40p3 + }, + { // Entry 64 + -0x1.p0, + 0x1.b4p6, + 0x1.60p3 + }, + { // Entry 65 + 0x1.p0, + 0x1.b4p6, + 0x1.80p3 + }, + { // Entry 66 + 0.0, + 0x1.b8p6, + 0x1.40p3 + }, + { // Entry 67 + 0.0, + 0x1.b8p6, + 0x1.60p3 + }, + { // Entry 68 + 0x1.p1, + 0x1.b8p6, + 0x1.80p3 + }, + { // Entry 69 + -0.0, + -0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 70 + -0x1.p-23, + -0x1.000002p0, + -0x1.p0 + }, + { // Entry 71 + -0x1.80p-23, + -0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 72 + 0x1.p-23, + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 73 + -0.0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 74 + -0x1.p-24, + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 75 + 0x1.80p-23, + -0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 76 + 0x1.p-24, + -0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 77 + -0.0, + -0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 78 + -0x1.80p-23, + -0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 79 + -0x1.p-23, + -0x1.000002p0, + 0x1.p0 + }, + { // Entry 80 + -0.0, + -0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 81 + -0x1.p-24, + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 82 + -0.0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 83 + 0x1.p-23, + -0x1.p0, + 0x1.000002p0 + }, + { // Entry 84 + -0.0, + -0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 85 + 0x1.p-24, + -0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 86 + 0x1.80p-23, + -0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 87 + -0x1.80p-23, + 0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 88 + -0x1.p-24, + 0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 89 + 0.0, + 0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 90 + -0x1.p-23, + 0x1.p0, + -0x1.000002p0 + }, + { // Entry 91 + 0.0, + 0x1.p0, + -0x1.p0 + }, + { // Entry 92 + 0x1.p-24, + 0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 93 + 0.0, + 0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 94 + 0x1.p-23, + 0x1.000002p0, + -0x1.p0 + }, + { // Entry 95 + 0x1.80p-23, + 0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 96 + 0.0, + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 97 + -0x1.p-24, + 0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 98 + -0x1.80p-23, + 0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 99 + 0x1.p-24, + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 100 + 0.0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 101 + -0x1.p-23, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 102 + 0x1.80p-23, + 0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 103 + 0x1.p-23, + 0x1.000002p0, + 0x1.p0 + }, + { // Entry 104 + 0.0, + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 105 + -0.0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 106 + 0.0, + 0.0, + 0x1.p-149 + }, + { // Entry 107 + 0.0, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 108 + -0.0, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 109 + 0.0, + 0.0, + -0x1.p-149 + }, + { // Entry 110 + 0.0, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 111 + -0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 112 + 0.0, + 0.0, + 0x1.fffffep127 + }, + { // Entry 113 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 114 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 115 + 0.0, + 0.0, + -0x1.fffffep127 + }, + { // Entry 116 + 0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 117 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 118 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 119 + -0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 120 + 0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 121 + 0.0, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 122 + -0.0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 123 + -0.0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 124 + 0.0, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 125 + 0.0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 126 + 0.0, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 127 + -0.0, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 128 + -0.0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 129 + 0x1.fffff8p-3, + -0x1.000002p22, + 0x1.fffffep-1 + }, + { // Entry 130 + -0x1.p-1, + -0x1.000002p22, + 0x1.p0 + }, + { // Entry 131 + -0.0, + -0x1.000002p22, + 0x1.000002p0 + }, + { // Entry 132 + -0x1.p-2, + -0x1.p22, + 0x1.fffffep-1 + }, + { // Entry 133 + -0.0, + -0x1.p22, + 0x1.p0 + }, + { // Entry 134 + 0x1.p-1, + -0x1.p22, + 0x1.000002p0 + }, + { // Entry 135 + -0.0, + -0x1.fffffep21, + 0x1.fffffep-1 + }, + { // Entry 136 + 0x1.p-2, + -0x1.fffffep21, + 0x1.p0 + }, + { // Entry 137 + -0x1.000008p-2, + -0x1.fffffep21, + 0x1.000002p0 + }, + { // Entry 138 + 0.0, + 0x1.fffffep22, + 0x1.fffffep-1 + }, + { // Entry 139 + -0x1.p-1, + 0x1.fffffep22, + 0x1.p0 + }, + { // Entry 140 + -0x1.fffff8p-2, + 0x1.fffffep22, + 0x1.000002p0 + }, + { // Entry 141 + -0x1.fffffcp-2, + 0x1.p23, + 0x1.fffffep-1 + }, + { // Entry 142 + 0.0, + 0x1.p23, + 0x1.p0 + }, + { // Entry 143 + 0x1.p-23, + 0x1.p23, + 0x1.000002p0 + }, + { // Entry 144 + -0x1.fffff8p-2, + 0x1.000002p23, + 0x1.fffffep-1 + }, + { // Entry 145 + 0.0, + 0x1.000002p23, + 0x1.p0 + }, + { // Entry 146 + 0.0, + 0x1.000002p23, + 0x1.000002p0 + }, + { // Entry 147 + -0x1.80p-23, + -0x1.000002p24, + 0x1.fffffep-1 + }, + { // Entry 148 + -0.0, + -0x1.000002p24, + 0x1.p0 + }, + { // Entry 149 + -0.0, + -0x1.000002p24, + 0x1.000002p0 + }, + { // Entry 150 + -0x1.p-24, + -0x1.p24, + 0x1.fffffep-1 + }, + { // Entry 151 + -0.0, + -0x1.p24, + 0x1.p0 + }, + { // Entry 152 + -0x1.p-22, + -0x1.p24, + 0x1.000002p0 + }, + { // Entry 153 + -0.0, + -0x1.fffffep23, + 0x1.fffffep-1 + }, + { // Entry 154 + -0.0, + -0x1.fffffep23, + 0x1.p0 + }, + { // Entry 155 + -0x1.80p-22, + -0x1.fffffep23, + 0x1.000002p0 + }, + { // Entry 156 + 0.0, + 0x1.fffffep21, + 0x1.fffffep-1 + }, + { // Entry 157 + -0x1.p-2, + 0x1.fffffep21, + 0x1.p0 + }, + { // Entry 158 + 0x1.000008p-2, + 0x1.fffffep21, + 0x1.000002p0 + }, + { // Entry 159 + 0x1.p-2, + 0x1.p22, + 0x1.fffffep-1 + }, + { // Entry 160 + 0.0, + 0x1.p22, + 0x1.p0 + }, + { // Entry 161 + -0x1.p-1, + 0x1.p22, + 0x1.000002p0 + }, + { // Entry 162 + -0x1.fffff8p-3, + 0x1.000002p22, + 0x1.fffffep-1 + }, + { // Entry 163 + 0x1.p-1, + 0x1.000002p22, + 0x1.p0 + }, + { // Entry 164 + 0.0, + 0x1.000002p22, + 0x1.000002p0 + }, + { // Entry 165 + 0.0, + 0x1.fffffep22, + 0x1.fffffep-1 + }, + { // Entry 166 + -0x1.p-1, + 0x1.fffffep22, + 0x1.p0 + }, + { // Entry 167 + -0x1.fffff8p-2, + 0x1.fffffep22, + 0x1.000002p0 + }, + { // Entry 168 + -0x1.fffffcp-2, + 0x1.p23, + 0x1.fffffep-1 + }, + { // Entry 169 + 0.0, + 0x1.p23, + 0x1.p0 + }, + { // Entry 170 + 0x1.p-23, + 0x1.p23, + 0x1.000002p0 + }, + { // Entry 171 + -0x1.fffff8p-2, + 0x1.000002p23, + 0x1.fffffep-1 + }, + { // Entry 172 + 0.0, + 0x1.000002p23, + 0x1.p0 + }, + { // Entry 173 + 0.0, + 0x1.000002p23, + 0x1.000002p0 + }, + { // Entry 174 + -0.0, + -0x1.000002p24, + -0x1.000002p0 + }, + { // Entry 175 + -0.0, + -0x1.000002p24, + -0x1.p0 + }, + { // Entry 176 + -0x1.80p-23, + -0x1.000002p24, + -0x1.fffffep-1 + }, + { // Entry 177 + -0x1.p-22, + -0x1.p24, + -0x1.000002p0 + }, + { // Entry 178 + -0.0, + -0x1.p24, + -0x1.p0 + }, + { // Entry 179 + -0x1.p-24, + -0x1.p24, + -0x1.fffffep-1 + }, + { // Entry 180 + -0x1.80p-22, + -0x1.fffffep23, + -0x1.000002p0 + }, + { // Entry 181 + -0.0, + -0x1.fffffep23, + -0x1.p0 + }, + { // Entry 182 + -0.0, + -0x1.fffffep23, + -0x1.fffffep-1 + }, + { // Entry 183 + 0x1.fffffep127, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 184 + -0x1.fffffep127, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 185 + 0x1.fffffep127, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 186 + -0x1.fffffep127, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 187 + 0x1.p-126, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 188 + -0x1.p-126, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 189 + 0x1.p-126, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 190 + -0x1.p-126, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 191 + 0x1.p-149, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 192 + -0x1.p-149, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 193 + 0x1.p-149, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 194 + -0x1.p-149, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 195 + 0.0, + 0.0f, + HUGE_VALF + }, + { // Entry 196 + -0.0, + -0.0f, + HUGE_VALF + }, + { // Entry 197 + 0.0, + 0.0f, + -HUGE_VALF + }, + { // Entry 198 + -0.0, + -0.0f, + -HUGE_VALF + }, + { // Entry 199 + 0.0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 200 + 0.0, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 201 + -0.0, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 202 + -0.0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 203 + 0.0, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 204 + 0.0, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 205 + -0.0, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 206 + -0.0, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 207 + 0.0, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 208 + 0.0, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 209 + -0.0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 210 + -0.0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 211 + 0x1.p-126, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 212 + -0x1.p-126, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 213 + 0x1.p-126, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 214 + -0x1.p-126, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 215 + 0x1.p-149, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 216 + -0x1.p-149, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 217 + 0x1.p-149, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 218 + -0x1.p-149, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 219 + 0.0, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 220 + -0.0, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 221 + 0.0, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 222 + -0.0, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 223 + 0.0, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 224 + 0.0, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 225 + -0.0, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 226 + -0.0, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 227 + 0.0, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 228 + 0.0, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 229 + -0.0, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 230 + -0.0, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 231 + 0x1.p-149, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 232 + -0x1.p-149, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 233 + 0x1.p-149, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 234 + -0x1.p-149, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 235 + 0.0, + 0.0f, + 0x1.p-126 + }, + { // Entry 236 + -0.0, + -0.0f, + 0x1.p-126 + }, + { // Entry 237 + 0.0, + 0.0f, + -0x1.p-126 + }, + { // Entry 238 + -0.0, + -0.0f, + -0x1.p-126 + }, + { // Entry 239 + 0.0, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 240 + -0.0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 241 + 0.0, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 242 + -0.0, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 243 + 0.0, + 0.0f, + 0x1.p-149 + }, + { // Entry 244 + -0.0, + -0.0f, + 0x1.p-149 + }, + { // Entry 245 + 0.0, + 0.0f, + -0x1.p-149 + }, + { // Entry 246 + -0.0, + -0.0f, + -0x1.p-149 + }, + { // Entry 247 + -0x1.p0, + 0x1.80p1, + 0x1.p1 + }, + { // Entry 248 + 0x1.p0, + -0x1.80p1, + 0x1.p1 + }, + { // Entry 249 + -0x1.p0, + 0x1.80p1, + -0x1.p1 + }, + { // Entry 250 + 0x1.p0, + -0x1.80p1, + -0x1.p1 + }, + { // Entry 251 + 0x1.p0, + 0x1.40p2, + 0x1.p1 + }, + { // Entry 252 + -0x1.p0, + -0x1.40p2, + 0x1.p1 + }, + { // Entry 253 + 0x1.p0, + 0x1.40p2, + -0x1.p1 + }, + { // Entry 254 + -0x1.p0, + -0x1.40p2, + -0x1.p1 + } +}; diff --git a/tests/math_data/remquo_intel_data.h b/tests/math_data/remquo_intel_data.h new file mode 100644 index 000000000..153b6e6c9 --- /dev/null +++ b/tests/math_data/remquo_intel_data.h @@ -0,0 +1,1584 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_int_2_t g_remquo_intel_data[] = { + { // Entry 0 + 0x1.42967268315ap-13, + (int)-0x1.p1, + -0x1.0p-10, + 0x1.2852ce4d062b4p-11 + }, + { // Entry 1 + 0x1.1ab75504464440p14, + (int)0x1.6a3b3618p30, + 0x1.0295fad40a57fp117, + 0x1.45d1745d17465p15 + }, + { // Entry 2 + -0x1.d1a777081861p18, + (int)-0x1.0f62d4b8p30, + 0x1.11f783ee89b08p99, + -0x1.fd6ef47d96f1cp19 + }, + { // Entry 3 + -0x1.b0p3, + (int)-0x1.afe501b0p29, + 0x1.ffffffffffffbp1023, + -0x1.001p10 + }, + { // Entry 4 + -0x1.7d9165c00024p9, + (int)0x1.dd000030p29, + 0x1.ffffffffffffbp1023, + 0x1.0000000000003p14 + }, + { // Entry 5 + -0x1.p-17, + (int)0.0, + 0x1.ffffffffffffdp1023, + 0x1.ffffffffffffep-2 + }, + { // Entry 6 + -0.0, + (int)0x1.p0, + -0x1.0p-117, + -0x1.0p-117 + }, + { // Entry 7 + -0.0, + (int)-0x1.p0, + -0x1.0p-117, + 0x1.0p-117 + }, + { // Entry 8 + 0.0, + (int)-0x1.p0, + 0x1.0p-117, + -0x1.0p-117 + }, + { // Entry 9 + 0.0, + (int)0x1.p0, + 0x1.0p-117, + 0x1.0p-117 + }, + { // Entry 10 + -0x1.p-117, + (int)0.0, + -0x1.0p-117, + 0x1.0p15 + }, + { // Entry 11 + -0x1.p-117, + (int)0.0, + -0x1.0p-117, + 0x1.0p16 + }, + { // Entry 12 + 0x1.p-117, + (int)0.0, + 0x1.0p-117, + 0x1.0p15 + }, + { // Entry 13 + 0x1.p-117, + (int)0.0, + 0x1.0p-117, + 0x1.0p16 + }, + { // Entry 14 + -0x1.p-117, + (int)0.0, + -0x1.0p-117, + 0x1.0p117 + }, + { // Entry 15 + -0x1.p-117, + (int)0.0, + -0x1.0p-117, + 0x1.0p118 + }, + { // Entry 16 + 0x1.p-117, + (int)0.0, + 0x1.0p-117, + 0x1.0p117 + }, + { // Entry 17 + 0x1.p-117, + (int)0.0, + 0x1.0p-117, + 0x1.0p118 + }, + { // Entry 18 + 0.0, + (int)0.0, + 0x1.0p15, + -0x1.0p-117 + }, + { // Entry 19 + 0.0, + (int)0.0, + 0x1.0p15, + 0x1.0p-117 + }, + { // Entry 20 + 0.0, + (int)0.0, + 0x1.0p16, + -0x1.0p-117 + }, + { // Entry 21 + 0.0, + (int)0.0, + 0x1.0p16, + 0x1.0p-117 + }, + { // Entry 22 + 0.0, + (int)0x1.p0, + 0x1.0p15, + 0x1.0p15 + }, + { // Entry 23 + 0x1.p15, + (int)0.0, + 0x1.0p15, + 0x1.0p16 + }, + { // Entry 24 + 0.0, + (int)0x1.p1, + 0x1.0p16, + 0x1.0p15 + }, + { // Entry 25 + 0.0, + (int)0x1.p0, + 0x1.0p16, + 0x1.0p16 + }, + { // Entry 26 + 0x1.p15, + (int)0.0, + 0x1.0p15, + 0x1.0p117 + }, + { // Entry 27 + 0x1.p15, + (int)0.0, + 0x1.0p15, + 0x1.0p118 + }, + { // Entry 28 + 0x1.p16, + (int)0.0, + 0x1.0p16, + 0x1.0p117 + }, + { // Entry 29 + 0x1.p16, + (int)0.0, + 0x1.0p16, + 0x1.0p118 + }, + { // Entry 30 + 0.0, + (int)0.0, + 0x1.0p117, + -0x1.0p-117 + }, + { // Entry 31 + 0.0, + (int)0.0, + 0x1.0p117, + 0x1.0p-117 + }, + { // Entry 32 + 0.0, + (int)0.0, + 0x1.0p118, + -0x1.0p-117 + }, + { // Entry 33 + 0.0, + (int)0.0, + 0x1.0p118, + 0x1.0p-117 + }, + { // Entry 34 + 0.0, + (int)0.0, + 0x1.0p117, + 0x1.0p15 + }, + { // Entry 35 + 0.0, + (int)0.0, + 0x1.0p117, + 0x1.0p16 + }, + { // Entry 36 + 0.0, + (int)0.0, + 0x1.0p118, + 0x1.0p15 + }, + { // Entry 37 + 0.0, + (int)0.0, + 0x1.0p118, + 0x1.0p16 + }, + { // Entry 38 + 0.0, + (int)0x1.p0, + 0x1.0p117, + 0x1.0p117 + }, + { // Entry 39 + 0x1.p117, + (int)0.0, + 0x1.0p117, + 0x1.0p118 + }, + { // Entry 40 + 0.0, + (int)0x1.p1, + 0x1.0p118, + 0x1.0p117 + }, + { // Entry 41 + 0.0, + (int)0x1.p0, + 0x1.0p118, + 0x1.0p118 + }, + { // Entry 42 + 0.0, + (int)0x1.40p3, + 0x1.9p6, + 0x1.4p3 + }, + { // Entry 43 + 0x1.p0, + (int)0x1.20p3, + 0x1.9p6, + 0x1.6p3 + }, + { // Entry 44 + 0x1.p2, + (int)0x1.p3, + 0x1.9p6, + 0x1.8p3 + }, + { // Entry 45 + 0x1.p0, + (int)0x1.40p3, + 0x1.940p6, + 0x1.4p3 + }, + { // Entry 46 + 0x1.p1, + (int)0x1.20p3, + 0x1.940p6, + 0x1.6p3 + }, + { // Entry 47 + 0x1.40p2, + (int)0x1.p3, + 0x1.940p6, + 0x1.8p3 + }, + { // Entry 48 + 0x1.p1, + (int)0x1.40p3, + 0x1.980p6, + 0x1.4p3 + }, + { // Entry 49 + 0x1.80p1, + (int)0x1.20p3, + 0x1.980p6, + 0x1.6p3 + }, + { // Entry 50 + 0x1.80p2, + (int)0x1.p3, + 0x1.980p6, + 0x1.8p3 + }, + { // Entry 51 + 0x1.80p1, + (int)0x1.40p3, + 0x1.9c0p6, + 0x1.4p3 + }, + { // Entry 52 + 0x1.p2, + (int)0x1.20p3, + 0x1.9c0p6, + 0x1.6p3 + }, + { // Entry 53 + -0x1.40p2, + (int)0x1.20p3, + 0x1.9c0p6, + 0x1.8p3 + }, + { // Entry 54 + 0x1.p2, + (int)0x1.40p3, + 0x1.ap6, + 0x1.4p3 + }, + { // Entry 55 + 0x1.40p2, + (int)0x1.20p3, + 0x1.ap6, + 0x1.6p3 + }, + { // Entry 56 + -0x1.p2, + (int)0x1.20p3, + 0x1.ap6, + 0x1.8p3 + }, + { // Entry 57 + 0x1.40p2, + (int)0x1.40p3, + 0x1.a40p6, + 0x1.4p3 + }, + { // Entry 58 + -0x1.40p2, + (int)0x1.40p3, + 0x1.a40p6, + 0x1.6p3 + }, + { // Entry 59 + -0x1.80p1, + (int)0x1.20p3, + 0x1.a40p6, + 0x1.8p3 + }, + { // Entry 60 + -0x1.p2, + (int)0x1.60p3, + 0x1.a80p6, + 0x1.4p3 + }, + { // Entry 61 + -0x1.p2, + (int)0x1.40p3, + 0x1.a80p6, + 0x1.6p3 + }, + { // Entry 62 + -0x1.p1, + (int)0x1.20p3, + 0x1.a80p6, + 0x1.8p3 + }, + { // Entry 63 + -0x1.80p1, + (int)0x1.60p3, + 0x1.ac0p6, + 0x1.4p3 + }, + { // Entry 64 + -0x1.80p1, + (int)0x1.40p3, + 0x1.ac0p6, + 0x1.6p3 + }, + { // Entry 65 + -0x1.p0, + (int)0x1.20p3, + 0x1.ac0p6, + 0x1.8p3 + }, + { // Entry 66 + -0x1.p1, + (int)0x1.60p3, + 0x1.bp6, + 0x1.4p3 + }, + { // Entry 67 + -0x1.p1, + (int)0x1.40p3, + 0x1.bp6, + 0x1.6p3 + }, + { // Entry 68 + 0.0, + (int)0x1.20p3, + 0x1.bp6, + 0x1.8p3 + }, + { // Entry 69 + -0x1.p0, + (int)0x1.60p3, + 0x1.b40p6, + 0x1.4p3 + }, + { // Entry 70 + -0x1.p0, + (int)0x1.40p3, + 0x1.b40p6, + 0x1.6p3 + }, + { // Entry 71 + 0x1.p0, + (int)0x1.20p3, + 0x1.b40p6, + 0x1.8p3 + }, + { // Entry 72 + 0.0, + (int)0x1.60p3, + 0x1.b80p6, + 0x1.4p3 + }, + { // Entry 73 + 0.0, + (int)0x1.40p3, + 0x1.b80p6, + 0x1.6p3 + }, + { // Entry 74 + 0x1.p1, + (int)0x1.20p3, + 0x1.b80p6, + 0x1.8p3 + }, + { // Entry 75 + -0.0, + (int)0x1.p0, + -0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 76 + -0x1.p-52, + (int)0x1.p0, + -0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 77 + -0x1.80p-52, + (int)0x1.p0, + -0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 78 + 0x1.p-52, + (int)0x1.p0, + -0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 79 + -0.0, + (int)0x1.p0, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 80 + -0x1.p-53, + (int)0x1.p0, + -0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 81 + 0x1.80p-52, + (int)0x1.p0, + -0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 82 + 0x1.p-53, + (int)0x1.p0, + -0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 83 + -0.0, + (int)0x1.p0, + -0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 84 + -0x1.80p-52, + (int)-0x1.p0, + -0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 85 + -0x1.p-52, + (int)-0x1.p0, + -0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 86 + -0.0, + (int)-0x1.p0, + -0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 87 + -0x1.p-53, + (int)-0x1.p0, + -0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 88 + -0.0, + (int)-0x1.p0, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 89 + 0x1.p-52, + (int)-0x1.p0, + -0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 90 + -0.0, + (int)-0x1.p0, + -0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 91 + 0x1.p-53, + (int)-0x1.p0, + -0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 92 + 0x1.80p-52, + (int)-0x1.p0, + -0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 93 + -0x1.80p-52, + (int)-0x1.p0, + 0x1.fffffffffffffp-1, + -0x1.0000000000001p0 + }, + { // Entry 94 + -0x1.p-53, + (int)-0x1.p0, + 0x1.fffffffffffffp-1, + -0x1.0p0 + }, + { // Entry 95 + 0.0, + (int)-0x1.p0, + 0x1.fffffffffffffp-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 96 + -0x1.p-52, + (int)-0x1.p0, + 0x1.0p0, + -0x1.0000000000001p0 + }, + { // Entry 97 + 0.0, + (int)-0x1.p0, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 98 + 0x1.p-53, + (int)-0x1.p0, + 0x1.0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 99 + 0.0, + (int)-0x1.p0, + 0x1.0000000000001p0, + -0x1.0000000000001p0 + }, + { // Entry 100 + 0x1.p-52, + (int)-0x1.p0, + 0x1.0000000000001p0, + -0x1.0p0 + }, + { // Entry 101 + 0x1.80p-52, + (int)-0x1.p0, + 0x1.0000000000001p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 102 + 0.0, + (int)0x1.p0, + 0x1.fffffffffffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 103 + -0x1.p-53, + (int)0x1.p0, + 0x1.fffffffffffffp-1, + 0x1.0p0 + }, + { // Entry 104 + -0x1.80p-52, + (int)0x1.p0, + 0x1.fffffffffffffp-1, + 0x1.0000000000001p0 + }, + { // Entry 105 + 0x1.p-53, + (int)0x1.p0, + 0x1.0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 106 + 0.0, + (int)0x1.p0, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 107 + -0x1.p-52, + (int)0x1.p0, + 0x1.0p0, + 0x1.0000000000001p0 + }, + { // Entry 108 + 0x1.80p-52, + (int)0x1.p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 109 + 0x1.p-52, + (int)0x1.p0, + 0x1.0000000000001p0, + 0x1.0p0 + }, + { // Entry 110 + 0.0, + (int)0x1.p0, + 0x1.0000000000001p0, + 0x1.0000000000001p0 + }, + { // Entry 111 + -0.0, + (int)-0x1.p0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 112 + -0.0, + (int)0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 113 + 0.0, + (int)0x1.p0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 114 + -0.0, + (int)0x1.p0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 115 + -0.0, + (int)0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 116 + 0.0, + (int)-0x1.p0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 117 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 118 + -0.0, + (int)0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 119 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 120 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 121 + -0.0, + (int)0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 122 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 123 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 124 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 125 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 126 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 127 + 0.0, + (int)0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 128 + -0.0, + (int)0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 129 + -0.0, + (int)0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 130 + 0.0, + (int)0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 131 + 0.0, + (int)0x1.p0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 132 + 0.0, + (int)-0x1.p0, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 133 + -0.0, + (int)-0x1.p0, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 134 + -0.0, + (int)0x1.p0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 135 + 0x1.ffffffffffffc0p-3, + (int)-0x1.p0, + -0x1.0000000000001p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 136 + -0x1.p-1, + (int)0.0, + -0x1.0000000000001p51, + 0x1.0p0 + }, + { // Entry 137 + -0.0, + (int)0.0, + -0x1.0000000000001p51, + 0x1.0000000000001p0 + }, + { // Entry 138 + -0x1.p-2, + (int)0.0, + -0x1.0p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 139 + -0.0, + (int)0.0, + -0x1.0p51, + 0x1.0p0 + }, + { // Entry 140 + 0x1.p-1, + (int)0.0, + -0x1.0p51, + 0x1.0000000000001p0 + }, + { // Entry 141 + -0.0, + (int)0.0, + -0x1.fffffffffffffp50, + 0x1.fffffffffffffp-1 + }, + { // Entry 142 + 0x1.p-2, + (int)0.0, + -0x1.fffffffffffffp50, + 0x1.0p0 + }, + { // Entry 143 + -0x1.00000000000040p-2, + (int)-0x1.fffffffcp30, + -0x1.fffffffffffffp50, + 0x1.0000000000001p0 + }, + { // Entry 144 + 0.0, + (int)0.0, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1 + }, + { // Entry 145 + -0x1.p-1, + (int)0.0, + 0x1.fffffffffffffp51, + 0x1.0p0 + }, + { // Entry 146 + -0x1.ffffffffffffc0p-2, + (int)0x1.fffffffcp30, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0 + }, + { // Entry 147 + -0x1.ffffffffffffe0p-2, + (int)0x1.p0, + 0x1.0p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 148 + 0.0, + (int)0.0, + 0x1.0p52, + 0x1.0p0 + }, + { // Entry 149 + 0x1.p-52, + (int)0x1.fffffffcp30, + 0x1.0p52, + 0x1.0000000000001p0 + }, + { // Entry 150 + -0x1.ffffffffffffc0p-2, + (int)0x1.p1, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 151 + 0.0, + (int)0x1.p0, + 0x1.0000000000001p52, + 0x1.0p0 + }, + { // Entry 152 + 0.0, + (int)0.0, + 0x1.0000000000001p52, + 0x1.0000000000001p0 + }, + { // Entry 153 + -0x1.80p-52, + (int)-0x1.80p1, + -0x1.0000000000001p53, + 0x1.fffffffffffffp-1 + }, + { // Entry 154 + -0.0, + (int)-0x1.p1, + -0x1.0000000000001p53, + 0x1.0p0 + }, + { // Entry 155 + -0.0, + (int)0.0, + -0x1.0000000000001p53, + 0x1.0000000000001p0 + }, + { // Entry 156 + -0x1.p-53, + (int)-0x1.p0, + -0x1.0p53, + 0x1.fffffffffffffp-1 + }, + { // Entry 157 + -0.0, + (int)0.0, + -0x1.0p53, + 0x1.0p0 + }, + { // Entry 158 + -0x1.p-51, + (int)-0x1.fffffff8p30, + -0x1.0p53, + 0x1.0000000000001p0 + }, + { // Entry 159 + -0.0, + (int)0.0, + -0x1.fffffffffffffp52, + 0x1.fffffffffffffp-1 + }, + { // Entry 160 + -0.0, + (int)-0x1.fffffffcp30, + -0x1.fffffffffffffp52, + 0x1.0p0 + }, + { // Entry 161 + -0x1.80p-51, + (int)-0x1.fffffff4p30, + -0x1.fffffffffffffp52, + 0x1.0000000000001p0 + }, + { // Entry 162 + 0.0, + (int)0.0, + 0x1.fffffffffffffp50, + 0x1.fffffffffffffp-1 + }, + { // Entry 163 + -0x1.p-2, + (int)0.0, + 0x1.fffffffffffffp50, + 0x1.0p0 + }, + { // Entry 164 + 0x1.00000000000040p-2, + (int)0x1.fffffffcp30, + 0x1.fffffffffffffp50, + 0x1.0000000000001p0 + }, + { // Entry 165 + 0x1.p-2, + (int)0.0, + 0x1.0p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 166 + 0.0, + (int)0.0, + 0x1.0p51, + 0x1.0p0 + }, + { // Entry 167 + -0x1.p-1, + (int)0.0, + 0x1.0p51, + 0x1.0000000000001p0 + }, + { // Entry 168 + -0x1.ffffffffffffc0p-3, + (int)0x1.p0, + 0x1.0000000000001p51, + 0x1.fffffffffffffp-1 + }, + { // Entry 169 + 0x1.p-1, + (int)0.0, + 0x1.0000000000001p51, + 0x1.0p0 + }, + { // Entry 170 + 0.0, + (int)0.0, + 0x1.0000000000001p51, + 0x1.0000000000001p0 + }, + { // Entry 171 + 0.0, + (int)0.0, + 0x1.fffffffffffffp51, + 0x1.fffffffffffffp-1 + }, + { // Entry 172 + -0x1.p-1, + (int)0.0, + 0x1.fffffffffffffp51, + 0x1.0p0 + }, + { // Entry 173 + -0x1.ffffffffffffc0p-2, + (int)0x1.fffffffcp30, + 0x1.fffffffffffffp51, + 0x1.0000000000001p0 + }, + { // Entry 174 + -0x1.ffffffffffffe0p-2, + (int)0x1.p0, + 0x1.0p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 175 + 0.0, + (int)0.0, + 0x1.0p52, + 0x1.0p0 + }, + { // Entry 176 + 0x1.p-52, + (int)0x1.fffffffcp30, + 0x1.0p52, + 0x1.0000000000001p0 + }, + { // Entry 177 + -0x1.ffffffffffffc0p-2, + (int)0x1.p1, + 0x1.0000000000001p52, + 0x1.fffffffffffffp-1 + }, + { // Entry 178 + 0.0, + (int)0x1.p0, + 0x1.0000000000001p52, + 0x1.0p0 + }, + { // Entry 179 + 0.0, + (int)0.0, + 0x1.0000000000001p52, + 0x1.0000000000001p0 + }, + { // Entry 180 + -0.0, + (int)0.0, + -0x1.0000000000001p53, + -0x1.0000000000001p0 + }, + { // Entry 181 + -0.0, + (int)0x1.p1, + -0x1.0000000000001p53, + -0x1.0p0 + }, + { // Entry 182 + -0x1.80p-52, + (int)0x1.80p1, + -0x1.0000000000001p53, + -0x1.fffffffffffffp-1 + }, + { // Entry 183 + -0x1.p-51, + (int)0x1.fffffff8p30, + -0x1.0p53, + -0x1.0000000000001p0 + }, + { // Entry 184 + -0.0, + (int)0.0, + -0x1.0p53, + -0x1.0p0 + }, + { // Entry 185 + -0x1.p-53, + (int)0x1.p0, + -0x1.0p53, + -0x1.fffffffffffffp-1 + }, + { // Entry 186 + -0x1.80p-51, + (int)0x1.fffffff4p30, + -0x1.fffffffffffffp52, + -0x1.0000000000001p0 + }, + { // Entry 187 + -0.0, + (int)0x1.fffffffcp30, + -0x1.fffffffffffffp52, + -0x1.0p0 + }, + { // Entry 188 + -0.0, + (int)0.0, + -0x1.fffffffffffffp52, + -0x1.fffffffffffffp-1 + }, + { // Entry 189 + 0x1.fffffffffffff0p1023, + (int)0.0, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 190 + -0x1.fffffffffffff0p1023, + (int)0.0, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 191 + 0x1.fffffffffffff0p1023, + (int)0.0, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 192 + -0x1.fffffffffffff0p1023, + (int)0.0, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 193 + 0x1.p-1022, + (int)0.0, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 194 + -0x1.p-1022, + (int)0.0, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 195 + 0x1.p-1022, + (int)0.0, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 196 + -0x1.p-1022, + (int)0.0, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 197 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 198 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 199 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 200 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 201 + 0.0, + (int)0.0, + 0.0, + HUGE_VAL + }, + { // Entry 202 + -0.0, + (int)0.0, + -0.0, + HUGE_VAL + }, + { // Entry 203 + 0.0, + (int)0.0, + 0.0, + -HUGE_VAL + }, + { // Entry 204 + -0.0, + (int)0.0, + -0.0, + -HUGE_VAL + }, + { // Entry 205 + 0.0, + (int)0x1.p0, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 206 + 0.0, + (int)-0x1.p0, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 207 + -0.0, + (int)-0x1.p0, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 208 + -0.0, + (int)0x1.p0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 209 + 0.0, + (int)0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 210 + 0.0, + (int)0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 211 + -0.0, + (int)0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1022 + }, + { // Entry 212 + -0.0, + (int)0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1022 + }, + { // Entry 213 + 0.0, + (int)0.0, + 0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 214 + 0.0, + (int)0.0, + 0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 215 + -0.0, + (int)0.0, + -0x1.fffffffffffffp1023, + 0x1.0p-1074 + }, + { // Entry 216 + -0.0, + (int)0.0, + -0x1.fffffffffffffp1023, + -0x1.0p-1074 + }, + { // Entry 217 + 0x1.p-1022, + (int)0.0, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 218 + -0x1.p-1022, + (int)0.0, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 219 + 0x1.p-1022, + (int)0.0, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 220 + -0x1.p-1022, + (int)0.0, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 221 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 222 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 223 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 224 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 225 + 0.0, + (int)0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 226 + -0.0, + (int)0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 227 + 0.0, + (int)0.0, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 228 + -0.0, + (int)0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 229 + 0.0, + (int)0x1.p0, + 0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 230 + 0.0, + (int)-0x1.p0, + 0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 231 + -0.0, + (int)-0x1.p0, + -0x1.0p-1022, + 0x1.0p-1022 + }, + { // Entry 232 + -0.0, + (int)0x1.p0, + -0x1.0p-1022, + -0x1.0p-1022 + }, + { // Entry 233 + 0.0, + (int)0.0, + 0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 234 + 0.0, + (int)0.0, + 0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 235 + -0.0, + (int)0.0, + -0x1.0p-1022, + 0x1.0p-1074 + }, + { // Entry 236 + -0.0, + (int)0.0, + -0x1.0p-1022, + -0x1.0p-1074 + }, + { // Entry 237 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 238 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + 0x1.0p-1022 + }, + { // Entry 239 + 0x1.p-1074, + (int)0.0, + 0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 240 + -0x1.p-1074, + (int)0.0, + -0x1.0p-1074, + -0x1.0p-1022 + }, + { // Entry 241 + 0.0, + (int)0.0, + 0.0, + 0x1.0p-1022 + }, + { // Entry 242 + -0.0, + (int)0.0, + -0.0, + 0x1.0p-1022 + }, + { // Entry 243 + 0.0, + (int)0.0, + 0.0, + -0x1.0p-1022 + }, + { // Entry 244 + -0.0, + (int)0.0, + -0.0, + -0x1.0p-1022 + }, + { // Entry 245 + 0.0, + (int)0x1.p0, + 0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 246 + -0.0, + (int)-0x1.p0, + -0x1.0p-1074, + 0x1.0p-1074 + }, + { // Entry 247 + 0.0, + (int)-0x1.p0, + 0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 248 + -0.0, + (int)0x1.p0, + -0x1.0p-1074, + -0x1.0p-1074 + }, + { // Entry 249 + 0.0, + (int)0.0, + 0.0, + 0x1.0p-1074 + }, + { // Entry 250 + -0.0, + (int)0.0, + -0.0, + 0x1.0p-1074 + }, + { // Entry 251 + 0.0, + (int)0.0, + 0.0, + -0x1.0p-1074 + }, + { // Entry 252 + -0.0, + (int)0.0, + -0.0, + -0x1.0p-1074 + }, + { // Entry 253 + -0x1.p0, + (int)0x1.p1, + 0x1.8p1, + 0x1.0p1 + }, + { // Entry 254 + 0x1.p0, + (int)-0x1.p1, + -0x1.8p1, + 0x1.0p1 + }, + { // Entry 255 + -0x1.p0, + (int)-0x1.p1, + 0x1.8p1, + -0x1.0p1 + }, + { // Entry 256 + 0x1.p0, + (int)0x1.p1, + -0x1.8p1, + -0x1.0p1 + }, + { // Entry 257 + 0x1.p0, + (int)0x1.p1, + 0x1.4p2, + 0x1.0p1 + }, + { // Entry 258 + -0x1.p0, + (int)-0x1.p1, + -0x1.4p2, + 0x1.0p1 + }, + { // Entry 259 + 0x1.p0, + (int)-0x1.p1, + 0x1.4p2, + -0x1.0p1 + }, + { // Entry 260 + -0x1.p0, + (int)0x1.p1, + -0x1.4p2, + -0x1.0p1 + } +}; diff --git a/tests/math_data/remquof_intel_data.h b/tests/math_data/remquof_intel_data.h new file mode 100644 index 000000000..2eebbae93 --- /dev/null +++ b/tests/math_data/remquof_intel_data.h @@ -0,0 +1,1578 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_int_2_t g_remquof_intel_data[] = { + { // Entry 0 + 0x1.72c2c0p18, + (int)-0x1.b37d2b60p28, + -0x1.285308p99, + 0x1.7a4110p19 + }, + { // Entry 1 + -0x1.96dfb0p13, + (int)0x1.212d5d58p30, + 0x1.0295fap117, + 0x1.0cede2p15 + }, + { // Entry 2 + 0x1.fd0030p20, + (int)-0x1.007ff8p22, + 0x1.ffffe6p127, + -0x1.000006p22 + }, + { // Entry 3 + 0x1.4782b0p2, + (int)0x1.4323c158p30, + 0x1.fffff8p127, + 0x1.dffffep4 + }, + { // Entry 4 + -0x1.p-11, + (int)0x1.ffffc0p30, + 0x1.fffffap127, + 0x1.fffffcp-1 + }, + { // Entry 5 + -0.0, + (int)0x1.p0, + -0x1.p-117, + -0x1.p-117 + }, + { // Entry 6 + -0.0, + (int)-0x1.p0, + -0x1.p-117, + 0x1.p-117 + }, + { // Entry 7 + 0.0, + (int)-0x1.p0, + 0x1.p-117, + -0x1.p-117 + }, + { // Entry 8 + 0.0, + (int)0x1.p0, + 0x1.p-117, + 0x1.p-117 + }, + { // Entry 9 + -0x1.p-117, + (int)0.0, + -0x1.p-117, + 0x1.p15 + }, + { // Entry 10 + -0x1.p-117, + (int)0.0, + -0x1.p-117, + 0x1.p16 + }, + { // Entry 11 + 0x1.p-117, + (int)0.0, + 0x1.p-117, + 0x1.p15 + }, + { // Entry 12 + 0x1.p-117, + (int)0.0, + 0x1.p-117, + 0x1.p16 + }, + { // Entry 13 + -0x1.p-117, + (int)0.0, + -0x1.p-117, + 0x1.p117 + }, + { // Entry 14 + -0x1.p-117, + (int)0.0, + -0x1.p-117, + 0x1.p118 + }, + { // Entry 15 + 0x1.p-117, + (int)0.0, + 0x1.p-117, + 0x1.p117 + }, + { // Entry 16 + 0x1.p-117, + (int)0.0, + 0x1.p-117, + 0x1.p118 + }, + { // Entry 17 + 0.0, + (int)0.0, + 0x1.p15, + -0x1.p-117 + }, + { // Entry 18 + 0.0, + (int)0.0, + 0x1.p15, + 0x1.p-117 + }, + { // Entry 19 + 0.0, + (int)0.0, + 0x1.p16, + -0x1.p-117 + }, + { // Entry 20 + 0.0, + (int)0.0, + 0x1.p16, + 0x1.p-117 + }, + { // Entry 21 + 0.0, + (int)0x1.p0, + 0x1.p15, + 0x1.p15 + }, + { // Entry 22 + 0x1.p15, + (int)0.0, + 0x1.p15, + 0x1.p16 + }, + { // Entry 23 + 0.0, + (int)0x1.p1, + 0x1.p16, + 0x1.p15 + }, + { // Entry 24 + 0.0, + (int)0x1.p0, + 0x1.p16, + 0x1.p16 + }, + { // Entry 25 + 0x1.p15, + (int)0.0, + 0x1.p15, + 0x1.p117 + }, + { // Entry 26 + 0x1.p15, + (int)0.0, + 0x1.p15, + 0x1.p118 + }, + { // Entry 27 + 0x1.p16, + (int)0.0, + 0x1.p16, + 0x1.p117 + }, + { // Entry 28 + 0x1.p16, + (int)0.0, + 0x1.p16, + 0x1.p118 + }, + { // Entry 29 + 0.0, + (int)0.0, + 0x1.p117, + -0x1.p-117 + }, + { // Entry 30 + 0.0, + (int)0.0, + 0x1.p117, + 0x1.p-117 + }, + { // Entry 31 + 0.0, + (int)0.0, + 0x1.p118, + -0x1.p-117 + }, + { // Entry 32 + 0.0, + (int)0.0, + 0x1.p118, + 0x1.p-117 + }, + { // Entry 33 + 0.0, + (int)0.0, + 0x1.p117, + 0x1.p15 + }, + { // Entry 34 + 0.0, + (int)0.0, + 0x1.p117, + 0x1.p16 + }, + { // Entry 35 + 0.0, + (int)0.0, + 0x1.p118, + 0x1.p15 + }, + { // Entry 36 + 0.0, + (int)0.0, + 0x1.p118, + 0x1.p16 + }, + { // Entry 37 + 0.0, + (int)0x1.p0, + 0x1.p117, + 0x1.p117 + }, + { // Entry 38 + 0x1.p117, + (int)0.0, + 0x1.p117, + 0x1.p118 + }, + { // Entry 39 + 0.0, + (int)0x1.p1, + 0x1.p118, + 0x1.p117 + }, + { // Entry 40 + 0.0, + (int)0x1.p0, + 0x1.p118, + 0x1.p118 + }, + { // Entry 41 + 0.0, + (int)0x1.40p3, + 0x1.90p6, + 0x1.40p3 + }, + { // Entry 42 + 0x1.p0, + (int)0x1.20p3, + 0x1.90p6, + 0x1.60p3 + }, + { // Entry 43 + 0x1.p2, + (int)0x1.p3, + 0x1.90p6, + 0x1.80p3 + }, + { // Entry 44 + 0x1.p0, + (int)0x1.40p3, + 0x1.94p6, + 0x1.40p3 + }, + { // Entry 45 + 0x1.p1, + (int)0x1.20p3, + 0x1.94p6, + 0x1.60p3 + }, + { // Entry 46 + 0x1.40p2, + (int)0x1.p3, + 0x1.94p6, + 0x1.80p3 + }, + { // Entry 47 + 0x1.p1, + (int)0x1.40p3, + 0x1.98p6, + 0x1.40p3 + }, + { // Entry 48 + 0x1.80p1, + (int)0x1.20p3, + 0x1.98p6, + 0x1.60p3 + }, + { // Entry 49 + 0x1.80p2, + (int)0x1.p3, + 0x1.98p6, + 0x1.80p3 + }, + { // Entry 50 + 0x1.80p1, + (int)0x1.40p3, + 0x1.9cp6, + 0x1.40p3 + }, + { // Entry 51 + 0x1.p2, + (int)0x1.20p3, + 0x1.9cp6, + 0x1.60p3 + }, + { // Entry 52 + -0x1.40p2, + (int)0x1.20p3, + 0x1.9cp6, + 0x1.80p3 + }, + { // Entry 53 + 0x1.p2, + (int)0x1.40p3, + 0x1.a0p6, + 0x1.40p3 + }, + { // Entry 54 + 0x1.40p2, + (int)0x1.20p3, + 0x1.a0p6, + 0x1.60p3 + }, + { // Entry 55 + -0x1.p2, + (int)0x1.20p3, + 0x1.a0p6, + 0x1.80p3 + }, + { // Entry 56 + 0x1.40p2, + (int)0x1.40p3, + 0x1.a4p6, + 0x1.40p3 + }, + { // Entry 57 + -0x1.40p2, + (int)0x1.40p3, + 0x1.a4p6, + 0x1.60p3 + }, + { // Entry 58 + -0x1.80p1, + (int)0x1.20p3, + 0x1.a4p6, + 0x1.80p3 + }, + { // Entry 59 + -0x1.p2, + (int)0x1.60p3, + 0x1.a8p6, + 0x1.40p3 + }, + { // Entry 60 + -0x1.p2, + (int)0x1.40p3, + 0x1.a8p6, + 0x1.60p3 + }, + { // Entry 61 + -0x1.p1, + (int)0x1.20p3, + 0x1.a8p6, + 0x1.80p3 + }, + { // Entry 62 + -0x1.80p1, + (int)0x1.60p3, + 0x1.acp6, + 0x1.40p3 + }, + { // Entry 63 + -0x1.80p1, + (int)0x1.40p3, + 0x1.acp6, + 0x1.60p3 + }, + { // Entry 64 + -0x1.p0, + (int)0x1.20p3, + 0x1.acp6, + 0x1.80p3 + }, + { // Entry 65 + -0x1.p1, + (int)0x1.60p3, + 0x1.b0p6, + 0x1.40p3 + }, + { // Entry 66 + -0x1.p1, + (int)0x1.40p3, + 0x1.b0p6, + 0x1.60p3 + }, + { // Entry 67 + 0.0, + (int)0x1.20p3, + 0x1.b0p6, + 0x1.80p3 + }, + { // Entry 68 + -0x1.p0, + (int)0x1.60p3, + 0x1.b4p6, + 0x1.40p3 + }, + { // Entry 69 + -0x1.p0, + (int)0x1.40p3, + 0x1.b4p6, + 0x1.60p3 + }, + { // Entry 70 + 0x1.p0, + (int)0x1.20p3, + 0x1.b4p6, + 0x1.80p3 + }, + { // Entry 71 + 0.0, + (int)0x1.60p3, + 0x1.b8p6, + 0x1.40p3 + }, + { // Entry 72 + 0.0, + (int)0x1.40p3, + 0x1.b8p6, + 0x1.60p3 + }, + { // Entry 73 + 0x1.p1, + (int)0x1.20p3, + 0x1.b8p6, + 0x1.80p3 + }, + { // Entry 74 + -0.0, + (int)0x1.p0, + -0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 75 + -0x1.p-23, + (int)0x1.p0, + -0x1.000002p0, + -0x1.p0 + }, + { // Entry 76 + -0x1.80p-23, + (int)0x1.p0, + -0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 77 + 0x1.p-23, + (int)0x1.p0, + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 78 + -0.0, + (int)0x1.p0, + -0x1.p0, + -0x1.p0 + }, + { // Entry 79 + -0x1.p-24, + (int)0x1.p0, + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 80 + 0x1.80p-23, + (int)0x1.p0, + -0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 81 + 0x1.p-24, + (int)0x1.p0, + -0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 82 + -0.0, + (int)0x1.p0, + -0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 83 + -0x1.80p-23, + (int)-0x1.p0, + -0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 84 + -0x1.p-23, + (int)-0x1.p0, + -0x1.000002p0, + 0x1.p0 + }, + { // Entry 85 + -0.0, + (int)-0x1.p0, + -0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 86 + -0x1.p-24, + (int)-0x1.p0, + -0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 87 + -0.0, + (int)-0x1.p0, + -0x1.p0, + 0x1.p0 + }, + { // Entry 88 + 0x1.p-23, + (int)-0x1.p0, + -0x1.p0, + 0x1.000002p0 + }, + { // Entry 89 + -0.0, + (int)-0x1.p0, + -0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 90 + 0x1.p-24, + (int)-0x1.p0, + -0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 91 + 0x1.80p-23, + (int)-0x1.p0, + -0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 92 + -0x1.80p-23, + (int)-0x1.p0, + 0x1.fffffep-1, + -0x1.000002p0 + }, + { // Entry 93 + -0x1.p-24, + (int)-0x1.p0, + 0x1.fffffep-1, + -0x1.p0 + }, + { // Entry 94 + 0.0, + (int)-0x1.p0, + 0x1.fffffep-1, + -0x1.fffffep-1 + }, + { // Entry 95 + -0x1.p-23, + (int)-0x1.p0, + 0x1.p0, + -0x1.000002p0 + }, + { // Entry 96 + 0.0, + (int)-0x1.p0, + 0x1.p0, + -0x1.p0 + }, + { // Entry 97 + 0x1.p-24, + (int)-0x1.p0, + 0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 98 + 0.0, + (int)-0x1.p0, + 0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 99 + 0x1.p-23, + (int)-0x1.p0, + 0x1.000002p0, + -0x1.p0 + }, + { // Entry 100 + 0x1.80p-23, + (int)-0x1.p0, + 0x1.000002p0, + -0x1.fffffep-1 + }, + { // Entry 101 + 0.0, + (int)0x1.p0, + 0x1.fffffep-1, + 0x1.fffffep-1 + }, + { // Entry 102 + -0x1.p-24, + (int)0x1.p0, + 0x1.fffffep-1, + 0x1.p0 + }, + { // Entry 103 + -0x1.80p-23, + (int)0x1.p0, + 0x1.fffffep-1, + 0x1.000002p0 + }, + { // Entry 104 + 0x1.p-24, + (int)0x1.p0, + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 105 + 0.0, + (int)0x1.p0, + 0x1.p0, + 0x1.p0 + }, + { // Entry 106 + -0x1.p-23, + (int)0x1.p0, + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 107 + 0x1.80p-23, + (int)0x1.p0, + 0x1.000002p0, + 0x1.fffffep-1 + }, + { // Entry 108 + 0x1.p-23, + (int)0x1.p0, + 0x1.000002p0, + 0x1.p0 + }, + { // Entry 109 + 0.0, + (int)0x1.p0, + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 110 + -0.0, + (int)-0x1.p0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 111 + 0.0, + (int)0.0, + 0.0, + 0x1.p-149 + }, + { // Entry 112 + 0.0, + (int)0x1.p0, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 113 + -0.0, + (int)0x1.p0, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 114 + 0.0, + (int)0.0, + 0.0, + -0x1.p-149 + }, + { // Entry 115 + 0.0, + (int)-0x1.p0, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 116 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 117 + 0.0, + (int)0.0, + 0.0, + 0x1.fffffep127 + }, + { // Entry 118 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 119 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 120 + 0.0, + (int)0.0, + 0.0, + -0x1.fffffep127 + }, + { // Entry 121 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 122 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 123 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 124 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 125 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 126 + 0.0, + (int)0.0, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 127 + -0.0, + (int)0.0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 128 + -0.0, + (int)0.0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 129 + 0.0, + (int)0.0, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 130 + 0.0, + (int)0x1.p0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 131 + 0.0, + (int)-0x1.p0, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 132 + -0.0, + (int)-0x1.p0, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 133 + -0.0, + (int)0x1.p0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 134 + 0x1.fffff8p-3, + (int)-0x1.000004p22, + -0x1.000002p22, + 0x1.fffffep-1 + }, + { // Entry 135 + -0x1.p-1, + (int)-0x1.p22, + -0x1.000002p22, + 0x1.p0 + }, + { // Entry 136 + -0.0, + (int)-0x1.p22, + -0x1.000002p22, + 0x1.000002p0 + }, + { // Entry 137 + -0x1.p-2, + (int)-0x1.p22, + -0x1.p22, + 0x1.fffffep-1 + }, + { // Entry 138 + -0.0, + (int)-0x1.p22, + -0x1.p22, + 0x1.p0 + }, + { // Entry 139 + 0x1.p-1, + (int)-0x1.p22, + -0x1.p22, + 0x1.000002p0 + }, + { // Entry 140 + -0.0, + (int)-0x1.p22, + -0x1.fffffep21, + 0x1.fffffep-1 + }, + { // Entry 141 + 0x1.p-2, + (int)-0x1.p22, + -0x1.fffffep21, + 0x1.p0 + }, + { // Entry 142 + -0x1.000008p-2, + (int)-0x1.fffff8p21, + -0x1.fffffep21, + 0x1.000002p0 + }, + { // Entry 143 + 0.0, + (int)0x1.p23, + 0x1.fffffep22, + 0x1.fffffep-1 + }, + { // Entry 144 + -0x1.p-1, + (int)0x1.p23, + 0x1.fffffep22, + 0x1.p0 + }, + { // Entry 145 + -0x1.fffff8p-2, + (int)0x1.fffffcp22, + 0x1.fffffep22, + 0x1.000002p0 + }, + { // Entry 146 + -0x1.fffffcp-2, + (int)0x1.000002p23, + 0x1.p23, + 0x1.fffffep-1 + }, + { // Entry 147 + 0.0, + (int)0x1.p23, + 0x1.p23, + 0x1.p0 + }, + { // Entry 148 + 0x1.p-23, + (int)0x1.fffffcp22, + 0x1.p23, + 0x1.000002p0 + }, + { // Entry 149 + -0x1.fffff8p-2, + (int)0x1.000004p23, + 0x1.000002p23, + 0x1.fffffep-1 + }, + { // Entry 150 + 0.0, + (int)0x1.000002p23, + 0x1.000002p23, + 0x1.p0 + }, + { // Entry 151 + 0.0, + (int)0x1.p23, + 0x1.000002p23, + 0x1.000002p0 + }, + { // Entry 152 + -0x1.80p-23, + (int)-0x1.000003p24, + -0x1.000002p24, + 0x1.fffffep-1 + }, + { // Entry 153 + -0.0, + (int)-0x1.000002p24, + -0x1.000002p24, + 0x1.p0 + }, + { // Entry 154 + -0.0, + (int)-0x1.p24, + -0x1.000002p24, + 0x1.000002p0 + }, + { // Entry 155 + -0x1.p-24, + (int)-0x1.000001p24, + -0x1.p24, + 0x1.fffffep-1 + }, + { // Entry 156 + -0.0, + (int)-0x1.p24, + -0x1.p24, + 0x1.p0 + }, + { // Entry 157 + -0x1.p-22, + (int)-0x1.fffffcp23, + -0x1.p24, + 0x1.000002p0 + }, + { // Entry 158 + -0.0, + (int)-0x1.p24, + -0x1.fffffep23, + 0x1.fffffep-1 + }, + { // Entry 159 + -0.0, + (int)-0x1.fffffep23, + -0x1.fffffep23, + 0x1.p0 + }, + { // Entry 160 + -0x1.80p-22, + (int)-0x1.fffffap23, + -0x1.fffffep23, + 0x1.000002p0 + }, + { // Entry 161 + 0.0, + (int)0x1.p22, + 0x1.fffffep21, + 0x1.fffffep-1 + }, + { // Entry 162 + -0x1.p-2, + (int)0x1.p22, + 0x1.fffffep21, + 0x1.p0 + }, + { // Entry 163 + 0x1.000008p-2, + (int)0x1.fffff8p21, + 0x1.fffffep21, + 0x1.000002p0 + }, + { // Entry 164 + 0x1.p-2, + (int)0x1.p22, + 0x1.p22, + 0x1.fffffep-1 + }, + { // Entry 165 + 0.0, + (int)0x1.p22, + 0x1.p22, + 0x1.p0 + }, + { // Entry 166 + -0x1.p-1, + (int)0x1.p22, + 0x1.p22, + 0x1.000002p0 + }, + { // Entry 167 + -0x1.fffff8p-3, + (int)0x1.000004p22, + 0x1.000002p22, + 0x1.fffffep-1 + }, + { // Entry 168 + 0x1.p-1, + (int)0x1.p22, + 0x1.000002p22, + 0x1.p0 + }, + { // Entry 169 + 0.0, + (int)0x1.p22, + 0x1.000002p22, + 0x1.000002p0 + }, + { // Entry 170 + 0.0, + (int)0x1.p23, + 0x1.fffffep22, + 0x1.fffffep-1 + }, + { // Entry 171 + -0x1.p-1, + (int)0x1.p23, + 0x1.fffffep22, + 0x1.p0 + }, + { // Entry 172 + -0x1.fffff8p-2, + (int)0x1.fffffcp22, + 0x1.fffffep22, + 0x1.000002p0 + }, + { // Entry 173 + -0x1.fffffcp-2, + (int)0x1.000002p23, + 0x1.p23, + 0x1.fffffep-1 + }, + { // Entry 174 + 0.0, + (int)0x1.p23, + 0x1.p23, + 0x1.p0 + }, + { // Entry 175 + 0x1.p-23, + (int)0x1.fffffcp22, + 0x1.p23, + 0x1.000002p0 + }, + { // Entry 176 + -0x1.fffff8p-2, + (int)0x1.000004p23, + 0x1.000002p23, + 0x1.fffffep-1 + }, + { // Entry 177 + 0.0, + (int)0x1.000002p23, + 0x1.000002p23, + 0x1.p0 + }, + { // Entry 178 + 0.0, + (int)0x1.p23, + 0x1.000002p23, + 0x1.000002p0 + }, + { // Entry 179 + -0.0, + (int)0x1.p24, + -0x1.000002p24, + -0x1.000002p0 + }, + { // Entry 180 + -0.0, + (int)0x1.000002p24, + -0x1.000002p24, + -0x1.p0 + }, + { // Entry 181 + -0x1.80p-23, + (int)0x1.000003p24, + -0x1.000002p24, + -0x1.fffffep-1 + }, + { // Entry 182 + -0x1.p-22, + (int)0x1.fffffcp23, + -0x1.p24, + -0x1.000002p0 + }, + { // Entry 183 + -0.0, + (int)0x1.p24, + -0x1.p24, + -0x1.p0 + }, + { // Entry 184 + -0x1.p-24, + (int)0x1.000001p24, + -0x1.p24, + -0x1.fffffep-1 + }, + { // Entry 185 + -0x1.80p-22, + (int)0x1.fffffap23, + -0x1.fffffep23, + -0x1.000002p0 + }, + { // Entry 186 + -0.0, + (int)0x1.fffffep23, + -0x1.fffffep23, + -0x1.p0 + }, + { // Entry 187 + -0.0, + (int)0x1.p24, + -0x1.fffffep23, + -0x1.fffffep-1 + }, + { // Entry 188 + 0x1.fffffep127, + (int)0.0, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 189 + -0x1.fffffep127, + (int)0.0, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 190 + 0x1.fffffep127, + (int)0.0, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 191 + -0x1.fffffep127, + (int)0.0, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 192 + 0x1.p-126, + (int)0.0, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 193 + -0x1.p-126, + (int)0.0, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 194 + 0x1.p-126, + (int)0.0, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 195 + -0x1.p-126, + (int)0.0, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 196 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 197 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 198 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 199 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 200 + 0.0, + (int)0.0, + 0.0f, + HUGE_VALF + }, + { // Entry 201 + -0.0, + (int)0.0, + -0.0f, + HUGE_VALF + }, + { // Entry 202 + 0.0, + (int)0.0, + 0.0f, + -HUGE_VALF + }, + { // Entry 203 + -0.0, + (int)0.0, + -0.0f, + -HUGE_VALF + }, + { // Entry 204 + 0.0, + (int)0x1.p0, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 205 + 0.0, + (int)-0x1.p0, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 206 + -0.0, + (int)-0x1.p0, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 207 + -0.0, + (int)0x1.p0, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 208 + 0.0, + (int)0.0, + 0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 209 + 0.0, + (int)0.0, + 0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 210 + -0.0, + (int)0.0, + -0x1.fffffep127, + 0x1.p-126 + }, + { // Entry 211 + -0.0, + (int)0.0, + -0x1.fffffep127, + -0x1.p-126 + }, + { // Entry 212 + 0.0, + (int)0.0, + 0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 213 + 0.0, + (int)0.0, + 0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 214 + -0.0, + (int)0.0, + -0x1.fffffep127, + 0x1.p-149 + }, + { // Entry 215 + -0.0, + (int)0.0, + -0x1.fffffep127, + -0x1.p-149 + }, + { // Entry 216 + 0x1.p-126, + (int)0.0, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 217 + -0x1.p-126, + (int)0.0, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 218 + 0x1.p-126, + (int)0.0, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 219 + -0x1.p-126, + (int)0.0, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 220 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 221 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 222 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 223 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 224 + 0.0, + (int)0.0, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 225 + -0.0, + (int)0.0, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 226 + 0.0, + (int)0.0, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 227 + -0.0, + (int)0.0, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 228 + 0.0, + (int)0x1.p0, + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 229 + 0.0, + (int)-0x1.p0, + 0x1.p-126, + -0x1.p-126 + }, + { // Entry 230 + -0.0, + (int)-0x1.p0, + -0x1.p-126, + 0x1.p-126 + }, + { // Entry 231 + -0.0, + (int)0x1.p0, + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 232 + 0.0, + (int)0x1.p23, + 0x1.p-126, + 0x1.p-149 + }, + { // Entry 233 + 0.0, + (int)-0x1.p23, + 0x1.p-126, + -0x1.p-149 + }, + { // Entry 234 + -0.0, + (int)-0x1.p23, + -0x1.p-126, + 0x1.p-149 + }, + { // Entry 235 + -0.0, + (int)0x1.p23, + -0x1.p-126, + -0x1.p-149 + }, + { // Entry 236 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + 0x1.p-126 + }, + { // Entry 237 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + 0x1.p-126 + }, + { // Entry 238 + 0x1.p-149, + (int)0.0, + 0x1.p-149, + -0x1.p-126 + }, + { // Entry 239 + -0x1.p-149, + (int)0.0, + -0x1.p-149, + -0x1.p-126 + }, + { // Entry 240 + 0.0, + (int)0.0, + 0.0f, + 0x1.p-126 + }, + { // Entry 241 + -0.0, + (int)0.0, + -0.0f, + 0x1.p-126 + }, + { // Entry 242 + 0.0, + (int)0.0, + 0.0f, + -0x1.p-126 + }, + { // Entry 243 + -0.0, + (int)0.0, + -0.0f, + -0x1.p-126 + }, + { // Entry 244 + 0.0, + (int)0x1.p0, + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 245 + -0.0, + (int)-0x1.p0, + -0x1.p-149, + 0x1.p-149 + }, + { // Entry 246 + 0.0, + (int)-0x1.p0, + 0x1.p-149, + -0x1.p-149 + }, + { // Entry 247 + -0.0, + (int)0x1.p0, + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 248 + 0.0, + (int)0.0, + 0.0f, + 0x1.p-149 + }, + { // Entry 249 + -0.0, + (int)0.0, + -0.0f, + 0x1.p-149 + }, + { // Entry 250 + 0.0, + (int)0.0, + 0.0f, + -0x1.p-149 + }, + { // Entry 251 + -0.0, + (int)0.0, + -0.0f, + -0x1.p-149 + }, + { // Entry 252 + -0x1.p0, + (int)0x1.p1, + 0x1.80p1, + 0x1.p1 + }, + { // Entry 253 + 0x1.p0, + (int)-0x1.p1, + -0x1.80p1, + 0x1.p1 + }, + { // Entry 254 + -0x1.p0, + (int)-0x1.p1, + 0x1.80p1, + -0x1.p1 + }, + { // Entry 255 + 0x1.p0, + (int)0x1.p1, + -0x1.80p1, + -0x1.p1 + }, + { // Entry 256 + 0x1.p0, + (int)0x1.p1, + 0x1.40p2, + 0x1.p1 + }, + { // Entry 257 + -0x1.p0, + (int)-0x1.p1, + -0x1.40p2, + 0x1.p1 + }, + { // Entry 258 + 0x1.p0, + (int)-0x1.p1, + 0x1.40p2, + -0x1.p1 + }, + { // Entry 259 + -0x1.p0, + (int)0x1.p1, + -0x1.40p2, + -0x1.p1 + } +}; diff --git a/tests/math_data/rint_intel_data.h b/tests/math_data/rint_intel_data.h new file mode 100644 index 000000000..10abff343 --- /dev/null +++ b/tests/math_data/rint_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_rint_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.0p-1074 + }, + { // Entry 1 + -0.0, + -0.0 + }, + { // Entry 2 + 0.0, + 0x1.0p-1074 + }, + { // Entry 3 + 0.0, + 0x1.fffffffffffffp-2 + }, + { // Entry 4 + 0.0, + 0x1.0p-1 + }, + { // Entry 5 + 0x1.p0, + 0x1.0000000000001p-1 + }, + { // Entry 6 + 0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 8 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 9 + 0x1.p0, + 0x1.7ffffffffffffp0 + }, + { // Entry 10 + 0x1.p1, + 0x1.8p0 + }, + { // Entry 11 + 0x1.p1, + 0x1.8000000000001p0 + }, + { // Entry 12 + 0x1.p1, + 0x1.fffffffffffffp0 + }, + { // Entry 13 + 0x1.p1, + 0x1.0p1 + }, + { // Entry 14 + 0x1.p1, + 0x1.0000000000001p1 + }, + { // Entry 15 + 0x1.p1, + 0x1.3ffffffffffffp1 + }, + { // Entry 16 + 0x1.p1, + 0x1.4p1 + }, + { // Entry 17 + 0x1.80p1, + 0x1.4000000000001p1 + }, + { // Entry 18 + 0x1.90p6, + 0x1.8ffffffffffffp6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.9p6 + }, + { // Entry 20 + 0x1.90p6, + 0x1.9000000000001p6 + }, + { // Entry 21 + 0x1.90p6, + 0x1.91fffffffffffp6 + }, + { // Entry 22 + 0x1.90p6, + 0x1.920p6 + }, + { // Entry 23 + 0x1.94p6, + 0x1.9200000000001p6 + }, + { // Entry 24 + 0x1.f4p9, + 0x1.f3fffffffffffp9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f40p9 + }, + { // Entry 26 + 0x1.f4p9, + 0x1.f400000000001p9 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.f43ffffffffffp9 + }, + { // Entry 28 + 0x1.f4p9, + 0x1.f44p9 + }, + { // Entry 29 + 0x1.f480p9, + 0x1.f440000000001p9 + }, + { // Entry 30 + 0x1.p50, + 0x1.fffffffffffffp49 + }, + { // Entry 31 + 0x1.p50, + 0x1.0p50 + }, + { // Entry 32 + 0x1.p50, + 0x1.0000000000001p50 + }, + { // Entry 33 + 0x1.p51, + 0x1.fffffffffffffp50 + }, + { // Entry 34 + 0x1.p51, + 0x1.0p51 + }, + { // Entry 35 + 0x1.p51, + 0x1.0000000000001p51 + }, + { // Entry 36 + 0x1.p52, + 0x1.fffffffffffffp51 + }, + { // Entry 37 + 0x1.p52, + 0x1.0p52 + }, + { // Entry 38 + 0x1.00000000000010p52, + 0x1.0000000000001p52 + }, + { // Entry 39 + 0x1.fffffffffffff0p52, + 0x1.fffffffffffffp52 + }, + { // Entry 40 + 0x1.p53, + 0x1.0p53 + }, + { // Entry 41 + 0x1.00000000000010p53, + 0x1.0000000000001p53 + }, + { // Entry 42 + 0x1.fffffffffffff0p53, + 0x1.fffffffffffffp53 + }, + { // Entry 43 + 0x1.p54, + 0x1.0p54 + }, + { // Entry 44 + 0x1.00000000000010p54, + 0x1.0000000000001p54 + }, + { // Entry 45 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 46 + -0x1.p0, + -0x1.0000000000001p-1 + }, + { // Entry 47 + -0.0, + -0x1.0p-1 + }, + { // Entry 48 + -0.0, + -0x1.fffffffffffffp-2 + }, + { // Entry 49 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 51 + -0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 52 + -0x1.p1, + -0x1.8000000000001p0 + }, + { // Entry 53 + -0x1.p1, + -0x1.8p0 + }, + { // Entry 54 + -0x1.p0, + -0x1.7ffffffffffffp0 + }, + { // Entry 55 + -0x1.p1, + -0x1.0000000000001p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.0p1 + }, + { // Entry 57 + -0x1.p1, + -0x1.fffffffffffffp0 + }, + { // Entry 58 + -0x1.80p1, + -0x1.4000000000001p1 + }, + { // Entry 59 + -0x1.p1, + -0x1.4p1 + }, + { // Entry 60 + -0x1.p1, + -0x1.3ffffffffffffp1 + }, + { // Entry 61 + -0x1.90p6, + -0x1.9000000000001p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.9p6 + }, + { // Entry 63 + -0x1.90p6, + -0x1.8ffffffffffffp6 + }, + { // Entry 64 + -0x1.94p6, + -0x1.9200000000001p6 + }, + { // Entry 65 + -0x1.90p6, + -0x1.920p6 + }, + { // Entry 66 + -0x1.90p6, + -0x1.91fffffffffffp6 + }, + { // Entry 67 + -0x1.f4p9, + -0x1.f400000000001p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f40p9 + }, + { // Entry 69 + -0x1.f4p9, + -0x1.f3fffffffffffp9 + }, + { // Entry 70 + -0x1.f480p9, + -0x1.f440000000001p9 + }, + { // Entry 71 + -0x1.f4p9, + -0x1.f44p9 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f43ffffffffffp9 + }, + { // Entry 73 + -0x1.p50, + -0x1.0000000000001p50 + }, + { // Entry 74 + -0x1.p50, + -0x1.0p50 + }, + { // Entry 75 + -0x1.p50, + -0x1.fffffffffffffp49 + }, + { // Entry 76 + -0x1.p51, + -0x1.0000000000001p51 + }, + { // Entry 77 + -0x1.p51, + -0x1.0p51 + }, + { // Entry 78 + -0x1.p51, + -0x1.fffffffffffffp50 + }, + { // Entry 79 + -0x1.00000000000010p52, + -0x1.0000000000001p52 + }, + { // Entry 80 + -0x1.p52, + -0x1.0p52 + }, + { // Entry 81 + -0x1.p52, + -0x1.fffffffffffffp51 + }, + { // Entry 82 + -0x1.00000000000010p53, + -0x1.0000000000001p53 + }, + { // Entry 83 + -0x1.p53, + -0x1.0p53 + }, + { // Entry 84 + -0x1.fffffffffffff0p52, + -0x1.fffffffffffffp52 + }, + { // Entry 85 + -0x1.00000000000010p54, + -0x1.0000000000001p54 + }, + { // Entry 86 + -0x1.p54, + -0x1.0p54 + }, + { // Entry 87 + -0x1.fffffffffffff0p53, + -0x1.fffffffffffffp53 + }, + { // Entry 88 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 89 + 0x1.p30, + 0x1.fffffffffffffp29 + }, + { // Entry 90 + 0x1.p30, + 0x1.0p30 + }, + { // Entry 91 + 0x1.p30, + 0x1.0000000000001p30 + }, + { // Entry 92 + 0x1.fffffff8p30, + 0x1.fffffff7ffffep30 + }, + { // Entry 93 + 0x1.fffffff8p30, + 0x1.fffffff7fffffp30 + }, + { // Entry 94 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 95 + 0x1.fffffff8p30, + 0x1.fffffff800001p30 + }, + { // Entry 96 + 0x1.fffffff8p30, + 0x1.fffffff800002p30 + }, + { // Entry 97 + 0x1.fffffff8p30, + 0x1.fffffff9ffffep30 + }, + { // Entry 98 + 0x1.fffffff8p30, + 0x1.fffffff9fffffp30 + }, + { // Entry 99 + 0x1.fffffff8p30, + 0x1.fffffffa0p30 + }, + { // Entry 100 + 0x1.fffffffcp30, + 0x1.fffffffa00001p30 + }, + { // Entry 101 + 0x1.fffffffcp30, + 0x1.fffffffa00002p30 + }, + { // Entry 102 + 0x1.fffffffcp30, + 0x1.fffffffbffffep30 + }, + { // Entry 103 + 0x1.fffffffcp30, + 0x1.fffffffbfffffp30 + }, + { // Entry 104 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 105 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 106 + 0x1.fffffffcp30, + 0x1.fffffffc00002p30 + }, + { // Entry 107 + 0x1.fffffffcp30, + 0x1.fffffffdffffep30 + }, + { // Entry 108 + 0x1.fffffffcp30, + 0x1.fffffffdfffffp30 + }, + { // Entry 109 + 0x1.p31, + 0x1.fffffffe0p30 + }, + { // Entry 110 + 0x1.p31, + 0x1.fffffffe00001p30 + }, + { // Entry 111 + 0x1.p31, + 0x1.fffffffe00002p30 + }, + { // Entry 112 + 0x1.p31, + 0x1.ffffffffffffep30 + }, + { // Entry 113 + 0x1.p31, + 0x1.fffffffffffffp30 + }, + { // Entry 114 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 115 + 0x1.p31, + 0x1.0000000000001p31 + }, + { // Entry 116 + 0x1.p31, + 0x1.0000000000002p31 + }, + { // Entry 117 + 0x1.p31, + 0x1.00000000ffffep31 + }, + { // Entry 118 + 0x1.p31, + 0x1.00000000fffffp31 + }, + { // Entry 119 + 0x1.p31, + 0x1.000000010p31 + }, + { // Entry 120 + 0x1.00000002p31, + 0x1.0000000100001p31 + }, + { // Entry 121 + 0x1.00000002p31, + 0x1.0000000100002p31 + }, + { // Entry 122 + 0x1.ffffffe0p30, + 0x1.ffffffep30 + }, + { // Entry 123 + 0x1.ffffffe4p30, + 0x1.ffffffe40p30 + }, + { // Entry 124 + 0x1.ffffffe8p30, + 0x1.ffffffe80p30 + }, + { // Entry 125 + 0x1.ffffffecp30, + 0x1.ffffffec0p30 + }, + { // Entry 126 + 0x1.fffffff0p30, + 0x1.fffffffp30 + }, + { // Entry 127 + 0x1.fffffff4p30, + 0x1.fffffff40p30 + }, + { // Entry 128 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 129 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 130 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 131 + 0x1.00000002p31, + 0x1.000000020p31 + }, + { // Entry 132 + -0x1.p30, + -0x1.0000000000001p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.0p30 + }, + { // Entry 134 + -0x1.p30, + -0x1.fffffffffffffp29 + }, + { // Entry 135 + -0x1.fffffff8p30, + -0x1.fffffff800002p30 + }, + { // Entry 136 + -0x1.fffffff8p30, + -0x1.fffffff800001p30 + }, + { // Entry 137 + -0x1.fffffff8p30, + -0x1.fffffff80p30 + }, + { // Entry 138 + -0x1.fffffff8p30, + -0x1.fffffff7fffffp30 + }, + { // Entry 139 + -0x1.fffffff8p30, + -0x1.fffffff7ffffep30 + }, + { // Entry 140 + -0x1.fffffffcp30, + -0x1.fffffffa00002p30 + }, + { // Entry 141 + -0x1.fffffffcp30, + -0x1.fffffffa00001p30 + }, + { // Entry 142 + -0x1.fffffff8p30, + -0x1.fffffffa0p30 + }, + { // Entry 143 + -0x1.fffffff8p30, + -0x1.fffffff9fffffp30 + }, + { // Entry 144 + -0x1.fffffff8p30, + -0x1.fffffff9ffffep30 + }, + { // Entry 145 + -0x1.fffffffcp30, + -0x1.fffffffc00002p30 + }, + { // Entry 146 + -0x1.fffffffcp30, + -0x1.fffffffc00001p30 + }, + { // Entry 147 + -0x1.fffffffcp30, + -0x1.fffffffc0p30 + }, + { // Entry 148 + -0x1.fffffffcp30, + -0x1.fffffffbfffffp30 + }, + { // Entry 149 + -0x1.fffffffcp30, + -0x1.fffffffbffffep30 + }, + { // Entry 150 + -0x1.p31, + -0x1.fffffffe00002p30 + }, + { // Entry 151 + -0x1.p31, + -0x1.fffffffe00001p30 + }, + { // Entry 152 + -0x1.p31, + -0x1.fffffffe0p30 + }, + { // Entry 153 + -0x1.fffffffcp30, + -0x1.fffffffdfffffp30 + }, + { // Entry 154 + -0x1.fffffffcp30, + -0x1.fffffffdffffep30 + }, + { // Entry 155 + -0x1.p31, + -0x1.0000000000002p31 + }, + { // Entry 156 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 158 + -0x1.p31, + -0x1.fffffffffffffp30 + }, + { // Entry 159 + -0x1.p31, + -0x1.ffffffffffffep30 + }, + { // Entry 160 + -0x1.00000002p31, + -0x1.0000000100002p31 + }, + { // Entry 161 + -0x1.00000002p31, + -0x1.0000000100001p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.000000010p31 + }, + { // Entry 163 + -0x1.p31, + -0x1.00000000fffffp31 + }, + { // Entry 164 + -0x1.p31, + -0x1.00000000ffffep31 + }, + { // Entry 165 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 166 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 167 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 168 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 169 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 170 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 171 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 172 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 173 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 174 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 175 + 0x1.ffffffffffffe0p61, + 0x1.ffffffffffffep61 + }, + { // Entry 176 + 0x1.fffffffffffff0p61, + 0x1.fffffffffffffp61 + }, + { // Entry 177 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 178 + 0x1.00000000000010p62, + 0x1.0000000000001p62 + }, + { // Entry 179 + 0x1.00000000000020p62, + 0x1.0000000000002p62 + }, + { // Entry 180 + 0x1.ffffffffffffe0p62, + 0x1.ffffffffffffep62 + }, + { // Entry 181 + 0x1.fffffffffffff0p62, + 0x1.fffffffffffffp62 + }, + { // Entry 182 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 183 + 0x1.00000000000010p63, + 0x1.0000000000001p63 + }, + { // Entry 184 + 0x1.00000000000020p63, + 0x1.0000000000002p63 + }, + { // Entry 185 + 0x1.ffffffffffffe0p63, + 0x1.ffffffffffffep63 + }, + { // Entry 186 + 0x1.fffffffffffff0p63, + 0x1.fffffffffffffp63 + }, + { // Entry 187 + 0x1.p64, + 0x1.0p64 + }, + { // Entry 188 + 0x1.00000000000010p64, + 0x1.0000000000001p64 + }, + { // Entry 189 + 0x1.00000000000020p64, + 0x1.0000000000002p64 + }, + { // Entry 190 + -0x1.00000000000020p62, + -0x1.0000000000002p62 + }, + { // Entry 191 + -0x1.00000000000010p62, + -0x1.0000000000001p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 193 + -0x1.fffffffffffff0p61, + -0x1.fffffffffffffp61 + }, + { // Entry 194 + -0x1.ffffffffffffe0p61, + -0x1.ffffffffffffep61 + }, + { // Entry 195 + -0x1.00000000000020p63, + -0x1.0000000000002p63 + }, + { // Entry 196 + -0x1.00000000000010p63, + -0x1.0000000000001p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 198 + -0x1.fffffffffffff0p62, + -0x1.fffffffffffffp62 + }, + { // Entry 199 + -0x1.ffffffffffffe0p62, + -0x1.ffffffffffffep62 + }, + { // Entry 200 + -0x1.00000000000020p64, + -0x1.0000000000002p64 + }, + { // Entry 201 + -0x1.00000000000010p64, + -0x1.0000000000001p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.0p64 + }, + { // Entry 203 + -0x1.fffffffffffff0p63, + -0x1.fffffffffffffp63 + }, + { // Entry 204 + -0x1.ffffffffffffe0p63, + -0x1.ffffffffffffep63 + }, + { // Entry 205 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 209 + 0x1.fffffffcp30, + 0x1.fffffffbfffffp30 + }, + { // Entry 210 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 211 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 212 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 214 + -0x1.p31, + -0x1.fffffffffffffp30 + }, + { // Entry 215 + 0x1.p2, + 0x1.fffffffffffffp1 + }, + { // Entry 216 + 0x1.p2, + 0x1.0p2 + }, + { // Entry 217 + 0x1.p2, + 0x1.0000000000001p2 + }, + { // Entry 218 + 0x1.p3, + 0x1.fffffffffffffp2 + }, + { // Entry 219 + 0x1.p3, + 0x1.0p3 + }, + { // Entry 220 + 0x1.p3, + 0x1.0000000000001p3 + }, + { // Entry 221 + 0x1.p4, + 0x1.fffffffffffffp3 + }, + { // Entry 222 + 0x1.p4, + 0x1.0p4 + }, + { // Entry 223 + 0x1.p4, + 0x1.0000000000001p4 + }, + { // Entry 224 + 0x1.p5, + 0x1.fffffffffffffp4 + }, + { // Entry 225 + 0x1.p5, + 0x1.0p5 + }, + { // Entry 226 + 0x1.p5, + 0x1.0000000000001p5 + }, + { // Entry 227 + 0x1.p6, + 0x1.fffffffffffffp5 + }, + { // Entry 228 + 0x1.p6, + 0x1.0p6 + }, + { // Entry 229 + 0x1.p6, + 0x1.0000000000001p6 + }, + { // Entry 230 + 0x1.p7, + 0x1.fffffffffffffp6 + }, + { // Entry 231 + 0x1.p7, + 0x1.0p7 + }, + { // Entry 232 + 0x1.p7, + 0x1.0000000000001p7 + }, + { // Entry 233 + 0x1.p8, + 0x1.fffffffffffffp7 + }, + { // Entry 234 + 0x1.p8, + 0x1.0p8 + }, + { // Entry 235 + 0x1.p8, + 0x1.0000000000001p8 + }, + { // Entry 236 + 0x1.p9, + 0x1.fffffffffffffp8 + }, + { // Entry 237 + 0x1.p9, + 0x1.0p9 + }, + { // Entry 238 + 0x1.p9, + 0x1.0000000000001p9 + }, + { // Entry 239 + 0x1.p10, + 0x1.fffffffffffffp9 + }, + { // Entry 240 + 0x1.p10, + 0x1.0p10 + }, + { // Entry 241 + 0x1.p10, + 0x1.0000000000001p10 + }, + { // Entry 242 + 0x1.p11, + 0x1.fffffffffffffp10 + }, + { // Entry 243 + 0x1.p11, + 0x1.0p11 + }, + { // Entry 244 + 0x1.p11, + 0x1.0000000000001p11 + }, + { // Entry 245 + 0x1.p12, + 0x1.fffffffffffffp11 + }, + { // Entry 246 + 0x1.p12, + 0x1.0p12 + }, + { // Entry 247 + 0x1.p12, + 0x1.0000000000001p12 + }, + { // Entry 248 + 0x1.p2, + 0x1.1ffffffffffffp2 + }, + { // Entry 249 + 0x1.p2, + 0x1.2p2 + }, + { // Entry 250 + 0x1.40p2, + 0x1.2000000000001p2 + }, + { // Entry 251 + 0x1.p3, + 0x1.0ffffffffffffp3 + }, + { // Entry 252 + 0x1.p3, + 0x1.1p3 + }, + { // Entry 253 + 0x1.20p3, + 0x1.1000000000001p3 + }, + { // Entry 254 + 0x1.p4, + 0x1.07fffffffffffp4 + }, + { // Entry 255 + 0x1.p4, + 0x1.080p4 + }, + { // Entry 256 + 0x1.10p4, + 0x1.0800000000001p4 + }, + { // Entry 257 + 0x1.p5, + 0x1.03fffffffffffp5 + }, + { // Entry 258 + 0x1.p5, + 0x1.040p5 + }, + { // Entry 259 + 0x1.08p5, + 0x1.0400000000001p5 + }, + { // Entry 260 + 0x1.p6, + 0x1.01fffffffffffp6 + }, + { // Entry 261 + 0x1.p6, + 0x1.020p6 + }, + { // Entry 262 + 0x1.04p6, + 0x1.0200000000001p6 + }, + { // Entry 263 + 0x1.p7, + 0x1.00fffffffffffp7 + }, + { // Entry 264 + 0x1.p7, + 0x1.010p7 + }, + { // Entry 265 + 0x1.02p7, + 0x1.0100000000001p7 + }, + { // Entry 266 + 0x1.p8, + 0x1.007ffffffffffp8 + }, + { // Entry 267 + 0x1.p8, + 0x1.008p8 + }, + { // Entry 268 + 0x1.01p8, + 0x1.0080000000001p8 + }, + { // Entry 269 + 0x1.p9, + 0x1.003ffffffffffp9 + }, + { // Entry 270 + 0x1.p9, + 0x1.004p9 + }, + { // Entry 271 + 0x1.0080p9, + 0x1.0040000000001p9 + }, + { // Entry 272 + 0x1.p10, + 0x1.001ffffffffffp10 + }, + { // Entry 273 + 0x1.p10, + 0x1.002p10 + }, + { // Entry 274 + 0x1.0040p10, + 0x1.0020000000001p10 + }, + { // Entry 275 + 0x1.0040p10, + 0x1.005ffffffffffp10 + }, + { // Entry 276 + 0x1.0080p10, + 0x1.006p10 + }, + { // Entry 277 + 0x1.0080p10, + 0x1.0060000000001p10 + }, + { // Entry 278 + 0x1.p11, + 0x1.000ffffffffffp11 + }, + { // Entry 279 + 0x1.p11, + 0x1.001p11 + }, + { // Entry 280 + 0x1.0020p11, + 0x1.0010000000001p11 + }, + { // Entry 281 + 0x1.p12, + 0x1.0007fffffffffp12 + }, + { // Entry 282 + 0x1.p12, + 0x1.00080p12 + }, + { // Entry 283 + 0x1.0010p12, + 0x1.0008000000001p12 + }, + { // Entry 284 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 285 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 286 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 287 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 288 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 289 + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 290 + 0x1.80p1, + 0x1.921fb54442d18p1 + }, + { // Entry 291 + -0x1.80p1, + -0x1.921fb54442d18p1 + }, + { // Entry 292 + 0x1.p1, + 0x1.921fb54442d18p0 + }, + { // Entry 293 + -0x1.p1, + -0x1.921fb54442d18p0 + }, + { // Entry 294 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 295 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 298 + 0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 299 + -0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 300 + 0x1.p0, + 0x1.921fb54442d18p-1 + }, + { // Entry 301 + -0x1.p0, + -0x1.921fb54442d18p-1 + }, + { // Entry 302 + 0.0, + 0x1.0000000000001p-1022 + }, + { // Entry 303 + -0.0, + -0x1.0000000000001p-1022 + }, + { // Entry 304 + 0.0, + 0x1.0p-1022 + }, + { // Entry 305 + -0.0, + -0x1.0p-1022 + }, + { // Entry 306 + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 307 + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 308 + 0.0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 309 + -0.0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 310 + 0.0, + 0x1.0p-1073 + }, + { // Entry 311 + -0.0, + -0x1.0p-1073 + }, + { // Entry 312 + 0.0, + 0x1.0p-1074 + }, + { // Entry 313 + -0.0, + -0x1.0p-1074 + }, + { // Entry 314 + 0.0, + 0.0 + }, + { // Entry 315 + -0.0, + -0.0 + }, + { // Entry 316 + 0x1.p1, + 0x1.8p0 + }, + { // Entry 317 + -0x1.p1, + -0x1.8p0 + }, + { // Entry 318 + 0x1.p1, + 0x1.4p1 + }, + { // Entry 319 + -0x1.p1, + -0x1.4p1 + }, + { // Entry 320 + 0.0, + 0x1.fffffp-2 + }, + { // Entry 321 + 0.0, + 0x1.0p-1 + }, + { // Entry 322 + 0x1.p0, + 0x1.00001p-1 + }, + { // Entry 323 + -0.0, + -0x1.fffffp-2 + }, + { // Entry 324 + -0.0, + -0x1.0p-1 + }, + { // Entry 325 + -0x1.p0, + -0x1.00001p-1 + }, + { // Entry 326 + 0x1.p1, + 0x1.80001p0 + }, + { // Entry 327 + 0x1.p0, + 0x1.7ffffp0 + }, + { // Entry 328 + -0x1.p1, + -0x1.80001p0 + }, + { // Entry 329 + -0x1.p0, + -0x1.7ffffp0 + } +}; diff --git a/tests/math_data/rintf_intel_data.h b/tests/math_data/rintf_intel_data.h new file mode 100644 index 000000000..aeca8308c --- /dev/null +++ b/tests/math_data/rintf_intel_data.h @@ -0,0 +1,1358 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_rintf_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.67e9d8p-2 + }, + { // Entry 1 + 0x1.000008p21, + 0x1.000006p21 + }, + { // Entry 2 + 0x1.fffd48p21, + 0x1.fffd46p21 + }, + { // Entry 3 + 0x1.fffff8p21, + 0x1.fffff6p21 + }, + { // Entry 4 + 0.0, + 0x1.fffffep-2 + }, + { // Entry 5 + -0.0, + -0x1.p-149 + }, + { // Entry 6 + 0.0, + 0.0 + }, + { // Entry 7 + 0.0, + 0x1.p-149 + }, + { // Entry 8 + 0.0, + 0x1.fffffep-2 + }, + { // Entry 9 + 0.0, + 0x1.p-1 + }, + { // Entry 10 + 0x1.p0, + 0x1.000002p-1 + }, + { // Entry 11 + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 12 + 0x1.p0, + 0x1.p0 + }, + { // Entry 13 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 14 + 0x1.p0, + 0x1.7ffffep0 + }, + { // Entry 15 + 0x1.p1, + 0x1.80p0 + }, + { // Entry 16 + 0x1.p1, + 0x1.800002p0 + }, + { // Entry 17 + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 18 + 0x1.p1, + 0x1.p1 + }, + { // Entry 19 + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 20 + 0x1.p1, + 0x1.3ffffep1 + }, + { // Entry 21 + 0x1.p1, + 0x1.40p1 + }, + { // Entry 22 + 0x1.80p1, + 0x1.400002p1 + }, + { // Entry 23 + 0x1.90p6, + 0x1.8ffffep6 + }, + { // Entry 24 + 0x1.90p6, + 0x1.90p6 + }, + { // Entry 25 + 0x1.90p6, + 0x1.900002p6 + }, + { // Entry 26 + 0x1.90p6, + 0x1.91fffep6 + }, + { // Entry 27 + 0x1.90p6, + 0x1.92p6 + }, + { // Entry 28 + 0x1.94p6, + 0x1.920002p6 + }, + { // Entry 29 + 0x1.f4p9, + 0x1.f3fffep9 + }, + { // Entry 30 + 0x1.f4p9, + 0x1.f4p9 + }, + { // Entry 31 + 0x1.f4p9, + 0x1.f40002p9 + }, + { // Entry 32 + 0x1.f4p9, + 0x1.f43ffep9 + }, + { // Entry 33 + 0x1.f4p9, + 0x1.f440p9 + }, + { // Entry 34 + 0x1.f480p9, + 0x1.f44002p9 + }, + { // Entry 35 + 0x1.p21, + 0x1.fffffep20 + }, + { // Entry 36 + 0x1.p21, + 0x1.p21 + }, + { // Entry 37 + 0x1.p21, + 0x1.000002p21 + }, + { // Entry 38 + 0x1.p22, + 0x1.fffffep21 + }, + { // Entry 39 + 0x1.p22, + 0x1.p22 + }, + { // Entry 40 + 0x1.p22, + 0x1.000002p22 + }, + { // Entry 41 + 0x1.p23, + 0x1.fffffep22 + }, + { // Entry 42 + 0x1.p23, + 0x1.p23 + }, + { // Entry 43 + 0x1.000002p23, + 0x1.000002p23 + }, + { // Entry 44 + 0x1.fffffep23, + 0x1.fffffep23 + }, + { // Entry 45 + 0x1.p24, + 0x1.p24 + }, + { // Entry 46 + 0x1.000002p24, + 0x1.000002p24 + }, + { // Entry 47 + 0x1.fffffep24, + 0x1.fffffep24 + }, + { // Entry 48 + 0x1.p25, + 0x1.p25 + }, + { // Entry 49 + 0x1.000002p25, + 0x1.000002p25 + }, + { // Entry 50 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 51 + -0x1.p0, + -0x1.000002p-1 + }, + { // Entry 52 + -0.0, + -0x1.p-1 + }, + { // Entry 53 + -0.0, + -0x1.fffffep-2 + }, + { // Entry 54 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 55 + -0x1.p0, + -0x1.p0 + }, + { // Entry 56 + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 57 + -0x1.p1, + -0x1.800002p0 + }, + { // Entry 58 + -0x1.p1, + -0x1.80p0 + }, + { // Entry 59 + -0x1.p0, + -0x1.7ffffep0 + }, + { // Entry 60 + -0x1.p1, + -0x1.000002p1 + }, + { // Entry 61 + -0x1.p1, + -0x1.p1 + }, + { // Entry 62 + -0x1.p1, + -0x1.fffffep0 + }, + { // Entry 63 + -0x1.80p1, + -0x1.400002p1 + }, + { // Entry 64 + -0x1.p1, + -0x1.40p1 + }, + { // Entry 65 + -0x1.p1, + -0x1.3ffffep1 + }, + { // Entry 66 + -0x1.90p6, + -0x1.900002p6 + }, + { // Entry 67 + -0x1.90p6, + -0x1.90p6 + }, + { // Entry 68 + -0x1.90p6, + -0x1.8ffffep6 + }, + { // Entry 69 + -0x1.94p6, + -0x1.920002p6 + }, + { // Entry 70 + -0x1.90p6, + -0x1.92p6 + }, + { // Entry 71 + -0x1.90p6, + -0x1.91fffep6 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f40002p9 + }, + { // Entry 73 + -0x1.f4p9, + -0x1.f4p9 + }, + { // Entry 74 + -0x1.f4p9, + -0x1.f3fffep9 + }, + { // Entry 75 + -0x1.f480p9, + -0x1.f44002p9 + }, + { // Entry 76 + -0x1.f4p9, + -0x1.f440p9 + }, + { // Entry 77 + -0x1.f4p9, + -0x1.f43ffep9 + }, + { // Entry 78 + -0x1.p21, + -0x1.000002p21 + }, + { // Entry 79 + -0x1.p21, + -0x1.p21 + }, + { // Entry 80 + -0x1.p21, + -0x1.fffffep20 + }, + { // Entry 81 + -0x1.p22, + -0x1.000002p22 + }, + { // Entry 82 + -0x1.p22, + -0x1.p22 + }, + { // Entry 83 + -0x1.p22, + -0x1.fffffep21 + }, + { // Entry 84 + -0x1.000002p23, + -0x1.000002p23 + }, + { // Entry 85 + -0x1.p23, + -0x1.p23 + }, + { // Entry 86 + -0x1.p23, + -0x1.fffffep22 + }, + { // Entry 87 + -0x1.000002p24, + -0x1.000002p24 + }, + { // Entry 88 + -0x1.p24, + -0x1.p24 + }, + { // Entry 89 + -0x1.fffffep23, + -0x1.fffffep23 + }, + { // Entry 90 + -0x1.000002p25, + -0x1.000002p25 + }, + { // Entry 91 + -0x1.p25, + -0x1.p25 + }, + { // Entry 92 + -0x1.fffffep24, + -0x1.fffffep24 + }, + { // Entry 93 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 94 + 0x1.fffffep29, + 0x1.fffffep29 + }, + { // Entry 95 + 0x1.p30, + 0x1.p30 + }, + { // Entry 96 + 0x1.000002p30, + 0x1.000002p30 + }, + { // Entry 97 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 98 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 99 + 0x1.p31, + 0x1.p31 + }, + { // Entry 100 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 101 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 102 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 103 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 104 + 0x1.p31, + 0x1.p31 + }, + { // Entry 105 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 106 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 107 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 108 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 109 + 0x1.p31, + 0x1.p31 + }, + { // Entry 110 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 111 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 112 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 113 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 114 + 0x1.p31, + 0x1.p31 + }, + { // Entry 115 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 116 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 117 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 118 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 119 + 0x1.p31, + 0x1.p31 + }, + { // Entry 120 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 121 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 122 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 123 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 124 + 0x1.p31, + 0x1.p31 + }, + { // Entry 125 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 126 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 127 + 0x1.p31, + 0x1.p31 + }, + { // Entry 128 + 0x1.p31, + 0x1.p31 + }, + { // Entry 129 + 0x1.p31, + 0x1.p31 + }, + { // Entry 130 + 0x1.p31, + 0x1.p31 + }, + { // Entry 131 + 0x1.p31, + 0x1.p31 + }, + { // Entry 132 + 0x1.p31, + 0x1.p31 + }, + { // Entry 133 + 0x1.p31, + 0x1.p31 + }, + { // Entry 134 + 0x1.p31, + 0x1.p31 + }, + { // Entry 135 + 0x1.p31, + 0x1.p31 + }, + { // Entry 136 + 0x1.p31, + 0x1.p31 + }, + { // Entry 137 + -0x1.000002p30, + -0x1.000002p30 + }, + { // Entry 138 + -0x1.p30, + -0x1.p30 + }, + { // Entry 139 + -0x1.fffffep29, + -0x1.fffffep29 + }, + { // Entry 140 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 141 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 142 + -0x1.p31, + -0x1.p31 + }, + { // Entry 143 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 144 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 145 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 146 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 147 + -0x1.p31, + -0x1.p31 + }, + { // Entry 148 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 149 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 150 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 151 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 152 + -0x1.p31, + -0x1.p31 + }, + { // Entry 153 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 154 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 155 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 156 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.p31 + }, + { // Entry 158 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 159 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 160 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 161 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.p31 + }, + { // Entry 163 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 164 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 165 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 166 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 167 + -0x1.p31, + -0x1.p31 + }, + { // Entry 168 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 169 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 170 + -0x1.p31, + -0x1.p31 + }, + { // Entry 171 + -0x1.p31, + -0x1.p31 + }, + { // Entry 172 + -0x1.p31, + -0x1.p31 + }, + { // Entry 173 + -0x1.p31, + -0x1.p31 + }, + { // Entry 174 + -0x1.p31, + -0x1.p31 + }, + { // Entry 175 + -0x1.p31, + -0x1.p31 + }, + { // Entry 176 + -0x1.p31, + -0x1.p31 + }, + { // Entry 177 + -0x1.p31, + -0x1.p31 + }, + { // Entry 178 + -0x1.p31, + -0x1.p31 + }, + { // Entry 179 + -0x1.p31, + -0x1.p31 + }, + { // Entry 180 + 0x1.fffffcp61, + 0x1.fffffcp61 + }, + { // Entry 181 + 0x1.fffffep61, + 0x1.fffffep61 + }, + { // Entry 182 + 0x1.p62, + 0x1.p62 + }, + { // Entry 183 + 0x1.000002p62, + 0x1.000002p62 + }, + { // Entry 184 + 0x1.000004p62, + 0x1.000004p62 + }, + { // Entry 185 + 0x1.fffffcp62, + 0x1.fffffcp62 + }, + { // Entry 186 + 0x1.fffffep62, + 0x1.fffffep62 + }, + { // Entry 187 + 0x1.p63, + 0x1.p63 + }, + { // Entry 188 + 0x1.000002p63, + 0x1.000002p63 + }, + { // Entry 189 + 0x1.000004p63, + 0x1.000004p63 + }, + { // Entry 190 + 0x1.fffffcp63, + 0x1.fffffcp63 + }, + { // Entry 191 + 0x1.fffffep63, + 0x1.fffffep63 + }, + { // Entry 192 + 0x1.p64, + 0x1.p64 + }, + { // Entry 193 + 0x1.000002p64, + 0x1.000002p64 + }, + { // Entry 194 + 0x1.000004p64, + 0x1.000004p64 + }, + { // Entry 195 + -0x1.000004p62, + -0x1.000004p62 + }, + { // Entry 196 + -0x1.000002p62, + -0x1.000002p62 + }, + { // Entry 197 + -0x1.p62, + -0x1.p62 + }, + { // Entry 198 + -0x1.fffffep61, + -0x1.fffffep61 + }, + { // Entry 199 + -0x1.fffffcp61, + -0x1.fffffcp61 + }, + { // Entry 200 + -0x1.000004p63, + -0x1.000004p63 + }, + { // Entry 201 + -0x1.000002p63, + -0x1.000002p63 + }, + { // Entry 202 + -0x1.p63, + -0x1.p63 + }, + { // Entry 203 + -0x1.fffffep62, + -0x1.fffffep62 + }, + { // Entry 204 + -0x1.fffffcp62, + -0x1.fffffcp62 + }, + { // Entry 205 + -0x1.000004p64, + -0x1.000004p64 + }, + { // Entry 206 + -0x1.000002p64, + -0x1.000002p64 + }, + { // Entry 207 + -0x1.p64, + -0x1.p64 + }, + { // Entry 208 + -0x1.fffffep63, + -0x1.fffffep63 + }, + { // Entry 209 + -0x1.fffffcp63, + -0x1.fffffcp63 + }, + { // Entry 210 + 0x1.p62, + 0x1.p62 + }, + { // Entry 211 + 0x1.p63, + 0x1.p63 + }, + { // Entry 212 + -0x1.p62, + -0x1.p62 + }, + { // Entry 213 + -0x1.p63, + -0x1.p63 + }, + { // Entry 214 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 215 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 216 + 0x1.p31, + 0x1.p31 + }, + { // Entry 217 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 218 + -0x1.p31, + -0x1.p31 + }, + { // Entry 219 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 220 + 0x1.p2, + 0x1.fffffep1 + }, + { // Entry 221 + 0x1.p2, + 0x1.p2 + }, + { // Entry 222 + 0x1.p2, + 0x1.000002p2 + }, + { // Entry 223 + 0x1.p3, + 0x1.fffffep2 + }, + { // Entry 224 + 0x1.p3, + 0x1.p3 + }, + { // Entry 225 + 0x1.p3, + 0x1.000002p3 + }, + { // Entry 226 + 0x1.p4, + 0x1.fffffep3 + }, + { // Entry 227 + 0x1.p4, + 0x1.p4 + }, + { // Entry 228 + 0x1.p4, + 0x1.000002p4 + }, + { // Entry 229 + 0x1.p5, + 0x1.fffffep4 + }, + { // Entry 230 + 0x1.p5, + 0x1.p5 + }, + { // Entry 231 + 0x1.p5, + 0x1.000002p5 + }, + { // Entry 232 + 0x1.p6, + 0x1.fffffep5 + }, + { // Entry 233 + 0x1.p6, + 0x1.p6 + }, + { // Entry 234 + 0x1.p6, + 0x1.000002p6 + }, + { // Entry 235 + 0x1.p7, + 0x1.fffffep6 + }, + { // Entry 236 + 0x1.p7, + 0x1.p7 + }, + { // Entry 237 + 0x1.p7, + 0x1.000002p7 + }, + { // Entry 238 + 0x1.p8, + 0x1.fffffep7 + }, + { // Entry 239 + 0x1.p8, + 0x1.p8 + }, + { // Entry 240 + 0x1.p8, + 0x1.000002p8 + }, + { // Entry 241 + 0x1.p9, + 0x1.fffffep8 + }, + { // Entry 242 + 0x1.p9, + 0x1.p9 + }, + { // Entry 243 + 0x1.p9, + 0x1.000002p9 + }, + { // Entry 244 + 0x1.p10, + 0x1.fffffep9 + }, + { // Entry 245 + 0x1.p10, + 0x1.p10 + }, + { // Entry 246 + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 247 + 0x1.p11, + 0x1.fffffep10 + }, + { // Entry 248 + 0x1.p11, + 0x1.p11 + }, + { // Entry 249 + 0x1.p11, + 0x1.000002p11 + }, + { // Entry 250 + 0x1.p12, + 0x1.fffffep11 + }, + { // Entry 251 + 0x1.p12, + 0x1.p12 + }, + { // Entry 252 + 0x1.p12, + 0x1.000002p12 + }, + { // Entry 253 + 0x1.p2, + 0x1.1ffffep2 + }, + { // Entry 254 + 0x1.p2, + 0x1.20p2 + }, + { // Entry 255 + 0x1.40p2, + 0x1.200002p2 + }, + { // Entry 256 + 0x1.p3, + 0x1.0ffffep3 + }, + { // Entry 257 + 0x1.p3, + 0x1.10p3 + }, + { // Entry 258 + 0x1.20p3, + 0x1.100002p3 + }, + { // Entry 259 + 0x1.p4, + 0x1.07fffep4 + }, + { // Entry 260 + 0x1.p4, + 0x1.08p4 + }, + { // Entry 261 + 0x1.10p4, + 0x1.080002p4 + }, + { // Entry 262 + 0x1.p5, + 0x1.03fffep5 + }, + { // Entry 263 + 0x1.p5, + 0x1.04p5 + }, + { // Entry 264 + 0x1.08p5, + 0x1.040002p5 + }, + { // Entry 265 + 0x1.p6, + 0x1.01fffep6 + }, + { // Entry 266 + 0x1.p6, + 0x1.02p6 + }, + { // Entry 267 + 0x1.04p6, + 0x1.020002p6 + }, + { // Entry 268 + 0x1.p7, + 0x1.00fffep7 + }, + { // Entry 269 + 0x1.p7, + 0x1.01p7 + }, + { // Entry 270 + 0x1.02p7, + 0x1.010002p7 + }, + { // Entry 271 + 0x1.p8, + 0x1.007ffep8 + }, + { // Entry 272 + 0x1.p8, + 0x1.0080p8 + }, + { // Entry 273 + 0x1.01p8, + 0x1.008002p8 + }, + { // Entry 274 + 0x1.p9, + 0x1.003ffep9 + }, + { // Entry 275 + 0x1.p9, + 0x1.0040p9 + }, + { // Entry 276 + 0x1.0080p9, + 0x1.004002p9 + }, + { // Entry 277 + 0x1.p10, + 0x1.001ffep10 + }, + { // Entry 278 + 0x1.p10, + 0x1.0020p10 + }, + { // Entry 279 + 0x1.0040p10, + 0x1.002002p10 + }, + { // Entry 280 + 0x1.0040p10, + 0x1.005ffep10 + }, + { // Entry 281 + 0x1.0080p10, + 0x1.0060p10 + }, + { // Entry 282 + 0x1.0080p10, + 0x1.006002p10 + }, + { // Entry 283 + 0x1.p11, + 0x1.000ffep11 + }, + { // Entry 284 + 0x1.p11, + 0x1.0010p11 + }, + { // Entry 285 + 0x1.0020p11, + 0x1.001002p11 + }, + { // Entry 286 + 0x1.p12, + 0x1.0007fep12 + }, + { // Entry 287 + 0x1.p12, + 0x1.0008p12 + }, + { // Entry 288 + 0x1.0010p12, + 0x1.000802p12 + }, + { // Entry 289 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 290 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 291 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 292 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 293 + 0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 294 + -0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 295 + 0x1.80p1, + 0x1.921fb6p1 + }, + { // Entry 296 + -0x1.80p1, + -0x1.921fb6p1 + }, + { // Entry 297 + 0x1.p1, + 0x1.921fb6p0 + }, + { // Entry 298 + -0x1.p1, + -0x1.921fb6p0 + }, + { // Entry 299 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 300 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 301 + 0x1.p0, + 0x1.p0 + }, + { // Entry 302 + -0x1.p0, + -0x1.p0 + }, + { // Entry 303 + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 304 + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 305 + 0x1.p0, + 0x1.921fb6p-1 + }, + { // Entry 306 + -0x1.p0, + -0x1.921fb6p-1 + }, + { // Entry 307 + 0.0, + 0x1.000002p-126 + }, + { // Entry 308 + -0.0, + -0x1.000002p-126 + }, + { // Entry 309 + 0.0, + 0x1.p-126 + }, + { // Entry 310 + -0.0, + -0x1.p-126 + }, + { // Entry 311 + 0.0, + 0x1.fffffcp-127 + }, + { // Entry 312 + -0.0, + -0x1.fffffcp-127 + }, + { // Entry 313 + 0.0, + 0x1.fffff8p-127 + }, + { // Entry 314 + -0.0, + -0x1.fffff8p-127 + }, + { // Entry 315 + 0.0, + 0x1.p-148 + }, + { // Entry 316 + -0.0, + -0x1.p-148 + }, + { // Entry 317 + 0.0, + 0x1.p-149 + }, + { // Entry 318 + -0.0, + -0x1.p-149 + }, + { // Entry 319 + 0.0, + 0.0f + }, + { // Entry 320 + -0.0, + -0.0f + }, + { // Entry 321 + 0x1.p1, + 0x1.80p0 + }, + { // Entry 322 + -0x1.p1, + -0x1.80p0 + }, + { // Entry 323 + 0x1.p1, + 0x1.40p1 + }, + { // Entry 324 + -0x1.p1, + -0x1.40p1 + }, + { // Entry 325 + 0.0, + 0x1.fffff0p-2 + }, + { // Entry 326 + 0.0, + 0x1.p-1 + }, + { // Entry 327 + 0x1.p0, + 0x1.000010p-1 + }, + { // Entry 328 + -0.0, + -0x1.fffff0p-2 + }, + { // Entry 329 + -0.0, + -0x1.p-1 + }, + { // Entry 330 + -0x1.p0, + -0x1.000010p-1 + }, + { // Entry 331 + 0x1.p1, + 0x1.800010p0 + }, + { // Entry 332 + 0x1.p0, + 0x1.7ffff0p0 + }, + { // Entry 333 + -0x1.p1, + -0x1.800010p0 + }, + { // Entry 334 + -0x1.p0, + -0x1.7ffff0p0 + } +}; diff --git a/tests/math_data/round_intel_data.h b/tests/math_data/round_intel_data.h new file mode 100644 index 000000000..f2b8502cf --- /dev/null +++ b/tests/math_data/round_intel_data.h @@ -0,0 +1,1350 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_round_intel_data[] = { + { // Entry 0 + 0x1.p0, + 0x1.0p-1 + }, + { // Entry 1 + 0x1.0020p11, + 0x1.001p11 + }, + { // Entry 2 + 0x1.80p1, + 0x1.4p1 + }, + { // Entry 3 + -0.0, + -0x1.0p-1074 + }, + { // Entry 4 + -0.0, + -0.0 + }, + { // Entry 5 + 0.0, + 0x1.0p-1074 + }, + { // Entry 6 + 0.0, + 0x1.fffffffffffffp-2 + }, + { // Entry 7 + 0x1.p0, + 0x1.0p-1 + }, + { // Entry 8 + 0x1.p0, + 0x1.0000000000001p-1 + }, + { // Entry 9 + 0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 10 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 11 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 12 + 0x1.p0, + 0x1.7ffffffffffffp0 + }, + { // Entry 13 + 0x1.p1, + 0x1.8p0 + }, + { // Entry 14 + 0x1.p1, + 0x1.8000000000001p0 + }, + { // Entry 15 + 0x1.p1, + 0x1.fffffffffffffp0 + }, + { // Entry 16 + 0x1.p1, + 0x1.0p1 + }, + { // Entry 17 + 0x1.p1, + 0x1.0000000000001p1 + }, + { // Entry 18 + 0x1.p1, + 0x1.3ffffffffffffp1 + }, + { // Entry 19 + 0x1.80p1, + 0x1.4p1 + }, + { // Entry 20 + 0x1.80p1, + 0x1.4000000000001p1 + }, + { // Entry 21 + 0x1.90p6, + 0x1.8ffffffffffffp6 + }, + { // Entry 22 + 0x1.90p6, + 0x1.9p6 + }, + { // Entry 23 + 0x1.90p6, + 0x1.9000000000001p6 + }, + { // Entry 24 + 0x1.90p6, + 0x1.91fffffffffffp6 + }, + { // Entry 25 + 0x1.94p6, + 0x1.920p6 + }, + { // Entry 26 + 0x1.94p6, + 0x1.9200000000001p6 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.f3fffffffffffp9 + }, + { // Entry 28 + 0x1.f4p9, + 0x1.f40p9 + }, + { // Entry 29 + 0x1.f4p9, + 0x1.f400000000001p9 + }, + { // Entry 30 + 0x1.f4p9, + 0x1.f43ffffffffffp9 + }, + { // Entry 31 + 0x1.f480p9, + 0x1.f44p9 + }, + { // Entry 32 + 0x1.f480p9, + 0x1.f440000000001p9 + }, + { // Entry 33 + 0x1.p50, + 0x1.fffffffffffffp49 + }, + { // Entry 34 + 0x1.p50, + 0x1.0p50 + }, + { // Entry 35 + 0x1.p50, + 0x1.0000000000001p50 + }, + { // Entry 36 + 0x1.p51, + 0x1.fffffffffffffp50 + }, + { // Entry 37 + 0x1.p51, + 0x1.0p51 + }, + { // Entry 38 + 0x1.00000000000020p51, + 0x1.0000000000001p51 + }, + { // Entry 39 + 0x1.p52, + 0x1.fffffffffffffp51 + }, + { // Entry 40 + 0x1.p52, + 0x1.0p52 + }, + { // Entry 41 + 0x1.00000000000010p52, + 0x1.0000000000001p52 + }, + { // Entry 42 + 0x1.fffffffffffff0p52, + 0x1.fffffffffffffp52 + }, + { // Entry 43 + 0x1.p53, + 0x1.0p53 + }, + { // Entry 44 + 0x1.00000000000010p53, + 0x1.0000000000001p53 + }, + { // Entry 45 + 0x1.fffffffffffff0p53, + 0x1.fffffffffffffp53 + }, + { // Entry 46 + 0x1.p54, + 0x1.0p54 + }, + { // Entry 47 + 0x1.00000000000010p54, + 0x1.0000000000001p54 + }, + { // Entry 48 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 49 + -0x1.p0, + -0x1.0000000000001p-1 + }, + { // Entry 50 + -0x1.p0, + -0x1.0p-1 + }, + { // Entry 51 + -0.0, + -0x1.fffffffffffffp-2 + }, + { // Entry 52 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 53 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 54 + -0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 55 + -0x1.p1, + -0x1.8000000000001p0 + }, + { // Entry 56 + -0x1.p1, + -0x1.8p0 + }, + { // Entry 57 + -0x1.p0, + -0x1.7ffffffffffffp0 + }, + { // Entry 58 + -0x1.p1, + -0x1.0000000000001p1 + }, + { // Entry 59 + -0x1.p1, + -0x1.0p1 + }, + { // Entry 60 + -0x1.p1, + -0x1.fffffffffffffp0 + }, + { // Entry 61 + -0x1.80p1, + -0x1.4000000000001p1 + }, + { // Entry 62 + -0x1.80p1, + -0x1.4p1 + }, + { // Entry 63 + -0x1.p1, + -0x1.3ffffffffffffp1 + }, + { // Entry 64 + -0x1.90p6, + -0x1.9000000000001p6 + }, + { // Entry 65 + -0x1.90p6, + -0x1.9p6 + }, + { // Entry 66 + -0x1.90p6, + -0x1.8ffffffffffffp6 + }, + { // Entry 67 + -0x1.94p6, + -0x1.9200000000001p6 + }, + { // Entry 68 + -0x1.94p6, + -0x1.920p6 + }, + { // Entry 69 + -0x1.90p6, + -0x1.91fffffffffffp6 + }, + { // Entry 70 + -0x1.f4p9, + -0x1.f400000000001p9 + }, + { // Entry 71 + -0x1.f4p9, + -0x1.f40p9 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f3fffffffffffp9 + }, + { // Entry 73 + -0x1.f480p9, + -0x1.f440000000001p9 + }, + { // Entry 74 + -0x1.f480p9, + -0x1.f44p9 + }, + { // Entry 75 + -0x1.f4p9, + -0x1.f43ffffffffffp9 + }, + { // Entry 76 + -0x1.p50, + -0x1.0000000000001p50 + }, + { // Entry 77 + -0x1.p50, + -0x1.0p50 + }, + { // Entry 78 + -0x1.p50, + -0x1.fffffffffffffp49 + }, + { // Entry 79 + -0x1.00000000000020p51, + -0x1.0000000000001p51 + }, + { // Entry 80 + -0x1.p51, + -0x1.0p51 + }, + { // Entry 81 + -0x1.p51, + -0x1.fffffffffffffp50 + }, + { // Entry 82 + -0x1.00000000000010p52, + -0x1.0000000000001p52 + }, + { // Entry 83 + -0x1.p52, + -0x1.0p52 + }, + { // Entry 84 + -0x1.p52, + -0x1.fffffffffffffp51 + }, + { // Entry 85 + -0x1.00000000000010p53, + -0x1.0000000000001p53 + }, + { // Entry 86 + -0x1.p53, + -0x1.0p53 + }, + { // Entry 87 + -0x1.fffffffffffff0p52, + -0x1.fffffffffffffp52 + }, + { // Entry 88 + -0x1.00000000000010p54, + -0x1.0000000000001p54 + }, + { // Entry 89 + -0x1.p54, + -0x1.0p54 + }, + { // Entry 90 + -0x1.fffffffffffff0p53, + -0x1.fffffffffffffp53 + }, + { // Entry 91 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 92 + 0x1.p30, + 0x1.fffffffffffffp29 + }, + { // Entry 93 + 0x1.p30, + 0x1.0p30 + }, + { // Entry 94 + 0x1.p30, + 0x1.0000000000001p30 + }, + { // Entry 95 + 0x1.fffffff8p30, + 0x1.fffffff7ffffep30 + }, + { // Entry 96 + 0x1.fffffff8p30, + 0x1.fffffff7fffffp30 + }, + { // Entry 97 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 98 + 0x1.fffffff8p30, + 0x1.fffffff800001p30 + }, + { // Entry 99 + 0x1.fffffff8p30, + 0x1.fffffff800002p30 + }, + { // Entry 100 + 0x1.fffffff8p30, + 0x1.fffffff9ffffep30 + }, + { // Entry 101 + 0x1.fffffff8p30, + 0x1.fffffff9fffffp30 + }, + { // Entry 102 + 0x1.fffffffcp30, + 0x1.fffffffa0p30 + }, + { // Entry 103 + 0x1.fffffffcp30, + 0x1.fffffffa00001p30 + }, + { // Entry 104 + 0x1.fffffffcp30, + 0x1.fffffffa00002p30 + }, + { // Entry 105 + 0x1.fffffffcp30, + 0x1.fffffffbffffep30 + }, + { // Entry 106 + 0x1.fffffffcp30, + 0x1.fffffffbfffffp30 + }, + { // Entry 107 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 108 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 109 + 0x1.fffffffcp30, + 0x1.fffffffc00002p30 + }, + { // Entry 110 + 0x1.fffffffcp30, + 0x1.fffffffdffffep30 + }, + { // Entry 111 + 0x1.fffffffcp30, + 0x1.fffffffdfffffp30 + }, + { // Entry 112 + 0x1.p31, + 0x1.fffffffe0p30 + }, + { // Entry 113 + 0x1.p31, + 0x1.fffffffe00001p30 + }, + { // Entry 114 + 0x1.p31, + 0x1.fffffffe00002p30 + }, + { // Entry 115 + 0x1.p31, + 0x1.ffffffffffffep30 + }, + { // Entry 116 + 0x1.p31, + 0x1.fffffffffffffp30 + }, + { // Entry 117 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 118 + 0x1.p31, + 0x1.0000000000001p31 + }, + { // Entry 119 + 0x1.p31, + 0x1.0000000000002p31 + }, + { // Entry 120 + 0x1.p31, + 0x1.00000000ffffep31 + }, + { // Entry 121 + 0x1.p31, + 0x1.00000000fffffp31 + }, + { // Entry 122 + 0x1.00000002p31, + 0x1.000000010p31 + }, + { // Entry 123 + 0x1.00000002p31, + 0x1.0000000100001p31 + }, + { // Entry 124 + 0x1.00000002p31, + 0x1.0000000100002p31 + }, + { // Entry 125 + 0x1.ffffffe0p30, + 0x1.ffffffep30 + }, + { // Entry 126 + 0x1.ffffffe4p30, + 0x1.ffffffe40p30 + }, + { // Entry 127 + 0x1.ffffffe8p30, + 0x1.ffffffe80p30 + }, + { // Entry 128 + 0x1.ffffffecp30, + 0x1.ffffffec0p30 + }, + { // Entry 129 + 0x1.fffffff0p30, + 0x1.fffffffp30 + }, + { // Entry 130 + 0x1.fffffff4p30, + 0x1.fffffff40p30 + }, + { // Entry 131 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 132 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 133 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 134 + 0x1.00000002p31, + 0x1.000000020p31 + }, + { // Entry 135 + -0x1.p30, + -0x1.0000000000001p30 + }, + { // Entry 136 + -0x1.p30, + -0x1.0p30 + }, + { // Entry 137 + -0x1.p30, + -0x1.fffffffffffffp29 + }, + { // Entry 138 + -0x1.fffffff8p30, + -0x1.fffffff800002p30 + }, + { // Entry 139 + -0x1.fffffff8p30, + -0x1.fffffff800001p30 + }, + { // Entry 140 + -0x1.fffffff8p30, + -0x1.fffffff80p30 + }, + { // Entry 141 + -0x1.fffffff8p30, + -0x1.fffffff7fffffp30 + }, + { // Entry 142 + -0x1.fffffff8p30, + -0x1.fffffff7ffffep30 + }, + { // Entry 143 + -0x1.fffffffcp30, + -0x1.fffffffa00002p30 + }, + { // Entry 144 + -0x1.fffffffcp30, + -0x1.fffffffa00001p30 + }, + { // Entry 145 + -0x1.fffffffcp30, + -0x1.fffffffa0p30 + }, + { // Entry 146 + -0x1.fffffff8p30, + -0x1.fffffff9fffffp30 + }, + { // Entry 147 + -0x1.fffffff8p30, + -0x1.fffffff9ffffep30 + }, + { // Entry 148 + -0x1.fffffffcp30, + -0x1.fffffffc00002p30 + }, + { // Entry 149 + -0x1.fffffffcp30, + -0x1.fffffffc00001p30 + }, + { // Entry 150 + -0x1.fffffffcp30, + -0x1.fffffffc0p30 + }, + { // Entry 151 + -0x1.fffffffcp30, + -0x1.fffffffbfffffp30 + }, + { // Entry 152 + -0x1.fffffffcp30, + -0x1.fffffffbffffep30 + }, + { // Entry 153 + -0x1.p31, + -0x1.fffffffe00002p30 + }, + { // Entry 154 + -0x1.p31, + -0x1.fffffffe00001p30 + }, + { // Entry 155 + -0x1.p31, + -0x1.fffffffe0p30 + }, + { // Entry 156 + -0x1.fffffffcp30, + -0x1.fffffffdfffffp30 + }, + { // Entry 157 + -0x1.fffffffcp30, + -0x1.fffffffdffffep30 + }, + { // Entry 158 + -0x1.p31, + -0x1.0000000000002p31 + }, + { // Entry 159 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 160 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 161 + -0x1.p31, + -0x1.fffffffffffffp30 + }, + { // Entry 162 + -0x1.p31, + -0x1.ffffffffffffep30 + }, + { // Entry 163 + -0x1.00000002p31, + -0x1.0000000100002p31 + }, + { // Entry 164 + -0x1.00000002p31, + -0x1.0000000100001p31 + }, + { // Entry 165 + -0x1.00000002p31, + -0x1.000000010p31 + }, + { // Entry 166 + -0x1.p31, + -0x1.00000000fffffp31 + }, + { // Entry 167 + -0x1.p31, + -0x1.00000000ffffep31 + }, + { // Entry 168 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 169 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 170 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 171 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 172 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 173 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 174 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 175 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 176 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 177 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 178 + 0x1.ffffffffffffe0p61, + 0x1.ffffffffffffep61 + }, + { // Entry 179 + 0x1.fffffffffffff0p61, + 0x1.fffffffffffffp61 + }, + { // Entry 180 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 181 + 0x1.00000000000010p62, + 0x1.0000000000001p62 + }, + { // Entry 182 + 0x1.00000000000020p62, + 0x1.0000000000002p62 + }, + { // Entry 183 + 0x1.ffffffffffffe0p62, + 0x1.ffffffffffffep62 + }, + { // Entry 184 + 0x1.fffffffffffff0p62, + 0x1.fffffffffffffp62 + }, + { // Entry 185 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 186 + 0x1.00000000000010p63, + 0x1.0000000000001p63 + }, + { // Entry 187 + 0x1.00000000000020p63, + 0x1.0000000000002p63 + }, + { // Entry 188 + 0x1.ffffffffffffe0p63, + 0x1.ffffffffffffep63 + }, + { // Entry 189 + 0x1.fffffffffffff0p63, + 0x1.fffffffffffffp63 + }, + { // Entry 190 + 0x1.p64, + 0x1.0p64 + }, + { // Entry 191 + 0x1.00000000000010p64, + 0x1.0000000000001p64 + }, + { // Entry 192 + 0x1.00000000000020p64, + 0x1.0000000000002p64 + }, + { // Entry 193 + -0x1.00000000000020p62, + -0x1.0000000000002p62 + }, + { // Entry 194 + -0x1.00000000000010p62, + -0x1.0000000000001p62 + }, + { // Entry 195 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 196 + -0x1.fffffffffffff0p61, + -0x1.fffffffffffffp61 + }, + { // Entry 197 + -0x1.ffffffffffffe0p61, + -0x1.ffffffffffffep61 + }, + { // Entry 198 + -0x1.00000000000020p63, + -0x1.0000000000002p63 + }, + { // Entry 199 + -0x1.00000000000010p63, + -0x1.0000000000001p63 + }, + { // Entry 200 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 201 + -0x1.fffffffffffff0p62, + -0x1.fffffffffffffp62 + }, + { // Entry 202 + -0x1.ffffffffffffe0p62, + -0x1.ffffffffffffep62 + }, + { // Entry 203 + -0x1.00000000000020p64, + -0x1.0000000000002p64 + }, + { // Entry 204 + -0x1.00000000000010p64, + -0x1.0000000000001p64 + }, + { // Entry 205 + -0x1.p64, + -0x1.0p64 + }, + { // Entry 206 + -0x1.fffffffffffff0p63, + -0x1.fffffffffffffp63 + }, + { // Entry 207 + -0x1.ffffffffffffe0p63, + -0x1.ffffffffffffep63 + }, + { // Entry 208 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 209 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 210 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 211 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 212 + 0x1.fffffffcp30, + 0x1.fffffffbfffffp30 + }, + { // Entry 213 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 214 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 215 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 216 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 217 + -0x1.p31, + -0x1.fffffffffffffp30 + }, + { // Entry 218 + 0x1.p2, + 0x1.fffffffffffffp1 + }, + { // Entry 219 + 0x1.p2, + 0x1.0p2 + }, + { // Entry 220 + 0x1.p2, + 0x1.0000000000001p2 + }, + { // Entry 221 + 0x1.p3, + 0x1.fffffffffffffp2 + }, + { // Entry 222 + 0x1.p3, + 0x1.0p3 + }, + { // Entry 223 + 0x1.p3, + 0x1.0000000000001p3 + }, + { // Entry 224 + 0x1.p4, + 0x1.fffffffffffffp3 + }, + { // Entry 225 + 0x1.p4, + 0x1.0p4 + }, + { // Entry 226 + 0x1.p4, + 0x1.0000000000001p4 + }, + { // Entry 227 + 0x1.p5, + 0x1.fffffffffffffp4 + }, + { // Entry 228 + 0x1.p5, + 0x1.0p5 + }, + { // Entry 229 + 0x1.p5, + 0x1.0000000000001p5 + }, + { // Entry 230 + 0x1.p6, + 0x1.fffffffffffffp5 + }, + { // Entry 231 + 0x1.p6, + 0x1.0p6 + }, + { // Entry 232 + 0x1.p6, + 0x1.0000000000001p6 + }, + { // Entry 233 + 0x1.p7, + 0x1.fffffffffffffp6 + }, + { // Entry 234 + 0x1.p7, + 0x1.0p7 + }, + { // Entry 235 + 0x1.p7, + 0x1.0000000000001p7 + }, + { // Entry 236 + 0x1.p8, + 0x1.fffffffffffffp7 + }, + { // Entry 237 + 0x1.p8, + 0x1.0p8 + }, + { // Entry 238 + 0x1.p8, + 0x1.0000000000001p8 + }, + { // Entry 239 + 0x1.p9, + 0x1.fffffffffffffp8 + }, + { // Entry 240 + 0x1.p9, + 0x1.0p9 + }, + { // Entry 241 + 0x1.p9, + 0x1.0000000000001p9 + }, + { // Entry 242 + 0x1.p10, + 0x1.fffffffffffffp9 + }, + { // Entry 243 + 0x1.p10, + 0x1.0p10 + }, + { // Entry 244 + 0x1.p10, + 0x1.0000000000001p10 + }, + { // Entry 245 + 0x1.p11, + 0x1.fffffffffffffp10 + }, + { // Entry 246 + 0x1.p11, + 0x1.0p11 + }, + { // Entry 247 + 0x1.p11, + 0x1.0000000000001p11 + }, + { // Entry 248 + 0x1.p12, + 0x1.fffffffffffffp11 + }, + { // Entry 249 + 0x1.p12, + 0x1.0p12 + }, + { // Entry 250 + 0x1.p12, + 0x1.0000000000001p12 + }, + { // Entry 251 + 0x1.p2, + 0x1.1ffffffffffffp2 + }, + { // Entry 252 + 0x1.40p2, + 0x1.2p2 + }, + { // Entry 253 + 0x1.40p2, + 0x1.2000000000001p2 + }, + { // Entry 254 + 0x1.p3, + 0x1.0ffffffffffffp3 + }, + { // Entry 255 + 0x1.20p3, + 0x1.1p3 + }, + { // Entry 256 + 0x1.20p3, + 0x1.1000000000001p3 + }, + { // Entry 257 + 0x1.p4, + 0x1.07fffffffffffp4 + }, + { // Entry 258 + 0x1.10p4, + 0x1.080p4 + }, + { // Entry 259 + 0x1.10p4, + 0x1.0800000000001p4 + }, + { // Entry 260 + 0x1.p5, + 0x1.03fffffffffffp5 + }, + { // Entry 261 + 0x1.08p5, + 0x1.040p5 + }, + { // Entry 262 + 0x1.08p5, + 0x1.0400000000001p5 + }, + { // Entry 263 + 0x1.p6, + 0x1.01fffffffffffp6 + }, + { // Entry 264 + 0x1.04p6, + 0x1.020p6 + }, + { // Entry 265 + 0x1.04p6, + 0x1.0200000000001p6 + }, + { // Entry 266 + 0x1.p7, + 0x1.00fffffffffffp7 + }, + { // Entry 267 + 0x1.02p7, + 0x1.010p7 + }, + { // Entry 268 + 0x1.02p7, + 0x1.0100000000001p7 + }, + { // Entry 269 + 0x1.p8, + 0x1.007ffffffffffp8 + }, + { // Entry 270 + 0x1.01p8, + 0x1.008p8 + }, + { // Entry 271 + 0x1.01p8, + 0x1.0080000000001p8 + }, + { // Entry 272 + 0x1.p9, + 0x1.003ffffffffffp9 + }, + { // Entry 273 + 0x1.0080p9, + 0x1.004p9 + }, + { // Entry 274 + 0x1.0080p9, + 0x1.0040000000001p9 + }, + { // Entry 275 + 0x1.p10, + 0x1.001ffffffffffp10 + }, + { // Entry 276 + 0x1.0040p10, + 0x1.002p10 + }, + { // Entry 277 + 0x1.0040p10, + 0x1.0020000000001p10 + }, + { // Entry 278 + 0x1.0040p10, + 0x1.005ffffffffffp10 + }, + { // Entry 279 + 0x1.0080p10, + 0x1.006p10 + }, + { // Entry 280 + 0x1.0080p10, + 0x1.0060000000001p10 + }, + { // Entry 281 + 0x1.p11, + 0x1.000ffffffffffp11 + }, + { // Entry 282 + 0x1.0020p11, + 0x1.001p11 + }, + { // Entry 283 + 0x1.0020p11, + 0x1.0010000000001p11 + }, + { // Entry 284 + 0x1.p12, + 0x1.0007fffffffffp12 + }, + { // Entry 285 + 0x1.0010p12, + 0x1.00080p12 + }, + { // Entry 286 + 0x1.0010p12, + 0x1.0008000000001p12 + }, + { // Entry 287 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 288 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 289 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 290 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 291 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 292 + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 293 + 0x1.80p1, + 0x1.921fb54442d18p1 + }, + { // Entry 294 + -0x1.80p1, + -0x1.921fb54442d18p1 + }, + { // Entry 295 + 0x1.p1, + 0x1.921fb54442d18p0 + }, + { // Entry 296 + -0x1.p1, + -0x1.921fb54442d18p0 + }, + { // Entry 297 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 298 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 299 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 300 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 301 + 0x1.p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 302 + -0x1.p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 303 + 0x1.p0, + 0x1.921fb54442d18p-1 + }, + { // Entry 304 + -0x1.p0, + -0x1.921fb54442d18p-1 + }, + { // Entry 305 + 0.0, + 0x1.0000000000001p-1022 + }, + { // Entry 306 + -0.0, + -0x1.0000000000001p-1022 + }, + { // Entry 307 + 0.0, + 0x1.0p-1022 + }, + { // Entry 308 + -0.0, + -0x1.0p-1022 + }, + { // Entry 309 + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 310 + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 311 + 0.0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 312 + -0.0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 313 + 0.0, + 0x1.0p-1073 + }, + { // Entry 314 + -0.0, + -0x1.0p-1073 + }, + { // Entry 315 + 0.0, + 0x1.0p-1074 + }, + { // Entry 316 + -0.0, + -0x1.0p-1074 + }, + { // Entry 317 + 0.0, + 0.0 + }, + { // Entry 318 + -0.0, + -0.0 + }, + { // Entry 319 + 0x1.p1, + 0x1.8p0 + }, + { // Entry 320 + -0x1.p1, + -0x1.8p0 + }, + { // Entry 321 + 0x1.80p1, + 0x1.4p1 + }, + { // Entry 322 + -0x1.80p1, + -0x1.4p1 + }, + { // Entry 323 + 0.0, + 0x1.fffffp-2 + }, + { // Entry 324 + 0x1.p0, + 0x1.0p-1 + }, + { // Entry 325 + 0x1.p0, + 0x1.00001p-1 + }, + { // Entry 326 + -0.0, + -0x1.fffffp-2 + }, + { // Entry 327 + -0x1.p0, + -0x1.0p-1 + }, + { // Entry 328 + -0x1.p0, + -0x1.00001p-1 + }, + { // Entry 329 + 0x1.p1, + 0x1.80001p0 + }, + { // Entry 330 + 0x1.p0, + 0x1.7ffffp0 + }, + { // Entry 331 + -0x1.p1, + -0x1.80001p0 + }, + { // Entry 332 + -0x1.p0, + -0x1.7ffffp0 + } +}; diff --git a/tests/math_data/roundf_intel_data.h b/tests/math_data/roundf_intel_data.h new file mode 100644 index 000000000..467cdeff9 --- /dev/null +++ b/tests/math_data/roundf_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_roundf_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.p-149 + }, + { // Entry 1 + 0.0, + 0.0 + }, + { // Entry 2 + 0.0, + 0x1.p-149 + }, + { // Entry 3 + 0.0, + 0x1.fffffep-2 + }, + { // Entry 4 + 0x1.p0, + 0x1.p-1 + }, + { // Entry 5 + 0x1.p0, + 0x1.000002p-1 + }, + { // Entry 6 + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.p0 + }, + { // Entry 8 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 9 + 0x1.p0, + 0x1.7ffffep0 + }, + { // Entry 10 + 0x1.p1, + 0x1.80p0 + }, + { // Entry 11 + 0x1.p1, + 0x1.800002p0 + }, + { // Entry 12 + 0x1.p1, + 0x1.fffffep0 + }, + { // Entry 13 + 0x1.p1, + 0x1.p1 + }, + { // Entry 14 + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 15 + 0x1.p1, + 0x1.3ffffep1 + }, + { // Entry 16 + 0x1.80p1, + 0x1.40p1 + }, + { // Entry 17 + 0x1.80p1, + 0x1.400002p1 + }, + { // Entry 18 + 0x1.90p6, + 0x1.8ffffep6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.90p6 + }, + { // Entry 20 + 0x1.90p6, + 0x1.900002p6 + }, + { // Entry 21 + 0x1.90p6, + 0x1.91fffep6 + }, + { // Entry 22 + 0x1.94p6, + 0x1.92p6 + }, + { // Entry 23 + 0x1.94p6, + 0x1.920002p6 + }, + { // Entry 24 + 0x1.f4p9, + 0x1.f3fffep9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f4p9 + }, + { // Entry 26 + 0x1.f4p9, + 0x1.f40002p9 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.f43ffep9 + }, + { // Entry 28 + 0x1.f480p9, + 0x1.f440p9 + }, + { // Entry 29 + 0x1.f480p9, + 0x1.f44002p9 + }, + { // Entry 30 + 0x1.p21, + 0x1.fffffep20 + }, + { // Entry 31 + 0x1.p21, + 0x1.p21 + }, + { // Entry 32 + 0x1.p21, + 0x1.000002p21 + }, + { // Entry 33 + 0x1.p22, + 0x1.fffffep21 + }, + { // Entry 34 + 0x1.p22, + 0x1.p22 + }, + { // Entry 35 + 0x1.000004p22, + 0x1.000002p22 + }, + { // Entry 36 + 0x1.p23, + 0x1.fffffep22 + }, + { // Entry 37 + 0x1.p23, + 0x1.p23 + }, + { // Entry 38 + 0x1.000002p23, + 0x1.000002p23 + }, + { // Entry 39 + 0x1.fffffep23, + 0x1.fffffep23 + }, + { // Entry 40 + 0x1.p24, + 0x1.p24 + }, + { // Entry 41 + 0x1.000002p24, + 0x1.000002p24 + }, + { // Entry 42 + 0x1.fffffep24, + 0x1.fffffep24 + }, + { // Entry 43 + 0x1.p25, + 0x1.p25 + }, + { // Entry 44 + 0x1.000002p25, + 0x1.000002p25 + }, + { // Entry 45 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 46 + -0x1.p0, + -0x1.000002p-1 + }, + { // Entry 47 + -0x1.p0, + -0x1.p-1 + }, + { // Entry 48 + -0.0, + -0x1.fffffep-2 + }, + { // Entry 49 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.p0 + }, + { // Entry 51 + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 52 + -0x1.p1, + -0x1.800002p0 + }, + { // Entry 53 + -0x1.p1, + -0x1.80p0 + }, + { // Entry 54 + -0x1.p0, + -0x1.7ffffep0 + }, + { // Entry 55 + -0x1.p1, + -0x1.000002p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.p1 + }, + { // Entry 57 + -0x1.p1, + -0x1.fffffep0 + }, + { // Entry 58 + -0x1.80p1, + -0x1.400002p1 + }, + { // Entry 59 + -0x1.80p1, + -0x1.40p1 + }, + { // Entry 60 + -0x1.p1, + -0x1.3ffffep1 + }, + { // Entry 61 + -0x1.90p6, + -0x1.900002p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.90p6 + }, + { // Entry 63 + -0x1.90p6, + -0x1.8ffffep6 + }, + { // Entry 64 + -0x1.94p6, + -0x1.920002p6 + }, + { // Entry 65 + -0x1.94p6, + -0x1.92p6 + }, + { // Entry 66 + -0x1.90p6, + -0x1.91fffep6 + }, + { // Entry 67 + -0x1.f4p9, + -0x1.f40002p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f4p9 + }, + { // Entry 69 + -0x1.f4p9, + -0x1.f3fffep9 + }, + { // Entry 70 + -0x1.f480p9, + -0x1.f44002p9 + }, + { // Entry 71 + -0x1.f480p9, + -0x1.f440p9 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f43ffep9 + }, + { // Entry 73 + -0x1.p21, + -0x1.000002p21 + }, + { // Entry 74 + -0x1.p21, + -0x1.p21 + }, + { // Entry 75 + -0x1.p21, + -0x1.fffffep20 + }, + { // Entry 76 + -0x1.000004p22, + -0x1.000002p22 + }, + { // Entry 77 + -0x1.p22, + -0x1.p22 + }, + { // Entry 78 + -0x1.p22, + -0x1.fffffep21 + }, + { // Entry 79 + -0x1.000002p23, + -0x1.000002p23 + }, + { // Entry 80 + -0x1.p23, + -0x1.p23 + }, + { // Entry 81 + -0x1.p23, + -0x1.fffffep22 + }, + { // Entry 82 + -0x1.000002p24, + -0x1.000002p24 + }, + { // Entry 83 + -0x1.p24, + -0x1.p24 + }, + { // Entry 84 + -0x1.fffffep23, + -0x1.fffffep23 + }, + { // Entry 85 + -0x1.000002p25, + -0x1.000002p25 + }, + { // Entry 86 + -0x1.p25, + -0x1.p25 + }, + { // Entry 87 + -0x1.fffffep24, + -0x1.fffffep24 + }, + { // Entry 88 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 89 + 0x1.fffffep29, + 0x1.fffffep29 + }, + { // Entry 90 + 0x1.p30, + 0x1.p30 + }, + { // Entry 91 + 0x1.000002p30, + 0x1.000002p30 + }, + { // Entry 92 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 93 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 94 + 0x1.p31, + 0x1.p31 + }, + { // Entry 95 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 96 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 97 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 98 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 99 + 0x1.p31, + 0x1.p31 + }, + { // Entry 100 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 101 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 102 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 103 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 104 + 0x1.p31, + 0x1.p31 + }, + { // Entry 105 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 106 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 107 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 108 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 109 + 0x1.p31, + 0x1.p31 + }, + { // Entry 110 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 111 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 112 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 113 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 114 + 0x1.p31, + 0x1.p31 + }, + { // Entry 115 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 116 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 117 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 118 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 119 + 0x1.p31, + 0x1.p31 + }, + { // Entry 120 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 121 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 122 + 0x1.p31, + 0x1.p31 + }, + { // Entry 123 + 0x1.p31, + 0x1.p31 + }, + { // Entry 124 + 0x1.p31, + 0x1.p31 + }, + { // Entry 125 + 0x1.p31, + 0x1.p31 + }, + { // Entry 126 + 0x1.p31, + 0x1.p31 + }, + { // Entry 127 + 0x1.p31, + 0x1.p31 + }, + { // Entry 128 + 0x1.p31, + 0x1.p31 + }, + { // Entry 129 + 0x1.p31, + 0x1.p31 + }, + { // Entry 130 + 0x1.p31, + 0x1.p31 + }, + { // Entry 131 + 0x1.p31, + 0x1.p31 + }, + { // Entry 132 + -0x1.000002p30, + -0x1.000002p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.p30 + }, + { // Entry 134 + -0x1.fffffep29, + -0x1.fffffep29 + }, + { // Entry 135 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 136 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 137 + -0x1.p31, + -0x1.p31 + }, + { // Entry 138 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 139 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 140 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 141 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 142 + -0x1.p31, + -0x1.p31 + }, + { // Entry 143 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 144 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 145 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 146 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 147 + -0x1.p31, + -0x1.p31 + }, + { // Entry 148 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 149 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 150 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 151 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 152 + -0x1.p31, + -0x1.p31 + }, + { // Entry 153 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 154 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 155 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 156 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.p31 + }, + { // Entry 158 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 159 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 160 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 161 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.p31 + }, + { // Entry 163 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 164 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 165 + -0x1.p31, + -0x1.p31 + }, + { // Entry 166 + -0x1.p31, + -0x1.p31 + }, + { // Entry 167 + -0x1.p31, + -0x1.p31 + }, + { // Entry 168 + -0x1.p31, + -0x1.p31 + }, + { // Entry 169 + -0x1.p31, + -0x1.p31 + }, + { // Entry 170 + -0x1.p31, + -0x1.p31 + }, + { // Entry 171 + -0x1.p31, + -0x1.p31 + }, + { // Entry 172 + -0x1.p31, + -0x1.p31 + }, + { // Entry 173 + -0x1.p31, + -0x1.p31 + }, + { // Entry 174 + -0x1.p31, + -0x1.p31 + }, + { // Entry 175 + 0x1.fffffcp61, + 0x1.fffffcp61 + }, + { // Entry 176 + 0x1.fffffep61, + 0x1.fffffep61 + }, + { // Entry 177 + 0x1.p62, + 0x1.p62 + }, + { // Entry 178 + 0x1.000002p62, + 0x1.000002p62 + }, + { // Entry 179 + 0x1.000004p62, + 0x1.000004p62 + }, + { // Entry 180 + 0x1.fffffcp62, + 0x1.fffffcp62 + }, + { // Entry 181 + 0x1.fffffep62, + 0x1.fffffep62 + }, + { // Entry 182 + 0x1.p63, + 0x1.p63 + }, + { // Entry 183 + 0x1.000002p63, + 0x1.000002p63 + }, + { // Entry 184 + 0x1.000004p63, + 0x1.000004p63 + }, + { // Entry 185 + 0x1.fffffcp63, + 0x1.fffffcp63 + }, + { // Entry 186 + 0x1.fffffep63, + 0x1.fffffep63 + }, + { // Entry 187 + 0x1.p64, + 0x1.p64 + }, + { // Entry 188 + 0x1.000002p64, + 0x1.000002p64 + }, + { // Entry 189 + 0x1.000004p64, + 0x1.000004p64 + }, + { // Entry 190 + -0x1.000004p62, + -0x1.000004p62 + }, + { // Entry 191 + -0x1.000002p62, + -0x1.000002p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.p62 + }, + { // Entry 193 + -0x1.fffffep61, + -0x1.fffffep61 + }, + { // Entry 194 + -0x1.fffffcp61, + -0x1.fffffcp61 + }, + { // Entry 195 + -0x1.000004p63, + -0x1.000004p63 + }, + { // Entry 196 + -0x1.000002p63, + -0x1.000002p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.p63 + }, + { // Entry 198 + -0x1.fffffep62, + -0x1.fffffep62 + }, + { // Entry 199 + -0x1.fffffcp62, + -0x1.fffffcp62 + }, + { // Entry 200 + -0x1.000004p64, + -0x1.000004p64 + }, + { // Entry 201 + -0x1.000002p64, + -0x1.000002p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.p64 + }, + { // Entry 203 + -0x1.fffffep63, + -0x1.fffffep63 + }, + { // Entry 204 + -0x1.fffffcp63, + -0x1.fffffcp63 + }, + { // Entry 205 + 0x1.p62, + 0x1.p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.p63 + }, + { // Entry 209 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 210 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 211 + 0x1.p31, + 0x1.p31 + }, + { // Entry 212 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.p31 + }, + { // Entry 214 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 215 + 0x1.p2, + 0x1.fffffep1 + }, + { // Entry 216 + 0x1.p2, + 0x1.p2 + }, + { // Entry 217 + 0x1.p2, + 0x1.000002p2 + }, + { // Entry 218 + 0x1.p3, + 0x1.fffffep2 + }, + { // Entry 219 + 0x1.p3, + 0x1.p3 + }, + { // Entry 220 + 0x1.p3, + 0x1.000002p3 + }, + { // Entry 221 + 0x1.p4, + 0x1.fffffep3 + }, + { // Entry 222 + 0x1.p4, + 0x1.p4 + }, + { // Entry 223 + 0x1.p4, + 0x1.000002p4 + }, + { // Entry 224 + 0x1.p5, + 0x1.fffffep4 + }, + { // Entry 225 + 0x1.p5, + 0x1.p5 + }, + { // Entry 226 + 0x1.p5, + 0x1.000002p5 + }, + { // Entry 227 + 0x1.p6, + 0x1.fffffep5 + }, + { // Entry 228 + 0x1.p6, + 0x1.p6 + }, + { // Entry 229 + 0x1.p6, + 0x1.000002p6 + }, + { // Entry 230 + 0x1.p7, + 0x1.fffffep6 + }, + { // Entry 231 + 0x1.p7, + 0x1.p7 + }, + { // Entry 232 + 0x1.p7, + 0x1.000002p7 + }, + { // Entry 233 + 0x1.p8, + 0x1.fffffep7 + }, + { // Entry 234 + 0x1.p8, + 0x1.p8 + }, + { // Entry 235 + 0x1.p8, + 0x1.000002p8 + }, + { // Entry 236 + 0x1.p9, + 0x1.fffffep8 + }, + { // Entry 237 + 0x1.p9, + 0x1.p9 + }, + { // Entry 238 + 0x1.p9, + 0x1.000002p9 + }, + { // Entry 239 + 0x1.p10, + 0x1.fffffep9 + }, + { // Entry 240 + 0x1.p10, + 0x1.p10 + }, + { // Entry 241 + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 242 + 0x1.p11, + 0x1.fffffep10 + }, + { // Entry 243 + 0x1.p11, + 0x1.p11 + }, + { // Entry 244 + 0x1.p11, + 0x1.000002p11 + }, + { // Entry 245 + 0x1.p12, + 0x1.fffffep11 + }, + { // Entry 246 + 0x1.p12, + 0x1.p12 + }, + { // Entry 247 + 0x1.p12, + 0x1.000002p12 + }, + { // Entry 248 + 0x1.p2, + 0x1.1ffffep2 + }, + { // Entry 249 + 0x1.40p2, + 0x1.20p2 + }, + { // Entry 250 + 0x1.40p2, + 0x1.200002p2 + }, + { // Entry 251 + 0x1.p3, + 0x1.0ffffep3 + }, + { // Entry 252 + 0x1.20p3, + 0x1.10p3 + }, + { // Entry 253 + 0x1.20p3, + 0x1.100002p3 + }, + { // Entry 254 + 0x1.p4, + 0x1.07fffep4 + }, + { // Entry 255 + 0x1.10p4, + 0x1.08p4 + }, + { // Entry 256 + 0x1.10p4, + 0x1.080002p4 + }, + { // Entry 257 + 0x1.p5, + 0x1.03fffep5 + }, + { // Entry 258 + 0x1.08p5, + 0x1.04p5 + }, + { // Entry 259 + 0x1.08p5, + 0x1.040002p5 + }, + { // Entry 260 + 0x1.p6, + 0x1.01fffep6 + }, + { // Entry 261 + 0x1.04p6, + 0x1.02p6 + }, + { // Entry 262 + 0x1.04p6, + 0x1.020002p6 + }, + { // Entry 263 + 0x1.p7, + 0x1.00fffep7 + }, + { // Entry 264 + 0x1.02p7, + 0x1.01p7 + }, + { // Entry 265 + 0x1.02p7, + 0x1.010002p7 + }, + { // Entry 266 + 0x1.p8, + 0x1.007ffep8 + }, + { // Entry 267 + 0x1.01p8, + 0x1.0080p8 + }, + { // Entry 268 + 0x1.01p8, + 0x1.008002p8 + }, + { // Entry 269 + 0x1.p9, + 0x1.003ffep9 + }, + { // Entry 270 + 0x1.0080p9, + 0x1.0040p9 + }, + { // Entry 271 + 0x1.0080p9, + 0x1.004002p9 + }, + { // Entry 272 + 0x1.p10, + 0x1.001ffep10 + }, + { // Entry 273 + 0x1.0040p10, + 0x1.0020p10 + }, + { // Entry 274 + 0x1.0040p10, + 0x1.002002p10 + }, + { // Entry 275 + 0x1.0040p10, + 0x1.005ffep10 + }, + { // Entry 276 + 0x1.0080p10, + 0x1.0060p10 + }, + { // Entry 277 + 0x1.0080p10, + 0x1.006002p10 + }, + { // Entry 278 + 0x1.p11, + 0x1.000ffep11 + }, + { // Entry 279 + 0x1.0020p11, + 0x1.0010p11 + }, + { // Entry 280 + 0x1.0020p11, + 0x1.001002p11 + }, + { // Entry 281 + 0x1.p12, + 0x1.0007fep12 + }, + { // Entry 282 + 0x1.0010p12, + 0x1.0008p12 + }, + { // Entry 283 + 0x1.0010p12, + 0x1.000802p12 + }, + { // Entry 284 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 285 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 286 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 287 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 288 + 0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 289 + -0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 290 + 0x1.80p1, + 0x1.921fb6p1 + }, + { // Entry 291 + -0x1.80p1, + -0x1.921fb6p1 + }, + { // Entry 292 + 0x1.p1, + 0x1.921fb6p0 + }, + { // Entry 293 + -0x1.p1, + -0x1.921fb6p0 + }, + { // Entry 294 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 295 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.p0 + }, + { // Entry 298 + 0x1.p0, + 0x1.fffffep-1 + }, + { // Entry 299 + -0x1.p0, + -0x1.fffffep-1 + }, + { // Entry 300 + 0x1.p0, + 0x1.921fb6p-1 + }, + { // Entry 301 + -0x1.p0, + -0x1.921fb6p-1 + }, + { // Entry 302 + 0.0, + 0x1.000002p-126 + }, + { // Entry 303 + -0.0, + -0x1.000002p-126 + }, + { // Entry 304 + 0.0, + 0x1.p-126 + }, + { // Entry 305 + -0.0, + -0x1.p-126 + }, + { // Entry 306 + 0.0, + 0x1.fffffcp-127 + }, + { // Entry 307 + -0.0, + -0x1.fffffcp-127 + }, + { // Entry 308 + 0.0, + 0x1.fffff8p-127 + }, + { // Entry 309 + -0.0, + -0x1.fffff8p-127 + }, + { // Entry 310 + 0.0, + 0x1.p-148 + }, + { // Entry 311 + -0.0, + -0x1.p-148 + }, + { // Entry 312 + 0.0, + 0x1.p-149 + }, + { // Entry 313 + -0.0, + -0x1.p-149 + }, + { // Entry 314 + 0.0, + 0.0f + }, + { // Entry 315 + -0.0, + -0.0f + }, + { // Entry 316 + 0x1.p1, + 0x1.80p0 + }, + { // Entry 317 + -0x1.p1, + -0x1.80p0 + }, + { // Entry 318 + 0x1.80p1, + 0x1.40p1 + }, + { // Entry 319 + -0x1.80p1, + -0x1.40p1 + }, + { // Entry 320 + 0.0, + 0x1.fffff0p-2 + }, + { // Entry 321 + 0x1.p0, + 0x1.p-1 + }, + { // Entry 322 + 0x1.p0, + 0x1.000010p-1 + }, + { // Entry 323 + -0.0, + -0x1.fffff0p-2 + }, + { // Entry 324 + -0x1.p0, + -0x1.p-1 + }, + { // Entry 325 + -0x1.p0, + -0x1.000010p-1 + }, + { // Entry 326 + 0x1.p1, + 0x1.800010p0 + }, + { // Entry 327 + 0x1.p0, + 0x1.7ffff0p0 + }, + { // Entry 328 + -0x1.p1, + -0x1.800010p0 + }, + { // Entry 329 + -0x1.p0, + -0x1.7ffff0p0 + } +}; diff --git a/tests/math_data/scalb_intel_data.h b/tests/math_data/scalb_intel_data.h new file mode 100644 index 000000000..fd6c1f7d9 --- /dev/null +++ b/tests/math_data/scalb_intel_data.h @@ -0,0 +1,4628 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_scalb_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.0p-1074, + -0x1.4p3 + }, + { // Entry 1 + -0x1.55555555555560p-1024, + -0x1.5555555555556p-2, + -0x1.ff0p9 + }, + { // Entry 2 + -0x1.6db6db6db6db70p-1023, + -0x1.6db6db6db6db7p-1, + -0x1.ff0p9 + }, + { // Entry 3 + -0x1.8e38e38e38e390p-1023, + -0x1.8e38e38e38e39p-1, + -0x1.ff0p9 + }, + { // Entry 4 + 0.0, + 0x1.0p-1074, + -0x1.0p0 + }, + { // Entry 5 + 0.0, + 0x1.0p-1074, + -0x1.4p3 + }, + { // Entry 6 + 0.0, + 0x1.0p-1074, + -0x1.780p5 + }, + { // Entry 7 + 0x1.p-51, + 0x1.0p-1074, + 0x1.ff8p9 + }, + { // Entry 8 + 0x1.5464a606112880p-1026, + 0x1.5464a60611288p-2, + -0x1.0p10 + }, + { // Entry 9 + HUGE_VAL, + 0x1.8e147ae147ae1p0, + 0x1.fffffffc0p30 + }, + { // Entry 10 + 0.0, + 0x1.dddddddddddddp-2, + -0x1.0c4p10 + }, + { // Entry 11 + 0.0, + 0x1.f7df7df7df7dfp-2, + -0x1.0c4p10 + }, + { // Entry 12 + HUGE_VAL, + 0x1.ffffffffffff6p30, + 0x1.0p31 + }, + { // Entry 13 + 0x1.ffffffffffffc0p-1033, + 0x1.ffffffffffffcp-1023, + -0x1.4p3 + }, + { // Entry 14 + 0x1.ffffffffffffc0p-1022, + 0x1.ffffffffffffcp-1023, + 0x1.0p0 + }, + { // Entry 15 + 0x1.ffffffffffffe0p-1070, + 0x1.ffffffffffffep-1023, + -0x1.780p5 + }, + { // Entry 16 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p0 + }, + { // Entry 17 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffc0p30 + }, + { // Entry 18 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffc0p30 + }, + { // Entry 19 + -0x1.p-10, + -0x1.0p0, + -0x1.4p3 + }, + { // Entry 20 + -0x1.p-9, + -0x1.0p0, + -0x1.2p3 + }, + { // Entry 21 + -0x1.p-8, + -0x1.0p0, + -0x1.0p3 + }, + { // Entry 22 + -0x1.p-7, + -0x1.0p0, + -0x1.cp2 + }, + { // Entry 23 + -0x1.p-6, + -0x1.0p0, + -0x1.8p2 + }, + { // Entry 24 + -0x1.p-5, + -0x1.0p0, + -0x1.4p2 + }, + { // Entry 25 + -0x1.p-4, + -0x1.0p0, + -0x1.0p2 + }, + { // Entry 26 + -0x1.p-3, + -0x1.0p0, + -0x1.8p1 + }, + { // Entry 27 + -0x1.p-2, + -0x1.0p0, + -0x1.0p1 + }, + { // Entry 28 + -0x1.p-1, + -0x1.0p0, + -0x1.0p0 + }, + { // Entry 29 + -0x1.p0, + -0x1.0p0, + 0.0 + }, + { // Entry 30 + -0x1.p1, + -0x1.0p0, + 0x1.0p0 + }, + { // Entry 31 + -0x1.p2, + -0x1.0p0, + 0x1.0p1 + }, + { // Entry 32 + -0x1.p3, + -0x1.0p0, + 0x1.8p1 + }, + { // Entry 33 + -0x1.p4, + -0x1.0p0, + 0x1.0p2 + }, + { // Entry 34 + -0x1.p5, + -0x1.0p0, + 0x1.4p2 + }, + { // Entry 35 + -0x1.p6, + -0x1.0p0, + 0x1.8p2 + }, + { // Entry 36 + -0x1.p7, + -0x1.0p0, + 0x1.cp2 + }, + { // Entry 37 + -0x1.p8, + -0x1.0p0, + 0x1.0p3 + }, + { // Entry 38 + -0x1.p9, + -0x1.0p0, + 0x1.2p3 + }, + { // Entry 39 + -0x1.p10, + -0x1.0p0, + 0x1.4p3 + }, + { // Entry 40 + -0x1.d1745d1745d170p-11, + -0x1.d1745d1745d17p-1, + -0x1.4p3 + }, + { // Entry 41 + -0x1.d1745d1745d170p-10, + -0x1.d1745d1745d17p-1, + -0x1.2p3 + }, + { // Entry 42 + -0x1.d1745d1745d170p-9, + -0x1.d1745d1745d17p-1, + -0x1.0p3 + }, + { // Entry 43 + -0x1.d1745d1745d170p-8, + -0x1.d1745d1745d17p-1, + -0x1.cp2 + }, + { // Entry 44 + -0x1.d1745d1745d170p-7, + -0x1.d1745d1745d17p-1, + -0x1.8p2 + }, + { // Entry 45 + -0x1.d1745d1745d170p-6, + -0x1.d1745d1745d17p-1, + -0x1.4p2 + }, + { // Entry 46 + -0x1.d1745d1745d170p-5, + -0x1.d1745d1745d17p-1, + -0x1.0p2 + }, + { // Entry 47 + -0x1.d1745d1745d170p-4, + -0x1.d1745d1745d17p-1, + -0x1.8p1 + }, + { // Entry 48 + -0x1.d1745d1745d170p-3, + -0x1.d1745d1745d17p-1, + -0x1.0p1 + }, + { // Entry 49 + -0x1.d1745d1745d170p-2, + -0x1.d1745d1745d17p-1, + -0x1.0p0 + }, + { // Entry 50 + -0x1.d1745d1745d170p-1, + -0x1.d1745d1745d17p-1, + 0.0 + }, + { // Entry 51 + -0x1.d1745d1745d170p0, + -0x1.d1745d1745d17p-1, + 0x1.0p0 + }, + { // Entry 52 + -0x1.d1745d1745d170p1, + -0x1.d1745d1745d17p-1, + 0x1.0p1 + }, + { // Entry 53 + -0x1.d1745d1745d170p2, + -0x1.d1745d1745d17p-1, + 0x1.8p1 + }, + { // Entry 54 + -0x1.d1745d1745d170p3, + -0x1.d1745d1745d17p-1, + 0x1.0p2 + }, + { // Entry 55 + -0x1.d1745d1745d170p4, + -0x1.d1745d1745d17p-1, + 0x1.4p2 + }, + { // Entry 56 + -0x1.d1745d1745d170p5, + -0x1.d1745d1745d17p-1, + 0x1.8p2 + }, + { // Entry 57 + -0x1.d1745d1745d170p6, + -0x1.d1745d1745d17p-1, + 0x1.cp2 + }, + { // Entry 58 + -0x1.d1745d1745d170p7, + -0x1.d1745d1745d17p-1, + 0x1.0p3 + }, + { // Entry 59 + -0x1.d1745d1745d170p8, + -0x1.d1745d1745d17p-1, + 0x1.2p3 + }, + { // Entry 60 + -0x1.d1745d1745d170p9, + -0x1.d1745d1745d17p-1, + 0x1.4p3 + }, + { // Entry 61 + -0x1.a2e8ba2e8ba2e0p-11, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.4p3 + }, + { // Entry 62 + -0x1.a2e8ba2e8ba2e0p-10, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.2p3 + }, + { // Entry 63 + -0x1.a2e8ba2e8ba2e0p-9, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.0p3 + }, + { // Entry 64 + -0x1.a2e8ba2e8ba2e0p-8, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.cp2 + }, + { // Entry 65 + -0x1.a2e8ba2e8ba2e0p-7, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.8p2 + }, + { // Entry 66 + -0x1.a2e8ba2e8ba2e0p-6, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.4p2 + }, + { // Entry 67 + -0x1.a2e8ba2e8ba2e0p-5, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.0p2 + }, + { // Entry 68 + -0x1.a2e8ba2e8ba2e0p-4, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.8p1 + }, + { // Entry 69 + -0x1.a2e8ba2e8ba2e0p-3, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.0p1 + }, + { // Entry 70 + -0x1.a2e8ba2e8ba2e0p-2, + -0x1.a2e8ba2e8ba2ep-1, + -0x1.0p0 + }, + { // Entry 71 + -0x1.a2e8ba2e8ba2e0p-1, + -0x1.a2e8ba2e8ba2ep-1, + 0.0 + }, + { // Entry 72 + -0x1.a2e8ba2e8ba2e0p0, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.0p0 + }, + { // Entry 73 + -0x1.a2e8ba2e8ba2e0p1, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.0p1 + }, + { // Entry 74 + -0x1.a2e8ba2e8ba2e0p2, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.8p1 + }, + { // Entry 75 + -0x1.a2e8ba2e8ba2e0p3, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.0p2 + }, + { // Entry 76 + -0x1.a2e8ba2e8ba2e0p4, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.4p2 + }, + { // Entry 77 + -0x1.a2e8ba2e8ba2e0p5, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.8p2 + }, + { // Entry 78 + -0x1.a2e8ba2e8ba2e0p6, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.cp2 + }, + { // Entry 79 + -0x1.a2e8ba2e8ba2e0p7, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.0p3 + }, + { // Entry 80 + -0x1.a2e8ba2e8ba2e0p8, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.2p3 + }, + { // Entry 81 + -0x1.a2e8ba2e8ba2e0p9, + -0x1.a2e8ba2e8ba2ep-1, + 0x1.4p3 + }, + { // Entry 82 + -0x1.745d1745d17450p-11, + -0x1.745d1745d1745p-1, + -0x1.4p3 + }, + { // Entry 83 + -0x1.745d1745d17450p-10, + -0x1.745d1745d1745p-1, + -0x1.2p3 + }, + { // Entry 84 + -0x1.745d1745d17450p-9, + -0x1.745d1745d1745p-1, + -0x1.0p3 + }, + { // Entry 85 + -0x1.745d1745d17450p-8, + -0x1.745d1745d1745p-1, + -0x1.cp2 + }, + { // Entry 86 + -0x1.745d1745d17450p-7, + -0x1.745d1745d1745p-1, + -0x1.8p2 + }, + { // Entry 87 + -0x1.745d1745d17450p-6, + -0x1.745d1745d1745p-1, + -0x1.4p2 + }, + { // Entry 88 + -0x1.745d1745d17450p-5, + -0x1.745d1745d1745p-1, + -0x1.0p2 + }, + { // Entry 89 + -0x1.745d1745d17450p-4, + -0x1.745d1745d1745p-1, + -0x1.8p1 + }, + { // Entry 90 + -0x1.745d1745d17450p-3, + -0x1.745d1745d1745p-1, + -0x1.0p1 + }, + { // Entry 91 + -0x1.745d1745d17450p-2, + -0x1.745d1745d1745p-1, + -0x1.0p0 + }, + { // Entry 92 + -0x1.745d1745d17450p-1, + -0x1.745d1745d1745p-1, + 0.0 + }, + { // Entry 93 + -0x1.745d1745d17450p0, + -0x1.745d1745d1745p-1, + 0x1.0p0 + }, + { // Entry 94 + -0x1.745d1745d17450p1, + -0x1.745d1745d1745p-1, + 0x1.0p1 + }, + { // Entry 95 + -0x1.745d1745d17450p2, + -0x1.745d1745d1745p-1, + 0x1.8p1 + }, + { // Entry 96 + -0x1.745d1745d17450p3, + -0x1.745d1745d1745p-1, + 0x1.0p2 + }, + { // Entry 97 + -0x1.745d1745d17450p4, + -0x1.745d1745d1745p-1, + 0x1.4p2 + }, + { // Entry 98 + -0x1.745d1745d17450p5, + -0x1.745d1745d1745p-1, + 0x1.8p2 + }, + { // Entry 99 + -0x1.745d1745d17450p6, + -0x1.745d1745d1745p-1, + 0x1.cp2 + }, + { // Entry 100 + -0x1.745d1745d17450p7, + -0x1.745d1745d1745p-1, + 0x1.0p3 + }, + { // Entry 101 + -0x1.745d1745d17450p8, + -0x1.745d1745d1745p-1, + 0x1.2p3 + }, + { // Entry 102 + -0x1.745d1745d17450p9, + -0x1.745d1745d1745p-1, + 0x1.4p3 + }, + { // Entry 103 + -0x1.45d1745d1745c0p-11, + -0x1.45d1745d1745cp-1, + -0x1.4p3 + }, + { // Entry 104 + -0x1.45d1745d1745c0p-10, + -0x1.45d1745d1745cp-1, + -0x1.2p3 + }, + { // Entry 105 + -0x1.45d1745d1745c0p-9, + -0x1.45d1745d1745cp-1, + -0x1.0p3 + }, + { // Entry 106 + -0x1.45d1745d1745c0p-8, + -0x1.45d1745d1745cp-1, + -0x1.cp2 + }, + { // Entry 107 + -0x1.45d1745d1745c0p-7, + -0x1.45d1745d1745cp-1, + -0x1.8p2 + }, + { // Entry 108 + -0x1.45d1745d1745c0p-6, + -0x1.45d1745d1745cp-1, + -0x1.4p2 + }, + { // Entry 109 + -0x1.45d1745d1745c0p-5, + -0x1.45d1745d1745cp-1, + -0x1.0p2 + }, + { // Entry 110 + -0x1.45d1745d1745c0p-4, + -0x1.45d1745d1745cp-1, + -0x1.8p1 + }, + { // Entry 111 + -0x1.45d1745d1745c0p-3, + -0x1.45d1745d1745cp-1, + -0x1.0p1 + }, + { // Entry 112 + -0x1.45d1745d1745c0p-2, + -0x1.45d1745d1745cp-1, + -0x1.0p0 + }, + { // Entry 113 + -0x1.45d1745d1745c0p-1, + -0x1.45d1745d1745cp-1, + 0.0 + }, + { // Entry 114 + -0x1.45d1745d1745c0p0, + -0x1.45d1745d1745cp-1, + 0x1.0p0 + }, + { // Entry 115 + -0x1.45d1745d1745c0p1, + -0x1.45d1745d1745cp-1, + 0x1.0p1 + }, + { // Entry 116 + -0x1.45d1745d1745c0p2, + -0x1.45d1745d1745cp-1, + 0x1.8p1 + }, + { // Entry 117 + -0x1.45d1745d1745c0p3, + -0x1.45d1745d1745cp-1, + 0x1.0p2 + }, + { // Entry 118 + -0x1.45d1745d1745c0p4, + -0x1.45d1745d1745cp-1, + 0x1.4p2 + }, + { // Entry 119 + -0x1.45d1745d1745c0p5, + -0x1.45d1745d1745cp-1, + 0x1.8p2 + }, + { // Entry 120 + -0x1.45d1745d1745c0p6, + -0x1.45d1745d1745cp-1, + 0x1.cp2 + }, + { // Entry 121 + -0x1.45d1745d1745c0p7, + -0x1.45d1745d1745cp-1, + 0x1.0p3 + }, + { // Entry 122 + -0x1.45d1745d1745c0p8, + -0x1.45d1745d1745cp-1, + 0x1.2p3 + }, + { // Entry 123 + -0x1.45d1745d1745c0p9, + -0x1.45d1745d1745cp-1, + 0x1.4p3 + }, + { // Entry 124 + -0x1.1745d1745d1730p-11, + -0x1.1745d1745d173p-1, + -0x1.4p3 + }, + { // Entry 125 + -0x1.1745d1745d1730p-10, + -0x1.1745d1745d173p-1, + -0x1.2p3 + }, + { // Entry 126 + -0x1.1745d1745d1730p-9, + -0x1.1745d1745d173p-1, + -0x1.0p3 + }, + { // Entry 127 + -0x1.1745d1745d1730p-8, + -0x1.1745d1745d173p-1, + -0x1.cp2 + }, + { // Entry 128 + -0x1.1745d1745d1730p-7, + -0x1.1745d1745d173p-1, + -0x1.8p2 + }, + { // Entry 129 + -0x1.1745d1745d1730p-6, + -0x1.1745d1745d173p-1, + -0x1.4p2 + }, + { // Entry 130 + -0x1.1745d1745d1730p-5, + -0x1.1745d1745d173p-1, + -0x1.0p2 + }, + { // Entry 131 + -0x1.1745d1745d1730p-4, + -0x1.1745d1745d173p-1, + -0x1.8p1 + }, + { // Entry 132 + -0x1.1745d1745d1730p-3, + -0x1.1745d1745d173p-1, + -0x1.0p1 + }, + { // Entry 133 + -0x1.1745d1745d1730p-2, + -0x1.1745d1745d173p-1, + -0x1.0p0 + }, + { // Entry 134 + -0x1.1745d1745d1730p-1, + -0x1.1745d1745d173p-1, + 0.0 + }, + { // Entry 135 + -0x1.1745d1745d1730p0, + -0x1.1745d1745d173p-1, + 0x1.0p0 + }, + { // Entry 136 + -0x1.1745d1745d1730p1, + -0x1.1745d1745d173p-1, + 0x1.0p1 + }, + { // Entry 137 + -0x1.1745d1745d1730p2, + -0x1.1745d1745d173p-1, + 0x1.8p1 + }, + { // Entry 138 + -0x1.1745d1745d1730p3, + -0x1.1745d1745d173p-1, + 0x1.0p2 + }, + { // Entry 139 + -0x1.1745d1745d1730p4, + -0x1.1745d1745d173p-1, + 0x1.4p2 + }, + { // Entry 140 + -0x1.1745d1745d1730p5, + -0x1.1745d1745d173p-1, + 0x1.8p2 + }, + { // Entry 141 + -0x1.1745d1745d1730p6, + -0x1.1745d1745d173p-1, + 0x1.cp2 + }, + { // Entry 142 + -0x1.1745d1745d1730p7, + -0x1.1745d1745d173p-1, + 0x1.0p3 + }, + { // Entry 143 + -0x1.1745d1745d1730p8, + -0x1.1745d1745d173p-1, + 0x1.2p3 + }, + { // Entry 144 + -0x1.1745d1745d1730p9, + -0x1.1745d1745d173p-1, + 0x1.4p3 + }, + { // Entry 145 + -0x1.d1745d1745d140p-12, + -0x1.d1745d1745d14p-2, + -0x1.4p3 + }, + { // Entry 146 + -0x1.d1745d1745d140p-11, + -0x1.d1745d1745d14p-2, + -0x1.2p3 + }, + { // Entry 147 + -0x1.d1745d1745d140p-10, + -0x1.d1745d1745d14p-2, + -0x1.0p3 + }, + { // Entry 148 + -0x1.d1745d1745d140p-9, + -0x1.d1745d1745d14p-2, + -0x1.cp2 + }, + { // Entry 149 + -0x1.d1745d1745d140p-8, + -0x1.d1745d1745d14p-2, + -0x1.8p2 + }, + { // Entry 150 + -0x1.d1745d1745d140p-7, + -0x1.d1745d1745d14p-2, + -0x1.4p2 + }, + { // Entry 151 + -0x1.d1745d1745d140p-6, + -0x1.d1745d1745d14p-2, + -0x1.0p2 + }, + { // Entry 152 + -0x1.d1745d1745d140p-5, + -0x1.d1745d1745d14p-2, + -0x1.8p1 + }, + { // Entry 153 + -0x1.d1745d1745d140p-4, + -0x1.d1745d1745d14p-2, + -0x1.0p1 + }, + { // Entry 154 + -0x1.d1745d1745d140p-3, + -0x1.d1745d1745d14p-2, + -0x1.0p0 + }, + { // Entry 155 + -0x1.d1745d1745d140p-2, + -0x1.d1745d1745d14p-2, + 0.0 + }, + { // Entry 156 + -0x1.d1745d1745d140p-1, + -0x1.d1745d1745d14p-2, + 0x1.0p0 + }, + { // Entry 157 + -0x1.d1745d1745d140p0, + -0x1.d1745d1745d14p-2, + 0x1.0p1 + }, + { // Entry 158 + -0x1.d1745d1745d140p1, + -0x1.d1745d1745d14p-2, + 0x1.8p1 + }, + { // Entry 159 + -0x1.d1745d1745d140p2, + -0x1.d1745d1745d14p-2, + 0x1.0p2 + }, + { // Entry 160 + -0x1.d1745d1745d140p3, + -0x1.d1745d1745d14p-2, + 0x1.4p2 + }, + { // Entry 161 + -0x1.d1745d1745d140p4, + -0x1.d1745d1745d14p-2, + 0x1.8p2 + }, + { // Entry 162 + -0x1.d1745d1745d140p5, + -0x1.d1745d1745d14p-2, + 0x1.cp2 + }, + { // Entry 163 + -0x1.d1745d1745d140p6, + -0x1.d1745d1745d14p-2, + 0x1.0p3 + }, + { // Entry 164 + -0x1.d1745d1745d140p7, + -0x1.d1745d1745d14p-2, + 0x1.2p3 + }, + { // Entry 165 + -0x1.d1745d1745d140p8, + -0x1.d1745d1745d14p-2, + 0x1.4p3 + }, + { // Entry 166 + -0x1.745d1745d17420p-12, + -0x1.745d1745d1742p-2, + -0x1.4p3 + }, + { // Entry 167 + -0x1.745d1745d17420p-11, + -0x1.745d1745d1742p-2, + -0x1.2p3 + }, + { // Entry 168 + -0x1.745d1745d17420p-10, + -0x1.745d1745d1742p-2, + -0x1.0p3 + }, + { // Entry 169 + -0x1.745d1745d17420p-9, + -0x1.745d1745d1742p-2, + -0x1.cp2 + }, + { // Entry 170 + -0x1.745d1745d17420p-8, + -0x1.745d1745d1742p-2, + -0x1.8p2 + }, + { // Entry 171 + -0x1.745d1745d17420p-7, + -0x1.745d1745d1742p-2, + -0x1.4p2 + }, + { // Entry 172 + -0x1.745d1745d17420p-6, + -0x1.745d1745d1742p-2, + -0x1.0p2 + }, + { // Entry 173 + -0x1.745d1745d17420p-5, + -0x1.745d1745d1742p-2, + -0x1.8p1 + }, + { // Entry 174 + -0x1.745d1745d17420p-4, + -0x1.745d1745d1742p-2, + -0x1.0p1 + }, + { // Entry 175 + -0x1.745d1745d17420p-3, + -0x1.745d1745d1742p-2, + -0x1.0p0 + }, + { // Entry 176 + -0x1.745d1745d17420p-2, + -0x1.745d1745d1742p-2, + 0.0 + }, + { // Entry 177 + -0x1.745d1745d17420p-1, + -0x1.745d1745d1742p-2, + 0x1.0p0 + }, + { // Entry 178 + -0x1.745d1745d17420p0, + -0x1.745d1745d1742p-2, + 0x1.0p1 + }, + { // Entry 179 + -0x1.745d1745d17420p1, + -0x1.745d1745d1742p-2, + 0x1.8p1 + }, + { // Entry 180 + -0x1.745d1745d17420p2, + -0x1.745d1745d1742p-2, + 0x1.0p2 + }, + { // Entry 181 + -0x1.745d1745d17420p3, + -0x1.745d1745d1742p-2, + 0x1.4p2 + }, + { // Entry 182 + -0x1.745d1745d17420p4, + -0x1.745d1745d1742p-2, + 0x1.8p2 + }, + { // Entry 183 + -0x1.745d1745d17420p5, + -0x1.745d1745d1742p-2, + 0x1.cp2 + }, + { // Entry 184 + -0x1.745d1745d17420p6, + -0x1.745d1745d1742p-2, + 0x1.0p3 + }, + { // Entry 185 + -0x1.745d1745d17420p7, + -0x1.745d1745d1742p-2, + 0x1.2p3 + }, + { // Entry 186 + -0x1.745d1745d17420p8, + -0x1.745d1745d1742p-2, + 0x1.4p3 + }, + { // Entry 187 + -0x1.1745d1745d17p-12, + -0x1.1745d1745d170p-2, + -0x1.4p3 + }, + { // Entry 188 + -0x1.1745d1745d17p-11, + -0x1.1745d1745d170p-2, + -0x1.2p3 + }, + { // Entry 189 + -0x1.1745d1745d17p-10, + -0x1.1745d1745d170p-2, + -0x1.0p3 + }, + { // Entry 190 + -0x1.1745d1745d17p-9, + -0x1.1745d1745d170p-2, + -0x1.cp2 + }, + { // Entry 191 + -0x1.1745d1745d17p-8, + -0x1.1745d1745d170p-2, + -0x1.8p2 + }, + { // Entry 192 + -0x1.1745d1745d17p-7, + -0x1.1745d1745d170p-2, + -0x1.4p2 + }, + { // Entry 193 + -0x1.1745d1745d17p-6, + -0x1.1745d1745d170p-2, + -0x1.0p2 + }, + { // Entry 194 + -0x1.1745d1745d17p-5, + -0x1.1745d1745d170p-2, + -0x1.8p1 + }, + { // Entry 195 + -0x1.1745d1745d17p-4, + -0x1.1745d1745d170p-2, + -0x1.0p1 + }, + { // Entry 196 + -0x1.1745d1745d17p-3, + -0x1.1745d1745d170p-2, + -0x1.0p0 + }, + { // Entry 197 + -0x1.1745d1745d17p-2, + -0x1.1745d1745d170p-2, + 0.0 + }, + { // Entry 198 + -0x1.1745d1745d17p-1, + -0x1.1745d1745d170p-2, + 0x1.0p0 + }, + { // Entry 199 + -0x1.1745d1745d17p0, + -0x1.1745d1745d170p-2, + 0x1.0p1 + }, + { // Entry 200 + -0x1.1745d1745d17p1, + -0x1.1745d1745d170p-2, + 0x1.8p1 + }, + { // Entry 201 + -0x1.1745d1745d17p2, + -0x1.1745d1745d170p-2, + 0x1.0p2 + }, + { // Entry 202 + -0x1.1745d1745d17p3, + -0x1.1745d1745d170p-2, + 0x1.4p2 + }, + { // Entry 203 + -0x1.1745d1745d17p4, + -0x1.1745d1745d170p-2, + 0x1.8p2 + }, + { // Entry 204 + -0x1.1745d1745d17p5, + -0x1.1745d1745d170p-2, + 0x1.cp2 + }, + { // Entry 205 + -0x1.1745d1745d17p6, + -0x1.1745d1745d170p-2, + 0x1.0p3 + }, + { // Entry 206 + -0x1.1745d1745d17p7, + -0x1.1745d1745d170p-2, + 0x1.2p3 + }, + { // Entry 207 + -0x1.1745d1745d17p8, + -0x1.1745d1745d170p-2, + 0x1.4p3 + }, + { // Entry 208 + -0x1.745d1745d173d0p-13, + -0x1.745d1745d173dp-3, + -0x1.4p3 + }, + { // Entry 209 + -0x1.745d1745d173d0p-12, + -0x1.745d1745d173dp-3, + -0x1.2p3 + }, + { // Entry 210 + -0x1.745d1745d173d0p-11, + -0x1.745d1745d173dp-3, + -0x1.0p3 + }, + { // Entry 211 + -0x1.745d1745d173d0p-10, + -0x1.745d1745d173dp-3, + -0x1.cp2 + }, + { // Entry 212 + -0x1.745d1745d173d0p-9, + -0x1.745d1745d173dp-3, + -0x1.8p2 + }, + { // Entry 213 + -0x1.745d1745d173d0p-8, + -0x1.745d1745d173dp-3, + -0x1.4p2 + }, + { // Entry 214 + -0x1.745d1745d173d0p-7, + -0x1.745d1745d173dp-3, + -0x1.0p2 + }, + { // Entry 215 + -0x1.745d1745d173d0p-6, + -0x1.745d1745d173dp-3, + -0x1.8p1 + }, + { // Entry 216 + -0x1.745d1745d173d0p-5, + -0x1.745d1745d173dp-3, + -0x1.0p1 + }, + { // Entry 217 + -0x1.745d1745d173d0p-4, + -0x1.745d1745d173dp-3, + -0x1.0p0 + }, + { // Entry 218 + -0x1.745d1745d173d0p-3, + -0x1.745d1745d173dp-3, + 0.0 + }, + { // Entry 219 + -0x1.745d1745d173d0p-2, + -0x1.745d1745d173dp-3, + 0x1.0p0 + }, + { // Entry 220 + -0x1.745d1745d173d0p-1, + -0x1.745d1745d173dp-3, + 0x1.0p1 + }, + { // Entry 221 + -0x1.745d1745d173d0p0, + -0x1.745d1745d173dp-3, + 0x1.8p1 + }, + { // Entry 222 + -0x1.745d1745d173d0p1, + -0x1.745d1745d173dp-3, + 0x1.0p2 + }, + { // Entry 223 + -0x1.745d1745d173d0p2, + -0x1.745d1745d173dp-3, + 0x1.4p2 + }, + { // Entry 224 + -0x1.745d1745d173d0p3, + -0x1.745d1745d173dp-3, + 0x1.8p2 + }, + { // Entry 225 + -0x1.745d1745d173d0p4, + -0x1.745d1745d173dp-3, + 0x1.cp2 + }, + { // Entry 226 + -0x1.745d1745d173d0p5, + -0x1.745d1745d173dp-3, + 0x1.0p3 + }, + { // Entry 227 + -0x1.745d1745d173d0p6, + -0x1.745d1745d173dp-3, + 0x1.2p3 + }, + { // Entry 228 + -0x1.745d1745d173d0p7, + -0x1.745d1745d173dp-3, + 0x1.4p3 + }, + { // Entry 229 + -0x1.745d1745d17340p-14, + -0x1.745d1745d1734p-4, + -0x1.4p3 + }, + { // Entry 230 + -0x1.745d1745d17340p-13, + -0x1.745d1745d1734p-4, + -0x1.2p3 + }, + { // Entry 231 + -0x1.745d1745d17340p-12, + -0x1.745d1745d1734p-4, + -0x1.0p3 + }, + { // Entry 232 + -0x1.745d1745d17340p-11, + -0x1.745d1745d1734p-4, + -0x1.cp2 + }, + { // Entry 233 + -0x1.745d1745d17340p-10, + -0x1.745d1745d1734p-4, + -0x1.8p2 + }, + { // Entry 234 + -0x1.745d1745d17340p-9, + -0x1.745d1745d1734p-4, + -0x1.4p2 + }, + { // Entry 235 + -0x1.745d1745d17340p-8, + -0x1.745d1745d1734p-4, + -0x1.0p2 + }, + { // Entry 236 + -0x1.745d1745d17340p-7, + -0x1.745d1745d1734p-4, + -0x1.8p1 + }, + { // Entry 237 + -0x1.745d1745d17340p-6, + -0x1.745d1745d1734p-4, + -0x1.0p1 + }, + { // Entry 238 + -0x1.745d1745d17340p-5, + -0x1.745d1745d1734p-4, + -0x1.0p0 + }, + { // Entry 239 + -0x1.745d1745d17340p-4, + -0x1.745d1745d1734p-4, + 0.0 + }, + { // Entry 240 + -0x1.745d1745d17340p-3, + -0x1.745d1745d1734p-4, + 0x1.0p0 + }, + { // Entry 241 + -0x1.745d1745d17340p-2, + -0x1.745d1745d1734p-4, + 0x1.0p1 + }, + { // Entry 242 + -0x1.745d1745d17340p-1, + -0x1.745d1745d1734p-4, + 0x1.8p1 + }, + { // Entry 243 + -0x1.745d1745d17340p0, + -0x1.745d1745d1734p-4, + 0x1.0p2 + }, + { // Entry 244 + -0x1.745d1745d17340p1, + -0x1.745d1745d1734p-4, + 0x1.4p2 + }, + { // Entry 245 + -0x1.745d1745d17340p2, + -0x1.745d1745d1734p-4, + 0x1.8p2 + }, + { // Entry 246 + -0x1.745d1745d17340p3, + -0x1.745d1745d1734p-4, + 0x1.cp2 + }, + { // Entry 247 + -0x1.745d1745d17340p4, + -0x1.745d1745d1734p-4, + 0x1.0p3 + }, + { // Entry 248 + -0x1.745d1745d17340p5, + -0x1.745d1745d1734p-4, + 0x1.2p3 + }, + { // Entry 249 + -0x1.745d1745d17340p6, + -0x1.745d1745d1734p-4, + 0x1.4p3 + }, + { // Entry 250 + 0x1.20p-62, + 0x1.2p-52, + -0x1.4p3 + }, + { // Entry 251 + 0x1.20p-61, + 0x1.2p-52, + -0x1.2p3 + }, + { // Entry 252 + 0x1.20p-60, + 0x1.2p-52, + -0x1.0p3 + }, + { // Entry 253 + 0x1.20p-59, + 0x1.2p-52, + -0x1.cp2 + }, + { // Entry 254 + 0x1.20p-58, + 0x1.2p-52, + -0x1.8p2 + }, + { // Entry 255 + 0x1.20p-57, + 0x1.2p-52, + -0x1.4p2 + }, + { // Entry 256 + 0x1.20p-56, + 0x1.2p-52, + -0x1.0p2 + }, + { // Entry 257 + 0x1.20p-55, + 0x1.2p-52, + -0x1.8p1 + }, + { // Entry 258 + 0x1.20p-54, + 0x1.2p-52, + -0x1.0p1 + }, + { // Entry 259 + 0x1.20p-53, + 0x1.2p-52, + -0x1.0p0 + }, + { // Entry 260 + 0x1.20p-52, + 0x1.2p-52, + 0.0 + }, + { // Entry 261 + 0x1.20p-51, + 0x1.2p-52, + 0x1.0p0 + }, + { // Entry 262 + 0x1.20p-50, + 0x1.2p-52, + 0x1.0p1 + }, + { // Entry 263 + 0x1.20p-49, + 0x1.2p-52, + 0x1.8p1 + }, + { // Entry 264 + 0x1.20p-48, + 0x1.2p-52, + 0x1.0p2 + }, + { // Entry 265 + 0x1.20p-47, + 0x1.2p-52, + 0x1.4p2 + }, + { // Entry 266 + 0x1.20p-46, + 0x1.2p-52, + 0x1.8p2 + }, + { // Entry 267 + 0x1.20p-45, + 0x1.2p-52, + 0x1.cp2 + }, + { // Entry 268 + 0x1.20p-44, + 0x1.2p-52, + 0x1.0p3 + }, + { // Entry 269 + 0x1.20p-43, + 0x1.2p-52, + 0x1.2p3 + }, + { // Entry 270 + 0x1.20p-42, + 0x1.2p-52, + 0x1.4p3 + }, + { // Entry 271 + 0x1.745d1745d17580p-14, + 0x1.745d1745d1758p-4, + -0x1.4p3 + }, + { // Entry 272 + 0x1.745d1745d17580p-13, + 0x1.745d1745d1758p-4, + -0x1.2p3 + }, + { // Entry 273 + 0x1.745d1745d17580p-12, + 0x1.745d1745d1758p-4, + -0x1.0p3 + }, + { // Entry 274 + 0x1.745d1745d17580p-11, + 0x1.745d1745d1758p-4, + -0x1.cp2 + }, + { // Entry 275 + 0x1.745d1745d17580p-10, + 0x1.745d1745d1758p-4, + -0x1.8p2 + }, + { // Entry 276 + 0x1.745d1745d17580p-9, + 0x1.745d1745d1758p-4, + -0x1.4p2 + }, + { // Entry 277 + 0x1.745d1745d17580p-8, + 0x1.745d1745d1758p-4, + -0x1.0p2 + }, + { // Entry 278 + 0x1.745d1745d17580p-7, + 0x1.745d1745d1758p-4, + -0x1.8p1 + }, + { // Entry 279 + 0x1.745d1745d17580p-6, + 0x1.745d1745d1758p-4, + -0x1.0p1 + }, + { // Entry 280 + 0x1.745d1745d17580p-5, + 0x1.745d1745d1758p-4, + -0x1.0p0 + }, + { // Entry 281 + 0x1.745d1745d17580p-4, + 0x1.745d1745d1758p-4, + 0.0 + }, + { // Entry 282 + 0x1.745d1745d17580p-3, + 0x1.745d1745d1758p-4, + 0x1.0p0 + }, + { // Entry 283 + 0x1.745d1745d17580p-2, + 0x1.745d1745d1758p-4, + 0x1.0p1 + }, + { // Entry 284 + 0x1.745d1745d17580p-1, + 0x1.745d1745d1758p-4, + 0x1.8p1 + }, + { // Entry 285 + 0x1.745d1745d17580p0, + 0x1.745d1745d1758p-4, + 0x1.0p2 + }, + { // Entry 286 + 0x1.745d1745d17580p1, + 0x1.745d1745d1758p-4, + 0x1.4p2 + }, + { // Entry 287 + 0x1.745d1745d17580p2, + 0x1.745d1745d1758p-4, + 0x1.8p2 + }, + { // Entry 288 + 0x1.745d1745d17580p3, + 0x1.745d1745d1758p-4, + 0x1.cp2 + }, + { // Entry 289 + 0x1.745d1745d17580p4, + 0x1.745d1745d1758p-4, + 0x1.0p3 + }, + { // Entry 290 + 0x1.745d1745d17580p5, + 0x1.745d1745d1758p-4, + 0x1.2p3 + }, + { // Entry 291 + 0x1.745d1745d17580p6, + 0x1.745d1745d1758p-4, + 0x1.4p3 + }, + { // Entry 292 + 0x1.745d1745d174f0p-13, + 0x1.745d1745d174fp-3, + -0x1.4p3 + }, + { // Entry 293 + 0x1.745d1745d174f0p-12, + 0x1.745d1745d174fp-3, + -0x1.2p3 + }, + { // Entry 294 + 0x1.745d1745d174f0p-11, + 0x1.745d1745d174fp-3, + -0x1.0p3 + }, + { // Entry 295 + 0x1.745d1745d174f0p-10, + 0x1.745d1745d174fp-3, + -0x1.cp2 + }, + { // Entry 296 + 0x1.745d1745d174f0p-9, + 0x1.745d1745d174fp-3, + -0x1.8p2 + }, + { // Entry 297 + 0x1.745d1745d174f0p-8, + 0x1.745d1745d174fp-3, + -0x1.4p2 + }, + { // Entry 298 + 0x1.745d1745d174f0p-7, + 0x1.745d1745d174fp-3, + -0x1.0p2 + }, + { // Entry 299 + 0x1.745d1745d174f0p-6, + 0x1.745d1745d174fp-3, + -0x1.8p1 + }, + { // Entry 300 + 0x1.745d1745d174f0p-5, + 0x1.745d1745d174fp-3, + -0x1.0p1 + }, + { // Entry 301 + 0x1.745d1745d174f0p-4, + 0x1.745d1745d174fp-3, + -0x1.0p0 + }, + { // Entry 302 + 0x1.745d1745d174f0p-3, + 0x1.745d1745d174fp-3, + 0.0 + }, + { // Entry 303 + 0x1.745d1745d174f0p-2, + 0x1.745d1745d174fp-3, + 0x1.0p0 + }, + { // Entry 304 + 0x1.745d1745d174f0p-1, + 0x1.745d1745d174fp-3, + 0x1.0p1 + }, + { // Entry 305 + 0x1.745d1745d174f0p0, + 0x1.745d1745d174fp-3, + 0x1.8p1 + }, + { // Entry 306 + 0x1.745d1745d174f0p1, + 0x1.745d1745d174fp-3, + 0x1.0p2 + }, + { // Entry 307 + 0x1.745d1745d174f0p2, + 0x1.745d1745d174fp-3, + 0x1.4p2 + }, + { // Entry 308 + 0x1.745d1745d174f0p3, + 0x1.745d1745d174fp-3, + 0x1.8p2 + }, + { // Entry 309 + 0x1.745d1745d174f0p4, + 0x1.745d1745d174fp-3, + 0x1.cp2 + }, + { // Entry 310 + 0x1.745d1745d174f0p5, + 0x1.745d1745d174fp-3, + 0x1.0p3 + }, + { // Entry 311 + 0x1.745d1745d174f0p6, + 0x1.745d1745d174fp-3, + 0x1.2p3 + }, + { // Entry 312 + 0x1.745d1745d174f0p7, + 0x1.745d1745d174fp-3, + 0x1.4p3 + }, + { // Entry 313 + 0x1.1745d1745d1790p-12, + 0x1.1745d1745d179p-2, + -0x1.4p3 + }, + { // Entry 314 + 0x1.1745d1745d1790p-11, + 0x1.1745d1745d179p-2, + -0x1.2p3 + }, + { // Entry 315 + 0x1.1745d1745d1790p-10, + 0x1.1745d1745d179p-2, + -0x1.0p3 + }, + { // Entry 316 + 0x1.1745d1745d1790p-9, + 0x1.1745d1745d179p-2, + -0x1.cp2 + }, + { // Entry 317 + 0x1.1745d1745d1790p-8, + 0x1.1745d1745d179p-2, + -0x1.8p2 + }, + { // Entry 318 + 0x1.1745d1745d1790p-7, + 0x1.1745d1745d179p-2, + -0x1.4p2 + }, + { // Entry 319 + 0x1.1745d1745d1790p-6, + 0x1.1745d1745d179p-2, + -0x1.0p2 + }, + { // Entry 320 + 0x1.1745d1745d1790p-5, + 0x1.1745d1745d179p-2, + -0x1.8p1 + }, + { // Entry 321 + 0x1.1745d1745d1790p-4, + 0x1.1745d1745d179p-2, + -0x1.0p1 + }, + { // Entry 322 + 0x1.1745d1745d1790p-3, + 0x1.1745d1745d179p-2, + -0x1.0p0 + }, + { // Entry 323 + 0x1.1745d1745d1790p-2, + 0x1.1745d1745d179p-2, + 0.0 + }, + { // Entry 324 + 0x1.1745d1745d1790p-1, + 0x1.1745d1745d179p-2, + 0x1.0p0 + }, + { // Entry 325 + 0x1.1745d1745d1790p0, + 0x1.1745d1745d179p-2, + 0x1.0p1 + }, + { // Entry 326 + 0x1.1745d1745d1790p1, + 0x1.1745d1745d179p-2, + 0x1.8p1 + }, + { // Entry 327 + 0x1.1745d1745d1790p2, + 0x1.1745d1745d179p-2, + 0x1.0p2 + }, + { // Entry 328 + 0x1.1745d1745d1790p3, + 0x1.1745d1745d179p-2, + 0x1.4p2 + }, + { // Entry 329 + 0x1.1745d1745d1790p4, + 0x1.1745d1745d179p-2, + 0x1.8p2 + }, + { // Entry 330 + 0x1.1745d1745d1790p5, + 0x1.1745d1745d179p-2, + 0x1.cp2 + }, + { // Entry 331 + 0x1.1745d1745d1790p6, + 0x1.1745d1745d179p-2, + 0x1.0p3 + }, + { // Entry 332 + 0x1.1745d1745d1790p7, + 0x1.1745d1745d179p-2, + 0x1.2p3 + }, + { // Entry 333 + 0x1.1745d1745d1790p8, + 0x1.1745d1745d179p-2, + 0x1.4p3 + }, + { // Entry 334 + 0x1.745d1745d174a0p-12, + 0x1.745d1745d174ap-2, + -0x1.4p3 + }, + { // Entry 335 + 0x1.745d1745d174a0p-11, + 0x1.745d1745d174ap-2, + -0x1.2p3 + }, + { // Entry 336 + 0x1.745d1745d174a0p-10, + 0x1.745d1745d174ap-2, + -0x1.0p3 + }, + { // Entry 337 + 0x1.745d1745d174a0p-9, + 0x1.745d1745d174ap-2, + -0x1.cp2 + }, + { // Entry 338 + 0x1.745d1745d174a0p-8, + 0x1.745d1745d174ap-2, + -0x1.8p2 + }, + { // Entry 339 + 0x1.745d1745d174a0p-7, + 0x1.745d1745d174ap-2, + -0x1.4p2 + }, + { // Entry 340 + 0x1.745d1745d174a0p-6, + 0x1.745d1745d174ap-2, + -0x1.0p2 + }, + { // Entry 341 + 0x1.745d1745d174a0p-5, + 0x1.745d1745d174ap-2, + -0x1.8p1 + }, + { // Entry 342 + 0x1.745d1745d174a0p-4, + 0x1.745d1745d174ap-2, + -0x1.0p1 + }, + { // Entry 343 + 0x1.745d1745d174a0p-3, + 0x1.745d1745d174ap-2, + -0x1.0p0 + }, + { // Entry 344 + 0x1.745d1745d174a0p-2, + 0x1.745d1745d174ap-2, + 0.0 + }, + { // Entry 345 + 0x1.745d1745d174a0p-1, + 0x1.745d1745d174ap-2, + 0x1.0p0 + }, + { // Entry 346 + 0x1.745d1745d174a0p0, + 0x1.745d1745d174ap-2, + 0x1.0p1 + }, + { // Entry 347 + 0x1.745d1745d174a0p1, + 0x1.745d1745d174ap-2, + 0x1.8p1 + }, + { // Entry 348 + 0x1.745d1745d174a0p2, + 0x1.745d1745d174ap-2, + 0x1.0p2 + }, + { // Entry 349 + 0x1.745d1745d174a0p3, + 0x1.745d1745d174ap-2, + 0x1.4p2 + }, + { // Entry 350 + 0x1.745d1745d174a0p4, + 0x1.745d1745d174ap-2, + 0x1.8p2 + }, + { // Entry 351 + 0x1.745d1745d174a0p5, + 0x1.745d1745d174ap-2, + 0x1.cp2 + }, + { // Entry 352 + 0x1.745d1745d174a0p6, + 0x1.745d1745d174ap-2, + 0x1.0p3 + }, + { // Entry 353 + 0x1.745d1745d174a0p7, + 0x1.745d1745d174ap-2, + 0x1.2p3 + }, + { // Entry 354 + 0x1.745d1745d174a0p8, + 0x1.745d1745d174ap-2, + 0x1.4p3 + }, + { // Entry 355 + 0x1.d1745d1745d1c0p-12, + 0x1.d1745d1745d1cp-2, + -0x1.4p3 + }, + { // Entry 356 + 0x1.d1745d1745d1c0p-11, + 0x1.d1745d1745d1cp-2, + -0x1.2p3 + }, + { // Entry 357 + 0x1.d1745d1745d1c0p-10, + 0x1.d1745d1745d1cp-2, + -0x1.0p3 + }, + { // Entry 358 + 0x1.d1745d1745d1c0p-9, + 0x1.d1745d1745d1cp-2, + -0x1.cp2 + }, + { // Entry 359 + 0x1.d1745d1745d1c0p-8, + 0x1.d1745d1745d1cp-2, + -0x1.8p2 + }, + { // Entry 360 + 0x1.d1745d1745d1c0p-7, + 0x1.d1745d1745d1cp-2, + -0x1.4p2 + }, + { // Entry 361 + 0x1.d1745d1745d1c0p-6, + 0x1.d1745d1745d1cp-2, + -0x1.0p2 + }, + { // Entry 362 + 0x1.d1745d1745d1c0p-5, + 0x1.d1745d1745d1cp-2, + -0x1.8p1 + }, + { // Entry 363 + 0x1.d1745d1745d1c0p-4, + 0x1.d1745d1745d1cp-2, + -0x1.0p1 + }, + { // Entry 364 + 0x1.d1745d1745d1c0p-3, + 0x1.d1745d1745d1cp-2, + -0x1.0p0 + }, + { // Entry 365 + 0x1.d1745d1745d1c0p-2, + 0x1.d1745d1745d1cp-2, + 0.0 + }, + { // Entry 366 + 0x1.d1745d1745d1c0p-1, + 0x1.d1745d1745d1cp-2, + 0x1.0p0 + }, + { // Entry 367 + 0x1.d1745d1745d1c0p0, + 0x1.d1745d1745d1cp-2, + 0x1.0p1 + }, + { // Entry 368 + 0x1.d1745d1745d1c0p1, + 0x1.d1745d1745d1cp-2, + 0x1.8p1 + }, + { // Entry 369 + 0x1.d1745d1745d1c0p2, + 0x1.d1745d1745d1cp-2, + 0x1.0p2 + }, + { // Entry 370 + 0x1.d1745d1745d1c0p3, + 0x1.d1745d1745d1cp-2, + 0x1.4p2 + }, + { // Entry 371 + 0x1.d1745d1745d1c0p4, + 0x1.d1745d1745d1cp-2, + 0x1.8p2 + }, + { // Entry 372 + 0x1.d1745d1745d1c0p5, + 0x1.d1745d1745d1cp-2, + 0x1.cp2 + }, + { // Entry 373 + 0x1.d1745d1745d1c0p6, + 0x1.d1745d1745d1cp-2, + 0x1.0p3 + }, + { // Entry 374 + 0x1.d1745d1745d1c0p7, + 0x1.d1745d1745d1cp-2, + 0x1.2p3 + }, + { // Entry 375 + 0x1.d1745d1745d1c0p8, + 0x1.d1745d1745d1cp-2, + 0x1.4p3 + }, + { // Entry 376 + 0x1.1745d1745d1770p-11, + 0x1.1745d1745d177p-1, + -0x1.4p3 + }, + { // Entry 377 + 0x1.1745d1745d1770p-10, + 0x1.1745d1745d177p-1, + -0x1.2p3 + }, + { // Entry 378 + 0x1.1745d1745d1770p-9, + 0x1.1745d1745d177p-1, + -0x1.0p3 + }, + { // Entry 379 + 0x1.1745d1745d1770p-8, + 0x1.1745d1745d177p-1, + -0x1.cp2 + }, + { // Entry 380 + 0x1.1745d1745d1770p-7, + 0x1.1745d1745d177p-1, + -0x1.8p2 + }, + { // Entry 381 + 0x1.1745d1745d1770p-6, + 0x1.1745d1745d177p-1, + -0x1.4p2 + }, + { // Entry 382 + 0x1.1745d1745d1770p-5, + 0x1.1745d1745d177p-1, + -0x1.0p2 + }, + { // Entry 383 + 0x1.1745d1745d1770p-4, + 0x1.1745d1745d177p-1, + -0x1.8p1 + }, + { // Entry 384 + 0x1.1745d1745d1770p-3, + 0x1.1745d1745d177p-1, + -0x1.0p1 + }, + { // Entry 385 + 0x1.1745d1745d1770p-2, + 0x1.1745d1745d177p-1, + -0x1.0p0 + }, + { // Entry 386 + 0x1.1745d1745d1770p-1, + 0x1.1745d1745d177p-1, + 0.0 + }, + { // Entry 387 + 0x1.1745d1745d1770p0, + 0x1.1745d1745d177p-1, + 0x1.0p0 + }, + { // Entry 388 + 0x1.1745d1745d1770p1, + 0x1.1745d1745d177p-1, + 0x1.0p1 + }, + { // Entry 389 + 0x1.1745d1745d1770p2, + 0x1.1745d1745d177p-1, + 0x1.8p1 + }, + { // Entry 390 + 0x1.1745d1745d1770p3, + 0x1.1745d1745d177p-1, + 0x1.0p2 + }, + { // Entry 391 + 0x1.1745d1745d1770p4, + 0x1.1745d1745d177p-1, + 0x1.4p2 + }, + { // Entry 392 + 0x1.1745d1745d1770p5, + 0x1.1745d1745d177p-1, + 0x1.8p2 + }, + { // Entry 393 + 0x1.1745d1745d1770p6, + 0x1.1745d1745d177p-1, + 0x1.cp2 + }, + { // Entry 394 + 0x1.1745d1745d1770p7, + 0x1.1745d1745d177p-1, + 0x1.0p3 + }, + { // Entry 395 + 0x1.1745d1745d1770p8, + 0x1.1745d1745d177p-1, + 0x1.2p3 + }, + { // Entry 396 + 0x1.1745d1745d1770p9, + 0x1.1745d1745d177p-1, + 0x1.4p3 + }, + { // Entry 397 + 0x1.45d1745d1746p-11, + 0x1.45d1745d17460p-1, + -0x1.4p3 + }, + { // Entry 398 + 0x1.45d1745d1746p-10, + 0x1.45d1745d17460p-1, + -0x1.2p3 + }, + { // Entry 399 + 0x1.45d1745d1746p-9, + 0x1.45d1745d17460p-1, + -0x1.0p3 + }, + { // Entry 400 + 0x1.45d1745d1746p-8, + 0x1.45d1745d17460p-1, + -0x1.cp2 + }, + { // Entry 401 + 0x1.45d1745d1746p-7, + 0x1.45d1745d17460p-1, + -0x1.8p2 + }, + { // Entry 402 + 0x1.45d1745d1746p-6, + 0x1.45d1745d17460p-1, + -0x1.4p2 + }, + { // Entry 403 + 0x1.45d1745d1746p-5, + 0x1.45d1745d17460p-1, + -0x1.0p2 + }, + { // Entry 404 + 0x1.45d1745d1746p-4, + 0x1.45d1745d17460p-1, + -0x1.8p1 + }, + { // Entry 405 + 0x1.45d1745d1746p-3, + 0x1.45d1745d17460p-1, + -0x1.0p1 + }, + { // Entry 406 + 0x1.45d1745d1746p-2, + 0x1.45d1745d17460p-1, + -0x1.0p0 + }, + { // Entry 407 + 0x1.45d1745d1746p-1, + 0x1.45d1745d17460p-1, + 0.0 + }, + { // Entry 408 + 0x1.45d1745d1746p0, + 0x1.45d1745d17460p-1, + 0x1.0p0 + }, + { // Entry 409 + 0x1.45d1745d1746p1, + 0x1.45d1745d17460p-1, + 0x1.0p1 + }, + { // Entry 410 + 0x1.45d1745d1746p2, + 0x1.45d1745d17460p-1, + 0x1.8p1 + }, + { // Entry 411 + 0x1.45d1745d1746p3, + 0x1.45d1745d17460p-1, + 0x1.0p2 + }, + { // Entry 412 + 0x1.45d1745d1746p4, + 0x1.45d1745d17460p-1, + 0x1.4p2 + }, + { // Entry 413 + 0x1.45d1745d1746p5, + 0x1.45d1745d17460p-1, + 0x1.8p2 + }, + { // Entry 414 + 0x1.45d1745d1746p6, + 0x1.45d1745d17460p-1, + 0x1.cp2 + }, + { // Entry 415 + 0x1.45d1745d1746p7, + 0x1.45d1745d17460p-1, + 0x1.0p3 + }, + { // Entry 416 + 0x1.45d1745d1746p8, + 0x1.45d1745d17460p-1, + 0x1.2p3 + }, + { // Entry 417 + 0x1.45d1745d1746p9, + 0x1.45d1745d17460p-1, + 0x1.4p3 + }, + { // Entry 418 + 0x1.745d1745d17490p-11, + 0x1.745d1745d1749p-1, + -0x1.4p3 + }, + { // Entry 419 + 0x1.745d1745d17490p-10, + 0x1.745d1745d1749p-1, + -0x1.2p3 + }, + { // Entry 420 + 0x1.745d1745d17490p-9, + 0x1.745d1745d1749p-1, + -0x1.0p3 + }, + { // Entry 421 + 0x1.745d1745d17490p-8, + 0x1.745d1745d1749p-1, + -0x1.cp2 + }, + { // Entry 422 + 0x1.745d1745d17490p-7, + 0x1.745d1745d1749p-1, + -0x1.8p2 + }, + { // Entry 423 + 0x1.745d1745d17490p-6, + 0x1.745d1745d1749p-1, + -0x1.4p2 + }, + { // Entry 424 + 0x1.745d1745d17490p-5, + 0x1.745d1745d1749p-1, + -0x1.0p2 + }, + { // Entry 425 + 0x1.745d1745d17490p-4, + 0x1.745d1745d1749p-1, + -0x1.8p1 + }, + { // Entry 426 + 0x1.745d1745d17490p-3, + 0x1.745d1745d1749p-1, + -0x1.0p1 + }, + { // Entry 427 + 0x1.745d1745d17490p-2, + 0x1.745d1745d1749p-1, + -0x1.0p0 + }, + { // Entry 428 + 0x1.745d1745d17490p-1, + 0x1.745d1745d1749p-1, + 0.0 + }, + { // Entry 429 + 0x1.745d1745d17490p0, + 0x1.745d1745d1749p-1, + 0x1.0p0 + }, + { // Entry 430 + 0x1.745d1745d17490p1, + 0x1.745d1745d1749p-1, + 0x1.0p1 + }, + { // Entry 431 + 0x1.745d1745d17490p2, + 0x1.745d1745d1749p-1, + 0x1.8p1 + }, + { // Entry 432 + 0x1.745d1745d17490p3, + 0x1.745d1745d1749p-1, + 0x1.0p2 + }, + { // Entry 433 + 0x1.745d1745d17490p4, + 0x1.745d1745d1749p-1, + 0x1.4p2 + }, + { // Entry 434 + 0x1.745d1745d17490p5, + 0x1.745d1745d1749p-1, + 0x1.8p2 + }, + { // Entry 435 + 0x1.745d1745d17490p6, + 0x1.745d1745d1749p-1, + 0x1.cp2 + }, + { // Entry 436 + 0x1.745d1745d17490p7, + 0x1.745d1745d1749p-1, + 0x1.0p3 + }, + { // Entry 437 + 0x1.745d1745d17490p8, + 0x1.745d1745d1749p-1, + 0x1.2p3 + }, + { // Entry 438 + 0x1.745d1745d17490p9, + 0x1.745d1745d1749p-1, + 0x1.4p3 + }, + { // Entry 439 + 0x1.a2e8ba2e8ba320p-11, + 0x1.a2e8ba2e8ba32p-1, + -0x1.4p3 + }, + { // Entry 440 + 0x1.a2e8ba2e8ba320p-10, + 0x1.a2e8ba2e8ba32p-1, + -0x1.2p3 + }, + { // Entry 441 + 0x1.a2e8ba2e8ba320p-9, + 0x1.a2e8ba2e8ba32p-1, + -0x1.0p3 + }, + { // Entry 442 + 0x1.a2e8ba2e8ba320p-8, + 0x1.a2e8ba2e8ba32p-1, + -0x1.cp2 + }, + { // Entry 443 + 0x1.a2e8ba2e8ba320p-7, + 0x1.a2e8ba2e8ba32p-1, + -0x1.8p2 + }, + { // Entry 444 + 0x1.a2e8ba2e8ba320p-6, + 0x1.a2e8ba2e8ba32p-1, + -0x1.4p2 + }, + { // Entry 445 + 0x1.a2e8ba2e8ba320p-5, + 0x1.a2e8ba2e8ba32p-1, + -0x1.0p2 + }, + { // Entry 446 + 0x1.a2e8ba2e8ba320p-4, + 0x1.a2e8ba2e8ba32p-1, + -0x1.8p1 + }, + { // Entry 447 + 0x1.a2e8ba2e8ba320p-3, + 0x1.a2e8ba2e8ba32p-1, + -0x1.0p1 + }, + { // Entry 448 + 0x1.a2e8ba2e8ba320p-2, + 0x1.a2e8ba2e8ba32p-1, + -0x1.0p0 + }, + { // Entry 449 + 0x1.a2e8ba2e8ba320p-1, + 0x1.a2e8ba2e8ba32p-1, + 0.0 + }, + { // Entry 450 + 0x1.a2e8ba2e8ba320p0, + 0x1.a2e8ba2e8ba32p-1, + 0x1.0p0 + }, + { // Entry 451 + 0x1.a2e8ba2e8ba320p1, + 0x1.a2e8ba2e8ba32p-1, + 0x1.0p1 + }, + { // Entry 452 + 0x1.a2e8ba2e8ba320p2, + 0x1.a2e8ba2e8ba32p-1, + 0x1.8p1 + }, + { // Entry 453 + 0x1.a2e8ba2e8ba320p3, + 0x1.a2e8ba2e8ba32p-1, + 0x1.0p2 + }, + { // Entry 454 + 0x1.a2e8ba2e8ba320p4, + 0x1.a2e8ba2e8ba32p-1, + 0x1.4p2 + }, + { // Entry 455 + 0x1.a2e8ba2e8ba320p5, + 0x1.a2e8ba2e8ba32p-1, + 0x1.8p2 + }, + { // Entry 456 + 0x1.a2e8ba2e8ba320p6, + 0x1.a2e8ba2e8ba32p-1, + 0x1.cp2 + }, + { // Entry 457 + 0x1.a2e8ba2e8ba320p7, + 0x1.a2e8ba2e8ba32p-1, + 0x1.0p3 + }, + { // Entry 458 + 0x1.a2e8ba2e8ba320p8, + 0x1.a2e8ba2e8ba32p-1, + 0x1.2p3 + }, + { // Entry 459 + 0x1.a2e8ba2e8ba320p9, + 0x1.a2e8ba2e8ba32p-1, + 0x1.4p3 + }, + { // Entry 460 + 0x1.d1745d1745d1b0p-11, + 0x1.d1745d1745d1bp-1, + -0x1.4p3 + }, + { // Entry 461 + 0x1.d1745d1745d1b0p-10, + 0x1.d1745d1745d1bp-1, + -0x1.2p3 + }, + { // Entry 462 + 0x1.d1745d1745d1b0p-9, + 0x1.d1745d1745d1bp-1, + -0x1.0p3 + }, + { // Entry 463 + 0x1.d1745d1745d1b0p-8, + 0x1.d1745d1745d1bp-1, + -0x1.cp2 + }, + { // Entry 464 + 0x1.d1745d1745d1b0p-7, + 0x1.d1745d1745d1bp-1, + -0x1.8p2 + }, + { // Entry 465 + 0x1.d1745d1745d1b0p-6, + 0x1.d1745d1745d1bp-1, + -0x1.4p2 + }, + { // Entry 466 + 0x1.d1745d1745d1b0p-5, + 0x1.d1745d1745d1bp-1, + -0x1.0p2 + }, + { // Entry 467 + 0x1.d1745d1745d1b0p-4, + 0x1.d1745d1745d1bp-1, + -0x1.8p1 + }, + { // Entry 468 + 0x1.d1745d1745d1b0p-3, + 0x1.d1745d1745d1bp-1, + -0x1.0p1 + }, + { // Entry 469 + 0x1.d1745d1745d1b0p-2, + 0x1.d1745d1745d1bp-1, + -0x1.0p0 + }, + { // Entry 470 + 0x1.d1745d1745d1b0p-1, + 0x1.d1745d1745d1bp-1, + 0.0 + }, + { // Entry 471 + 0x1.d1745d1745d1b0p0, + 0x1.d1745d1745d1bp-1, + 0x1.0p0 + }, + { // Entry 472 + 0x1.d1745d1745d1b0p1, + 0x1.d1745d1745d1bp-1, + 0x1.0p1 + }, + { // Entry 473 + 0x1.d1745d1745d1b0p2, + 0x1.d1745d1745d1bp-1, + 0x1.8p1 + }, + { // Entry 474 + 0x1.d1745d1745d1b0p3, + 0x1.d1745d1745d1bp-1, + 0x1.0p2 + }, + { // Entry 475 + 0x1.d1745d1745d1b0p4, + 0x1.d1745d1745d1bp-1, + 0x1.4p2 + }, + { // Entry 476 + 0x1.d1745d1745d1b0p5, + 0x1.d1745d1745d1bp-1, + 0x1.8p2 + }, + { // Entry 477 + 0x1.d1745d1745d1b0p6, + 0x1.d1745d1745d1bp-1, + 0x1.cp2 + }, + { // Entry 478 + 0x1.d1745d1745d1b0p7, + 0x1.d1745d1745d1bp-1, + 0x1.0p3 + }, + { // Entry 479 + 0x1.d1745d1745d1b0p8, + 0x1.d1745d1745d1bp-1, + 0x1.2p3 + }, + { // Entry 480 + 0x1.d1745d1745d1b0p9, + 0x1.d1745d1745d1bp-1, + 0x1.4p3 + }, + { // Entry 481 + 0x1.p-10, + 0x1.0p0, + -0x1.4p3 + }, + { // Entry 482 + 0x1.p-9, + 0x1.0p0, + -0x1.2p3 + }, + { // Entry 483 + 0x1.p-8, + 0x1.0p0, + -0x1.0p3 + }, + { // Entry 484 + 0x1.p-7, + 0x1.0p0, + -0x1.cp2 + }, + { // Entry 485 + 0x1.p-6, + 0x1.0p0, + -0x1.8p2 + }, + { // Entry 486 + 0x1.p-5, + 0x1.0p0, + -0x1.4p2 + }, + { // Entry 487 + 0x1.p-4, + 0x1.0p0, + -0x1.0p2 + }, + { // Entry 488 + 0x1.p-3, + 0x1.0p0, + -0x1.8p1 + }, + { // Entry 489 + 0x1.p-2, + 0x1.0p0, + -0x1.0p1 + }, + { // Entry 490 + 0x1.p-1, + 0x1.0p0, + -0x1.0p0 + }, + { // Entry 491 + 0x1.p0, + 0x1.0p0, + 0.0 + }, + { // Entry 492 + 0x1.p1, + 0x1.0p0, + 0x1.0p0 + }, + { // Entry 493 + 0x1.p2, + 0x1.0p0, + 0x1.0p1 + }, + { // Entry 494 + 0x1.p3, + 0x1.0p0, + 0x1.8p1 + }, + { // Entry 495 + 0x1.p4, + 0x1.0p0, + 0x1.0p2 + }, + { // Entry 496 + 0x1.p5, + 0x1.0p0, + 0x1.4p2 + }, + { // Entry 497 + 0x1.p6, + 0x1.0p0, + 0x1.8p2 + }, + { // Entry 498 + 0x1.p7, + 0x1.0p0, + 0x1.cp2 + }, + { // Entry 499 + 0x1.p8, + 0x1.0p0, + 0x1.0p3 + }, + { // Entry 500 + 0x1.p9, + 0x1.0p0, + 0x1.2p3 + }, + { // Entry 501 + 0x1.p10, + 0x1.0p0, + 0x1.4p3 + }, + { // Entry 502 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp1023, + -0x1.ff8p9 + }, + { // Entry 503 + 0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + -0x1.ff0p9 + }, + { // Entry 504 + 0x1.fffffffffffff0p23, + 0x1.fffffffffffffp1023, + -0x1.f40p9 + }, + { // Entry 505 + 0x1.fffffffffffff0p24, + 0x1.fffffffffffffp1023, + -0x1.f38p9 + }, + { // Entry 506 + 0x1.fffffffffffff0p1013, + 0x1.fffffffffffffp1023, + -0x1.4p3 + }, + { // Entry 507 + 0x1.fffffffffffff0p1014, + 0x1.fffffffffffffp1023, + -0x1.2p3 + }, + { // Entry 508 + 0x1.fffffffffffff0p1015, + 0x1.fffffffffffffp1023, + -0x1.0p3 + }, + { // Entry 509 + 0x1.fffffffffffff0p1016, + 0x1.fffffffffffffp1023, + -0x1.cp2 + }, + { // Entry 510 + 0x1.fffffffffffff0p1017, + 0x1.fffffffffffffp1023, + -0x1.8p2 + }, + { // Entry 511 + 0x1.fffffffffffff0p1018, + 0x1.fffffffffffffp1023, + -0x1.4p2 + }, + { // Entry 512 + 0x1.fffffffffffff0p1019, + 0x1.fffffffffffffp1023, + -0x1.0p2 + }, + { // Entry 513 + 0x1.fffffffffffff0p1020, + 0x1.fffffffffffffp1023, + -0x1.8p1 + }, + { // Entry 514 + 0x1.fffffffffffff0p1021, + 0x1.fffffffffffffp1023, + -0x1.0p1 + }, + { // Entry 515 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1023, + -0x1.0p0 + }, + { // Entry 516 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 517 + 0x1.p-51, + 0x1.0p-1074, + 0x1.ff8p9 + }, + { // Entry 518 + 0x1.p-52, + 0x1.0p-1074, + 0x1.ff0p9 + }, + { // Entry 519 + 0x1.p-74, + 0x1.0p-1074, + 0x1.f40p9 + }, + { // Entry 520 + 0x1.p-75, + 0x1.0p-1074, + 0x1.f38p9 + }, + { // Entry 521 + 0x1.p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 522 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 523 + 0x1.p-1072, + 0x1.0p-1074, + 0x1.0p1 + }, + { // Entry 524 + 0x1.p-1071, + 0x1.0p-1074, + 0x1.8p1 + }, + { // Entry 525 + 0x1.p-1070, + 0x1.0p-1074, + 0x1.0p2 + }, + { // Entry 526 + 0x1.p-1069, + 0x1.0p-1074, + 0x1.4p2 + }, + { // Entry 527 + 0x1.p-1068, + 0x1.0p-1074, + 0x1.8p2 + }, + { // Entry 528 + 0x1.p-1067, + 0x1.0p-1074, + 0x1.cp2 + }, + { // Entry 529 + 0x1.p-1066, + 0x1.0p-1074, + 0x1.0p3 + }, + { // Entry 530 + 0x1.p-1065, + 0x1.0p-1074, + 0x1.2p3 + }, + { // Entry 531 + 0x1.p-1064, + 0x1.0p-1074, + 0x1.4p3 + }, + { // Entry 532 + 0x1.p-1025, + 0x1.0p-2, + -0x1.ff8p9 + }, + { // Entry 533 + 0x1.p-1024, + 0x1.0p-2, + -0x1.ff0p9 + }, + { // Entry 534 + 0x1.p-1024, + 0x1.0p-1, + -0x1.ff8p9 + }, + { // Entry 535 + 0x1.p-1023, + 0x1.0p-1, + -0x1.ff0p9 + }, + { // Entry 536 + 0x1.80p-1024, + 0x1.8p-1, + -0x1.ff8p9 + }, + { // Entry 537 + 0x1.80p-1023, + 0x1.8p-1, + -0x1.ff0p9 + }, + { // Entry 538 + 0.0, + 0x1.0p-2, + -0x1.0c8p10 + }, + { // Entry 539 + 0.0, + 0x1.0p-2, + -0x1.0c4p10 + }, + { // Entry 540 + 0.0, + 0x1.0p-1, + -0x1.0c8p10 + }, + { // Entry 541 + 0x1.p-1074, + 0x1.0p-1, + -0x1.0c4p10 + }, + { // Entry 542 + 0.0, + 0x1.8p-1, + -0x1.0c8p10 + }, + { // Entry 543 + 0x1.80p-1074, + 0x1.8p-1, + -0x1.0c4p10 + }, + { // Entry 544 + 0x1.p1023, + 0x1.0p0, + 0x1.ff8p9 + }, + { // Entry 545 + 0x1.p1022, + 0x1.0p0, + 0x1.ff0p9 + }, + { // Entry 546 + 0x1.p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 547 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 548 + 0x1.p-1072, + 0x1.0p-1074, + 0x1.0p1 + }, + { // Entry 549 + 0x1.p-1071, + 0x1.0p-1074, + 0x1.8p1 + }, + { // Entry 550 + 0x1.p-1070, + 0x1.0p-1074, + 0x1.0p2 + }, + { // Entry 551 + 0x1.p-1069, + 0x1.0p-1074, + 0x1.4p2 + }, + { // Entry 552 + 0x1.p-1068, + 0x1.0p-1074, + 0x1.8p2 + }, + { // Entry 553 + 0x1.p-1067, + 0x1.0p-1074, + 0x1.cp2 + }, + { // Entry 554 + 0x1.p-1066, + 0x1.0p-1074, + 0x1.0p3 + }, + { // Entry 555 + 0x1.p-1065, + 0x1.0p-1074, + 0x1.2p3 + }, + { // Entry 556 + 0x1.p-1064, + 0x1.0p-1074, + 0x1.4p3 + }, + { // Entry 557 + 0x1.p-1063, + 0x1.0p-1074, + 0x1.6p3 + }, + { // Entry 558 + 0x1.p-1062, + 0x1.0p-1074, + 0x1.8p3 + }, + { // Entry 559 + 0x1.p-1061, + 0x1.0p-1074, + 0x1.ap3 + }, + { // Entry 560 + 0x1.p-1060, + 0x1.0p-1074, + 0x1.cp3 + }, + { // Entry 561 + 0x1.p-1059, + 0x1.0p-1074, + 0x1.ep3 + }, + { // Entry 562 + 0x1.p-1058, + 0x1.0p-1074, + 0x1.0p4 + }, + { // Entry 563 + 0x1.p-1057, + 0x1.0p-1074, + 0x1.1p4 + }, + { // Entry 564 + 0x1.p-1056, + 0x1.0p-1074, + 0x1.2p4 + }, + { // Entry 565 + 0x1.p-1055, + 0x1.0p-1074, + 0x1.3p4 + }, + { // Entry 566 + 0x1.p-1054, + 0x1.0p-1074, + 0x1.4p4 + }, + { // Entry 567 + 0x1.p-1053, + 0x1.0p-1074, + 0x1.5p4 + }, + { // Entry 568 + 0x1.p-1052, + 0x1.0p-1074, + 0x1.6p4 + }, + { // Entry 569 + 0x1.p-1051, + 0x1.0p-1074, + 0x1.7p4 + }, + { // Entry 570 + 0x1.p-1050, + 0x1.0p-1074, + 0x1.8p4 + }, + { // Entry 571 + 0x1.p-1049, + 0x1.0p-1074, + 0x1.9p4 + }, + { // Entry 572 + 0x1.p-1048, + 0x1.0p-1074, + 0x1.ap4 + }, + { // Entry 573 + 0x1.p-1047, + 0x1.0p-1074, + 0x1.bp4 + }, + { // Entry 574 + 0x1.p-1046, + 0x1.0p-1074, + 0x1.cp4 + }, + { // Entry 575 + 0x1.p-1045, + 0x1.0p-1074, + 0x1.dp4 + }, + { // Entry 576 + 0x1.p-1044, + 0x1.0p-1074, + 0x1.ep4 + }, + { // Entry 577 + 0x1.p-1043, + 0x1.0p-1074, + 0x1.fp4 + }, + { // Entry 578 + 0x1.p-1042, + 0x1.0p-1074, + 0x1.0p5 + }, + { // Entry 579 + 0x1.p-1041, + 0x1.0p-1074, + 0x1.080p5 + }, + { // Entry 580 + 0x1.p-1040, + 0x1.0p-1074, + 0x1.1p5 + }, + { // Entry 581 + 0x1.p-1039, + 0x1.0p-1074, + 0x1.180p5 + }, + { // Entry 582 + 0x1.p-1038, + 0x1.0p-1074, + 0x1.2p5 + }, + { // Entry 583 + 0x1.p-1037, + 0x1.0p-1074, + 0x1.280p5 + }, + { // Entry 584 + 0x1.p-1036, + 0x1.0p-1074, + 0x1.3p5 + }, + { // Entry 585 + 0x1.p-1035, + 0x1.0p-1074, + 0x1.380p5 + }, + { // Entry 586 + 0x1.p-1034, + 0x1.0p-1074, + 0x1.4p5 + }, + { // Entry 587 + 0x1.p-1033, + 0x1.0p-1074, + 0x1.480p5 + }, + { // Entry 588 + 0x1.p-1032, + 0x1.0p-1074, + 0x1.5p5 + }, + { // Entry 589 + 0x1.p-1031, + 0x1.0p-1074, + 0x1.580p5 + }, + { // Entry 590 + 0x1.p-1030, + 0x1.0p-1074, + 0x1.6p5 + }, + { // Entry 591 + 0x1.p-1029, + 0x1.0p-1074, + 0x1.680p5 + }, + { // Entry 592 + 0x1.p-1028, + 0x1.0p-1074, + 0x1.7p5 + }, + { // Entry 593 + 0x1.p-1027, + 0x1.0p-1074, + 0x1.780p5 + }, + { // Entry 594 + 0x1.p-1026, + 0x1.0p-1074, + 0x1.8p5 + }, + { // Entry 595 + 0x1.p-1025, + 0x1.0p-1074, + 0x1.880p5 + }, + { // Entry 596 + 0x1.p-1024, + 0x1.0p-1074, + 0x1.9p5 + }, + { // Entry 597 + 0x1.p-1023, + 0x1.0p-1074, + 0x1.980p5 + }, + { // Entry 598 + 0x1.p-1022, + 0x1.0p-1074, + 0x1.ap5 + }, + { // Entry 599 + 0x1.p-1021, + 0x1.0p-1074, + 0x1.a80p5 + }, + { // Entry 600 + 0x1.p-1020, + 0x1.0p-1074, + 0x1.bp5 + }, + { // Entry 601 + 0x1.p-1019, + 0x1.0p-1074, + 0x1.b80p5 + }, + { // Entry 602 + 0x1.p-1018, + 0x1.0p-1074, + 0x1.cp5 + }, + { // Entry 603 + 0x1.p-1017, + 0x1.0p-1074, + 0x1.c80p5 + }, + { // Entry 604 + 0x1.p-1016, + 0x1.0p-1074, + 0x1.dp5 + }, + { // Entry 605 + 0x1.p-1015, + 0x1.0p-1074, + 0x1.d80p5 + }, + { // Entry 606 + 0x1.p-1014, + 0x1.0p-1074, + 0x1.ep5 + }, + { // Entry 607 + 0x1.p-1013, + 0x1.0p-1074, + 0x1.e80p5 + }, + { // Entry 608 + 0x1.p-1012, + 0x1.0p-1074, + 0x1.fp5 + }, + { // Entry 609 + 0x1.p-1011, + 0x1.0p-1074, + 0x1.f80p5 + }, + { // Entry 610 + 0x1.p-1010, + 0x1.0p-1074, + 0x1.0p6 + }, + { // Entry 611 + 0x1.p-1009, + 0x1.0p-1074, + 0x1.040p6 + }, + { // Entry 612 + 0x1.p-1008, + 0x1.0p-1074, + 0x1.080p6 + }, + { // Entry 613 + 0x1.p-1007, + 0x1.0p-1074, + 0x1.0c0p6 + }, + { // Entry 614 + 0x1.p-1006, + 0x1.0p-1074, + 0x1.1p6 + }, + { // Entry 615 + 0x1.p-1005, + 0x1.0p-1074, + 0x1.140p6 + }, + { // Entry 616 + 0x1.p-1004, + 0x1.0p-1074, + 0x1.180p6 + }, + { // Entry 617 + 0x1.p-1003, + 0x1.0p-1074, + 0x1.1c0p6 + }, + { // Entry 618 + 0x1.p-1002, + 0x1.0p-1074, + 0x1.2p6 + }, + { // Entry 619 + 0x1.p-1001, + 0x1.0p-1074, + 0x1.240p6 + }, + { // Entry 620 + 0x1.p-1000, + 0x1.0p-1074, + 0x1.280p6 + }, + { // Entry 621 + 0x1.p-999, + 0x1.0p-1074, + 0x1.2c0p6 + }, + { // Entry 622 + 0x1.p-998, + 0x1.0p-1074, + 0x1.3p6 + }, + { // Entry 623 + 0x1.p-997, + 0x1.0p-1074, + 0x1.340p6 + }, + { // Entry 624 + 0x1.p-996, + 0x1.0p-1074, + 0x1.380p6 + }, + { // Entry 625 + 0x1.p-995, + 0x1.0p-1074, + 0x1.3c0p6 + }, + { // Entry 626 + 0x1.p-994, + 0x1.0p-1074, + 0x1.4p6 + }, + { // Entry 627 + 0x1.p-993, + 0x1.0p-1074, + 0x1.440p6 + }, + { // Entry 628 + 0x1.p-992, + 0x1.0p-1074, + 0x1.480p6 + }, + { // Entry 629 + 0x1.p-991, + 0x1.0p-1074, + 0x1.4c0p6 + }, + { // Entry 630 + 0x1.p-990, + 0x1.0p-1074, + 0x1.5p6 + }, + { // Entry 631 + 0x1.p-989, + 0x1.0p-1074, + 0x1.540p6 + }, + { // Entry 632 + 0x1.p-988, + 0x1.0p-1074, + 0x1.580p6 + }, + { // Entry 633 + 0x1.p-987, + 0x1.0p-1074, + 0x1.5c0p6 + }, + { // Entry 634 + 0x1.p-986, + 0x1.0p-1074, + 0x1.6p6 + }, + { // Entry 635 + 0x1.p-985, + 0x1.0p-1074, + 0x1.640p6 + }, + { // Entry 636 + 0x1.p-984, + 0x1.0p-1074, + 0x1.680p6 + }, + { // Entry 637 + 0x1.p-983, + 0x1.0p-1074, + 0x1.6c0p6 + }, + { // Entry 638 + 0x1.p-982, + 0x1.0p-1074, + 0x1.7p6 + }, + { // Entry 639 + 0x1.p-981, + 0x1.0p-1074, + 0x1.740p6 + }, + { // Entry 640 + 0x1.p-980, + 0x1.0p-1074, + 0x1.780p6 + }, + { // Entry 641 + 0x1.p-979, + 0x1.0p-1074, + 0x1.7c0p6 + }, + { // Entry 642 + 0x1.p-978, + 0x1.0p-1074, + 0x1.8p6 + }, + { // Entry 643 + 0x1.p-977, + 0x1.0p-1074, + 0x1.840p6 + }, + { // Entry 644 + 0x1.p-976, + 0x1.0p-1074, + 0x1.880p6 + }, + { // Entry 645 + 0x1.p-975, + 0x1.0p-1074, + 0x1.8c0p6 + }, + { // Entry 646 + 0x1.p-974, + 0x1.0p-1074, + 0x1.9p6 + }, + { // Entry 647 + 0x1.p-973, + 0x1.0p-1074, + 0x1.940p6 + }, + { // Entry 648 + 0x1.p-972, + 0x1.0p-1074, + 0x1.980p6 + }, + { // Entry 649 + 0x1.p-971, + 0x1.0p-1074, + 0x1.9c0p6 + }, + { // Entry 650 + 0x1.p-970, + 0x1.0p-1074, + 0x1.ap6 + }, + { // Entry 651 + 0x1.p-969, + 0x1.0p-1074, + 0x1.a40p6 + }, + { // Entry 652 + 0x1.p-968, + 0x1.0p-1074, + 0x1.a80p6 + }, + { // Entry 653 + 0x1.p-967, + 0x1.0p-1074, + 0x1.ac0p6 + }, + { // Entry 654 + 0x1.p-966, + 0x1.0p-1074, + 0x1.bp6 + }, + { // Entry 655 + 0x1.p-965, + 0x1.0p-1074, + 0x1.b40p6 + }, + { // Entry 656 + 0x1.p-964, + 0x1.0p-1074, + 0x1.b80p6 + }, + { // Entry 657 + 0x1.p-963, + 0x1.0p-1074, + 0x1.bc0p6 + }, + { // Entry 658 + 0x1.p-962, + 0x1.0p-1074, + 0x1.cp6 + }, + { // Entry 659 + 0x1.p-961, + 0x1.0p-1074, + 0x1.c40p6 + }, + { // Entry 660 + 0x1.p-960, + 0x1.0p-1074, + 0x1.c80p6 + }, + { // Entry 661 + 0x1.p-959, + 0x1.0p-1074, + 0x1.cc0p6 + }, + { // Entry 662 + 0x1.p-958, + 0x1.0p-1074, + 0x1.dp6 + }, + { // Entry 663 + 0x1.p-957, + 0x1.0p-1074, + 0x1.d40p6 + }, + { // Entry 664 + 0x1.p-956, + 0x1.0p-1074, + 0x1.d80p6 + }, + { // Entry 665 + 0x1.p-955, + 0x1.0p-1074, + 0x1.dc0p6 + }, + { // Entry 666 + 0x1.p-954, + 0x1.0p-1074, + 0x1.ep6 + }, + { // Entry 667 + 0x1.p-953, + 0x1.0p-1074, + 0x1.e40p6 + }, + { // Entry 668 + 0x1.p-952, + 0x1.0p-1074, + 0x1.e80p6 + }, + { // Entry 669 + 0x1.p-951, + 0x1.0p-1074, + 0x1.ec0p6 + }, + { // Entry 670 + 0x1.p-950, + 0x1.0p-1074, + 0x1.fp6 + }, + { // Entry 671 + 0x1.p-949, + 0x1.0p-1074, + 0x1.f40p6 + }, + { // Entry 672 + 0x1.p-948, + 0x1.0p-1074, + 0x1.f80p6 + }, + { // Entry 673 + 0x1.p-947, + 0x1.0p-1074, + 0x1.fc0p6 + }, + { // Entry 674 + 0x1.p-946, + 0x1.0p-1074, + 0x1.0p7 + }, + { // Entry 675 + 0x1.p-945, + 0x1.0p-1074, + 0x1.020p7 + }, + { // Entry 676 + 0x1.p-944, + 0x1.0p-1074, + 0x1.040p7 + }, + { // Entry 677 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 678 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p0 + }, + { // Entry 679 + 0x1.ffffffffffffe0p-1021, + 0x1.ffffffffffffep-1023, + 0x1.0p1 + }, + { // Entry 680 + 0x1.ffffffffffffe0p-1020, + 0x1.ffffffffffffep-1023, + 0x1.8p1 + }, + { // Entry 681 + 0x1.ffffffffffffe0p-1019, + 0x1.ffffffffffffep-1023, + 0x1.0p2 + }, + { // Entry 682 + 0x1.ffffffffffffe0p-1018, + 0x1.ffffffffffffep-1023, + 0x1.4p2 + }, + { // Entry 683 + 0x1.ffffffffffffe0p-1017, + 0x1.ffffffffffffep-1023, + 0x1.8p2 + }, + { // Entry 684 + 0x1.ffffffffffffe0p-1016, + 0x1.ffffffffffffep-1023, + 0x1.cp2 + }, + { // Entry 685 + 0x1.ffffffffffffe0p-1015, + 0x1.ffffffffffffep-1023, + 0x1.0p3 + }, + { // Entry 686 + 0x1.ffffffffffffe0p-1014, + 0x1.ffffffffffffep-1023, + 0x1.2p3 + }, + { // Entry 687 + 0x1.ffffffffffffe0p-1013, + 0x1.ffffffffffffep-1023, + 0x1.4p3 + }, + { // Entry 688 + 0x1.ffffffffffffe0p-1012, + 0x1.ffffffffffffep-1023, + 0x1.6p3 + }, + { // Entry 689 + 0x1.ffffffffffffe0p-1011, + 0x1.ffffffffffffep-1023, + 0x1.8p3 + }, + { // Entry 690 + 0x1.ffffffffffffe0p-1010, + 0x1.ffffffffffffep-1023, + 0x1.ap3 + }, + { // Entry 691 + 0x1.ffffffffffffe0p-1009, + 0x1.ffffffffffffep-1023, + 0x1.cp3 + }, + { // Entry 692 + 0x1.ffffffffffffe0p-1008, + 0x1.ffffffffffffep-1023, + 0x1.ep3 + }, + { // Entry 693 + 0x1.ffffffffffffe0p-1007, + 0x1.ffffffffffffep-1023, + 0x1.0p4 + }, + { // Entry 694 + 0x1.ffffffffffffe0p-1006, + 0x1.ffffffffffffep-1023, + 0x1.1p4 + }, + { // Entry 695 + 0x1.ffffffffffffe0p-1005, + 0x1.ffffffffffffep-1023, + 0x1.2p4 + }, + { // Entry 696 + 0x1.ffffffffffffe0p-1004, + 0x1.ffffffffffffep-1023, + 0x1.3p4 + }, + { // Entry 697 + 0x1.ffffffffffffe0p-1003, + 0x1.ffffffffffffep-1023, + 0x1.4p4 + }, + { // Entry 698 + 0x1.ffffffffffffe0p-1002, + 0x1.ffffffffffffep-1023, + 0x1.5p4 + }, + { // Entry 699 + 0x1.ffffffffffffe0p-1001, + 0x1.ffffffffffffep-1023, + 0x1.6p4 + }, + { // Entry 700 + 0x1.ffffffffffffe0p-1000, + 0x1.ffffffffffffep-1023, + 0x1.7p4 + }, + { // Entry 701 + 0x1.ffffffffffffe0p-999, + 0x1.ffffffffffffep-1023, + 0x1.8p4 + }, + { // Entry 702 + 0x1.ffffffffffffe0p-998, + 0x1.ffffffffffffep-1023, + 0x1.9p4 + }, + { // Entry 703 + 0x1.ffffffffffffe0p-997, + 0x1.ffffffffffffep-1023, + 0x1.ap4 + }, + { // Entry 704 + 0x1.ffffffffffffe0p-996, + 0x1.ffffffffffffep-1023, + 0x1.bp4 + }, + { // Entry 705 + 0x1.ffffffffffffe0p-995, + 0x1.ffffffffffffep-1023, + 0x1.cp4 + }, + { // Entry 706 + 0x1.ffffffffffffe0p-994, + 0x1.ffffffffffffep-1023, + 0x1.dp4 + }, + { // Entry 707 + 0x1.ffffffffffffe0p-993, + 0x1.ffffffffffffep-1023, + 0x1.ep4 + }, + { // Entry 708 + 0x1.ffffffffffffe0p-992, + 0x1.ffffffffffffep-1023, + 0x1.fp4 + }, + { // Entry 709 + 0x1.ffffffffffffe0p-991, + 0x1.ffffffffffffep-1023, + 0x1.0p5 + }, + { // Entry 710 + 0x1.ffffffffffffe0p-990, + 0x1.ffffffffffffep-1023, + 0x1.080p5 + }, + { // Entry 711 + 0x1.ffffffffffffe0p-989, + 0x1.ffffffffffffep-1023, + 0x1.1p5 + }, + { // Entry 712 + 0x1.ffffffffffffe0p-988, + 0x1.ffffffffffffep-1023, + 0x1.180p5 + }, + { // Entry 713 + 0x1.ffffffffffffe0p-987, + 0x1.ffffffffffffep-1023, + 0x1.2p5 + }, + { // Entry 714 + 0x1.ffffffffffffe0p-986, + 0x1.ffffffffffffep-1023, + 0x1.280p5 + }, + { // Entry 715 + 0x1.ffffffffffffe0p-985, + 0x1.ffffffffffffep-1023, + 0x1.3p5 + }, + { // Entry 716 + 0x1.ffffffffffffe0p-984, + 0x1.ffffffffffffep-1023, + 0x1.380p5 + }, + { // Entry 717 + 0x1.ffffffffffffe0p-983, + 0x1.ffffffffffffep-1023, + 0x1.4p5 + }, + { // Entry 718 + 0x1.ffffffffffffe0p-982, + 0x1.ffffffffffffep-1023, + 0x1.480p5 + }, + { // Entry 719 + 0x1.ffffffffffffe0p-981, + 0x1.ffffffffffffep-1023, + 0x1.5p5 + }, + { // Entry 720 + 0x1.ffffffffffffe0p-980, + 0x1.ffffffffffffep-1023, + 0x1.580p5 + }, + { // Entry 721 + 0x1.ffffffffffffe0p-979, + 0x1.ffffffffffffep-1023, + 0x1.6p5 + }, + { // Entry 722 + 0x1.ffffffffffffe0p-978, + 0x1.ffffffffffffep-1023, + 0x1.680p5 + }, + { // Entry 723 + 0x1.ffffffffffffe0p-977, + 0x1.ffffffffffffep-1023, + 0x1.7p5 + }, + { // Entry 724 + 0x1.ffffffffffffe0p-976, + 0x1.ffffffffffffep-1023, + 0x1.780p5 + }, + { // Entry 725 + 0x1.ffffffffffffe0p-975, + 0x1.ffffffffffffep-1023, + 0x1.8p5 + }, + { // Entry 726 + 0x1.ffffffffffffe0p-974, + 0x1.ffffffffffffep-1023, + 0x1.880p5 + }, + { // Entry 727 + 0x1.ffffffffffffe0p-973, + 0x1.ffffffffffffep-1023, + 0x1.9p5 + }, + { // Entry 728 + 0x1.ffffffffffffe0p-972, + 0x1.ffffffffffffep-1023, + 0x1.980p5 + }, + { // Entry 729 + 0x1.ffffffffffffe0p-971, + 0x1.ffffffffffffep-1023, + 0x1.ap5 + }, + { // Entry 730 + 0x1.ffffffffffffe0p-970, + 0x1.ffffffffffffep-1023, + 0x1.a80p5 + }, + { // Entry 731 + 0x1.ffffffffffffe0p-969, + 0x1.ffffffffffffep-1023, + 0x1.bp5 + }, + { // Entry 732 + 0x1.ffffffffffffe0p-968, + 0x1.ffffffffffffep-1023, + 0x1.b80p5 + }, + { // Entry 733 + 0x1.ffffffffffffe0p-967, + 0x1.ffffffffffffep-1023, + 0x1.cp5 + }, + { // Entry 734 + 0x1.ffffffffffffe0p-966, + 0x1.ffffffffffffep-1023, + 0x1.c80p5 + }, + { // Entry 735 + 0x1.ffffffffffffe0p-965, + 0x1.ffffffffffffep-1023, + 0x1.dp5 + }, + { // Entry 736 + 0x1.ffffffffffffe0p-964, + 0x1.ffffffffffffep-1023, + 0x1.d80p5 + }, + { // Entry 737 + 0x1.ffffffffffffe0p-963, + 0x1.ffffffffffffep-1023, + 0x1.ep5 + }, + { // Entry 738 + 0x1.ffffffffffffe0p-962, + 0x1.ffffffffffffep-1023, + 0x1.e80p5 + }, + { // Entry 739 + 0x1.ffffffffffffe0p-961, + 0x1.ffffffffffffep-1023, + 0x1.fp5 + }, + { // Entry 740 + 0x1.ffffffffffffe0p-960, + 0x1.ffffffffffffep-1023, + 0x1.f80p5 + }, + { // Entry 741 + 0x1.ffffffffffffe0p-959, + 0x1.ffffffffffffep-1023, + 0x1.0p6 + }, + { // Entry 742 + 0x1.ffffffffffffe0p-958, + 0x1.ffffffffffffep-1023, + 0x1.040p6 + }, + { // Entry 743 + 0x1.ffffffffffffe0p-957, + 0x1.ffffffffffffep-1023, + 0x1.080p6 + }, + { // Entry 744 + 0x1.ffffffffffffe0p-956, + 0x1.ffffffffffffep-1023, + 0x1.0c0p6 + }, + { // Entry 745 + 0x1.ffffffffffffe0p-955, + 0x1.ffffffffffffep-1023, + 0x1.1p6 + }, + { // Entry 746 + 0x1.ffffffffffffe0p-954, + 0x1.ffffffffffffep-1023, + 0x1.140p6 + }, + { // Entry 747 + 0x1.ffffffffffffe0p-953, + 0x1.ffffffffffffep-1023, + 0x1.180p6 + }, + { // Entry 748 + 0x1.ffffffffffffe0p-952, + 0x1.ffffffffffffep-1023, + 0x1.1c0p6 + }, + { // Entry 749 + 0x1.ffffffffffffe0p-951, + 0x1.ffffffffffffep-1023, + 0x1.2p6 + }, + { // Entry 750 + 0x1.ffffffffffffe0p-950, + 0x1.ffffffffffffep-1023, + 0x1.240p6 + }, + { // Entry 751 + 0x1.ffffffffffffe0p-949, + 0x1.ffffffffffffep-1023, + 0x1.280p6 + }, + { // Entry 752 + 0x1.ffffffffffffe0p-948, + 0x1.ffffffffffffep-1023, + 0x1.2c0p6 + }, + { // Entry 753 + 0x1.ffffffffffffe0p-947, + 0x1.ffffffffffffep-1023, + 0x1.3p6 + }, + { // Entry 754 + 0x1.ffffffffffffe0p-946, + 0x1.ffffffffffffep-1023, + 0x1.340p6 + }, + { // Entry 755 + 0x1.ffffffffffffe0p-945, + 0x1.ffffffffffffep-1023, + 0x1.380p6 + }, + { // Entry 756 + 0x1.ffffffffffffe0p-944, + 0x1.ffffffffffffep-1023, + 0x1.3c0p6 + }, + { // Entry 757 + 0x1.ffffffffffffe0p-943, + 0x1.ffffffffffffep-1023, + 0x1.4p6 + }, + { // Entry 758 + 0x1.ffffffffffffe0p-942, + 0x1.ffffffffffffep-1023, + 0x1.440p6 + }, + { // Entry 759 + 0x1.ffffffffffffe0p-941, + 0x1.ffffffffffffep-1023, + 0x1.480p6 + }, + { // Entry 760 + 0x1.ffffffffffffe0p-940, + 0x1.ffffffffffffep-1023, + 0x1.4c0p6 + }, + { // Entry 761 + 0x1.ffffffffffffe0p-939, + 0x1.ffffffffffffep-1023, + 0x1.5p6 + }, + { // Entry 762 + 0x1.ffffffffffffe0p-938, + 0x1.ffffffffffffep-1023, + 0x1.540p6 + }, + { // Entry 763 + 0x1.ffffffffffffe0p-937, + 0x1.ffffffffffffep-1023, + 0x1.580p6 + }, + { // Entry 764 + 0x1.ffffffffffffe0p-936, + 0x1.ffffffffffffep-1023, + 0x1.5c0p6 + }, + { // Entry 765 + 0x1.ffffffffffffe0p-935, + 0x1.ffffffffffffep-1023, + 0x1.6p6 + }, + { // Entry 766 + 0x1.ffffffffffffe0p-934, + 0x1.ffffffffffffep-1023, + 0x1.640p6 + }, + { // Entry 767 + 0x1.ffffffffffffe0p-933, + 0x1.ffffffffffffep-1023, + 0x1.680p6 + }, + { // Entry 768 + 0x1.ffffffffffffe0p-932, + 0x1.ffffffffffffep-1023, + 0x1.6c0p6 + }, + { // Entry 769 + 0x1.ffffffffffffe0p-931, + 0x1.ffffffffffffep-1023, + 0x1.7p6 + }, + { // Entry 770 + 0x1.ffffffffffffe0p-930, + 0x1.ffffffffffffep-1023, + 0x1.740p6 + }, + { // Entry 771 + 0x1.ffffffffffffe0p-929, + 0x1.ffffffffffffep-1023, + 0x1.780p6 + }, + { // Entry 772 + 0x1.ffffffffffffe0p-928, + 0x1.ffffffffffffep-1023, + 0x1.7c0p6 + }, + { // Entry 773 + 0x1.ffffffffffffe0p-927, + 0x1.ffffffffffffep-1023, + 0x1.8p6 + }, + { // Entry 774 + 0x1.ffffffffffffe0p-926, + 0x1.ffffffffffffep-1023, + 0x1.840p6 + }, + { // Entry 775 + 0x1.ffffffffffffe0p-925, + 0x1.ffffffffffffep-1023, + 0x1.880p6 + }, + { // Entry 776 + 0x1.ffffffffffffe0p-924, + 0x1.ffffffffffffep-1023, + 0x1.8c0p6 + }, + { // Entry 777 + 0x1.ffffffffffffe0p-923, + 0x1.ffffffffffffep-1023, + 0x1.9p6 + }, + { // Entry 778 + 0x1.ffffffffffffe0p-922, + 0x1.ffffffffffffep-1023, + 0x1.940p6 + }, + { // Entry 779 + 0x1.ffffffffffffe0p-921, + 0x1.ffffffffffffep-1023, + 0x1.980p6 + }, + { // Entry 780 + 0x1.ffffffffffffe0p-920, + 0x1.ffffffffffffep-1023, + 0x1.9c0p6 + }, + { // Entry 781 + 0x1.ffffffffffffe0p-919, + 0x1.ffffffffffffep-1023, + 0x1.ap6 + }, + { // Entry 782 + 0x1.ffffffffffffe0p-918, + 0x1.ffffffffffffep-1023, + 0x1.a40p6 + }, + { // Entry 783 + 0x1.ffffffffffffe0p-917, + 0x1.ffffffffffffep-1023, + 0x1.a80p6 + }, + { // Entry 784 + 0x1.ffffffffffffe0p-916, + 0x1.ffffffffffffep-1023, + 0x1.ac0p6 + }, + { // Entry 785 + 0x1.ffffffffffffe0p-915, + 0x1.ffffffffffffep-1023, + 0x1.bp6 + }, + { // Entry 786 + 0x1.ffffffffffffe0p-914, + 0x1.ffffffffffffep-1023, + 0x1.b40p6 + }, + { // Entry 787 + 0x1.ffffffffffffe0p-913, + 0x1.ffffffffffffep-1023, + 0x1.b80p6 + }, + { // Entry 788 + 0x1.ffffffffffffe0p-912, + 0x1.ffffffffffffep-1023, + 0x1.bc0p6 + }, + { // Entry 789 + 0x1.ffffffffffffe0p-911, + 0x1.ffffffffffffep-1023, + 0x1.cp6 + }, + { // Entry 790 + 0x1.ffffffffffffe0p-910, + 0x1.ffffffffffffep-1023, + 0x1.c40p6 + }, + { // Entry 791 + 0x1.ffffffffffffe0p-909, + 0x1.ffffffffffffep-1023, + 0x1.c80p6 + }, + { // Entry 792 + 0x1.ffffffffffffe0p-908, + 0x1.ffffffffffffep-1023, + 0x1.cc0p6 + }, + { // Entry 793 + 0x1.ffffffffffffe0p-907, + 0x1.ffffffffffffep-1023, + 0x1.dp6 + }, + { // Entry 794 + 0x1.ffffffffffffe0p-906, + 0x1.ffffffffffffep-1023, + 0x1.d40p6 + }, + { // Entry 795 + 0x1.ffffffffffffe0p-905, + 0x1.ffffffffffffep-1023, + 0x1.d80p6 + }, + { // Entry 796 + 0x1.ffffffffffffe0p-904, + 0x1.ffffffffffffep-1023, + 0x1.dc0p6 + }, + { // Entry 797 + 0x1.ffffffffffffe0p-903, + 0x1.ffffffffffffep-1023, + 0x1.ep6 + }, + { // Entry 798 + 0x1.ffffffffffffe0p-902, + 0x1.ffffffffffffep-1023, + 0x1.e40p6 + }, + { // Entry 799 + 0x1.ffffffffffffe0p-901, + 0x1.ffffffffffffep-1023, + 0x1.e80p6 + }, + { // Entry 800 + 0x1.ffffffffffffe0p-900, + 0x1.ffffffffffffep-1023, + 0x1.ec0p6 + }, + { // Entry 801 + 0x1.ffffffffffffe0p-899, + 0x1.ffffffffffffep-1023, + 0x1.fp6 + }, + { // Entry 802 + 0x1.ffffffffffffe0p-898, + 0x1.ffffffffffffep-1023, + 0x1.f40p6 + }, + { // Entry 803 + 0x1.ffffffffffffe0p-897, + 0x1.ffffffffffffep-1023, + 0x1.f80p6 + }, + { // Entry 804 + 0x1.ffffffffffffe0p-896, + 0x1.ffffffffffffep-1023, + 0x1.fc0p6 + }, + { // Entry 805 + 0x1.ffffffffffffe0p-895, + 0x1.ffffffffffffep-1023, + 0x1.0p7 + }, + { // Entry 806 + 0x1.ffffffffffffe0p-894, + 0x1.ffffffffffffep-1023, + 0x1.020p7 + }, + { // Entry 807 + 0x1.ffffffffffffe0p-893, + 0x1.ffffffffffffep-1023, + 0x1.040p7 + }, + { // Entry 808 + 0x1.p0, + 0x1.0p-1074, + 0x1.0c8p10 + }, + { // Entry 809 + 0x1.p-1, + 0x1.0p-1074, + 0x1.0c4p10 + }, + { // Entry 810 + 0x1.ffffffffffffe0p51, + 0x1.ffffffffffffep-1023, + 0x1.0c8p10 + }, + { // Entry 811 + 0x1.ffffffffffffe0p50, + 0x1.ffffffffffffep-1023, + 0x1.0c4p10 + }, + { // Entry 812 + 0x1.p-1022, + 0x1.0p-1074, + 0x1.ap5 + }, + { // Entry 813 + 0x1.p-1023, + 0x1.0p-1074, + 0x1.980p5 + }, + { // Entry 814 + 0x1.ffffffffffffe0p-971, + 0x1.ffffffffffffep-1023, + 0x1.ap5 + }, + { // Entry 815 + 0x1.ffffffffffffe0p-972, + 0x1.ffffffffffffep-1023, + 0x1.980p5 + }, + { // Entry 816 + 0x1.p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 817 + 0x1.p-1073, + 0x1.0p-1074, + 0x1.0p0 + }, + { // Entry 818 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 819 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + 0x1.0p0 + }, + { // Entry 820 + HUGE_VAL, + HUGE_VAL, + HUGE_VAL + }, + { // Entry 821 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 822 + HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 823 + HUGE_VAL, + 0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 824 + HUGE_VAL, + 0x1.0p-1022, + HUGE_VAL + }, + { // Entry 825 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 826 + HUGE_VAL, + 0x1.0p-1074, + HUGE_VAL + }, + { // Entry 827 + -HUGE_VAL, + -0x1.0p-1074, + HUGE_VAL + }, + { // Entry 828 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + HUGE_VAL + }, + { // Entry 829 + -HUGE_VAL, + -0x1.0p-1022, + HUGE_VAL + }, + { // Entry 830 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + HUGE_VAL + }, + { // Entry 831 + -HUGE_VAL, + -HUGE_VAL, + HUGE_VAL + }, + { // Entry 832 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 833 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 834 + 0.0, + 0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 835 + HUGE_VAL, + 0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 836 + HUGE_VAL, + 0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 837 + HUGE_VAL, + 0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 838 + -HUGE_VAL, + -0x1.0p-1074, + 0x1.fffffffffffffp1023 + }, + { // Entry 839 + -HUGE_VAL, + -0x1.ffffffffffffep-1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 840 + -HUGE_VAL, + -0x1.0p-1022, + 0x1.fffffffffffffp1023 + }, + { // Entry 841 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 842 + 0.0, + 0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 843 + 0.0, + 0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 844 + 0.0, + 0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 845 + 0.0, + 0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 846 + 0.0, + 0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 847 + 0.0, + 0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 848 + 0.0, + 0.0, + -HUGE_VAL + }, + { // Entry 849 + -0.0, + -0.0, + -HUGE_VAL + }, + { // Entry 850 + -0.0, + -0x1.0p-1074, + -0x1.fffffffffffffp1023 + }, + { // Entry 851 + -0.0, + -0x1.0p-1074, + -HUGE_VAL + }, + { // Entry 852 + -0.0, + -0x1.ffffffffffffep-1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 853 + -0.0, + -0x1.ffffffffffffep-1023, + -HUGE_VAL + }, + { // Entry 854 + -0.0, + -0x1.0p-1022, + -0x1.fffffffffffffp1023 + }, + { // Entry 855 + -0.0, + -0x1.0p-1022, + -HUGE_VAL + }, + { // Entry 856 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 857 + -0.0, + -0x1.fffffffffffffp1023, + -HUGE_VAL + }, + { // Entry 858 + 0.0, + 0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 859 + -0.0, + -0.0, + 0x1.fffffffffffffp1023 + }, + { // Entry 860 + 0.0, + 0.0, + 0.0 + }, + { // Entry 861 + -0.0, + -0.0, + 0.0 + }, + { // Entry 862 + 0.0, + 0.0, + -0.0 + }, + { // Entry 863 + -0.0, + -0.0, + -0.0 + }, + { // Entry 864 + 0.0, + 0.0, + 0x1.0p0 + }, + { // Entry 865 + -0.0, + -0.0, + 0x1.0p0 + }, + { // Entry 866 + 0.0, + 0.0, + -0x1.0p0 + }, + { // Entry 867 + -0.0, + -0.0, + -0x1.0p0 + }, + { // Entry 868 + 0.0, + 0.0, + 0x1.fc0p6 + }, + { // Entry 869 + -0.0, + -0.0, + 0x1.fc0p6 + }, + { // Entry 870 + 0.0, + 0.0, + -0x1.fc0p6 + }, + { // Entry 871 + -0.0, + -0.0, + -0x1.fc0p6 + }, + { // Entry 872 + 0.0, + 0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 873 + -0.0, + -0.0, + -0x1.fffffffffffffp1023 + }, + { // Entry 874 + HUGE_VAL, + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 875 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 876 + HUGE_VAL, + HUGE_VAL, + 0.0 + }, + { // Entry 877 + -HUGE_VAL, + -HUGE_VAL, + 0.0 + }, + { // Entry 878 + HUGE_VAL, + HUGE_VAL, + -0.0 + }, + { // Entry 879 + -HUGE_VAL, + -HUGE_VAL, + -0.0 + }, + { // Entry 880 + HUGE_VAL, + HUGE_VAL, + 0x1.0p0 + }, + { // Entry 881 + -HUGE_VAL, + -HUGE_VAL, + 0x1.0p0 + }, + { // Entry 882 + HUGE_VAL, + HUGE_VAL, + -0x1.0p0 + }, + { // Entry 883 + -HUGE_VAL, + -HUGE_VAL, + -0x1.0p0 + }, + { // Entry 884 + HUGE_VAL, + HUGE_VAL, + 0x1.fc0p6 + }, + { // Entry 885 + -HUGE_VAL, + -HUGE_VAL, + 0x1.fc0p6 + }, + { // Entry 886 + HUGE_VAL, + HUGE_VAL, + -0x1.fc0p6 + }, + { // Entry 887 + -HUGE_VAL, + -HUGE_VAL, + -0x1.fc0p6 + }, + { // Entry 888 + HUGE_VAL, + HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 889 + -HUGE_VAL, + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 890 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 891 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 892 + 0x1.p-1022, + 0x1.0p-1022, + 0.0 + }, + { // Entry 893 + 0x1.p-1022, + 0x1.0p-1022, + -0.0 + }, + { // Entry 894 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 895 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 896 + 0x1.p-1074, + 0x1.0p-1074, + 0.0 + }, + { // Entry 897 + 0x1.p-1074, + 0x1.0p-1074, + -0.0 + }, + { // Entry 898 + -0x1.p-1074, + -0x1.0p-1074, + 0.0 + }, + { // Entry 899 + -0x1.p-1074, + -0x1.0p-1074, + -0.0 + }, + { // Entry 900 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + 0.0 + }, + { // Entry 901 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + -0.0 + }, + { // Entry 902 + -0x1.p-1022, + -0x1.0p-1022, + 0.0 + }, + { // Entry 903 + -0x1.p-1022, + -0x1.0p-1022, + -0.0 + }, + { // Entry 904 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + 0.0 + }, + { // Entry 905 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + -0.0 + }, + { // Entry 906 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.0p0 + }, + { // Entry 907 + HUGE_VAL, + 0x1.fffffffffffffp1023, + 0x1.fc0p6 + }, + { // Entry 908 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.0p0 + }, + { // Entry 909 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + 0x1.fc0p6 + }, + { // Entry 910 + HUGE_VAL, + 0x1.0p-1022, + 0x1.388p15 + }, + { // Entry 911 + HUGE_VAL, + 0x1.0p-1074, + 0x1.388p15 + }, + { // Entry 912 + -HUGE_VAL, + -0x1.0p-1022, + 0x1.388p15 + }, + { // Entry 913 + -HUGE_VAL, + -0x1.0p-1074, + 0x1.388p15 + }, + { // Entry 914 + 0x1.p-1023, + 0x1.0p-1022, + -0x1.0p0 + }, + { // Entry 915 + 0x1.ffffffffffffe0p-1024, + 0x1.ffffffffffffep-1023, + -0x1.0p0 + }, + { // Entry 916 + 0.0, + 0x1.0p-1074, + -0x1.0p0 + }, + { // Entry 917 + -0.0, + -0x1.0p-1074, + -0x1.0p0 + }, + { // Entry 918 + -0x1.ffffffffffffe0p-1024, + -0x1.ffffffffffffep-1023, + -0x1.0p0 + }, + { // Entry 919 + -0x1.p-1023, + -0x1.0p-1022, + -0x1.0p0 + }, + { // Entry 920 + 0.0, + 0x1.fffffffffffffp1023, + -0x1.388p15 + }, + { // Entry 921 + -0.0, + -0x1.fffffffffffffp1023, + -0x1.388p15 + } +}; diff --git a/tests/math_data/scalbf_intel_data.h b/tests/math_data/scalbf_intel_data.h new file mode 100644 index 000000000..cd1d5ef2f --- /dev/null +++ b/tests/math_data/scalbf_intel_data.h @@ -0,0 +1,4588 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_scalbf_intel_data[] = { + { // Entry 0 + -0.0f, + -0x1.p-149, + -0x1.40p3 + }, + { // Entry 1 + -0x1.555554p-128, + -0x1.555554p-2, + -0x1.f8p6 + }, + { // Entry 2 + -0x1.6db6dcp-128, + -0x1.6db6dcp-1, + -0x1.fcp6 + }, + { // Entry 3 + -0x1.8e38e4p-128, + -0x1.8e38e4p-1, + -0x1.fcp6 + }, + { // Entry 4 + 0.0f, + 0x1.p-149, + -0x1.p0 + }, + { // Entry 5 + 0.0f, + 0x1.p-149, + -0x1.40p3 + }, + { // Entry 6 + 0x1.5464b0p-130, + 0x1.5464b0p-2, + -0x1.p7 + }, + { // Entry 7 + 0.0f, + 0x1.dddddep-2, + -0x1.28p7 + }, + { // Entry 8 + 0x1.ecb7e8p-129, + 0x1.ecb7e8p-1, + -0x1.p7 + }, + { // Entry 9 + 0.0f, + 0x1.ffff60p-127, + -0x1.70p4 + }, + { // Entry 10 + 0.0f, + 0x1.ffff84p-127, + -0x1.70p4 + }, + { // Entry 11 + 0x1.fffff8p-137, + 0x1.fffff8p-127, + -0x1.40p3 + }, + { // Entry 12 + 0.0f, + 0x1.fffffep127, + -0x1.p31 + }, + { // Entry 13 + HUGE_VALF, + 0x1.fffffep127, + 0x1.p31 + }, + { // Entry 14 + HUGE_VALF, + 0x1.fffffep127, + 0x1.p31 + }, + { // Entry 15 + -0x1.p-10, + -0x1.p0, + -0x1.40p3 + }, + { // Entry 16 + -0x1.p-9, + -0x1.p0, + -0x1.20p3 + }, + { // Entry 17 + -0x1.p-8, + -0x1.p0, + -0x1.p3 + }, + { // Entry 18 + -0x1.p-7, + -0x1.p0, + -0x1.c0p2 + }, + { // Entry 19 + -0x1.p-6, + -0x1.p0, + -0x1.80p2 + }, + { // Entry 20 + -0x1.p-5, + -0x1.p0, + -0x1.40p2 + }, + { // Entry 21 + -0x1.p-4, + -0x1.p0, + -0x1.p2 + }, + { // Entry 22 + -0x1.p-3, + -0x1.p0, + -0x1.80p1 + }, + { // Entry 23 + -0x1.p-2, + -0x1.p0, + -0x1.p1 + }, + { // Entry 24 + -0x1.p-1, + -0x1.p0, + -0x1.p0 + }, + { // Entry 25 + -0x1.p0, + -0x1.p0, + 0.0 + }, + { // Entry 26 + -0x1.p1, + -0x1.p0, + 0x1.p0 + }, + { // Entry 27 + -0x1.p2, + -0x1.p0, + 0x1.p1 + }, + { // Entry 28 + -0x1.p3, + -0x1.p0, + 0x1.80p1 + }, + { // Entry 29 + -0x1.p4, + -0x1.p0, + 0x1.p2 + }, + { // Entry 30 + -0x1.p5, + -0x1.p0, + 0x1.40p2 + }, + { // Entry 31 + -0x1.p6, + -0x1.p0, + 0x1.80p2 + }, + { // Entry 32 + -0x1.p7, + -0x1.p0, + 0x1.c0p2 + }, + { // Entry 33 + -0x1.p8, + -0x1.p0, + 0x1.p3 + }, + { // Entry 34 + -0x1.p9, + -0x1.p0, + 0x1.20p3 + }, + { // Entry 35 + -0x1.p10, + -0x1.p0, + 0x1.40p3 + }, + { // Entry 36 + -0x1.d1745cp-11, + -0x1.d1745cp-1, + -0x1.40p3 + }, + { // Entry 37 + -0x1.d1745cp-10, + -0x1.d1745cp-1, + -0x1.20p3 + }, + { // Entry 38 + -0x1.d1745cp-9, + -0x1.d1745cp-1, + -0x1.p3 + }, + { // Entry 39 + -0x1.d1745cp-8, + -0x1.d1745cp-1, + -0x1.c0p2 + }, + { // Entry 40 + -0x1.d1745cp-7, + -0x1.d1745cp-1, + -0x1.80p2 + }, + { // Entry 41 + -0x1.d1745cp-6, + -0x1.d1745cp-1, + -0x1.40p2 + }, + { // Entry 42 + -0x1.d1745cp-5, + -0x1.d1745cp-1, + -0x1.p2 + }, + { // Entry 43 + -0x1.d1745cp-4, + -0x1.d1745cp-1, + -0x1.80p1 + }, + { // Entry 44 + -0x1.d1745cp-3, + -0x1.d1745cp-1, + -0x1.p1 + }, + { // Entry 45 + -0x1.d1745cp-2, + -0x1.d1745cp-1, + -0x1.p0 + }, + { // Entry 46 + -0x1.d1745cp-1, + -0x1.d1745cp-1, + 0.0 + }, + { // Entry 47 + -0x1.d1745cp0, + -0x1.d1745cp-1, + 0x1.p0 + }, + { // Entry 48 + -0x1.d1745cp1, + -0x1.d1745cp-1, + 0x1.p1 + }, + { // Entry 49 + -0x1.d1745cp2, + -0x1.d1745cp-1, + 0x1.80p1 + }, + { // Entry 50 + -0x1.d1745cp3, + -0x1.d1745cp-1, + 0x1.p2 + }, + { // Entry 51 + -0x1.d1745cp4, + -0x1.d1745cp-1, + 0x1.40p2 + }, + { // Entry 52 + -0x1.d1745cp5, + -0x1.d1745cp-1, + 0x1.80p2 + }, + { // Entry 53 + -0x1.d1745cp6, + -0x1.d1745cp-1, + 0x1.c0p2 + }, + { // Entry 54 + -0x1.d1745cp7, + -0x1.d1745cp-1, + 0x1.p3 + }, + { // Entry 55 + -0x1.d1745cp8, + -0x1.d1745cp-1, + 0x1.20p3 + }, + { // Entry 56 + -0x1.d1745cp9, + -0x1.d1745cp-1, + 0x1.40p3 + }, + { // Entry 57 + -0x1.a2e8b8p-11, + -0x1.a2e8b8p-1, + -0x1.40p3 + }, + { // Entry 58 + -0x1.a2e8b8p-10, + -0x1.a2e8b8p-1, + -0x1.20p3 + }, + { // Entry 59 + -0x1.a2e8b8p-9, + -0x1.a2e8b8p-1, + -0x1.p3 + }, + { // Entry 60 + -0x1.a2e8b8p-8, + -0x1.a2e8b8p-1, + -0x1.c0p2 + }, + { // Entry 61 + -0x1.a2e8b8p-7, + -0x1.a2e8b8p-1, + -0x1.80p2 + }, + { // Entry 62 + -0x1.a2e8b8p-6, + -0x1.a2e8b8p-1, + -0x1.40p2 + }, + { // Entry 63 + -0x1.a2e8b8p-5, + -0x1.a2e8b8p-1, + -0x1.p2 + }, + { // Entry 64 + -0x1.a2e8b8p-4, + -0x1.a2e8b8p-1, + -0x1.80p1 + }, + { // Entry 65 + -0x1.a2e8b8p-3, + -0x1.a2e8b8p-1, + -0x1.p1 + }, + { // Entry 66 + -0x1.a2e8b8p-2, + -0x1.a2e8b8p-1, + -0x1.p0 + }, + { // Entry 67 + -0x1.a2e8b8p-1, + -0x1.a2e8b8p-1, + 0.0 + }, + { // Entry 68 + -0x1.a2e8b8p0, + -0x1.a2e8b8p-1, + 0x1.p0 + }, + { // Entry 69 + -0x1.a2e8b8p1, + -0x1.a2e8b8p-1, + 0x1.p1 + }, + { // Entry 70 + -0x1.a2e8b8p2, + -0x1.a2e8b8p-1, + 0x1.80p1 + }, + { // Entry 71 + -0x1.a2e8b8p3, + -0x1.a2e8b8p-1, + 0x1.p2 + }, + { // Entry 72 + -0x1.a2e8b8p4, + -0x1.a2e8b8p-1, + 0x1.40p2 + }, + { // Entry 73 + -0x1.a2e8b8p5, + -0x1.a2e8b8p-1, + 0x1.80p2 + }, + { // Entry 74 + -0x1.a2e8b8p6, + -0x1.a2e8b8p-1, + 0x1.c0p2 + }, + { // Entry 75 + -0x1.a2e8b8p7, + -0x1.a2e8b8p-1, + 0x1.p3 + }, + { // Entry 76 + -0x1.a2e8b8p8, + -0x1.a2e8b8p-1, + 0x1.20p3 + }, + { // Entry 77 + -0x1.a2e8b8p9, + -0x1.a2e8b8p-1, + 0x1.40p3 + }, + { // Entry 78 + -0x1.745d14p-11, + -0x1.745d14p-1, + -0x1.40p3 + }, + { // Entry 79 + -0x1.745d14p-10, + -0x1.745d14p-1, + -0x1.20p3 + }, + { // Entry 80 + -0x1.745d14p-9, + -0x1.745d14p-1, + -0x1.p3 + }, + { // Entry 81 + -0x1.745d14p-8, + -0x1.745d14p-1, + -0x1.c0p2 + }, + { // Entry 82 + -0x1.745d14p-7, + -0x1.745d14p-1, + -0x1.80p2 + }, + { // Entry 83 + -0x1.745d14p-6, + -0x1.745d14p-1, + -0x1.40p2 + }, + { // Entry 84 + -0x1.745d14p-5, + -0x1.745d14p-1, + -0x1.p2 + }, + { // Entry 85 + -0x1.745d14p-4, + -0x1.745d14p-1, + -0x1.80p1 + }, + { // Entry 86 + -0x1.745d14p-3, + -0x1.745d14p-1, + -0x1.p1 + }, + { // Entry 87 + -0x1.745d14p-2, + -0x1.745d14p-1, + -0x1.p0 + }, + { // Entry 88 + -0x1.745d14p-1, + -0x1.745d14p-1, + 0.0 + }, + { // Entry 89 + -0x1.745d14p0, + -0x1.745d14p-1, + 0x1.p0 + }, + { // Entry 90 + -0x1.745d14p1, + -0x1.745d14p-1, + 0x1.p1 + }, + { // Entry 91 + -0x1.745d14p2, + -0x1.745d14p-1, + 0x1.80p1 + }, + { // Entry 92 + -0x1.745d14p3, + -0x1.745d14p-1, + 0x1.p2 + }, + { // Entry 93 + -0x1.745d14p4, + -0x1.745d14p-1, + 0x1.40p2 + }, + { // Entry 94 + -0x1.745d14p5, + -0x1.745d14p-1, + 0x1.80p2 + }, + { // Entry 95 + -0x1.745d14p6, + -0x1.745d14p-1, + 0x1.c0p2 + }, + { // Entry 96 + -0x1.745d14p7, + -0x1.745d14p-1, + 0x1.p3 + }, + { // Entry 97 + -0x1.745d14p8, + -0x1.745d14p-1, + 0x1.20p3 + }, + { // Entry 98 + -0x1.745d14p9, + -0x1.745d14p-1, + 0x1.40p3 + }, + { // Entry 99 + -0x1.45d170p-11, + -0x1.45d170p-1, + -0x1.40p3 + }, + { // Entry 100 + -0x1.45d170p-10, + -0x1.45d170p-1, + -0x1.20p3 + }, + { // Entry 101 + -0x1.45d170p-9, + -0x1.45d170p-1, + -0x1.p3 + }, + { // Entry 102 + -0x1.45d170p-8, + -0x1.45d170p-1, + -0x1.c0p2 + }, + { // Entry 103 + -0x1.45d170p-7, + -0x1.45d170p-1, + -0x1.80p2 + }, + { // Entry 104 + -0x1.45d170p-6, + -0x1.45d170p-1, + -0x1.40p2 + }, + { // Entry 105 + -0x1.45d170p-5, + -0x1.45d170p-1, + -0x1.p2 + }, + { // Entry 106 + -0x1.45d170p-4, + -0x1.45d170p-1, + -0x1.80p1 + }, + { // Entry 107 + -0x1.45d170p-3, + -0x1.45d170p-1, + -0x1.p1 + }, + { // Entry 108 + -0x1.45d170p-2, + -0x1.45d170p-1, + -0x1.p0 + }, + { // Entry 109 + -0x1.45d170p-1, + -0x1.45d170p-1, + 0.0 + }, + { // Entry 110 + -0x1.45d170p0, + -0x1.45d170p-1, + 0x1.p0 + }, + { // Entry 111 + -0x1.45d170p1, + -0x1.45d170p-1, + 0x1.p1 + }, + { // Entry 112 + -0x1.45d170p2, + -0x1.45d170p-1, + 0x1.80p1 + }, + { // Entry 113 + -0x1.45d170p3, + -0x1.45d170p-1, + 0x1.p2 + }, + { // Entry 114 + -0x1.45d170p4, + -0x1.45d170p-1, + 0x1.40p2 + }, + { // Entry 115 + -0x1.45d170p5, + -0x1.45d170p-1, + 0x1.80p2 + }, + { // Entry 116 + -0x1.45d170p6, + -0x1.45d170p-1, + 0x1.c0p2 + }, + { // Entry 117 + -0x1.45d170p7, + -0x1.45d170p-1, + 0x1.p3 + }, + { // Entry 118 + -0x1.45d170p8, + -0x1.45d170p-1, + 0x1.20p3 + }, + { // Entry 119 + -0x1.45d170p9, + -0x1.45d170p-1, + 0x1.40p3 + }, + { // Entry 120 + -0x1.1745ccp-11, + -0x1.1745ccp-1, + -0x1.40p3 + }, + { // Entry 121 + -0x1.1745ccp-10, + -0x1.1745ccp-1, + -0x1.20p3 + }, + { // Entry 122 + -0x1.1745ccp-9, + -0x1.1745ccp-1, + -0x1.p3 + }, + { // Entry 123 + -0x1.1745ccp-8, + -0x1.1745ccp-1, + -0x1.c0p2 + }, + { // Entry 124 + -0x1.1745ccp-7, + -0x1.1745ccp-1, + -0x1.80p2 + }, + { // Entry 125 + -0x1.1745ccp-6, + -0x1.1745ccp-1, + -0x1.40p2 + }, + { // Entry 126 + -0x1.1745ccp-5, + -0x1.1745ccp-1, + -0x1.p2 + }, + { // Entry 127 + -0x1.1745ccp-4, + -0x1.1745ccp-1, + -0x1.80p1 + }, + { // Entry 128 + -0x1.1745ccp-3, + -0x1.1745ccp-1, + -0x1.p1 + }, + { // Entry 129 + -0x1.1745ccp-2, + -0x1.1745ccp-1, + -0x1.p0 + }, + { // Entry 130 + -0x1.1745ccp-1, + -0x1.1745ccp-1, + 0.0 + }, + { // Entry 131 + -0x1.1745ccp0, + -0x1.1745ccp-1, + 0x1.p0 + }, + { // Entry 132 + -0x1.1745ccp1, + -0x1.1745ccp-1, + 0x1.p1 + }, + { // Entry 133 + -0x1.1745ccp2, + -0x1.1745ccp-1, + 0x1.80p1 + }, + { // Entry 134 + -0x1.1745ccp3, + -0x1.1745ccp-1, + 0x1.p2 + }, + { // Entry 135 + -0x1.1745ccp4, + -0x1.1745ccp-1, + 0x1.40p2 + }, + { // Entry 136 + -0x1.1745ccp5, + -0x1.1745ccp-1, + 0x1.80p2 + }, + { // Entry 137 + -0x1.1745ccp6, + -0x1.1745ccp-1, + 0x1.c0p2 + }, + { // Entry 138 + -0x1.1745ccp7, + -0x1.1745ccp-1, + 0x1.p3 + }, + { // Entry 139 + -0x1.1745ccp8, + -0x1.1745ccp-1, + 0x1.20p3 + }, + { // Entry 140 + -0x1.1745ccp9, + -0x1.1745ccp-1, + 0x1.40p3 + }, + { // Entry 141 + -0x1.d17452p-12, + -0x1.d17452p-2, + -0x1.40p3 + }, + { // Entry 142 + -0x1.d17452p-11, + -0x1.d17452p-2, + -0x1.20p3 + }, + { // Entry 143 + -0x1.d17452p-10, + -0x1.d17452p-2, + -0x1.p3 + }, + { // Entry 144 + -0x1.d17452p-9, + -0x1.d17452p-2, + -0x1.c0p2 + }, + { // Entry 145 + -0x1.d17452p-8, + -0x1.d17452p-2, + -0x1.80p2 + }, + { // Entry 146 + -0x1.d17452p-7, + -0x1.d17452p-2, + -0x1.40p2 + }, + { // Entry 147 + -0x1.d17452p-6, + -0x1.d17452p-2, + -0x1.p2 + }, + { // Entry 148 + -0x1.d17452p-5, + -0x1.d17452p-2, + -0x1.80p1 + }, + { // Entry 149 + -0x1.d17452p-4, + -0x1.d17452p-2, + -0x1.p1 + }, + { // Entry 150 + -0x1.d17452p-3, + -0x1.d17452p-2, + -0x1.p0 + }, + { // Entry 151 + -0x1.d17452p-2, + -0x1.d17452p-2, + 0.0 + }, + { // Entry 152 + -0x1.d17452p-1, + -0x1.d17452p-2, + 0x1.p0 + }, + { // Entry 153 + -0x1.d17452p0, + -0x1.d17452p-2, + 0x1.p1 + }, + { // Entry 154 + -0x1.d17452p1, + -0x1.d17452p-2, + 0x1.80p1 + }, + { // Entry 155 + -0x1.d17452p2, + -0x1.d17452p-2, + 0x1.p2 + }, + { // Entry 156 + -0x1.d17452p3, + -0x1.d17452p-2, + 0x1.40p2 + }, + { // Entry 157 + -0x1.d17452p4, + -0x1.d17452p-2, + 0x1.80p2 + }, + { // Entry 158 + -0x1.d17452p5, + -0x1.d17452p-2, + 0x1.c0p2 + }, + { // Entry 159 + -0x1.d17452p6, + -0x1.d17452p-2, + 0x1.p3 + }, + { // Entry 160 + -0x1.d17452p7, + -0x1.d17452p-2, + 0x1.20p3 + }, + { // Entry 161 + -0x1.d17452p8, + -0x1.d17452p-2, + 0x1.40p3 + }, + { // Entry 162 + -0x1.745d0cp-12, + -0x1.745d0cp-2, + -0x1.40p3 + }, + { // Entry 163 + -0x1.745d0cp-11, + -0x1.745d0cp-2, + -0x1.20p3 + }, + { // Entry 164 + -0x1.745d0cp-10, + -0x1.745d0cp-2, + -0x1.p3 + }, + { // Entry 165 + -0x1.745d0cp-9, + -0x1.745d0cp-2, + -0x1.c0p2 + }, + { // Entry 166 + -0x1.745d0cp-8, + -0x1.745d0cp-2, + -0x1.80p2 + }, + { // Entry 167 + -0x1.745d0cp-7, + -0x1.745d0cp-2, + -0x1.40p2 + }, + { // Entry 168 + -0x1.745d0cp-6, + -0x1.745d0cp-2, + -0x1.p2 + }, + { // Entry 169 + -0x1.745d0cp-5, + -0x1.745d0cp-2, + -0x1.80p1 + }, + { // Entry 170 + -0x1.745d0cp-4, + -0x1.745d0cp-2, + -0x1.p1 + }, + { // Entry 171 + -0x1.745d0cp-3, + -0x1.745d0cp-2, + -0x1.p0 + }, + { // Entry 172 + -0x1.745d0cp-2, + -0x1.745d0cp-2, + 0.0 + }, + { // Entry 173 + -0x1.745d0cp-1, + -0x1.745d0cp-2, + 0x1.p0 + }, + { // Entry 174 + -0x1.745d0cp0, + -0x1.745d0cp-2, + 0x1.p1 + }, + { // Entry 175 + -0x1.745d0cp1, + -0x1.745d0cp-2, + 0x1.80p1 + }, + { // Entry 176 + -0x1.745d0cp2, + -0x1.745d0cp-2, + 0x1.p2 + }, + { // Entry 177 + -0x1.745d0cp3, + -0x1.745d0cp-2, + 0x1.40p2 + }, + { // Entry 178 + -0x1.745d0cp4, + -0x1.745d0cp-2, + 0x1.80p2 + }, + { // Entry 179 + -0x1.745d0cp5, + -0x1.745d0cp-2, + 0x1.c0p2 + }, + { // Entry 180 + -0x1.745d0cp6, + -0x1.745d0cp-2, + 0x1.p3 + }, + { // Entry 181 + -0x1.745d0cp7, + -0x1.745d0cp-2, + 0x1.20p3 + }, + { // Entry 182 + -0x1.745d0cp8, + -0x1.745d0cp-2, + 0x1.40p3 + }, + { // Entry 183 + -0x1.1745c6p-12, + -0x1.1745c6p-2, + -0x1.40p3 + }, + { // Entry 184 + -0x1.1745c6p-11, + -0x1.1745c6p-2, + -0x1.20p3 + }, + { // Entry 185 + -0x1.1745c6p-10, + -0x1.1745c6p-2, + -0x1.p3 + }, + { // Entry 186 + -0x1.1745c6p-9, + -0x1.1745c6p-2, + -0x1.c0p2 + }, + { // Entry 187 + -0x1.1745c6p-8, + -0x1.1745c6p-2, + -0x1.80p2 + }, + { // Entry 188 + -0x1.1745c6p-7, + -0x1.1745c6p-2, + -0x1.40p2 + }, + { // Entry 189 + -0x1.1745c6p-6, + -0x1.1745c6p-2, + -0x1.p2 + }, + { // Entry 190 + -0x1.1745c6p-5, + -0x1.1745c6p-2, + -0x1.80p1 + }, + { // Entry 191 + -0x1.1745c6p-4, + -0x1.1745c6p-2, + -0x1.p1 + }, + { // Entry 192 + -0x1.1745c6p-3, + -0x1.1745c6p-2, + -0x1.p0 + }, + { // Entry 193 + -0x1.1745c6p-2, + -0x1.1745c6p-2, + 0.0 + }, + { // Entry 194 + -0x1.1745c6p-1, + -0x1.1745c6p-2, + 0x1.p0 + }, + { // Entry 195 + -0x1.1745c6p0, + -0x1.1745c6p-2, + 0x1.p1 + }, + { // Entry 196 + -0x1.1745c6p1, + -0x1.1745c6p-2, + 0x1.80p1 + }, + { // Entry 197 + -0x1.1745c6p2, + -0x1.1745c6p-2, + 0x1.p2 + }, + { // Entry 198 + -0x1.1745c6p3, + -0x1.1745c6p-2, + 0x1.40p2 + }, + { // Entry 199 + -0x1.1745c6p4, + -0x1.1745c6p-2, + 0x1.80p2 + }, + { // Entry 200 + -0x1.1745c6p5, + -0x1.1745c6p-2, + 0x1.c0p2 + }, + { // Entry 201 + -0x1.1745c6p6, + -0x1.1745c6p-2, + 0x1.p3 + }, + { // Entry 202 + -0x1.1745c6p7, + -0x1.1745c6p-2, + 0x1.20p3 + }, + { // Entry 203 + -0x1.1745c6p8, + -0x1.1745c6p-2, + 0x1.40p3 + }, + { // Entry 204 + -0x1.745dp-13, + -0x1.745dp-3, + -0x1.40p3 + }, + { // Entry 205 + -0x1.745dp-12, + -0x1.745dp-3, + -0x1.20p3 + }, + { // Entry 206 + -0x1.745dp-11, + -0x1.745dp-3, + -0x1.p3 + }, + { // Entry 207 + -0x1.745dp-10, + -0x1.745dp-3, + -0x1.c0p2 + }, + { // Entry 208 + -0x1.745dp-9, + -0x1.745dp-3, + -0x1.80p2 + }, + { // Entry 209 + -0x1.745dp-8, + -0x1.745dp-3, + -0x1.40p2 + }, + { // Entry 210 + -0x1.745dp-7, + -0x1.745dp-3, + -0x1.p2 + }, + { // Entry 211 + -0x1.745dp-6, + -0x1.745dp-3, + -0x1.80p1 + }, + { // Entry 212 + -0x1.745dp-5, + -0x1.745dp-3, + -0x1.p1 + }, + { // Entry 213 + -0x1.745dp-4, + -0x1.745dp-3, + -0x1.p0 + }, + { // Entry 214 + -0x1.745dp-3, + -0x1.745dp-3, + 0.0 + }, + { // Entry 215 + -0x1.745dp-2, + -0x1.745dp-3, + 0x1.p0 + }, + { // Entry 216 + -0x1.745dp-1, + -0x1.745dp-3, + 0x1.p1 + }, + { // Entry 217 + -0x1.745dp0, + -0x1.745dp-3, + 0x1.80p1 + }, + { // Entry 218 + -0x1.745dp1, + -0x1.745dp-3, + 0x1.p2 + }, + { // Entry 219 + -0x1.745dp2, + -0x1.745dp-3, + 0x1.40p2 + }, + { // Entry 220 + -0x1.745dp3, + -0x1.745dp-3, + 0x1.80p2 + }, + { // Entry 221 + -0x1.745dp4, + -0x1.745dp-3, + 0x1.c0p2 + }, + { // Entry 222 + -0x1.745dp5, + -0x1.745dp-3, + 0x1.p3 + }, + { // Entry 223 + -0x1.745dp6, + -0x1.745dp-3, + 0x1.20p3 + }, + { // Entry 224 + -0x1.745dp7, + -0x1.745dp-3, + 0x1.40p3 + }, + { // Entry 225 + -0x1.745ce8p-14, + -0x1.745ce8p-4, + -0x1.40p3 + }, + { // Entry 226 + -0x1.745ce8p-13, + -0x1.745ce8p-4, + -0x1.20p3 + }, + { // Entry 227 + -0x1.745ce8p-12, + -0x1.745ce8p-4, + -0x1.p3 + }, + { // Entry 228 + -0x1.745ce8p-11, + -0x1.745ce8p-4, + -0x1.c0p2 + }, + { // Entry 229 + -0x1.745ce8p-10, + -0x1.745ce8p-4, + -0x1.80p2 + }, + { // Entry 230 + -0x1.745ce8p-9, + -0x1.745ce8p-4, + -0x1.40p2 + }, + { // Entry 231 + -0x1.745ce8p-8, + -0x1.745ce8p-4, + -0x1.p2 + }, + { // Entry 232 + -0x1.745ce8p-7, + -0x1.745ce8p-4, + -0x1.80p1 + }, + { // Entry 233 + -0x1.745ce8p-6, + -0x1.745ce8p-4, + -0x1.p1 + }, + { // Entry 234 + -0x1.745ce8p-5, + -0x1.745ce8p-4, + -0x1.p0 + }, + { // Entry 235 + -0x1.745ce8p-4, + -0x1.745ce8p-4, + 0.0 + }, + { // Entry 236 + -0x1.745ce8p-3, + -0x1.745ce8p-4, + 0x1.p0 + }, + { // Entry 237 + -0x1.745ce8p-2, + -0x1.745ce8p-4, + 0x1.p1 + }, + { // Entry 238 + -0x1.745ce8p-1, + -0x1.745ce8p-4, + 0x1.80p1 + }, + { // Entry 239 + -0x1.745ce8p0, + -0x1.745ce8p-4, + 0x1.p2 + }, + { // Entry 240 + -0x1.745ce8p1, + -0x1.745ce8p-4, + 0x1.40p2 + }, + { // Entry 241 + -0x1.745ce8p2, + -0x1.745ce8p-4, + 0x1.80p2 + }, + { // Entry 242 + -0x1.745ce8p3, + -0x1.745ce8p-4, + 0x1.c0p2 + }, + { // Entry 243 + -0x1.745ce8p4, + -0x1.745ce8p-4, + 0x1.p3 + }, + { // Entry 244 + -0x1.745ce8p5, + -0x1.745ce8p-4, + 0x1.20p3 + }, + { // Entry 245 + -0x1.745ce8p6, + -0x1.745ce8p-4, + 0x1.40p3 + }, + { // Entry 246 + 0x1.80p-33, + 0x1.80p-23, + -0x1.40p3 + }, + { // Entry 247 + 0x1.80p-32, + 0x1.80p-23, + -0x1.20p3 + }, + { // Entry 248 + 0x1.80p-31, + 0x1.80p-23, + -0x1.p3 + }, + { // Entry 249 + 0x1.80p-30, + 0x1.80p-23, + -0x1.c0p2 + }, + { // Entry 250 + 0x1.80p-29, + 0x1.80p-23, + -0x1.80p2 + }, + { // Entry 251 + 0x1.80p-28, + 0x1.80p-23, + -0x1.40p2 + }, + { // Entry 252 + 0x1.80p-27, + 0x1.80p-23, + -0x1.p2 + }, + { // Entry 253 + 0x1.80p-26, + 0x1.80p-23, + -0x1.80p1 + }, + { // Entry 254 + 0x1.80p-25, + 0x1.80p-23, + -0x1.p1 + }, + { // Entry 255 + 0x1.80p-24, + 0x1.80p-23, + -0x1.p0 + }, + { // Entry 256 + 0x1.80p-23, + 0x1.80p-23, + 0.0 + }, + { // Entry 257 + 0x1.80p-22, + 0x1.80p-23, + 0x1.p0 + }, + { // Entry 258 + 0x1.80p-21, + 0x1.80p-23, + 0x1.p1 + }, + { // Entry 259 + 0x1.80p-20, + 0x1.80p-23, + 0x1.80p1 + }, + { // Entry 260 + 0x1.80p-19, + 0x1.80p-23, + 0x1.p2 + }, + { // Entry 261 + 0x1.80p-18, + 0x1.80p-23, + 0x1.40p2 + }, + { // Entry 262 + 0x1.80p-17, + 0x1.80p-23, + 0x1.80p2 + }, + { // Entry 263 + 0x1.80p-16, + 0x1.80p-23, + 0x1.c0p2 + }, + { // Entry 264 + 0x1.80p-15, + 0x1.80p-23, + 0x1.p3 + }, + { // Entry 265 + 0x1.80p-14, + 0x1.80p-23, + 0x1.20p3 + }, + { // Entry 266 + 0x1.80p-13, + 0x1.80p-23, + 0x1.40p3 + }, + { // Entry 267 + 0x1.745d48p-14, + 0x1.745d48p-4, + -0x1.40p3 + }, + { // Entry 268 + 0x1.745d48p-13, + 0x1.745d48p-4, + -0x1.20p3 + }, + { // Entry 269 + 0x1.745d48p-12, + 0x1.745d48p-4, + -0x1.p3 + }, + { // Entry 270 + 0x1.745d48p-11, + 0x1.745d48p-4, + -0x1.c0p2 + }, + { // Entry 271 + 0x1.745d48p-10, + 0x1.745d48p-4, + -0x1.80p2 + }, + { // Entry 272 + 0x1.745d48p-9, + 0x1.745d48p-4, + -0x1.40p2 + }, + { // Entry 273 + 0x1.745d48p-8, + 0x1.745d48p-4, + -0x1.p2 + }, + { // Entry 274 + 0x1.745d48p-7, + 0x1.745d48p-4, + -0x1.80p1 + }, + { // Entry 275 + 0x1.745d48p-6, + 0x1.745d48p-4, + -0x1.p1 + }, + { // Entry 276 + 0x1.745d48p-5, + 0x1.745d48p-4, + -0x1.p0 + }, + { // Entry 277 + 0x1.745d48p-4, + 0x1.745d48p-4, + 0.0 + }, + { // Entry 278 + 0x1.745d48p-3, + 0x1.745d48p-4, + 0x1.p0 + }, + { // Entry 279 + 0x1.745d48p-2, + 0x1.745d48p-4, + 0x1.p1 + }, + { // Entry 280 + 0x1.745d48p-1, + 0x1.745d48p-4, + 0x1.80p1 + }, + { // Entry 281 + 0x1.745d48p0, + 0x1.745d48p-4, + 0x1.p2 + }, + { // Entry 282 + 0x1.745d48p1, + 0x1.745d48p-4, + 0x1.40p2 + }, + { // Entry 283 + 0x1.745d48p2, + 0x1.745d48p-4, + 0x1.80p2 + }, + { // Entry 284 + 0x1.745d48p3, + 0x1.745d48p-4, + 0x1.c0p2 + }, + { // Entry 285 + 0x1.745d48p4, + 0x1.745d48p-4, + 0x1.p3 + }, + { // Entry 286 + 0x1.745d48p5, + 0x1.745d48p-4, + 0x1.20p3 + }, + { // Entry 287 + 0x1.745d48p6, + 0x1.745d48p-4, + 0x1.40p3 + }, + { // Entry 288 + 0x1.745d30p-13, + 0x1.745d30p-3, + -0x1.40p3 + }, + { // Entry 289 + 0x1.745d30p-12, + 0x1.745d30p-3, + -0x1.20p3 + }, + { // Entry 290 + 0x1.745d30p-11, + 0x1.745d30p-3, + -0x1.p3 + }, + { // Entry 291 + 0x1.745d30p-10, + 0x1.745d30p-3, + -0x1.c0p2 + }, + { // Entry 292 + 0x1.745d30p-9, + 0x1.745d30p-3, + -0x1.80p2 + }, + { // Entry 293 + 0x1.745d30p-8, + 0x1.745d30p-3, + -0x1.40p2 + }, + { // Entry 294 + 0x1.745d30p-7, + 0x1.745d30p-3, + -0x1.p2 + }, + { // Entry 295 + 0x1.745d30p-6, + 0x1.745d30p-3, + -0x1.80p1 + }, + { // Entry 296 + 0x1.745d30p-5, + 0x1.745d30p-3, + -0x1.p1 + }, + { // Entry 297 + 0x1.745d30p-4, + 0x1.745d30p-3, + -0x1.p0 + }, + { // Entry 298 + 0x1.745d30p-3, + 0x1.745d30p-3, + 0.0 + }, + { // Entry 299 + 0x1.745d30p-2, + 0x1.745d30p-3, + 0x1.p0 + }, + { // Entry 300 + 0x1.745d30p-1, + 0x1.745d30p-3, + 0x1.p1 + }, + { // Entry 301 + 0x1.745d30p0, + 0x1.745d30p-3, + 0x1.80p1 + }, + { // Entry 302 + 0x1.745d30p1, + 0x1.745d30p-3, + 0x1.p2 + }, + { // Entry 303 + 0x1.745d30p2, + 0x1.745d30p-3, + 0x1.40p2 + }, + { // Entry 304 + 0x1.745d30p3, + 0x1.745d30p-3, + 0x1.80p2 + }, + { // Entry 305 + 0x1.745d30p4, + 0x1.745d30p-3, + 0x1.c0p2 + }, + { // Entry 306 + 0x1.745d30p5, + 0x1.745d30p-3, + 0x1.p3 + }, + { // Entry 307 + 0x1.745d30p6, + 0x1.745d30p-3, + 0x1.20p3 + }, + { // Entry 308 + 0x1.745d30p7, + 0x1.745d30p-3, + 0x1.40p3 + }, + { // Entry 309 + 0x1.1745dep-12, + 0x1.1745dep-2, + -0x1.40p3 + }, + { // Entry 310 + 0x1.1745dep-11, + 0x1.1745dep-2, + -0x1.20p3 + }, + { // Entry 311 + 0x1.1745dep-10, + 0x1.1745dep-2, + -0x1.p3 + }, + { // Entry 312 + 0x1.1745dep-9, + 0x1.1745dep-2, + -0x1.c0p2 + }, + { // Entry 313 + 0x1.1745dep-8, + 0x1.1745dep-2, + -0x1.80p2 + }, + { // Entry 314 + 0x1.1745dep-7, + 0x1.1745dep-2, + -0x1.40p2 + }, + { // Entry 315 + 0x1.1745dep-6, + 0x1.1745dep-2, + -0x1.p2 + }, + { // Entry 316 + 0x1.1745dep-5, + 0x1.1745dep-2, + -0x1.80p1 + }, + { // Entry 317 + 0x1.1745dep-4, + 0x1.1745dep-2, + -0x1.p1 + }, + { // Entry 318 + 0x1.1745dep-3, + 0x1.1745dep-2, + -0x1.p0 + }, + { // Entry 319 + 0x1.1745dep-2, + 0x1.1745dep-2, + 0.0 + }, + { // Entry 320 + 0x1.1745dep-1, + 0x1.1745dep-2, + 0x1.p0 + }, + { // Entry 321 + 0x1.1745dep0, + 0x1.1745dep-2, + 0x1.p1 + }, + { // Entry 322 + 0x1.1745dep1, + 0x1.1745dep-2, + 0x1.80p1 + }, + { // Entry 323 + 0x1.1745dep2, + 0x1.1745dep-2, + 0x1.p2 + }, + { // Entry 324 + 0x1.1745dep3, + 0x1.1745dep-2, + 0x1.40p2 + }, + { // Entry 325 + 0x1.1745dep4, + 0x1.1745dep-2, + 0x1.80p2 + }, + { // Entry 326 + 0x1.1745dep5, + 0x1.1745dep-2, + 0x1.c0p2 + }, + { // Entry 327 + 0x1.1745dep6, + 0x1.1745dep-2, + 0x1.p3 + }, + { // Entry 328 + 0x1.1745dep7, + 0x1.1745dep-2, + 0x1.20p3 + }, + { // Entry 329 + 0x1.1745dep8, + 0x1.1745dep-2, + 0x1.40p3 + }, + { // Entry 330 + 0x1.745d24p-12, + 0x1.745d24p-2, + -0x1.40p3 + }, + { // Entry 331 + 0x1.745d24p-11, + 0x1.745d24p-2, + -0x1.20p3 + }, + { // Entry 332 + 0x1.745d24p-10, + 0x1.745d24p-2, + -0x1.p3 + }, + { // Entry 333 + 0x1.745d24p-9, + 0x1.745d24p-2, + -0x1.c0p2 + }, + { // Entry 334 + 0x1.745d24p-8, + 0x1.745d24p-2, + -0x1.80p2 + }, + { // Entry 335 + 0x1.745d24p-7, + 0x1.745d24p-2, + -0x1.40p2 + }, + { // Entry 336 + 0x1.745d24p-6, + 0x1.745d24p-2, + -0x1.p2 + }, + { // Entry 337 + 0x1.745d24p-5, + 0x1.745d24p-2, + -0x1.80p1 + }, + { // Entry 338 + 0x1.745d24p-4, + 0x1.745d24p-2, + -0x1.p1 + }, + { // Entry 339 + 0x1.745d24p-3, + 0x1.745d24p-2, + -0x1.p0 + }, + { // Entry 340 + 0x1.745d24p-2, + 0x1.745d24p-2, + 0.0 + }, + { // Entry 341 + 0x1.745d24p-1, + 0x1.745d24p-2, + 0x1.p0 + }, + { // Entry 342 + 0x1.745d24p0, + 0x1.745d24p-2, + 0x1.p1 + }, + { // Entry 343 + 0x1.745d24p1, + 0x1.745d24p-2, + 0x1.80p1 + }, + { // Entry 344 + 0x1.745d24p2, + 0x1.745d24p-2, + 0x1.p2 + }, + { // Entry 345 + 0x1.745d24p3, + 0x1.745d24p-2, + 0x1.40p2 + }, + { // Entry 346 + 0x1.745d24p4, + 0x1.745d24p-2, + 0x1.80p2 + }, + { // Entry 347 + 0x1.745d24p5, + 0x1.745d24p-2, + 0x1.c0p2 + }, + { // Entry 348 + 0x1.745d24p6, + 0x1.745d24p-2, + 0x1.p3 + }, + { // Entry 349 + 0x1.745d24p7, + 0x1.745d24p-2, + 0x1.20p3 + }, + { // Entry 350 + 0x1.745d24p8, + 0x1.745d24p-2, + 0x1.40p3 + }, + { // Entry 351 + 0x1.d1746ap-12, + 0x1.d1746ap-2, + -0x1.40p3 + }, + { // Entry 352 + 0x1.d1746ap-11, + 0x1.d1746ap-2, + -0x1.20p3 + }, + { // Entry 353 + 0x1.d1746ap-10, + 0x1.d1746ap-2, + -0x1.p3 + }, + { // Entry 354 + 0x1.d1746ap-9, + 0x1.d1746ap-2, + -0x1.c0p2 + }, + { // Entry 355 + 0x1.d1746ap-8, + 0x1.d1746ap-2, + -0x1.80p2 + }, + { // Entry 356 + 0x1.d1746ap-7, + 0x1.d1746ap-2, + -0x1.40p2 + }, + { // Entry 357 + 0x1.d1746ap-6, + 0x1.d1746ap-2, + -0x1.p2 + }, + { // Entry 358 + 0x1.d1746ap-5, + 0x1.d1746ap-2, + -0x1.80p1 + }, + { // Entry 359 + 0x1.d1746ap-4, + 0x1.d1746ap-2, + -0x1.p1 + }, + { // Entry 360 + 0x1.d1746ap-3, + 0x1.d1746ap-2, + -0x1.p0 + }, + { // Entry 361 + 0x1.d1746ap-2, + 0x1.d1746ap-2, + 0.0 + }, + { // Entry 362 + 0x1.d1746ap-1, + 0x1.d1746ap-2, + 0x1.p0 + }, + { // Entry 363 + 0x1.d1746ap0, + 0x1.d1746ap-2, + 0x1.p1 + }, + { // Entry 364 + 0x1.d1746ap1, + 0x1.d1746ap-2, + 0x1.80p1 + }, + { // Entry 365 + 0x1.d1746ap2, + 0x1.d1746ap-2, + 0x1.p2 + }, + { // Entry 366 + 0x1.d1746ap3, + 0x1.d1746ap-2, + 0x1.40p2 + }, + { // Entry 367 + 0x1.d1746ap4, + 0x1.d1746ap-2, + 0x1.80p2 + }, + { // Entry 368 + 0x1.d1746ap5, + 0x1.d1746ap-2, + 0x1.c0p2 + }, + { // Entry 369 + 0x1.d1746ap6, + 0x1.d1746ap-2, + 0x1.p3 + }, + { // Entry 370 + 0x1.d1746ap7, + 0x1.d1746ap-2, + 0x1.20p3 + }, + { // Entry 371 + 0x1.d1746ap8, + 0x1.d1746ap-2, + 0x1.40p3 + }, + { // Entry 372 + 0x1.1745d8p-11, + 0x1.1745d8p-1, + -0x1.40p3 + }, + { // Entry 373 + 0x1.1745d8p-10, + 0x1.1745d8p-1, + -0x1.20p3 + }, + { // Entry 374 + 0x1.1745d8p-9, + 0x1.1745d8p-1, + -0x1.p3 + }, + { // Entry 375 + 0x1.1745d8p-8, + 0x1.1745d8p-1, + -0x1.c0p2 + }, + { // Entry 376 + 0x1.1745d8p-7, + 0x1.1745d8p-1, + -0x1.80p2 + }, + { // Entry 377 + 0x1.1745d8p-6, + 0x1.1745d8p-1, + -0x1.40p2 + }, + { // Entry 378 + 0x1.1745d8p-5, + 0x1.1745d8p-1, + -0x1.p2 + }, + { // Entry 379 + 0x1.1745d8p-4, + 0x1.1745d8p-1, + -0x1.80p1 + }, + { // Entry 380 + 0x1.1745d8p-3, + 0x1.1745d8p-1, + -0x1.p1 + }, + { // Entry 381 + 0x1.1745d8p-2, + 0x1.1745d8p-1, + -0x1.p0 + }, + { // Entry 382 + 0x1.1745d8p-1, + 0x1.1745d8p-1, + 0.0 + }, + { // Entry 383 + 0x1.1745d8p0, + 0x1.1745d8p-1, + 0x1.p0 + }, + { // Entry 384 + 0x1.1745d8p1, + 0x1.1745d8p-1, + 0x1.p1 + }, + { // Entry 385 + 0x1.1745d8p2, + 0x1.1745d8p-1, + 0x1.80p1 + }, + { // Entry 386 + 0x1.1745d8p3, + 0x1.1745d8p-1, + 0x1.p2 + }, + { // Entry 387 + 0x1.1745d8p4, + 0x1.1745d8p-1, + 0x1.40p2 + }, + { // Entry 388 + 0x1.1745d8p5, + 0x1.1745d8p-1, + 0x1.80p2 + }, + { // Entry 389 + 0x1.1745d8p6, + 0x1.1745d8p-1, + 0x1.c0p2 + }, + { // Entry 390 + 0x1.1745d8p7, + 0x1.1745d8p-1, + 0x1.p3 + }, + { // Entry 391 + 0x1.1745d8p8, + 0x1.1745d8p-1, + 0x1.20p3 + }, + { // Entry 392 + 0x1.1745d8p9, + 0x1.1745d8p-1, + 0x1.40p3 + }, + { // Entry 393 + 0x1.45d17cp-11, + 0x1.45d17cp-1, + -0x1.40p3 + }, + { // Entry 394 + 0x1.45d17cp-10, + 0x1.45d17cp-1, + -0x1.20p3 + }, + { // Entry 395 + 0x1.45d17cp-9, + 0x1.45d17cp-1, + -0x1.p3 + }, + { // Entry 396 + 0x1.45d17cp-8, + 0x1.45d17cp-1, + -0x1.c0p2 + }, + { // Entry 397 + 0x1.45d17cp-7, + 0x1.45d17cp-1, + -0x1.80p2 + }, + { // Entry 398 + 0x1.45d17cp-6, + 0x1.45d17cp-1, + -0x1.40p2 + }, + { // Entry 399 + 0x1.45d17cp-5, + 0x1.45d17cp-1, + -0x1.p2 + }, + { // Entry 400 + 0x1.45d17cp-4, + 0x1.45d17cp-1, + -0x1.80p1 + }, + { // Entry 401 + 0x1.45d17cp-3, + 0x1.45d17cp-1, + -0x1.p1 + }, + { // Entry 402 + 0x1.45d17cp-2, + 0x1.45d17cp-1, + -0x1.p0 + }, + { // Entry 403 + 0x1.45d17cp-1, + 0x1.45d17cp-1, + 0.0 + }, + { // Entry 404 + 0x1.45d17cp0, + 0x1.45d17cp-1, + 0x1.p0 + }, + { // Entry 405 + 0x1.45d17cp1, + 0x1.45d17cp-1, + 0x1.p1 + }, + { // Entry 406 + 0x1.45d17cp2, + 0x1.45d17cp-1, + 0x1.80p1 + }, + { // Entry 407 + 0x1.45d17cp3, + 0x1.45d17cp-1, + 0x1.p2 + }, + { // Entry 408 + 0x1.45d17cp4, + 0x1.45d17cp-1, + 0x1.40p2 + }, + { // Entry 409 + 0x1.45d17cp5, + 0x1.45d17cp-1, + 0x1.80p2 + }, + { // Entry 410 + 0x1.45d17cp6, + 0x1.45d17cp-1, + 0x1.c0p2 + }, + { // Entry 411 + 0x1.45d17cp7, + 0x1.45d17cp-1, + 0x1.p3 + }, + { // Entry 412 + 0x1.45d17cp8, + 0x1.45d17cp-1, + 0x1.20p3 + }, + { // Entry 413 + 0x1.45d17cp9, + 0x1.45d17cp-1, + 0x1.40p3 + }, + { // Entry 414 + 0x1.745d20p-11, + 0x1.745d20p-1, + -0x1.40p3 + }, + { // Entry 415 + 0x1.745d20p-10, + 0x1.745d20p-1, + -0x1.20p3 + }, + { // Entry 416 + 0x1.745d20p-9, + 0x1.745d20p-1, + -0x1.p3 + }, + { // Entry 417 + 0x1.745d20p-8, + 0x1.745d20p-1, + -0x1.c0p2 + }, + { // Entry 418 + 0x1.745d20p-7, + 0x1.745d20p-1, + -0x1.80p2 + }, + { // Entry 419 + 0x1.745d20p-6, + 0x1.745d20p-1, + -0x1.40p2 + }, + { // Entry 420 + 0x1.745d20p-5, + 0x1.745d20p-1, + -0x1.p2 + }, + { // Entry 421 + 0x1.745d20p-4, + 0x1.745d20p-1, + -0x1.80p1 + }, + { // Entry 422 + 0x1.745d20p-3, + 0x1.745d20p-1, + -0x1.p1 + }, + { // Entry 423 + 0x1.745d20p-2, + 0x1.745d20p-1, + -0x1.p0 + }, + { // Entry 424 + 0x1.745d20p-1, + 0x1.745d20p-1, + 0.0 + }, + { // Entry 425 + 0x1.745d20p0, + 0x1.745d20p-1, + 0x1.p0 + }, + { // Entry 426 + 0x1.745d20p1, + 0x1.745d20p-1, + 0x1.p1 + }, + { // Entry 427 + 0x1.745d20p2, + 0x1.745d20p-1, + 0x1.80p1 + }, + { // Entry 428 + 0x1.745d20p3, + 0x1.745d20p-1, + 0x1.p2 + }, + { // Entry 429 + 0x1.745d20p4, + 0x1.745d20p-1, + 0x1.40p2 + }, + { // Entry 430 + 0x1.745d20p5, + 0x1.745d20p-1, + 0x1.80p2 + }, + { // Entry 431 + 0x1.745d20p6, + 0x1.745d20p-1, + 0x1.c0p2 + }, + { // Entry 432 + 0x1.745d20p7, + 0x1.745d20p-1, + 0x1.p3 + }, + { // Entry 433 + 0x1.745d20p8, + 0x1.745d20p-1, + 0x1.20p3 + }, + { // Entry 434 + 0x1.745d20p9, + 0x1.745d20p-1, + 0x1.40p3 + }, + { // Entry 435 + 0x1.a2e8c4p-11, + 0x1.a2e8c4p-1, + -0x1.40p3 + }, + { // Entry 436 + 0x1.a2e8c4p-10, + 0x1.a2e8c4p-1, + -0x1.20p3 + }, + { // Entry 437 + 0x1.a2e8c4p-9, + 0x1.a2e8c4p-1, + -0x1.p3 + }, + { // Entry 438 + 0x1.a2e8c4p-8, + 0x1.a2e8c4p-1, + -0x1.c0p2 + }, + { // Entry 439 + 0x1.a2e8c4p-7, + 0x1.a2e8c4p-1, + -0x1.80p2 + }, + { // Entry 440 + 0x1.a2e8c4p-6, + 0x1.a2e8c4p-1, + -0x1.40p2 + }, + { // Entry 441 + 0x1.a2e8c4p-5, + 0x1.a2e8c4p-1, + -0x1.p2 + }, + { // Entry 442 + 0x1.a2e8c4p-4, + 0x1.a2e8c4p-1, + -0x1.80p1 + }, + { // Entry 443 + 0x1.a2e8c4p-3, + 0x1.a2e8c4p-1, + -0x1.p1 + }, + { // Entry 444 + 0x1.a2e8c4p-2, + 0x1.a2e8c4p-1, + -0x1.p0 + }, + { // Entry 445 + 0x1.a2e8c4p-1, + 0x1.a2e8c4p-1, + 0.0 + }, + { // Entry 446 + 0x1.a2e8c4p0, + 0x1.a2e8c4p-1, + 0x1.p0 + }, + { // Entry 447 + 0x1.a2e8c4p1, + 0x1.a2e8c4p-1, + 0x1.p1 + }, + { // Entry 448 + 0x1.a2e8c4p2, + 0x1.a2e8c4p-1, + 0x1.80p1 + }, + { // Entry 449 + 0x1.a2e8c4p3, + 0x1.a2e8c4p-1, + 0x1.p2 + }, + { // Entry 450 + 0x1.a2e8c4p4, + 0x1.a2e8c4p-1, + 0x1.40p2 + }, + { // Entry 451 + 0x1.a2e8c4p5, + 0x1.a2e8c4p-1, + 0x1.80p2 + }, + { // Entry 452 + 0x1.a2e8c4p6, + 0x1.a2e8c4p-1, + 0x1.c0p2 + }, + { // Entry 453 + 0x1.a2e8c4p7, + 0x1.a2e8c4p-1, + 0x1.p3 + }, + { // Entry 454 + 0x1.a2e8c4p8, + 0x1.a2e8c4p-1, + 0x1.20p3 + }, + { // Entry 455 + 0x1.a2e8c4p9, + 0x1.a2e8c4p-1, + 0x1.40p3 + }, + { // Entry 456 + 0x1.d17468p-11, + 0x1.d17468p-1, + -0x1.40p3 + }, + { // Entry 457 + 0x1.d17468p-10, + 0x1.d17468p-1, + -0x1.20p3 + }, + { // Entry 458 + 0x1.d17468p-9, + 0x1.d17468p-1, + -0x1.p3 + }, + { // Entry 459 + 0x1.d17468p-8, + 0x1.d17468p-1, + -0x1.c0p2 + }, + { // Entry 460 + 0x1.d17468p-7, + 0x1.d17468p-1, + -0x1.80p2 + }, + { // Entry 461 + 0x1.d17468p-6, + 0x1.d17468p-1, + -0x1.40p2 + }, + { // Entry 462 + 0x1.d17468p-5, + 0x1.d17468p-1, + -0x1.p2 + }, + { // Entry 463 + 0x1.d17468p-4, + 0x1.d17468p-1, + -0x1.80p1 + }, + { // Entry 464 + 0x1.d17468p-3, + 0x1.d17468p-1, + -0x1.p1 + }, + { // Entry 465 + 0x1.d17468p-2, + 0x1.d17468p-1, + -0x1.p0 + }, + { // Entry 466 + 0x1.d17468p-1, + 0x1.d17468p-1, + 0.0 + }, + { // Entry 467 + 0x1.d17468p0, + 0x1.d17468p-1, + 0x1.p0 + }, + { // Entry 468 + 0x1.d17468p1, + 0x1.d17468p-1, + 0x1.p1 + }, + { // Entry 469 + 0x1.d17468p2, + 0x1.d17468p-1, + 0x1.80p1 + }, + { // Entry 470 + 0x1.d17468p3, + 0x1.d17468p-1, + 0x1.p2 + }, + { // Entry 471 + 0x1.d17468p4, + 0x1.d17468p-1, + 0x1.40p2 + }, + { // Entry 472 + 0x1.d17468p5, + 0x1.d17468p-1, + 0x1.80p2 + }, + { // Entry 473 + 0x1.d17468p6, + 0x1.d17468p-1, + 0x1.c0p2 + }, + { // Entry 474 + 0x1.d17468p7, + 0x1.d17468p-1, + 0x1.p3 + }, + { // Entry 475 + 0x1.d17468p8, + 0x1.d17468p-1, + 0x1.20p3 + }, + { // Entry 476 + 0x1.d17468p9, + 0x1.d17468p-1, + 0x1.40p3 + }, + { // Entry 477 + 0x1.p-10, + 0x1.p0, + -0x1.40p3 + }, + { // Entry 478 + 0x1.p-9, + 0x1.p0, + -0x1.20p3 + }, + { // Entry 479 + 0x1.p-8, + 0x1.p0, + -0x1.p3 + }, + { // Entry 480 + 0x1.p-7, + 0x1.p0, + -0x1.c0p2 + }, + { // Entry 481 + 0x1.p-6, + 0x1.p0, + -0x1.80p2 + }, + { // Entry 482 + 0x1.p-5, + 0x1.p0, + -0x1.40p2 + }, + { // Entry 483 + 0x1.p-4, + 0x1.p0, + -0x1.p2 + }, + { // Entry 484 + 0x1.p-3, + 0x1.p0, + -0x1.80p1 + }, + { // Entry 485 + 0x1.p-2, + 0x1.p0, + -0x1.p1 + }, + { // Entry 486 + 0x1.p-1, + 0x1.p0, + -0x1.p0 + }, + { // Entry 487 + 0x1.p0, + 0x1.p0, + 0.0 + }, + { // Entry 488 + 0x1.p1, + 0x1.p0, + 0x1.p0 + }, + { // Entry 489 + 0x1.p2, + 0x1.p0, + 0x1.p1 + }, + { // Entry 490 + 0x1.p3, + 0x1.p0, + 0x1.80p1 + }, + { // Entry 491 + 0x1.p4, + 0x1.p0, + 0x1.p2 + }, + { // Entry 492 + 0x1.p5, + 0x1.p0, + 0x1.40p2 + }, + { // Entry 493 + 0x1.p6, + 0x1.p0, + 0x1.80p2 + }, + { // Entry 494 + 0x1.p7, + 0x1.p0, + 0x1.c0p2 + }, + { // Entry 495 + 0x1.p8, + 0x1.p0, + 0x1.p3 + }, + { // Entry 496 + 0x1.p9, + 0x1.p0, + 0x1.20p3 + }, + { // Entry 497 + 0x1.p10, + 0x1.p0, + 0x1.40p3 + }, + { // Entry 498 + 0x1.fffffep0, + 0x1.fffffep127, + -0x1.fcp6 + }, + { // Entry 499 + 0x1.fffffep1, + 0x1.fffffep127, + -0x1.f8p6 + }, + { // Entry 500 + 0x1.fffffep117, + 0x1.fffffep127, + -0x1.40p3 + }, + { // Entry 501 + 0x1.fffffep118, + 0x1.fffffep127, + -0x1.20p3 + }, + { // Entry 502 + 0x1.fffffep119, + 0x1.fffffep127, + -0x1.p3 + }, + { // Entry 503 + 0x1.fffffep120, + 0x1.fffffep127, + -0x1.c0p2 + }, + { // Entry 504 + 0x1.fffffep121, + 0x1.fffffep127, + -0x1.80p2 + }, + { // Entry 505 + 0x1.fffffep122, + 0x1.fffffep127, + -0x1.40p2 + }, + { // Entry 506 + 0x1.fffffep123, + 0x1.fffffep127, + -0x1.p2 + }, + { // Entry 507 + 0x1.fffffep124, + 0x1.fffffep127, + -0x1.80p1 + }, + { // Entry 508 + 0x1.fffffep125, + 0x1.fffffep127, + -0x1.p1 + }, + { // Entry 509 + 0x1.fffffep126, + 0x1.fffffep127, + -0x1.p0 + }, + { // Entry 510 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0 + }, + { // Entry 511 + 0x1.p-22, + 0x1.p-149, + 0x1.fcp6 + }, + { // Entry 512 + 0x1.p-23, + 0x1.p-149, + 0x1.f8p6 + }, + { // Entry 513 + 0x1.p-149, + 0x1.p-149, + 0.0 + }, + { // Entry 514 + 0x1.p-148, + 0x1.p-149, + 0x1.p0 + }, + { // Entry 515 + 0x1.p-147, + 0x1.p-149, + 0x1.p1 + }, + { // Entry 516 + 0x1.p-146, + 0x1.p-149, + 0x1.80p1 + }, + { // Entry 517 + 0x1.p-145, + 0x1.p-149, + 0x1.p2 + }, + { // Entry 518 + 0x1.p-144, + 0x1.p-149, + 0x1.40p2 + }, + { // Entry 519 + 0x1.p-143, + 0x1.p-149, + 0x1.80p2 + }, + { // Entry 520 + 0x1.p-142, + 0x1.p-149, + 0x1.c0p2 + }, + { // Entry 521 + 0x1.p-141, + 0x1.p-149, + 0x1.p3 + }, + { // Entry 522 + 0x1.p-140, + 0x1.p-149, + 0x1.20p3 + }, + { // Entry 523 + 0x1.p-139, + 0x1.p-149, + 0x1.40p3 + }, + { // Entry 524 + 0x1.p-129, + 0x1.p-2, + -0x1.fcp6 + }, + { // Entry 525 + 0x1.p-128, + 0x1.p-2, + -0x1.f8p6 + }, + { // Entry 526 + 0x1.p-128, + 0x1.p-1, + -0x1.fcp6 + }, + { // Entry 527 + 0x1.p-127, + 0x1.p-1, + -0x1.f8p6 + }, + { // Entry 528 + 0x1.80p-128, + 0x1.80p-1, + -0x1.fcp6 + }, + { // Entry 529 + 0x1.80p-127, + 0x1.80p-1, + -0x1.f8p6 + }, + { // Entry 530 + 0.0f, + 0x1.p-2, + -0x1.2ap7 + }, + { // Entry 531 + 0.0f, + 0x1.p-2, + -0x1.28p7 + }, + { // Entry 532 + 0.0f, + 0x1.p-1, + -0x1.2ap7 + }, + { // Entry 533 + 0x1.p-149, + 0x1.p-1, + -0x1.28p7 + }, + { // Entry 534 + 0.0f, + 0x1.80p-1, + -0x1.2ap7 + }, + { // Entry 535 + 0x1.80p-149, + 0x1.80p-1, + -0x1.28p7 + }, + { // Entry 536 + 0x1.p127, + 0x1.p0, + 0x1.fcp6 + }, + { // Entry 537 + 0x1.p126, + 0x1.p0, + 0x1.f8p6 + }, + { // Entry 538 + 0x1.p-149, + 0x1.p-149, + 0.0 + }, + { // Entry 539 + 0x1.p-148, + 0x1.p-149, + 0x1.p0 + }, + { // Entry 540 + 0x1.p-147, + 0x1.p-149, + 0x1.p1 + }, + { // Entry 541 + 0x1.p-146, + 0x1.p-149, + 0x1.80p1 + }, + { // Entry 542 + 0x1.p-145, + 0x1.p-149, + 0x1.p2 + }, + { // Entry 543 + 0x1.p-144, + 0x1.p-149, + 0x1.40p2 + }, + { // Entry 544 + 0x1.p-143, + 0x1.p-149, + 0x1.80p2 + }, + { // Entry 545 + 0x1.p-142, + 0x1.p-149, + 0x1.c0p2 + }, + { // Entry 546 + 0x1.p-141, + 0x1.p-149, + 0x1.p3 + }, + { // Entry 547 + 0x1.p-140, + 0x1.p-149, + 0x1.20p3 + }, + { // Entry 548 + 0x1.p-139, + 0x1.p-149, + 0x1.40p3 + }, + { // Entry 549 + 0x1.p-138, + 0x1.p-149, + 0x1.60p3 + }, + { // Entry 550 + 0x1.p-137, + 0x1.p-149, + 0x1.80p3 + }, + { // Entry 551 + 0x1.p-136, + 0x1.p-149, + 0x1.a0p3 + }, + { // Entry 552 + 0x1.p-135, + 0x1.p-149, + 0x1.c0p3 + }, + { // Entry 553 + 0x1.p-134, + 0x1.p-149, + 0x1.e0p3 + }, + { // Entry 554 + 0x1.p-133, + 0x1.p-149, + 0x1.p4 + }, + { // Entry 555 + 0x1.p-132, + 0x1.p-149, + 0x1.10p4 + }, + { // Entry 556 + 0x1.p-131, + 0x1.p-149, + 0x1.20p4 + }, + { // Entry 557 + 0x1.p-130, + 0x1.p-149, + 0x1.30p4 + }, + { // Entry 558 + 0x1.p-129, + 0x1.p-149, + 0x1.40p4 + }, + { // Entry 559 + 0x1.p-128, + 0x1.p-149, + 0x1.50p4 + }, + { // Entry 560 + 0x1.p-127, + 0x1.p-149, + 0x1.60p4 + }, + { // Entry 561 + 0x1.p-126, + 0x1.p-149, + 0x1.70p4 + }, + { // Entry 562 + 0x1.p-125, + 0x1.p-149, + 0x1.80p4 + }, + { // Entry 563 + 0x1.p-124, + 0x1.p-149, + 0x1.90p4 + }, + { // Entry 564 + 0x1.p-123, + 0x1.p-149, + 0x1.a0p4 + }, + { // Entry 565 + 0x1.p-122, + 0x1.p-149, + 0x1.b0p4 + }, + { // Entry 566 + 0x1.p-121, + 0x1.p-149, + 0x1.c0p4 + }, + { // Entry 567 + 0x1.p-120, + 0x1.p-149, + 0x1.d0p4 + }, + { // Entry 568 + 0x1.p-119, + 0x1.p-149, + 0x1.e0p4 + }, + { // Entry 569 + 0x1.p-118, + 0x1.p-149, + 0x1.f0p4 + }, + { // Entry 570 + 0x1.p-117, + 0x1.p-149, + 0x1.p5 + }, + { // Entry 571 + 0x1.p-116, + 0x1.p-149, + 0x1.08p5 + }, + { // Entry 572 + 0x1.p-115, + 0x1.p-149, + 0x1.10p5 + }, + { // Entry 573 + 0x1.p-114, + 0x1.p-149, + 0x1.18p5 + }, + { // Entry 574 + 0x1.p-113, + 0x1.p-149, + 0x1.20p5 + }, + { // Entry 575 + 0x1.p-112, + 0x1.p-149, + 0x1.28p5 + }, + { // Entry 576 + 0x1.p-111, + 0x1.p-149, + 0x1.30p5 + }, + { // Entry 577 + 0x1.p-110, + 0x1.p-149, + 0x1.38p5 + }, + { // Entry 578 + 0x1.p-109, + 0x1.p-149, + 0x1.40p5 + }, + { // Entry 579 + 0x1.p-108, + 0x1.p-149, + 0x1.48p5 + }, + { // Entry 580 + 0x1.p-107, + 0x1.p-149, + 0x1.50p5 + }, + { // Entry 581 + 0x1.p-106, + 0x1.p-149, + 0x1.58p5 + }, + { // Entry 582 + 0x1.p-105, + 0x1.p-149, + 0x1.60p5 + }, + { // Entry 583 + 0x1.p-104, + 0x1.p-149, + 0x1.68p5 + }, + { // Entry 584 + 0x1.p-103, + 0x1.p-149, + 0x1.70p5 + }, + { // Entry 585 + 0x1.p-102, + 0x1.p-149, + 0x1.78p5 + }, + { // Entry 586 + 0x1.p-101, + 0x1.p-149, + 0x1.80p5 + }, + { // Entry 587 + 0x1.p-100, + 0x1.p-149, + 0x1.88p5 + }, + { // Entry 588 + 0x1.p-99, + 0x1.p-149, + 0x1.90p5 + }, + { // Entry 589 + 0x1.p-98, + 0x1.p-149, + 0x1.98p5 + }, + { // Entry 590 + 0x1.p-97, + 0x1.p-149, + 0x1.a0p5 + }, + { // Entry 591 + 0x1.p-96, + 0x1.p-149, + 0x1.a8p5 + }, + { // Entry 592 + 0x1.p-95, + 0x1.p-149, + 0x1.b0p5 + }, + { // Entry 593 + 0x1.p-94, + 0x1.p-149, + 0x1.b8p5 + }, + { // Entry 594 + 0x1.p-93, + 0x1.p-149, + 0x1.c0p5 + }, + { // Entry 595 + 0x1.p-92, + 0x1.p-149, + 0x1.c8p5 + }, + { // Entry 596 + 0x1.p-91, + 0x1.p-149, + 0x1.d0p5 + }, + { // Entry 597 + 0x1.p-90, + 0x1.p-149, + 0x1.d8p5 + }, + { // Entry 598 + 0x1.p-89, + 0x1.p-149, + 0x1.e0p5 + }, + { // Entry 599 + 0x1.p-88, + 0x1.p-149, + 0x1.e8p5 + }, + { // Entry 600 + 0x1.p-87, + 0x1.p-149, + 0x1.f0p5 + }, + { // Entry 601 + 0x1.p-86, + 0x1.p-149, + 0x1.f8p5 + }, + { // Entry 602 + 0x1.p-85, + 0x1.p-149, + 0x1.p6 + }, + { // Entry 603 + 0x1.p-84, + 0x1.p-149, + 0x1.04p6 + }, + { // Entry 604 + 0x1.p-83, + 0x1.p-149, + 0x1.08p6 + }, + { // Entry 605 + 0x1.p-82, + 0x1.p-149, + 0x1.0cp6 + }, + { // Entry 606 + 0x1.p-81, + 0x1.p-149, + 0x1.10p6 + }, + { // Entry 607 + 0x1.p-80, + 0x1.p-149, + 0x1.14p6 + }, + { // Entry 608 + 0x1.p-79, + 0x1.p-149, + 0x1.18p6 + }, + { // Entry 609 + 0x1.p-78, + 0x1.p-149, + 0x1.1cp6 + }, + { // Entry 610 + 0x1.p-77, + 0x1.p-149, + 0x1.20p6 + }, + { // Entry 611 + 0x1.p-76, + 0x1.p-149, + 0x1.24p6 + }, + { // Entry 612 + 0x1.p-75, + 0x1.p-149, + 0x1.28p6 + }, + { // Entry 613 + 0x1.p-74, + 0x1.p-149, + 0x1.2cp6 + }, + { // Entry 614 + 0x1.p-73, + 0x1.p-149, + 0x1.30p6 + }, + { // Entry 615 + 0x1.p-72, + 0x1.p-149, + 0x1.34p6 + }, + { // Entry 616 + 0x1.p-71, + 0x1.p-149, + 0x1.38p6 + }, + { // Entry 617 + 0x1.p-70, + 0x1.p-149, + 0x1.3cp6 + }, + { // Entry 618 + 0x1.p-69, + 0x1.p-149, + 0x1.40p6 + }, + { // Entry 619 + 0x1.p-68, + 0x1.p-149, + 0x1.44p6 + }, + { // Entry 620 + 0x1.p-67, + 0x1.p-149, + 0x1.48p6 + }, + { // Entry 621 + 0x1.p-66, + 0x1.p-149, + 0x1.4cp6 + }, + { // Entry 622 + 0x1.p-65, + 0x1.p-149, + 0x1.50p6 + }, + { // Entry 623 + 0x1.p-64, + 0x1.p-149, + 0x1.54p6 + }, + { // Entry 624 + 0x1.p-63, + 0x1.p-149, + 0x1.58p6 + }, + { // Entry 625 + 0x1.p-62, + 0x1.p-149, + 0x1.5cp6 + }, + { // Entry 626 + 0x1.p-61, + 0x1.p-149, + 0x1.60p6 + }, + { // Entry 627 + 0x1.p-60, + 0x1.p-149, + 0x1.64p6 + }, + { // Entry 628 + 0x1.p-59, + 0x1.p-149, + 0x1.68p6 + }, + { // Entry 629 + 0x1.p-58, + 0x1.p-149, + 0x1.6cp6 + }, + { // Entry 630 + 0x1.p-57, + 0x1.p-149, + 0x1.70p6 + }, + { // Entry 631 + 0x1.p-56, + 0x1.p-149, + 0x1.74p6 + }, + { // Entry 632 + 0x1.p-55, + 0x1.p-149, + 0x1.78p6 + }, + { // Entry 633 + 0x1.p-54, + 0x1.p-149, + 0x1.7cp6 + }, + { // Entry 634 + 0x1.p-53, + 0x1.p-149, + 0x1.80p6 + }, + { // Entry 635 + 0x1.p-52, + 0x1.p-149, + 0x1.84p6 + }, + { // Entry 636 + 0x1.p-51, + 0x1.p-149, + 0x1.88p6 + }, + { // Entry 637 + 0x1.p-50, + 0x1.p-149, + 0x1.8cp6 + }, + { // Entry 638 + 0x1.p-49, + 0x1.p-149, + 0x1.90p6 + }, + { // Entry 639 + 0x1.p-48, + 0x1.p-149, + 0x1.94p6 + }, + { // Entry 640 + 0x1.p-47, + 0x1.p-149, + 0x1.98p6 + }, + { // Entry 641 + 0x1.p-46, + 0x1.p-149, + 0x1.9cp6 + }, + { // Entry 642 + 0x1.p-45, + 0x1.p-149, + 0x1.a0p6 + }, + { // Entry 643 + 0x1.p-44, + 0x1.p-149, + 0x1.a4p6 + }, + { // Entry 644 + 0x1.p-43, + 0x1.p-149, + 0x1.a8p6 + }, + { // Entry 645 + 0x1.p-42, + 0x1.p-149, + 0x1.acp6 + }, + { // Entry 646 + 0x1.p-41, + 0x1.p-149, + 0x1.b0p6 + }, + { // Entry 647 + 0x1.p-40, + 0x1.p-149, + 0x1.b4p6 + }, + { // Entry 648 + 0x1.p-39, + 0x1.p-149, + 0x1.b8p6 + }, + { // Entry 649 + 0x1.p-38, + 0x1.p-149, + 0x1.bcp6 + }, + { // Entry 650 + 0x1.p-37, + 0x1.p-149, + 0x1.c0p6 + }, + { // Entry 651 + 0x1.p-36, + 0x1.p-149, + 0x1.c4p6 + }, + { // Entry 652 + 0x1.p-35, + 0x1.p-149, + 0x1.c8p6 + }, + { // Entry 653 + 0x1.p-34, + 0x1.p-149, + 0x1.ccp6 + }, + { // Entry 654 + 0x1.p-33, + 0x1.p-149, + 0x1.d0p6 + }, + { // Entry 655 + 0x1.p-32, + 0x1.p-149, + 0x1.d4p6 + }, + { // Entry 656 + 0x1.p-31, + 0x1.p-149, + 0x1.d8p6 + }, + { // Entry 657 + 0x1.p-30, + 0x1.p-149, + 0x1.dcp6 + }, + { // Entry 658 + 0x1.p-29, + 0x1.p-149, + 0x1.e0p6 + }, + { // Entry 659 + 0x1.p-28, + 0x1.p-149, + 0x1.e4p6 + }, + { // Entry 660 + 0x1.p-27, + 0x1.p-149, + 0x1.e8p6 + }, + { // Entry 661 + 0x1.p-26, + 0x1.p-149, + 0x1.ecp6 + }, + { // Entry 662 + 0x1.p-25, + 0x1.p-149, + 0x1.f0p6 + }, + { // Entry 663 + 0x1.p-24, + 0x1.p-149, + 0x1.f4p6 + }, + { // Entry 664 + 0x1.p-23, + 0x1.p-149, + 0x1.f8p6 + }, + { // Entry 665 + 0x1.p-22, + 0x1.p-149, + 0x1.fcp6 + }, + { // Entry 666 + 0x1.p-21, + 0x1.p-149, + 0x1.p7 + }, + { // Entry 667 + 0x1.p-20, + 0x1.p-149, + 0x1.02p7 + }, + { // Entry 668 + 0x1.p-19, + 0x1.p-149, + 0x1.04p7 + }, + { // Entry 669 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0.0 + }, + { // Entry 670 + 0x1.fffffcp-126, + 0x1.fffffcp-127, + 0x1.p0 + }, + { // Entry 671 + 0x1.fffffcp-125, + 0x1.fffffcp-127, + 0x1.p1 + }, + { // Entry 672 + 0x1.fffffcp-124, + 0x1.fffffcp-127, + 0x1.80p1 + }, + { // Entry 673 + 0x1.fffffcp-123, + 0x1.fffffcp-127, + 0x1.p2 + }, + { // Entry 674 + 0x1.fffffcp-122, + 0x1.fffffcp-127, + 0x1.40p2 + }, + { // Entry 675 + 0x1.fffffcp-121, + 0x1.fffffcp-127, + 0x1.80p2 + }, + { // Entry 676 + 0x1.fffffcp-120, + 0x1.fffffcp-127, + 0x1.c0p2 + }, + { // Entry 677 + 0x1.fffffcp-119, + 0x1.fffffcp-127, + 0x1.p3 + }, + { // Entry 678 + 0x1.fffffcp-118, + 0x1.fffffcp-127, + 0x1.20p3 + }, + { // Entry 679 + 0x1.fffffcp-117, + 0x1.fffffcp-127, + 0x1.40p3 + }, + { // Entry 680 + 0x1.fffffcp-116, + 0x1.fffffcp-127, + 0x1.60p3 + }, + { // Entry 681 + 0x1.fffffcp-115, + 0x1.fffffcp-127, + 0x1.80p3 + }, + { // Entry 682 + 0x1.fffffcp-114, + 0x1.fffffcp-127, + 0x1.a0p3 + }, + { // Entry 683 + 0x1.fffffcp-113, + 0x1.fffffcp-127, + 0x1.c0p3 + }, + { // Entry 684 + 0x1.fffffcp-112, + 0x1.fffffcp-127, + 0x1.e0p3 + }, + { // Entry 685 + 0x1.fffffcp-111, + 0x1.fffffcp-127, + 0x1.p4 + }, + { // Entry 686 + 0x1.fffffcp-110, + 0x1.fffffcp-127, + 0x1.10p4 + }, + { // Entry 687 + 0x1.fffffcp-109, + 0x1.fffffcp-127, + 0x1.20p4 + }, + { // Entry 688 + 0x1.fffffcp-108, + 0x1.fffffcp-127, + 0x1.30p4 + }, + { // Entry 689 + 0x1.fffffcp-107, + 0x1.fffffcp-127, + 0x1.40p4 + }, + { // Entry 690 + 0x1.fffffcp-106, + 0x1.fffffcp-127, + 0x1.50p4 + }, + { // Entry 691 + 0x1.fffffcp-105, + 0x1.fffffcp-127, + 0x1.60p4 + }, + { // Entry 692 + 0x1.fffffcp-104, + 0x1.fffffcp-127, + 0x1.70p4 + }, + { // Entry 693 + 0x1.fffffcp-103, + 0x1.fffffcp-127, + 0x1.80p4 + }, + { // Entry 694 + 0x1.fffffcp-102, + 0x1.fffffcp-127, + 0x1.90p4 + }, + { // Entry 695 + 0x1.fffffcp-101, + 0x1.fffffcp-127, + 0x1.a0p4 + }, + { // Entry 696 + 0x1.fffffcp-100, + 0x1.fffffcp-127, + 0x1.b0p4 + }, + { // Entry 697 + 0x1.fffffcp-99, + 0x1.fffffcp-127, + 0x1.c0p4 + }, + { // Entry 698 + 0x1.fffffcp-98, + 0x1.fffffcp-127, + 0x1.d0p4 + }, + { // Entry 699 + 0x1.fffffcp-97, + 0x1.fffffcp-127, + 0x1.e0p4 + }, + { // Entry 700 + 0x1.fffffcp-96, + 0x1.fffffcp-127, + 0x1.f0p4 + }, + { // Entry 701 + 0x1.fffffcp-95, + 0x1.fffffcp-127, + 0x1.p5 + }, + { // Entry 702 + 0x1.fffffcp-94, + 0x1.fffffcp-127, + 0x1.08p5 + }, + { // Entry 703 + 0x1.fffffcp-93, + 0x1.fffffcp-127, + 0x1.10p5 + }, + { // Entry 704 + 0x1.fffffcp-92, + 0x1.fffffcp-127, + 0x1.18p5 + }, + { // Entry 705 + 0x1.fffffcp-91, + 0x1.fffffcp-127, + 0x1.20p5 + }, + { // Entry 706 + 0x1.fffffcp-90, + 0x1.fffffcp-127, + 0x1.28p5 + }, + { // Entry 707 + 0x1.fffffcp-89, + 0x1.fffffcp-127, + 0x1.30p5 + }, + { // Entry 708 + 0x1.fffffcp-88, + 0x1.fffffcp-127, + 0x1.38p5 + }, + { // Entry 709 + 0x1.fffffcp-87, + 0x1.fffffcp-127, + 0x1.40p5 + }, + { // Entry 710 + 0x1.fffffcp-86, + 0x1.fffffcp-127, + 0x1.48p5 + }, + { // Entry 711 + 0x1.fffffcp-85, + 0x1.fffffcp-127, + 0x1.50p5 + }, + { // Entry 712 + 0x1.fffffcp-84, + 0x1.fffffcp-127, + 0x1.58p5 + }, + { // Entry 713 + 0x1.fffffcp-83, + 0x1.fffffcp-127, + 0x1.60p5 + }, + { // Entry 714 + 0x1.fffffcp-82, + 0x1.fffffcp-127, + 0x1.68p5 + }, + { // Entry 715 + 0x1.fffffcp-81, + 0x1.fffffcp-127, + 0x1.70p5 + }, + { // Entry 716 + 0x1.fffffcp-80, + 0x1.fffffcp-127, + 0x1.78p5 + }, + { // Entry 717 + 0x1.fffffcp-79, + 0x1.fffffcp-127, + 0x1.80p5 + }, + { // Entry 718 + 0x1.fffffcp-78, + 0x1.fffffcp-127, + 0x1.88p5 + }, + { // Entry 719 + 0x1.fffffcp-77, + 0x1.fffffcp-127, + 0x1.90p5 + }, + { // Entry 720 + 0x1.fffffcp-76, + 0x1.fffffcp-127, + 0x1.98p5 + }, + { // Entry 721 + 0x1.fffffcp-75, + 0x1.fffffcp-127, + 0x1.a0p5 + }, + { // Entry 722 + 0x1.fffffcp-74, + 0x1.fffffcp-127, + 0x1.a8p5 + }, + { // Entry 723 + 0x1.fffffcp-73, + 0x1.fffffcp-127, + 0x1.b0p5 + }, + { // Entry 724 + 0x1.fffffcp-72, + 0x1.fffffcp-127, + 0x1.b8p5 + }, + { // Entry 725 + 0x1.fffffcp-71, + 0x1.fffffcp-127, + 0x1.c0p5 + }, + { // Entry 726 + 0x1.fffffcp-70, + 0x1.fffffcp-127, + 0x1.c8p5 + }, + { // Entry 727 + 0x1.fffffcp-69, + 0x1.fffffcp-127, + 0x1.d0p5 + }, + { // Entry 728 + 0x1.fffffcp-68, + 0x1.fffffcp-127, + 0x1.d8p5 + }, + { // Entry 729 + 0x1.fffffcp-67, + 0x1.fffffcp-127, + 0x1.e0p5 + }, + { // Entry 730 + 0x1.fffffcp-66, + 0x1.fffffcp-127, + 0x1.e8p5 + }, + { // Entry 731 + 0x1.fffffcp-65, + 0x1.fffffcp-127, + 0x1.f0p5 + }, + { // Entry 732 + 0x1.fffffcp-64, + 0x1.fffffcp-127, + 0x1.f8p5 + }, + { // Entry 733 + 0x1.fffffcp-63, + 0x1.fffffcp-127, + 0x1.p6 + }, + { // Entry 734 + 0x1.fffffcp-62, + 0x1.fffffcp-127, + 0x1.04p6 + }, + { // Entry 735 + 0x1.fffffcp-61, + 0x1.fffffcp-127, + 0x1.08p6 + }, + { // Entry 736 + 0x1.fffffcp-60, + 0x1.fffffcp-127, + 0x1.0cp6 + }, + { // Entry 737 + 0x1.fffffcp-59, + 0x1.fffffcp-127, + 0x1.10p6 + }, + { // Entry 738 + 0x1.fffffcp-58, + 0x1.fffffcp-127, + 0x1.14p6 + }, + { // Entry 739 + 0x1.fffffcp-57, + 0x1.fffffcp-127, + 0x1.18p6 + }, + { // Entry 740 + 0x1.fffffcp-56, + 0x1.fffffcp-127, + 0x1.1cp6 + }, + { // Entry 741 + 0x1.fffffcp-55, + 0x1.fffffcp-127, + 0x1.20p6 + }, + { // Entry 742 + 0x1.fffffcp-54, + 0x1.fffffcp-127, + 0x1.24p6 + }, + { // Entry 743 + 0x1.fffffcp-53, + 0x1.fffffcp-127, + 0x1.28p6 + }, + { // Entry 744 + 0x1.fffffcp-52, + 0x1.fffffcp-127, + 0x1.2cp6 + }, + { // Entry 745 + 0x1.fffffcp-51, + 0x1.fffffcp-127, + 0x1.30p6 + }, + { // Entry 746 + 0x1.fffffcp-50, + 0x1.fffffcp-127, + 0x1.34p6 + }, + { // Entry 747 + 0x1.fffffcp-49, + 0x1.fffffcp-127, + 0x1.38p6 + }, + { // Entry 748 + 0x1.fffffcp-48, + 0x1.fffffcp-127, + 0x1.3cp6 + }, + { // Entry 749 + 0x1.fffffcp-47, + 0x1.fffffcp-127, + 0x1.40p6 + }, + { // Entry 750 + 0x1.fffffcp-46, + 0x1.fffffcp-127, + 0x1.44p6 + }, + { // Entry 751 + 0x1.fffffcp-45, + 0x1.fffffcp-127, + 0x1.48p6 + }, + { // Entry 752 + 0x1.fffffcp-44, + 0x1.fffffcp-127, + 0x1.4cp6 + }, + { // Entry 753 + 0x1.fffffcp-43, + 0x1.fffffcp-127, + 0x1.50p6 + }, + { // Entry 754 + 0x1.fffffcp-42, + 0x1.fffffcp-127, + 0x1.54p6 + }, + { // Entry 755 + 0x1.fffffcp-41, + 0x1.fffffcp-127, + 0x1.58p6 + }, + { // Entry 756 + 0x1.fffffcp-40, + 0x1.fffffcp-127, + 0x1.5cp6 + }, + { // Entry 757 + 0x1.fffffcp-39, + 0x1.fffffcp-127, + 0x1.60p6 + }, + { // Entry 758 + 0x1.fffffcp-38, + 0x1.fffffcp-127, + 0x1.64p6 + }, + { // Entry 759 + 0x1.fffffcp-37, + 0x1.fffffcp-127, + 0x1.68p6 + }, + { // Entry 760 + 0x1.fffffcp-36, + 0x1.fffffcp-127, + 0x1.6cp6 + }, + { // Entry 761 + 0x1.fffffcp-35, + 0x1.fffffcp-127, + 0x1.70p6 + }, + { // Entry 762 + 0x1.fffffcp-34, + 0x1.fffffcp-127, + 0x1.74p6 + }, + { // Entry 763 + 0x1.fffffcp-33, + 0x1.fffffcp-127, + 0x1.78p6 + }, + { // Entry 764 + 0x1.fffffcp-32, + 0x1.fffffcp-127, + 0x1.7cp6 + }, + { // Entry 765 + 0x1.fffffcp-31, + 0x1.fffffcp-127, + 0x1.80p6 + }, + { // Entry 766 + 0x1.fffffcp-30, + 0x1.fffffcp-127, + 0x1.84p6 + }, + { // Entry 767 + 0x1.fffffcp-29, + 0x1.fffffcp-127, + 0x1.88p6 + }, + { // Entry 768 + 0x1.fffffcp-28, + 0x1.fffffcp-127, + 0x1.8cp6 + }, + { // Entry 769 + 0x1.fffffcp-27, + 0x1.fffffcp-127, + 0x1.90p6 + }, + { // Entry 770 + 0x1.fffffcp-26, + 0x1.fffffcp-127, + 0x1.94p6 + }, + { // Entry 771 + 0x1.fffffcp-25, + 0x1.fffffcp-127, + 0x1.98p6 + }, + { // Entry 772 + 0x1.fffffcp-24, + 0x1.fffffcp-127, + 0x1.9cp6 + }, + { // Entry 773 + 0x1.fffffcp-23, + 0x1.fffffcp-127, + 0x1.a0p6 + }, + { // Entry 774 + 0x1.fffffcp-22, + 0x1.fffffcp-127, + 0x1.a4p6 + }, + { // Entry 775 + 0x1.fffffcp-21, + 0x1.fffffcp-127, + 0x1.a8p6 + }, + { // Entry 776 + 0x1.fffffcp-20, + 0x1.fffffcp-127, + 0x1.acp6 + }, + { // Entry 777 + 0x1.fffffcp-19, + 0x1.fffffcp-127, + 0x1.b0p6 + }, + { // Entry 778 + 0x1.fffffcp-18, + 0x1.fffffcp-127, + 0x1.b4p6 + }, + { // Entry 779 + 0x1.fffffcp-17, + 0x1.fffffcp-127, + 0x1.b8p6 + }, + { // Entry 780 + 0x1.fffffcp-16, + 0x1.fffffcp-127, + 0x1.bcp6 + }, + { // Entry 781 + 0x1.fffffcp-15, + 0x1.fffffcp-127, + 0x1.c0p6 + }, + { // Entry 782 + 0x1.fffffcp-14, + 0x1.fffffcp-127, + 0x1.c4p6 + }, + { // Entry 783 + 0x1.fffffcp-13, + 0x1.fffffcp-127, + 0x1.c8p6 + }, + { // Entry 784 + 0x1.fffffcp-12, + 0x1.fffffcp-127, + 0x1.ccp6 + }, + { // Entry 785 + 0x1.fffffcp-11, + 0x1.fffffcp-127, + 0x1.d0p6 + }, + { // Entry 786 + 0x1.fffffcp-10, + 0x1.fffffcp-127, + 0x1.d4p6 + }, + { // Entry 787 + 0x1.fffffcp-9, + 0x1.fffffcp-127, + 0x1.d8p6 + }, + { // Entry 788 + 0x1.fffffcp-8, + 0x1.fffffcp-127, + 0x1.dcp6 + }, + { // Entry 789 + 0x1.fffffcp-7, + 0x1.fffffcp-127, + 0x1.e0p6 + }, + { // Entry 790 + 0x1.fffffcp-6, + 0x1.fffffcp-127, + 0x1.e4p6 + }, + { // Entry 791 + 0x1.fffffcp-5, + 0x1.fffffcp-127, + 0x1.e8p6 + }, + { // Entry 792 + 0x1.fffffcp-4, + 0x1.fffffcp-127, + 0x1.ecp6 + }, + { // Entry 793 + 0x1.fffffcp-3, + 0x1.fffffcp-127, + 0x1.f0p6 + }, + { // Entry 794 + 0x1.fffffcp-2, + 0x1.fffffcp-127, + 0x1.f4p6 + }, + { // Entry 795 + 0x1.fffffcp-1, + 0x1.fffffcp-127, + 0x1.f8p6 + }, + { // Entry 796 + 0x1.fffffcp0, + 0x1.fffffcp-127, + 0x1.fcp6 + }, + { // Entry 797 + 0x1.fffffcp1, + 0x1.fffffcp-127, + 0x1.p7 + }, + { // Entry 798 + 0x1.fffffcp2, + 0x1.fffffcp-127, + 0x1.02p7 + }, + { // Entry 799 + 0x1.fffffcp3, + 0x1.fffffcp-127, + 0x1.04p7 + }, + { // Entry 800 + 0x1.p0, + 0x1.p-149, + 0x1.2ap7 + }, + { // Entry 801 + 0x1.p-1, + 0x1.p-149, + 0x1.28p7 + }, + { // Entry 802 + 0x1.fffffcp22, + 0x1.fffffcp-127, + 0x1.2ap7 + }, + { // Entry 803 + 0x1.fffffcp21, + 0x1.fffffcp-127, + 0x1.28p7 + }, + { // Entry 804 + 0x1.p-126, + 0x1.p-149, + 0x1.70p4 + }, + { // Entry 805 + 0x1.p-127, + 0x1.p-149, + 0x1.60p4 + }, + { // Entry 806 + 0x1.fffffcp-104, + 0x1.fffffcp-127, + 0x1.70p4 + }, + { // Entry 807 + 0x1.fffffcp-105, + 0x1.fffffcp-127, + 0x1.60p4 + }, + { // Entry 808 + 0x1.p-149, + 0x1.p-149, + 0.0 + }, + { // Entry 809 + 0x1.p-148, + 0x1.p-149, + 0x1.p0 + }, + { // Entry 810 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0.0 + }, + { // Entry 811 + 0x1.fffffcp-126, + 0x1.fffffcp-127, + 0x1.p0 + }, + { // Entry 812 + HUGE_VALF, + HUGE_VALF, + HUGE_VALF + }, + { // Entry 813 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 814 + HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 815 + HUGE_VALF, + 0x1.fffffep127, + HUGE_VALF + }, + { // Entry 816 + HUGE_VALF, + 0x1.p-126, + HUGE_VALF + }, + { // Entry 817 + HUGE_VALF, + 0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 818 + HUGE_VALF, + 0x1.p-149, + HUGE_VALF + }, + { // Entry 819 + -HUGE_VALF, + -0x1.p-149, + HUGE_VALF + }, + { // Entry 820 + -HUGE_VALF, + -0x1.fffffcp-127, + HUGE_VALF + }, + { // Entry 821 + -HUGE_VALF, + -0x1.p-126, + HUGE_VALF + }, + { // Entry 822 + -HUGE_VALF, + -0x1.fffffep127, + HUGE_VALF + }, + { // Entry 823 + -HUGE_VALF, + -HUGE_VALF, + HUGE_VALF + }, + { // Entry 824 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 825 + 0.0f, + 0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 826 + 0.0, + 0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 827 + HUGE_VALF, + 0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 828 + HUGE_VALF, + 0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 829 + HUGE_VALF, + 0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 830 + -HUGE_VALF, + -0x1.p-149, + 0x1.fffffep127 + }, + { // Entry 831 + -HUGE_VALF, + -0x1.fffffcp-127, + 0x1.fffffep127 + }, + { // Entry 832 + -HUGE_VALF, + -0x1.p-126, + 0x1.fffffep127 + }, + { // Entry 833 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 834 + 0.0f, + 0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 835 + 0.0, + 0x1.p-126, + -HUGE_VALF + }, + { // Entry 836 + 0.0f, + 0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 837 + 0.0, + 0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 838 + 0.0f, + 0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 839 + 0.0, + 0x1.p-149, + -HUGE_VALF + }, + { // Entry 840 + 0.0, + 0.0f, + -HUGE_VALF + }, + { // Entry 841 + -0.0, + -0.0f, + -HUGE_VALF + }, + { // Entry 842 + -0.0f, + -0x1.p-149, + -0x1.fffffep127 + }, + { // Entry 843 + -0.0, + -0x1.p-149, + -HUGE_VALF + }, + { // Entry 844 + -0.0f, + -0x1.fffffcp-127, + -0x1.fffffep127 + }, + { // Entry 845 + -0.0, + -0x1.fffffcp-127, + -HUGE_VALF + }, + { // Entry 846 + -0.0f, + -0x1.p-126, + -0x1.fffffep127 + }, + { // Entry 847 + -0.0, + -0x1.p-126, + -HUGE_VALF + }, + { // Entry 848 + -0.0f, + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 849 + -0.0, + -0x1.fffffep127, + -HUGE_VALF + }, + { // Entry 850 + 0.0, + 0.0f, + 0x1.fffffep127 + }, + { // Entry 851 + -0.0, + -0.0f, + 0x1.fffffep127 + }, + { // Entry 852 + 0.0, + 0.0f, + 0.0f + }, + { // Entry 853 + -0.0, + -0.0f, + 0.0f + }, + { // Entry 854 + 0.0, + 0.0f, + -0.0f + }, + { // Entry 855 + -0.0, + -0.0f, + -0.0f + }, + { // Entry 856 + 0.0, + 0.0f, + 0x1.p0 + }, + { // Entry 857 + -0.0, + -0.0f, + 0x1.p0 + }, + { // Entry 858 + 0.0, + 0.0f, + -0x1.p0 + }, + { // Entry 859 + -0.0, + -0.0f, + -0x1.p0 + }, + { // Entry 860 + 0.0, + 0.0f, + 0x1.fcp6 + }, + { // Entry 861 + -0.0, + -0.0f, + 0x1.fcp6 + }, + { // Entry 862 + 0.0, + 0.0f, + -0x1.fcp6 + }, + { // Entry 863 + -0.0, + -0.0f, + -0x1.fcp6 + }, + { // Entry 864 + 0.0, + 0.0f, + -0x1.fffffep127 + }, + { // Entry 865 + -0.0, + -0.0f, + -0x1.fffffep127 + }, + { // Entry 866 + HUGE_VALF, + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 867 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 868 + HUGE_VALF, + HUGE_VALF, + 0.0f + }, + { // Entry 869 + -HUGE_VALF, + -HUGE_VALF, + 0.0f + }, + { // Entry 870 + HUGE_VALF, + HUGE_VALF, + -0.0f + }, + { // Entry 871 + -HUGE_VALF, + -HUGE_VALF, + -0.0f + }, + { // Entry 872 + HUGE_VALF, + HUGE_VALF, + 0x1.p0 + }, + { // Entry 873 + -HUGE_VALF, + -HUGE_VALF, + 0x1.p0 + }, + { // Entry 874 + HUGE_VALF, + HUGE_VALF, + -0x1.p0 + }, + { // Entry 875 + -HUGE_VALF, + -HUGE_VALF, + -0x1.p0 + }, + { // Entry 876 + HUGE_VALF, + HUGE_VALF, + 0x1.fcp6 + }, + { // Entry 877 + -HUGE_VALF, + -HUGE_VALF, + 0x1.fcp6 + }, + { // Entry 878 + HUGE_VALF, + HUGE_VALF, + -0x1.fcp6 + }, + { // Entry 879 + -HUGE_VALF, + -HUGE_VALF, + -0x1.fcp6 + }, + { // Entry 880 + HUGE_VALF, + HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 881 + -HUGE_VALF, + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 882 + 0x1.fffffep127, + 0x1.fffffep127, + 0.0f + }, + { // Entry 883 + 0x1.fffffep127, + 0x1.fffffep127, + -0.0f + }, + { // Entry 884 + 0x1.p-126, + 0x1.p-126, + 0.0f + }, + { // Entry 885 + 0x1.p-126, + 0x1.p-126, + -0.0f + }, + { // Entry 886 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + 0.0f + }, + { // Entry 887 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + -0.0f + }, + { // Entry 888 + 0x1.p-149, + 0x1.p-149, + 0.0f + }, + { // Entry 889 + 0x1.p-149, + 0x1.p-149, + -0.0f + }, + { // Entry 890 + -0x1.p-149, + -0x1.p-149, + 0.0f + }, + { // Entry 891 + -0x1.p-149, + -0x1.p-149, + -0.0f + }, + { // Entry 892 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + 0.0f + }, + { // Entry 893 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + -0.0f + }, + { // Entry 894 + -0x1.p-126, + -0x1.p-126, + 0.0f + }, + { // Entry 895 + -0x1.p-126, + -0x1.p-126, + -0.0f + }, + { // Entry 896 + -0x1.fffffep127, + -0x1.fffffep127, + 0.0f + }, + { // Entry 897 + -0x1.fffffep127, + -0x1.fffffep127, + -0.0f + }, + { // Entry 898 + HUGE_VALF, + 0x1.fffffep127, + 0x1.p0 + }, + { // Entry 899 + HUGE_VALF, + 0x1.fffffep127, + 0x1.fcp6 + }, + { // Entry 900 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.p0 + }, + { // Entry 901 + -HUGE_VALF, + -0x1.fffffep127, + 0x1.fcp6 + }, + { // Entry 902 + HUGE_VALF, + 0x1.p-126, + 0x1.3880p15 + }, + { // Entry 903 + HUGE_VALF, + 0x1.p-149, + 0x1.3880p15 + }, + { // Entry 904 + -HUGE_VALF, + -0x1.p-126, + 0x1.3880p15 + }, + { // Entry 905 + -HUGE_VALF, + -0x1.p-149, + 0x1.3880p15 + }, + { // Entry 906 + 0x1.p-127, + 0x1.p-126, + -0x1.p0 + }, + { // Entry 907 + 0x1.fffffcp-128, + 0x1.fffffcp-127, + -0x1.p0 + }, + { // Entry 908 + 0.0f, + 0x1.p-149, + -0x1.p0 + }, + { // Entry 909 + -0.0f, + -0x1.p-149, + -0x1.p0 + }, + { // Entry 910 + -0x1.fffffcp-128, + -0x1.fffffcp-127, + -0x1.p0 + }, + { // Entry 911 + -0x1.p-127, + -0x1.p-126, + -0x1.p0 + }, + { // Entry 912 + 0.0f, + 0x1.fffffep127, + -0x1.3880p15 + }, + { // Entry 913 + -0.0f, + -0x1.fffffep127, + -0x1.3880p15 + } +}; diff --git a/tests/math_data/scalbn_intel_data.h b/tests/math_data/scalbn_intel_data.h new file mode 100644 index 000000000..7b9753000 --- /dev/null +++ b/tests/math_data/scalbn_intel_data.h @@ -0,0 +1,4333 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_scalbn_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.0p-1074, + (int)-10 + }, + { // Entry 1 + -0x1.55555555555560p-1024, + -0x1.5555555555556p-2, + (int)-1022 + }, + { // Entry 2 + -0x1.6db6db6db6db70p-1023, + -0x1.6db6db6db6db7p-1, + (int)-1022 + }, + { // Entry 3 + -0x1.8e38e38e38e390p-1023, + -0x1.8e38e38e38e39p-1, + (int)-1022 + }, + { // Entry 4 + 0.0, + 0x1.0p-1074, + (int)-1 + }, + { // Entry 5 + 0.0, + 0x1.0p-1074, + (int)-10 + }, + { // Entry 6 + 0.0, + 0x1.0p-1074, + (int)-47 + }, + { // Entry 7 + 0x1.p-51, + 0x1.0p-1074, + (int)1023 + }, + { // Entry 8 + 0x1.29e4129e4129e0p-1024, + 0x1.29e4129e4129ep-7, + (int)-1017 + }, + { // Entry 9 + HUGE_VAL, + 0x1.8e147ae147ae1p0, + (int)2147483647 + }, + { // Entry 10 + 0.0, + 0x1.dddddddddddddp-2, + (int)-1073 + }, + { // Entry 11 + 0.0, + 0x1.f7df7df7df7dfp-2, + (int)-1073 + }, + { // Entry 12 + 0x1.ffffffffffffc0p-1033, + 0x1.ffffffffffffcp-1023, + (int)-10 + }, + { // Entry 13 + 0x1.ffffffffffffc0p-1022, + 0x1.ffffffffffffcp-1023, + (int)1 + }, + { // Entry 14 + 0x1.ffffffffffffe0p-1070, + 0x1.ffffffffffffep-1023, + (int)-47 + }, + { // Entry 15 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + (int)1 + }, + { // Entry 16 + HUGE_VAL, + 0x1.fffffffffffffp1023, + (int)2147483647 + }, + { // Entry 17 + HUGE_VAL, + 0x1.fffffffffffffp1023, + (int)2147483647 + }, + { // Entry 18 + -0x1.p-10, + -0x1.0p0, + (int)-10 + }, + { // Entry 19 + -0x1.p-9, + -0x1.0p0, + (int)-9 + }, + { // Entry 20 + -0x1.p-8, + -0x1.0p0, + (int)-8 + }, + { // Entry 21 + -0x1.p-7, + -0x1.0p0, + (int)-7 + }, + { // Entry 22 + -0x1.p-6, + -0x1.0p0, + (int)-6 + }, + { // Entry 23 + -0x1.p-5, + -0x1.0p0, + (int)-5 + }, + { // Entry 24 + -0x1.p-4, + -0x1.0p0, + (int)-4 + }, + { // Entry 25 + -0x1.p-3, + -0x1.0p0, + (int)-3 + }, + { // Entry 26 + -0x1.p-2, + -0x1.0p0, + (int)-2 + }, + { // Entry 27 + -0x1.p-1, + -0x1.0p0, + (int)-1 + }, + { // Entry 28 + -0x1.p0, + -0x1.0p0, + (int)0 + }, + { // Entry 29 + -0x1.p1, + -0x1.0p0, + (int)1 + }, + { // Entry 30 + -0x1.p2, + -0x1.0p0, + (int)2 + }, + { // Entry 31 + -0x1.p3, + -0x1.0p0, + (int)3 + }, + { // Entry 32 + -0x1.p4, + -0x1.0p0, + (int)4 + }, + { // Entry 33 + -0x1.p5, + -0x1.0p0, + (int)5 + }, + { // Entry 34 + -0x1.p6, + -0x1.0p0, + (int)6 + }, + { // Entry 35 + -0x1.p7, + -0x1.0p0, + (int)7 + }, + { // Entry 36 + -0x1.p8, + -0x1.0p0, + (int)8 + }, + { // Entry 37 + -0x1.p9, + -0x1.0p0, + (int)9 + }, + { // Entry 38 + -0x1.p10, + -0x1.0p0, + (int)10 + }, + { // Entry 39 + -0x1.d1745d1745d170p-11, + -0x1.d1745d1745d17p-1, + (int)-10 + }, + { // Entry 40 + -0x1.d1745d1745d170p-10, + -0x1.d1745d1745d17p-1, + (int)-9 + }, + { // Entry 41 + -0x1.d1745d1745d170p-9, + -0x1.d1745d1745d17p-1, + (int)-8 + }, + { // Entry 42 + -0x1.d1745d1745d170p-8, + -0x1.d1745d1745d17p-1, + (int)-7 + }, + { // Entry 43 + -0x1.d1745d1745d170p-7, + -0x1.d1745d1745d17p-1, + (int)-6 + }, + { // Entry 44 + -0x1.d1745d1745d170p-6, + -0x1.d1745d1745d17p-1, + (int)-5 + }, + { // Entry 45 + -0x1.d1745d1745d170p-5, + -0x1.d1745d1745d17p-1, + (int)-4 + }, + { // Entry 46 + -0x1.d1745d1745d170p-4, + -0x1.d1745d1745d17p-1, + (int)-3 + }, + { // Entry 47 + -0x1.d1745d1745d170p-3, + -0x1.d1745d1745d17p-1, + (int)-2 + }, + { // Entry 48 + -0x1.d1745d1745d170p-2, + -0x1.d1745d1745d17p-1, + (int)-1 + }, + { // Entry 49 + -0x1.d1745d1745d170p-1, + -0x1.d1745d1745d17p-1, + (int)0 + }, + { // Entry 50 + -0x1.d1745d1745d170p0, + -0x1.d1745d1745d17p-1, + (int)1 + }, + { // Entry 51 + -0x1.d1745d1745d170p1, + -0x1.d1745d1745d17p-1, + (int)2 + }, + { // Entry 52 + -0x1.d1745d1745d170p2, + -0x1.d1745d1745d17p-1, + (int)3 + }, + { // Entry 53 + -0x1.d1745d1745d170p3, + -0x1.d1745d1745d17p-1, + (int)4 + }, + { // Entry 54 + -0x1.d1745d1745d170p4, + -0x1.d1745d1745d17p-1, + (int)5 + }, + { // Entry 55 + -0x1.d1745d1745d170p5, + -0x1.d1745d1745d17p-1, + (int)6 + }, + { // Entry 56 + -0x1.d1745d1745d170p6, + -0x1.d1745d1745d17p-1, + (int)7 + }, + { // Entry 57 + -0x1.d1745d1745d170p7, + -0x1.d1745d1745d17p-1, + (int)8 + }, + { // Entry 58 + -0x1.d1745d1745d170p8, + -0x1.d1745d1745d17p-1, + (int)9 + }, + { // Entry 59 + -0x1.d1745d1745d170p9, + -0x1.d1745d1745d17p-1, + (int)10 + }, + { // Entry 60 + -0x1.a2e8ba2e8ba2e0p-11, + -0x1.a2e8ba2e8ba2ep-1, + (int)-10 + }, + { // Entry 61 + -0x1.a2e8ba2e8ba2e0p-10, + -0x1.a2e8ba2e8ba2ep-1, + (int)-9 + }, + { // Entry 62 + -0x1.a2e8ba2e8ba2e0p-9, + -0x1.a2e8ba2e8ba2ep-1, + (int)-8 + }, + { // Entry 63 + -0x1.a2e8ba2e8ba2e0p-8, + -0x1.a2e8ba2e8ba2ep-1, + (int)-7 + }, + { // Entry 64 + -0x1.a2e8ba2e8ba2e0p-7, + -0x1.a2e8ba2e8ba2ep-1, + (int)-6 + }, + { // Entry 65 + -0x1.a2e8ba2e8ba2e0p-6, + -0x1.a2e8ba2e8ba2ep-1, + (int)-5 + }, + { // Entry 66 + -0x1.a2e8ba2e8ba2e0p-5, + -0x1.a2e8ba2e8ba2ep-1, + (int)-4 + }, + { // Entry 67 + -0x1.a2e8ba2e8ba2e0p-4, + -0x1.a2e8ba2e8ba2ep-1, + (int)-3 + }, + { // Entry 68 + -0x1.a2e8ba2e8ba2e0p-3, + -0x1.a2e8ba2e8ba2ep-1, + (int)-2 + }, + { // Entry 69 + -0x1.a2e8ba2e8ba2e0p-2, + -0x1.a2e8ba2e8ba2ep-1, + (int)-1 + }, + { // Entry 70 + -0x1.a2e8ba2e8ba2e0p-1, + -0x1.a2e8ba2e8ba2ep-1, + (int)0 + }, + { // Entry 71 + -0x1.a2e8ba2e8ba2e0p0, + -0x1.a2e8ba2e8ba2ep-1, + (int)1 + }, + { // Entry 72 + -0x1.a2e8ba2e8ba2e0p1, + -0x1.a2e8ba2e8ba2ep-1, + (int)2 + }, + { // Entry 73 + -0x1.a2e8ba2e8ba2e0p2, + -0x1.a2e8ba2e8ba2ep-1, + (int)3 + }, + { // Entry 74 + -0x1.a2e8ba2e8ba2e0p3, + -0x1.a2e8ba2e8ba2ep-1, + (int)4 + }, + { // Entry 75 + -0x1.a2e8ba2e8ba2e0p4, + -0x1.a2e8ba2e8ba2ep-1, + (int)5 + }, + { // Entry 76 + -0x1.a2e8ba2e8ba2e0p5, + -0x1.a2e8ba2e8ba2ep-1, + (int)6 + }, + { // Entry 77 + -0x1.a2e8ba2e8ba2e0p6, + -0x1.a2e8ba2e8ba2ep-1, + (int)7 + }, + { // Entry 78 + -0x1.a2e8ba2e8ba2e0p7, + -0x1.a2e8ba2e8ba2ep-1, + (int)8 + }, + { // Entry 79 + -0x1.a2e8ba2e8ba2e0p8, + -0x1.a2e8ba2e8ba2ep-1, + (int)9 + }, + { // Entry 80 + -0x1.a2e8ba2e8ba2e0p9, + -0x1.a2e8ba2e8ba2ep-1, + (int)10 + }, + { // Entry 81 + -0x1.745d1745d17450p-11, + -0x1.745d1745d1745p-1, + (int)-10 + }, + { // Entry 82 + -0x1.745d1745d17450p-10, + -0x1.745d1745d1745p-1, + (int)-9 + }, + { // Entry 83 + -0x1.745d1745d17450p-9, + -0x1.745d1745d1745p-1, + (int)-8 + }, + { // Entry 84 + -0x1.745d1745d17450p-8, + -0x1.745d1745d1745p-1, + (int)-7 + }, + { // Entry 85 + -0x1.745d1745d17450p-7, + -0x1.745d1745d1745p-1, + (int)-6 + }, + { // Entry 86 + -0x1.745d1745d17450p-6, + -0x1.745d1745d1745p-1, + (int)-5 + }, + { // Entry 87 + -0x1.745d1745d17450p-5, + -0x1.745d1745d1745p-1, + (int)-4 + }, + { // Entry 88 + -0x1.745d1745d17450p-4, + -0x1.745d1745d1745p-1, + (int)-3 + }, + { // Entry 89 + -0x1.745d1745d17450p-3, + -0x1.745d1745d1745p-1, + (int)-2 + }, + { // Entry 90 + -0x1.745d1745d17450p-2, + -0x1.745d1745d1745p-1, + (int)-1 + }, + { // Entry 91 + -0x1.745d1745d17450p-1, + -0x1.745d1745d1745p-1, + (int)0 + }, + { // Entry 92 + -0x1.745d1745d17450p0, + -0x1.745d1745d1745p-1, + (int)1 + }, + { // Entry 93 + -0x1.745d1745d17450p1, + -0x1.745d1745d1745p-1, + (int)2 + }, + { // Entry 94 + -0x1.745d1745d17450p2, + -0x1.745d1745d1745p-1, + (int)3 + }, + { // Entry 95 + -0x1.745d1745d17450p3, + -0x1.745d1745d1745p-1, + (int)4 + }, + { // Entry 96 + -0x1.745d1745d17450p4, + -0x1.745d1745d1745p-1, + (int)5 + }, + { // Entry 97 + -0x1.745d1745d17450p5, + -0x1.745d1745d1745p-1, + (int)6 + }, + { // Entry 98 + -0x1.745d1745d17450p6, + -0x1.745d1745d1745p-1, + (int)7 + }, + { // Entry 99 + -0x1.745d1745d17450p7, + -0x1.745d1745d1745p-1, + (int)8 + }, + { // Entry 100 + -0x1.745d1745d17450p8, + -0x1.745d1745d1745p-1, + (int)9 + }, + { // Entry 101 + -0x1.745d1745d17450p9, + -0x1.745d1745d1745p-1, + (int)10 + }, + { // Entry 102 + -0x1.45d1745d1745c0p-11, + -0x1.45d1745d1745cp-1, + (int)-10 + }, + { // Entry 103 + -0x1.45d1745d1745c0p-10, + -0x1.45d1745d1745cp-1, + (int)-9 + }, + { // Entry 104 + -0x1.45d1745d1745c0p-9, + -0x1.45d1745d1745cp-1, + (int)-8 + }, + { // Entry 105 + -0x1.45d1745d1745c0p-8, + -0x1.45d1745d1745cp-1, + (int)-7 + }, + { // Entry 106 + -0x1.45d1745d1745c0p-7, + -0x1.45d1745d1745cp-1, + (int)-6 + }, + { // Entry 107 + -0x1.45d1745d1745c0p-6, + -0x1.45d1745d1745cp-1, + (int)-5 + }, + { // Entry 108 + -0x1.45d1745d1745c0p-5, + -0x1.45d1745d1745cp-1, + (int)-4 + }, + { // Entry 109 + -0x1.45d1745d1745c0p-4, + -0x1.45d1745d1745cp-1, + (int)-3 + }, + { // Entry 110 + -0x1.45d1745d1745c0p-3, + -0x1.45d1745d1745cp-1, + (int)-2 + }, + { // Entry 111 + -0x1.45d1745d1745c0p-2, + -0x1.45d1745d1745cp-1, + (int)-1 + }, + { // Entry 112 + -0x1.45d1745d1745c0p-1, + -0x1.45d1745d1745cp-1, + (int)0 + }, + { // Entry 113 + -0x1.45d1745d1745c0p0, + -0x1.45d1745d1745cp-1, + (int)1 + }, + { // Entry 114 + -0x1.45d1745d1745c0p1, + -0x1.45d1745d1745cp-1, + (int)2 + }, + { // Entry 115 + -0x1.45d1745d1745c0p2, + -0x1.45d1745d1745cp-1, + (int)3 + }, + { // Entry 116 + -0x1.45d1745d1745c0p3, + -0x1.45d1745d1745cp-1, + (int)4 + }, + { // Entry 117 + -0x1.45d1745d1745c0p4, + -0x1.45d1745d1745cp-1, + (int)5 + }, + { // Entry 118 + -0x1.45d1745d1745c0p5, + -0x1.45d1745d1745cp-1, + (int)6 + }, + { // Entry 119 + -0x1.45d1745d1745c0p6, + -0x1.45d1745d1745cp-1, + (int)7 + }, + { // Entry 120 + -0x1.45d1745d1745c0p7, + -0x1.45d1745d1745cp-1, + (int)8 + }, + { // Entry 121 + -0x1.45d1745d1745c0p8, + -0x1.45d1745d1745cp-1, + (int)9 + }, + { // Entry 122 + -0x1.45d1745d1745c0p9, + -0x1.45d1745d1745cp-1, + (int)10 + }, + { // Entry 123 + -0x1.1745d1745d1730p-11, + -0x1.1745d1745d173p-1, + (int)-10 + }, + { // Entry 124 + -0x1.1745d1745d1730p-10, + -0x1.1745d1745d173p-1, + (int)-9 + }, + { // Entry 125 + -0x1.1745d1745d1730p-9, + -0x1.1745d1745d173p-1, + (int)-8 + }, + { // Entry 126 + -0x1.1745d1745d1730p-8, + -0x1.1745d1745d173p-1, + (int)-7 + }, + { // Entry 127 + -0x1.1745d1745d1730p-7, + -0x1.1745d1745d173p-1, + (int)-6 + }, + { // Entry 128 + -0x1.1745d1745d1730p-6, + -0x1.1745d1745d173p-1, + (int)-5 + }, + { // Entry 129 + -0x1.1745d1745d1730p-5, + -0x1.1745d1745d173p-1, + (int)-4 + }, + { // Entry 130 + -0x1.1745d1745d1730p-4, + -0x1.1745d1745d173p-1, + (int)-3 + }, + { // Entry 131 + -0x1.1745d1745d1730p-3, + -0x1.1745d1745d173p-1, + (int)-2 + }, + { // Entry 132 + -0x1.1745d1745d1730p-2, + -0x1.1745d1745d173p-1, + (int)-1 + }, + { // Entry 133 + -0x1.1745d1745d1730p-1, + -0x1.1745d1745d173p-1, + (int)0 + }, + { // Entry 134 + -0x1.1745d1745d1730p0, + -0x1.1745d1745d173p-1, + (int)1 + }, + { // Entry 135 + -0x1.1745d1745d1730p1, + -0x1.1745d1745d173p-1, + (int)2 + }, + { // Entry 136 + -0x1.1745d1745d1730p2, + -0x1.1745d1745d173p-1, + (int)3 + }, + { // Entry 137 + -0x1.1745d1745d1730p3, + -0x1.1745d1745d173p-1, + (int)4 + }, + { // Entry 138 + -0x1.1745d1745d1730p4, + -0x1.1745d1745d173p-1, + (int)5 + }, + { // Entry 139 + -0x1.1745d1745d1730p5, + -0x1.1745d1745d173p-1, + (int)6 + }, + { // Entry 140 + -0x1.1745d1745d1730p6, + -0x1.1745d1745d173p-1, + (int)7 + }, + { // Entry 141 + -0x1.1745d1745d1730p7, + -0x1.1745d1745d173p-1, + (int)8 + }, + { // Entry 142 + -0x1.1745d1745d1730p8, + -0x1.1745d1745d173p-1, + (int)9 + }, + { // Entry 143 + -0x1.1745d1745d1730p9, + -0x1.1745d1745d173p-1, + (int)10 + }, + { // Entry 144 + -0x1.d1745d1745d140p-12, + -0x1.d1745d1745d14p-2, + (int)-10 + }, + { // Entry 145 + -0x1.d1745d1745d140p-11, + -0x1.d1745d1745d14p-2, + (int)-9 + }, + { // Entry 146 + -0x1.d1745d1745d140p-10, + -0x1.d1745d1745d14p-2, + (int)-8 + }, + { // Entry 147 + -0x1.d1745d1745d140p-9, + -0x1.d1745d1745d14p-2, + (int)-7 + }, + { // Entry 148 + -0x1.d1745d1745d140p-8, + -0x1.d1745d1745d14p-2, + (int)-6 + }, + { // Entry 149 + -0x1.d1745d1745d140p-7, + -0x1.d1745d1745d14p-2, + (int)-5 + }, + { // Entry 150 + -0x1.d1745d1745d140p-6, + -0x1.d1745d1745d14p-2, + (int)-4 + }, + { // Entry 151 + -0x1.d1745d1745d140p-5, + -0x1.d1745d1745d14p-2, + (int)-3 + }, + { // Entry 152 + -0x1.d1745d1745d140p-4, + -0x1.d1745d1745d14p-2, + (int)-2 + }, + { // Entry 153 + -0x1.d1745d1745d140p-3, + -0x1.d1745d1745d14p-2, + (int)-1 + }, + { // Entry 154 + -0x1.d1745d1745d140p-2, + -0x1.d1745d1745d14p-2, + (int)0 + }, + { // Entry 155 + -0x1.d1745d1745d140p-1, + -0x1.d1745d1745d14p-2, + (int)1 + }, + { // Entry 156 + -0x1.d1745d1745d140p0, + -0x1.d1745d1745d14p-2, + (int)2 + }, + { // Entry 157 + -0x1.d1745d1745d140p1, + -0x1.d1745d1745d14p-2, + (int)3 + }, + { // Entry 158 + -0x1.d1745d1745d140p2, + -0x1.d1745d1745d14p-2, + (int)4 + }, + { // Entry 159 + -0x1.d1745d1745d140p3, + -0x1.d1745d1745d14p-2, + (int)5 + }, + { // Entry 160 + -0x1.d1745d1745d140p4, + -0x1.d1745d1745d14p-2, + (int)6 + }, + { // Entry 161 + -0x1.d1745d1745d140p5, + -0x1.d1745d1745d14p-2, + (int)7 + }, + { // Entry 162 + -0x1.d1745d1745d140p6, + -0x1.d1745d1745d14p-2, + (int)8 + }, + { // Entry 163 + -0x1.d1745d1745d140p7, + -0x1.d1745d1745d14p-2, + (int)9 + }, + { // Entry 164 + -0x1.d1745d1745d140p8, + -0x1.d1745d1745d14p-2, + (int)10 + }, + { // Entry 165 + -0x1.745d1745d17420p-12, + -0x1.745d1745d1742p-2, + (int)-10 + }, + { // Entry 166 + -0x1.745d1745d17420p-11, + -0x1.745d1745d1742p-2, + (int)-9 + }, + { // Entry 167 + -0x1.745d1745d17420p-10, + -0x1.745d1745d1742p-2, + (int)-8 + }, + { // Entry 168 + -0x1.745d1745d17420p-9, + -0x1.745d1745d1742p-2, + (int)-7 + }, + { // Entry 169 + -0x1.745d1745d17420p-8, + -0x1.745d1745d1742p-2, + (int)-6 + }, + { // Entry 170 + -0x1.745d1745d17420p-7, + -0x1.745d1745d1742p-2, + (int)-5 + }, + { // Entry 171 + -0x1.745d1745d17420p-6, + -0x1.745d1745d1742p-2, + (int)-4 + }, + { // Entry 172 + -0x1.745d1745d17420p-5, + -0x1.745d1745d1742p-2, + (int)-3 + }, + { // Entry 173 + -0x1.745d1745d17420p-4, + -0x1.745d1745d1742p-2, + (int)-2 + }, + { // Entry 174 + -0x1.745d1745d17420p-3, + -0x1.745d1745d1742p-2, + (int)-1 + }, + { // Entry 175 + -0x1.745d1745d17420p-2, + -0x1.745d1745d1742p-2, + (int)0 + }, + { // Entry 176 + -0x1.745d1745d17420p-1, + -0x1.745d1745d1742p-2, + (int)1 + }, + { // Entry 177 + -0x1.745d1745d17420p0, + -0x1.745d1745d1742p-2, + (int)2 + }, + { // Entry 178 + -0x1.745d1745d17420p1, + -0x1.745d1745d1742p-2, + (int)3 + }, + { // Entry 179 + -0x1.745d1745d17420p2, + -0x1.745d1745d1742p-2, + (int)4 + }, + { // Entry 180 + -0x1.745d1745d17420p3, + -0x1.745d1745d1742p-2, + (int)5 + }, + { // Entry 181 + -0x1.745d1745d17420p4, + -0x1.745d1745d1742p-2, + (int)6 + }, + { // Entry 182 + -0x1.745d1745d17420p5, + -0x1.745d1745d1742p-2, + (int)7 + }, + { // Entry 183 + -0x1.745d1745d17420p6, + -0x1.745d1745d1742p-2, + (int)8 + }, + { // Entry 184 + -0x1.745d1745d17420p7, + -0x1.745d1745d1742p-2, + (int)9 + }, + { // Entry 185 + -0x1.745d1745d17420p8, + -0x1.745d1745d1742p-2, + (int)10 + }, + { // Entry 186 + -0x1.1745d1745d17p-12, + -0x1.1745d1745d170p-2, + (int)-10 + }, + { // Entry 187 + -0x1.1745d1745d17p-11, + -0x1.1745d1745d170p-2, + (int)-9 + }, + { // Entry 188 + -0x1.1745d1745d17p-10, + -0x1.1745d1745d170p-2, + (int)-8 + }, + { // Entry 189 + -0x1.1745d1745d17p-9, + -0x1.1745d1745d170p-2, + (int)-7 + }, + { // Entry 190 + -0x1.1745d1745d17p-8, + -0x1.1745d1745d170p-2, + (int)-6 + }, + { // Entry 191 + -0x1.1745d1745d17p-7, + -0x1.1745d1745d170p-2, + (int)-5 + }, + { // Entry 192 + -0x1.1745d1745d17p-6, + -0x1.1745d1745d170p-2, + (int)-4 + }, + { // Entry 193 + -0x1.1745d1745d17p-5, + -0x1.1745d1745d170p-2, + (int)-3 + }, + { // Entry 194 + -0x1.1745d1745d17p-4, + -0x1.1745d1745d170p-2, + (int)-2 + }, + { // Entry 195 + -0x1.1745d1745d17p-3, + -0x1.1745d1745d170p-2, + (int)-1 + }, + { // Entry 196 + -0x1.1745d1745d17p-2, + -0x1.1745d1745d170p-2, + (int)0 + }, + { // Entry 197 + -0x1.1745d1745d17p-1, + -0x1.1745d1745d170p-2, + (int)1 + }, + { // Entry 198 + -0x1.1745d1745d17p0, + -0x1.1745d1745d170p-2, + (int)2 + }, + { // Entry 199 + -0x1.1745d1745d17p1, + -0x1.1745d1745d170p-2, + (int)3 + }, + { // Entry 200 + -0x1.1745d1745d17p2, + -0x1.1745d1745d170p-2, + (int)4 + }, + { // Entry 201 + -0x1.1745d1745d17p3, + -0x1.1745d1745d170p-2, + (int)5 + }, + { // Entry 202 + -0x1.1745d1745d17p4, + -0x1.1745d1745d170p-2, + (int)6 + }, + { // Entry 203 + -0x1.1745d1745d17p5, + -0x1.1745d1745d170p-2, + (int)7 + }, + { // Entry 204 + -0x1.1745d1745d17p6, + -0x1.1745d1745d170p-2, + (int)8 + }, + { // Entry 205 + -0x1.1745d1745d17p7, + -0x1.1745d1745d170p-2, + (int)9 + }, + { // Entry 206 + -0x1.1745d1745d17p8, + -0x1.1745d1745d170p-2, + (int)10 + }, + { // Entry 207 + -0x1.745d1745d173d0p-13, + -0x1.745d1745d173dp-3, + (int)-10 + }, + { // Entry 208 + -0x1.745d1745d173d0p-12, + -0x1.745d1745d173dp-3, + (int)-9 + }, + { // Entry 209 + -0x1.745d1745d173d0p-11, + -0x1.745d1745d173dp-3, + (int)-8 + }, + { // Entry 210 + -0x1.745d1745d173d0p-10, + -0x1.745d1745d173dp-3, + (int)-7 + }, + { // Entry 211 + -0x1.745d1745d173d0p-9, + -0x1.745d1745d173dp-3, + (int)-6 + }, + { // Entry 212 + -0x1.745d1745d173d0p-8, + -0x1.745d1745d173dp-3, + (int)-5 + }, + { // Entry 213 + -0x1.745d1745d173d0p-7, + -0x1.745d1745d173dp-3, + (int)-4 + }, + { // Entry 214 + -0x1.745d1745d173d0p-6, + -0x1.745d1745d173dp-3, + (int)-3 + }, + { // Entry 215 + -0x1.745d1745d173d0p-5, + -0x1.745d1745d173dp-3, + (int)-2 + }, + { // Entry 216 + -0x1.745d1745d173d0p-4, + -0x1.745d1745d173dp-3, + (int)-1 + }, + { // Entry 217 + -0x1.745d1745d173d0p-3, + -0x1.745d1745d173dp-3, + (int)0 + }, + { // Entry 218 + -0x1.745d1745d173d0p-2, + -0x1.745d1745d173dp-3, + (int)1 + }, + { // Entry 219 + -0x1.745d1745d173d0p-1, + -0x1.745d1745d173dp-3, + (int)2 + }, + { // Entry 220 + -0x1.745d1745d173d0p0, + -0x1.745d1745d173dp-3, + (int)3 + }, + { // Entry 221 + -0x1.745d1745d173d0p1, + -0x1.745d1745d173dp-3, + (int)4 + }, + { // Entry 222 + -0x1.745d1745d173d0p2, + -0x1.745d1745d173dp-3, + (int)5 + }, + { // Entry 223 + -0x1.745d1745d173d0p3, + -0x1.745d1745d173dp-3, + (int)6 + }, + { // Entry 224 + -0x1.745d1745d173d0p4, + -0x1.745d1745d173dp-3, + (int)7 + }, + { // Entry 225 + -0x1.745d1745d173d0p5, + -0x1.745d1745d173dp-3, + (int)8 + }, + { // Entry 226 + -0x1.745d1745d173d0p6, + -0x1.745d1745d173dp-3, + (int)9 + }, + { // Entry 227 + -0x1.745d1745d173d0p7, + -0x1.745d1745d173dp-3, + (int)10 + }, + { // Entry 228 + -0x1.745d1745d17340p-14, + -0x1.745d1745d1734p-4, + (int)-10 + }, + { // Entry 229 + -0x1.745d1745d17340p-13, + -0x1.745d1745d1734p-4, + (int)-9 + }, + { // Entry 230 + -0x1.745d1745d17340p-12, + -0x1.745d1745d1734p-4, + (int)-8 + }, + { // Entry 231 + -0x1.745d1745d17340p-11, + -0x1.745d1745d1734p-4, + (int)-7 + }, + { // Entry 232 + -0x1.745d1745d17340p-10, + -0x1.745d1745d1734p-4, + (int)-6 + }, + { // Entry 233 + -0x1.745d1745d17340p-9, + -0x1.745d1745d1734p-4, + (int)-5 + }, + { // Entry 234 + -0x1.745d1745d17340p-8, + -0x1.745d1745d1734p-4, + (int)-4 + }, + { // Entry 235 + -0x1.745d1745d17340p-7, + -0x1.745d1745d1734p-4, + (int)-3 + }, + { // Entry 236 + -0x1.745d1745d17340p-6, + -0x1.745d1745d1734p-4, + (int)-2 + }, + { // Entry 237 + -0x1.745d1745d17340p-5, + -0x1.745d1745d1734p-4, + (int)-1 + }, + { // Entry 238 + -0x1.745d1745d17340p-4, + -0x1.745d1745d1734p-4, + (int)0 + }, + { // Entry 239 + -0x1.745d1745d17340p-3, + -0x1.745d1745d1734p-4, + (int)1 + }, + { // Entry 240 + -0x1.745d1745d17340p-2, + -0x1.745d1745d1734p-4, + (int)2 + }, + { // Entry 241 + -0x1.745d1745d17340p-1, + -0x1.745d1745d1734p-4, + (int)3 + }, + { // Entry 242 + -0x1.745d1745d17340p0, + -0x1.745d1745d1734p-4, + (int)4 + }, + { // Entry 243 + -0x1.745d1745d17340p1, + -0x1.745d1745d1734p-4, + (int)5 + }, + { // Entry 244 + -0x1.745d1745d17340p2, + -0x1.745d1745d1734p-4, + (int)6 + }, + { // Entry 245 + -0x1.745d1745d17340p3, + -0x1.745d1745d1734p-4, + (int)7 + }, + { // Entry 246 + -0x1.745d1745d17340p4, + -0x1.745d1745d1734p-4, + (int)8 + }, + { // Entry 247 + -0x1.745d1745d17340p5, + -0x1.745d1745d1734p-4, + (int)9 + }, + { // Entry 248 + -0x1.745d1745d17340p6, + -0x1.745d1745d1734p-4, + (int)10 + }, + { // Entry 249 + 0x1.20p-62, + 0x1.2p-52, + (int)-10 + }, + { // Entry 250 + 0x1.20p-61, + 0x1.2p-52, + (int)-9 + }, + { // Entry 251 + 0x1.20p-60, + 0x1.2p-52, + (int)-8 + }, + { // Entry 252 + 0x1.20p-59, + 0x1.2p-52, + (int)-7 + }, + { // Entry 253 + 0x1.20p-58, + 0x1.2p-52, + (int)-6 + }, + { // Entry 254 + 0x1.20p-57, + 0x1.2p-52, + (int)-5 + }, + { // Entry 255 + 0x1.20p-56, + 0x1.2p-52, + (int)-4 + }, + { // Entry 256 + 0x1.20p-55, + 0x1.2p-52, + (int)-3 + }, + { // Entry 257 + 0x1.20p-54, + 0x1.2p-52, + (int)-2 + }, + { // Entry 258 + 0x1.20p-53, + 0x1.2p-52, + (int)-1 + }, + { // Entry 259 + 0x1.20p-52, + 0x1.2p-52, + (int)0 + }, + { // Entry 260 + 0x1.20p-51, + 0x1.2p-52, + (int)1 + }, + { // Entry 261 + 0x1.20p-50, + 0x1.2p-52, + (int)2 + }, + { // Entry 262 + 0x1.20p-49, + 0x1.2p-52, + (int)3 + }, + { // Entry 263 + 0x1.20p-48, + 0x1.2p-52, + (int)4 + }, + { // Entry 264 + 0x1.20p-47, + 0x1.2p-52, + (int)5 + }, + { // Entry 265 + 0x1.20p-46, + 0x1.2p-52, + (int)6 + }, + { // Entry 266 + 0x1.20p-45, + 0x1.2p-52, + (int)7 + }, + { // Entry 267 + 0x1.20p-44, + 0x1.2p-52, + (int)8 + }, + { // Entry 268 + 0x1.20p-43, + 0x1.2p-52, + (int)9 + }, + { // Entry 269 + 0x1.20p-42, + 0x1.2p-52, + (int)10 + }, + { // Entry 270 + 0x1.745d1745d17580p-14, + 0x1.745d1745d1758p-4, + (int)-10 + }, + { // Entry 271 + 0x1.745d1745d17580p-13, + 0x1.745d1745d1758p-4, + (int)-9 + }, + { // Entry 272 + 0x1.745d1745d17580p-12, + 0x1.745d1745d1758p-4, + (int)-8 + }, + { // Entry 273 + 0x1.745d1745d17580p-11, + 0x1.745d1745d1758p-4, + (int)-7 + }, + { // Entry 274 + 0x1.745d1745d17580p-10, + 0x1.745d1745d1758p-4, + (int)-6 + }, + { // Entry 275 + 0x1.745d1745d17580p-9, + 0x1.745d1745d1758p-4, + (int)-5 + }, + { // Entry 276 + 0x1.745d1745d17580p-8, + 0x1.745d1745d1758p-4, + (int)-4 + }, + { // Entry 277 + 0x1.745d1745d17580p-7, + 0x1.745d1745d1758p-4, + (int)-3 + }, + { // Entry 278 + 0x1.745d1745d17580p-6, + 0x1.745d1745d1758p-4, + (int)-2 + }, + { // Entry 279 + 0x1.745d1745d17580p-5, + 0x1.745d1745d1758p-4, + (int)-1 + }, + { // Entry 280 + 0x1.745d1745d17580p-4, + 0x1.745d1745d1758p-4, + (int)0 + }, + { // Entry 281 + 0x1.745d1745d17580p-3, + 0x1.745d1745d1758p-4, + (int)1 + }, + { // Entry 282 + 0x1.745d1745d17580p-2, + 0x1.745d1745d1758p-4, + (int)2 + }, + { // Entry 283 + 0x1.745d1745d17580p-1, + 0x1.745d1745d1758p-4, + (int)3 + }, + { // Entry 284 + 0x1.745d1745d17580p0, + 0x1.745d1745d1758p-4, + (int)4 + }, + { // Entry 285 + 0x1.745d1745d17580p1, + 0x1.745d1745d1758p-4, + (int)5 + }, + { // Entry 286 + 0x1.745d1745d17580p2, + 0x1.745d1745d1758p-4, + (int)6 + }, + { // Entry 287 + 0x1.745d1745d17580p3, + 0x1.745d1745d1758p-4, + (int)7 + }, + { // Entry 288 + 0x1.745d1745d17580p4, + 0x1.745d1745d1758p-4, + (int)8 + }, + { // Entry 289 + 0x1.745d1745d17580p5, + 0x1.745d1745d1758p-4, + (int)9 + }, + { // Entry 290 + 0x1.745d1745d17580p6, + 0x1.745d1745d1758p-4, + (int)10 + }, + { // Entry 291 + 0x1.745d1745d174f0p-13, + 0x1.745d1745d174fp-3, + (int)-10 + }, + { // Entry 292 + 0x1.745d1745d174f0p-12, + 0x1.745d1745d174fp-3, + (int)-9 + }, + { // Entry 293 + 0x1.745d1745d174f0p-11, + 0x1.745d1745d174fp-3, + (int)-8 + }, + { // Entry 294 + 0x1.745d1745d174f0p-10, + 0x1.745d1745d174fp-3, + (int)-7 + }, + { // Entry 295 + 0x1.745d1745d174f0p-9, + 0x1.745d1745d174fp-3, + (int)-6 + }, + { // Entry 296 + 0x1.745d1745d174f0p-8, + 0x1.745d1745d174fp-3, + (int)-5 + }, + { // Entry 297 + 0x1.745d1745d174f0p-7, + 0x1.745d1745d174fp-3, + (int)-4 + }, + { // Entry 298 + 0x1.745d1745d174f0p-6, + 0x1.745d1745d174fp-3, + (int)-3 + }, + { // Entry 299 + 0x1.745d1745d174f0p-5, + 0x1.745d1745d174fp-3, + (int)-2 + }, + { // Entry 300 + 0x1.745d1745d174f0p-4, + 0x1.745d1745d174fp-3, + (int)-1 + }, + { // Entry 301 + 0x1.745d1745d174f0p-3, + 0x1.745d1745d174fp-3, + (int)0 + }, + { // Entry 302 + 0x1.745d1745d174f0p-2, + 0x1.745d1745d174fp-3, + (int)1 + }, + { // Entry 303 + 0x1.745d1745d174f0p-1, + 0x1.745d1745d174fp-3, + (int)2 + }, + { // Entry 304 + 0x1.745d1745d174f0p0, + 0x1.745d1745d174fp-3, + (int)3 + }, + { // Entry 305 + 0x1.745d1745d174f0p1, + 0x1.745d1745d174fp-3, + (int)4 + }, + { // Entry 306 + 0x1.745d1745d174f0p2, + 0x1.745d1745d174fp-3, + (int)5 + }, + { // Entry 307 + 0x1.745d1745d174f0p3, + 0x1.745d1745d174fp-3, + (int)6 + }, + { // Entry 308 + 0x1.745d1745d174f0p4, + 0x1.745d1745d174fp-3, + (int)7 + }, + { // Entry 309 + 0x1.745d1745d174f0p5, + 0x1.745d1745d174fp-3, + (int)8 + }, + { // Entry 310 + 0x1.745d1745d174f0p6, + 0x1.745d1745d174fp-3, + (int)9 + }, + { // Entry 311 + 0x1.745d1745d174f0p7, + 0x1.745d1745d174fp-3, + (int)10 + }, + { // Entry 312 + 0x1.1745d1745d1790p-12, + 0x1.1745d1745d179p-2, + (int)-10 + }, + { // Entry 313 + 0x1.1745d1745d1790p-11, + 0x1.1745d1745d179p-2, + (int)-9 + }, + { // Entry 314 + 0x1.1745d1745d1790p-10, + 0x1.1745d1745d179p-2, + (int)-8 + }, + { // Entry 315 + 0x1.1745d1745d1790p-9, + 0x1.1745d1745d179p-2, + (int)-7 + }, + { // Entry 316 + 0x1.1745d1745d1790p-8, + 0x1.1745d1745d179p-2, + (int)-6 + }, + { // Entry 317 + 0x1.1745d1745d1790p-7, + 0x1.1745d1745d179p-2, + (int)-5 + }, + { // Entry 318 + 0x1.1745d1745d1790p-6, + 0x1.1745d1745d179p-2, + (int)-4 + }, + { // Entry 319 + 0x1.1745d1745d1790p-5, + 0x1.1745d1745d179p-2, + (int)-3 + }, + { // Entry 320 + 0x1.1745d1745d1790p-4, + 0x1.1745d1745d179p-2, + (int)-2 + }, + { // Entry 321 + 0x1.1745d1745d1790p-3, + 0x1.1745d1745d179p-2, + (int)-1 + }, + { // Entry 322 + 0x1.1745d1745d1790p-2, + 0x1.1745d1745d179p-2, + (int)0 + }, + { // Entry 323 + 0x1.1745d1745d1790p-1, + 0x1.1745d1745d179p-2, + (int)1 + }, + { // Entry 324 + 0x1.1745d1745d1790p0, + 0x1.1745d1745d179p-2, + (int)2 + }, + { // Entry 325 + 0x1.1745d1745d1790p1, + 0x1.1745d1745d179p-2, + (int)3 + }, + { // Entry 326 + 0x1.1745d1745d1790p2, + 0x1.1745d1745d179p-2, + (int)4 + }, + { // Entry 327 + 0x1.1745d1745d1790p3, + 0x1.1745d1745d179p-2, + (int)5 + }, + { // Entry 328 + 0x1.1745d1745d1790p4, + 0x1.1745d1745d179p-2, + (int)6 + }, + { // Entry 329 + 0x1.1745d1745d1790p5, + 0x1.1745d1745d179p-2, + (int)7 + }, + { // Entry 330 + 0x1.1745d1745d1790p6, + 0x1.1745d1745d179p-2, + (int)8 + }, + { // Entry 331 + 0x1.1745d1745d1790p7, + 0x1.1745d1745d179p-2, + (int)9 + }, + { // Entry 332 + 0x1.1745d1745d1790p8, + 0x1.1745d1745d179p-2, + (int)10 + }, + { // Entry 333 + 0x1.745d1745d174a0p-12, + 0x1.745d1745d174ap-2, + (int)-10 + }, + { // Entry 334 + 0x1.745d1745d174a0p-11, + 0x1.745d1745d174ap-2, + (int)-9 + }, + { // Entry 335 + 0x1.745d1745d174a0p-10, + 0x1.745d1745d174ap-2, + (int)-8 + }, + { // Entry 336 + 0x1.745d1745d174a0p-9, + 0x1.745d1745d174ap-2, + (int)-7 + }, + { // Entry 337 + 0x1.745d1745d174a0p-8, + 0x1.745d1745d174ap-2, + (int)-6 + }, + { // Entry 338 + 0x1.745d1745d174a0p-7, + 0x1.745d1745d174ap-2, + (int)-5 + }, + { // Entry 339 + 0x1.745d1745d174a0p-6, + 0x1.745d1745d174ap-2, + (int)-4 + }, + { // Entry 340 + 0x1.745d1745d174a0p-5, + 0x1.745d1745d174ap-2, + (int)-3 + }, + { // Entry 341 + 0x1.745d1745d174a0p-4, + 0x1.745d1745d174ap-2, + (int)-2 + }, + { // Entry 342 + 0x1.745d1745d174a0p-3, + 0x1.745d1745d174ap-2, + (int)-1 + }, + { // Entry 343 + 0x1.745d1745d174a0p-2, + 0x1.745d1745d174ap-2, + (int)0 + }, + { // Entry 344 + 0x1.745d1745d174a0p-1, + 0x1.745d1745d174ap-2, + (int)1 + }, + { // Entry 345 + 0x1.745d1745d174a0p0, + 0x1.745d1745d174ap-2, + (int)2 + }, + { // Entry 346 + 0x1.745d1745d174a0p1, + 0x1.745d1745d174ap-2, + (int)3 + }, + { // Entry 347 + 0x1.745d1745d174a0p2, + 0x1.745d1745d174ap-2, + (int)4 + }, + { // Entry 348 + 0x1.745d1745d174a0p3, + 0x1.745d1745d174ap-2, + (int)5 + }, + { // Entry 349 + 0x1.745d1745d174a0p4, + 0x1.745d1745d174ap-2, + (int)6 + }, + { // Entry 350 + 0x1.745d1745d174a0p5, + 0x1.745d1745d174ap-2, + (int)7 + }, + { // Entry 351 + 0x1.745d1745d174a0p6, + 0x1.745d1745d174ap-2, + (int)8 + }, + { // Entry 352 + 0x1.745d1745d174a0p7, + 0x1.745d1745d174ap-2, + (int)9 + }, + { // Entry 353 + 0x1.745d1745d174a0p8, + 0x1.745d1745d174ap-2, + (int)10 + }, + { // Entry 354 + 0x1.d1745d1745d1c0p-12, + 0x1.d1745d1745d1cp-2, + (int)-10 + }, + { // Entry 355 + 0x1.d1745d1745d1c0p-11, + 0x1.d1745d1745d1cp-2, + (int)-9 + }, + { // Entry 356 + 0x1.d1745d1745d1c0p-10, + 0x1.d1745d1745d1cp-2, + (int)-8 + }, + { // Entry 357 + 0x1.d1745d1745d1c0p-9, + 0x1.d1745d1745d1cp-2, + (int)-7 + }, + { // Entry 358 + 0x1.d1745d1745d1c0p-8, + 0x1.d1745d1745d1cp-2, + (int)-6 + }, + { // Entry 359 + 0x1.d1745d1745d1c0p-7, + 0x1.d1745d1745d1cp-2, + (int)-5 + }, + { // Entry 360 + 0x1.d1745d1745d1c0p-6, + 0x1.d1745d1745d1cp-2, + (int)-4 + }, + { // Entry 361 + 0x1.d1745d1745d1c0p-5, + 0x1.d1745d1745d1cp-2, + (int)-3 + }, + { // Entry 362 + 0x1.d1745d1745d1c0p-4, + 0x1.d1745d1745d1cp-2, + (int)-2 + }, + { // Entry 363 + 0x1.d1745d1745d1c0p-3, + 0x1.d1745d1745d1cp-2, + (int)-1 + }, + { // Entry 364 + 0x1.d1745d1745d1c0p-2, + 0x1.d1745d1745d1cp-2, + (int)0 + }, + { // Entry 365 + 0x1.d1745d1745d1c0p-1, + 0x1.d1745d1745d1cp-2, + (int)1 + }, + { // Entry 366 + 0x1.d1745d1745d1c0p0, + 0x1.d1745d1745d1cp-2, + (int)2 + }, + { // Entry 367 + 0x1.d1745d1745d1c0p1, + 0x1.d1745d1745d1cp-2, + (int)3 + }, + { // Entry 368 + 0x1.d1745d1745d1c0p2, + 0x1.d1745d1745d1cp-2, + (int)4 + }, + { // Entry 369 + 0x1.d1745d1745d1c0p3, + 0x1.d1745d1745d1cp-2, + (int)5 + }, + { // Entry 370 + 0x1.d1745d1745d1c0p4, + 0x1.d1745d1745d1cp-2, + (int)6 + }, + { // Entry 371 + 0x1.d1745d1745d1c0p5, + 0x1.d1745d1745d1cp-2, + (int)7 + }, + { // Entry 372 + 0x1.d1745d1745d1c0p6, + 0x1.d1745d1745d1cp-2, + (int)8 + }, + { // Entry 373 + 0x1.d1745d1745d1c0p7, + 0x1.d1745d1745d1cp-2, + (int)9 + }, + { // Entry 374 + 0x1.d1745d1745d1c0p8, + 0x1.d1745d1745d1cp-2, + (int)10 + }, + { // Entry 375 + 0x1.1745d1745d1770p-11, + 0x1.1745d1745d177p-1, + (int)-10 + }, + { // Entry 376 + 0x1.1745d1745d1770p-10, + 0x1.1745d1745d177p-1, + (int)-9 + }, + { // Entry 377 + 0x1.1745d1745d1770p-9, + 0x1.1745d1745d177p-1, + (int)-8 + }, + { // Entry 378 + 0x1.1745d1745d1770p-8, + 0x1.1745d1745d177p-1, + (int)-7 + }, + { // Entry 379 + 0x1.1745d1745d1770p-7, + 0x1.1745d1745d177p-1, + (int)-6 + }, + { // Entry 380 + 0x1.1745d1745d1770p-6, + 0x1.1745d1745d177p-1, + (int)-5 + }, + { // Entry 381 + 0x1.1745d1745d1770p-5, + 0x1.1745d1745d177p-1, + (int)-4 + }, + { // Entry 382 + 0x1.1745d1745d1770p-4, + 0x1.1745d1745d177p-1, + (int)-3 + }, + { // Entry 383 + 0x1.1745d1745d1770p-3, + 0x1.1745d1745d177p-1, + (int)-2 + }, + { // Entry 384 + 0x1.1745d1745d1770p-2, + 0x1.1745d1745d177p-1, + (int)-1 + }, + { // Entry 385 + 0x1.1745d1745d1770p-1, + 0x1.1745d1745d177p-1, + (int)0 + }, + { // Entry 386 + 0x1.1745d1745d1770p0, + 0x1.1745d1745d177p-1, + (int)1 + }, + { // Entry 387 + 0x1.1745d1745d1770p1, + 0x1.1745d1745d177p-1, + (int)2 + }, + { // Entry 388 + 0x1.1745d1745d1770p2, + 0x1.1745d1745d177p-1, + (int)3 + }, + { // Entry 389 + 0x1.1745d1745d1770p3, + 0x1.1745d1745d177p-1, + (int)4 + }, + { // Entry 390 + 0x1.1745d1745d1770p4, + 0x1.1745d1745d177p-1, + (int)5 + }, + { // Entry 391 + 0x1.1745d1745d1770p5, + 0x1.1745d1745d177p-1, + (int)6 + }, + { // Entry 392 + 0x1.1745d1745d1770p6, + 0x1.1745d1745d177p-1, + (int)7 + }, + { // Entry 393 + 0x1.1745d1745d1770p7, + 0x1.1745d1745d177p-1, + (int)8 + }, + { // Entry 394 + 0x1.1745d1745d1770p8, + 0x1.1745d1745d177p-1, + (int)9 + }, + { // Entry 395 + 0x1.1745d1745d1770p9, + 0x1.1745d1745d177p-1, + (int)10 + }, + { // Entry 396 + 0x1.45d1745d1746p-11, + 0x1.45d1745d17460p-1, + (int)-10 + }, + { // Entry 397 + 0x1.45d1745d1746p-10, + 0x1.45d1745d17460p-1, + (int)-9 + }, + { // Entry 398 + 0x1.45d1745d1746p-9, + 0x1.45d1745d17460p-1, + (int)-8 + }, + { // Entry 399 + 0x1.45d1745d1746p-8, + 0x1.45d1745d17460p-1, + (int)-7 + }, + { // Entry 400 + 0x1.45d1745d1746p-7, + 0x1.45d1745d17460p-1, + (int)-6 + }, + { // Entry 401 + 0x1.45d1745d1746p-6, + 0x1.45d1745d17460p-1, + (int)-5 + }, + { // Entry 402 + 0x1.45d1745d1746p-5, + 0x1.45d1745d17460p-1, + (int)-4 + }, + { // Entry 403 + 0x1.45d1745d1746p-4, + 0x1.45d1745d17460p-1, + (int)-3 + }, + { // Entry 404 + 0x1.45d1745d1746p-3, + 0x1.45d1745d17460p-1, + (int)-2 + }, + { // Entry 405 + 0x1.45d1745d1746p-2, + 0x1.45d1745d17460p-1, + (int)-1 + }, + { // Entry 406 + 0x1.45d1745d1746p-1, + 0x1.45d1745d17460p-1, + (int)0 + }, + { // Entry 407 + 0x1.45d1745d1746p0, + 0x1.45d1745d17460p-1, + (int)1 + }, + { // Entry 408 + 0x1.45d1745d1746p1, + 0x1.45d1745d17460p-1, + (int)2 + }, + { // Entry 409 + 0x1.45d1745d1746p2, + 0x1.45d1745d17460p-1, + (int)3 + }, + { // Entry 410 + 0x1.45d1745d1746p3, + 0x1.45d1745d17460p-1, + (int)4 + }, + { // Entry 411 + 0x1.45d1745d1746p4, + 0x1.45d1745d17460p-1, + (int)5 + }, + { // Entry 412 + 0x1.45d1745d1746p5, + 0x1.45d1745d17460p-1, + (int)6 + }, + { // Entry 413 + 0x1.45d1745d1746p6, + 0x1.45d1745d17460p-1, + (int)7 + }, + { // Entry 414 + 0x1.45d1745d1746p7, + 0x1.45d1745d17460p-1, + (int)8 + }, + { // Entry 415 + 0x1.45d1745d1746p8, + 0x1.45d1745d17460p-1, + (int)9 + }, + { // Entry 416 + 0x1.45d1745d1746p9, + 0x1.45d1745d17460p-1, + (int)10 + }, + { // Entry 417 + 0x1.745d1745d17490p-11, + 0x1.745d1745d1749p-1, + (int)-10 + }, + { // Entry 418 + 0x1.745d1745d17490p-10, + 0x1.745d1745d1749p-1, + (int)-9 + }, + { // Entry 419 + 0x1.745d1745d17490p-9, + 0x1.745d1745d1749p-1, + (int)-8 + }, + { // Entry 420 + 0x1.745d1745d17490p-8, + 0x1.745d1745d1749p-1, + (int)-7 + }, + { // Entry 421 + 0x1.745d1745d17490p-7, + 0x1.745d1745d1749p-1, + (int)-6 + }, + { // Entry 422 + 0x1.745d1745d17490p-6, + 0x1.745d1745d1749p-1, + (int)-5 + }, + { // Entry 423 + 0x1.745d1745d17490p-5, + 0x1.745d1745d1749p-1, + (int)-4 + }, + { // Entry 424 + 0x1.745d1745d17490p-4, + 0x1.745d1745d1749p-1, + (int)-3 + }, + { // Entry 425 + 0x1.745d1745d17490p-3, + 0x1.745d1745d1749p-1, + (int)-2 + }, + { // Entry 426 + 0x1.745d1745d17490p-2, + 0x1.745d1745d1749p-1, + (int)-1 + }, + { // Entry 427 + 0x1.745d1745d17490p-1, + 0x1.745d1745d1749p-1, + (int)0 + }, + { // Entry 428 + 0x1.745d1745d17490p0, + 0x1.745d1745d1749p-1, + (int)1 + }, + { // Entry 429 + 0x1.745d1745d17490p1, + 0x1.745d1745d1749p-1, + (int)2 + }, + { // Entry 430 + 0x1.745d1745d17490p2, + 0x1.745d1745d1749p-1, + (int)3 + }, + { // Entry 431 + 0x1.745d1745d17490p3, + 0x1.745d1745d1749p-1, + (int)4 + }, + { // Entry 432 + 0x1.745d1745d17490p4, + 0x1.745d1745d1749p-1, + (int)5 + }, + { // Entry 433 + 0x1.745d1745d17490p5, + 0x1.745d1745d1749p-1, + (int)6 + }, + { // Entry 434 + 0x1.745d1745d17490p6, + 0x1.745d1745d1749p-1, + (int)7 + }, + { // Entry 435 + 0x1.745d1745d17490p7, + 0x1.745d1745d1749p-1, + (int)8 + }, + { // Entry 436 + 0x1.745d1745d17490p8, + 0x1.745d1745d1749p-1, + (int)9 + }, + { // Entry 437 + 0x1.745d1745d17490p9, + 0x1.745d1745d1749p-1, + (int)10 + }, + { // Entry 438 + 0x1.a2e8ba2e8ba320p-11, + 0x1.a2e8ba2e8ba32p-1, + (int)-10 + }, + { // Entry 439 + 0x1.a2e8ba2e8ba320p-10, + 0x1.a2e8ba2e8ba32p-1, + (int)-9 + }, + { // Entry 440 + 0x1.a2e8ba2e8ba320p-9, + 0x1.a2e8ba2e8ba32p-1, + (int)-8 + }, + { // Entry 441 + 0x1.a2e8ba2e8ba320p-8, + 0x1.a2e8ba2e8ba32p-1, + (int)-7 + }, + { // Entry 442 + 0x1.a2e8ba2e8ba320p-7, + 0x1.a2e8ba2e8ba32p-1, + (int)-6 + }, + { // Entry 443 + 0x1.a2e8ba2e8ba320p-6, + 0x1.a2e8ba2e8ba32p-1, + (int)-5 + }, + { // Entry 444 + 0x1.a2e8ba2e8ba320p-5, + 0x1.a2e8ba2e8ba32p-1, + (int)-4 + }, + { // Entry 445 + 0x1.a2e8ba2e8ba320p-4, + 0x1.a2e8ba2e8ba32p-1, + (int)-3 + }, + { // Entry 446 + 0x1.a2e8ba2e8ba320p-3, + 0x1.a2e8ba2e8ba32p-1, + (int)-2 + }, + { // Entry 447 + 0x1.a2e8ba2e8ba320p-2, + 0x1.a2e8ba2e8ba32p-1, + (int)-1 + }, + { // Entry 448 + 0x1.a2e8ba2e8ba320p-1, + 0x1.a2e8ba2e8ba32p-1, + (int)0 + }, + { // Entry 449 + 0x1.a2e8ba2e8ba320p0, + 0x1.a2e8ba2e8ba32p-1, + (int)1 + }, + { // Entry 450 + 0x1.a2e8ba2e8ba320p1, + 0x1.a2e8ba2e8ba32p-1, + (int)2 + }, + { // Entry 451 + 0x1.a2e8ba2e8ba320p2, + 0x1.a2e8ba2e8ba32p-1, + (int)3 + }, + { // Entry 452 + 0x1.a2e8ba2e8ba320p3, + 0x1.a2e8ba2e8ba32p-1, + (int)4 + }, + { // Entry 453 + 0x1.a2e8ba2e8ba320p4, + 0x1.a2e8ba2e8ba32p-1, + (int)5 + }, + { // Entry 454 + 0x1.a2e8ba2e8ba320p5, + 0x1.a2e8ba2e8ba32p-1, + (int)6 + }, + { // Entry 455 + 0x1.a2e8ba2e8ba320p6, + 0x1.a2e8ba2e8ba32p-1, + (int)7 + }, + { // Entry 456 + 0x1.a2e8ba2e8ba320p7, + 0x1.a2e8ba2e8ba32p-1, + (int)8 + }, + { // Entry 457 + 0x1.a2e8ba2e8ba320p8, + 0x1.a2e8ba2e8ba32p-1, + (int)9 + }, + { // Entry 458 + 0x1.a2e8ba2e8ba320p9, + 0x1.a2e8ba2e8ba32p-1, + (int)10 + }, + { // Entry 459 + 0x1.d1745d1745d1b0p-11, + 0x1.d1745d1745d1bp-1, + (int)-10 + }, + { // Entry 460 + 0x1.d1745d1745d1b0p-10, + 0x1.d1745d1745d1bp-1, + (int)-9 + }, + { // Entry 461 + 0x1.d1745d1745d1b0p-9, + 0x1.d1745d1745d1bp-1, + (int)-8 + }, + { // Entry 462 + 0x1.d1745d1745d1b0p-8, + 0x1.d1745d1745d1bp-1, + (int)-7 + }, + { // Entry 463 + 0x1.d1745d1745d1b0p-7, + 0x1.d1745d1745d1bp-1, + (int)-6 + }, + { // Entry 464 + 0x1.d1745d1745d1b0p-6, + 0x1.d1745d1745d1bp-1, + (int)-5 + }, + { // Entry 465 + 0x1.d1745d1745d1b0p-5, + 0x1.d1745d1745d1bp-1, + (int)-4 + }, + { // Entry 466 + 0x1.d1745d1745d1b0p-4, + 0x1.d1745d1745d1bp-1, + (int)-3 + }, + { // Entry 467 + 0x1.d1745d1745d1b0p-3, + 0x1.d1745d1745d1bp-1, + (int)-2 + }, + { // Entry 468 + 0x1.d1745d1745d1b0p-2, + 0x1.d1745d1745d1bp-1, + (int)-1 + }, + { // Entry 469 + 0x1.d1745d1745d1b0p-1, + 0x1.d1745d1745d1bp-1, + (int)0 + }, + { // Entry 470 + 0x1.d1745d1745d1b0p0, + 0x1.d1745d1745d1bp-1, + (int)1 + }, + { // Entry 471 + 0x1.d1745d1745d1b0p1, + 0x1.d1745d1745d1bp-1, + (int)2 + }, + { // Entry 472 + 0x1.d1745d1745d1b0p2, + 0x1.d1745d1745d1bp-1, + (int)3 + }, + { // Entry 473 + 0x1.d1745d1745d1b0p3, + 0x1.d1745d1745d1bp-1, + (int)4 + }, + { // Entry 474 + 0x1.d1745d1745d1b0p4, + 0x1.d1745d1745d1bp-1, + (int)5 + }, + { // Entry 475 + 0x1.d1745d1745d1b0p5, + 0x1.d1745d1745d1bp-1, + (int)6 + }, + { // Entry 476 + 0x1.d1745d1745d1b0p6, + 0x1.d1745d1745d1bp-1, + (int)7 + }, + { // Entry 477 + 0x1.d1745d1745d1b0p7, + 0x1.d1745d1745d1bp-1, + (int)8 + }, + { // Entry 478 + 0x1.d1745d1745d1b0p8, + 0x1.d1745d1745d1bp-1, + (int)9 + }, + { // Entry 479 + 0x1.d1745d1745d1b0p9, + 0x1.d1745d1745d1bp-1, + (int)10 + }, + { // Entry 480 + 0x1.p-10, + 0x1.0p0, + (int)-10 + }, + { // Entry 481 + 0x1.p-9, + 0x1.0p0, + (int)-9 + }, + { // Entry 482 + 0x1.p-8, + 0x1.0p0, + (int)-8 + }, + { // Entry 483 + 0x1.p-7, + 0x1.0p0, + (int)-7 + }, + { // Entry 484 + 0x1.p-6, + 0x1.0p0, + (int)-6 + }, + { // Entry 485 + 0x1.p-5, + 0x1.0p0, + (int)-5 + }, + { // Entry 486 + 0x1.p-4, + 0x1.0p0, + (int)-4 + }, + { // Entry 487 + 0x1.p-3, + 0x1.0p0, + (int)-3 + }, + { // Entry 488 + 0x1.p-2, + 0x1.0p0, + (int)-2 + }, + { // Entry 489 + 0x1.p-1, + 0x1.0p0, + (int)-1 + }, + { // Entry 490 + 0x1.p0, + 0x1.0p0, + (int)0 + }, + { // Entry 491 + 0x1.p1, + 0x1.0p0, + (int)1 + }, + { // Entry 492 + 0x1.p2, + 0x1.0p0, + (int)2 + }, + { // Entry 493 + 0x1.p3, + 0x1.0p0, + (int)3 + }, + { // Entry 494 + 0x1.p4, + 0x1.0p0, + (int)4 + }, + { // Entry 495 + 0x1.p5, + 0x1.0p0, + (int)5 + }, + { // Entry 496 + 0x1.p6, + 0x1.0p0, + (int)6 + }, + { // Entry 497 + 0x1.p7, + 0x1.0p0, + (int)7 + }, + { // Entry 498 + 0x1.p8, + 0x1.0p0, + (int)8 + }, + { // Entry 499 + 0x1.p9, + 0x1.0p0, + (int)9 + }, + { // Entry 500 + 0x1.p10, + 0x1.0p0, + (int)10 + }, + { // Entry 501 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp1023, + (int)-1023 + }, + { // Entry 502 + 0x1.fffffffffffff0p1, + 0x1.fffffffffffffp1023, + (int)-1022 + }, + { // Entry 503 + 0x1.fffffffffffff0p23, + 0x1.fffffffffffffp1023, + (int)-1000 + }, + { // Entry 504 + 0x1.fffffffffffff0p24, + 0x1.fffffffffffffp1023, + (int)-999 + }, + { // Entry 505 + 0x1.fffffffffffff0p1013, + 0x1.fffffffffffffp1023, + (int)-10 + }, + { // Entry 506 + 0x1.fffffffffffff0p1014, + 0x1.fffffffffffffp1023, + (int)-9 + }, + { // Entry 507 + 0x1.fffffffffffff0p1015, + 0x1.fffffffffffffp1023, + (int)-8 + }, + { // Entry 508 + 0x1.fffffffffffff0p1016, + 0x1.fffffffffffffp1023, + (int)-7 + }, + { // Entry 509 + 0x1.fffffffffffff0p1017, + 0x1.fffffffffffffp1023, + (int)-6 + }, + { // Entry 510 + 0x1.fffffffffffff0p1018, + 0x1.fffffffffffffp1023, + (int)-5 + }, + { // Entry 511 + 0x1.fffffffffffff0p1019, + 0x1.fffffffffffffp1023, + (int)-4 + }, + { // Entry 512 + 0x1.fffffffffffff0p1020, + 0x1.fffffffffffffp1023, + (int)-3 + }, + { // Entry 513 + 0x1.fffffffffffff0p1021, + 0x1.fffffffffffffp1023, + (int)-2 + }, + { // Entry 514 + 0x1.fffffffffffff0p1022, + 0x1.fffffffffffffp1023, + (int)-1 + }, + { // Entry 515 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + (int)0 + }, + { // Entry 516 + 0x1.p-51, + 0x1.0p-1074, + (int)1023 + }, + { // Entry 517 + 0x1.p-52, + 0x1.0p-1074, + (int)1022 + }, + { // Entry 518 + 0x1.p-74, + 0x1.0p-1074, + (int)1000 + }, + { // Entry 519 + 0x1.p-75, + 0x1.0p-1074, + (int)999 + }, + { // Entry 520 + 0x1.p-1074, + 0x1.0p-1074, + (int)0 + }, + { // Entry 521 + 0x1.p-1073, + 0x1.0p-1074, + (int)1 + }, + { // Entry 522 + 0x1.p-1072, + 0x1.0p-1074, + (int)2 + }, + { // Entry 523 + 0x1.p-1071, + 0x1.0p-1074, + (int)3 + }, + { // Entry 524 + 0x1.p-1070, + 0x1.0p-1074, + (int)4 + }, + { // Entry 525 + 0x1.p-1069, + 0x1.0p-1074, + (int)5 + }, + { // Entry 526 + 0x1.p-1068, + 0x1.0p-1074, + (int)6 + }, + { // Entry 527 + 0x1.p-1067, + 0x1.0p-1074, + (int)7 + }, + { // Entry 528 + 0x1.p-1066, + 0x1.0p-1074, + (int)8 + }, + { // Entry 529 + 0x1.p-1065, + 0x1.0p-1074, + (int)9 + }, + { // Entry 530 + 0x1.p-1064, + 0x1.0p-1074, + (int)10 + }, + { // Entry 531 + 0x1.p-1025, + 0x1.0p-2, + (int)-1023 + }, + { // Entry 532 + 0x1.p-1024, + 0x1.0p-2, + (int)-1022 + }, + { // Entry 533 + 0x1.p-1024, + 0x1.0p-1, + (int)-1023 + }, + { // Entry 534 + 0x1.p-1023, + 0x1.0p-1, + (int)-1022 + }, + { // Entry 535 + 0x1.80p-1024, + 0x1.8p-1, + (int)-1023 + }, + { // Entry 536 + 0x1.80p-1023, + 0x1.8p-1, + (int)-1022 + }, + { // Entry 537 + 0.0, + 0x1.0p-2, + (int)-1074 + }, + { // Entry 538 + 0.0, + 0x1.0p-2, + (int)-1073 + }, + { // Entry 539 + 0.0, + 0x1.0p-1, + (int)-1074 + }, + { // Entry 540 + 0x1.p-1074, + 0x1.0p-1, + (int)-1073 + }, + { // Entry 541 + 0.0, + 0x1.8p-1, + (int)-1074 + }, + { // Entry 542 + 0x1.80p-1074, + 0x1.8p-1, + (int)-1073 + }, + { // Entry 543 + 0x1.p1023, + 0x1.0p0, + (int)1023 + }, + { // Entry 544 + 0x1.p1022, + 0x1.0p0, + (int)1022 + }, + { // Entry 545 + 0x1.p-1074, + 0x1.0p-1074, + (int)0 + }, + { // Entry 546 + 0x1.p-1073, + 0x1.0p-1074, + (int)1 + }, + { // Entry 547 + 0x1.p-1072, + 0x1.0p-1074, + (int)2 + }, + { // Entry 548 + 0x1.p-1071, + 0x1.0p-1074, + (int)3 + }, + { // Entry 549 + 0x1.p-1070, + 0x1.0p-1074, + (int)4 + }, + { // Entry 550 + 0x1.p-1069, + 0x1.0p-1074, + (int)5 + }, + { // Entry 551 + 0x1.p-1068, + 0x1.0p-1074, + (int)6 + }, + { // Entry 552 + 0x1.p-1067, + 0x1.0p-1074, + (int)7 + }, + { // Entry 553 + 0x1.p-1066, + 0x1.0p-1074, + (int)8 + }, + { // Entry 554 + 0x1.p-1065, + 0x1.0p-1074, + (int)9 + }, + { // Entry 555 + 0x1.p-1064, + 0x1.0p-1074, + (int)10 + }, + { // Entry 556 + 0x1.p-1063, + 0x1.0p-1074, + (int)11 + }, + { // Entry 557 + 0x1.p-1062, + 0x1.0p-1074, + (int)12 + }, + { // Entry 558 + 0x1.p-1061, + 0x1.0p-1074, + (int)13 + }, + { // Entry 559 + 0x1.p-1060, + 0x1.0p-1074, + (int)14 + }, + { // Entry 560 + 0x1.p-1059, + 0x1.0p-1074, + (int)15 + }, + { // Entry 561 + 0x1.p-1058, + 0x1.0p-1074, + (int)16 + }, + { // Entry 562 + 0x1.p-1057, + 0x1.0p-1074, + (int)17 + }, + { // Entry 563 + 0x1.p-1056, + 0x1.0p-1074, + (int)18 + }, + { // Entry 564 + 0x1.p-1055, + 0x1.0p-1074, + (int)19 + }, + { // Entry 565 + 0x1.p-1054, + 0x1.0p-1074, + (int)20 + }, + { // Entry 566 + 0x1.p-1053, + 0x1.0p-1074, + (int)21 + }, + { // Entry 567 + 0x1.p-1052, + 0x1.0p-1074, + (int)22 + }, + { // Entry 568 + 0x1.p-1051, + 0x1.0p-1074, + (int)23 + }, + { // Entry 569 + 0x1.p-1050, + 0x1.0p-1074, + (int)24 + }, + { // Entry 570 + 0x1.p-1049, + 0x1.0p-1074, + (int)25 + }, + { // Entry 571 + 0x1.p-1048, + 0x1.0p-1074, + (int)26 + }, + { // Entry 572 + 0x1.p-1047, + 0x1.0p-1074, + (int)27 + }, + { // Entry 573 + 0x1.p-1046, + 0x1.0p-1074, + (int)28 + }, + { // Entry 574 + 0x1.p-1045, + 0x1.0p-1074, + (int)29 + }, + { // Entry 575 + 0x1.p-1044, + 0x1.0p-1074, + (int)30 + }, + { // Entry 576 + 0x1.p-1043, + 0x1.0p-1074, + (int)31 + }, + { // Entry 577 + 0x1.p-1042, + 0x1.0p-1074, + (int)32 + }, + { // Entry 578 + 0x1.p-1041, + 0x1.0p-1074, + (int)33 + }, + { // Entry 579 + 0x1.p-1040, + 0x1.0p-1074, + (int)34 + }, + { // Entry 580 + 0x1.p-1039, + 0x1.0p-1074, + (int)35 + }, + { // Entry 581 + 0x1.p-1038, + 0x1.0p-1074, + (int)36 + }, + { // Entry 582 + 0x1.p-1037, + 0x1.0p-1074, + (int)37 + }, + { // Entry 583 + 0x1.p-1036, + 0x1.0p-1074, + (int)38 + }, + { // Entry 584 + 0x1.p-1035, + 0x1.0p-1074, + (int)39 + }, + { // Entry 585 + 0x1.p-1034, + 0x1.0p-1074, + (int)40 + }, + { // Entry 586 + 0x1.p-1033, + 0x1.0p-1074, + (int)41 + }, + { // Entry 587 + 0x1.p-1032, + 0x1.0p-1074, + (int)42 + }, + { // Entry 588 + 0x1.p-1031, + 0x1.0p-1074, + (int)43 + }, + { // Entry 589 + 0x1.p-1030, + 0x1.0p-1074, + (int)44 + }, + { // Entry 590 + 0x1.p-1029, + 0x1.0p-1074, + (int)45 + }, + { // Entry 591 + 0x1.p-1028, + 0x1.0p-1074, + (int)46 + }, + { // Entry 592 + 0x1.p-1027, + 0x1.0p-1074, + (int)47 + }, + { // Entry 593 + 0x1.p-1026, + 0x1.0p-1074, + (int)48 + }, + { // Entry 594 + 0x1.p-1025, + 0x1.0p-1074, + (int)49 + }, + { // Entry 595 + 0x1.p-1024, + 0x1.0p-1074, + (int)50 + }, + { // Entry 596 + 0x1.p-1023, + 0x1.0p-1074, + (int)51 + }, + { // Entry 597 + 0x1.p-1022, + 0x1.0p-1074, + (int)52 + }, + { // Entry 598 + 0x1.p-1021, + 0x1.0p-1074, + (int)53 + }, + { // Entry 599 + 0x1.p-1020, + 0x1.0p-1074, + (int)54 + }, + { // Entry 600 + 0x1.p-1019, + 0x1.0p-1074, + (int)55 + }, + { // Entry 601 + 0x1.p-1018, + 0x1.0p-1074, + (int)56 + }, + { // Entry 602 + 0x1.p-1017, + 0x1.0p-1074, + (int)57 + }, + { // Entry 603 + 0x1.p-1016, + 0x1.0p-1074, + (int)58 + }, + { // Entry 604 + 0x1.p-1015, + 0x1.0p-1074, + (int)59 + }, + { // Entry 605 + 0x1.p-1014, + 0x1.0p-1074, + (int)60 + }, + { // Entry 606 + 0x1.p-1013, + 0x1.0p-1074, + (int)61 + }, + { // Entry 607 + 0x1.p-1012, + 0x1.0p-1074, + (int)62 + }, + { // Entry 608 + 0x1.p-1011, + 0x1.0p-1074, + (int)63 + }, + { // Entry 609 + 0x1.p-1010, + 0x1.0p-1074, + (int)64 + }, + { // Entry 610 + 0x1.p-1009, + 0x1.0p-1074, + (int)65 + }, + { // Entry 611 + 0x1.p-1008, + 0x1.0p-1074, + (int)66 + }, + { // Entry 612 + 0x1.p-1007, + 0x1.0p-1074, + (int)67 + }, + { // Entry 613 + 0x1.p-1006, + 0x1.0p-1074, + (int)68 + }, + { // Entry 614 + 0x1.p-1005, + 0x1.0p-1074, + (int)69 + }, + { // Entry 615 + 0x1.p-1004, + 0x1.0p-1074, + (int)70 + }, + { // Entry 616 + 0x1.p-1003, + 0x1.0p-1074, + (int)71 + }, + { // Entry 617 + 0x1.p-1002, + 0x1.0p-1074, + (int)72 + }, + { // Entry 618 + 0x1.p-1001, + 0x1.0p-1074, + (int)73 + }, + { // Entry 619 + 0x1.p-1000, + 0x1.0p-1074, + (int)74 + }, + { // Entry 620 + 0x1.p-999, + 0x1.0p-1074, + (int)75 + }, + { // Entry 621 + 0x1.p-998, + 0x1.0p-1074, + (int)76 + }, + { // Entry 622 + 0x1.p-997, + 0x1.0p-1074, + (int)77 + }, + { // Entry 623 + 0x1.p-996, + 0x1.0p-1074, + (int)78 + }, + { // Entry 624 + 0x1.p-995, + 0x1.0p-1074, + (int)79 + }, + { // Entry 625 + 0x1.p-994, + 0x1.0p-1074, + (int)80 + }, + { // Entry 626 + 0x1.p-993, + 0x1.0p-1074, + (int)81 + }, + { // Entry 627 + 0x1.p-992, + 0x1.0p-1074, + (int)82 + }, + { // Entry 628 + 0x1.p-991, + 0x1.0p-1074, + (int)83 + }, + { // Entry 629 + 0x1.p-990, + 0x1.0p-1074, + (int)84 + }, + { // Entry 630 + 0x1.p-989, + 0x1.0p-1074, + (int)85 + }, + { // Entry 631 + 0x1.p-988, + 0x1.0p-1074, + (int)86 + }, + { // Entry 632 + 0x1.p-987, + 0x1.0p-1074, + (int)87 + }, + { // Entry 633 + 0x1.p-986, + 0x1.0p-1074, + (int)88 + }, + { // Entry 634 + 0x1.p-985, + 0x1.0p-1074, + (int)89 + }, + { // Entry 635 + 0x1.p-984, + 0x1.0p-1074, + (int)90 + }, + { // Entry 636 + 0x1.p-983, + 0x1.0p-1074, + (int)91 + }, + { // Entry 637 + 0x1.p-982, + 0x1.0p-1074, + (int)92 + }, + { // Entry 638 + 0x1.p-981, + 0x1.0p-1074, + (int)93 + }, + { // Entry 639 + 0x1.p-980, + 0x1.0p-1074, + (int)94 + }, + { // Entry 640 + 0x1.p-979, + 0x1.0p-1074, + (int)95 + }, + { // Entry 641 + 0x1.p-978, + 0x1.0p-1074, + (int)96 + }, + { // Entry 642 + 0x1.p-977, + 0x1.0p-1074, + (int)97 + }, + { // Entry 643 + 0x1.p-976, + 0x1.0p-1074, + (int)98 + }, + { // Entry 644 + 0x1.p-975, + 0x1.0p-1074, + (int)99 + }, + { // Entry 645 + 0x1.p-974, + 0x1.0p-1074, + (int)100 + }, + { // Entry 646 + 0x1.p-973, + 0x1.0p-1074, + (int)101 + }, + { // Entry 647 + 0x1.p-972, + 0x1.0p-1074, + (int)102 + }, + { // Entry 648 + 0x1.p-971, + 0x1.0p-1074, + (int)103 + }, + { // Entry 649 + 0x1.p-970, + 0x1.0p-1074, + (int)104 + }, + { // Entry 650 + 0x1.p-969, + 0x1.0p-1074, + (int)105 + }, + { // Entry 651 + 0x1.p-968, + 0x1.0p-1074, + (int)106 + }, + { // Entry 652 + 0x1.p-967, + 0x1.0p-1074, + (int)107 + }, + { // Entry 653 + 0x1.p-966, + 0x1.0p-1074, + (int)108 + }, + { // Entry 654 + 0x1.p-965, + 0x1.0p-1074, + (int)109 + }, + { // Entry 655 + 0x1.p-964, + 0x1.0p-1074, + (int)110 + }, + { // Entry 656 + 0x1.p-963, + 0x1.0p-1074, + (int)111 + }, + { // Entry 657 + 0x1.p-962, + 0x1.0p-1074, + (int)112 + }, + { // Entry 658 + 0x1.p-961, + 0x1.0p-1074, + (int)113 + }, + { // Entry 659 + 0x1.p-960, + 0x1.0p-1074, + (int)114 + }, + { // Entry 660 + 0x1.p-959, + 0x1.0p-1074, + (int)115 + }, + { // Entry 661 + 0x1.p-958, + 0x1.0p-1074, + (int)116 + }, + { // Entry 662 + 0x1.p-957, + 0x1.0p-1074, + (int)117 + }, + { // Entry 663 + 0x1.p-956, + 0x1.0p-1074, + (int)118 + }, + { // Entry 664 + 0x1.p-955, + 0x1.0p-1074, + (int)119 + }, + { // Entry 665 + 0x1.p-954, + 0x1.0p-1074, + (int)120 + }, + { // Entry 666 + 0x1.p-953, + 0x1.0p-1074, + (int)121 + }, + { // Entry 667 + 0x1.p-952, + 0x1.0p-1074, + (int)122 + }, + { // Entry 668 + 0x1.p-951, + 0x1.0p-1074, + (int)123 + }, + { // Entry 669 + 0x1.p-950, + 0x1.0p-1074, + (int)124 + }, + { // Entry 670 + 0x1.p-949, + 0x1.0p-1074, + (int)125 + }, + { // Entry 671 + 0x1.p-948, + 0x1.0p-1074, + (int)126 + }, + { // Entry 672 + 0x1.p-947, + 0x1.0p-1074, + (int)127 + }, + { // Entry 673 + 0x1.p-946, + 0x1.0p-1074, + (int)128 + }, + { // Entry 674 + 0x1.p-945, + 0x1.0p-1074, + (int)129 + }, + { // Entry 675 + 0x1.p-944, + 0x1.0p-1074, + (int)130 + }, + { // Entry 676 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + (int)0 + }, + { // Entry 677 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + (int)1 + }, + { // Entry 678 + 0x1.ffffffffffffe0p-1021, + 0x1.ffffffffffffep-1023, + (int)2 + }, + { // Entry 679 + 0x1.ffffffffffffe0p-1020, + 0x1.ffffffffffffep-1023, + (int)3 + }, + { // Entry 680 + 0x1.ffffffffffffe0p-1019, + 0x1.ffffffffffffep-1023, + (int)4 + }, + { // Entry 681 + 0x1.ffffffffffffe0p-1018, + 0x1.ffffffffffffep-1023, + (int)5 + }, + { // Entry 682 + 0x1.ffffffffffffe0p-1017, + 0x1.ffffffffffffep-1023, + (int)6 + }, + { // Entry 683 + 0x1.ffffffffffffe0p-1016, + 0x1.ffffffffffffep-1023, + (int)7 + }, + { // Entry 684 + 0x1.ffffffffffffe0p-1015, + 0x1.ffffffffffffep-1023, + (int)8 + }, + { // Entry 685 + 0x1.ffffffffffffe0p-1014, + 0x1.ffffffffffffep-1023, + (int)9 + }, + { // Entry 686 + 0x1.ffffffffffffe0p-1013, + 0x1.ffffffffffffep-1023, + (int)10 + }, + { // Entry 687 + 0x1.ffffffffffffe0p-1012, + 0x1.ffffffffffffep-1023, + (int)11 + }, + { // Entry 688 + 0x1.ffffffffffffe0p-1011, + 0x1.ffffffffffffep-1023, + (int)12 + }, + { // Entry 689 + 0x1.ffffffffffffe0p-1010, + 0x1.ffffffffffffep-1023, + (int)13 + }, + { // Entry 690 + 0x1.ffffffffffffe0p-1009, + 0x1.ffffffffffffep-1023, + (int)14 + }, + { // Entry 691 + 0x1.ffffffffffffe0p-1008, + 0x1.ffffffffffffep-1023, + (int)15 + }, + { // Entry 692 + 0x1.ffffffffffffe0p-1007, + 0x1.ffffffffffffep-1023, + (int)16 + }, + { // Entry 693 + 0x1.ffffffffffffe0p-1006, + 0x1.ffffffffffffep-1023, + (int)17 + }, + { // Entry 694 + 0x1.ffffffffffffe0p-1005, + 0x1.ffffffffffffep-1023, + (int)18 + }, + { // Entry 695 + 0x1.ffffffffffffe0p-1004, + 0x1.ffffffffffffep-1023, + (int)19 + }, + { // Entry 696 + 0x1.ffffffffffffe0p-1003, + 0x1.ffffffffffffep-1023, + (int)20 + }, + { // Entry 697 + 0x1.ffffffffffffe0p-1002, + 0x1.ffffffffffffep-1023, + (int)21 + }, + { // Entry 698 + 0x1.ffffffffffffe0p-1001, + 0x1.ffffffffffffep-1023, + (int)22 + }, + { // Entry 699 + 0x1.ffffffffffffe0p-1000, + 0x1.ffffffffffffep-1023, + (int)23 + }, + { // Entry 700 + 0x1.ffffffffffffe0p-999, + 0x1.ffffffffffffep-1023, + (int)24 + }, + { // Entry 701 + 0x1.ffffffffffffe0p-998, + 0x1.ffffffffffffep-1023, + (int)25 + }, + { // Entry 702 + 0x1.ffffffffffffe0p-997, + 0x1.ffffffffffffep-1023, + (int)26 + }, + { // Entry 703 + 0x1.ffffffffffffe0p-996, + 0x1.ffffffffffffep-1023, + (int)27 + }, + { // Entry 704 + 0x1.ffffffffffffe0p-995, + 0x1.ffffffffffffep-1023, + (int)28 + }, + { // Entry 705 + 0x1.ffffffffffffe0p-994, + 0x1.ffffffffffffep-1023, + (int)29 + }, + { // Entry 706 + 0x1.ffffffffffffe0p-993, + 0x1.ffffffffffffep-1023, + (int)30 + }, + { // Entry 707 + 0x1.ffffffffffffe0p-992, + 0x1.ffffffffffffep-1023, + (int)31 + }, + { // Entry 708 + 0x1.ffffffffffffe0p-991, + 0x1.ffffffffffffep-1023, + (int)32 + }, + { // Entry 709 + 0x1.ffffffffffffe0p-990, + 0x1.ffffffffffffep-1023, + (int)33 + }, + { // Entry 710 + 0x1.ffffffffffffe0p-989, + 0x1.ffffffffffffep-1023, + (int)34 + }, + { // Entry 711 + 0x1.ffffffffffffe0p-988, + 0x1.ffffffffffffep-1023, + (int)35 + }, + { // Entry 712 + 0x1.ffffffffffffe0p-987, + 0x1.ffffffffffffep-1023, + (int)36 + }, + { // Entry 713 + 0x1.ffffffffffffe0p-986, + 0x1.ffffffffffffep-1023, + (int)37 + }, + { // Entry 714 + 0x1.ffffffffffffe0p-985, + 0x1.ffffffffffffep-1023, + (int)38 + }, + { // Entry 715 + 0x1.ffffffffffffe0p-984, + 0x1.ffffffffffffep-1023, + (int)39 + }, + { // Entry 716 + 0x1.ffffffffffffe0p-983, + 0x1.ffffffffffffep-1023, + (int)40 + }, + { // Entry 717 + 0x1.ffffffffffffe0p-982, + 0x1.ffffffffffffep-1023, + (int)41 + }, + { // Entry 718 + 0x1.ffffffffffffe0p-981, + 0x1.ffffffffffffep-1023, + (int)42 + }, + { // Entry 719 + 0x1.ffffffffffffe0p-980, + 0x1.ffffffffffffep-1023, + (int)43 + }, + { // Entry 720 + 0x1.ffffffffffffe0p-979, + 0x1.ffffffffffffep-1023, + (int)44 + }, + { // Entry 721 + 0x1.ffffffffffffe0p-978, + 0x1.ffffffffffffep-1023, + (int)45 + }, + { // Entry 722 + 0x1.ffffffffffffe0p-977, + 0x1.ffffffffffffep-1023, + (int)46 + }, + { // Entry 723 + 0x1.ffffffffffffe0p-976, + 0x1.ffffffffffffep-1023, + (int)47 + }, + { // Entry 724 + 0x1.ffffffffffffe0p-975, + 0x1.ffffffffffffep-1023, + (int)48 + }, + { // Entry 725 + 0x1.ffffffffffffe0p-974, + 0x1.ffffffffffffep-1023, + (int)49 + }, + { // Entry 726 + 0x1.ffffffffffffe0p-973, + 0x1.ffffffffffffep-1023, + (int)50 + }, + { // Entry 727 + 0x1.ffffffffffffe0p-972, + 0x1.ffffffffffffep-1023, + (int)51 + }, + { // Entry 728 + 0x1.ffffffffffffe0p-971, + 0x1.ffffffffffffep-1023, + (int)52 + }, + { // Entry 729 + 0x1.ffffffffffffe0p-970, + 0x1.ffffffffffffep-1023, + (int)53 + }, + { // Entry 730 + 0x1.ffffffffffffe0p-969, + 0x1.ffffffffffffep-1023, + (int)54 + }, + { // Entry 731 + 0x1.ffffffffffffe0p-968, + 0x1.ffffffffffffep-1023, + (int)55 + }, + { // Entry 732 + 0x1.ffffffffffffe0p-967, + 0x1.ffffffffffffep-1023, + (int)56 + }, + { // Entry 733 + 0x1.ffffffffffffe0p-966, + 0x1.ffffffffffffep-1023, + (int)57 + }, + { // Entry 734 + 0x1.ffffffffffffe0p-965, + 0x1.ffffffffffffep-1023, + (int)58 + }, + { // Entry 735 + 0x1.ffffffffffffe0p-964, + 0x1.ffffffffffffep-1023, + (int)59 + }, + { // Entry 736 + 0x1.ffffffffffffe0p-963, + 0x1.ffffffffffffep-1023, + (int)60 + }, + { // Entry 737 + 0x1.ffffffffffffe0p-962, + 0x1.ffffffffffffep-1023, + (int)61 + }, + { // Entry 738 + 0x1.ffffffffffffe0p-961, + 0x1.ffffffffffffep-1023, + (int)62 + }, + { // Entry 739 + 0x1.ffffffffffffe0p-960, + 0x1.ffffffffffffep-1023, + (int)63 + }, + { // Entry 740 + 0x1.ffffffffffffe0p-959, + 0x1.ffffffffffffep-1023, + (int)64 + }, + { // Entry 741 + 0x1.ffffffffffffe0p-958, + 0x1.ffffffffffffep-1023, + (int)65 + }, + { // Entry 742 + 0x1.ffffffffffffe0p-957, + 0x1.ffffffffffffep-1023, + (int)66 + }, + { // Entry 743 + 0x1.ffffffffffffe0p-956, + 0x1.ffffffffffffep-1023, + (int)67 + }, + { // Entry 744 + 0x1.ffffffffffffe0p-955, + 0x1.ffffffffffffep-1023, + (int)68 + }, + { // Entry 745 + 0x1.ffffffffffffe0p-954, + 0x1.ffffffffffffep-1023, + (int)69 + }, + { // Entry 746 + 0x1.ffffffffffffe0p-953, + 0x1.ffffffffffffep-1023, + (int)70 + }, + { // Entry 747 + 0x1.ffffffffffffe0p-952, + 0x1.ffffffffffffep-1023, + (int)71 + }, + { // Entry 748 + 0x1.ffffffffffffe0p-951, + 0x1.ffffffffffffep-1023, + (int)72 + }, + { // Entry 749 + 0x1.ffffffffffffe0p-950, + 0x1.ffffffffffffep-1023, + (int)73 + }, + { // Entry 750 + 0x1.ffffffffffffe0p-949, + 0x1.ffffffffffffep-1023, + (int)74 + }, + { // Entry 751 + 0x1.ffffffffffffe0p-948, + 0x1.ffffffffffffep-1023, + (int)75 + }, + { // Entry 752 + 0x1.ffffffffffffe0p-947, + 0x1.ffffffffffffep-1023, + (int)76 + }, + { // Entry 753 + 0x1.ffffffffffffe0p-946, + 0x1.ffffffffffffep-1023, + (int)77 + }, + { // Entry 754 + 0x1.ffffffffffffe0p-945, + 0x1.ffffffffffffep-1023, + (int)78 + }, + { // Entry 755 + 0x1.ffffffffffffe0p-944, + 0x1.ffffffffffffep-1023, + (int)79 + }, + { // Entry 756 + 0x1.ffffffffffffe0p-943, + 0x1.ffffffffffffep-1023, + (int)80 + }, + { // Entry 757 + 0x1.ffffffffffffe0p-942, + 0x1.ffffffffffffep-1023, + (int)81 + }, + { // Entry 758 + 0x1.ffffffffffffe0p-941, + 0x1.ffffffffffffep-1023, + (int)82 + }, + { // Entry 759 + 0x1.ffffffffffffe0p-940, + 0x1.ffffffffffffep-1023, + (int)83 + }, + { // Entry 760 + 0x1.ffffffffffffe0p-939, + 0x1.ffffffffffffep-1023, + (int)84 + }, + { // Entry 761 + 0x1.ffffffffffffe0p-938, + 0x1.ffffffffffffep-1023, + (int)85 + }, + { // Entry 762 + 0x1.ffffffffffffe0p-937, + 0x1.ffffffffffffep-1023, + (int)86 + }, + { // Entry 763 + 0x1.ffffffffffffe0p-936, + 0x1.ffffffffffffep-1023, + (int)87 + }, + { // Entry 764 + 0x1.ffffffffffffe0p-935, + 0x1.ffffffffffffep-1023, + (int)88 + }, + { // Entry 765 + 0x1.ffffffffffffe0p-934, + 0x1.ffffffffffffep-1023, + (int)89 + }, + { // Entry 766 + 0x1.ffffffffffffe0p-933, + 0x1.ffffffffffffep-1023, + (int)90 + }, + { // Entry 767 + 0x1.ffffffffffffe0p-932, + 0x1.ffffffffffffep-1023, + (int)91 + }, + { // Entry 768 + 0x1.ffffffffffffe0p-931, + 0x1.ffffffffffffep-1023, + (int)92 + }, + { // Entry 769 + 0x1.ffffffffffffe0p-930, + 0x1.ffffffffffffep-1023, + (int)93 + }, + { // Entry 770 + 0x1.ffffffffffffe0p-929, + 0x1.ffffffffffffep-1023, + (int)94 + }, + { // Entry 771 + 0x1.ffffffffffffe0p-928, + 0x1.ffffffffffffep-1023, + (int)95 + }, + { // Entry 772 + 0x1.ffffffffffffe0p-927, + 0x1.ffffffffffffep-1023, + (int)96 + }, + { // Entry 773 + 0x1.ffffffffffffe0p-926, + 0x1.ffffffffffffep-1023, + (int)97 + }, + { // Entry 774 + 0x1.ffffffffffffe0p-925, + 0x1.ffffffffffffep-1023, + (int)98 + }, + { // Entry 775 + 0x1.ffffffffffffe0p-924, + 0x1.ffffffffffffep-1023, + (int)99 + }, + { // Entry 776 + 0x1.ffffffffffffe0p-923, + 0x1.ffffffffffffep-1023, + (int)100 + }, + { // Entry 777 + 0x1.ffffffffffffe0p-922, + 0x1.ffffffffffffep-1023, + (int)101 + }, + { // Entry 778 + 0x1.ffffffffffffe0p-921, + 0x1.ffffffffffffep-1023, + (int)102 + }, + { // Entry 779 + 0x1.ffffffffffffe0p-920, + 0x1.ffffffffffffep-1023, + (int)103 + }, + { // Entry 780 + 0x1.ffffffffffffe0p-919, + 0x1.ffffffffffffep-1023, + (int)104 + }, + { // Entry 781 + 0x1.ffffffffffffe0p-918, + 0x1.ffffffffffffep-1023, + (int)105 + }, + { // Entry 782 + 0x1.ffffffffffffe0p-917, + 0x1.ffffffffffffep-1023, + (int)106 + }, + { // Entry 783 + 0x1.ffffffffffffe0p-916, + 0x1.ffffffffffffep-1023, + (int)107 + }, + { // Entry 784 + 0x1.ffffffffffffe0p-915, + 0x1.ffffffffffffep-1023, + (int)108 + }, + { // Entry 785 + 0x1.ffffffffffffe0p-914, + 0x1.ffffffffffffep-1023, + (int)109 + }, + { // Entry 786 + 0x1.ffffffffffffe0p-913, + 0x1.ffffffffffffep-1023, + (int)110 + }, + { // Entry 787 + 0x1.ffffffffffffe0p-912, + 0x1.ffffffffffffep-1023, + (int)111 + }, + { // Entry 788 + 0x1.ffffffffffffe0p-911, + 0x1.ffffffffffffep-1023, + (int)112 + }, + { // Entry 789 + 0x1.ffffffffffffe0p-910, + 0x1.ffffffffffffep-1023, + (int)113 + }, + { // Entry 790 + 0x1.ffffffffffffe0p-909, + 0x1.ffffffffffffep-1023, + (int)114 + }, + { // Entry 791 + 0x1.ffffffffffffe0p-908, + 0x1.ffffffffffffep-1023, + (int)115 + }, + { // Entry 792 + 0x1.ffffffffffffe0p-907, + 0x1.ffffffffffffep-1023, + (int)116 + }, + { // Entry 793 + 0x1.ffffffffffffe0p-906, + 0x1.ffffffffffffep-1023, + (int)117 + }, + { // Entry 794 + 0x1.ffffffffffffe0p-905, + 0x1.ffffffffffffep-1023, + (int)118 + }, + { // Entry 795 + 0x1.ffffffffffffe0p-904, + 0x1.ffffffffffffep-1023, + (int)119 + }, + { // Entry 796 + 0x1.ffffffffffffe0p-903, + 0x1.ffffffffffffep-1023, + (int)120 + }, + { // Entry 797 + 0x1.ffffffffffffe0p-902, + 0x1.ffffffffffffep-1023, + (int)121 + }, + { // Entry 798 + 0x1.ffffffffffffe0p-901, + 0x1.ffffffffffffep-1023, + (int)122 + }, + { // Entry 799 + 0x1.ffffffffffffe0p-900, + 0x1.ffffffffffffep-1023, + (int)123 + }, + { // Entry 800 + 0x1.ffffffffffffe0p-899, + 0x1.ffffffffffffep-1023, + (int)124 + }, + { // Entry 801 + 0x1.ffffffffffffe0p-898, + 0x1.ffffffffffffep-1023, + (int)125 + }, + { // Entry 802 + 0x1.ffffffffffffe0p-897, + 0x1.ffffffffffffep-1023, + (int)126 + }, + { // Entry 803 + 0x1.ffffffffffffe0p-896, + 0x1.ffffffffffffep-1023, + (int)127 + }, + { // Entry 804 + 0x1.ffffffffffffe0p-895, + 0x1.ffffffffffffep-1023, + (int)128 + }, + { // Entry 805 + 0x1.ffffffffffffe0p-894, + 0x1.ffffffffffffep-1023, + (int)129 + }, + { // Entry 806 + 0x1.ffffffffffffe0p-893, + 0x1.ffffffffffffep-1023, + (int)130 + }, + { // Entry 807 + 0x1.p0, + 0x1.0p-1074, + (int)1074 + }, + { // Entry 808 + 0x1.p-1, + 0x1.0p-1074, + (int)1073 + }, + { // Entry 809 + 0x1.ffffffffffffe0p51, + 0x1.ffffffffffffep-1023, + (int)1074 + }, + { // Entry 810 + 0x1.ffffffffffffe0p50, + 0x1.ffffffffffffep-1023, + (int)1073 + }, + { // Entry 811 + 0x1.p-1022, + 0x1.0p-1074, + (int)52 + }, + { // Entry 812 + 0x1.p-1023, + 0x1.0p-1074, + (int)51 + }, + { // Entry 813 + 0x1.ffffffffffffe0p-971, + 0x1.ffffffffffffep-1023, + (int)52 + }, + { // Entry 814 + 0x1.ffffffffffffe0p-972, + 0x1.ffffffffffffep-1023, + (int)51 + }, + { // Entry 815 + 0x1.p-1074, + 0x1.0p-1074, + (int)0 + }, + { // Entry 816 + 0x1.p-1073, + 0x1.0p-1074, + (int)1 + }, + { // Entry 817 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + (int)0 + }, + { // Entry 818 + 0x1.ffffffffffffe0p-1022, + 0x1.ffffffffffffep-1023, + (int)1 + }, + { // Entry 819 + 0.0, + 0.0, + (int)0 + }, + { // Entry 820 + -0.0, + -0.0, + (int)0 + }, + { // Entry 821 + 0.0, + 0.0, + (int)1 + }, + { // Entry 822 + -0.0, + -0.0, + (int)1 + }, + { // Entry 823 + 0.0, + 0.0, + (int)-1 + }, + { // Entry 824 + -0.0, + -0.0, + (int)-1 + }, + { // Entry 825 + 0.0, + 0.0, + (int)127 + }, + { // Entry 826 + -0.0, + -0.0, + (int)127 + }, + { // Entry 827 + 0.0, + 0.0, + (int)-127 + }, + { // Entry 828 + -0.0, + -0.0, + (int)-127 + }, + { // Entry 829 + HUGE_VAL, + HUGE_VAL, + (int)0 + }, + { // Entry 830 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023, + (int)0 + }, + { // Entry 831 + 0x1.p-1022, + 0x1.0p-1022, + (int)0 + }, + { // Entry 832 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023, + (int)0 + }, + { // Entry 833 + 0x1.p-1074, + 0x1.0p-1074, + (int)0 + }, + { // Entry 834 + -0x1.p-1074, + -0x1.0p-1074, + (int)0 + }, + { // Entry 835 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023, + (int)0 + }, + { // Entry 836 + -0x1.p-1022, + -0x1.0p-1022, + (int)0 + }, + { // Entry 837 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023, + (int)0 + }, + { // Entry 838 + -HUGE_VAL, + -HUGE_VAL, + (int)0 + }, + { // Entry 839 + HUGE_VAL, + HUGE_VAL, + (int)1 + }, + { // Entry 840 + -HUGE_VAL, + -HUGE_VAL, + (int)1 + }, + { // Entry 841 + HUGE_VAL, + HUGE_VAL, + (int)-1 + }, + { // Entry 842 + -HUGE_VAL, + -HUGE_VAL, + (int)-1 + }, + { // Entry 843 + HUGE_VAL, + HUGE_VAL, + (int)127 + }, + { // Entry 844 + -HUGE_VAL, + -HUGE_VAL, + (int)127 + }, + { // Entry 845 + HUGE_VAL, + HUGE_VAL, + (int)-127 + }, + { // Entry 846 + -HUGE_VAL, + -HUGE_VAL, + (int)-127 + }, + { // Entry 847 + HUGE_VAL, + 0x1.fffffffffffffp1023, + (int)1 + }, + { // Entry 848 + HUGE_VAL, + 0x1.fffffffffffffp1023, + (int)127 + }, + { // Entry 849 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + (int)1 + }, + { // Entry 850 + -HUGE_VAL, + -0x1.fffffffffffffp1023, + (int)127 + }, + { // Entry 851 + HUGE_VAL, + 0x1.0p-1022, + (int)40000 + }, + { // Entry 852 + HUGE_VAL, + 0x1.0p-1074, + (int)40000 + }, + { // Entry 853 + -HUGE_VAL, + -0x1.0p-1022, + (int)40000 + }, + { // Entry 854 + -HUGE_VAL, + -0x1.0p-1074, + (int)40000 + }, + { // Entry 855 + 0x1.p-1023, + 0x1.0p-1022, + (int)-1 + }, + { // Entry 856 + 0x1.ffffffffffffe0p-1024, + 0x1.ffffffffffffep-1023, + (int)-1 + }, + { // Entry 857 + 0.0, + 0x1.0p-1074, + (int)-1 + }, + { // Entry 858 + -0.0, + -0x1.0p-1074, + (int)-1 + }, + { // Entry 859 + -0x1.ffffffffffffe0p-1024, + -0x1.ffffffffffffep-1023, + (int)-1 + }, + { // Entry 860 + -0x1.p-1023, + -0x1.0p-1022, + (int)-1 + }, + { // Entry 861 + 0.0, + 0x1.fffffffffffffp1023, + (int)-40000 + }, + { // Entry 862 + -0.0, + -0x1.fffffffffffffp1023, + (int)-40000 + } +}; diff --git a/tests/math_data/scalbnf_intel_data.h b/tests/math_data/scalbnf_intel_data.h new file mode 100644 index 000000000..a1ffec763 --- /dev/null +++ b/tests/math_data/scalbnf_intel_data.h @@ -0,0 +1,4288 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_2_t g_scalbnf_intel_data[] = { + { // Entry 0 + -0.0f, + -0x1.p-149, + (int)-10 + }, + { // Entry 1 + -0x1.555554p-128, + -0x1.555554p-2, + (int)-126 + }, + { // Entry 2 + -0x1.6db6dcp-128, + -0x1.6db6dcp-1, + (int)-127 + }, + { // Entry 3 + -0x1.8e38e4p-128, + -0x1.8e38e4p-1, + (int)-127 + }, + { // Entry 4 + 0.0f, + 0x1.p-149, + (int)-1 + }, + { // Entry 5 + 0.0f, + 0x1.p-149, + (int)-10 + }, + { // Entry 6 + 0x1.29e412p-127, + 0x1.29e412p-7, + (int)-120 + }, + { // Entry 7 + 0.0f, + 0x1.dddddep-2, + (int)-148 + }, + { // Entry 8 + 0.0f, + 0x1.ffff60p-127, + (int)-23 + }, + { // Entry 9 + 0.0f, + 0x1.ffff84p-127, + (int)-23 + }, + { // Entry 10 + 0x1.fffff8p-137, + 0x1.fffff8p-127, + (int)-10 + }, + { // Entry 11 + 0.0f, + 0x1.fffffep127, + (int)(-2147483647-1) + }, + { // Entry 12 + HUGE_VALF, + 0x1.fffffep127, + (int)2147483647 + }, + { // Entry 13 + -0x1.p-10, + -0x1.p0, + (int)-10 + }, + { // Entry 14 + -0x1.p-9, + -0x1.p0, + (int)-9 + }, + { // Entry 15 + -0x1.p-8, + -0x1.p0, + (int)-8 + }, + { // Entry 16 + -0x1.p-7, + -0x1.p0, + (int)-7 + }, + { // Entry 17 + -0x1.p-6, + -0x1.p0, + (int)-6 + }, + { // Entry 18 + -0x1.p-5, + -0x1.p0, + (int)-5 + }, + { // Entry 19 + -0x1.p-4, + -0x1.p0, + (int)-4 + }, + { // Entry 20 + -0x1.p-3, + -0x1.p0, + (int)-3 + }, + { // Entry 21 + -0x1.p-2, + -0x1.p0, + (int)-2 + }, + { // Entry 22 + -0x1.p-1, + -0x1.p0, + (int)-1 + }, + { // Entry 23 + -0x1.p0, + -0x1.p0, + (int)0 + }, + { // Entry 24 + -0x1.p1, + -0x1.p0, + (int)1 + }, + { // Entry 25 + -0x1.p2, + -0x1.p0, + (int)2 + }, + { // Entry 26 + -0x1.p3, + -0x1.p0, + (int)3 + }, + { // Entry 27 + -0x1.p4, + -0x1.p0, + (int)4 + }, + { // Entry 28 + -0x1.p5, + -0x1.p0, + (int)5 + }, + { // Entry 29 + -0x1.p6, + -0x1.p0, + (int)6 + }, + { // Entry 30 + -0x1.p7, + -0x1.p0, + (int)7 + }, + { // Entry 31 + -0x1.p8, + -0x1.p0, + (int)8 + }, + { // Entry 32 + -0x1.p9, + -0x1.p0, + (int)9 + }, + { // Entry 33 + -0x1.p10, + -0x1.p0, + (int)10 + }, + { // Entry 34 + -0x1.d1745cp-11, + -0x1.d1745cp-1, + (int)-10 + }, + { // Entry 35 + -0x1.d1745cp-10, + -0x1.d1745cp-1, + (int)-9 + }, + { // Entry 36 + -0x1.d1745cp-9, + -0x1.d1745cp-1, + (int)-8 + }, + { // Entry 37 + -0x1.d1745cp-8, + -0x1.d1745cp-1, + (int)-7 + }, + { // Entry 38 + -0x1.d1745cp-7, + -0x1.d1745cp-1, + (int)-6 + }, + { // Entry 39 + -0x1.d1745cp-6, + -0x1.d1745cp-1, + (int)-5 + }, + { // Entry 40 + -0x1.d1745cp-5, + -0x1.d1745cp-1, + (int)-4 + }, + { // Entry 41 + -0x1.d1745cp-4, + -0x1.d1745cp-1, + (int)-3 + }, + { // Entry 42 + -0x1.d1745cp-3, + -0x1.d1745cp-1, + (int)-2 + }, + { // Entry 43 + -0x1.d1745cp-2, + -0x1.d1745cp-1, + (int)-1 + }, + { // Entry 44 + -0x1.d1745cp-1, + -0x1.d1745cp-1, + (int)0 + }, + { // Entry 45 + -0x1.d1745cp0, + -0x1.d1745cp-1, + (int)1 + }, + { // Entry 46 + -0x1.d1745cp1, + -0x1.d1745cp-1, + (int)2 + }, + { // Entry 47 + -0x1.d1745cp2, + -0x1.d1745cp-1, + (int)3 + }, + { // Entry 48 + -0x1.d1745cp3, + -0x1.d1745cp-1, + (int)4 + }, + { // Entry 49 + -0x1.d1745cp4, + -0x1.d1745cp-1, + (int)5 + }, + { // Entry 50 + -0x1.d1745cp5, + -0x1.d1745cp-1, + (int)6 + }, + { // Entry 51 + -0x1.d1745cp6, + -0x1.d1745cp-1, + (int)7 + }, + { // Entry 52 + -0x1.d1745cp7, + -0x1.d1745cp-1, + (int)8 + }, + { // Entry 53 + -0x1.d1745cp8, + -0x1.d1745cp-1, + (int)9 + }, + { // Entry 54 + -0x1.d1745cp9, + -0x1.d1745cp-1, + (int)10 + }, + { // Entry 55 + -0x1.a2e8b8p-11, + -0x1.a2e8b8p-1, + (int)-10 + }, + { // Entry 56 + -0x1.a2e8b8p-10, + -0x1.a2e8b8p-1, + (int)-9 + }, + { // Entry 57 + -0x1.a2e8b8p-9, + -0x1.a2e8b8p-1, + (int)-8 + }, + { // Entry 58 + -0x1.a2e8b8p-8, + -0x1.a2e8b8p-1, + (int)-7 + }, + { // Entry 59 + -0x1.a2e8b8p-7, + -0x1.a2e8b8p-1, + (int)-6 + }, + { // Entry 60 + -0x1.a2e8b8p-6, + -0x1.a2e8b8p-1, + (int)-5 + }, + { // Entry 61 + -0x1.a2e8b8p-5, + -0x1.a2e8b8p-1, + (int)-4 + }, + { // Entry 62 + -0x1.a2e8b8p-4, + -0x1.a2e8b8p-1, + (int)-3 + }, + { // Entry 63 + -0x1.a2e8b8p-3, + -0x1.a2e8b8p-1, + (int)-2 + }, + { // Entry 64 + -0x1.a2e8b8p-2, + -0x1.a2e8b8p-1, + (int)-1 + }, + { // Entry 65 + -0x1.a2e8b8p-1, + -0x1.a2e8b8p-1, + (int)0 + }, + { // Entry 66 + -0x1.a2e8b8p0, + -0x1.a2e8b8p-1, + (int)1 + }, + { // Entry 67 + -0x1.a2e8b8p1, + -0x1.a2e8b8p-1, + (int)2 + }, + { // Entry 68 + -0x1.a2e8b8p2, + -0x1.a2e8b8p-1, + (int)3 + }, + { // Entry 69 + -0x1.a2e8b8p3, + -0x1.a2e8b8p-1, + (int)4 + }, + { // Entry 70 + -0x1.a2e8b8p4, + -0x1.a2e8b8p-1, + (int)5 + }, + { // Entry 71 + -0x1.a2e8b8p5, + -0x1.a2e8b8p-1, + (int)6 + }, + { // Entry 72 + -0x1.a2e8b8p6, + -0x1.a2e8b8p-1, + (int)7 + }, + { // Entry 73 + -0x1.a2e8b8p7, + -0x1.a2e8b8p-1, + (int)8 + }, + { // Entry 74 + -0x1.a2e8b8p8, + -0x1.a2e8b8p-1, + (int)9 + }, + { // Entry 75 + -0x1.a2e8b8p9, + -0x1.a2e8b8p-1, + (int)10 + }, + { // Entry 76 + -0x1.745d14p-11, + -0x1.745d14p-1, + (int)-10 + }, + { // Entry 77 + -0x1.745d14p-10, + -0x1.745d14p-1, + (int)-9 + }, + { // Entry 78 + -0x1.745d14p-9, + -0x1.745d14p-1, + (int)-8 + }, + { // Entry 79 + -0x1.745d14p-8, + -0x1.745d14p-1, + (int)-7 + }, + { // Entry 80 + -0x1.745d14p-7, + -0x1.745d14p-1, + (int)-6 + }, + { // Entry 81 + -0x1.745d14p-6, + -0x1.745d14p-1, + (int)-5 + }, + { // Entry 82 + -0x1.745d14p-5, + -0x1.745d14p-1, + (int)-4 + }, + { // Entry 83 + -0x1.745d14p-4, + -0x1.745d14p-1, + (int)-3 + }, + { // Entry 84 + -0x1.745d14p-3, + -0x1.745d14p-1, + (int)-2 + }, + { // Entry 85 + -0x1.745d14p-2, + -0x1.745d14p-1, + (int)-1 + }, + { // Entry 86 + -0x1.745d14p-1, + -0x1.745d14p-1, + (int)0 + }, + { // Entry 87 + -0x1.745d14p0, + -0x1.745d14p-1, + (int)1 + }, + { // Entry 88 + -0x1.745d14p1, + -0x1.745d14p-1, + (int)2 + }, + { // Entry 89 + -0x1.745d14p2, + -0x1.745d14p-1, + (int)3 + }, + { // Entry 90 + -0x1.745d14p3, + -0x1.745d14p-1, + (int)4 + }, + { // Entry 91 + -0x1.745d14p4, + -0x1.745d14p-1, + (int)5 + }, + { // Entry 92 + -0x1.745d14p5, + -0x1.745d14p-1, + (int)6 + }, + { // Entry 93 + -0x1.745d14p6, + -0x1.745d14p-1, + (int)7 + }, + { // Entry 94 + -0x1.745d14p7, + -0x1.745d14p-1, + (int)8 + }, + { // Entry 95 + -0x1.745d14p8, + -0x1.745d14p-1, + (int)9 + }, + { // Entry 96 + -0x1.745d14p9, + -0x1.745d14p-1, + (int)10 + }, + { // Entry 97 + -0x1.45d170p-11, + -0x1.45d170p-1, + (int)-10 + }, + { // Entry 98 + -0x1.45d170p-10, + -0x1.45d170p-1, + (int)-9 + }, + { // Entry 99 + -0x1.45d170p-9, + -0x1.45d170p-1, + (int)-8 + }, + { // Entry 100 + -0x1.45d170p-8, + -0x1.45d170p-1, + (int)-7 + }, + { // Entry 101 + -0x1.45d170p-7, + -0x1.45d170p-1, + (int)-6 + }, + { // Entry 102 + -0x1.45d170p-6, + -0x1.45d170p-1, + (int)-5 + }, + { // Entry 103 + -0x1.45d170p-5, + -0x1.45d170p-1, + (int)-4 + }, + { // Entry 104 + -0x1.45d170p-4, + -0x1.45d170p-1, + (int)-3 + }, + { // Entry 105 + -0x1.45d170p-3, + -0x1.45d170p-1, + (int)-2 + }, + { // Entry 106 + -0x1.45d170p-2, + -0x1.45d170p-1, + (int)-1 + }, + { // Entry 107 + -0x1.45d170p-1, + -0x1.45d170p-1, + (int)0 + }, + { // Entry 108 + -0x1.45d170p0, + -0x1.45d170p-1, + (int)1 + }, + { // Entry 109 + -0x1.45d170p1, + -0x1.45d170p-1, + (int)2 + }, + { // Entry 110 + -0x1.45d170p2, + -0x1.45d170p-1, + (int)3 + }, + { // Entry 111 + -0x1.45d170p3, + -0x1.45d170p-1, + (int)4 + }, + { // Entry 112 + -0x1.45d170p4, + -0x1.45d170p-1, + (int)5 + }, + { // Entry 113 + -0x1.45d170p5, + -0x1.45d170p-1, + (int)6 + }, + { // Entry 114 + -0x1.45d170p6, + -0x1.45d170p-1, + (int)7 + }, + { // Entry 115 + -0x1.45d170p7, + -0x1.45d170p-1, + (int)8 + }, + { // Entry 116 + -0x1.45d170p8, + -0x1.45d170p-1, + (int)9 + }, + { // Entry 117 + -0x1.45d170p9, + -0x1.45d170p-1, + (int)10 + }, + { // Entry 118 + -0x1.1745ccp-11, + -0x1.1745ccp-1, + (int)-10 + }, + { // Entry 119 + -0x1.1745ccp-10, + -0x1.1745ccp-1, + (int)-9 + }, + { // Entry 120 + -0x1.1745ccp-9, + -0x1.1745ccp-1, + (int)-8 + }, + { // Entry 121 + -0x1.1745ccp-8, + -0x1.1745ccp-1, + (int)-7 + }, + { // Entry 122 + -0x1.1745ccp-7, + -0x1.1745ccp-1, + (int)-6 + }, + { // Entry 123 + -0x1.1745ccp-6, + -0x1.1745ccp-1, + (int)-5 + }, + { // Entry 124 + -0x1.1745ccp-5, + -0x1.1745ccp-1, + (int)-4 + }, + { // Entry 125 + -0x1.1745ccp-4, + -0x1.1745ccp-1, + (int)-3 + }, + { // Entry 126 + -0x1.1745ccp-3, + -0x1.1745ccp-1, + (int)-2 + }, + { // Entry 127 + -0x1.1745ccp-2, + -0x1.1745ccp-1, + (int)-1 + }, + { // Entry 128 + -0x1.1745ccp-1, + -0x1.1745ccp-1, + (int)0 + }, + { // Entry 129 + -0x1.1745ccp0, + -0x1.1745ccp-1, + (int)1 + }, + { // Entry 130 + -0x1.1745ccp1, + -0x1.1745ccp-1, + (int)2 + }, + { // Entry 131 + -0x1.1745ccp2, + -0x1.1745ccp-1, + (int)3 + }, + { // Entry 132 + -0x1.1745ccp3, + -0x1.1745ccp-1, + (int)4 + }, + { // Entry 133 + -0x1.1745ccp4, + -0x1.1745ccp-1, + (int)5 + }, + { // Entry 134 + -0x1.1745ccp5, + -0x1.1745ccp-1, + (int)6 + }, + { // Entry 135 + -0x1.1745ccp6, + -0x1.1745ccp-1, + (int)7 + }, + { // Entry 136 + -0x1.1745ccp7, + -0x1.1745ccp-1, + (int)8 + }, + { // Entry 137 + -0x1.1745ccp8, + -0x1.1745ccp-1, + (int)9 + }, + { // Entry 138 + -0x1.1745ccp9, + -0x1.1745ccp-1, + (int)10 + }, + { // Entry 139 + -0x1.d17452p-12, + -0x1.d17452p-2, + (int)-10 + }, + { // Entry 140 + -0x1.d17452p-11, + -0x1.d17452p-2, + (int)-9 + }, + { // Entry 141 + -0x1.d17452p-10, + -0x1.d17452p-2, + (int)-8 + }, + { // Entry 142 + -0x1.d17452p-9, + -0x1.d17452p-2, + (int)-7 + }, + { // Entry 143 + -0x1.d17452p-8, + -0x1.d17452p-2, + (int)-6 + }, + { // Entry 144 + -0x1.d17452p-7, + -0x1.d17452p-2, + (int)-5 + }, + { // Entry 145 + -0x1.d17452p-6, + -0x1.d17452p-2, + (int)-4 + }, + { // Entry 146 + -0x1.d17452p-5, + -0x1.d17452p-2, + (int)-3 + }, + { // Entry 147 + -0x1.d17452p-4, + -0x1.d17452p-2, + (int)-2 + }, + { // Entry 148 + -0x1.d17452p-3, + -0x1.d17452p-2, + (int)-1 + }, + { // Entry 149 + -0x1.d17452p-2, + -0x1.d17452p-2, + (int)0 + }, + { // Entry 150 + -0x1.d17452p-1, + -0x1.d17452p-2, + (int)1 + }, + { // Entry 151 + -0x1.d17452p0, + -0x1.d17452p-2, + (int)2 + }, + { // Entry 152 + -0x1.d17452p1, + -0x1.d17452p-2, + (int)3 + }, + { // Entry 153 + -0x1.d17452p2, + -0x1.d17452p-2, + (int)4 + }, + { // Entry 154 + -0x1.d17452p3, + -0x1.d17452p-2, + (int)5 + }, + { // Entry 155 + -0x1.d17452p4, + -0x1.d17452p-2, + (int)6 + }, + { // Entry 156 + -0x1.d17452p5, + -0x1.d17452p-2, + (int)7 + }, + { // Entry 157 + -0x1.d17452p6, + -0x1.d17452p-2, + (int)8 + }, + { // Entry 158 + -0x1.d17452p7, + -0x1.d17452p-2, + (int)9 + }, + { // Entry 159 + -0x1.d17452p8, + -0x1.d17452p-2, + (int)10 + }, + { // Entry 160 + -0x1.745d0cp-12, + -0x1.745d0cp-2, + (int)-10 + }, + { // Entry 161 + -0x1.745d0cp-11, + -0x1.745d0cp-2, + (int)-9 + }, + { // Entry 162 + -0x1.745d0cp-10, + -0x1.745d0cp-2, + (int)-8 + }, + { // Entry 163 + -0x1.745d0cp-9, + -0x1.745d0cp-2, + (int)-7 + }, + { // Entry 164 + -0x1.745d0cp-8, + -0x1.745d0cp-2, + (int)-6 + }, + { // Entry 165 + -0x1.745d0cp-7, + -0x1.745d0cp-2, + (int)-5 + }, + { // Entry 166 + -0x1.745d0cp-6, + -0x1.745d0cp-2, + (int)-4 + }, + { // Entry 167 + -0x1.745d0cp-5, + -0x1.745d0cp-2, + (int)-3 + }, + { // Entry 168 + -0x1.745d0cp-4, + -0x1.745d0cp-2, + (int)-2 + }, + { // Entry 169 + -0x1.745d0cp-3, + -0x1.745d0cp-2, + (int)-1 + }, + { // Entry 170 + -0x1.745d0cp-2, + -0x1.745d0cp-2, + (int)0 + }, + { // Entry 171 + -0x1.745d0cp-1, + -0x1.745d0cp-2, + (int)1 + }, + { // Entry 172 + -0x1.745d0cp0, + -0x1.745d0cp-2, + (int)2 + }, + { // Entry 173 + -0x1.745d0cp1, + -0x1.745d0cp-2, + (int)3 + }, + { // Entry 174 + -0x1.745d0cp2, + -0x1.745d0cp-2, + (int)4 + }, + { // Entry 175 + -0x1.745d0cp3, + -0x1.745d0cp-2, + (int)5 + }, + { // Entry 176 + -0x1.745d0cp4, + -0x1.745d0cp-2, + (int)6 + }, + { // Entry 177 + -0x1.745d0cp5, + -0x1.745d0cp-2, + (int)7 + }, + { // Entry 178 + -0x1.745d0cp6, + -0x1.745d0cp-2, + (int)8 + }, + { // Entry 179 + -0x1.745d0cp7, + -0x1.745d0cp-2, + (int)9 + }, + { // Entry 180 + -0x1.745d0cp8, + -0x1.745d0cp-2, + (int)10 + }, + { // Entry 181 + -0x1.1745c6p-12, + -0x1.1745c6p-2, + (int)-10 + }, + { // Entry 182 + -0x1.1745c6p-11, + -0x1.1745c6p-2, + (int)-9 + }, + { // Entry 183 + -0x1.1745c6p-10, + -0x1.1745c6p-2, + (int)-8 + }, + { // Entry 184 + -0x1.1745c6p-9, + -0x1.1745c6p-2, + (int)-7 + }, + { // Entry 185 + -0x1.1745c6p-8, + -0x1.1745c6p-2, + (int)-6 + }, + { // Entry 186 + -0x1.1745c6p-7, + -0x1.1745c6p-2, + (int)-5 + }, + { // Entry 187 + -0x1.1745c6p-6, + -0x1.1745c6p-2, + (int)-4 + }, + { // Entry 188 + -0x1.1745c6p-5, + -0x1.1745c6p-2, + (int)-3 + }, + { // Entry 189 + -0x1.1745c6p-4, + -0x1.1745c6p-2, + (int)-2 + }, + { // Entry 190 + -0x1.1745c6p-3, + -0x1.1745c6p-2, + (int)-1 + }, + { // Entry 191 + -0x1.1745c6p-2, + -0x1.1745c6p-2, + (int)0 + }, + { // Entry 192 + -0x1.1745c6p-1, + -0x1.1745c6p-2, + (int)1 + }, + { // Entry 193 + -0x1.1745c6p0, + -0x1.1745c6p-2, + (int)2 + }, + { // Entry 194 + -0x1.1745c6p1, + -0x1.1745c6p-2, + (int)3 + }, + { // Entry 195 + -0x1.1745c6p2, + -0x1.1745c6p-2, + (int)4 + }, + { // Entry 196 + -0x1.1745c6p3, + -0x1.1745c6p-2, + (int)5 + }, + { // Entry 197 + -0x1.1745c6p4, + -0x1.1745c6p-2, + (int)6 + }, + { // Entry 198 + -0x1.1745c6p5, + -0x1.1745c6p-2, + (int)7 + }, + { // Entry 199 + -0x1.1745c6p6, + -0x1.1745c6p-2, + (int)8 + }, + { // Entry 200 + -0x1.1745c6p7, + -0x1.1745c6p-2, + (int)9 + }, + { // Entry 201 + -0x1.1745c6p8, + -0x1.1745c6p-2, + (int)10 + }, + { // Entry 202 + -0x1.745dp-13, + -0x1.745dp-3, + (int)-10 + }, + { // Entry 203 + -0x1.745dp-12, + -0x1.745dp-3, + (int)-9 + }, + { // Entry 204 + -0x1.745dp-11, + -0x1.745dp-3, + (int)-8 + }, + { // Entry 205 + -0x1.745dp-10, + -0x1.745dp-3, + (int)-7 + }, + { // Entry 206 + -0x1.745dp-9, + -0x1.745dp-3, + (int)-6 + }, + { // Entry 207 + -0x1.745dp-8, + -0x1.745dp-3, + (int)-5 + }, + { // Entry 208 + -0x1.745dp-7, + -0x1.745dp-3, + (int)-4 + }, + { // Entry 209 + -0x1.745dp-6, + -0x1.745dp-3, + (int)-3 + }, + { // Entry 210 + -0x1.745dp-5, + -0x1.745dp-3, + (int)-2 + }, + { // Entry 211 + -0x1.745dp-4, + -0x1.745dp-3, + (int)-1 + }, + { // Entry 212 + -0x1.745dp-3, + -0x1.745dp-3, + (int)0 + }, + { // Entry 213 + -0x1.745dp-2, + -0x1.745dp-3, + (int)1 + }, + { // Entry 214 + -0x1.745dp-1, + -0x1.745dp-3, + (int)2 + }, + { // Entry 215 + -0x1.745dp0, + -0x1.745dp-3, + (int)3 + }, + { // Entry 216 + -0x1.745dp1, + -0x1.745dp-3, + (int)4 + }, + { // Entry 217 + -0x1.745dp2, + -0x1.745dp-3, + (int)5 + }, + { // Entry 218 + -0x1.745dp3, + -0x1.745dp-3, + (int)6 + }, + { // Entry 219 + -0x1.745dp4, + -0x1.745dp-3, + (int)7 + }, + { // Entry 220 + -0x1.745dp5, + -0x1.745dp-3, + (int)8 + }, + { // Entry 221 + -0x1.745dp6, + -0x1.745dp-3, + (int)9 + }, + { // Entry 222 + -0x1.745dp7, + -0x1.745dp-3, + (int)10 + }, + { // Entry 223 + -0x1.745ce8p-14, + -0x1.745ce8p-4, + (int)-10 + }, + { // Entry 224 + -0x1.745ce8p-13, + -0x1.745ce8p-4, + (int)-9 + }, + { // Entry 225 + -0x1.745ce8p-12, + -0x1.745ce8p-4, + (int)-8 + }, + { // Entry 226 + -0x1.745ce8p-11, + -0x1.745ce8p-4, + (int)-7 + }, + { // Entry 227 + -0x1.745ce8p-10, + -0x1.745ce8p-4, + (int)-6 + }, + { // Entry 228 + -0x1.745ce8p-9, + -0x1.745ce8p-4, + (int)-5 + }, + { // Entry 229 + -0x1.745ce8p-8, + -0x1.745ce8p-4, + (int)-4 + }, + { // Entry 230 + -0x1.745ce8p-7, + -0x1.745ce8p-4, + (int)-3 + }, + { // Entry 231 + -0x1.745ce8p-6, + -0x1.745ce8p-4, + (int)-2 + }, + { // Entry 232 + -0x1.745ce8p-5, + -0x1.745ce8p-4, + (int)-1 + }, + { // Entry 233 + -0x1.745ce8p-4, + -0x1.745ce8p-4, + (int)0 + }, + { // Entry 234 + -0x1.745ce8p-3, + -0x1.745ce8p-4, + (int)1 + }, + { // Entry 235 + -0x1.745ce8p-2, + -0x1.745ce8p-4, + (int)2 + }, + { // Entry 236 + -0x1.745ce8p-1, + -0x1.745ce8p-4, + (int)3 + }, + { // Entry 237 + -0x1.745ce8p0, + -0x1.745ce8p-4, + (int)4 + }, + { // Entry 238 + -0x1.745ce8p1, + -0x1.745ce8p-4, + (int)5 + }, + { // Entry 239 + -0x1.745ce8p2, + -0x1.745ce8p-4, + (int)6 + }, + { // Entry 240 + -0x1.745ce8p3, + -0x1.745ce8p-4, + (int)7 + }, + { // Entry 241 + -0x1.745ce8p4, + -0x1.745ce8p-4, + (int)8 + }, + { // Entry 242 + -0x1.745ce8p5, + -0x1.745ce8p-4, + (int)9 + }, + { // Entry 243 + -0x1.745ce8p6, + -0x1.745ce8p-4, + (int)10 + }, + { // Entry 244 + 0x1.80p-33, + 0x1.80p-23, + (int)-10 + }, + { // Entry 245 + 0x1.80p-32, + 0x1.80p-23, + (int)-9 + }, + { // Entry 246 + 0x1.80p-31, + 0x1.80p-23, + (int)-8 + }, + { // Entry 247 + 0x1.80p-30, + 0x1.80p-23, + (int)-7 + }, + { // Entry 248 + 0x1.80p-29, + 0x1.80p-23, + (int)-6 + }, + { // Entry 249 + 0x1.80p-28, + 0x1.80p-23, + (int)-5 + }, + { // Entry 250 + 0x1.80p-27, + 0x1.80p-23, + (int)-4 + }, + { // Entry 251 + 0x1.80p-26, + 0x1.80p-23, + (int)-3 + }, + { // Entry 252 + 0x1.80p-25, + 0x1.80p-23, + (int)-2 + }, + { // Entry 253 + 0x1.80p-24, + 0x1.80p-23, + (int)-1 + }, + { // Entry 254 + 0x1.80p-23, + 0x1.80p-23, + (int)0 + }, + { // Entry 255 + 0x1.80p-22, + 0x1.80p-23, + (int)1 + }, + { // Entry 256 + 0x1.80p-21, + 0x1.80p-23, + (int)2 + }, + { // Entry 257 + 0x1.80p-20, + 0x1.80p-23, + (int)3 + }, + { // Entry 258 + 0x1.80p-19, + 0x1.80p-23, + (int)4 + }, + { // Entry 259 + 0x1.80p-18, + 0x1.80p-23, + (int)5 + }, + { // Entry 260 + 0x1.80p-17, + 0x1.80p-23, + (int)6 + }, + { // Entry 261 + 0x1.80p-16, + 0x1.80p-23, + (int)7 + }, + { // Entry 262 + 0x1.80p-15, + 0x1.80p-23, + (int)8 + }, + { // Entry 263 + 0x1.80p-14, + 0x1.80p-23, + (int)9 + }, + { // Entry 264 + 0x1.80p-13, + 0x1.80p-23, + (int)10 + }, + { // Entry 265 + 0x1.745d48p-14, + 0x1.745d48p-4, + (int)-10 + }, + { // Entry 266 + 0x1.745d48p-13, + 0x1.745d48p-4, + (int)-9 + }, + { // Entry 267 + 0x1.745d48p-12, + 0x1.745d48p-4, + (int)-8 + }, + { // Entry 268 + 0x1.745d48p-11, + 0x1.745d48p-4, + (int)-7 + }, + { // Entry 269 + 0x1.745d48p-10, + 0x1.745d48p-4, + (int)-6 + }, + { // Entry 270 + 0x1.745d48p-9, + 0x1.745d48p-4, + (int)-5 + }, + { // Entry 271 + 0x1.745d48p-8, + 0x1.745d48p-4, + (int)-4 + }, + { // Entry 272 + 0x1.745d48p-7, + 0x1.745d48p-4, + (int)-3 + }, + { // Entry 273 + 0x1.745d48p-6, + 0x1.745d48p-4, + (int)-2 + }, + { // Entry 274 + 0x1.745d48p-5, + 0x1.745d48p-4, + (int)-1 + }, + { // Entry 275 + 0x1.745d48p-4, + 0x1.745d48p-4, + (int)0 + }, + { // Entry 276 + 0x1.745d48p-3, + 0x1.745d48p-4, + (int)1 + }, + { // Entry 277 + 0x1.745d48p-2, + 0x1.745d48p-4, + (int)2 + }, + { // Entry 278 + 0x1.745d48p-1, + 0x1.745d48p-4, + (int)3 + }, + { // Entry 279 + 0x1.745d48p0, + 0x1.745d48p-4, + (int)4 + }, + { // Entry 280 + 0x1.745d48p1, + 0x1.745d48p-4, + (int)5 + }, + { // Entry 281 + 0x1.745d48p2, + 0x1.745d48p-4, + (int)6 + }, + { // Entry 282 + 0x1.745d48p3, + 0x1.745d48p-4, + (int)7 + }, + { // Entry 283 + 0x1.745d48p4, + 0x1.745d48p-4, + (int)8 + }, + { // Entry 284 + 0x1.745d48p5, + 0x1.745d48p-4, + (int)9 + }, + { // Entry 285 + 0x1.745d48p6, + 0x1.745d48p-4, + (int)10 + }, + { // Entry 286 + 0x1.745d30p-13, + 0x1.745d30p-3, + (int)-10 + }, + { // Entry 287 + 0x1.745d30p-12, + 0x1.745d30p-3, + (int)-9 + }, + { // Entry 288 + 0x1.745d30p-11, + 0x1.745d30p-3, + (int)-8 + }, + { // Entry 289 + 0x1.745d30p-10, + 0x1.745d30p-3, + (int)-7 + }, + { // Entry 290 + 0x1.745d30p-9, + 0x1.745d30p-3, + (int)-6 + }, + { // Entry 291 + 0x1.745d30p-8, + 0x1.745d30p-3, + (int)-5 + }, + { // Entry 292 + 0x1.745d30p-7, + 0x1.745d30p-3, + (int)-4 + }, + { // Entry 293 + 0x1.745d30p-6, + 0x1.745d30p-3, + (int)-3 + }, + { // Entry 294 + 0x1.745d30p-5, + 0x1.745d30p-3, + (int)-2 + }, + { // Entry 295 + 0x1.745d30p-4, + 0x1.745d30p-3, + (int)-1 + }, + { // Entry 296 + 0x1.745d30p-3, + 0x1.745d30p-3, + (int)0 + }, + { // Entry 297 + 0x1.745d30p-2, + 0x1.745d30p-3, + (int)1 + }, + { // Entry 298 + 0x1.745d30p-1, + 0x1.745d30p-3, + (int)2 + }, + { // Entry 299 + 0x1.745d30p0, + 0x1.745d30p-3, + (int)3 + }, + { // Entry 300 + 0x1.745d30p1, + 0x1.745d30p-3, + (int)4 + }, + { // Entry 301 + 0x1.745d30p2, + 0x1.745d30p-3, + (int)5 + }, + { // Entry 302 + 0x1.745d30p3, + 0x1.745d30p-3, + (int)6 + }, + { // Entry 303 + 0x1.745d30p4, + 0x1.745d30p-3, + (int)7 + }, + { // Entry 304 + 0x1.745d30p5, + 0x1.745d30p-3, + (int)8 + }, + { // Entry 305 + 0x1.745d30p6, + 0x1.745d30p-3, + (int)9 + }, + { // Entry 306 + 0x1.745d30p7, + 0x1.745d30p-3, + (int)10 + }, + { // Entry 307 + 0x1.1745dep-12, + 0x1.1745dep-2, + (int)-10 + }, + { // Entry 308 + 0x1.1745dep-11, + 0x1.1745dep-2, + (int)-9 + }, + { // Entry 309 + 0x1.1745dep-10, + 0x1.1745dep-2, + (int)-8 + }, + { // Entry 310 + 0x1.1745dep-9, + 0x1.1745dep-2, + (int)-7 + }, + { // Entry 311 + 0x1.1745dep-8, + 0x1.1745dep-2, + (int)-6 + }, + { // Entry 312 + 0x1.1745dep-7, + 0x1.1745dep-2, + (int)-5 + }, + { // Entry 313 + 0x1.1745dep-6, + 0x1.1745dep-2, + (int)-4 + }, + { // Entry 314 + 0x1.1745dep-5, + 0x1.1745dep-2, + (int)-3 + }, + { // Entry 315 + 0x1.1745dep-4, + 0x1.1745dep-2, + (int)-2 + }, + { // Entry 316 + 0x1.1745dep-3, + 0x1.1745dep-2, + (int)-1 + }, + { // Entry 317 + 0x1.1745dep-2, + 0x1.1745dep-2, + (int)0 + }, + { // Entry 318 + 0x1.1745dep-1, + 0x1.1745dep-2, + (int)1 + }, + { // Entry 319 + 0x1.1745dep0, + 0x1.1745dep-2, + (int)2 + }, + { // Entry 320 + 0x1.1745dep1, + 0x1.1745dep-2, + (int)3 + }, + { // Entry 321 + 0x1.1745dep2, + 0x1.1745dep-2, + (int)4 + }, + { // Entry 322 + 0x1.1745dep3, + 0x1.1745dep-2, + (int)5 + }, + { // Entry 323 + 0x1.1745dep4, + 0x1.1745dep-2, + (int)6 + }, + { // Entry 324 + 0x1.1745dep5, + 0x1.1745dep-2, + (int)7 + }, + { // Entry 325 + 0x1.1745dep6, + 0x1.1745dep-2, + (int)8 + }, + { // Entry 326 + 0x1.1745dep7, + 0x1.1745dep-2, + (int)9 + }, + { // Entry 327 + 0x1.1745dep8, + 0x1.1745dep-2, + (int)10 + }, + { // Entry 328 + 0x1.745d24p-12, + 0x1.745d24p-2, + (int)-10 + }, + { // Entry 329 + 0x1.745d24p-11, + 0x1.745d24p-2, + (int)-9 + }, + { // Entry 330 + 0x1.745d24p-10, + 0x1.745d24p-2, + (int)-8 + }, + { // Entry 331 + 0x1.745d24p-9, + 0x1.745d24p-2, + (int)-7 + }, + { // Entry 332 + 0x1.745d24p-8, + 0x1.745d24p-2, + (int)-6 + }, + { // Entry 333 + 0x1.745d24p-7, + 0x1.745d24p-2, + (int)-5 + }, + { // Entry 334 + 0x1.745d24p-6, + 0x1.745d24p-2, + (int)-4 + }, + { // Entry 335 + 0x1.745d24p-5, + 0x1.745d24p-2, + (int)-3 + }, + { // Entry 336 + 0x1.745d24p-4, + 0x1.745d24p-2, + (int)-2 + }, + { // Entry 337 + 0x1.745d24p-3, + 0x1.745d24p-2, + (int)-1 + }, + { // Entry 338 + 0x1.745d24p-2, + 0x1.745d24p-2, + (int)0 + }, + { // Entry 339 + 0x1.745d24p-1, + 0x1.745d24p-2, + (int)1 + }, + { // Entry 340 + 0x1.745d24p0, + 0x1.745d24p-2, + (int)2 + }, + { // Entry 341 + 0x1.745d24p1, + 0x1.745d24p-2, + (int)3 + }, + { // Entry 342 + 0x1.745d24p2, + 0x1.745d24p-2, + (int)4 + }, + { // Entry 343 + 0x1.745d24p3, + 0x1.745d24p-2, + (int)5 + }, + { // Entry 344 + 0x1.745d24p4, + 0x1.745d24p-2, + (int)6 + }, + { // Entry 345 + 0x1.745d24p5, + 0x1.745d24p-2, + (int)7 + }, + { // Entry 346 + 0x1.745d24p6, + 0x1.745d24p-2, + (int)8 + }, + { // Entry 347 + 0x1.745d24p7, + 0x1.745d24p-2, + (int)9 + }, + { // Entry 348 + 0x1.745d24p8, + 0x1.745d24p-2, + (int)10 + }, + { // Entry 349 + 0x1.d1746ap-12, + 0x1.d1746ap-2, + (int)-10 + }, + { // Entry 350 + 0x1.d1746ap-11, + 0x1.d1746ap-2, + (int)-9 + }, + { // Entry 351 + 0x1.d1746ap-10, + 0x1.d1746ap-2, + (int)-8 + }, + { // Entry 352 + 0x1.d1746ap-9, + 0x1.d1746ap-2, + (int)-7 + }, + { // Entry 353 + 0x1.d1746ap-8, + 0x1.d1746ap-2, + (int)-6 + }, + { // Entry 354 + 0x1.d1746ap-7, + 0x1.d1746ap-2, + (int)-5 + }, + { // Entry 355 + 0x1.d1746ap-6, + 0x1.d1746ap-2, + (int)-4 + }, + { // Entry 356 + 0x1.d1746ap-5, + 0x1.d1746ap-2, + (int)-3 + }, + { // Entry 357 + 0x1.d1746ap-4, + 0x1.d1746ap-2, + (int)-2 + }, + { // Entry 358 + 0x1.d1746ap-3, + 0x1.d1746ap-2, + (int)-1 + }, + { // Entry 359 + 0x1.d1746ap-2, + 0x1.d1746ap-2, + (int)0 + }, + { // Entry 360 + 0x1.d1746ap-1, + 0x1.d1746ap-2, + (int)1 + }, + { // Entry 361 + 0x1.d1746ap0, + 0x1.d1746ap-2, + (int)2 + }, + { // Entry 362 + 0x1.d1746ap1, + 0x1.d1746ap-2, + (int)3 + }, + { // Entry 363 + 0x1.d1746ap2, + 0x1.d1746ap-2, + (int)4 + }, + { // Entry 364 + 0x1.d1746ap3, + 0x1.d1746ap-2, + (int)5 + }, + { // Entry 365 + 0x1.d1746ap4, + 0x1.d1746ap-2, + (int)6 + }, + { // Entry 366 + 0x1.d1746ap5, + 0x1.d1746ap-2, + (int)7 + }, + { // Entry 367 + 0x1.d1746ap6, + 0x1.d1746ap-2, + (int)8 + }, + { // Entry 368 + 0x1.d1746ap7, + 0x1.d1746ap-2, + (int)9 + }, + { // Entry 369 + 0x1.d1746ap8, + 0x1.d1746ap-2, + (int)10 + }, + { // Entry 370 + 0x1.1745d8p-11, + 0x1.1745d8p-1, + (int)-10 + }, + { // Entry 371 + 0x1.1745d8p-10, + 0x1.1745d8p-1, + (int)-9 + }, + { // Entry 372 + 0x1.1745d8p-9, + 0x1.1745d8p-1, + (int)-8 + }, + { // Entry 373 + 0x1.1745d8p-8, + 0x1.1745d8p-1, + (int)-7 + }, + { // Entry 374 + 0x1.1745d8p-7, + 0x1.1745d8p-1, + (int)-6 + }, + { // Entry 375 + 0x1.1745d8p-6, + 0x1.1745d8p-1, + (int)-5 + }, + { // Entry 376 + 0x1.1745d8p-5, + 0x1.1745d8p-1, + (int)-4 + }, + { // Entry 377 + 0x1.1745d8p-4, + 0x1.1745d8p-1, + (int)-3 + }, + { // Entry 378 + 0x1.1745d8p-3, + 0x1.1745d8p-1, + (int)-2 + }, + { // Entry 379 + 0x1.1745d8p-2, + 0x1.1745d8p-1, + (int)-1 + }, + { // Entry 380 + 0x1.1745d8p-1, + 0x1.1745d8p-1, + (int)0 + }, + { // Entry 381 + 0x1.1745d8p0, + 0x1.1745d8p-1, + (int)1 + }, + { // Entry 382 + 0x1.1745d8p1, + 0x1.1745d8p-1, + (int)2 + }, + { // Entry 383 + 0x1.1745d8p2, + 0x1.1745d8p-1, + (int)3 + }, + { // Entry 384 + 0x1.1745d8p3, + 0x1.1745d8p-1, + (int)4 + }, + { // Entry 385 + 0x1.1745d8p4, + 0x1.1745d8p-1, + (int)5 + }, + { // Entry 386 + 0x1.1745d8p5, + 0x1.1745d8p-1, + (int)6 + }, + { // Entry 387 + 0x1.1745d8p6, + 0x1.1745d8p-1, + (int)7 + }, + { // Entry 388 + 0x1.1745d8p7, + 0x1.1745d8p-1, + (int)8 + }, + { // Entry 389 + 0x1.1745d8p8, + 0x1.1745d8p-1, + (int)9 + }, + { // Entry 390 + 0x1.1745d8p9, + 0x1.1745d8p-1, + (int)10 + }, + { // Entry 391 + 0x1.45d17cp-11, + 0x1.45d17cp-1, + (int)-10 + }, + { // Entry 392 + 0x1.45d17cp-10, + 0x1.45d17cp-1, + (int)-9 + }, + { // Entry 393 + 0x1.45d17cp-9, + 0x1.45d17cp-1, + (int)-8 + }, + { // Entry 394 + 0x1.45d17cp-8, + 0x1.45d17cp-1, + (int)-7 + }, + { // Entry 395 + 0x1.45d17cp-7, + 0x1.45d17cp-1, + (int)-6 + }, + { // Entry 396 + 0x1.45d17cp-6, + 0x1.45d17cp-1, + (int)-5 + }, + { // Entry 397 + 0x1.45d17cp-5, + 0x1.45d17cp-1, + (int)-4 + }, + { // Entry 398 + 0x1.45d17cp-4, + 0x1.45d17cp-1, + (int)-3 + }, + { // Entry 399 + 0x1.45d17cp-3, + 0x1.45d17cp-1, + (int)-2 + }, + { // Entry 400 + 0x1.45d17cp-2, + 0x1.45d17cp-1, + (int)-1 + }, + { // Entry 401 + 0x1.45d17cp-1, + 0x1.45d17cp-1, + (int)0 + }, + { // Entry 402 + 0x1.45d17cp0, + 0x1.45d17cp-1, + (int)1 + }, + { // Entry 403 + 0x1.45d17cp1, + 0x1.45d17cp-1, + (int)2 + }, + { // Entry 404 + 0x1.45d17cp2, + 0x1.45d17cp-1, + (int)3 + }, + { // Entry 405 + 0x1.45d17cp3, + 0x1.45d17cp-1, + (int)4 + }, + { // Entry 406 + 0x1.45d17cp4, + 0x1.45d17cp-1, + (int)5 + }, + { // Entry 407 + 0x1.45d17cp5, + 0x1.45d17cp-1, + (int)6 + }, + { // Entry 408 + 0x1.45d17cp6, + 0x1.45d17cp-1, + (int)7 + }, + { // Entry 409 + 0x1.45d17cp7, + 0x1.45d17cp-1, + (int)8 + }, + { // Entry 410 + 0x1.45d17cp8, + 0x1.45d17cp-1, + (int)9 + }, + { // Entry 411 + 0x1.45d17cp9, + 0x1.45d17cp-1, + (int)10 + }, + { // Entry 412 + 0x1.745d20p-11, + 0x1.745d20p-1, + (int)-10 + }, + { // Entry 413 + 0x1.745d20p-10, + 0x1.745d20p-1, + (int)-9 + }, + { // Entry 414 + 0x1.745d20p-9, + 0x1.745d20p-1, + (int)-8 + }, + { // Entry 415 + 0x1.745d20p-8, + 0x1.745d20p-1, + (int)-7 + }, + { // Entry 416 + 0x1.745d20p-7, + 0x1.745d20p-1, + (int)-6 + }, + { // Entry 417 + 0x1.745d20p-6, + 0x1.745d20p-1, + (int)-5 + }, + { // Entry 418 + 0x1.745d20p-5, + 0x1.745d20p-1, + (int)-4 + }, + { // Entry 419 + 0x1.745d20p-4, + 0x1.745d20p-1, + (int)-3 + }, + { // Entry 420 + 0x1.745d20p-3, + 0x1.745d20p-1, + (int)-2 + }, + { // Entry 421 + 0x1.745d20p-2, + 0x1.745d20p-1, + (int)-1 + }, + { // Entry 422 + 0x1.745d20p-1, + 0x1.745d20p-1, + (int)0 + }, + { // Entry 423 + 0x1.745d20p0, + 0x1.745d20p-1, + (int)1 + }, + { // Entry 424 + 0x1.745d20p1, + 0x1.745d20p-1, + (int)2 + }, + { // Entry 425 + 0x1.745d20p2, + 0x1.745d20p-1, + (int)3 + }, + { // Entry 426 + 0x1.745d20p3, + 0x1.745d20p-1, + (int)4 + }, + { // Entry 427 + 0x1.745d20p4, + 0x1.745d20p-1, + (int)5 + }, + { // Entry 428 + 0x1.745d20p5, + 0x1.745d20p-1, + (int)6 + }, + { // Entry 429 + 0x1.745d20p6, + 0x1.745d20p-1, + (int)7 + }, + { // Entry 430 + 0x1.745d20p7, + 0x1.745d20p-1, + (int)8 + }, + { // Entry 431 + 0x1.745d20p8, + 0x1.745d20p-1, + (int)9 + }, + { // Entry 432 + 0x1.745d20p9, + 0x1.745d20p-1, + (int)10 + }, + { // Entry 433 + 0x1.a2e8c4p-11, + 0x1.a2e8c4p-1, + (int)-10 + }, + { // Entry 434 + 0x1.a2e8c4p-10, + 0x1.a2e8c4p-1, + (int)-9 + }, + { // Entry 435 + 0x1.a2e8c4p-9, + 0x1.a2e8c4p-1, + (int)-8 + }, + { // Entry 436 + 0x1.a2e8c4p-8, + 0x1.a2e8c4p-1, + (int)-7 + }, + { // Entry 437 + 0x1.a2e8c4p-7, + 0x1.a2e8c4p-1, + (int)-6 + }, + { // Entry 438 + 0x1.a2e8c4p-6, + 0x1.a2e8c4p-1, + (int)-5 + }, + { // Entry 439 + 0x1.a2e8c4p-5, + 0x1.a2e8c4p-1, + (int)-4 + }, + { // Entry 440 + 0x1.a2e8c4p-4, + 0x1.a2e8c4p-1, + (int)-3 + }, + { // Entry 441 + 0x1.a2e8c4p-3, + 0x1.a2e8c4p-1, + (int)-2 + }, + { // Entry 442 + 0x1.a2e8c4p-2, + 0x1.a2e8c4p-1, + (int)-1 + }, + { // Entry 443 + 0x1.a2e8c4p-1, + 0x1.a2e8c4p-1, + (int)0 + }, + { // Entry 444 + 0x1.a2e8c4p0, + 0x1.a2e8c4p-1, + (int)1 + }, + { // Entry 445 + 0x1.a2e8c4p1, + 0x1.a2e8c4p-1, + (int)2 + }, + { // Entry 446 + 0x1.a2e8c4p2, + 0x1.a2e8c4p-1, + (int)3 + }, + { // Entry 447 + 0x1.a2e8c4p3, + 0x1.a2e8c4p-1, + (int)4 + }, + { // Entry 448 + 0x1.a2e8c4p4, + 0x1.a2e8c4p-1, + (int)5 + }, + { // Entry 449 + 0x1.a2e8c4p5, + 0x1.a2e8c4p-1, + (int)6 + }, + { // Entry 450 + 0x1.a2e8c4p6, + 0x1.a2e8c4p-1, + (int)7 + }, + { // Entry 451 + 0x1.a2e8c4p7, + 0x1.a2e8c4p-1, + (int)8 + }, + { // Entry 452 + 0x1.a2e8c4p8, + 0x1.a2e8c4p-1, + (int)9 + }, + { // Entry 453 + 0x1.a2e8c4p9, + 0x1.a2e8c4p-1, + (int)10 + }, + { // Entry 454 + 0x1.d17468p-11, + 0x1.d17468p-1, + (int)-10 + }, + { // Entry 455 + 0x1.d17468p-10, + 0x1.d17468p-1, + (int)-9 + }, + { // Entry 456 + 0x1.d17468p-9, + 0x1.d17468p-1, + (int)-8 + }, + { // Entry 457 + 0x1.d17468p-8, + 0x1.d17468p-1, + (int)-7 + }, + { // Entry 458 + 0x1.d17468p-7, + 0x1.d17468p-1, + (int)-6 + }, + { // Entry 459 + 0x1.d17468p-6, + 0x1.d17468p-1, + (int)-5 + }, + { // Entry 460 + 0x1.d17468p-5, + 0x1.d17468p-1, + (int)-4 + }, + { // Entry 461 + 0x1.d17468p-4, + 0x1.d17468p-1, + (int)-3 + }, + { // Entry 462 + 0x1.d17468p-3, + 0x1.d17468p-1, + (int)-2 + }, + { // Entry 463 + 0x1.d17468p-2, + 0x1.d17468p-1, + (int)-1 + }, + { // Entry 464 + 0x1.d17468p-1, + 0x1.d17468p-1, + (int)0 + }, + { // Entry 465 + 0x1.d17468p0, + 0x1.d17468p-1, + (int)1 + }, + { // Entry 466 + 0x1.d17468p1, + 0x1.d17468p-1, + (int)2 + }, + { // Entry 467 + 0x1.d17468p2, + 0x1.d17468p-1, + (int)3 + }, + { // Entry 468 + 0x1.d17468p3, + 0x1.d17468p-1, + (int)4 + }, + { // Entry 469 + 0x1.d17468p4, + 0x1.d17468p-1, + (int)5 + }, + { // Entry 470 + 0x1.d17468p5, + 0x1.d17468p-1, + (int)6 + }, + { // Entry 471 + 0x1.d17468p6, + 0x1.d17468p-1, + (int)7 + }, + { // Entry 472 + 0x1.d17468p7, + 0x1.d17468p-1, + (int)8 + }, + { // Entry 473 + 0x1.d17468p8, + 0x1.d17468p-1, + (int)9 + }, + { // Entry 474 + 0x1.d17468p9, + 0x1.d17468p-1, + (int)10 + }, + { // Entry 475 + 0x1.p-10, + 0x1.p0, + (int)-10 + }, + { // Entry 476 + 0x1.p-9, + 0x1.p0, + (int)-9 + }, + { // Entry 477 + 0x1.p-8, + 0x1.p0, + (int)-8 + }, + { // Entry 478 + 0x1.p-7, + 0x1.p0, + (int)-7 + }, + { // Entry 479 + 0x1.p-6, + 0x1.p0, + (int)-6 + }, + { // Entry 480 + 0x1.p-5, + 0x1.p0, + (int)-5 + }, + { // Entry 481 + 0x1.p-4, + 0x1.p0, + (int)-4 + }, + { // Entry 482 + 0x1.p-3, + 0x1.p0, + (int)-3 + }, + { // Entry 483 + 0x1.p-2, + 0x1.p0, + (int)-2 + }, + { // Entry 484 + 0x1.p-1, + 0x1.p0, + (int)-1 + }, + { // Entry 485 + 0x1.p0, + 0x1.p0, + (int)0 + }, + { // Entry 486 + 0x1.p1, + 0x1.p0, + (int)1 + }, + { // Entry 487 + 0x1.p2, + 0x1.p0, + (int)2 + }, + { // Entry 488 + 0x1.p3, + 0x1.p0, + (int)3 + }, + { // Entry 489 + 0x1.p4, + 0x1.p0, + (int)4 + }, + { // Entry 490 + 0x1.p5, + 0x1.p0, + (int)5 + }, + { // Entry 491 + 0x1.p6, + 0x1.p0, + (int)6 + }, + { // Entry 492 + 0x1.p7, + 0x1.p0, + (int)7 + }, + { // Entry 493 + 0x1.p8, + 0x1.p0, + (int)8 + }, + { // Entry 494 + 0x1.p9, + 0x1.p0, + (int)9 + }, + { // Entry 495 + 0x1.p10, + 0x1.p0, + (int)10 + }, + { // Entry 496 + 0x1.fffffep0, + 0x1.fffffep127, + (int)-127 + }, + { // Entry 497 + 0x1.fffffep1, + 0x1.fffffep127, + (int)-126 + }, + { // Entry 498 + 0x1.fffffep117, + 0x1.fffffep127, + (int)-10 + }, + { // Entry 499 + 0x1.fffffep118, + 0x1.fffffep127, + (int)-9 + }, + { // Entry 500 + 0x1.fffffep119, + 0x1.fffffep127, + (int)-8 + }, + { // Entry 501 + 0x1.fffffep120, + 0x1.fffffep127, + (int)-7 + }, + { // Entry 502 + 0x1.fffffep121, + 0x1.fffffep127, + (int)-6 + }, + { // Entry 503 + 0x1.fffffep122, + 0x1.fffffep127, + (int)-5 + }, + { // Entry 504 + 0x1.fffffep123, + 0x1.fffffep127, + (int)-4 + }, + { // Entry 505 + 0x1.fffffep124, + 0x1.fffffep127, + (int)-3 + }, + { // Entry 506 + 0x1.fffffep125, + 0x1.fffffep127, + (int)-2 + }, + { // Entry 507 + 0x1.fffffep126, + 0x1.fffffep127, + (int)-1 + }, + { // Entry 508 + 0x1.fffffep127, + 0x1.fffffep127, + (int)0 + }, + { // Entry 509 + 0x1.p-22, + 0x1.p-149, + (int)127 + }, + { // Entry 510 + 0x1.p-23, + 0x1.p-149, + (int)126 + }, + { // Entry 511 + 0x1.p-149, + 0x1.p-149, + (int)0 + }, + { // Entry 512 + 0x1.p-148, + 0x1.p-149, + (int)1 + }, + { // Entry 513 + 0x1.p-147, + 0x1.p-149, + (int)2 + }, + { // Entry 514 + 0x1.p-146, + 0x1.p-149, + (int)3 + }, + { // Entry 515 + 0x1.p-145, + 0x1.p-149, + (int)4 + }, + { // Entry 516 + 0x1.p-144, + 0x1.p-149, + (int)5 + }, + { // Entry 517 + 0x1.p-143, + 0x1.p-149, + (int)6 + }, + { // Entry 518 + 0x1.p-142, + 0x1.p-149, + (int)7 + }, + { // Entry 519 + 0x1.p-141, + 0x1.p-149, + (int)8 + }, + { // Entry 520 + 0x1.p-140, + 0x1.p-149, + (int)9 + }, + { // Entry 521 + 0x1.p-139, + 0x1.p-149, + (int)10 + }, + { // Entry 522 + 0x1.p-129, + 0x1.p-2, + (int)-127 + }, + { // Entry 523 + 0x1.p-128, + 0x1.p-2, + (int)-126 + }, + { // Entry 524 + 0x1.p-128, + 0x1.p-1, + (int)-127 + }, + { // Entry 525 + 0x1.p-127, + 0x1.p-1, + (int)-126 + }, + { // Entry 526 + 0x1.80p-128, + 0x1.80p-1, + (int)-127 + }, + { // Entry 527 + 0x1.80p-127, + 0x1.80p-1, + (int)-126 + }, + { // Entry 528 + 0.0f, + 0x1.p-2, + (int)-149 + }, + { // Entry 529 + 0.0f, + 0x1.p-2, + (int)-148 + }, + { // Entry 530 + 0.0f, + 0x1.p-1, + (int)-149 + }, + { // Entry 531 + 0x1.p-149, + 0x1.p-1, + (int)-148 + }, + { // Entry 532 + 0.0f, + 0x1.80p-1, + (int)-149 + }, + { // Entry 533 + 0x1.80p-149, + 0x1.80p-1, + (int)-148 + }, + { // Entry 534 + 0x1.p127, + 0x1.p0, + (int)127 + }, + { // Entry 535 + 0x1.p126, + 0x1.p0, + (int)126 + }, + { // Entry 536 + 0x1.p-149, + 0x1.p-149, + (int)0 + }, + { // Entry 537 + 0x1.p-148, + 0x1.p-149, + (int)1 + }, + { // Entry 538 + 0x1.p-147, + 0x1.p-149, + (int)2 + }, + { // Entry 539 + 0x1.p-146, + 0x1.p-149, + (int)3 + }, + { // Entry 540 + 0x1.p-145, + 0x1.p-149, + (int)4 + }, + { // Entry 541 + 0x1.p-144, + 0x1.p-149, + (int)5 + }, + { // Entry 542 + 0x1.p-143, + 0x1.p-149, + (int)6 + }, + { // Entry 543 + 0x1.p-142, + 0x1.p-149, + (int)7 + }, + { // Entry 544 + 0x1.p-141, + 0x1.p-149, + (int)8 + }, + { // Entry 545 + 0x1.p-140, + 0x1.p-149, + (int)9 + }, + { // Entry 546 + 0x1.p-139, + 0x1.p-149, + (int)10 + }, + { // Entry 547 + 0x1.p-138, + 0x1.p-149, + (int)11 + }, + { // Entry 548 + 0x1.p-137, + 0x1.p-149, + (int)12 + }, + { // Entry 549 + 0x1.p-136, + 0x1.p-149, + (int)13 + }, + { // Entry 550 + 0x1.p-135, + 0x1.p-149, + (int)14 + }, + { // Entry 551 + 0x1.p-134, + 0x1.p-149, + (int)15 + }, + { // Entry 552 + 0x1.p-133, + 0x1.p-149, + (int)16 + }, + { // Entry 553 + 0x1.p-132, + 0x1.p-149, + (int)17 + }, + { // Entry 554 + 0x1.p-131, + 0x1.p-149, + (int)18 + }, + { // Entry 555 + 0x1.p-130, + 0x1.p-149, + (int)19 + }, + { // Entry 556 + 0x1.p-129, + 0x1.p-149, + (int)20 + }, + { // Entry 557 + 0x1.p-128, + 0x1.p-149, + (int)21 + }, + { // Entry 558 + 0x1.p-127, + 0x1.p-149, + (int)22 + }, + { // Entry 559 + 0x1.p-126, + 0x1.p-149, + (int)23 + }, + { // Entry 560 + 0x1.p-125, + 0x1.p-149, + (int)24 + }, + { // Entry 561 + 0x1.p-124, + 0x1.p-149, + (int)25 + }, + { // Entry 562 + 0x1.p-123, + 0x1.p-149, + (int)26 + }, + { // Entry 563 + 0x1.p-122, + 0x1.p-149, + (int)27 + }, + { // Entry 564 + 0x1.p-121, + 0x1.p-149, + (int)28 + }, + { // Entry 565 + 0x1.p-120, + 0x1.p-149, + (int)29 + }, + { // Entry 566 + 0x1.p-119, + 0x1.p-149, + (int)30 + }, + { // Entry 567 + 0x1.p-118, + 0x1.p-149, + (int)31 + }, + { // Entry 568 + 0x1.p-117, + 0x1.p-149, + (int)32 + }, + { // Entry 569 + 0x1.p-116, + 0x1.p-149, + (int)33 + }, + { // Entry 570 + 0x1.p-115, + 0x1.p-149, + (int)34 + }, + { // Entry 571 + 0x1.p-114, + 0x1.p-149, + (int)35 + }, + { // Entry 572 + 0x1.p-113, + 0x1.p-149, + (int)36 + }, + { // Entry 573 + 0x1.p-112, + 0x1.p-149, + (int)37 + }, + { // Entry 574 + 0x1.p-111, + 0x1.p-149, + (int)38 + }, + { // Entry 575 + 0x1.p-110, + 0x1.p-149, + (int)39 + }, + { // Entry 576 + 0x1.p-109, + 0x1.p-149, + (int)40 + }, + { // Entry 577 + 0x1.p-108, + 0x1.p-149, + (int)41 + }, + { // Entry 578 + 0x1.p-107, + 0x1.p-149, + (int)42 + }, + { // Entry 579 + 0x1.p-106, + 0x1.p-149, + (int)43 + }, + { // Entry 580 + 0x1.p-105, + 0x1.p-149, + (int)44 + }, + { // Entry 581 + 0x1.p-104, + 0x1.p-149, + (int)45 + }, + { // Entry 582 + 0x1.p-103, + 0x1.p-149, + (int)46 + }, + { // Entry 583 + 0x1.p-102, + 0x1.p-149, + (int)47 + }, + { // Entry 584 + 0x1.p-101, + 0x1.p-149, + (int)48 + }, + { // Entry 585 + 0x1.p-100, + 0x1.p-149, + (int)49 + }, + { // Entry 586 + 0x1.p-99, + 0x1.p-149, + (int)50 + }, + { // Entry 587 + 0x1.p-98, + 0x1.p-149, + (int)51 + }, + { // Entry 588 + 0x1.p-97, + 0x1.p-149, + (int)52 + }, + { // Entry 589 + 0x1.p-96, + 0x1.p-149, + (int)53 + }, + { // Entry 590 + 0x1.p-95, + 0x1.p-149, + (int)54 + }, + { // Entry 591 + 0x1.p-94, + 0x1.p-149, + (int)55 + }, + { // Entry 592 + 0x1.p-93, + 0x1.p-149, + (int)56 + }, + { // Entry 593 + 0x1.p-92, + 0x1.p-149, + (int)57 + }, + { // Entry 594 + 0x1.p-91, + 0x1.p-149, + (int)58 + }, + { // Entry 595 + 0x1.p-90, + 0x1.p-149, + (int)59 + }, + { // Entry 596 + 0x1.p-89, + 0x1.p-149, + (int)60 + }, + { // Entry 597 + 0x1.p-88, + 0x1.p-149, + (int)61 + }, + { // Entry 598 + 0x1.p-87, + 0x1.p-149, + (int)62 + }, + { // Entry 599 + 0x1.p-86, + 0x1.p-149, + (int)63 + }, + { // Entry 600 + 0x1.p-85, + 0x1.p-149, + (int)64 + }, + { // Entry 601 + 0x1.p-84, + 0x1.p-149, + (int)65 + }, + { // Entry 602 + 0x1.p-83, + 0x1.p-149, + (int)66 + }, + { // Entry 603 + 0x1.p-82, + 0x1.p-149, + (int)67 + }, + { // Entry 604 + 0x1.p-81, + 0x1.p-149, + (int)68 + }, + { // Entry 605 + 0x1.p-80, + 0x1.p-149, + (int)69 + }, + { // Entry 606 + 0x1.p-79, + 0x1.p-149, + (int)70 + }, + { // Entry 607 + 0x1.p-78, + 0x1.p-149, + (int)71 + }, + { // Entry 608 + 0x1.p-77, + 0x1.p-149, + (int)72 + }, + { // Entry 609 + 0x1.p-76, + 0x1.p-149, + (int)73 + }, + { // Entry 610 + 0x1.p-75, + 0x1.p-149, + (int)74 + }, + { // Entry 611 + 0x1.p-74, + 0x1.p-149, + (int)75 + }, + { // Entry 612 + 0x1.p-73, + 0x1.p-149, + (int)76 + }, + { // Entry 613 + 0x1.p-72, + 0x1.p-149, + (int)77 + }, + { // Entry 614 + 0x1.p-71, + 0x1.p-149, + (int)78 + }, + { // Entry 615 + 0x1.p-70, + 0x1.p-149, + (int)79 + }, + { // Entry 616 + 0x1.p-69, + 0x1.p-149, + (int)80 + }, + { // Entry 617 + 0x1.p-68, + 0x1.p-149, + (int)81 + }, + { // Entry 618 + 0x1.p-67, + 0x1.p-149, + (int)82 + }, + { // Entry 619 + 0x1.p-66, + 0x1.p-149, + (int)83 + }, + { // Entry 620 + 0x1.p-65, + 0x1.p-149, + (int)84 + }, + { // Entry 621 + 0x1.p-64, + 0x1.p-149, + (int)85 + }, + { // Entry 622 + 0x1.p-63, + 0x1.p-149, + (int)86 + }, + { // Entry 623 + 0x1.p-62, + 0x1.p-149, + (int)87 + }, + { // Entry 624 + 0x1.p-61, + 0x1.p-149, + (int)88 + }, + { // Entry 625 + 0x1.p-60, + 0x1.p-149, + (int)89 + }, + { // Entry 626 + 0x1.p-59, + 0x1.p-149, + (int)90 + }, + { // Entry 627 + 0x1.p-58, + 0x1.p-149, + (int)91 + }, + { // Entry 628 + 0x1.p-57, + 0x1.p-149, + (int)92 + }, + { // Entry 629 + 0x1.p-56, + 0x1.p-149, + (int)93 + }, + { // Entry 630 + 0x1.p-55, + 0x1.p-149, + (int)94 + }, + { // Entry 631 + 0x1.p-54, + 0x1.p-149, + (int)95 + }, + { // Entry 632 + 0x1.p-53, + 0x1.p-149, + (int)96 + }, + { // Entry 633 + 0x1.p-52, + 0x1.p-149, + (int)97 + }, + { // Entry 634 + 0x1.p-51, + 0x1.p-149, + (int)98 + }, + { // Entry 635 + 0x1.p-50, + 0x1.p-149, + (int)99 + }, + { // Entry 636 + 0x1.p-49, + 0x1.p-149, + (int)100 + }, + { // Entry 637 + 0x1.p-48, + 0x1.p-149, + (int)101 + }, + { // Entry 638 + 0x1.p-47, + 0x1.p-149, + (int)102 + }, + { // Entry 639 + 0x1.p-46, + 0x1.p-149, + (int)103 + }, + { // Entry 640 + 0x1.p-45, + 0x1.p-149, + (int)104 + }, + { // Entry 641 + 0x1.p-44, + 0x1.p-149, + (int)105 + }, + { // Entry 642 + 0x1.p-43, + 0x1.p-149, + (int)106 + }, + { // Entry 643 + 0x1.p-42, + 0x1.p-149, + (int)107 + }, + { // Entry 644 + 0x1.p-41, + 0x1.p-149, + (int)108 + }, + { // Entry 645 + 0x1.p-40, + 0x1.p-149, + (int)109 + }, + { // Entry 646 + 0x1.p-39, + 0x1.p-149, + (int)110 + }, + { // Entry 647 + 0x1.p-38, + 0x1.p-149, + (int)111 + }, + { // Entry 648 + 0x1.p-37, + 0x1.p-149, + (int)112 + }, + { // Entry 649 + 0x1.p-36, + 0x1.p-149, + (int)113 + }, + { // Entry 650 + 0x1.p-35, + 0x1.p-149, + (int)114 + }, + { // Entry 651 + 0x1.p-34, + 0x1.p-149, + (int)115 + }, + { // Entry 652 + 0x1.p-33, + 0x1.p-149, + (int)116 + }, + { // Entry 653 + 0x1.p-32, + 0x1.p-149, + (int)117 + }, + { // Entry 654 + 0x1.p-31, + 0x1.p-149, + (int)118 + }, + { // Entry 655 + 0x1.p-30, + 0x1.p-149, + (int)119 + }, + { // Entry 656 + 0x1.p-29, + 0x1.p-149, + (int)120 + }, + { // Entry 657 + 0x1.p-28, + 0x1.p-149, + (int)121 + }, + { // Entry 658 + 0x1.p-27, + 0x1.p-149, + (int)122 + }, + { // Entry 659 + 0x1.p-26, + 0x1.p-149, + (int)123 + }, + { // Entry 660 + 0x1.p-25, + 0x1.p-149, + (int)124 + }, + { // Entry 661 + 0x1.p-24, + 0x1.p-149, + (int)125 + }, + { // Entry 662 + 0x1.p-23, + 0x1.p-149, + (int)126 + }, + { // Entry 663 + 0x1.p-22, + 0x1.p-149, + (int)127 + }, + { // Entry 664 + 0x1.p-21, + 0x1.p-149, + (int)128 + }, + { // Entry 665 + 0x1.p-20, + 0x1.p-149, + (int)129 + }, + { // Entry 666 + 0x1.p-19, + 0x1.p-149, + (int)130 + }, + { // Entry 667 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + (int)0 + }, + { // Entry 668 + 0x1.fffffcp-126, + 0x1.fffffcp-127, + (int)1 + }, + { // Entry 669 + 0x1.fffffcp-125, + 0x1.fffffcp-127, + (int)2 + }, + { // Entry 670 + 0x1.fffffcp-124, + 0x1.fffffcp-127, + (int)3 + }, + { // Entry 671 + 0x1.fffffcp-123, + 0x1.fffffcp-127, + (int)4 + }, + { // Entry 672 + 0x1.fffffcp-122, + 0x1.fffffcp-127, + (int)5 + }, + { // Entry 673 + 0x1.fffffcp-121, + 0x1.fffffcp-127, + (int)6 + }, + { // Entry 674 + 0x1.fffffcp-120, + 0x1.fffffcp-127, + (int)7 + }, + { // Entry 675 + 0x1.fffffcp-119, + 0x1.fffffcp-127, + (int)8 + }, + { // Entry 676 + 0x1.fffffcp-118, + 0x1.fffffcp-127, + (int)9 + }, + { // Entry 677 + 0x1.fffffcp-117, + 0x1.fffffcp-127, + (int)10 + }, + { // Entry 678 + 0x1.fffffcp-116, + 0x1.fffffcp-127, + (int)11 + }, + { // Entry 679 + 0x1.fffffcp-115, + 0x1.fffffcp-127, + (int)12 + }, + { // Entry 680 + 0x1.fffffcp-114, + 0x1.fffffcp-127, + (int)13 + }, + { // Entry 681 + 0x1.fffffcp-113, + 0x1.fffffcp-127, + (int)14 + }, + { // Entry 682 + 0x1.fffffcp-112, + 0x1.fffffcp-127, + (int)15 + }, + { // Entry 683 + 0x1.fffffcp-111, + 0x1.fffffcp-127, + (int)16 + }, + { // Entry 684 + 0x1.fffffcp-110, + 0x1.fffffcp-127, + (int)17 + }, + { // Entry 685 + 0x1.fffffcp-109, + 0x1.fffffcp-127, + (int)18 + }, + { // Entry 686 + 0x1.fffffcp-108, + 0x1.fffffcp-127, + (int)19 + }, + { // Entry 687 + 0x1.fffffcp-107, + 0x1.fffffcp-127, + (int)20 + }, + { // Entry 688 + 0x1.fffffcp-106, + 0x1.fffffcp-127, + (int)21 + }, + { // Entry 689 + 0x1.fffffcp-105, + 0x1.fffffcp-127, + (int)22 + }, + { // Entry 690 + 0x1.fffffcp-104, + 0x1.fffffcp-127, + (int)23 + }, + { // Entry 691 + 0x1.fffffcp-103, + 0x1.fffffcp-127, + (int)24 + }, + { // Entry 692 + 0x1.fffffcp-102, + 0x1.fffffcp-127, + (int)25 + }, + { // Entry 693 + 0x1.fffffcp-101, + 0x1.fffffcp-127, + (int)26 + }, + { // Entry 694 + 0x1.fffffcp-100, + 0x1.fffffcp-127, + (int)27 + }, + { // Entry 695 + 0x1.fffffcp-99, + 0x1.fffffcp-127, + (int)28 + }, + { // Entry 696 + 0x1.fffffcp-98, + 0x1.fffffcp-127, + (int)29 + }, + { // Entry 697 + 0x1.fffffcp-97, + 0x1.fffffcp-127, + (int)30 + }, + { // Entry 698 + 0x1.fffffcp-96, + 0x1.fffffcp-127, + (int)31 + }, + { // Entry 699 + 0x1.fffffcp-95, + 0x1.fffffcp-127, + (int)32 + }, + { // Entry 700 + 0x1.fffffcp-94, + 0x1.fffffcp-127, + (int)33 + }, + { // Entry 701 + 0x1.fffffcp-93, + 0x1.fffffcp-127, + (int)34 + }, + { // Entry 702 + 0x1.fffffcp-92, + 0x1.fffffcp-127, + (int)35 + }, + { // Entry 703 + 0x1.fffffcp-91, + 0x1.fffffcp-127, + (int)36 + }, + { // Entry 704 + 0x1.fffffcp-90, + 0x1.fffffcp-127, + (int)37 + }, + { // Entry 705 + 0x1.fffffcp-89, + 0x1.fffffcp-127, + (int)38 + }, + { // Entry 706 + 0x1.fffffcp-88, + 0x1.fffffcp-127, + (int)39 + }, + { // Entry 707 + 0x1.fffffcp-87, + 0x1.fffffcp-127, + (int)40 + }, + { // Entry 708 + 0x1.fffffcp-86, + 0x1.fffffcp-127, + (int)41 + }, + { // Entry 709 + 0x1.fffffcp-85, + 0x1.fffffcp-127, + (int)42 + }, + { // Entry 710 + 0x1.fffffcp-84, + 0x1.fffffcp-127, + (int)43 + }, + { // Entry 711 + 0x1.fffffcp-83, + 0x1.fffffcp-127, + (int)44 + }, + { // Entry 712 + 0x1.fffffcp-82, + 0x1.fffffcp-127, + (int)45 + }, + { // Entry 713 + 0x1.fffffcp-81, + 0x1.fffffcp-127, + (int)46 + }, + { // Entry 714 + 0x1.fffffcp-80, + 0x1.fffffcp-127, + (int)47 + }, + { // Entry 715 + 0x1.fffffcp-79, + 0x1.fffffcp-127, + (int)48 + }, + { // Entry 716 + 0x1.fffffcp-78, + 0x1.fffffcp-127, + (int)49 + }, + { // Entry 717 + 0x1.fffffcp-77, + 0x1.fffffcp-127, + (int)50 + }, + { // Entry 718 + 0x1.fffffcp-76, + 0x1.fffffcp-127, + (int)51 + }, + { // Entry 719 + 0x1.fffffcp-75, + 0x1.fffffcp-127, + (int)52 + }, + { // Entry 720 + 0x1.fffffcp-74, + 0x1.fffffcp-127, + (int)53 + }, + { // Entry 721 + 0x1.fffffcp-73, + 0x1.fffffcp-127, + (int)54 + }, + { // Entry 722 + 0x1.fffffcp-72, + 0x1.fffffcp-127, + (int)55 + }, + { // Entry 723 + 0x1.fffffcp-71, + 0x1.fffffcp-127, + (int)56 + }, + { // Entry 724 + 0x1.fffffcp-70, + 0x1.fffffcp-127, + (int)57 + }, + { // Entry 725 + 0x1.fffffcp-69, + 0x1.fffffcp-127, + (int)58 + }, + { // Entry 726 + 0x1.fffffcp-68, + 0x1.fffffcp-127, + (int)59 + }, + { // Entry 727 + 0x1.fffffcp-67, + 0x1.fffffcp-127, + (int)60 + }, + { // Entry 728 + 0x1.fffffcp-66, + 0x1.fffffcp-127, + (int)61 + }, + { // Entry 729 + 0x1.fffffcp-65, + 0x1.fffffcp-127, + (int)62 + }, + { // Entry 730 + 0x1.fffffcp-64, + 0x1.fffffcp-127, + (int)63 + }, + { // Entry 731 + 0x1.fffffcp-63, + 0x1.fffffcp-127, + (int)64 + }, + { // Entry 732 + 0x1.fffffcp-62, + 0x1.fffffcp-127, + (int)65 + }, + { // Entry 733 + 0x1.fffffcp-61, + 0x1.fffffcp-127, + (int)66 + }, + { // Entry 734 + 0x1.fffffcp-60, + 0x1.fffffcp-127, + (int)67 + }, + { // Entry 735 + 0x1.fffffcp-59, + 0x1.fffffcp-127, + (int)68 + }, + { // Entry 736 + 0x1.fffffcp-58, + 0x1.fffffcp-127, + (int)69 + }, + { // Entry 737 + 0x1.fffffcp-57, + 0x1.fffffcp-127, + (int)70 + }, + { // Entry 738 + 0x1.fffffcp-56, + 0x1.fffffcp-127, + (int)71 + }, + { // Entry 739 + 0x1.fffffcp-55, + 0x1.fffffcp-127, + (int)72 + }, + { // Entry 740 + 0x1.fffffcp-54, + 0x1.fffffcp-127, + (int)73 + }, + { // Entry 741 + 0x1.fffffcp-53, + 0x1.fffffcp-127, + (int)74 + }, + { // Entry 742 + 0x1.fffffcp-52, + 0x1.fffffcp-127, + (int)75 + }, + { // Entry 743 + 0x1.fffffcp-51, + 0x1.fffffcp-127, + (int)76 + }, + { // Entry 744 + 0x1.fffffcp-50, + 0x1.fffffcp-127, + (int)77 + }, + { // Entry 745 + 0x1.fffffcp-49, + 0x1.fffffcp-127, + (int)78 + }, + { // Entry 746 + 0x1.fffffcp-48, + 0x1.fffffcp-127, + (int)79 + }, + { // Entry 747 + 0x1.fffffcp-47, + 0x1.fffffcp-127, + (int)80 + }, + { // Entry 748 + 0x1.fffffcp-46, + 0x1.fffffcp-127, + (int)81 + }, + { // Entry 749 + 0x1.fffffcp-45, + 0x1.fffffcp-127, + (int)82 + }, + { // Entry 750 + 0x1.fffffcp-44, + 0x1.fffffcp-127, + (int)83 + }, + { // Entry 751 + 0x1.fffffcp-43, + 0x1.fffffcp-127, + (int)84 + }, + { // Entry 752 + 0x1.fffffcp-42, + 0x1.fffffcp-127, + (int)85 + }, + { // Entry 753 + 0x1.fffffcp-41, + 0x1.fffffcp-127, + (int)86 + }, + { // Entry 754 + 0x1.fffffcp-40, + 0x1.fffffcp-127, + (int)87 + }, + { // Entry 755 + 0x1.fffffcp-39, + 0x1.fffffcp-127, + (int)88 + }, + { // Entry 756 + 0x1.fffffcp-38, + 0x1.fffffcp-127, + (int)89 + }, + { // Entry 757 + 0x1.fffffcp-37, + 0x1.fffffcp-127, + (int)90 + }, + { // Entry 758 + 0x1.fffffcp-36, + 0x1.fffffcp-127, + (int)91 + }, + { // Entry 759 + 0x1.fffffcp-35, + 0x1.fffffcp-127, + (int)92 + }, + { // Entry 760 + 0x1.fffffcp-34, + 0x1.fffffcp-127, + (int)93 + }, + { // Entry 761 + 0x1.fffffcp-33, + 0x1.fffffcp-127, + (int)94 + }, + { // Entry 762 + 0x1.fffffcp-32, + 0x1.fffffcp-127, + (int)95 + }, + { // Entry 763 + 0x1.fffffcp-31, + 0x1.fffffcp-127, + (int)96 + }, + { // Entry 764 + 0x1.fffffcp-30, + 0x1.fffffcp-127, + (int)97 + }, + { // Entry 765 + 0x1.fffffcp-29, + 0x1.fffffcp-127, + (int)98 + }, + { // Entry 766 + 0x1.fffffcp-28, + 0x1.fffffcp-127, + (int)99 + }, + { // Entry 767 + 0x1.fffffcp-27, + 0x1.fffffcp-127, + (int)100 + }, + { // Entry 768 + 0x1.fffffcp-26, + 0x1.fffffcp-127, + (int)101 + }, + { // Entry 769 + 0x1.fffffcp-25, + 0x1.fffffcp-127, + (int)102 + }, + { // Entry 770 + 0x1.fffffcp-24, + 0x1.fffffcp-127, + (int)103 + }, + { // Entry 771 + 0x1.fffffcp-23, + 0x1.fffffcp-127, + (int)104 + }, + { // Entry 772 + 0x1.fffffcp-22, + 0x1.fffffcp-127, + (int)105 + }, + { // Entry 773 + 0x1.fffffcp-21, + 0x1.fffffcp-127, + (int)106 + }, + { // Entry 774 + 0x1.fffffcp-20, + 0x1.fffffcp-127, + (int)107 + }, + { // Entry 775 + 0x1.fffffcp-19, + 0x1.fffffcp-127, + (int)108 + }, + { // Entry 776 + 0x1.fffffcp-18, + 0x1.fffffcp-127, + (int)109 + }, + { // Entry 777 + 0x1.fffffcp-17, + 0x1.fffffcp-127, + (int)110 + }, + { // Entry 778 + 0x1.fffffcp-16, + 0x1.fffffcp-127, + (int)111 + }, + { // Entry 779 + 0x1.fffffcp-15, + 0x1.fffffcp-127, + (int)112 + }, + { // Entry 780 + 0x1.fffffcp-14, + 0x1.fffffcp-127, + (int)113 + }, + { // Entry 781 + 0x1.fffffcp-13, + 0x1.fffffcp-127, + (int)114 + }, + { // Entry 782 + 0x1.fffffcp-12, + 0x1.fffffcp-127, + (int)115 + }, + { // Entry 783 + 0x1.fffffcp-11, + 0x1.fffffcp-127, + (int)116 + }, + { // Entry 784 + 0x1.fffffcp-10, + 0x1.fffffcp-127, + (int)117 + }, + { // Entry 785 + 0x1.fffffcp-9, + 0x1.fffffcp-127, + (int)118 + }, + { // Entry 786 + 0x1.fffffcp-8, + 0x1.fffffcp-127, + (int)119 + }, + { // Entry 787 + 0x1.fffffcp-7, + 0x1.fffffcp-127, + (int)120 + }, + { // Entry 788 + 0x1.fffffcp-6, + 0x1.fffffcp-127, + (int)121 + }, + { // Entry 789 + 0x1.fffffcp-5, + 0x1.fffffcp-127, + (int)122 + }, + { // Entry 790 + 0x1.fffffcp-4, + 0x1.fffffcp-127, + (int)123 + }, + { // Entry 791 + 0x1.fffffcp-3, + 0x1.fffffcp-127, + (int)124 + }, + { // Entry 792 + 0x1.fffffcp-2, + 0x1.fffffcp-127, + (int)125 + }, + { // Entry 793 + 0x1.fffffcp-1, + 0x1.fffffcp-127, + (int)126 + }, + { // Entry 794 + 0x1.fffffcp0, + 0x1.fffffcp-127, + (int)127 + }, + { // Entry 795 + 0x1.fffffcp1, + 0x1.fffffcp-127, + (int)128 + }, + { // Entry 796 + 0x1.fffffcp2, + 0x1.fffffcp-127, + (int)129 + }, + { // Entry 797 + 0x1.fffffcp3, + 0x1.fffffcp-127, + (int)130 + }, + { // Entry 798 + 0x1.p0, + 0x1.p-149, + (int)149 + }, + { // Entry 799 + 0x1.p-1, + 0x1.p-149, + (int)148 + }, + { // Entry 800 + 0x1.fffffcp22, + 0x1.fffffcp-127, + (int)149 + }, + { // Entry 801 + 0x1.fffffcp21, + 0x1.fffffcp-127, + (int)148 + }, + { // Entry 802 + 0x1.p-126, + 0x1.p-149, + (int)23 + }, + { // Entry 803 + 0x1.p-127, + 0x1.p-149, + (int)22 + }, + { // Entry 804 + 0x1.fffffcp-104, + 0x1.fffffcp-127, + (int)23 + }, + { // Entry 805 + 0x1.fffffcp-105, + 0x1.fffffcp-127, + (int)22 + }, + { // Entry 806 + 0x1.p-149, + 0x1.p-149, + (int)0 + }, + { // Entry 807 + 0x1.p-148, + 0x1.p-149, + (int)1 + }, + { // Entry 808 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + (int)0 + }, + { // Entry 809 + 0x1.fffffcp-126, + 0x1.fffffcp-127, + (int)1 + }, + { // Entry 810 + 0.0, + 0.0f, + (int)0 + }, + { // Entry 811 + -0.0, + -0.0f, + (int)0 + }, + { // Entry 812 + 0.0, + 0.0f, + (int)1 + }, + { // Entry 813 + -0.0, + -0.0f, + (int)1 + }, + { // Entry 814 + 0.0, + 0.0f, + (int)-1 + }, + { // Entry 815 + -0.0, + -0.0f, + (int)-1 + }, + { // Entry 816 + 0.0, + 0.0f, + (int)127 + }, + { // Entry 817 + -0.0, + -0.0f, + (int)127 + }, + { // Entry 818 + 0.0, + 0.0f, + (int)-127 + }, + { // Entry 819 + -0.0, + -0.0f, + (int)-127 + }, + { // Entry 820 + HUGE_VALF, + HUGE_VALF, + (int)0 + }, + { // Entry 821 + 0x1.fffffep127, + 0x1.fffffep127, + (int)0 + }, + { // Entry 822 + 0x1.p-126, + 0x1.p-126, + (int)0 + }, + { // Entry 823 + 0x1.fffffcp-127, + 0x1.fffffcp-127, + (int)0 + }, + { // Entry 824 + 0x1.p-149, + 0x1.p-149, + (int)0 + }, + { // Entry 825 + -0x1.p-149, + -0x1.p-149, + (int)0 + }, + { // Entry 826 + -0x1.fffffcp-127, + -0x1.fffffcp-127, + (int)0 + }, + { // Entry 827 + -0x1.p-126, + -0x1.p-126, + (int)0 + }, + { // Entry 828 + -0x1.fffffep127, + -0x1.fffffep127, + (int)0 + }, + { // Entry 829 + -HUGE_VALF, + -HUGE_VALF, + (int)0 + }, + { // Entry 830 + HUGE_VALF, + HUGE_VALF, + (int)1 + }, + { // Entry 831 + -HUGE_VALF, + -HUGE_VALF, + (int)1 + }, + { // Entry 832 + HUGE_VALF, + HUGE_VALF, + (int)-1 + }, + { // Entry 833 + -HUGE_VALF, + -HUGE_VALF, + (int)-1 + }, + { // Entry 834 + HUGE_VALF, + HUGE_VALF, + (int)127 + }, + { // Entry 835 + -HUGE_VALF, + -HUGE_VALF, + (int)127 + }, + { // Entry 836 + HUGE_VALF, + HUGE_VALF, + (int)-127 + }, + { // Entry 837 + -HUGE_VALF, + -HUGE_VALF, + (int)-127 + }, + { // Entry 838 + HUGE_VALF, + 0x1.fffffep127, + (int)1 + }, + { // Entry 839 + HUGE_VALF, + 0x1.fffffep127, + (int)127 + }, + { // Entry 840 + -HUGE_VALF, + -0x1.fffffep127, + (int)1 + }, + { // Entry 841 + -HUGE_VALF, + -0x1.fffffep127, + (int)127 + }, + { // Entry 842 + HUGE_VALF, + 0x1.p-126, + (int)40000 + }, + { // Entry 843 + HUGE_VALF, + 0x1.p-149, + (int)40000 + }, + { // Entry 844 + -HUGE_VALF, + -0x1.p-126, + (int)40000 + }, + { // Entry 845 + -HUGE_VALF, + -0x1.p-149, + (int)40000 + }, + { // Entry 846 + 0x1.p-127, + 0x1.p-126, + (int)-1 + }, + { // Entry 847 + 0x1.fffffcp-128, + 0x1.fffffcp-127, + (int)-1 + }, + { // Entry 848 + 0.0f, + 0x1.p-149, + (int)-1 + }, + { // Entry 849 + -0.0f, + -0x1.p-149, + (int)-1 + }, + { // Entry 850 + -0x1.fffffcp-128, + -0x1.fffffcp-127, + (int)-1 + }, + { // Entry 851 + -0x1.p-127, + -0x1.p-126, + (int)-1 + }, + { // Entry 852 + 0.0f, + 0x1.fffffep127, + (int)-40000 + }, + { // Entry 853 + -0.0f, + -0x1.fffffep127, + (int)-40000 + } +}; diff --git a/tests/math_data/significand_intel_data.h b/tests/math_data/significand_intel_data.h new file mode 100644 index 000000000..107627287 --- /dev/null +++ b/tests/math_data/significand_intel_data.h @@ -0,0 +1,638 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_significand_intel_data[] = { + { // Entry 0 + 0x1.p0, + 0x1.0p100 + }, + { // Entry 1 + 0x1.2aaaaaaaaaaab0p0, + 0x1.2aaaaaaaaaaabp100 + }, + { // Entry 2 + 0x1.55555555555560p0, + 0x1.5555555555556p100 + }, + { // Entry 3 + 0x1.80000000000010p0, + 0x1.8000000000001p100 + }, + { // Entry 4 + 0x1.aaaaaaaaaaaac0p0, + 0x1.aaaaaaaaaaaacp100 + }, + { // Entry 5 + 0x1.d5555555555570p0, + 0x1.d555555555557p100 + }, + { // Entry 6 + 0x1.p0, + 0x1.0p101 + }, + { // Entry 7 + 0x1.p0, + 0x1.0p200 + }, + { // Entry 8 + 0x1.2aaaaaaaaaaab0p0, + 0x1.2aaaaaaaaaaabp200 + }, + { // Entry 9 + 0x1.55555555555560p0, + 0x1.5555555555556p200 + }, + { // Entry 10 + 0x1.80000000000010p0, + 0x1.8000000000001p200 + }, + { // Entry 11 + 0x1.aaaaaaaaaaaac0p0, + 0x1.aaaaaaaaaaaacp200 + }, + { // Entry 12 + 0x1.d5555555555570p0, + 0x1.d555555555557p200 + }, + { // Entry 13 + 0x1.p0, + 0x1.0p201 + }, + { // Entry 14 + 0x1.p0, + 0x1.0p1000 + }, + { // Entry 15 + 0x1.2aaaaaaaaaaab0p0, + 0x1.2aaaaaaaaaaabp1000 + }, + { // Entry 16 + 0x1.55555555555560p0, + 0x1.5555555555556p1000 + }, + { // Entry 17 + 0x1.80000000000010p0, + 0x1.8000000000001p1000 + }, + { // Entry 18 + 0x1.aaaaaaaaaaaac0p0, + 0x1.aaaaaaaaaaaacp1000 + }, + { // Entry 19 + 0x1.d5555555555570p0, + 0x1.d555555555557p1000 + }, + { // Entry 20 + 0x1.p0, + 0x1.0p1001 + }, + { // Entry 21 + -0x1.p0, + -0x1.0p101 + }, + { // Entry 22 + -0x1.d5555555555550p0, + -0x1.d555555555555p100 + }, + { // Entry 23 + -0x1.aaaaaaaaaaaaa0p0, + -0x1.aaaaaaaaaaaaap100 + }, + { // Entry 24 + -0x1.7ffffffffffff0p0, + -0x1.7ffffffffffffp100 + }, + { // Entry 25 + -0x1.55555555555540p0, + -0x1.5555555555554p100 + }, + { // Entry 26 + -0x1.2aaaaaaaaaaa90p0, + -0x1.2aaaaaaaaaaa9p100 + }, + { // Entry 27 + -0x1.p0, + -0x1.0p100 + }, + { // Entry 28 + -0x1.p0, + -0x1.0p201 + }, + { // Entry 29 + -0x1.d5555555555550p0, + -0x1.d555555555555p200 + }, + { // Entry 30 + -0x1.aaaaaaaaaaaaa0p0, + -0x1.aaaaaaaaaaaaap200 + }, + { // Entry 31 + -0x1.7ffffffffffff0p0, + -0x1.7ffffffffffffp200 + }, + { // Entry 32 + -0x1.55555555555540p0, + -0x1.5555555555554p200 + }, + { // Entry 33 + -0x1.2aaaaaaaaaaa90p0, + -0x1.2aaaaaaaaaaa9p200 + }, + { // Entry 34 + -0x1.p0, + -0x1.0p200 + }, + { // Entry 35 + -0x1.p0, + -0x1.0p1001 + }, + { // Entry 36 + -0x1.d5555555555550p0, + -0x1.d555555555555p1000 + }, + { // Entry 37 + -0x1.aaaaaaaaaaaaa0p0, + -0x1.aaaaaaaaaaaaap1000 + }, + { // Entry 38 + -0x1.7ffffffffffff0p0, + -0x1.7ffffffffffffp1000 + }, + { // Entry 39 + -0x1.55555555555540p0, + -0x1.5555555555554p1000 + }, + { // Entry 40 + -0x1.2aaaaaaaaaaa90p0, + -0x1.2aaaaaaaaaaa9p1000 + }, + { // Entry 41 + -0x1.p0, + -0x1.0p1000 + }, + { // Entry 42 + 0x1.p0, + 0x1.0p50 + }, + { // Entry 43 + 0x1.p0, + 0x1.0p51 + }, + { // Entry 44 + 0x1.p0, + 0x1.0p52 + }, + { // Entry 45 + 0x1.p0, + 0x1.0p53 + }, + { // Entry 46 + 0x1.p0, + 0x1.0p-1026 + }, + { // Entry 47 + 0x1.ae8ba2e8ba2e80p0, + 0x1.ae8ba2e8ba2e8p-1024 + }, + { // Entry 48 + 0x1.8e8ba2e8ba2e80p0, + 0x1.8e8ba2e8ba2e8p-1023 + }, + { // Entry 49 + 0x1.22e8ba2e8ba2e0p0, + 0x1.22e8ba2e8ba2ep-1022 + }, + { // Entry 50 + 0x1.7e8ba2e8ba2e80p0, + 0x1.7e8ba2e8ba2e8p-1022 + }, + { // Entry 51 + 0x1.da2e8ba2e8ba20p0, + 0x1.da2e8ba2e8ba2p-1022 + }, + { // Entry 52 + 0x1.1ae8ba2e8ba2e0p0, + 0x1.1ae8ba2e8ba2ep-1021 + }, + { // Entry 53 + 0x1.48ba2e8ba2e8b0p0, + 0x1.48ba2e8ba2e8bp-1021 + }, + { // Entry 54 + 0x1.768ba2e8ba2e80p0, + 0x1.768ba2e8ba2e8p-1021 + }, + { // Entry 55 + 0x1.a45d1745d17450p0, + 0x1.a45d1745d1745p-1021 + }, + { // Entry 56 + 0x1.d22e8ba2e8ba20p0, + 0x1.d22e8ba2e8ba2p-1021 + }, + { // Entry 57 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-1021 + }, + { // Entry 58 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp50 + }, + { // Entry 59 + 0x1.p0, + 0x1.0p51 + }, + { // Entry 60 + 0x1.00000000000010p0, + 0x1.0000000000001p51 + }, + { // Entry 61 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp51 + }, + { // Entry 62 + 0x1.p0, + 0x1.0p52 + }, + { // Entry 63 + 0x1.00000000000010p0, + 0x1.0000000000001p52 + }, + { // Entry 64 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp52 + }, + { // Entry 65 + 0x1.p0, + 0x1.0p53 + }, + { // Entry 66 + 0x1.00000000000010p0, + 0x1.0000000000001p53 + }, + { // Entry 67 + -0x1.00000000000010p0, + -0x1.0000000000001p51 + }, + { // Entry 68 + -0x1.p0, + -0x1.0p51 + }, + { // Entry 69 + -0x1.fffffffffffff0p0, + -0x1.fffffffffffffp50 + }, + { // Entry 70 + -0x1.00000000000010p0, + -0x1.0000000000001p52 + }, + { // Entry 71 + -0x1.p0, + -0x1.0p52 + }, + { // Entry 72 + -0x1.fffffffffffff0p0, + -0x1.fffffffffffffp51 + }, + { // Entry 73 + -0x1.00000000000010p0, + -0x1.0000000000001p53 + }, + { // Entry 74 + -0x1.p0, + -0x1.0p53 + }, + { // Entry 75 + -0x1.fffffffffffff0p0, + -0x1.fffffffffffffp52 + }, + { // Entry 76 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp1023 + }, + { // Entry 77 + -0x1.fffffffffffff0p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 78 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-7 + }, + { // Entry 79 + 0x1.p0, + 0x1.0p-6 + }, + { // Entry 80 + 0x1.00000000000010p0, + 0x1.0000000000001p-6 + }, + { // Entry 81 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-6 + }, + { // Entry 82 + 0x1.p0, + 0x1.0p-5 + }, + { // Entry 83 + 0x1.00000000000010p0, + 0x1.0000000000001p-5 + }, + { // Entry 84 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-5 + }, + { // Entry 85 + 0x1.p0, + 0x1.0p-4 + }, + { // Entry 86 + 0x1.00000000000010p0, + 0x1.0000000000001p-4 + }, + { // Entry 87 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-4 + }, + { // Entry 88 + 0x1.p0, + 0x1.0p-3 + }, + { // Entry 89 + 0x1.00000000000010p0, + 0x1.0000000000001p-3 + }, + { // Entry 90 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-3 + }, + { // Entry 91 + 0x1.p0, + 0x1.0p-2 + }, + { // Entry 92 + 0x1.00000000000010p0, + 0x1.0000000000001p-2 + }, + { // Entry 93 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-2 + }, + { // Entry 94 + 0x1.p0, + 0x1.0p-1 + }, + { // Entry 95 + 0x1.00000000000010p0, + 0x1.0000000000001p-1 + }, + { // Entry 96 + -0x1.p0, + -0x1.0p-1074 + }, + { // Entry 97 + -0.0, + -0.0 + }, + { // Entry 98 + 0x1.p0, + 0x1.0p-1074 + }, + { // Entry 99 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 100 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 101 + 0x1.00000000000010p0, + 0x1.0000000000001p0 + }, + { // Entry 102 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp0 + }, + { // Entry 103 + 0x1.p0, + 0x1.0p1 + }, + { // Entry 104 + 0x1.00000000000010p0, + 0x1.0000000000001p1 + }, + { // Entry 105 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp1 + }, + { // Entry 106 + 0x1.p0, + 0x1.0p2 + }, + { // Entry 107 + 0x1.00000000000010p0, + 0x1.0000000000001p2 + }, + { // Entry 108 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp2 + }, + { // Entry 109 + 0x1.p0, + 0x1.0p3 + }, + { // Entry 110 + 0x1.00000000000010p0, + 0x1.0000000000001p3 + }, + { // Entry 111 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp3 + }, + { // Entry 112 + 0x1.p0, + 0x1.0p4 + }, + { // Entry 113 + 0x1.00000000000010p0, + 0x1.0000000000001p4 + }, + { // Entry 114 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp4 + }, + { // Entry 115 + 0x1.p0, + 0x1.0p5 + }, + { // Entry 116 + 0x1.00000000000010p0, + 0x1.0000000000001p5 + }, + { // Entry 117 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp5 + }, + { // Entry 118 + 0x1.p0, + 0x1.0p6 + }, + { // Entry 119 + 0x1.00000000000010p0, + 0x1.0000000000001p6 + }, + { // Entry 120 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp6 + }, + { // Entry 121 + 0x1.p0, + 0x1.0p7 + }, + { // Entry 122 + 0x1.00000000000010p0, + 0x1.0000000000001p7 + }, + { // Entry 123 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 124 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 125 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp1023 + }, + { // Entry 126 + -0x1.fffffffffffff0p0, + -0x1.fffffffffffffp1023 + }, + { // Entry 127 + 0x1.ffffffffffffe0p0, + 0x1.ffffffffffffep1023 + }, + { // Entry 128 + -0x1.ffffffffffffe0p0, + -0x1.ffffffffffffep1023 + }, + { // Entry 129 + 0x1.921fb54442d180p0, + 0x1.921fb54442d18p1 + }, + { // Entry 130 + -0x1.921fb54442d180p0, + -0x1.921fb54442d18p1 + }, + { // Entry 131 + 0x1.921fb54442d180p0, + 0x1.921fb54442d18p0 + }, + { // Entry 132 + -0x1.921fb54442d180p0, + -0x1.921fb54442d18p0 + }, + { // Entry 133 + 0x1.00000000000010p0, + 0x1.0000000000001p0 + }, + { // Entry 134 + -0x1.00000000000010p0, + -0x1.0000000000001p0 + }, + { // Entry 135 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 136 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 137 + 0x1.fffffffffffff0p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 138 + -0x1.fffffffffffff0p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 139 + 0x1.921fb54442d180p0, + 0x1.921fb54442d18p-1 + }, + { // Entry 140 + -0x1.921fb54442d180p0, + -0x1.921fb54442d18p-1 + }, + { // Entry 141 + 0x1.00000000000010p0, + 0x1.0000000000001p-1022 + }, + { // Entry 142 + -0x1.00000000000010p0, + -0x1.0000000000001p-1022 + }, + { // Entry 143 + 0x1.p0, + 0x1.0p-1022 + }, + { // Entry 144 + -0x1.p0, + -0x1.0p-1022 + }, + { // Entry 145 + 0x1.ffffffffffffe0p0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 146 + -0x1.ffffffffffffe0p0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 147 + 0x1.ffffffffffffc0p0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 148 + -0x1.ffffffffffffc0p0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 149 + 0x1.p0, + 0x1.0p-1073 + }, + { // Entry 150 + -0x1.p0, + -0x1.0p-1073 + }, + { // Entry 151 + 0x1.p0, + 0x1.0p-1074 + }, + { // Entry 152 + -0x1.p0, + -0x1.0p-1074 + }, + { // Entry 153 + 0.0, + 0.0 + }, + { // Entry 154 + -0.0, + -0.0 + } +}; diff --git a/tests/math_data/significandf_intel_data.h b/tests/math_data/significandf_intel_data.h new file mode 100644 index 000000000..47869b7df --- /dev/null +++ b/tests/math_data/significandf_intel_data.h @@ -0,0 +1,526 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_significandf_intel_data[] = { + { // Entry 0 + 0x1.p0, + 0x1.p100 + }, + { // Entry 1 + 0x1.2aaaaap0, + 0x1.2aaaaap100 + }, + { // Entry 2 + 0x1.555554p0, + 0x1.555554p100 + }, + { // Entry 3 + 0x1.7ffffep0, + 0x1.7ffffep100 + }, + { // Entry 4 + 0x1.aaaaa8p0, + 0x1.aaaaa8p100 + }, + { // Entry 5 + 0x1.d55552p0, + 0x1.d55552p100 + }, + { // Entry 6 + 0x1.fffffcp0, + 0x1.fffffcp100 + }, + { // Entry 7 + -0x1.p0, + -0x1.p101 + }, + { // Entry 8 + -0x1.d55556p0, + -0x1.d55556p100 + }, + { // Entry 9 + -0x1.aaaaacp0, + -0x1.aaaaacp100 + }, + { // Entry 10 + -0x1.800002p0, + -0x1.800002p100 + }, + { // Entry 11 + -0x1.555558p0, + -0x1.555558p100 + }, + { // Entry 12 + -0x1.2aaaaep0, + -0x1.2aaaaep100 + }, + { // Entry 13 + -0x1.000004p0, + -0x1.000004p100 + }, + { // Entry 14 + 0x1.p0, + 0x1.p21 + }, + { // Entry 15 + 0x1.p0, + 0x1.p22 + }, + { // Entry 16 + 0x1.p0, + 0x1.p23 + }, + { // Entry 17 + 0x1.p0, + 0x1.p24 + }, + { // Entry 18 + 0x1.p0, + 0x1.p-130 + }, + { // Entry 19 + 0x1.ae8ba0p0, + 0x1.ae8ba0p-128 + }, + { // Entry 20 + 0x1.8e8ba0p0, + 0x1.8e8ba0p-127 + }, + { // Entry 21 + 0x1.22e8b8p0, + 0x1.22e8b8p-126 + }, + { // Entry 22 + 0x1.7e8ba0p0, + 0x1.7e8ba0p-126 + }, + { // Entry 23 + 0x1.da2e88p0, + 0x1.da2e88p-126 + }, + { // Entry 24 + 0x1.1ae8b8p0, + 0x1.1ae8b8p-125 + }, + { // Entry 25 + 0x1.48ba2cp0, + 0x1.48ba2cp-125 + }, + { // Entry 26 + 0x1.768ba0p0, + 0x1.768ba0p-125 + }, + { // Entry 27 + 0x1.a45d14p0, + 0x1.a45d14p-125 + }, + { // Entry 28 + 0x1.d22e88p0, + 0x1.d22e88p-125 + }, + { // Entry 29 + 0x1.fffffcp0, + 0x1.fffffcp-125 + }, + { // Entry 30 + 0x1.fffffep0, + 0x1.fffffep21 + }, + { // Entry 31 + 0x1.p0, + 0x1.p22 + }, + { // Entry 32 + 0x1.000002p0, + 0x1.000002p22 + }, + { // Entry 33 + 0x1.fffffep0, + 0x1.fffffep22 + }, + { // Entry 34 + 0x1.p0, + 0x1.p23 + }, + { // Entry 35 + 0x1.000002p0, + 0x1.000002p23 + }, + { // Entry 36 + 0x1.fffffep0, + 0x1.fffffep23 + }, + { // Entry 37 + 0x1.p0, + 0x1.p24 + }, + { // Entry 38 + 0x1.000002p0, + 0x1.000002p24 + }, + { // Entry 39 + -0x1.000002p0, + -0x1.000002p22 + }, + { // Entry 40 + -0x1.p0, + -0x1.p22 + }, + { // Entry 41 + -0x1.fffffep0, + -0x1.fffffep21 + }, + { // Entry 42 + -0x1.000002p0, + -0x1.000002p23 + }, + { // Entry 43 + -0x1.p0, + -0x1.p23 + }, + { // Entry 44 + -0x1.fffffep0, + -0x1.fffffep22 + }, + { // Entry 45 + -0x1.000002p0, + -0x1.000002p24 + }, + { // Entry 46 + -0x1.p0, + -0x1.p24 + }, + { // Entry 47 + -0x1.fffffep0, + -0x1.fffffep23 + }, + { // Entry 48 + 0x1.fffffep0, + 0x1.fffffep127 + }, + { // Entry 49 + -0x1.fffffep0, + -0x1.fffffep127 + }, + { // Entry 50 + 0x1.fffffep0, + 0x1.fffffep-7 + }, + { // Entry 51 + 0x1.p0, + 0x1.p-6 + }, + { // Entry 52 + 0x1.000002p0, + 0x1.000002p-6 + }, + { // Entry 53 + 0x1.fffffep0, + 0x1.fffffep-6 + }, + { // Entry 54 + 0x1.p0, + 0x1.p-5 + }, + { // Entry 55 + 0x1.000002p0, + 0x1.000002p-5 + }, + { // Entry 56 + 0x1.fffffep0, + 0x1.fffffep-5 + }, + { // Entry 57 + 0x1.p0, + 0x1.p-4 + }, + { // Entry 58 + 0x1.000002p0, + 0x1.000002p-4 + }, + { // Entry 59 + 0x1.fffffep0, + 0x1.fffffep-4 + }, + { // Entry 60 + 0x1.p0, + 0x1.p-3 + }, + { // Entry 61 + 0x1.000002p0, + 0x1.000002p-3 + }, + { // Entry 62 + 0x1.fffffep0, + 0x1.fffffep-3 + }, + { // Entry 63 + 0x1.p0, + 0x1.p-2 + }, + { // Entry 64 + 0x1.000002p0, + 0x1.000002p-2 + }, + { // Entry 65 + 0x1.fffffep0, + 0x1.fffffep-2 + }, + { // Entry 66 + 0x1.p0, + 0x1.p-1 + }, + { // Entry 67 + 0x1.000002p0, + 0x1.000002p-1 + }, + { // Entry 68 + -0x1.p0, + -0x1.p-149 + }, + { // Entry 69 + 0.0, + 0.0 + }, + { // Entry 70 + 0x1.p0, + 0x1.p-149 + }, + { // Entry 71 + 0x1.fffffep0, + 0x1.fffffep-1 + }, + { // Entry 72 + 0x1.p0, + 0x1.p0 + }, + { // Entry 73 + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 74 + 0x1.fffffep0, + 0x1.fffffep0 + }, + { // Entry 75 + 0x1.p0, + 0x1.p1 + }, + { // Entry 76 + 0x1.000002p0, + 0x1.000002p1 + }, + { // Entry 77 + 0x1.fffffep0, + 0x1.fffffep1 + }, + { // Entry 78 + 0x1.p0, + 0x1.p2 + }, + { // Entry 79 + 0x1.000002p0, + 0x1.000002p2 + }, + { // Entry 80 + 0x1.fffffep0, + 0x1.fffffep2 + }, + { // Entry 81 + 0x1.p0, + 0x1.p3 + }, + { // Entry 82 + 0x1.000002p0, + 0x1.000002p3 + }, + { // Entry 83 + 0x1.fffffep0, + 0x1.fffffep3 + }, + { // Entry 84 + 0x1.p0, + 0x1.p4 + }, + { // Entry 85 + 0x1.000002p0, + 0x1.000002p4 + }, + { // Entry 86 + 0x1.fffffep0, + 0x1.fffffep4 + }, + { // Entry 87 + 0x1.p0, + 0x1.p5 + }, + { // Entry 88 + 0x1.000002p0, + 0x1.000002p5 + }, + { // Entry 89 + 0x1.fffffep0, + 0x1.fffffep5 + }, + { // Entry 90 + 0x1.p0, + 0x1.p6 + }, + { // Entry 91 + 0x1.000002p0, + 0x1.000002p6 + }, + { // Entry 92 + 0x1.fffffep0, + 0x1.fffffep6 + }, + { // Entry 93 + 0x1.p0, + 0x1.p7 + }, + { // Entry 94 + 0x1.000002p0, + 0x1.000002p7 + }, + { // Entry 95 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 96 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 97 + 0x1.fffffep0, + 0x1.fffffep127 + }, + { // Entry 98 + -0x1.fffffep0, + -0x1.fffffep127 + }, + { // Entry 99 + 0x1.fffffcp0, + 0x1.fffffcp127 + }, + { // Entry 100 + -0x1.fffffcp0, + -0x1.fffffcp127 + }, + { // Entry 101 + 0x1.921fb6p0, + 0x1.921fb6p1 + }, + { // Entry 102 + -0x1.921fb6p0, + -0x1.921fb6p1 + }, + { // Entry 103 + 0x1.921fb6p0, + 0x1.921fb6p0 + }, + { // Entry 104 + -0x1.921fb6p0, + -0x1.921fb6p0 + }, + { // Entry 105 + 0x1.000002p0, + 0x1.000002p0 + }, + { // Entry 106 + -0x1.000002p0, + -0x1.000002p0 + }, + { // Entry 107 + 0x1.p0, + 0x1.p0 + }, + { // Entry 108 + -0x1.p0, + -0x1.p0 + }, + { // Entry 109 + 0x1.fffffep0, + 0x1.fffffep-1 + }, + { // Entry 110 + -0x1.fffffep0, + -0x1.fffffep-1 + }, + { // Entry 111 + 0x1.921fb6p0, + 0x1.921fb6p-1 + }, + { // Entry 112 + -0x1.921fb6p0, + -0x1.921fb6p-1 + }, + { // Entry 113 + 0x1.000002p0, + 0x1.000002p-126 + }, + { // Entry 114 + -0x1.000002p0, + -0x1.000002p-126 + }, + { // Entry 115 + 0x1.p0, + 0x1.p-126 + }, + { // Entry 116 + -0x1.p0, + -0x1.p-126 + }, + { // Entry 117 + 0x1.fffffcp0, + 0x1.fffffcp-127 + }, + { // Entry 118 + -0x1.fffffcp0, + -0x1.fffffcp-127 + }, + { // Entry 119 + 0x1.fffff8p0, + 0x1.fffff8p-127 + }, + { // Entry 120 + -0x1.fffff8p0, + -0x1.fffff8p-127 + }, + { // Entry 121 + 0x1.p0, + 0x1.p-148 + }, + { // Entry 122 + -0x1.p0, + -0x1.p-148 + }, + { // Entry 123 + 0x1.p0, + 0x1.p-149 + }, + { // Entry 124 + -0x1.p0, + -0x1.p-149 + }, + { // Entry 125 + 0.0, + 0.0f + }, + { // Entry 126 + -0.0, + -0.0f + } +}; diff --git a/tests/math_sin_intel_data.h b/tests/math_data/sin_intel_data.h similarity index 100% rename from tests/math_sin_intel_data.h rename to tests/math_data/sin_intel_data.h diff --git a/tests/math_sincos_intel_data.h b/tests/math_data/sincos_intel_data.h similarity index 100% rename from tests/math_sincos_intel_data.h rename to tests/math_data/sincos_intel_data.h diff --git a/tests/math_sincosf_intel_data.h b/tests/math_data/sincosf_intel_data.h similarity index 100% rename from tests/math_sincosf_intel_data.h rename to tests/math_data/sincosf_intel_data.h diff --git a/tests/math_sinf_intel_data.h b/tests/math_data/sinf_intel_data.h similarity index 100% rename from tests/math_sinf_intel_data.h rename to tests/math_data/sinf_intel_data.h diff --git a/tests/math_data/sinh_intel_data.h b/tests/math_data/sinh_intel_data.h new file mode 100644 index 000000000..bebc19297 --- /dev/null +++ b/tests/math_data/sinh_intel_data.h @@ -0,0 +1,3054 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_sinh_intel_data[] = { + { // Entry 0 + -0x1.20000000000f30000000003d82666666p-21, + -0x1.2p-21 + }, + { // Entry 1 + 0x1.20000000000f30000000003d82666666p-21, + 0x1.2p-21 + }, + { // Entry 2 + -0x1.f9225f7e3193c80156e29378c34b23d3p831, + -0x1.20b0659d8a7e1p9 + }, + { // Entry 3 + 0x1.f9225f7e3193c80156e29378c34b23d3p831, + 0x1.20b0659d8a7e1p9 + }, + { // Entry 4 + -0x1.653a9c0c08b00f3a2fd5ec9fb1093ff9p52, + -0x1.288f5c28f5c28p5 + }, + { // Entry 5 + 0x1.653a9c0c08b00f3a2fd5ec9fb1093ff9p52, + 0x1.288f5c28f5c28p5 + }, + { // Entry 6 + -0x1.45f775546a77d77fe6234ab5d4ab1036p-1, + -0x1.3333333333333p-1 + }, + { // Entry 7 + 0x1.45f775546a77d77fe6234ab5d4ab1036p-1, + 0x1.3333333333333p-1 + }, + { // Entry 8 + -0x1.e128d3a99c4b28216511a7ad98d106f0p911, + -0x1.3c640p9 + }, + { // Entry 9 + 0x1.e128d3a99c4b28216511a7ad98d106f0p911, + 0x1.3c640p9 + }, + { // Entry 10 + -0x1.41ab9d8bc0cbf81eac0e2bbbbbeab96cp-5, + -0x1.41967803312afp-5 + }, + { // Entry 11 + 0x1.41ab9d8bc0cbf81eac0e2bbbbbeab96cp-5, + 0x1.41967803312afp-5 + }, + { // Entry 12 + -0x1.f5f62d444f24c3bee8aeb75a413b8101p941, + -0x1.46cf1a4e8eff8p9 + }, + { // Entry 13 + 0x1.f5f62d444f24c3bee8aeb75a413b8101p941, + 0x1.46cf1a4e8eff8p9 + }, + { // Entry 14 + -0x1.fd0d27f4cfe98801d15fa2d48e5a54c0p952, + -0x1.4aa0d96719fc6p9 + }, + { // Entry 15 + 0x1.fd0d27f4cfe98801d15fa2d48e5a54c0p952, + 0x1.4aa0d96719fc6p9 + }, + { // Entry 16 + -0x1.f7667599728a17ff07667fe41510ac6cp13, + -0x1.4c2b291cfadd2p3 + }, + { // Entry 17 + 0x1.f7667599728a17ff07667fe41510ac6cp13, + 0x1.4c2b291cfadd2p3 + }, + { // Entry 18 + -0x1.eb34f0a92ee7280128c114f07d355776p958, + -0x1.4cb09e65eb930p9 + }, + { // Entry 19 + 0x1.eb34f0a92ee7280128c114f07d355776p958, + 0x1.4cb09e65eb930p9 + }, + { // Entry 20 + -0x1.d2108e9aa1b124168960a67f1cb28b07p960, + -0x1.4d5b56d5b55acp9 + }, + { // Entry 21 + 0x1.d2108e9aa1b124168960a67f1cb28b07p960, + 0x1.4d5b56d5b55acp9 + }, + { // Entry 22 + -0x1.f68d7cf30e0123c2164c1368d213f9b5p970, + -0x1.50dc3739dde8ep9 + }, + { // Entry 23 + 0x1.f68d7cf30e0123c2164c1368d213f9b5p970, + 0x1.50dc3739dde8ep9 + }, + { // Entry 24 + -0x1.fd799430443f0800ef2fcf2cd9da9697p975, + -0x1.529994bb15795p9 + }, + { // Entry 25 + 0x1.fd799430443f0800ef2fcf2cd9da9697p975, + 0x1.529994bb15795p9 + }, + { // Entry 26 + -0x1.e7b36eb1f1e698017d905c91e25df616p1005, + -0x1.5cf9ace27d120p9 + }, + { // Entry 27 + 0x1.e7b36eb1f1e698017d905c91e25df616p1005, + 0x1.5cf9ace27d120p9 + }, + { // Entry 28 + -0x1.99d18edc5720a8018d0c8bfbf7d98f9ap1011, + -0x1.5ef7bdef7c2eep9 + }, + { // Entry 29 + 0x1.99d18edc5720a8018d0c8bfbf7d98f9ap1011, + 0x1.5ef7bdef7c2eep9 + }, + { // Entry 30 + -0x1.f3ae6e6ad6cf33f952b8d7d26abcd946p1013, + -0x1.5fc2907bbfb53p9 + }, + { // Entry 31 + 0x1.f3ae6e6ad6cf33f952b8d7d26abcd946p1013, + 0x1.5fc2907bbfb53p9 + }, + { // Entry 32 + -0x1.fffffffffeb2a1b0e263ac68076ed4e0p1022, + -0x1.62e42fefa39eap9 + }, + { // Entry 33 + 0x1.fffffffffeb2a1b0e263ac68076ed4e0p1022, + 0x1.62e42fefa39eap9 + }, + { // Entry 34 + -0x1.94f8e42c219097ffbf5323a28f7d715cp-2, + -0x1.8b1896d9e5343p-2 + }, + { // Entry 35 + 0x1.94f8e42c219097ffbf5323a28f7d715cp-2, + 0x1.8b1896d9e5343p-2 + }, + { // Entry 36 + -0x1.90p-1069, + -0x1.9p-1069 + }, + { // Entry 37 + 0x1.90p-1069, + 0x1.9p-1069 + }, + { // Entry 38 + -0x1.a45c4bfc4132c8e8dd4e44e918fef502p-2, + -0x1.995e6ee493fe5p-2 + }, + { // Entry 39 + 0x1.a45c4bfc4132c8e8dd4e44e918fef502p-2, + 0x1.995e6ee493fe5p-2 + }, + { // Entry 40 + -0x1.c7a103379809b38132350ca766cba44bp-1, + -0x1.9a495ea447852p-1 + }, + { // Entry 41 + 0x1.c7a103379809b38132350ca766cba44bp-1, + 0x1.9a495ea447852p-1 + }, + { // Entry 42 + -0x1.9bfa3403f8d457fffa246d880ef814f1p-5, + -0x1.9bcdcc408ced3p-5 + }, + { // Entry 43 + 0x1.9bfa3403f8d457fffa246d880ef814f1p-5, + 0x1.9bcdcc408ced3p-5 + }, + { // Entry 44 + -0x1.aa8c3d4cb5bd9ffffe5e559c563d669cp-5, + -0x1.aa5af545ae880p-5 + }, + { // Entry 45 + 0x1.aa8c3d4cb5bd9ffffe5e559c563d669cp-5, + 0x1.aa5af545ae880p-5 + }, + { // Entry 46 + -0x1.e17e32eb8e6ce8f6dad6a738fa5f0b8ap-2, + -0x1.d15037f2ebe3cp-2 + }, + { // Entry 47 + 0x1.e17e32eb8e6ce8f6dad6a738fa5f0b8ap-2, + 0x1.d15037f2ebe3cp-2 + }, + { // Entry 48 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 49 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 50 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 51 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 52 + 0x1.000000000000100000000aaaaaaaaaaap-41, + 0x1.0000000000001p-41 + }, + { // Entry 53 + -0x1.000000000000100000000aaaaaaaaaaap-41, + -0x1.0000000000001p-41 + }, + { // Entry 54 + 0x1.41c7a8814c78683cdbc165597ca61d23p368, + 0x1.0000000000007p8 + }, + { // Entry 55 + -0x1.41c7a8814c78683cdbc165597ca61d23p368, + -0x1.0000000000007p8 + }, + { // Entry 56 + 0x1.1f43febb6d5ed7f79073c9dea85050fep45, + 0x1.0000000e0p5 + }, + { // Entry 57 + -0x1.1f43febb6d5ed7f79073c9dea85050fep45, + -0x1.0000000e0p5 + }, + { // Entry 58 + 0x1.749ea5cf24c2a801014b24d9686ff306p10, + 0x1.0000000ffe017p3 + }, + { // Entry 59 + -0x1.749ea5cf24c2a801014b24d9686ff306p10, + -0x1.0000000ffe017p3 + }, + { // Entry 60 + 0x1.0f2ebe19aebbcffe11114fde20a8b25dp22, + 0x1.0000001p4 + }, + { // Entry 61 + -0x1.0f2ebe19aebbcffe11114fde20a8b25dp22, + -0x1.0000001p4 + }, + { // Entry 62 + 0x1.d03d0547eb5af7ff9287bfe9ef08d02cp1, + 0x1.0000040p1 + }, + { // Entry 63 + -0x1.d03d0547eb5af7ff9287bfe9ef08d02cp1, + -0x1.0000040p1 + }, + { // Entry 64 + 0x1.94dbdfbb66bc651ee76572119d9c1c4cp737, + 0x1.0000202p9 + }, + { // Entry 65 + -0x1.94dbdfbb66bc651ee76572119d9c1c4cp737, + -0x1.0000202p9 + }, + { // Entry 66 + 0x1.203fc65a034d07ffda891ef079ee632dp45, + 0x1.00070p5 + }, + { // Entry 67 + -0x1.203fc65a034d07ffda891ef079ee632dp45, + -0x1.00070p5 + }, + { // Entry 68 + 0x1.043203c63ca348000c2d50e004eab9dfp-3, + 0x1.03801bba53d5fp-3 + }, + { // Entry 69 + -0x1.043203c63ca348000c2d50e004eab9dfp-3, + -0x1.03801bba53d5fp-3 + }, + { // Entry 70 + 0x1.d9ceb6fb3af22800eba0709ab550eb83p4, + 0x1.0539a9db00fb0p2 + }, + { // Entry 71 + -0x1.d9ceb6fb3af22800eba0709ab550eb83p4, + -0x1.0539a9db00fb0p2 + }, + { // Entry 72 + 0x1.19d9db769b3073db5694464547980ab3p-1, + 0x1.0d44121952313p-1 + }, + { // Entry 73 + -0x1.19d9db769b3073db5694464547980ab3p-1, + -0x1.0d44121952313p-1 + }, + { // Entry 74 + 0x1.11aa874937f657fefeb22f10657675b2p-3, + 0x1.10dbb163423cfp-3 + }, + { // Entry 75 + -0x1.11aa874937f657fefeb22f10657675b2p-3, + -0x1.10dbb163423cfp-3 + }, + { // Entry 76 + 0x1.a4e4693413b9970755c15633af25f96bp399, + 0x1.15c18de877563p8 + }, + { // Entry 77 + -0x1.a4e4693413b9970755c15633af25f96bp399, + -0x1.15c18de877563p8 + }, + { // Entry 78 + 0x1.1fae3d9220dd280102c022b12bc3f6fep-2, + 0x1.1c065802b26eap-2 + }, + { // Entry 79 + -0x1.1fae3d9220dd280102c022b12bc3f6fep-2, + -0x1.1c065802b26eap-2 + }, + { // Entry 80 + 0x1.20000000000f30000000003d82666666p-21, + 0x1.2p-21 + }, + { // Entry 81 + -0x1.20000000000f30000000003d82666666p-21, + -0x1.2p-21 + }, + { // Entry 82 + 0x1.35a9257a5a1cb7fecfa291714fac9f89p-1, + 0x1.25589e6453a79p-1 + }, + { // Entry 83 + -0x1.35a9257a5a1cb7fecfa291714fac9f89p-1, + -0x1.25589e6453a79p-1 + }, + { // Entry 84 + 0x1.eaa521edf1bc28014602191ce618c05fp845, + 0x1.2586ca9cf411bp9 + }, + { // Entry 85 + -0x1.eaa521edf1bc28014602191ce618c05fp845, + -0x1.2586ca9cf411bp9 + }, + { // Entry 86 + 0x1.6a09e667f3bc9b61130bc056d478d834p25, + 0x1.25e4f7b2737fap4 + }, + { // Entry 87 + -0x1.6a09e667f3bc9b61130bc056d478d834p25, + -0x1.25e4f7b2737fap4 + }, + { // Entry 88 + 0x1.2a9bbf545f09f7fffc2fd473fc2f8a9ep-2, + 0x1.2687ce7bd7353p-2 + }, + { // Entry 89 + -0x1.2a9bbf545f09f7fffc2fd473fc2f8a9ep-2, + -0x1.2687ce7bd7353p-2 + }, + { // Entry 90 + 0x1.2e6ae008ae071731ab9829f451a64edcp-2, + 0x1.2a2f795d6b514p-2 + }, + { // Entry 91 + -0x1.2e6ae008ae071731ab9829f451a64edcp-2, + -0x1.2a2f795d6b514p-2 + }, + { // Entry 92 + 0x1.fffffffffff84dc369f81dfdbc383332p25, + 0x1.2b708872320dep4 + }, + { // Entry 93 + -0x1.fffffffffff84dc369f81dfdbc383332p25, + -0x1.2b708872320dep4 + }, + { // Entry 94 + 0x1.7c12b8d57fdcf7fffa9ce5e99a4163dep0, + 0x1.2fac64a42ceefp0 + }, + { // Entry 95 + -0x1.7c12b8d57fdcf7fffa9ce5e99a4163dep0, + -0x1.2fac64a42ceefp0 + }, + { // Entry 96 + 0x1.dc851a55686d48012add3c02a54cc4d9p875, + 0x1.2fe8bcd183299p9 + }, + { // Entry 97 + -0x1.dc851a55686d48012add3c02a54cc4d9p875, + -0x1.2fe8bcd183299p9 + }, + { // Entry 98 + 0x1.42546737e09d68014ec9badd9df8fee3p-1, + 0x1.30208b74d1760p-1 + }, + { // Entry 99 + -0x1.42546737e09d68014ec9badd9df8fee3p-1, + -0x1.30208b74d1760p-1 + }, + { // Entry 100 + 0x1.ff12f7296b0408017eaaf48fbf280399p877, + 0x1.30a324d6033b5p9 + }, + { // Entry 101 + -0x1.ff12f7296b0408017eaaf48fbf280399p877, + -0x1.30a324d6033b5p9 + }, + { // Entry 102 + 0x1.46c46118f79ad3e3a58cffe90ae6c228p-1, + 0x1.33ep-1 + }, + { // Entry 103 + -0x1.46c46118f79ad3e3a58cffe90ae6c228p-1, + -0x1.33ep-1 + }, + { // Entry 104 + 0x1.4715736c9497d3c2ba6fecc679c26499p-1, + 0x1.342454787e0eap-1 + }, + { // Entry 105 + -0x1.4715736c9497d3c2ba6fecc679c26499p-1, + -0x1.342454787e0eap-1 + }, + { // Entry 106 + 0x1.8b2e83486133082860f65d0b54a3ff4cp0, + 0x1.380p0 + }, + { // Entry 107 + -0x1.8b2e83486133082860f65d0b54a3ff4cp0, + -0x1.380p0 + }, + { // Entry 108 + 0x1.94743c1df51b480057352f3dbc3a206dp0, + 0x1.3d0p0 + }, + { // Entry 109 + -0x1.94743c1df51b480057352f3dbc3a206dp0, + -0x1.3d0p0 + }, + { // Entry 110 + 0x1.43f3767f52a3a8603144ec06b8fc89a2p-2, + 0x1.3ec6f4738ef75p-2 + }, + { // Entry 111 + -0x1.43f3767f52a3a8603144ec06b8fc89a2p-2, + -0x1.3ec6f4738ef75p-2 + }, + { // Entry 112 + 0x1.411bd68cf1f6682ad666958c437bc7d6p-5, + 0x1.4106cd4f76086p-5 + }, + { // Entry 113 + -0x1.411bd68cf1f6682ad666958c437bc7d6p-5, + -0x1.4106cd4f76086p-5 + }, + { // Entry 114 + 0x1.f1ef9c8a4fdae801b19f8e42eff2c4a8p929, + 0x1.42a565e456e04p9 + }, + { // Entry 115 + -0x1.f1ef9c8a4fdae801b19f8e42eff2c4a8p929, + -0x1.42a565e456e04p9 + }, + { // Entry 116 + 0x1.59ae6cfb065053d12a7ee2829e50cbc0p-1, + 0x1.43af5aa457830p-1 + }, + { // Entry 117 + -0x1.59ae6cfb065053d12a7ee2829e50cbc0p-1, + -0x1.43af5aa457830p-1 + }, + { // Entry 118 + 0x1.5a16aa3594c9d3c64013364ec2c00447p-1, + 0x1.4405baf340402p-1 + }, + { // Entry 119 + -0x1.5a16aa3594c9d3c64013364ec2c00447p-1, + -0x1.4405baf340402p-1 + }, + { // Entry 120 + 0x1.f4ec44194b642801a4afd4c50633e8aap937, + 0x1.456bf23e02428p9 + }, + { // Entry 121 + -0x1.f4ec44194b642801a4afd4c50633e8aap937, + -0x1.456bf23e02428p9 + }, + { // Entry 122 + 0x1.ea91d9533b394801bf3d3ec8f88de568p938, + 0x1.45c1feef8086cp9 + }, + { // Entry 123 + -0x1.ea91d9533b394801bf3d3ec8f88de568p938, + -0x1.45c1feef8086cp9 + }, + { // Entry 124 + 0x1.5c98a49e6503ac198ec2bf98d4df0ce2p-1, + 0x1.4618fe408b57ep-1 + }, + { // Entry 125 + -0x1.5c98a49e6503ac198ec2bf98d4df0ce2p-1, + -0x1.4618fe408b57ep-1 + }, + { // Entry 126 + 0x1.4f14e08c88501827cbe80379c7e7c8c3p-2, + 0x1.495f61b2c806cp-2 + }, + { // Entry 127 + -0x1.4f14e08c88501827cbe80379c7e7c8c3p-2, + -0x1.495f61b2c806cp-2 + }, + { // Entry 128 + 0x1.50000000006078000000084f22cccccdp-20, + 0x1.5p-20 + }, + { // Entry 129 + -0x1.50000000006078000000084f22cccccdp-20, + -0x1.5p-20 + }, + { // Entry 130 + 0x1.6e81c7d17d1df3beb45414ca53bc3f28p-1, + 0x1.54c834c39835cp-1 + }, + { // Entry 131 + -0x1.6e81c7d17d1df3beb45414ca53bc3f28p-1, + -0x1.54c834c39835cp-1 + }, + { // Entry 132 + 0x1.9548e9688fb2e800c466e7d893328f68p991, + 0x1.5807dc787a5d5p9 + }, + { // Entry 133 + -0x1.9548e9688fb2e800c466e7d893328f68p991, + -0x1.5807dc787a5d5p9 + }, + { // Entry 134 + 0x1.85442a2969ace4a71757c1cdd6ab1b82p1007, + 0x1.5d8e43cd6785dp9 + }, + { // Entry 135 + -0x1.85442a2969ace4a71757c1cdd6ab1b82p1007, + -0x1.5d8e43cd6785dp9 + }, + { // Entry 136 + 0x1.f2a3c29fc6d723a63e349bbcd7894a8ap1007, + 0x1.5dadf5d1e452cp9 + }, + { // Entry 137 + -0x1.f2a3c29fc6d723a63e349bbcd7894a8ap1007, + -0x1.5dadf5d1e452cp9 + }, + { // Entry 138 + 0x1.6487aa6e34cb57fefbc4f4ef7b7281efp-2, + 0x1.5db17c4a60fe4p-2 + }, + { // Entry 139 + -0x1.6487aa6e34cb57fefbc4f4ef7b7281efp-2, + -0x1.5db17c4a60fe4p-2 + }, + { // Entry 140 + 0x1.edcb14879613e80176087c1a76dec97cp1008, + 0x1.5e056ed40e56ep9 + }, + { // Entry 141 + -0x1.edcb14879613e80176087c1a76dec97cp1008, + -0x1.5e056ed40e56ep9 + }, + { // Entry 142 + 0x1.6093d5bf2580f00bcdc6c88ac35d2640p-6, + 0x1.608cdeb3ec111p-6 + }, + { // Entry 143 + -0x1.6093d5bf2580f00bcdc6c88ac35d2640p-6, + -0x1.608cdeb3ec111p-6 + }, + { // Entry 144 + 0x1.614e81af3113300dfbdf1ed60454760dp-6, + 0x1.61477f8e69928p-6 + }, + { // Entry 145 + -0x1.614e81af3113300dfbdf1ed60454760dp-6, + -0x1.61477f8e69928p-6 + }, + { // Entry 146 + 0x1.96faa872a06aa3003f5158de9c570302p1023, + 0x1.631f86ac0611bp9 + }, + { // Entry 147 + -0x1.96faa872a06aa3003f5158de9c570302p1023, + -0x1.631f86ac0611bp9 + }, + { // Entry 148 + 0x1.bf668fc6f4f9d31f753c408261bb02b4p1023, + 0x1.632ba58eae071p9 + }, + { // Entry 149 + -0x1.bf668fc6f4f9d31f753c408261bb02b4p1023, + -0x1.632ba58eae071p9 + }, + { // Entry 150 + 0x1.ffffffffbcd3ae595303e74abb3fd75dp1023, + 0x1.633ce8fb9f771p9 + }, + { // Entry 151 + -0x1.ffffffffbcd3ae595303e74abb3fd75dp1023, + -0x1.633ce8fb9f771p9 + }, + { // Entry 152 + 0x1.fffffffff093ae594ed7508a02429436p1023, + 0x1.633ce8fb9f840p9 + }, + { // Entry 153 + -0x1.fffffffff093ae594ed7508a02429436p1023, + -0x1.633ce8fb9f840p9 + }, + { // Entry 154 + 0x1.fffffffff713ae594eafc080a48289f9p1023, + 0x1.633ce8fb9f85ap9 + }, + { // Entry 155 + -0x1.fffffffff713ae594eafc080a48289f9p1023, + -0x1.633ce8fb9f85ap9 + }, + { // Entry 156 + 0x1.63ceae09cb498fefee897d9d09f0f101p-6, + 0x1.63c7858c9e520p-6 + }, + { // Entry 157 + -0x1.63ceae09cb498fefee897d9d09f0f101p-6, + -0x1.63c7858c9e520p-6 + }, + { // Entry 158 + 0x1.650506712af37ff54f81db8832a797e9p-6, + 0x1.64fdcb29465a9p-6 + }, + { // Entry 159 + -0x1.650506712af37ff54f81db8832a797e9p-6, + -0x1.64fdcb29465a9p-6 + }, + { // Entry 160 + 0x1.8465153de7c007fffdec1cebc40841f7p-1, + 0x1.66666666d5da3p-1 + }, + { // Entry 161 + -0x1.8465153de7c007fffdec1cebc40841f7p-1, + -0x1.66666666d5da3p-1 + }, + { // Entry 162 + 0x1.f2056a8752c0a54d0803a9f0c00baf5ep0, + 0x1.6b4p0 + }, + { // Entry 163 + -0x1.f2056a8752c0a54d0803a9f0c00baf5ep0, + -0x1.6b4p0 + }, + { // Entry 164 + 0x1.f54f8eaffc4348da8305aef164c3ba94p0, + 0x1.6ccp0 + }, + { // Entry 165 + -0x1.f54f8eaffc4348da8305aef164c3ba94p0, + -0x1.6ccp0 + }, + { // Entry 166 + 0x1.71e202c00c2319229a5b86f0f26cabb1p-7, + 0x1.71ep-7 + }, + { // Entry 167 + -0x1.71e202c00c2319229a5b86f0f26cabb1p-7, + -0x1.71ep-7 + }, + { // Entry 168 + 0x1.773253dd3f311874a2f0c80764abf42dp-8, + 0x1.7731cd8b74641p-8 + }, + { // Entry 169 + -0x1.773253dd3f311874a2f0c80764abf42dp-8, + -0x1.7731cd8b74641p-8 + }, + { // Entry 170 + 0x1.a08a89e90462985ff5cdbef5be2c143ep-1, + 0x1.7c874423b4655p-1 + }, + { // Entry 171 + -0x1.a08a89e90462985ff5cdbef5be2c143ep-1, + -0x1.7c874423b4655p-1 + }, + { // Entry 172 + 0x1.808fd7f5059e47fed3be0eaf1b9815bdp-4, + 0x1.7fffc7fffffffp-4 + }, + { // Entry 173 + -0x1.808fd7f5059e47fed3be0eaf1b9815bdp-4, + -0x1.7fffc7fffffffp-4 + }, + { // Entry 174 + 0x1.804bf5b40d34e7d143ae427670a1c115p-5, + 0x1.8027e9757bf31p-5 + }, + { // Entry 175 + -0x1.804bf5b40d34e7d143ae427670a1c115p-5, + -0x1.8027e9757bf31p-5 + }, + { // Entry 176 + 0x1.f0e3e5b6c17c02a799c306dbc1b1a8ecp555, + 0x1.820d92fc4b42ap8 + }, + { // Entry 177 + -0x1.f0e3e5b6c17c02a799c306dbc1b1a8ecp555, + -0x1.820d92fc4b42ap8 + }, + { // Entry 178 + 0x1.88665ffaada937dd93491498f2ee9defp-5, + 0x1.884p-5 + }, + { // Entry 179 + -0x1.88665ffaada937dd93491498f2ee9defp-5, + -0x1.884p-5 + }, + { // Entry 180 + 0x1.b4698d92404057ff9724122622082863p-1, + 0x1.8bcbf70469a4cp-1 + }, + { // Entry 181 + -0x1.b4698d92404057ff9724122622082863p-1, + -0x1.8bcbf70469a4cp-1 + }, + { // Entry 182 + 0x1.f612c0c32a0c700d32addc4c6c2b76c3p7, + 0x1.8e0p2 + }, + { // Entry 183 + -0x1.f612c0c32a0c700d32addc4c6c2b76c3p7, + -0x1.8e0p2 + }, + { // Entry 184 + 0x1.bc98715aec56c731186b8ab8deb14510p-1, + 0x1.920p-1 + }, + { // Entry 185 + -0x1.bc98715aec56c731186b8ab8deb14510p-1, + -0x1.920p-1 + }, + { // Entry 186 + 0x1.94618fa9fe2ddce9a5820eacd73ea447p-8, + 0x1.9460e77feba40p-8 + }, + { // Entry 187 + -0x1.94618fa9fe2ddce9a5820eacd73ea447p-8, + -0x1.9460e77feba40p-8 + }, + { // Entry 188 + 0x1.c6b5d3ca60e64ffffe54e7a9d176a802p-1, + 0x1.9999999a10d54p-1 + }, + { // Entry 189 + -0x1.c6b5d3ca60e64ffffe54e7a9d176a802p-1, + -0x1.9999999a10d54p-1 + }, + { // Entry 190 + 0x1.9c560cd3fc44bffffe366df58ed96becp-3, + 0x1.9999999a33ce2p-3 + }, + { // Entry 191 + -0x1.9c560cd3fc44bffffe366df58ed96becp-3, + -0x1.9999999a33ce2p-3 + }, + { // Entry 192 + 0x1.9a48733871434800020cf29985e49f30p-4, + 0x1.9999999a54528p-4 + }, + { // Entry 193 + -0x1.9a48733871434800020cf29985e49f30p-4, + -0x1.9999999a54528p-4 + }, + { // Entry 194 + 0x1.c6b5d3cb11239800020efc8821633bdep-1, + 0x1.9999999a949b7p-1 + }, + { // Entry 195 + -0x1.c6b5d3cb11239800020efc8821633bdep-1, + -0x1.9999999a949b7p-1 + }, + { // Entry 196 + 0x1.9c560cd481e637fffe01fbfdad836d2fp-3, + 0x1.9999999ab6ceap-3 + }, + { // Entry 197 + -0x1.9c560cd481e637fffe01fbfdad836d2fp-3, + -0x1.9999999ab6ceap-3 + }, + { // Entry 198 + 0x1.9c560cd64ac02ffffe536624b3aa885fp-3, + 0x1.9999999c76abep-3 + }, + { // Entry 199 + -0x1.9c560cd64ac02ffffe536624b3aa885fp-3, + -0x1.9999999c76abep-3 + }, + { // Entry 200 + 0x1.9c560cd6ec5c70000171ee4afa616629p-3, + 0x1.9999999d151a4p-3 + }, + { // Entry 201 + -0x1.9c560cd6ec5c70000171ee4afa616629p-3, + -0x1.9999999d151a4p-3 + }, + { // Entry 202 + 0x1.a5573f0e20f1a905add879f99041019fp-2, + 0x1.9a468b4ef44ffp-2 + }, + { // Entry 203 + -0x1.a5573f0e20f1a905add879f99041019fp-2, + -0x1.9a468b4ef44ffp-2 + }, + { // Entry 204 + 0x1.ffffffffffed457a42e161456cf862b2p590, + 0x1.9a57d76d152fcp8 + }, + { // Entry 205 + -0x1.ffffffffffed457a42e161456cf862b2p590, + -0x1.9a57d76d152fcp8 + }, + { // Entry 206 + 0x1.aebdc6208c1248b2ffbba5f783b92a1bp-2, + 0x1.a2f46ea5f9049p-2 + }, + { // Entry 207 + -0x1.aebdc6208c1248b2ffbba5f783b92a1bp-2, + -0x1.a2f46ea5f9049p-2 + }, + { // Entry 208 + 0x1.d64a3c2bfdf088565dad6aa8d6e58f04p-1, + 0x1.a5294a5294a50p-1 + }, + { // Entry 209 + -0x1.d64a3c2bfdf088565dad6aa8d6e58f04p-1, + -0x1.a5294a5294a50p-1 + }, + { // Entry 210 + 0x1.b000000000cd080000001d316399999bp-20, + 0x1.bp-20 + }, + { // Entry 211 + -0x1.b000000000cd080000001d316399999bp-20, + -0x1.bp-20 + }, + { // Entry 212 + 0x1.b6206a36aff4e7f3be1967dee6c19c2dp-3, + 0x1.b2da0d9913589p-3 + }, + { // Entry 213 + -0x1.b6206a36aff4e7f3be1967dee6c19c2dp-3, + -0x1.b2da0d9913589p-3 + }, + { // Entry 214 + 0x1.bd28b272834a2ff3d79fb12e37a18714p-6, + 0x1.bd1aae2323510p-6 + }, + { // Entry 215 + -0x1.bd28b272834a2ff3d79fb12e37a18714p-6, + -0x1.bd1aae2323510p-6 + }, + { // Entry 216 + 0x1.f8c25081d25d19d0d73bf466555bef04p-1, + 0x1.be2p-1 + }, + { // Entry 217 + -0x1.f8c25081d25d19d0d73bf466555bef04p-1, + -0x1.be2p-1 + }, + { // Entry 218 + 0x1.cc8f25f94323284f6d6454d3f3699088p-2, + 0x1.be4b949799901p-2 + }, + { // Entry 219 + -0x1.cc8f25f94323284f6d6454d3f3699088p-2, + -0x1.be4b949799901p-2 + }, + { // Entry 220 + 0x1.068f1b6fd97a97ffc554f2db188f9117p4, + 0x1.bef89775b5e88p1 + }, + { // Entry 221 + -0x1.068f1b6fd97a97ffc554f2db188f9117p4, + -0x1.bef89775b5e88p1 + }, + { // Entry 222 + 0x1.ca73ad17d1f0afff8b6da0d520741b26p-4, + 0x1.c98p-4 + }, + { // Entry 223 + -0x1.ca73ad17d1f0afff8b6da0d520741b26p-4, + -0x1.c98p-4 + }, + { // Entry 224 + 0x1.742768cc82d3b80460f95c20f53171c3p1, + 0x1.c9eca0f325b42p0 + }, + { // Entry 225 + -0x1.742768cc82d3b80460f95c20f53171c3p1, + -0x1.c9eca0f325b42p0 + }, + { // Entry 226 + 0x1.dc0aa0025b62b7fe5b0c13b7cc65bbc6p-2, + 0x1.cc6p-2 + }, + { // Entry 227 + -0x1.dc0aa0025b62b7fe5b0c13b7cc65bbc6p-2, + -0x1.cc6p-2 + }, + { // Entry 228 + 0x1.06c9ccd626cd8800020eb9e544490f6ap0, + 0x1.cccccccd69451p-1 + }, + { // Entry 229 + -0x1.06c9ccd626cd8800020eb9e544490f6ap0, + -0x1.cccccccd69451p-1 + }, + { // Entry 230 + 0x1.d862eb5cde4b0800f5b46008a4384f2ep-5, + 0x1.d82p-5 + }, + { // Entry 231 + -0x1.d862eb5cde4b0800f5b46008a4384f2ep-5, + -0x1.d82p-5 + }, + { // Entry 232 + 0x1.7b150909141397ff00cd2cb5dcdfc798p344, + 0x1.df0e8443492b4p7 + }, + { // Entry 233 + -0x1.7b150909141397ff00cd2cb5dcdfc798p344, + -0x1.df0e8443492b4p7 + }, + { // Entry 234 + 0x1.f370cce952a62835ca29e12b2844ca82p-2, + 0x1.e18p-2 + }, + { // Entry 235 + -0x1.f370cce952a62835ca29e12b2844ca82p-2, + -0x1.e18p-2 + }, + { // Entry 236 + 0x1.e6123f12db92680282920746b67b9489p-6, + 0x1.e60p-6 + }, + { // Entry 237 + -0x1.e6123f12db92680282920746b67b9489p-6, + -0x1.e60p-6 + }, + { // Entry 238 + 0x1.fc59700f23fc880595b286d94cb1161dp-2, + 0x1.e97e4ca09cde7p-2 + }, + { // Entry 239 + -0x1.fc59700f23fc880595b286d94cb1161dp-2, + -0x1.e97e4ca09cde7p-2 + }, + { // Entry 240 + 0x1.a8a3582361d82800005ec0718a5e8e7cp1, + 0x1.ea11b1afdc907p0 + }, + { // Entry 241 + -0x1.a8a3582361d82800005ec0718a5e8e7cp1, + -0x1.ea11b1afdc907p0 + }, + { // Entry 242 + 0x1.f4592b2dde8cf3813b817358e271e980p-3, + 0x1.ef8p-3 + }, + { // Entry 243 + -0x1.f4592b2dde8cf3813b817358e271e980p-3, + -0x1.ef8p-3 + }, + { // Entry 244 + 0x1.48f609e7b6aecf059a4b8c484c3bc435p21, + 0x1.effffffffffffp3 + }, + { // Entry 245 + -0x1.48f609e7b6aecf059a4b8c484c3bc435p21, + -0x1.effffffffffffp3 + }, + { // Entry 246 + 0x1.dbca9263f840fca48450e408fa36b56bp177, + 0x1.effffffffffffp6 + }, + { // Entry 247 + -0x1.dbca9263f840fca48450e408fa36b56bp177, + -0x1.effffffffffffp6 + }, + { // Entry 248 + 0x1.d3764167d84c26146f109714eda9a19ep715, + 0x1.f0e540ea02272p8 + }, + { // Entry 249 + -0x1.d3764167d84c26146f109714eda9a19ep715, + -0x1.f0e540ea02272p8 + }, + { // Entry 250 + 0x1.f44f7cd78c0c8d0cfdd38268b4c1b21ap-5, + 0x1.f3fffffffffffp-5 + }, + { // Entry 251 + -0x1.f44f7cd78c0c8d0cfdd38268b4c1b21ap-5, + -0x1.f3fffffffffffp-5 + }, + { // Entry 252 + 0x1.f4e4fe44a20e73bbcddcba0e9c46e803p-7, + 0x1.f4ep-7 + }, + { // Entry 253 + -0x1.f4e4fe44a20e73bbcddcba0e9c46e803p-7, + -0x1.f4ep-7 + }, + { // Entry 254 + 0x1.f4fd444ef4c02273e0c0b56c3b6b18f4p-11, + 0x1.f4fd3f4fd3f41p-11 + }, + { // Entry 255 + -0x1.f4fd444ef4c02273e0c0b56c3b6b18f4p-11, + -0x1.f4fd3f4fd3f41p-11 + }, + { // Entry 256 + 0x1.f776c257a56b780187bf905e80418279p-9, + 0x1.f7767134f4c72p-9 + }, + { // Entry 257 + -0x1.f776c257a56b780187bf905e80418279p-9, + -0x1.f7767134f4c72p-9 + }, + { // Entry 258 + 0x1.f78e0512e112b1c915f33b6d0094cbdfp-11, + 0x1.f78dfffffffffp-11 + }, + { // Entry 259 + -0x1.f78e0512e112b1c915f33b6d0094cbdfp-11, + -0x1.f78dfffffffffp-11 + }, + { // Entry 260 + 0x1.fd1a4703ffc8e2c09ee2d3142d879d53p-3, + 0x1.f7fffffffffffp-3 + }, + { // Entry 261 + -0x1.fd1a4703ffc8e2c09ee2d3142d879d53p-3, + -0x1.f7fffffffffffp-3 + }, + { // Entry 262 + 0x1.fd2b1321689993d9e7a4f5cc42e417e0p-3, + 0x1.f8104d180ef13p-3 + }, + { // Entry 263 + -0x1.fd2b1321689993d9e7a4f5cc42e417e0p-3, + -0x1.f8104d180ef13p-3 + }, + { // Entry 264 + 0x1.fa8247c8342301fdbf919432600eef6bp-11, + 0x1.fa82429e54867p-11 + }, + { // Entry 265 + -0x1.fa8247c8342301fdbf919432600eef6bp-11, + -0x1.fa82429e54867p-11 + }, + { // Entry 266 + 0x1.f617a27e250ce1b06488e5167c0849a8p90, + 0x1.fdfffffffffffp5 + }, + { // Entry 267 + -0x1.f617a27e250ce1b06488e5167c0849a8p90, + -0x1.fdfffffffffffp5 + }, + { // Entry 268 + 0x1.fef54cde11851d4db7938ee57e080486p-7, + 0x1.feeffffffffffp-7 + }, + { // Entry 269 + -0x1.fef54cde11851d4db7938ee57e080486p-7, + -0x1.feeffffffffffp-7 + }, + { // Entry 270 + 0x1.0a8ddcf177d1eb7da9052d4b680c93e4p-1, + 0x1.ff8ffffffffffp-2 + }, + { // Entry 271 + -0x1.0a8ddcf177d1eb7da9052d4b680c93e4p-1, + -0x1.ff8ffffffffffp-2 + }, + { // Entry 272 + 0x1.ffb5499b99f503b876c9233146b88610p-6, + 0x1.ff9ffffffffffp-6 + }, + { // Entry 273 + -0x1.ffb5499b99f503b876c9233146b88610p-6, + -0x1.ff9ffffffffffp-6 + }, + { // Entry 274 + 0x1.ffd00553d57d8679faafbb417929037bp-11, + 0x1.ffcffffffffffp-11 + }, + { // Entry 275 + -0x1.ffd00553d57d8679faafbb417929037bp-11, + -0x1.ffcffffffffffp-11 + }, + { // Entry 276 + 0x1.738796c76ddd11a4fad67bda6a85c0a3p10, + 0x1.ffcffffffffffp2 + }, + { // Entry 277 + -0x1.738796c76ddd11a4fad67bda6a85c0a3p10, + -0x1.ffcffffffffffp2 + }, + { // Entry 278 + 0x1.3fd752cfca481ff79679f71c8aad6234p91, + 0x1.ffeffffffffffp5 + }, + { // Entry 279 + -0x1.3fd752cfca481ff79679f71c8aad6234p91, + -0x1.ffeffffffffffp5 + }, + { // Entry 280 + 0x1.fffc1154d51a88ed085860dce45cd0f6p-10, + 0x1.fffbfbfffffffp-10 + }, + { // Entry 281 + -0x1.fffc1154d51a88ed085860dce45cd0f6p-10, + -0x1.fffbfbfffffffp-10 + }, + { // Entry 282 + 0x1.0acb07d19f2eec122a06e05f2c4a0de4p-1, + 0x1.fffc7ffffffffp-2 + }, + { // Entry 283 + -0x1.0acb07d19f2eec122a06e05f2c4a0de4p-1, + -0x1.fffc7ffffffffp-2 + }, + { // Entry 284 + 0x1.00a9094ee88097ff3d5673552bc2eab6p-3, + 0x1.fffc7ffffffffp-4 + }, + { // Entry 285 + -0x1.00a9094ee88097ff3d5673552bc2eab6p-3, + -0x1.fffc7ffffffffp-4 + }, + { // Entry 286 + 0x1.7495e977202177ec68508f6f5a5b9165p10, + 0x1.fffe7ffffffffp2 + }, + { // Entry 287 + -0x1.7495e977202177ec68508f6f5a5b9165p10, + -0x1.fffe7ffffffffp2 + }, + { // Entry 288 + 0x1.b4a0165d618bc7fe4fd5aa6fcac302c1p4, + 0x1.fffefffffffffp1 + }, + { // Entry 289 + -0x1.b4a0165d618bc7fe4fd5aa6fcac302c1p4, + -0x1.fffefffffffffp1 + }, + { // Entry 290 + 0x1.95e4816b60a8d769724b586e4deb3b1bp183, + 0x1.fffffdfffffffp6 + }, + { // Entry 291 + -0x1.95e4816b60a8d769724b586e4deb3b1bp183, + -0x1.fffffdfffffffp6 + }, + { // Entry 292 + 0x1.1f43fcc441800800fcf1d836d2c62f72p45, + 0x1.fffffffff97d6p4 + }, + { // Entry 293 + -0x1.1f43fcc441800800fcf1d836d2c62f72p45, + -0x1.fffffffff97d6p4 + }, + { // Entry 294 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 295 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 296 + 0x1.9476504ba82057f69310608c30e76cebp737, + 0x1.ffffffffffffep8 + }, + { // Entry 297 + -0x1.9476504ba82057f69310608c30e76cebp737, + -0x1.ffffffffffffep8 + }, + { // Entry 298 + 0.0, + 0.0 + }, + { // Entry 299 + 0x1.24d1fdb0fdc49fa1ed2d33be6d840c75p-4, + 0x1.2492492492492p-4 + }, + { // Entry 300 + -0x1.24d1fdb0fdc49fa1ed2d33be6d840c75p-4, + -0x1.2492492492492p-4 + }, + { // Entry 301 + 0x1.25914d4754aeca5885ba953dbac88d8fp-3, + 0x1.2492492492492p-3 + }, + { // Entry 302 + -0x1.25914d4754aeca5885ba953dbac88d8fp-3, + -0x1.2492492492492p-3 + }, + { // Entry 303 + 0x1.ba3934de293068e82220c3704c5750b7p-3, + 0x1.b6db6db6db6dbp-3 + }, + { // Entry 304 + -0x1.ba3934de293068e82220c3704c5750b7p-3, + -0x1.b6db6db6db6dbp-3 + }, + { // Entry 305 + 0x1.28917a35f59b8990911b05edbc6f6ba1p-2, + 0x1.2492492492492p-2 + }, + { // Entry 306 + -0x1.28917a35f59b8990911b05edbc6f6ba1p-2, + -0x1.2492492492492p-2 + }, + { // Entry 307 + 0x1.7589dee6de0a2ec648852490e9ae54e2p-2, + 0x1.6db6db6db6db6p-2 + }, + { // Entry 308 + -0x1.7589dee6de0a2ec648852490e9ae54e2p-2, + -0x1.6db6db6db6db6p-2 + }, + { // Entry 309 + 0x1.c46a5bcd3c2c368c2591b8bba7e24256p-2, + 0x1.b6db6db6db6dap-2 + }, + { // Entry 310 + -0x1.c46a5bcd3c2c368c2591b8bba7e24256p-2, + -0x1.b6db6db6db6dap-2 + }, + { // Entry 311 + 0x1.0acd00fe63b95a9896032c78de2323c6p-1, + 0x1.ffffffffffffep-2 + }, + { // Entry 312 + -0x1.0acd00fe63b95a9896032c78de2323c6p-1, + -0x1.ffffffffffffep-2 + }, + { // Entry 313 + 0x1.0acd00fe63b96ca357895761ae66224ap-1, + 0x1.0p-1 + }, + { // Entry 314 + -0x1.0acd00fe63b96ca357895761ae66224ap-1, + -0x1.0p-1 + }, + { // Entry 315 + 0x1.34c1737f26250058df17aa0da89aa5fcp-1, + 0x1.2492492492492p-1 + }, + { // Entry 316 + -0x1.34c1737f26250058df17aa0da89aa5fcp-1, + -0x1.2492492492492p-1 + }, + { // Entry 317 + 0x1.604957b6e9223ab9f0acd5cd087d9d4bp-1, + 0x1.4924924924924p-1 + }, + { // Entry 318 + -0x1.604957b6e9223ab9f0acd5cd087d9d4bp-1, + -0x1.4924924924924p-1 + }, + { // Entry 319 + 0x1.8d9d8f1f9ecb929e09103f190149433dp-1, + 0x1.6db6db6db6db6p-1 + }, + { // Entry 320 + -0x1.8d9d8f1f9ecb929e09103f190149433dp-1, + -0x1.6db6db6db6db6p-1 + }, + { // Entry 321 + 0x1.bcf954b2503820857f4dbefa036f8e5ep-1, + 0x1.9249249249248p-1 + }, + { // Entry 322 + -0x1.bcf954b2503820857f4dbefa036f8e5ep-1, + -0x1.9249249249248p-1 + }, + { // Entry 323 + 0x1.ee9a8a4c3c72bcabcb7b2924d314efa2p-1, + 0x1.b6db6db6db6dap-1 + }, + { // Entry 324 + -0x1.ee9a8a4c3c72bcabcb7b2924d314efa2p-1, + -0x1.b6db6db6db6dap-1 + }, + { // Entry 325 + 0x1.116104c5878d4cf53fe2c1f3896ec672p0, + 0x1.db6db6db6db6cp-1 + }, + { // Entry 326 + -0x1.116104c5878d4cf53fe2c1f3896ec672p0, + -0x1.db6db6db6db6cp-1 + }, + { // Entry 327 + 0x1.2cd9fc44eb980cf78cf76e89b69a3e88p0, + 0x1.ffffffffffffep-1 + }, + { // Entry 328 + -0x1.2cd9fc44eb980cf78cf76e89b69a3e88p0, + -0x1.ffffffffffffep-1 + }, + { // Entry 329 + 0.0, + 0.0 + }, + { // Entry 330 + 0x1.18e1e0472274e67654d0f855c36e861dp-6, + 0x1.18de5ab277f45p-6 + }, + { // Entry 331 + -0x1.18e1e0472274e67654d0f855c36e861dp-6, + -0x1.18de5ab277f45p-6 + }, + { // Entry 332 + 0x1.18ec712dd49a7583cfe81c5dccfd99b4p-5, + 0x1.18de5ab277f45p-5 + }, + { // Entry 333 + -0x1.18ec712dd49a7583cfe81c5dccfd99b4p-5, + -0x1.18de5ab277f45p-5 + }, + { // Entry 334 + 0x1.a57d14d0fcc06c297b511eb105c39b51p-5, + 0x1.a54d880bb3ee8p-5 + }, + { // Entry 335 + -0x1.a57d14d0fcc06c297b511eb105c39b51p-5, + -0x1.a54d880bb3ee8p-5 + }, + { // Entry 336 + 0x1.1916b72b2648d65f042e701b14a371ddp-4, + 0x1.18de5ab277f45p-4 + }, + { // Entry 337 + -0x1.1916b72b2648d65f042e701b14a371ddp-4, + -0x1.18de5ab277f45p-4 + }, + { // Entry 338 + 0x1.5f8409b4e2d18ada55848296f71484b2p-4, + 0x1.5f15f15f15f16p-4 + }, + { // Entry 339 + -0x1.5f8409b4e2d18ada55848296f71484b2p-4, + -0x1.5f15f15f15f16p-4 + }, + { // Entry 340 + 0x1.a60bce73024b0ef37175d31aa5a941e6p-4, + 0x1.a54d880bb3ee7p-4 + }, + { // Entry 341 + -0x1.a60bce73024b0ef37175d31aa5a941e6p-4, + -0x1.a54d880bb3ee7p-4 + }, + { // Entry 342 + 0x1.ecb353d02d5fc056ceb2ce9e08b8f8d5p-4, + 0x1.eb851eb851eb8p-4 + }, + { // Entry 343 + -0x1.ecb353d02d5fc056ceb2ce9e08b8f8d5p-4, + -0x1.eb851eb851eb8p-4 + }, + { // Entry 344 + 0x1.ecb353d02d5fc056ceb2ce9e08b8f8d5p-4, + 0x1.eb851eb851eb8p-4 + }, + { // Entry 345 + -0x1.ecb353d02d5fc056ceb2ce9e08b8f8d5p-4, + -0x1.eb851eb851eb8p-4 + }, + { // Entry 346 + 0x1.02243ce0549f980dc7c7d32c56687b61p-3, + 0x1.01767dce434aap-3 + }, + { // Entry 347 + -0x1.02243ce0549f980dc7c7d32c56687b61p-3, + -0x1.01767dce434aap-3 + }, + { // Entry 348 + 0x1.0df0f841fd4a69998703d2ffbf0e1544p-3, + 0x1.0d2a6c405d9f8p-3 + }, + { // Entry 349 + -0x1.0df0f841fd4a69998703d2ffbf0e1544p-3, + -0x1.0d2a6c405d9f8p-3 + }, + { // Entry 350 + 0x1.19bff54d4d1ca252438bfcad4485bbeep-3, + 0x1.18de5ab277f46p-3 + }, + { // Entry 351 + -0x1.19bff54d4d1ca252438bfcad4485bbeep-3, + -0x1.18de5ab277f46p-3 + }, + { // Entry 352 + 0x1.25914d4754aeeaac41a8543c0e5f84bfp-3, + 0x1.2492492492494p-3 + }, + { // Entry 353 + -0x1.25914d4754aeeaac41a8543c0e5f84bfp-3, + -0x1.2492492492494p-3 + }, + { // Entry 354 + 0x1.3165197a2ed9cb0dc90f9bb136a99057p-3, + 0x1.30463796ac9e2p-3 + }, + { // Entry 355 + -0x1.3165197a2ed9cb0dc90f9bb136a99057p-3, + -0x1.30463796ac9e2p-3 + }, + { // Entry 356 + 0x1.3d3b733536d3f9e48c1626776c18450fp-3, + 0x1.3bfa2608c6f30p-3 + }, + { // Entry 357 + -0x1.3d3b733536d3f9e48c1626776c18450fp-3, + -0x1.3bfa2608c6f30p-3 + }, + { // Entry 358 + 0x1.491473cd3e5bb6011680e1c412b75226p-3, + 0x1.47ae147ae147bp-3 + }, + { // Entry 359 + -0x1.491473cd3e5bb6011680e1c412b75226p-3, + -0x1.47ae147ae147bp-3 + }, + { // Entry 360 + 0x1.491473cd3e5bb6011680e1c412b75226p-3, + 0x1.47ae147ae147bp-3 + }, + { // Entry 361 + -0x1.491473cd3e5bb6011680e1c412b75226p-3, + -0x1.47ae147ae147bp-3 + }, + { // Entry 362 + 0x1.227b2f27e6efe03d72b2c311d29c7884p-2, + 0x1.1eb851eb851ecp-2 + }, + { // Entry 363 + -0x1.227b2f27e6efe03d72b2c311d29c7884p-2, + -0x1.1eb851eb851ecp-2 + }, + { // Entry 364 + 0x1.a49c41f850ed2680ee94da3183c89a52p-2, + 0x1.999999999999ap-2 + }, + { // Entry 365 + -0x1.a49c41f850ed2680ee94da3183c89a52p-2, + -0x1.999999999999ap-2 + }, + { // Entry 366 + 0x1.1666dd8c17ac9986d3cd4018364fc2ecp-1, + 0x1.0a3d70a3d70a4p-1 + }, + { // Entry 367 + -0x1.1666dd8c17ac9986d3cd4018364fc2ecp-1, + -0x1.0a3d70a3d70a4p-1 + }, + { // Entry 368 + 0x1.5e832275691f29c754a69f08a0bda060p-1, + 0x1.47ae147ae147bp-1 + }, + { // Entry 369 + -0x1.5e832275691f29c754a69f08a0bda060p-1, + -0x1.47ae147ae147bp-1 + }, + { // Entry 370 + 0x1.abad155b6751a697130d8faafe9d512cp-1, + 0x1.851eb851eb852p-1 + }, + { // Entry 371 + -0x1.abad155b6751a697130d8faafe9d512cp-1, + -0x1.851eb851eb852p-1 + }, + { // Entry 372 + 0x1.ff0182a062c855926fe6373f9b3afd58p-1, + 0x1.c28f5c28f5c29p-1 + }, + { // Entry 373 + -0x1.ff0182a062c855926fe6373f9b3afd58p-1, + -0x1.c28f5c28f5c29p-1 + }, + { // Entry 374 + 0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + 0x1.0p0 + }, + { // Entry 375 + -0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + -0x1.0p0 + }, + { // Entry 376 + 0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + 0x1.0p0 + }, + { // Entry 377 + -0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + -0x1.0p0 + }, + { // Entry 378 + 0x1.c034a7cd6ce9ade4f611fdd05d109cf6p7, + 0x1.86bc88cbf1b67p2 + }, + { // Entry 379 + -0x1.c034a7cd6ce9ade4f611fdd05d109cf6p7, + -0x1.86bc88cbf1b67p2 + }, + { // Entry 380 + 0x1.20af6cb9859eb23e91e63c28d18b0d0ap15, + 0x1.66bc88cbf1b67p3 + }, + { // Entry 381 + -0x1.20af6cb9859eb23e91e63c28d18b0d0ap15, + -0x1.66bc88cbf1b67p3 + }, + { // Entry 382 + 0x1.73e096cf57afce7adf9f1b2a216a5db5p22, + 0x1.050d6698f548dp4 + }, + { // Entry 383 + -0x1.73e096cf57afce7adf9f1b2a216a5db5p22, + -0x1.050d6698f548dp4 + }, + { // Entry 384 + 0x1.df0b13a84513e2ceb180507c54c5b904p29, + 0x1.56bc88cbf1b67p4 + }, + { // Entry 385 + -0x1.df0b13a84513e2ceb180507c54c5b904p29, + -0x1.56bc88cbf1b67p4 + }, + { // Entry 386 + 0x1.348bc1e018bc593ce2f9d1bc0f37e14fp37, + 0x1.a86baafeee241p4 + }, + { // Entry 387 + -0x1.348bc1e018bc593ce2f9d1bc0f37e14fp37, + -0x1.a86baafeee241p4 + }, + { // Entry 388 + 0x1.8d761a3398942448ea796c65748a869ep44, + 0x1.fa1acd31ea91bp4 + }, + { // Entry 389 + -0x1.8d761a3398942448ea796c65748a869ep44, + -0x1.fa1acd31ea91bp4 + }, + { // Entry 390 + 0x1.ffffffffffff9ede67b7a30e661c79e2p51, + 0x1.25e4f7b2737fap5 + }, + { // Entry 391 + -0x1.ffffffffffff9ede67b7a30e661c79e2p51, + -0x1.25e4f7b2737fap5 + }, + { // Entry 392 + 0x1.fffffffdfffeca86c3885786a2b2306fp14, + 0x1.62e42fefa39eep3 + }, + { // Entry 393 + -0x1.fffffffdfffeca86c3885786a2b2306fp14, + -0x1.62e42fefa39eep3 + }, + { // Entry 394 + 0x1.fffffffdffffca86c389578647f59234p14, + 0x1.62e42fefa39efp3 + }, + { // Entry 395 + -0x1.fffffffdffffca86c389578647f59234p14, + -0x1.62e42fefa39efp3 + }, + { // Entry 396 + 0x1.fffffffe0000ca86c38a57866d38f3f8p14, + 0x1.62e42fefa39f0p3 + }, + { // Entry 397 + -0x1.fffffffe0000ca86c38a57866d38f3f8p14, + -0x1.62e42fefa39f0p3 + }, + { // Entry 398 + 0x1.fffdffffffff6542c70828449eb21cd0p6, + 0x1.62e42fefa39eep2 + }, + { // Entry 399 + -0x1.fffdffffffff6542c70828449eb21cd0p6, + -0x1.62e42fefa39eep2 + }, + { // Entry 400 + 0x1.fffdffffffffe5434708284488030bf1p6, + 0x1.62e42fefa39efp2 + }, + { // Entry 401 + -0x1.fffdffffffffe5434708284488030bf1p6, + -0x1.62e42fefa39efp2 + }, + { // Entry 402 + 0x1.fffe000000006543c70828449153db11p6, + 0x1.62e42fefa39f0p2 + }, + { // Entry 403 + -0x1.fffe000000006543c70828449153db11p6, + -0x1.62e42fefa39f0p2 + }, + { // Entry 404 + 0x1.fdffffffffffb254529345a3261b51eep2, + 0x1.62e42fefa39eep1 + }, + { // Entry 405 + -0x1.fdffffffffffb254529345a3261b51eep2, + -0x1.62e42fefa39eep1 + }, + { // Entry 406 + 0x1.fdfffffffffff294529345a3207533d4p2, + 0x1.62e42fefa39efp1 + }, + { // Entry 407 + -0x1.fdfffffffffff294529345a3207533d4p2, + -0x1.62e42fefa39efp1 + }, + { // Entry 408 + 0x1.fe000000000032d4529345a322c715bap2, + 0x1.62e42fefa39f0p1 + }, + { // Entry 409 + -0x1.fe000000000032d4529345a322c715bap2, + -0x1.62e42fefa39f0p1 + }, + { // Entry 410 + 0x1.dfffffffffffd6e5e5f844b9f096239ep0, + 0x1.62e42fefa39eep0 + }, + { // Entry 411 + -0x1.dfffffffffffd6e5e5f844b9f096239ep0, + -0x1.62e42fefa39eep0 + }, + { // Entry 412 + 0x1.dffffffffffff8e5e5f844b9ef41e04cp0, + 0x1.62e42fefa39efp0 + }, + { // Entry 413 + -0x1.dffffffffffff8e5e5f844b9ef41e04cp0, + -0x1.62e42fefa39efp0 + }, + { // Entry 414 + 0x1.e000000000001ae5e5f844b9efcd9cfbp0, + 0x1.62e42fefa39f0p0 + }, + { // Entry 415 + -0x1.e000000000001ae5e5f844b9efcd9cfbp0, + -0x1.62e42fefa39f0p0 + }, + { // Entry 416 + 0x1.7fffffffffffe7d28746bf03f666bce4p-1, + 0x1.62e42fefa39eep-1 + }, + { // Entry 417 + -0x1.7fffffffffffe7d28746bf03f666bce4p-1, + -0x1.62e42fefa39eep-1 + }, + { // Entry 418 + 0x1.7ffffffffffffbd28746bf03f622af6ep-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 419 + -0x1.7ffffffffffffbd28746bf03f622af6ep-1, + -0x1.62e42fefa39efp-1 + }, + { // Entry 420 + 0x1.8000000000000fd28746bf03f63ea1f7p-1, + 0x1.62e42fefa39f0p-1 + }, + { // Entry 421 + -0x1.8000000000000fd28746bf03f63ea1f7p-1, + -0x1.62e42fefa39f0p-1 + }, + { // Entry 422 + 0x1.6a09e667f3bcb484c2238ce481384c44p-2, + 0x1.62e42fefa39eep-2 + }, + { // Entry 423 + -0x1.6a09e667f3bcb484c2238ce481384c44p-2, + -0x1.62e42fefa39eep-2 + }, + { // Entry 424 + 0x1.6a09e667f3bcc57d38f06c515a94aa60p-2, + 0x1.62e42fefa39efp-2 + }, + { // Entry 425 + -0x1.6a09e667f3bcc57d38f06c515a94aa60p-2, + -0x1.62e42fefa39efp-2 + }, + { // Entry 426 + 0x1.6a09e667f3bcd675afbd4bbe3407a91bp-2, + 0x1.62e42fefa39f0p-2 + }, + { // Entry 427 + -0x1.6a09e667f3bcd675afbd4bbe3407a91bp-2, + -0x1.62e42fefa39f0p-2 + }, + { // Entry 428 + 0x1.64ab8f61134f8c07335ae0143f1aa9e7p-3, + 0x1.62e42fefa39eep-3 + }, + { // Entry 429 + -0x1.64ab8f61134f8c07335ae0143f1aa9e7p-3, + -0x1.62e42fefa39eep-3 + }, + { // Entry 430 + 0x1.64ab8f61134f9c44da464fa4b5054cc6p-3, + 0x1.62e42fefa39efp-3 + }, + { // Entry 431 + -0x1.64ab8f61134f9c44da464fa4b5054cc6p-3, + -0x1.62e42fefa39efp-3 + }, + { // Entry 432 + 0x1.64ab8f61134fac828131bf352af58253p-3, + 0x1.62e42fefa39f0p-3 + }, + { // Entry 433 + -0x1.64ab8f61134fac828131bf352af58253p-3, + -0x1.62e42fefa39f0p-3 + }, + { // Entry 434 + 0x1.6355e6ffbf9b918f1018c6864c912c0bp-4, + 0x1.62e42fefa39eep-4 + }, + { // Entry 435 + -0x1.6355e6ffbf9b918f1018c6864c912c0bp-4, + -0x1.62e42fefa39eep-4 + }, + { // Entry 436 + 0x1.6355e6ffbf9ba19e726e44182bc81666p-4, + 0x1.62e42fefa39efp-4 + }, + { // Entry 437 + -0x1.6355e6ffbf9ba19e726e44182bc81666p-4, + -0x1.62e42fefa39efp-4 + }, + { // Entry 438 + 0x1.6355e6ffbf9bb1add4c3c1aa0b006418p-4, + 0x1.62e42fefa39f0p-4 + }, + { // Entry 439 + -0x1.6355e6ffbf9bb1add4c3c1aa0b006418p-4, + -0x1.62e42fefa39f0p-4 + }, + { // Entry 440 + 0x1.63009ba740a28c74c5e39abbcb6d3e54p-5, + 0x1.62e42fefa39eep-5 + }, + { // Entry 441 + -0x1.63009ba740a28c74c5e39abbcb6d3e54p-5, + -0x1.62e42fefa39eep-5 + }, + { // Entry 442 + 0x1.63009ba740a29c789e02c0a4897fafa4p-5, + 0x1.62e42fefa39efp-5 + }, + { // Entry 443 + -0x1.63009ba740a29c789e02c0a4897fafa4p-5, + -0x1.62e42fefa39efp-5 + }, + { // Entry 444 + 0x1.63009ba740a2ac7c7621e68d479279b3p-5, + 0x1.62e42fefa39f0p-5 + }, + { // Entry 445 + -0x1.63009ba740a2ac7c7621e68d479279b3p-5, + -0x1.62e42fefa39f0p-5 + }, + { // Entry 446 + 0x1.62eb4abcc5a7fb2748b0114da83216c8p-6, + 0x1.62e42fefa39eep-6 + }, + { // Entry 447 + -0x1.62eb4abcc5a7fb2748b0114da83216c8p-6, + -0x1.62e42fefa39eep-6 + }, + { // Entry 448 + 0x1.62eb4abcc5a80b283eb077a1b2694ed2p-6, + 0x1.62e42fefa39efp-6 + }, + { // Entry 449 + -0x1.62eb4abcc5a80b283eb077a1b2694ed2p-6, + -0x1.62e42fefa39efp-6 + }, + { // Entry 450 + 0x1.62eb4abcc5a81b2934b0ddf5bca09d0bp-6, + 0x1.62e42fefa39f0p-6 + }, + { // Entry 451 + -0x1.62eb4abcc5a81b2934b0ddf5bca09d0bp-6, + -0x1.62e42fefa39f0p-6 + }, + { // Entry 452 + -0x1.000000000000ca85c3898cffd1be6e61p31, + -0x1.62e42fefa39f0p4 + }, + { // Entry 453 + 0x1.000000000000ca85c3898cffd1be6e61p31, + 0x1.62e42fefa39f0p4 + }, + { // Entry 454 + -0x1.ffffffffffff950b871319ff0e6d55b0p30, + -0x1.62e42fefa39efp4 + }, + { // Entry 455 + 0x1.ffffffffffff950b871319ff0e6d55b0p30, + 0x1.62e42fefa39efp4 + }, + { // Entry 456 + -0x1.fffffffffffd950b87131a00795dce9dp30, + -0x1.62e42fefa39eep4 + }, + { // Entry 457 + 0x1.fffffffffffd950b87131a00795dce9dp30, + 0x1.62e42fefa39eep4 + }, + { // Entry 458 + -0x1.fffffffe0000ca86c38a57866d38f3f8p14, + -0x1.62e42fefa39f0p3 + }, + { // Entry 459 + 0x1.fffffffe0000ca86c38a57866d38f3f8p14, + 0x1.62e42fefa39f0p3 + }, + { // Entry 460 + -0x1.fffffffdffffca86c389578647f59234p14, + -0x1.62e42fefa39efp3 + }, + { // Entry 461 + 0x1.fffffffdffffca86c389578647f59234p14, + 0x1.62e42fefa39efp3 + }, + { // Entry 462 + -0x1.fffffffdfffeca86c3885786a2b2306fp14, + -0x1.62e42fefa39eep3 + }, + { // Entry 463 + 0x1.fffffffdfffeca86c3885786a2b2306fp14, + 0x1.62e42fefa39eep3 + }, + { // Entry 464 + -0x1.fffe000000006543c70828449153db11p6, + -0x1.62e42fefa39f0p2 + }, + { // Entry 465 + 0x1.fffe000000006543c70828449153db11p6, + 0x1.62e42fefa39f0p2 + }, + { // Entry 466 + -0x1.fffdffffffffe5434708284488030bf1p6, + -0x1.62e42fefa39efp2 + }, + { // Entry 467 + 0x1.fffdffffffffe5434708284488030bf1p6, + 0x1.62e42fefa39efp2 + }, + { // Entry 468 + -0x1.fffdffffffff6542c70828449eb21cd0p6, + -0x1.62e42fefa39eep2 + }, + { // Entry 469 + 0x1.fffdffffffff6542c70828449eb21cd0p6, + 0x1.62e42fefa39eep2 + }, + { // Entry 470 + -0x1.fe000000000032d4529345a322c715bap2, + -0x1.62e42fefa39f0p1 + }, + { // Entry 471 + 0x1.fe000000000032d4529345a322c715bap2, + 0x1.62e42fefa39f0p1 + }, + { // Entry 472 + -0x1.fdfffffffffff294529345a3207533d4p2, + -0x1.62e42fefa39efp1 + }, + { // Entry 473 + 0x1.fdfffffffffff294529345a3207533d4p2, + 0x1.62e42fefa39efp1 + }, + { // Entry 474 + -0x1.fdffffffffffb254529345a3261b51eep2, + -0x1.62e42fefa39eep1 + }, + { // Entry 475 + 0x1.fdffffffffffb254529345a3261b51eep2, + 0x1.62e42fefa39eep1 + }, + { // Entry 476 + -0x1.e000000000001ae5e5f844b9efcd9cfbp0, + -0x1.62e42fefa39f0p0 + }, + { // Entry 477 + 0x1.e000000000001ae5e5f844b9efcd9cfbp0, + 0x1.62e42fefa39f0p0 + }, + { // Entry 478 + -0x1.dffffffffffff8e5e5f844b9ef41e04cp0, + -0x1.62e42fefa39efp0 + }, + { // Entry 479 + 0x1.dffffffffffff8e5e5f844b9ef41e04cp0, + 0x1.62e42fefa39efp0 + }, + { // Entry 480 + -0x1.dfffffffffffd6e5e5f844b9f096239ep0, + -0x1.62e42fefa39eep0 + }, + { // Entry 481 + 0x1.dfffffffffffd6e5e5f844b9f096239ep0, + 0x1.62e42fefa39eep0 + }, + { // Entry 482 + -0x1.8000000000000fd28746bf03f63ea1f7p-1, + -0x1.62e42fefa39f0p-1 + }, + { // Entry 483 + 0x1.8000000000000fd28746bf03f63ea1f7p-1, + 0x1.62e42fefa39f0p-1 + }, + { // Entry 484 + -0x1.7ffffffffffffbd28746bf03f622af6ep-1, + -0x1.62e42fefa39efp-1 + }, + { // Entry 485 + 0x1.7ffffffffffffbd28746bf03f622af6ep-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 486 + -0x1.7fffffffffffe7d28746bf03f666bce4p-1, + -0x1.62e42fefa39eep-1 + }, + { // Entry 487 + 0x1.7fffffffffffe7d28746bf03f666bce4p-1, + 0x1.62e42fefa39eep-1 + }, + { // Entry 488 + -0x1.6a09e667f3bcd675afbd4bbe3407a91bp-2, + -0x1.62e42fefa39f0p-2 + }, + { // Entry 489 + 0x1.6a09e667f3bcd675afbd4bbe3407a91bp-2, + 0x1.62e42fefa39f0p-2 + }, + { // Entry 490 + -0x1.6a09e667f3bcc57d38f06c515a94aa60p-2, + -0x1.62e42fefa39efp-2 + }, + { // Entry 491 + 0x1.6a09e667f3bcc57d38f06c515a94aa60p-2, + 0x1.62e42fefa39efp-2 + }, + { // Entry 492 + -0x1.6a09e667f3bcb484c2238ce481384c44p-2, + -0x1.62e42fefa39eep-2 + }, + { // Entry 493 + 0x1.6a09e667f3bcb484c2238ce481384c44p-2, + 0x1.62e42fefa39eep-2 + }, + { // Entry 494 + -0x1.64ab8f61134fac828131bf352af58253p-3, + -0x1.62e42fefa39f0p-3 + }, + { // Entry 495 + 0x1.64ab8f61134fac828131bf352af58253p-3, + 0x1.62e42fefa39f0p-3 + }, + { // Entry 496 + -0x1.64ab8f61134f9c44da464fa4b5054cc6p-3, + -0x1.62e42fefa39efp-3 + }, + { // Entry 497 + 0x1.64ab8f61134f9c44da464fa4b5054cc6p-3, + 0x1.62e42fefa39efp-3 + }, + { // Entry 498 + -0x1.64ab8f61134f8c07335ae0143f1aa9e7p-3, + -0x1.62e42fefa39eep-3 + }, + { // Entry 499 + 0x1.64ab8f61134f8c07335ae0143f1aa9e7p-3, + 0x1.62e42fefa39eep-3 + }, + { // Entry 500 + -0x1.6355e6ffbf9bb1add4c3c1aa0b006418p-4, + -0x1.62e42fefa39f0p-4 + }, + { // Entry 501 + 0x1.6355e6ffbf9bb1add4c3c1aa0b006418p-4, + 0x1.62e42fefa39f0p-4 + }, + { // Entry 502 + -0x1.6355e6ffbf9ba19e726e44182bc81666p-4, + -0x1.62e42fefa39efp-4 + }, + { // Entry 503 + 0x1.6355e6ffbf9ba19e726e44182bc81666p-4, + 0x1.62e42fefa39efp-4 + }, + { // Entry 504 + -0x1.6355e6ffbf9b918f1018c6864c912c0bp-4, + -0x1.62e42fefa39eep-4 + }, + { // Entry 505 + 0x1.6355e6ffbf9b918f1018c6864c912c0bp-4, + 0x1.62e42fefa39eep-4 + }, + { // Entry 506 + -0x1.63009ba740a2ac7c7621e68d479279b3p-5, + -0x1.62e42fefa39f0p-5 + }, + { // Entry 507 + 0x1.63009ba740a2ac7c7621e68d479279b3p-5, + 0x1.62e42fefa39f0p-5 + }, + { // Entry 508 + -0x1.63009ba740a29c789e02c0a4897fafa4p-5, + -0x1.62e42fefa39efp-5 + }, + { // Entry 509 + 0x1.63009ba740a29c789e02c0a4897fafa4p-5, + 0x1.62e42fefa39efp-5 + }, + { // Entry 510 + -0x1.63009ba740a28c74c5e39abbcb6d3e54p-5, + -0x1.62e42fefa39eep-5 + }, + { // Entry 511 + 0x1.63009ba740a28c74c5e39abbcb6d3e54p-5, + 0x1.62e42fefa39eep-5 + }, + { // Entry 512 + 0x1.bfeb3206958461e0cd949b740397374bp262, + 0x1.6db6db6db6db7p7 + }, + { // Entry 513 + -0x1.bfeb3206958461e0cd949b740397374bp262, + -0x1.6db6db6db6db7p7 + }, + { // Entry 514 + 0x1.ee4adffc4816c196cc85c579b49b713cp341, + 0x1.db6db6db6db6ep7 + }, + { // Entry 515 + -0x1.ee4adffc4816c196cc85c579b49b713cp341, + -0x1.db6db6db6db6ep7 + }, + { // Entry 516 + 0x1.10bbd304e4d53317191db80168f41e88p421, + 0x1.2492492492492p8 + }, + { // Entry 517 + -0x1.10bbd304e4d53317191db80168f41e88p421, + -0x1.2492492492492p8 + }, + { // Entry 518 + 0x1.2cf8621aa3eacbce3c5c6aac7a52e872p500, + 0x1.5b6db6db6db6dp8 + }, + { // Entry 519 + -0x1.2cf8621aa3eacbce3c5c6aac7a52e872p500, + -0x1.5b6db6db6db6dp8 + }, + { // Entry 520 + 0x1.4c21539572c19b59fc629129d307d9b1p579, + 0x1.9249249249248p8 + }, + { // Entry 521 + -0x1.4c21539572c19b59fc629129d307d9b1p579, + -0x1.9249249249248p8 + }, + { // Entry 522 + 0x1.6e8422b4db33b6293cd44cd1c65585b2p658, + 0x1.c924924924923p8 + }, + { // Entry 523 + -0x1.6e8422b4db33b6293cd44cd1c65585b2p658, + -0x1.c924924924923p8 + }, + { // Entry 524 + 0x1.6dde4c855f3397cd05f383e2ad5ef219p935, + 0x1.4492492492492p9 + }, + { // Entry 525 + -0x1.6dde4c855f3397cd05f383e2ad5ef219p935, + -0x1.4492492492492p9 + }, + { // Entry 526 + 0x1.a178d253fc35a0b9802d9cd5f67cb7efp948, + 0x1.4924924924924p9 + }, + { // Entry 527 + -0x1.a178d253fc35a0b9802d9cd5f67cb7efp948, + -0x1.4924924924924p9 + }, + { // Entry 528 + 0x1.dc5a9c97ea13a0062828386dc2460ac2p961, + 0x1.4db6db6db6db6p9 + }, + { // Entry 529 + -0x1.dc5a9c97ea13a0062828386dc2460ac2p961, + -0x1.4db6db6db6db6p9 + }, + { // Entry 530 + 0x1.0fc53c727155d9dd001733d4258e3203p975, + 0x1.5249249249248p9 + }, + { // Entry 531 + -0x1.0fc53c727155d9dd001733d4258e3203p975, + -0x1.5249249249248p9 + }, + { // Entry 532 + 0x1.361a22f5879a158106bee1e89ea2a4d7p988, + 0x1.56db6db6db6dap9 + }, + { // Entry 533 + -0x1.361a22f5879a158106bee1e89ea2a4d7p988, + -0x1.56db6db6db6dap9 + }, + { // Entry 534 + 0x1.61d716eca93811f8d8288649dc2cee65p1001, + 0x1.5b6db6db6db6cp9 + }, + { // Entry 535 + -0x1.61d716eca93811f8d8288649dc2cee65p1001, + -0x1.5b6db6db6db6cp9 + }, + { // Entry 536 + HUGE_VAL, + 0x1.76db6db6db6dbp9 + }, + { // Entry 537 + -HUGE_VAL, + -0x1.76db6db6db6dbp9 + }, + { // Entry 538 + HUGE_VAL, + 0x1.8db6db6db6db6p9 + }, + { // Entry 539 + -HUGE_VAL, + -0x1.8db6db6db6db6p9 + }, + { // Entry 540 + HUGE_VAL, + 0x1.a492492492491p9 + }, + { // Entry 541 + -HUGE_VAL, + -0x1.a492492492491p9 + }, + { // Entry 542 + HUGE_VAL, + 0x1.bb6db6db6db6cp9 + }, + { // Entry 543 + -HUGE_VAL, + -0x1.bb6db6db6db6cp9 + }, + { // Entry 544 + HUGE_VAL, + 0x1.d249249249247p9 + }, + { // Entry 545 + -HUGE_VAL, + -0x1.d249249249247p9 + }, + { // Entry 546 + HUGE_VAL, + 0x1.e924924924922p9 + }, + { // Entry 547 + -HUGE_VAL, + -0x1.e924924924922p9 + }, + { // Entry 548 + -0x1.93bf4ec282efb320a57f9ae02e01ae51p1014, + -0x1.6p9 + }, + { // Entry 549 + 0x1.93bf4ec282efb320a57f9ae02e01ae51p1014, + 0x1.6p9 + }, + { // Entry 550 + -0x1.61d716eca99087be9352df5d131a5dd2p1001, + -0x1.5b6db6db6db6ep9 + }, + { // Entry 551 + 0x1.61d716eca99087be9352df5d131a5dd2p1001, + 0x1.5b6db6db6db6ep9 + }, + { // Entry 552 + -0x1.361a22f587e79c09c420d21ecffc00cdp988, + -0x1.56db6db6db6dcp9 + }, + { // Entry 553 + 0x1.361a22f587e79c09c420d21ecffc00cdp988, + 0x1.56db6db6db6dcp9 + }, + { // Entry 554 + -0x1.0fc53c727199cb2c1cb391c8c6b1cb5bp975, + -0x1.524924924924ap9 + }, + { // Entry 555 + 0x1.0fc53c727199cb2c1cb391c8c6b1cb5bp975, + 0x1.524924924924ap9 + }, + { // Entry 556 + -0x1.dc5a9c97ea8ab6ad4e22cc3898b4d422p961, + -0x1.4db6db6db6db8p9 + }, + { // Entry 557 + 0x1.dc5a9c97ea8ab6ad4e22cc3898b4d422p961, + 0x1.4db6db6db6db8p9 + }, + { // Entry 558 + -0x1.a178d253fc9dfeee152cb749eb6f6339p948, + -0x1.4924924924926p9 + }, + { // Entry 559 + 0x1.a178d253fc9dfeee152cb749eb6f6339p948, + 0x1.4924924924926p9 + }, + { // Entry 560 + -0x1.6dde4c855f8f0f60274b5c37930499f5p935, + -0x1.4492492492494p9 + }, + { // Entry 561 + 0x1.6dde4c855f8f0f60274b5c37930499f5p935, + 0x1.4492492492494p9 + }, + { // Entry 562 + -0x1.40a4b9c271c8c4271fbcc3df336e0edbp922, + -0x1.4000000000002p9 + }, + { // Entry 563 + 0x1.40a4b9c271c8c4271fbcc3df336e0edbp922, + 0x1.4000000000002p9 + }, + { // Entry 564 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 565 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 566 + -0.0, + -0.0 + }, + { // Entry 567 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 568 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 569 + 0x1.ecb353d02d5fb03947e320c5bccaac3fp-4, + 0x1.eb851eb851eb7p-4 + }, + { // Entry 570 + -0x1.ecb353d02d5fb03947e320c5bccaac3fp-4, + -0x1.eb851eb851eb7p-4 + }, + { // Entry 571 + 0x1.ecb353d02d5fc056ceb2ce9e08b8f8d5p-4, + 0x1.eb851eb851eb8p-4 + }, + { // Entry 572 + -0x1.ecb353d02d5fc056ceb2ce9e08b8f8d5p-4, + -0x1.eb851eb851eb8p-4 + }, + { // Entry 573 + 0x1.ecb353d02d5fd07455827c7654a9321fp-4, + 0x1.eb851eb851eb9p-4 + }, + { // Entry 574 + -0x1.ecb353d02d5fd07455827c7654a9321fp-4, + -0x1.eb851eb851eb9p-4 + }, + { // Entry 575 + 0x1.0acd00fe63b9639df6c641ed463c4ca0p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 576 + -0x1.0acd00fe63b9639df6c641ed463c4ca0p-1, + -0x1.fffffffffffffp-2 + }, + { // Entry 577 + 0x1.0acd00fe63b96ca357895761ae66224ap-1, + 0x1.0p-1 + }, + { // Entry 578 + -0x1.0acd00fe63b96ca357895761ae66224ap-1, + -0x1.0p-1 + }, + { // Entry 579 + 0x1.0acd00fe63b97eae190f824a7eebd40dp-1, + 0x1.0000000000001p-1 + }, + { // Entry 580 + -0x1.0acd00fe63b97eae190f824a7eebd40dp-1, + -0x1.0000000000001p-1 + }, + { // Entry 581 + 0x1.2cd9fc44eb98194fc7a05b845e4f82b3p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 582 + -0x1.2cd9fc44eb98194fc7a05b845e4f82b3p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 583 + 0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + 0x1.0p0 + }, + { // Entry 584 + -0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + -0x1.0p0 + }, + { // Entry 585 + 0x1.2cd9fc44eb983e58779b22745732962dp0, + 0x1.0000000000001p0 + }, + { // Entry 586 + -0x1.2cd9fc44eb983e58779b22745732962dp0, + -0x1.0000000000001p0 + }, + { // Entry 587 + 0x1.ab5adb9c435e4cbe72415713a64f66a1p30, + 0x1.5ffffffffffffp4 + }, + { // Entry 588 + -0x1.ab5adb9c435e4cbe72415713a64f66a1p30, + -0x1.5ffffffffffffp4 + }, + { // Entry 589 + 0x1.ab5adb9c435ff8194ddd9a72c8c01183p30, + 0x1.6p4 + }, + { // Entry 590 + -0x1.ab5adb9c435ff8194ddd9a72c8c01183p30, + -0x1.6p4 + }, + { // Entry 591 + 0x1.ab5adb9c4361a3742979ddd3968b9801p30, + 0x1.6000000000001p4 + }, + { // Entry 592 + -0x1.ab5adb9c4361a3742979ddd3968b9801p30, + -0x1.6000000000001p4 + }, + { // Entry 593 + 0x1.226af33b1fdae7ec593b8b45e80e54d2p32, + 0x1.6ffffffffffffp4 + }, + { // Entry 594 + -0x1.226af33b1fdae7ec593b8b45e80e54d2p32, + -0x1.6ffffffffffffp4 + }, + { // Entry 595 + 0x1.226af33b1fdc0a574c76ab2161309880p32, + 0x1.7p4 + }, + { // Entry 596 + -0x1.226af33b1fdc0a574c76ab2161309880p32, + -0x1.7p4 + }, + { // Entry 597 + 0x1.226af33b1fdd2cc23fb1cafdfcbdcf69p32, + 0x1.7000000000001p4 + }, + { // Entry 598 + -0x1.226af33b1fdd2cc23fb1cafdfcbdcf69p32, + -0x1.7000000000001p4 + }, + { // Entry 599 + 0x1.fffffffffffb9ede67b7a313285faa73p51, + 0x1.25e4f7b2737f9p5 + }, + { // Entry 600 + -0x1.fffffffffffb9ede67b7a313285faa73p51, + -0x1.25e4f7b2737f9p5 + }, + { // Entry 601 + 0x1.ffffffffffff9ede67b7a30e661c79e2p51, + 0x1.25e4f7b2737fap5 + }, + { // Entry 602 + -0x1.ffffffffffff9ede67b7a30e661c79e2p51, + -0x1.25e4f7b2737fap5 + }, + { // Entry 603 + 0x1.000000000001cf6f33dbd188d1eca4a9p52, + 0x1.25e4f7b2737fbp5 + }, + { // Entry 604 + -0x1.000000000001cf6f33dbd188d1eca4a9p52, + -0x1.25e4f7b2737fbp5 + }, + { // Entry 605 + 0x1.6a09e667f3b73b2e9b132d5142f3e5b3p52, + 0x1.28aac01252c6cp5 + }, + { // Entry 606 + -0x1.6a09e667f3b73b2e9b132d5142f3e5b3p52, + -0x1.28aac01252c6cp5 + }, + { // Entry 607 + 0x1.6a09e667f3ba0f4267e314c28d64e8a9p52, + 0x1.28aac01252c6dp5 + }, + { // Entry 608 + -0x1.6a09e667f3ba0f4267e314c28d64e8a9p52, + -0x1.28aac01252c6dp5 + }, + { // Entry 609 + 0x1.6a09e667f3bce35634b2fc397ffd853fp52, + 0x1.28aac01252c6ep5 + }, + { // Entry 610 + -0x1.6a09e667f3bce35634b2fc397ffd853fp52, + -0x1.28aac01252c6ep5 + }, + { // Entry 611 + 0x1.ffffffffff93ae594e9be425a010bdecp1023, + 0x1.633ce8fb9f87cp9 + }, + { // Entry 612 + -0x1.ffffffffff93ae594e9be425a010bdecp1023, + -0x1.633ce8fb9f87cp9 + }, + { // Entry 613 + 0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + 0x1.633ce8fb9f87dp9 + }, + { // Entry 614 + -0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + -0x1.633ce8fb9f87dp9 + }, + { // Entry 615 + HUGE_VAL, + 0x1.633ce8fb9f87ep9 + }, + { // Entry 616 + -HUGE_VAL, + -0x1.633ce8fb9f87ep9 + }, + { // Entry 617 + -HUGE_VAL, + -0x1.633ce8fb9f87ep9 + }, + { // Entry 618 + HUGE_VAL, + 0x1.633ce8fb9f87ep9 + }, + { // Entry 619 + -0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + -0x1.633ce8fb9f87dp9 + }, + { // Entry 620 + 0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + 0x1.633ce8fb9f87dp9 + }, + { // Entry 621 + -0x1.ffffffffff93ae594e9be425a010bdecp1023, + -0x1.633ce8fb9f87cp9 + }, + { // Entry 622 + 0x1.ffffffffff93ae594e9be425a010bdecp1023, + 0x1.633ce8fb9f87cp9 + }, + { // Entry 623 + 0x1.fffffffffffff005555555555554d559p-31, + 0x1.fffffffffffffp-31 + }, + { // Entry 624 + -0x1.fffffffffffff005555555555554d559p-31, + -0x1.fffffffffffffp-31 + }, + { // Entry 625 + 0x1.0000000000000002aaaaaaaaaaaaaaacp-30, + 0x1.0p-30 + }, + { // Entry 626 + -0x1.0000000000000002aaaaaaaaaaaaaaacp-30, + -0x1.0p-30 + }, + { // Entry 627 + 0x1.0000000000001002aaaaaaaaaaab2aacp-30, + 0x1.0000000000001p-30 + }, + { // Entry 628 + -0x1.0000000000001002aaaaaaaaaaab2aacp-30, + -0x1.0000000000001p-30 + }, + { // Entry 629 + 0x1.00000000aaaaa2aaccccbcccd00cfb7ap-15, + 0x1.fffffffffffffp-16 + }, + { // Entry 630 + -0x1.00000000aaaaa2aaccccbcccd00cfb7ap-15, + -0x1.fffffffffffffp-16 + }, + { // Entry 631 + 0x1.00000000aaaaaaaaccccccccd00d00d0p-15, + 0x1.0p-15 + }, + { // Entry 632 + -0x1.00000000aaaaaaaaccccccccd00d00d0p-15, + -0x1.0p-15 + }, + { // Entry 633 + 0x1.00000000aaaabaaaccccecccd00d0b7ap-15, + 0x1.0000000000001p-15 + }, + { // Entry 634 + -0x1.00000000aaaabaaaccccecccd00d0b7ap-15, + -0x1.0000000000001p-15 + }, + { // Entry 635 + 0x1.0002aaaccccd94d9bbd8527c599a8bc7p-6, + 0x1.fffffffffffffp-7 + }, + { // Entry 636 + -0x1.0002aaaccccd94d9bbd8527c599a8bc7p-6, + -0x1.fffffffffffffp-7 + }, + { // Entry 637 + 0x1.0002aaaccccd9cd9fbd8a7d1dc72c44bp-6, + 0x1.0p-6 + }, + { // Entry 638 + -0x1.0002aaaccccd9cd9fbd8a7d1dc72c44bp-6, + -0x1.0p-6 + }, + { // Entry 639 + 0x1.0002aaaccccdacda7bd9527ce2234152p-6, + 0x1.0000000000001p-6 + }, + { // Entry 640 + -0x1.0002aaaccccdacda7bd9527ce2234152p-6, + -0x1.0000000000001p-6 + }, + { // Entry 641 + 0x1.000aaacccd00c83a3cace89e1977724dp-5, + 0x1.fffffffffffffp-6 + }, + { // Entry 642 + -0x1.000aaacccd00c83a3cace89e1977724dp-5, + -0x1.fffffffffffffp-6 + }, + { // Entry 643 + 0x1.000aaacccd00d03b3cb23dfecf8fcbdcp-5, + 0x1.0p-5 + }, + { // Entry 644 + -0x1.000aaacccd00d03b3cb23dfecf8fcbdcp-5, + -0x1.0p-5 + }, + { // Entry 645 + 0x1.000aaacccd00e03d3cbce8c03bc0aefcp-5, + 0x1.0000000000001p-5 + }, + { // Entry 646 + -0x1.000aaacccd00e03d3cbce8c03bc0aefcp-5, + -0x1.0000000000001p-5 + }, + { // Entry 647 + 0x1.002aacccd9cdc312002bf56151115c11p-4, + 0x1.fffffffffffffp-5 + }, + { // Entry 648 + -0x1.002aacccd9cdc312002bf56151115c11p-4, + -0x1.fffffffffffffp-5 + }, + { // Entry 649 + 0x1.002aacccd9cdcb1600814d8ee0ea5e98p-4, + 0x1.0p-4 + }, + { // Entry 650 + -0x1.002aacccd9cdcb1600814d8ee0ea5e98p-4, + -0x1.0p-4 + }, + { // Entry 651 + 0x1.002aacccd9cddb1e012bfdea009d23c7p-4, + 0x1.0000000000001p-4 + }, + { // Entry 652 + -0x1.002aacccd9cddb1e012bfdea009d23c7p-4, + -0x1.0000000000001p-4 + }, + { // Entry 653 + 0x1.00aaccd00d2f0572b58768290cca24c3p-3, + 0x1.fffffffffffffp-4 + }, + { // Entry 654 + -0x1.00aaccd00d2f0572b58768290cca24c3p-3, + -0x1.fffffffffffffp-4 + }, + { // Entry 655 + 0x1.00aaccd00d2f0d82badd7396c439091ep-3, + 0x1.0p-3 + }, + { // Entry 656 + -0x1.00aaccd00d2f0d82badd7396c439091ep-3, + -0x1.0p-3 + }, + { // Entry 657 + 0x1.00aaccd00d2f1da2c5898a723319d3d5p-3, + 0x1.0000000000001p-3 + }, + { // Entry 658 + -0x1.00aaccd00d2f1da2c5898a723319d3d5p-3, + -0x1.0000000000001p-3 + }, + { // Entry 659 + 0x1.02accd9d081016261f4b0ecbebb5dd8fp-2, + 0x1.fffffffffffffp-3 + }, + { // Entry 660 + -0x1.02accd9d081016261f4b0ecbebb5dd8fp-2, + -0x1.fffffffffffffp-3 + }, + { // Entry 661 + 0x1.02accd9d08101e6674cdf3fc8eaabf2ap-2, + 0x1.0p-2 + }, + { // Entry 662 + -0x1.02accd9d08101e6674cdf3fc8eaabf2ap-2, + -0x1.0p-2 + }, + { // Entry 663 + 0x1.02accd9d08102ee71fd3be5dd4a0a27ap-2, + 0x1.0000000000001p-2 + }, + { // Entry 664 + -0x1.02accd9d08102ee71fd3be5dd4a0a27ap-2, + -0x1.0000000000001p-2 + }, + { // Entry 665 + 0x1.d03cf63b6e19d8da527239bc64c85ceap1, + 0x1.fffffffffffffp0 + }, + { // Entry 666 + -0x1.d03cf63b6e19d8da527239bc64c85ceap1, + -0x1.fffffffffffffp0 + }, + { // Entry 667 + 0x1.d03cf63b6e19f6f34c802c96200970efp1, + 0x1.0p1 + }, + { // Entry 668 + -0x1.d03cf63b6e19f6f34c802c96200970efp1, + -0x1.0p1 + }, + { // Entry 669 + 0x1.d03cf63b6e1a3325409c12499bfc4fdap1, + 0x1.0000000000001p1 + }, + { // Entry 670 + -0x1.d03cf63b6e1a3325409c12499bfc4fdap1, + -0x1.0000000000001p1 + }, + { // Entry 671 + 0x1.b4a380370362d5f21650a55c31b348b4p4, + 0x1.fffffffffffffp1 + }, + { // Entry 672 + -0x1.b4a380370362d5f21650a55c31b348b4p4, + -0x1.fffffffffffffp1 + }, + { // Entry 673 + 0x1.b4a3803703630c8fe70261d92e563a88p4, + 0x1.0p2 + }, + { // Entry 674 + -0x1.b4a3803703630c8fe70261d92e563a88p4, + -0x1.0p2 + }, + { // Entry 675 + 0x1.b4a38037036379cb8865dad33c13c833p4, + 0x1.0000000000001p2 + }, + { // Entry 676 + -0x1.b4a38037036379cb8865dad33c13c833p4, + -0x1.0000000000001p2 + }, + { // Entry 677 + 0x1.749ea514eca5ffdf3fd18b7627cdbdc8p10, + 0x1.fffffffffffffp2 + }, + { // Entry 678 + -0x1.749ea514eca5ffdf3fd18b7627cdbdc8p10, + -0x1.fffffffffffffp2 + }, + { // Entry 679 + 0x1.749ea514eca65d06ea7688aff46cfe09p10, + 0x1.0p3 + }, + { // Entry 680 + -0x1.749ea514eca65d06ea7688aff46cfe09p10, + -0x1.0p3 + }, + { // Entry 681 + 0x1.749ea514eca717563fc08323d3893d7ep10, + 0x1.0000000000001p3 + }, + { // Entry 682 + -0x1.749ea514eca717563fc08323d3893d7ep10, + -0x1.0000000000001p3 + }, + { // Entry 683 + 0x1.0f2ebd0a7ffdb64f4e0e5fcc0c593101p22, + 0x1.fffffffffffffp3 + }, + { // Entry 684 + -0x1.0f2ebd0a7ffdb64f4e0e5fcc0c593101p22, + -0x1.fffffffffffffp3 + }, + { // Entry 685 + 0x1.0f2ebd0a7ffe3de6ac939fced0122707p22, + 0x1.0p4 + }, + { // Entry 686 + -0x1.0f2ebd0a7ffe3de6ac939fced0122707p22, + -0x1.0p4 + }, + { // Entry 687 + 0x1.0f2ebd0a7fff4d15699e1fd522e720dcp22, + 0x1.0000000000001p4 + }, + { // Entry 688 + -0x1.0f2ebd0a7fff4d15699e1fd522e720dcp22, + -0x1.0000000000001p4 + }, + { // Entry 689 + 0x1.1f43fcc4b661a8944ac389a7c7ae7b9dp45, + 0x1.fffffffffffffp4 + }, + { // Entry 690 + -0x1.1f43fcc4b661a8944ac389a7c7ae7b9dp45, + -0x1.fffffffffffffp4 + }, + { // Entry 691 + 0x1.1f43fcc4b662c7d847884009ffe4c4c3p45, + 0x1.0p5 + }, + { // Entry 692 + -0x1.1f43fcc4b662c7d847884009ffe4c4c3p45, + -0x1.0p5 + }, + { // Entry 693 + 0x1.1f43fcc4b66506604111acd1ce1d4d5dp45, + 0x1.0000000000001p5 + }, + { // Entry 694 + -0x1.1f43fcc4b66506604111acd1ce1d4d5dp45, + -0x1.0000000000001p5 + }, + { // Entry 695 + 0x1.425982cf597a4d52c89ea857bbaa807ap91, + 0x1.fffffffffffffp5 + }, + { // Entry 696 + -0x1.425982cf597a4d52c89ea857bbaa807ap91, + -0x1.fffffffffffffp5 + }, + { // Entry 697 + 0x1.425982cf597cd205ce3d5b4edb031756p91, + 0x1.0p6 + }, + { // Entry 698 + -0x1.425982cf597cd205ce3d5b4edb031756p91, + -0x1.0p6 + }, + { // Entry 699 + 0x1.425982cf5981db6bd97ac14c35e666c6p91, + 0x1.0000000000001p6 + }, + { // Entry 700 + -0x1.425982cf5981db6bd97ac14c35e666c6p91, + -0x1.0000000000001p6 + }, + { // Entry 701 + 0x1.95e54c5dd41b20600dd601a0ae672ff4p183, + 0x1.fffffffffffffp6 + }, + { // Entry 702 + -0x1.95e54c5dd41b20600dd601a0ae672ff4p183, + -0x1.fffffffffffffp6 + }, + { // Entry 703 + 0x1.95e54c5dd42177f53f4d5219df11ca3bp183, + 0x1.0p7 + }, + { // Entry 704 + -0x1.95e54c5dd42177f53f4d5219df11ca3bp183, + -0x1.0p7 + }, + { // Entry 705 + 0x1.95e54c5dd42e271fa23bf3585b655060p183, + 0x1.0000000000001p7 + }, + { // Entry 706 + -0x1.95e54c5dd42e271fa23bf3585b655060p183, + -0x1.0000000000001p7 + }, + { // Entry 707 + 0x1.41c7a8814be192a5df25b042af824efdp368, + 0x1.fffffffffffffp7 + }, + { // Entry 708 + -0x1.41c7a8814be192a5df25b042af824efdp368, + -0x1.fffffffffffffp7 + }, + { // Entry 709 + 0x1.41c7a8814beba0e323300f777da65854p368, + 0x1.0p8 + }, + { // Entry 710 + -0x1.41c7a8814beba0e323300f777da65854p368, + -0x1.0p8 + }, + { // Entry 711 + 0x1.41c7a8814bffbd5dab44ced26faccbfbp368, + 0x1.0000000000001p8 + }, + { // Entry 712 + -0x1.41c7a8814bffbd5dab44ced26faccbfbp368, + -0x1.0000000000001p8 + }, + { // Entry 713 + 0x1.9476504ba8399f5b97cae35beb78c3c5p737, + 0x1.fffffffffffffp8 + }, + { // Entry 714 + -0x1.9476504ba8399f5b97cae35beb78c3c5p737, + -0x1.fffffffffffffp8 + }, + { // Entry 715 + 0x1.9476504ba852e6c09c8567c01c5a6648p737, + 0x1.0p9 + }, + { // Entry 716 + -0x1.9476504ba852e6c09c8567c01c5a6648p737, + -0x1.0p9 + }, + { // Entry 717 + 0x1.9476504ba885758aa5fa7545e10e8e46p737, + 0x1.0000000000001p9 + }, + { // Entry 718 + -0x1.9476504ba885758aa5fa7545e10e8e46p737, + -0x1.0000000000001p9 + }, + { // Entry 719 + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 720 + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 721 + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 722 + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 723 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 724 + HUGE_VAL, + 0x1.fffffffffffffp1023 + }, + { // Entry 725 + HUGE_VAL, + 0x1.ffffffffffffep1023 + }, + { // Entry 726 + 0x1.718f45d72e67155cecb0017179d127e6p3, + 0x1.921fb54442d18p1 + }, + { // Entry 727 + 0x1.2690f661dd81ffd244e02b94a5c51d39p1, + 0x1.921fb54442d18p0 + }, + { // Entry 728 + 0x1.2cd9fc44eb983e58779b22745732962dp0, + 0x1.0000000000001p0 + }, + { // Entry 729 + 0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + 0x1.0p0 + }, + { // Entry 730 + 0x1.2cd9fc44eb98194fc7a05b845e4f82b3p0, + 0x1.fffffffffffffp-1 + }, + { // Entry 731 + 0x1.bcc270b5227365b85e43b36397224d94p-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 732 + 0x1.00000000000010p-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 733 + 0x1.p-1022, + 0x1.0p-1022 + }, + { // Entry 734 + 0x1.ffffffffffffe0p-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 735 + 0x1.ffffffffffffc0p-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 736 + 0x1.p-1073, + 0x1.0p-1073 + }, + { // Entry 737 + 0x1.p-1074, + 0x1.0p-1074 + }, + { // Entry 738 + 0.0, + 0.0 + }, + { // Entry 739 + -0.0, + -0.0 + }, + { // Entry 740 + -0x1.p-1074, + -0x1.0p-1074 + }, + { // Entry 741 + -0x1.p-1073, + -0x1.0p-1073 + }, + { // Entry 742 + -0x1.ffffffffffffc0p-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 743 + -0x1.ffffffffffffe0p-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 744 + -0x1.p-1022, + -0x1.0p-1022 + }, + { // Entry 745 + -0x1.00000000000010p-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 746 + -0x1.bcc270b5227365b85e43b36397224d94p-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 747 + -0x1.2cd9fc44eb98194fc7a05b845e4f82b3p0, + -0x1.fffffffffffffp-1 + }, + { // Entry 748 + -0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + -0x1.0p0 + }, + { // Entry 749 + -0x1.2cd9fc44eb983e58779b22745732962dp0, + -0x1.0000000000001p0 + }, + { // Entry 750 + -0x1.2690f661dd81ffd244e02b94a5c51d39p1, + -0x1.921fb54442d18p0 + }, + { // Entry 751 + -0x1.718f45d72e67155cecb0017179d127e6p3, + -0x1.921fb54442d18p1 + }, + { // Entry 752 + -HUGE_VAL, + -0x1.ffffffffffffep1023 + }, + { // Entry 753 + -HUGE_VAL, + -0x1.fffffffffffffp1023 + }, + { // Entry 754 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 755 + 0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + 0x1.633ce8fb9f87dp9 + }, + { // Entry 756 + -0x1.ffffffffffd3ae594e9bda9b6b3a9168p1023, + -0x1.633ce8fb9f87dp9 + }, + { // Entry 757 + HUGE_VAL, + 0x1.633ce8fb9f87ep9 + }, + { // Entry 758 + -HUGE_VAL, + -0x1.633ce8fb9f87ep9 + } +}; diff --git a/tests/math_data/sinhf_intel_data.h b/tests/math_data/sinhf_intel_data.h new file mode 100644 index 000000000..30afc1ea9 --- /dev/null +++ b/tests/math_data/sinhf_intel_data.h @@ -0,0 +1,2494 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_sinhf_intel_data[] = { + { // Entry 0 + -0x1.00000000000aaaaaaaaaaaccccccccccp-21, + -0x1.p-21 + }, + { // Entry 1 + 0x1.00000000000aaaaaaaaaaaccccccccccp-21, + 0x1.p-21 + }, + { // Entry 2 + -0x1.1770c0fffee31db7a31664de401a57cdp-1, + -0x1.0b26eep-1 + }, + { // Entry 3 + 0x1.1770c0fffee31db7a31664de401a57cdp-1, + 0x1.0b26eep-1 + }, + { // Entry 4 + -0x1.204fd00000000000000f3ca3e81c03afp-37, + -0x1.204fd0p-37 + }, + { // Entry 5 + 0x1.204fd00000000000000f3ca3e81c03afp-37, + 0x1.204fd0p-37 + }, + { // Entry 6 + -0x1.43510055f383351ba9ec4cdf5b1b1fa5p-12, + -0x1.4351p-12 + }, + { // Entry 7 + 0x1.43510055f383351ba9ec4cdf5b1b1fa5p-12, + 0x1.4351p-12 + }, + { // Entry 8 + -0x1.4f1fe6fffd055403a0afa5f61f7ad456p122, + -0x1.561b10p6 + }, + { // Entry 9 + 0x1.4f1fe6fffd055403a0afa5f61f7ad456p122, + 0x1.561b10p6 + }, + { // Entry 10 + -0x1.76339d048c41010db95311bf38824f7fp-2, + -0x1.6e564ep-2 + }, + { // Entry 11 + 0x1.76339d048c41010db95311bf38824f7fp-2, + 0x1.6e564ep-2 + }, + { // Entry 12 + -0x1.a6399b00031ae7e2d10c4d5ca8b85bb6p-2, + -0x1.9b17d8p-2 + }, + { // Entry 13 + 0x1.a6399b00031ae7e2d10c4d5ca8b85bb6p-2, + 0x1.9b17d8p-2 + }, + { // Entry 14 + -0x1.ed9c6b045cf886a719553b239eced39ap-1, + -0x1.b62492p-1 + }, + { // Entry 15 + 0x1.ed9c6b045cf886a719553b239eced39ap-1, + 0x1.b62492p-1 + }, + { // Entry 16 + -0x1.ffb1b2f8d872ac8cb2c8ae78073874cep-1, + -0x1.c30c06p-1 + }, + { // Entry 17 + 0x1.ffb1b2f8d872ac8cb2c8ae78073874cep-1, + 0x1.c30c06p-1 + }, + { // Entry 18 + -0x1.490e3effd17cc5e5cebb7150a45530b0p9, + -0x1.cbae70p2 + }, + { // Entry 19 + 0x1.490e3effd17cc5e5cebb7150a45530b0p9, + 0x1.cbae70p2 + }, + { // Entry 20 + -0x1.d3735503c31601d8a231e42764dca76bp-12, + -0x1.d37354p-12 + }, + { // Entry 21 + 0x1.d3735503c31601d8a231e42764dca76bp-12, + 0x1.d37354p-12 + }, + { // Entry 22 + -0x1.d3750103c5df89146104862bc8eb9511p-12, + -0x1.d375p-12 + }, + { // Entry 23 + 0x1.d3750103c5df89146104862bc8eb9511p-12, + 0x1.d375p-12 + }, + { // Entry 24 + -0x1.d4bc08fe54522492a18ed763f5905a3cp-6, + -0x1.d4abacp-6 + }, + { // Entry 25 + 0x1.d4bc08fe54522492a18ed763f5905a3cp-6, + 0x1.d4abacp-6 + }, + { // Entry 26 + -0x1.b495d8f96ad2507c36e288f42ed69c65p4, + -0x1.fffcp1 + }, + { // Entry 27 + 0x1.b495d8f96ad2507c36e288f42ed69c65p4, + 0x1.fffcp1 + }, + { // Entry 28 + 0x1.0acd00fe63b96ca357895761ae66224ap-1, + 0x1.p-1 + }, + { // Entry 29 + -0x1.0acd00fe63b96ca357895761ae66224ap-1, + -0x1.p-1 + }, + { // Entry 30 + 0x1.00000000000aaaaaaaaaaaccccccccccp-21, + 0x1.p-21 + }, + { // Entry 31 + -0x1.00000000000aaaaaaaaaaaccccccccccp-21, + -0x1.p-21 + }, + { // Entry 32 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 33 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 34 + 0x1.000002000000000000000aaaaaeaaaabp-41, + 0x1.000002p-41 + }, + { // Entry 35 + -0x1.000002000000000000000aaaaaeaaaabp-41, + -0x1.000002p-41 + }, + { // Entry 36 + 0x1.00aae5001d35b2cc9f1bf5024aad3fc7p-3, + 0x1.000018p-3 + }, + { // Entry 37 + -0x1.00aae5001d35b2cc9f1bf5024aad3fc7p-3, + -0x1.000018p-3 + }, + { // Entry 38 + 0x1.2cdc4cd13dbaaea971cf4c6df8d02db1p0, + 0x1.000180p0 + }, + { // Entry 39 + -0x1.2cdc4cd13dbaaea971cf4c6df8d02db1p0, + -0x1.000180p0 + }, + { // Entry 40 + 0x1.000220000000000000002aabbaacecacp-40, + 0x1.000220p-40 + }, + { // Entry 41 + -0x1.000220000000000000002aabbaacecacp-40, + -0x1.000220p-40 + }, + { // Entry 42 + 0x1.75b684fbb21e3fadfd76948a74ff619cp10, + 0x1.0018p3 + }, + { // Entry 43 + -0x1.75b684fbb21e3fadfd76948a74ff619cp10, + -0x1.0018p3 + }, + { // Entry 44 + 0x1.0af11706dc935e6b8d9889ffd9d7f9eep-1, + 0x1.0020p-1 + }, + { // Entry 45 + -0x1.0af11706dc935e6b8d9889ffd9d7f9eep-1, + -0x1.0020p-1 + }, + { // Entry 46 + 0x1.2de53500112b48b54416fd3ac0fd5d35p0, + 0x1.00adp0 + }, + { // Entry 47 + -0x1.2de53500112b48b54416fd3ac0fd5d35p0, + -0x1.00adp0 + }, + { // Entry 48 + 0x1.d311590094b7169257222f29159c5274p1, + 0x1.00c0p1 + }, + { // Entry 49 + -0x1.d311590094b7169257222f29159c5274p1, + -0x1.00c0p1 + }, + { // Entry 50 + 0x1.bb8be0f928fa482d264aec809030cb98p4, + 0x1.0101p2 + }, + { // Entry 51 + -0x1.bb8be0f928fa482d264aec809030cb98p4, + -0x1.0101p2 + }, + { // Entry 52 + 0x1.d6509cfff1b887cd50d3c7b33a490af5p1, + 0x1.019bp1 + }, + { // Entry 53 + -0x1.d6509cfff1b887cd50d3c7b33a490af5p1, + -0x1.019bp1 + }, + { // Entry 54 + 0x1.d99ef101df23c13de5368e55ebb4c952p45, + 0x1.04p5 + }, + { // Entry 55 + -0x1.d99ef101df23c13de5368e55ebb4c952p45, + -0x1.04p5 + }, + { // Entry 56 + 0x1.b61e5ca3a5e30b2f0a03f292f9ce0084p92, + 0x1.04p6 + }, + { // Entry 57 + -0x1.b61e5ca3a5e30b2f0a03f292f9ce0084p92, + -0x1.04p6 + }, + { // Entry 58 + 0x1.0f53c500dab3115ec83d0a87f389efa5p-1, + 0x1.0401c0p-1 + }, + { // Entry 59 + -0x1.0f53c500dab3115ec83d0a87f389efa5p-1, + -0x1.0401c0p-1 + }, + { // Entry 60 + 0x1.07a43d780cd02aa326997430cb72ec6ep-2, + 0x1.04d0p-2 + }, + { // Entry 61 + -0x1.07a43d780cd02aa326997430cb72ec6ep-2, + -0x1.04d0p-2 + }, + { // Entry 62 + 0x1.070b91000585e92eceba7f1d10686783p-5, + 0x1.07p-5 + }, + { // Entry 63 + -0x1.070b91000585e92eceba7f1d10686783p-5, + -0x1.07p-5 + }, + { // Entry 64 + 0x1.0aef2dfa6f09af758cfac3ec7bbe6580p-2, + 0x1.08p-2 + }, + { // Entry 65 + -0x1.0aef2dfa6f09af758cfac3ec7bbe6580p-2, + -0x1.08p-2 + }, + { // Entry 66 + 0x1.0ab8c103d210ecc999dea2fb1e601dffp-7, + 0x1.0ab8p-7 + }, + { // Entry 67 + -0x1.0ab8c103d210ecc999dea2fb1e601dffp-7, + -0x1.0ab8p-7 + }, + { // Entry 68 + HUGE_VALF, + 0x1.0bd822p85 + }, + { // Entry 69 + -HUGE_VALF, + -0x1.0bd822p85 + }, + { // Entry 70 + 0x1.1b0bd9fff434fa99eb934f12cfcde40dp-1, + 0x1.0e50p-1 + }, + { // Entry 71 + -0x1.1b0bd9fff434fa99eb934f12cfcde40dp-1, + -0x1.0e50p-1 + }, + { // Entry 72 + 0x1.13a0d500d2f8e84e29cf7e0b47593d6bp-7, + 0x1.13a0p-7 + }, + { // Entry 73 + -0x1.13a0d500d2f8e84e29cf7e0b47593d6bp-7, + -0x1.13a0p-7 + }, + { // Entry 74 + 0x1.14635aff07928f6b82b6efd046d85611p-6, + 0x1.1460p-6 + }, + { // Entry 75 + -0x1.14635aff07928f6b82b6efd046d85611p-6, + -0x1.1460p-6 + }, + { // Entry 76 + 0x1.1837d7019c29ac4261d83dbdd9540770p-4, + 0x1.18p-4 + }, + { // Entry 77 + -0x1.1837d7019c29ac4261d83dbdd9540770p-4, + -0x1.18p-4 + }, + { // Entry 78 + 0x1.1e9a66ffff67888e2226adc979242050p-2, + 0x1.1afcc0p-2 + }, + { // Entry 79 + -0x1.1e9a66ffff67888e2226adc979242050p-2, + -0x1.1afcc0p-2 + }, + { // Entry 80 + 0x1.5851b581ab5774b6bc22fe804a609974p0, + 0x1.1b08p0 + }, + { // Entry 81 + -0x1.5851b581ab5774b6bc22fe804a609974p0, + -0x1.1b08p0 + }, + { // Entry 82 + 0x1.1fc09496b655ab5f571a14fc538740f3p-2, + 0x1.1c18p-2 + }, + { // Entry 83 + -0x1.1fc09496b655ab5f571a14fc538740f3p-2, + -0x1.1c18p-2 + }, + { // Entry 84 + 0x1.1c4fa6fffe2308d6059816c28ca68b93p-6, + 0x1.1c4cp-6 + }, + { // Entry 85 + -0x1.1c4fa6fffe2308d6059816c28ca68b93p-6, + -0x1.1c4cp-6 + }, + { // Entry 86 + 0x1.1ef0f05245d564eb621bc3580e810ecbp-7, + 0x1.1ef0p-7 + }, + { // Entry 87 + -0x1.1ef0f05245d564eb621bc3580e810ecbp-7, + -0x1.1ef0p-7 + }, + { // Entry 88 + 0x1.5ef59f4fb8454858c70cce0b76f0d1c1p0, + 0x1.1ef8p0 + }, + { // Entry 89 + -0x1.5ef59f4fb8454858c70cce0b76f0d1c1p0, + -0x1.1ef8p0 + }, + { // Entry 90 + 0x1.7922d2f6a620cc176196ee619e38cedep0, + 0x1.2e073ap0 + }, + { // Entry 91 + -0x1.7922d2f6a620cc176196ee619e38cedep0, + -0x1.2e073ap0 + }, + { // Entry 92 + 0x1.43b381fff77c0efbac7ee89fffb83db3p-1, + 0x1.31497ep-1 + }, + { // Entry 93 + -0x1.43b381fff77c0efbac7ee89fffb83db3p-1, + -0x1.31497ep-1 + }, + { // Entry 94 + 0x1.32b4320000022be269a7e0844e8fb427p-3, + 0x1.3191a2p-3 + }, + { // Entry 95 + -0x1.32b4320000022be269a7e0844e8fb427p-3, + -0x1.3191a2p-3 + }, + { // Entry 96 + 0x1.81e2b0f865f7d68960908dea8dbff652p0, + 0x1.32e74cp0 + }, + { // Entry 97 + -0x1.81e2b0f865f7d68960908dea8dbff652p0, + -0x1.32e74cp0 + }, + { // Entry 98 + 0x1.684f9300049996963e27553b525d785cp2, + 0x1.36ea5cp1 + }, + { // Entry 99 + -0x1.684f9300049996963e27553b525d785cp2, + -0x1.36ea5cp1 + }, + { // Entry 100 + 0x1.3e8c5a52344c5fc05de7cf393fd80bacp-12, + 0x1.3e8c5ap-12 + }, + { // Entry 101 + -0x1.3e8c5a52344c5fc05de7cf393fd80bacp-12, + -0x1.3e8c5ap-12 + }, + { // Entry 102 + 0x1.3ebc005259354f37ecfabafab164439dp-12, + 0x1.3ebcp-12 + }, + { // Entry 103 + -0x1.3ebc005259354f37ecfabafab164439dp-12, + -0x1.3ebcp-12 + }, + { // Entry 104 + 0x1.3ec66e52614b0b45d34f5458bd2b6d4ap-12, + 0x1.3ec66ep-12 + }, + { // Entry 105 + -0x1.3ec66e52614b0b45d34f5458bd2b6d4ap-12, + -0x1.3ec66ep-12 + }, + { // Entry 106 + 0x1.9a856d00436428754784f838aa53dcdep0, + 0x1.403a42p0 + }, + { // Entry 107 + -0x1.9a856d00436428754784f838aa53dcdep0, + -0x1.403a42p0 + }, + { // Entry 108 + 0x1.4674690003b5c33e7fd09a6bffacac02p-2, + 0x1.4129d6p-2 + }, + { // Entry 109 + -0x1.4674690003b5c33e7fd09a6bffacac02p-2, + -0x1.4129d6p-2 + }, + { // Entry 110 + 0x1.442556569d4a81e2d99f316cd704988bp-12, + 0x1.442556p-12 + }, + { // Entry 111 + -0x1.442556569d4a81e2d99f316cd704988bp-12, + -0x1.442556p-12 + }, + { // Entry 112 + 0x1.f897f07e50760e5213f6121940ce7277p115, + 0x1.4455a8p6 + }, + { // Entry 113 + -0x1.f897f07e50760e5213f6121940ce7277p115, + -0x1.4455a8p6 + }, + { // Entry 114 + 0x1.f7c601c26a0aab07acb3aed129529860p116, + 0x1.4719c6p6 + }, + { // Entry 115 + -0x1.f7c601c26a0aab07acb3aed129529860p116, + -0x1.4719c6p6 + }, + { // Entry 116 + 0x1.8fd142fffbf07bcd9c6607b02fc55b74p117, + 0x1.48f2e4p6 + }, + { // Entry 117 + -0x1.8fd142fffbf07bcd9c6607b02fc55b74p117, + -0x1.48f2e4p6 + }, + { // Entry 118 + 0x1.54e2c50008b73d8e4d7ed6ca4c155dbcp-3, + 0x1.5354c2p-3 + }, + { // Entry 119 + -0x1.54e2c50008b73d8e4d7ed6ca4c155dbcp-3, + -0x1.5354c2p-3 + }, + { // Entry 120 + 0x1.7ff7f6932445d2e31f1b7c20d7c7d875p125, + 0x1.5ef7bcp6 + }, + { // Entry 121 + -0x1.7ff7f6932445d2e31f1b7c20d7c7d875p125, + -0x1.5ef7bcp6 + }, + { // Entry 122 + 0x1.f13408794171d98e14f95245a340ab06p125, + 0x1.600060p6 + }, + { // Entry 123 + -0x1.f13408794171d98e14f95245a340ab06p125, + -0x1.600060p6 + }, + { // Entry 124 + 0x1.f916467349b058b9c38906911b856056p125, + 0x1.60107cp6 + }, + { // Entry 125 + -0x1.f916467349b058b9c38906911b856056p125, + -0x1.60107cp6 + }, + { // Entry 126 + 0x1.6918410000c5ae5656882e7cea64f25bp-2, + 0x1.620054p-2 + }, + { // Entry 127 + -0x1.6918410000c5ae5656882e7cea64f25bp-2, + -0x1.620054p-2 + }, + { // Entry 128 + 0x1.0021063836b49dcc89e4c5aab5e911d1p127, + 0x1.62e4b4p6 + }, + { // Entry 129 + -0x1.0021063836b49dcc89e4c5aab5e911d1p127, + -0x1.62e4b4p6 + }, + { // Entry 130 + 0x1.f40a2c6c7e4eec4c0ed1fae32d255e23p127, + 0x1.6591c4p6 + }, + { // Entry 131 + -0x1.f40a2c6c7e4eec4c0ed1fae32d255e23p127, + -0x1.6591c4p6 + }, + { // Entry 132 + 0x1.ff0714d44fc871ff0c086096f1bf0ae0p127, + 0x1.65a806p6 + }, + { // Entry 133 + -0x1.ff0714d44fc871ff0c086096f1bf0ae0p127, + -0x1.65a806p6 + }, + { // Entry 134 + 0x1.ff70ec400b9c2d8dee878e30b56339bep127, + 0x1.65a8dap6 + }, + { // Entry 135 + -0x1.ff70ec400b9c2d8dee878e30b56339bep127, + -0x1.65a8dap6 + }, + { // Entry 136 + 0x1.fff2d869d07d11d6c64d896f117f0094p127, + 0x1.65a9dep6 + }, + { // Entry 137 + -0x1.fff2d869d07d11d6c64d896f117f0094p127, + -0x1.65a9dep6 + }, + { // Entry 138 + 0x1.6e444103bc8945311358dde7a66bdb38p-2, + 0x1.66dffap-2 + }, + { // Entry 139 + -0x1.6e444103bc8945311358dde7a66bdb38p-2, + -0x1.66dffap-2 + }, + { // Entry 140 + 0x1.67cf01000052cb8c07fcbe6cb68dcc3dp-6, + 0x1.67c79ap-6 + }, + { // Entry 141 + -0x1.67cf01000052cb8c07fcbe6cb68dcc3dp-6, + -0x1.67c79ap-6 + }, + { // Entry 142 + 0x1.7800852fb7173f3c300caca6708f0d6fp-8, + 0x1.77fffep-8 + }, + { // Entry 143 + -0x1.7800852fb7173f3c300caca6708f0d6fp-8, + -0x1.77fffep-8 + }, + { // Entry 144 + 0x1.80000900001033334115f1660750774cp-10, + 0x1.80p-10 + }, + { // Entry 145 + -0x1.80000900001033334115f1660750774cp-10, + -0x1.80p-10 + }, + { // Entry 146 + 0x1.5df91cff9ace26df572d528a8d7e4d99p16, + 0x1.8313eap3 + }, + { // Entry 147 + -0x1.5df91cff9ace26df572d528a8d7e4d99p16, + -0x1.8313eap3 + }, + { // Entry 148 + 0x1.16c370fc40a0ef3180f8a61c8b25157cp1, + 0x1.853c56p0 + }, + { // Entry 149 + -0x1.16c370fc40a0ef3180f8a61c8b25157cp1, + -0x1.853c56p0 + }, + { // Entry 150 + 0x1.880000993055674ae98a9a44aa624509p-12, + 0x1.88p-12 + }, + { // Entry 151 + -0x1.880000993055674ae98a9a44aa624509p-12, + -0x1.88p-12 + }, + { // Entry 152 + 0x1.dab77d03d9ceea48387c7a3e5ebde612p16, + 0x1.8cd558p3 + }, + { // Entry 153 + -0x1.dab77d03d9ceea48387c7a3e5ebde612p16, + -0x1.8cd558p3 + }, + { // Entry 154 + 0x1.b36be4f606d0cd43778f0b56d6c78c69p3, + 0x1.a70ca4p1 + }, + { // Entry 155 + -0x1.b36be4f606d0cd43778f0b56d6c78c69p3, + -0x1.a70ca4p1 + }, + { // Entry 156 + 0x1.9fc768f63e2199d4161ad52c42c43993p8, + 0x1.ae4a96p2 + }, + { // Entry 157 + -0x1.9fc768f63e2199d4161ad52c42c43993p8, + -0x1.ae4a96p2 + }, + { // Entry 158 + 0x1.fddcb5028f3c5f2f9057b275fda963b5p-1, + 0x1.c1c0p-1 + }, + { // Entry 159 + -0x1.fddcb5028f3c5f2f9057b275fda963b5p-1, + -0x1.c1c0p-1 + }, + { // Entry 160 + 0x1.c9d78317aae58861bfa01747e05aaa21p-3, + 0x1.c61c8ep-3 + }, + { // Entry 161 + -0x1.c9d78317aae58861bfa01747e05aaa21p-3, + -0x1.c61c8ep-3 + }, + { // Entry 162 + 0x1.17d46d00e7aa2bd311c9d06faf31cd0fp4, + 0x1.c71c78p1 + }, + { // Entry 163 + -0x1.17d46d00e7aa2bd311c9d06faf31cd0fp4, + -0x1.c71c78p1 + }, + { // Entry 164 + 0x1.d00fdefedbdc86d82e34a1726ce6fd5ep-6, + 0x1.cffffep-6 + }, + { // Entry 165 + -0x1.d00fdefedbdc86d82e34a1726ce6fd5ep-6, + -0x1.cffffep-6 + }, + { // Entry 166 + 0x1.d12f11000068b29f1390f76019d191e9p-12, + 0x1.d12f10p-12 + }, + { // Entry 167 + -0x1.d12f11000068b29f1390f76019d191e9p-12, + -0x1.d12f10p-12 + }, + { // Entry 168 + 0x1.e161430003f635efa46c1b93b40d124ap-2, + 0x1.d13608p-2 + }, + { // Entry 169 + -0x1.e161430003f635efa46c1b93b40d124ap-2, + -0x1.d13608p-2 + }, + { // Entry 170 + 0x1.e518f10016d4233539a6a86b46de305dp9, + 0x1.e48570p2 + }, + { // Entry 171 + -0x1.e518f10016d4233539a6a86b46de305dp9, + -0x1.e48570p2 + }, + { // Entry 172 + 0x1.f882f8ffff8c2c97052fff77b0fe05cap-2, + 0x1.e60da6p-2 + }, + { // Entry 173 + -0x1.f882f8ffff8c2c97052fff77b0fe05cap-2, + -0x1.e60da6p-2 + }, + { // Entry 174 + 0x1.a6565af66cc00367cd4b44acef8fe3b4p1, + 0x1.e8bce0p0 + }, + { // Entry 175 + -0x1.a6565af66cc00367cd4b44acef8fe3b4p1, + -0x1.e8bce0p0 + }, + { // Entry 176 + 0x1.ee2fa5ffffffd478a109217059ddb3a9p-4, + 0x1.ecfeb6p-4 + }, + { // Entry 177 + -0x1.ee2fa5ffffffd478a109217059ddb3a9p-4, + -0x1.ecfeb6p-4 + }, + { // Entry 178 + 0x1.b54f74f65bab12830f959a3e2d7e1c61p1, + 0x1.f14910p0 + }, + { // Entry 179 + -0x1.b54f74f65bab12830f959a3e2d7e1c61p1, + -0x1.f14910p0 + }, + { // Entry 180 + 0x1.b56a96f6fbbb8045af62b07d5d56b656p1, + 0x1.f1584ep0 + }, + { // Entry 181 + -0x1.b56a96f6fbbb8045af62b07d5d56b656p1, + -0x1.f1584ep0 + }, + { // Entry 182 + 0x1.f6e42e000047623ec2a83a461e98dec7p-3, + 0x1.f1f852p-3 + }, + { // Entry 183 + -0x1.f6e42e000047623ec2a83a461e98dec7p-3, + -0x1.f1f852p-3 + }, + { // Entry 184 + 0x1.f6ec1458fb3487aac4bfeec4b6812670p-3, + 0x1.f1fffep-3 + }, + { // Entry 185 + -0x1.f6ec1458fb3487aac4bfeec4b6812670p-3, + -0x1.f1fffep-3 + }, + { // Entry 186 + 0x1.f2fda6fdfa98a35b66e5104fdacd2bd5p-9, + 0x1.f2fd58p-9 + }, + { // Entry 187 + -0x1.f2fda6fdfa98a35b66e5104fdacd2bd5p-9, + -0x1.f2fd58p-9 + }, + { // Entry 188 + 0x1.f8521dffffcd41462b0d73569b1d3819p-3, + 0x1.f35bacp-3 + }, + { // Entry 189 + -0x1.f8521dffffcd41462b0d73569b1d3819p-3, + -0x1.f35bacp-3 + }, + { // Entry 190 + 0x1.f4dda8fe2ec303fc7f7568475545139cp-11, + 0x1.f4dda4p-11 + }, + { // Entry 191 + -0x1.f4dda8fe2ec303fc7f7568475545139cp-11, + -0x1.f4dda4p-11 + }, + { // Entry 192 + 0x1.f51a7d0000ac50ad5402c949ba82e8a3p-11, + 0x1.f51a78p-11 + }, + { // Entry 193 + -0x1.f51a7d0000ac50ad5402c949ba82e8a3p-11, + -0x1.f51a78p-11 + }, + { // Entry 194 + 0x1.a664dced7cb98c68f2b973d65c676a35p21, + 0x1.f7fffep3 + }, + { // Entry 195 + -0x1.a664dced7cb98c68f2b973d65c676a35p21, + -0x1.f7fffep3 + }, + { // Entry 196 + 0x1.f9b658ffff3ce39965e1b291abc9efb8p-4, + 0x1.f86facp-4 + }, + { // Entry 197 + -0x1.f9b658ffff3ce39965e1b291abc9efb8p-4, + -0x1.f86facp-4 + }, + { // Entry 198 + 0x1.28c3fb0016be4fd802e83c9be0d9cad1p0, + 0x1.faaee8p-1 + }, + { // Entry 199 + -0x1.28c3fb0016be4fd802e83c9be0d9cad1p0, + -0x1.faaee8p-1 + }, + { // Entry 200 + 0x1.29b1530000004a3722ae1117c2787152p0, + 0x1.fbe4b0p-1 + }, + { // Entry 201 + -0x1.29b1530000004a3722ae1117c2787152p0, + -0x1.fbe4b0p-1 + }, + { // Entry 202 + 0x1.fc14d4961039dc857c796f56b34af3b3p-6, + 0x1.fbfffep-6 + }, + { // Entry 203 + -0x1.fc14d4961039dc857c796f56b34af3b3p-6, + -0x1.fbfffep-6 + }, + { // Entry 204 + 0x1.fc4d7fd2d8e70ecb66e028137da8ba9dp-7, + 0x1.fc4848p-7 + }, + { // Entry 205 + -0x1.fc4d7fd2d8e70ecb66e028137da8ba9dp-7, + -0x1.fc4848p-7 + }, + { // Entry 206 + 0x1.fce613caa0469e68c720c7696cf35c3dp-9, + 0x1.fce5c0p-9 + }, + { // Entry 207 + -0x1.fce613caa0469e68c720c7696cf35c3dp-9, + -0x1.fce5c0p-9 + }, + { // Entry 208 + 0x1.fdf50fe0194330cfcecb2935b09d09a3p-6, + 0x1.fddffep-6 + }, + { // Entry 209 + -0x1.fdf50fe0194330cfcecb2935b09d09a3p-6, + -0x1.fddffep-6 + }, + { // Entry 210 + 0x1.ff92198272299e9dd5a4315372947bb7p-4, + 0x1.fe3ffep-4 + }, + { // Entry 211 + -0x1.ff92198272299e9dd5a4315372947bb7p-4, + -0x1.fe3ffep-4 + }, + { // Entry 212 + 0x1.fed49818a86c9e5d357348cc86552ecfp-5, + 0x1.fe7ffep-5 + }, + { // Entry 213 + -0x1.fed49818a86c9e5d357348cc86552ecfp-5, + -0x1.fe7ffep-5 + }, + { // Entry 214 + 0x1.3d59d2d8b22b41c2bb6334c9be7be902p91, + 0x1.ffdffep5 + }, + { // Entry 215 + -0x1.3d59d2d8b22b41c2bb6334c9be7be902p91, + -0x1.ffdffep5 + }, + { // Entry 216 + 0x1.fff77f554451e1f58b2d5e1ecc407a66p-12, + 0x1.fff77ep-12 + }, + { // Entry 217 + -0x1.fff77f554451e1f58b2d5e1ecc407a66p-12, + -0x1.fff77ep-12 + }, + { // Entry 218 + 0x1.7474c2f9144f003acd66e60d58643f07p10, + 0x1.fff8cep2 + }, + { // Entry 219 + -0x1.7474c2f9144f003acd66e60d58643f07p10, + -0x1.fff8cep2 + }, + { // Entry 220 + 0x1.b495d8f96ad2507c36e288f42ed69c65p4, + 0x1.fffcp1 + }, + { // Entry 221 + -0x1.b495d8f96ad2507c36e288f42ed69c65p4, + -0x1.fffcp1 + }, + { // Entry 222 + 0x1.2cd7476ede0aac2c3be4d81efc1fae2bp0, + 0x1.fffc7ep-1 + }, + { // Entry 223 + -0x1.2cd7476ede0aac2c3be4d81efc1fae2bp0, + -0x1.fffc7ep-1 + }, + { // Entry 224 + 0x1.d03a90ffffa72affa30aae2126410fd3p1, + 0x1.fffebap0 + }, + { // Entry 225 + -0x1.d03a90ffffa72affa30aae2126410fd3p1, + -0x1.fffebap0 + }, + { // Entry 226 + 0x1.b4a0e9ff76786bf6ec2ea4f53a42a118p4, + 0x1.ffff3ep1 + }, + { // Entry 227 + -0x1.b4a0e9ff76786bf6ec2ea4f53a42a118p4, + -0x1.ffff3ep1 + }, + { // Entry 228 + 0.0, + 0.0 + }, + { // Entry 229 + 0x1.24d1fe8cfad7f98fcdbea5882af8e32dp-4, + 0x1.24924ap-4 + }, + { // Entry 230 + -0x1.24d1fe8cfad7f98fcdbea5882af8e32dp-4, + -0x1.24924ap-4 + }, + { // Entry 231 + 0x1.25914e250092e5c3cddf2040afd79c65p-3, + 0x1.24924ap-3 + }, + { // Entry 232 + -0x1.25914e250092e5c3cddf2040afd79c65p-3, + -0x1.24924ap-3 + }, + { // Entry 233 + 0x1.ba393734ca25f6f4197cc41844ff6e7dp-3, + 0x1.b6db70p-3 + }, + { // Entry 234 + -0x1.ba393734ca25f6f4197cc41844ff6e7dp-3, + -0x1.b6db70p-3 + }, + { // Entry 235 + 0x1.28917b1a67c439ef2a28337ebef6dc3cp-2, + 0x1.24924ap-2 + }, + { // Entry 236 + -0x1.28917b1a67c439ef2a28337ebef6dc3cp-2, + -0x1.24924ap-2 + }, + { // Entry 237 + 0x1.7589df829503fa20ed8774c31e6a332cp-2, + 0x1.6db6dcp-2 + }, + { // Entry 238 + -0x1.7589df829503fa20ed8774c31e6a332cp-2, + -0x1.6db6dcp-2 + }, + { // Entry 239 + 0x1.c46a5c1d32d4860b81155aef808f7d0fp-2, + 0x1.b6db6ep-2 + }, + { // Entry 240 + -0x1.c46a5c1d32d4860b81155aef808f7d0fp-2, + -0x1.b6db6ep-2 + }, + { // Entry 241 + 0x1.0acd00fe63b96ca357895761ae66224ap-1, + 0x1.p-1 + }, + { // Entry 242 + -0x1.0acd00fe63b96ca357895761ae66224ap-1, + -0x1.p-1 + }, + { // Entry 243 + 0x1.0acd00fe63b96ca357895761ae66224ap-1, + 0x1.p-1 + }, + { // Entry 244 + -0x1.0acd00fe63b96ca357895761ae66224ap-1, + -0x1.p-1 + }, + { // Entry 245 + 0x1.34c1747f635dfc16c1d88e5910239fe8p-1, + 0x1.24924ap-1 + }, + { // Entry 246 + -0x1.34c1747f635dfc16c1d88e5910239fe8p-1, + -0x1.24924ap-1 + }, + { // Entry 247 + 0x1.604959cb9dca66a6c6b1d52214b88901p-1, + 0x1.492494p-1 + }, + { // Entry 248 + -0x1.604959cb9dca66a6c6b1d52214b88901p-1, + -0x1.492494p-1 + }, + { // Entry 249 + 0x1.8d9d92611935ee8bcc9e9c1bbcb4ec0dp-1, + 0x1.6db6dep-1 + }, + { // Entry 250 + -0x1.8d9d92611935ee8bcc9e9c1bbcb4ec0dp-1, + -0x1.6db6dep-1 + }, + { // Entry 251 + 0x1.bcf9593d2ecc12e3836d15a1067a7896p-1, + 0x1.924928p-1 + }, + { // Entry 252 + -0x1.bcf9593d2ecc12e3836d15a1067a7896p-1, + -0x1.924928p-1 + }, + { // Entry 253 + 0x1.ee9a9041b2e77dc8645b07cd35bf1333p-1, + 0x1.b6db72p-1 + }, + { // Entry 254 + -0x1.ee9a9041b2e77dc8645b07cd35bf1333p-1, + -0x1.b6db72p-1 + }, + { // Entry 255 + 0x1.116108889abd3fd6df9a909af5b4b3abp0, + 0x1.db6dbcp-1 + }, + { // Entry 256 + -0x1.116108889abd3fd6df9a909af5b4b3abp0, + -0x1.db6dbcp-1 + }, + { // Entry 257 + 0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + 0x1.p0 + }, + { // Entry 258 + -0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + -0x1.p0 + }, + { // Entry 259 + 0.0, + 0.0 + }, + { // Entry 260 + 0x1.18e1df94a3c9eec616f3c33e116ff136p-6, + 0x1.18de5ap-6 + }, + { // Entry 261 + -0x1.18e1df94a3c9eec616f3c33e116ff136p-6, + -0x1.18de5ap-6 + }, + { // Entry 262 + 0x1.18ec707b41cb05757f702b2e7bc8168fp-5, + 0x1.18de5ap-5 + }, + { // Entry 263 + -0x1.18ec707b41cb05757f702b2e7bc8168fp-5, + -0x1.18de5ap-5 + }, + { // Entry 264 + 0x1.a57d14c544db6f79ccb29cf647ec3bd6p-5, + 0x1.a54d88p-5 + }, + { // Entry 265 + -0x1.a57d14c544db6f79ccb29cf647ec3bd6p-5, + -0x1.a54d88p-5 + }, + { // Entry 266 + 0x1.1916b67842dff1025e79e06864bad805p-4, + 0x1.18de5ap-4 + }, + { // Entry 267 + -0x1.1916b67842dff1025e79e06864bad805p-4, + -0x1.18de5ap-4 + }, + { // Entry 268 + 0x1.5f840854828275e07b52147a0b34cec2p-4, + 0x1.5f15f0p-4 + }, + { // Entry 269 + -0x1.5f840854828275e07b52147a0b34cec2p-4, + -0x1.5f15f0p-4 + }, + { // Entry 270 + 0x1.a60bcc64888b5d1a7338b1a0f9243f1ep-4, + 0x1.a54d86p-4 + }, + { // Entry 271 + -0x1.a60bcc64888b5d1a7338b1a0f9243f1ep-4, + -0x1.a54d86p-4 + }, + { // Entry 272 + 0x1.ecb35112d674d05785ec00066c2b3ec8p-4, + 0x1.eb851cp-4 + }, + { // Entry 273 + -0x1.ecb35112d674d05785ec00066c2b3ec8p-4, + -0x1.eb851cp-4 + }, + { // Entry 274 + 0x1.ecb35316874ebf73aba92491a44e079fp-4, + 0x1.eb851ep-4 + }, + { // Entry 275 + -0x1.ecb35316874ebf73aba92491a44e079fp-4, + -0x1.eb851ep-4 + }, + { // Entry 276 + 0x1.02243d1276143106404fa4cb3fcadf33p-3, + 0x1.01767ep-3 + }, + { // Entry 277 + -0x1.02243d1276143106404fa4cb3fcadf33p-3, + -0x1.01767ep-3 + }, + { // Entry 278 + 0x1.0df0f8011126593efedda045c8fa0e09p-3, + 0x1.0d2a6cp-3 + }, + { // Entry 279 + -0x1.0df0f8011126593efedda045c8fa0e09p-3, + -0x1.0d2a6cp-3 + }, + { // Entry 280 + 0x1.19bff49926d4870c4cae1f4076b8e37ap-3, + 0x1.18de5ap-3 + }, + { // Entry 281 + -0x1.19bff49926d4870c4cae1f4076b8e37ap-3, + -0x1.18de5ap-3 + }, + { // Entry 282 + 0x1.25914c1fc4d40b236a218f858c70fb53p-3, + 0x1.249248p-3 + }, + { // Entry 283 + -0x1.25914c1fc4d40b236a218f858c70fb53p-3, + -0x1.249248p-3 + }, + { // Entry 284 + 0x1.316517df03194e62cdc39c303b8105ffp-3, + 0x1.304636p-3 + }, + { // Entry 285 + -0x1.316517df03194e62cdc39c303b8105ffp-3, + -0x1.304636p-3 + }, + { // Entry 286 + 0x1.3d3b712639f615986771a910d344617ep-3, + 0x1.3bfa24p-3 + }, + { // Entry 287 + -0x1.3d3b712639f615986771a910d344617ep-3, + -0x1.3bfa24p-3 + }, + { // Entry 288 + 0x1.4914714a38430228edb55e7949c30a96p-3, + 0x1.47ae12p-3 + }, + { // Entry 289 + -0x1.4914714a38430228edb55e7949c30a96p-3, + -0x1.47ae12p-3 + }, + { // Entry 290 + 0x1.49147350c990b8731b5aa06b375e9ad0p-3, + 0x1.47ae14p-3 + }, + { // Entry 291 + -0x1.49147350c990b8731b5aa06b375e9ad0p-3, + -0x1.47ae14p-3 + }, + { // Entry 292 + 0x1.227b2f3d30af1d4e22444c8e7f338460p-2, + 0x1.1eb852p-2 + }, + { // Entry 293 + -0x1.227b2f3d30af1d4e22444c8e7f338460p-2, + -0x1.1eb852p-2 + }, + { // Entry 294 + 0x1.a49c42670497025996a8b3ff42a49c6fp-2, + 0x1.99999ap-2 + }, + { // Entry 295 + -0x1.a49c42670497025996a8b3ff42a49c6fp-2, + -0x1.99999ap-2 + }, + { // Entry 296 + 0x1.1666dcd198ff92b46da6bfab8aba56a0p-1, + 0x1.0a3d70p-1 + }, + { // Entry 297 + -0x1.1666dcd198ff92b46da6bfab8aba56a0p-1, + -0x1.0a3d70p-1 + }, + { // Entry 298 + 0x1.5e8321e07e76d08e1e985ab3cd7da5b6p-1, + 0x1.47ae14p-1 + }, + { // Entry 299 + -0x1.5e8321e07e76d08e1e985ab3cd7da5b6p-1, + -0x1.47ae14p-1 + }, + { // Entry 300 + 0x1.abad14f0aa07a2fd5cc86f6098a8cf80p-1, + 0x1.851eb8p-1 + }, + { // Entry 301 + -0x1.abad14f0aa07a2fd5cc86f6098a8cf80p-1, + -0x1.851eb8p-1 + }, + { // Entry 302 + 0x1.ff0182668411539d3db9b8fd9af11fd0p-1, + 0x1.c28f5cp-1 + }, + { // Entry 303 + -0x1.ff0182668411539d3db9b8fd9af11fd0p-1, + -0x1.c28f5cp-1 + }, + { // Entry 304 + 0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + 0x1.p0 + }, + { // Entry 305 + -0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + -0x1.p0 + }, + { // Entry 306 + 0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + 0x1.p0 + }, + { // Entry 307 + -0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + -0x1.p0 + }, + { // Entry 308 + 0x1.95525e4a2ef718eb0754642866b5a7d4p3, + 0x1.9de826p1 + }, + { // Entry 309 + -0x1.95525e4a2ef718eb0754642866b5a7d4p3, + -0x1.9de826p1 + }, + { // Entry 310 + 0x1.d9a0eee58bbd37706f9307edad7da7ecp6, + 0x1.5de826p2 + }, + { // Entry 311 + -0x1.d9a0eee58bbd37706f9307edad7da7ecp6, + -0x1.5de826p2 + }, + { // Entry 312 + 0x1.144da80a2e3513241fedacab70954631p10, + 0x1.ecdc38p2 + }, + { // Entry 313 + -0x1.144da80a2e3513241fedacab70954631p10, + -0x1.ecdc38p2 + }, + { // Entry 314 + 0x1.425f2a3eb0771d774c3e790cd0f40c63p13, + 0x1.3de826p3 + }, + { // Entry 315 + -0x1.425f2a3eb0771d774c3e790cd0f40c63p13, + -0x1.3de826p3 + }, + { // Entry 316 + 0x1.781f001b7cc45e8c057d098d300a73d1p16, + 0x1.856230p3 + }, + { // Entry 317 + -0x1.781f001b7cc45e8c057d098d300a73d1p16, + -0x1.856230p3 + }, + { // Entry 318 + 0x1.b6d506c59d8cbe5c54f7f8927c597f84p19, + 0x1.ccdc3ap3 + }, + { // Entry 319 + -0x1.b6d506c59d8cbe5c54f7f8927c597f84p19, + -0x1.ccdc3ap3 + }, + { // Entry 320 + 0x1.ffffc188ace6b110a80fe49615910ff2p22, + 0x1.0a2b22p4 + }, + { // Entry 321 + -0x1.ffffc188ace6b110a80fe49615910ff2p22, + -0x1.0a2b22p4 + }, + { // Entry 322 + 0x1.ffffc103c9f0158d22d963e5b764c750p14, + 0x1.62e42cp3 + }, + { // Entry 323 + -0x1.ffffc103c9f0158d22d963e5b764c750p14, + -0x1.62e42cp3 + }, + { // Entry 324 + 0x1.ffffe103c7009212034b389759a93fddp14, + 0x1.62e42ep3 + }, + { // Entry 325 + -0x1.ffffe103c7009212034b389759a93fddp14, + -0x1.62e42ep3 + }, + { // Entry 326 + 0x1.00000081e308873bf3c21c42db0354c7p15, + 0x1.62e430p3 + }, + { // Entry 327 + -0x1.00000081e308873bf3c21c42db0354c7p15, + -0x1.62e430p3 + }, + { // Entry 328 + 0x1.fffde082c48329d920ae3d83c4008840p6, + 0x1.62e42cp2 + }, + { // Entry 329 + -0x1.fffde082c48329d920ae3d83c4008840p6, + -0x1.62e42cp2 + }, + { // Entry 330 + 0x1.fffdf082d3c741b1c6dfdaeedbc1cf8ep6, + 0x1.62e42ep2 + }, + { // Entry 331 + -0x1.fffdf082d3c741b1c6dfdaeedbc1cf8ep6, + -0x1.62e42ep2 + }, + { // Entry 332 + 0x1.fffe0082e38b59068dc66cd507e027edp6, + 0x1.62e430p2 + }, + { // Entry 333 + -0x1.fffe0082e38b59068dc66cd507e027edp6, + -0x1.62e430p2 + }, + { // Entry 334 + 0x1.fdfff031b333717da1077c4a50b5cc66p2, + 0x1.62e42cp1 + }, + { // Entry 335 + -0x1.fdfff031b333717da1077c4a50b5cc66p2, + -0x1.62e42cp1 + }, + { // Entry 336 + 0x1.fdfff839b304a63e7b93e68eccb8b8e4p2, + 0x1.62e42ep1 + }, + { // Entry 337 + -0x1.fdfff839b304a63e7b93e68eccb8b8e4p2, + -0x1.62e42ep1 + }, + { // Entry 338 + 0x1.fe000041b2f5bafed9bb81482ca2b8c4p2, + 0x1.62e430p1 + }, + { // Entry 339 + -0x1.fe000041b2f5bafed9bb81482ca2b8c4p2, + -0x1.62e430p1 + }, + { // Entry 340 + 0x1.dffff7a2c45cc12beb2065181f0d2495p0, + 0x1.62e42cp0 + }, + { // Entry 341 + -0x1.dffff7a2c45cc12beb2065181f0d2495p0, + -0x1.62e42cp0 + }, + { // Entry 342 + 0x1.dffffbe2c451be866a16d0ecdd9b167ep0, + 0x1.62e42ep0 + }, + { // Entry 343 + -0x1.dffffbe2c451be866a16d0ecdd9b167ep0, + -0x1.62e42ep0 + }, + { // Entry 344 + 0x1.e0000022c44e3be0d8984e0b1642ab45p0, + 0x1.62e430p0 + }, + { // Entry 345 + -0x1.e0000022c44e3be0d8984e0b1642ab45p0, + -0x1.62e430p0 + }, + { // Entry 346 + 0x1.7ffffb14737c377a230d14a4c1d143bdp-1, + 0x1.62e42cp-1 + }, + { // Entry 347 + -0x1.7ffffb14737c377a230d14a4c1d143bdp-1, + -0x1.62e42cp-1 + }, + { // Entry 348 + 0x1.7ffffd94737a03bf6ea2e40ff28f406bp-1, + 0x1.62e42ep-1 + }, + { // Entry 349 + -0x1.7ffffd94737a03bf6ea2e40ff28f406bp-1, + -0x1.62e42ep-1 + }, + { // Entry 350 + 0x1.8000001473795004b7cd26f5470cab89p-1, + 0x1.62e430p-1 + }, + { // Entry 351 + -0x1.8000001473795004b7cd26f5470cab89p-1, + -0x1.62e430p-1 + }, + { // Entry 352 + 0x1.6a09e23b307ca82c1b1f6dd4a0d1ed94p-2, + 0x1.62e42cp-2 + }, + { // Entry 353 + -0x1.6a09e23b307ca82c1b1f6dd4a0d1ed94p-2, + -0x1.62e42cp-2 + }, + { // Entry 354 + 0x1.6a09e45a3f55bf3a68e492142f0e7acfp-2, + 0x1.62e42ep-2 + }, + { // Entry 355 + -0x1.6a09e45a3f55bf3a68e492142f0e7acfp-2, + -0x1.62e42ep-2 + }, + { // Entry 356 + 0x1.6a09e6794e2f30cb2fc046292efc5a1dp-2, + 0x1.62e430p-2 + }, + { // Entry 357 + -0x1.6a09e6794e2f30cb2fc046292efc5a1dp-2, + -0x1.62e430p-2 + }, + { // Entry 358 + 0x1.64ab8b624500dcc74dc5de97a0720aabp-3, + 0x1.62e42cp-3 + }, + { // Entry 359 + -0x1.64ab8b624500dcc74dc5de97a0720aabp-3, + -0x1.62e42cp-3 + }, + { // Entry 360 + 0x1.64ab8d69f9de29ffa2a5944cf26374fap-3, + 0x1.62e42ep-3 + }, + { // Entry 361 + -0x1.64ab8d69f9de29ffa2a5944cf26374fap-3, + -0x1.62e42ep-3 + }, + { // Entry 362 + 0x1.64ab8f71aebb8d82b05be9a027129269p-3, + 0x1.62e430p-3 + }, + { // Entry 363 + -0x1.64ab8f71aebb8d82b05be9a027129269p-3, + -0x1.62e430p-3 + }, + { // Entry 364 + 0x1.6355e30c5322853739b87125ec22bdecp-4, + 0x1.62e42cp-4 + }, + { // Entry 365 + -0x1.6355e30c5322853739b87125ec22bdecp-4, + -0x1.62e42cp-4 + }, + { // Entry 366 + 0x1.6355e50e3f6d2cc2dd6e747f61bb8c65p-4, + 0x1.62e42ep-4 + }, + { // Entry 367 + -0x1.6355e50e3f6d2cc2dd6e747f61bb8c65p-4, + -0x1.62e42ep-4 + }, + { // Entry 368 + 0x1.6355e7102bb7d9dbd8b8b0d68c09401bp-4, + 0x1.62e430p-4 + }, + { // Entry 369 + -0x1.6355e7102bb7d9dbd8b8b0d68c09401bp-4, + -0x1.62e430p-4 + }, + { // Entry 370 + 0x1.630097b6aaea36d905a1e74a332b0102p-5, + 0x1.62e42cp-5 + }, + { // Entry 371 + -0x1.630097b6aaea36d905a1e74a332b0102p-5, + -0x1.62e42cp-5 + }, + { // Entry 372 + 0x1.630099b725ee198cf48f439e2807bf07p-5, + 0x1.62e42ep-5 + }, + { // Entry 373 + -0x1.630099b725ee198cf48f439e2807bf07p-5, + -0x1.62e42ep-5 + }, + { // Entry 374 + 0x1.63009bb7a0f1fda3e41657180afe2797p-5, + 0x1.62e430p-5 + }, + { // Entry 375 + -0x1.63009bb7a0f1fda3e41657180afe2797p-5, + -0x1.62e430p-5 + }, + { // Entry 376 + 0x1.62eb46cce5848efc0a888499742bfd4cp-6, + 0x1.62e42cp-6 + }, + { // Entry 377 + -0x1.62eb46cce5848efc0a888499742bfd4cp-6, + -0x1.62e42cp-6 + }, + { // Entry 378 + 0x1.62eb48cd04449b44496ceeff57490075p-6, + 0x1.62e42ep-6 + }, + { // Entry 379 + -0x1.62eb48cd04449b44496ceeff57490075p-6, + -0x1.62e42ep-6 + }, + { // Entry 380 + 0x1.62eb4acd2304a7e543238ca64b8cd689p-6, + 0x1.62e430p-6 + }, + { // Entry 381 + -0x1.62eb4acd2304a7e543238ca64b8cd689p-6, + -0x1.62e430p-6 + }, + { // Entry 382 + -0x1.00000105c611505c7f74a519f94171b0p31, + -0x1.62e430p4 + }, + { // Entry 383 + 0x1.00000105c611505c7f74a519f94171b0p31, + 0x1.62e430p4 + }, + { // Entry 384 + -0x1.ffffc20b8fe12f0e17406ea1dc598aa0p30, + -0x1.62e42ep4 + }, + { // Entry 385 + 0x1.ffffc20b8fe12f0e17406ea1dc598aa0p30, + 0x1.62e42ep4 + }, + { // Entry 386 + -0x1.ffff820b9b9fbc6b5dd9c276569c9e77p30, + -0x1.62e42cp4 + }, + { // Entry 387 + 0x1.ffff820b9b9fbc6b5dd9c276569c9e77p30, + 0x1.62e42cp4 + }, + { // Entry 388 + -0x1.00000081e308873bf3c21c42db0354c7p15, + -0x1.62e430p3 + }, + { // Entry 389 + 0x1.00000081e308873bf3c21c42db0354c7p15, + 0x1.62e430p3 + }, + { // Entry 390 + -0x1.ffffe103c7009212034b389759a93fddp14, + -0x1.62e42ep3 + }, + { // Entry 391 + 0x1.ffffe103c7009212034b389759a93fddp14, + 0x1.62e42ep3 + }, + { // Entry 392 + -0x1.ffffc103c9f0158d22d963e5b764c750p14, + -0x1.62e42cp3 + }, + { // Entry 393 + 0x1.ffffc103c9f0158d22d963e5b764c750p14, + 0x1.62e42cp3 + }, + { // Entry 394 + -0x1.fffe0082e38b59068dc66cd507e027edp6, + -0x1.62e430p2 + }, + { // Entry 395 + 0x1.fffe0082e38b59068dc66cd507e027edp6, + 0x1.62e430p2 + }, + { // Entry 396 + -0x1.fffdf082d3c741b1c6dfdaeedbc1cf8ep6, + -0x1.62e42ep2 + }, + { // Entry 397 + 0x1.fffdf082d3c741b1c6dfdaeedbc1cf8ep6, + 0x1.62e42ep2 + }, + { // Entry 398 + -0x1.fffde082c48329d920ae3d83c4008840p6, + -0x1.62e42cp2 + }, + { // Entry 399 + 0x1.fffde082c48329d920ae3d83c4008840p6, + 0x1.62e42cp2 + }, + { // Entry 400 + -0x1.fe000041b2f5bafed9bb81482ca2b8c4p2, + -0x1.62e430p1 + }, + { // Entry 401 + 0x1.fe000041b2f5bafed9bb81482ca2b8c4p2, + 0x1.62e430p1 + }, + { // Entry 402 + -0x1.fdfff839b304a63e7b93e68eccb8b8e4p2, + -0x1.62e42ep1 + }, + { // Entry 403 + 0x1.fdfff839b304a63e7b93e68eccb8b8e4p2, + 0x1.62e42ep1 + }, + { // Entry 404 + -0x1.fdfff031b333717da1077c4a50b5cc66p2, + -0x1.62e42cp1 + }, + { // Entry 405 + 0x1.fdfff031b333717da1077c4a50b5cc66p2, + 0x1.62e42cp1 + }, + { // Entry 406 + -0x1.e0000022c44e3be0d8984e0b1642ab45p0, + -0x1.62e430p0 + }, + { // Entry 407 + 0x1.e0000022c44e3be0d8984e0b1642ab45p0, + 0x1.62e430p0 + }, + { // Entry 408 + -0x1.dffffbe2c451be866a16d0ecdd9b167ep0, + -0x1.62e42ep0 + }, + { // Entry 409 + 0x1.dffffbe2c451be866a16d0ecdd9b167ep0, + 0x1.62e42ep0 + }, + { // Entry 410 + -0x1.dffff7a2c45cc12beb2065181f0d2495p0, + -0x1.62e42cp0 + }, + { // Entry 411 + 0x1.dffff7a2c45cc12beb2065181f0d2495p0, + 0x1.62e42cp0 + }, + { // Entry 412 + -0x1.8000001473795004b7cd26f5470cab89p-1, + -0x1.62e430p-1 + }, + { // Entry 413 + 0x1.8000001473795004b7cd26f5470cab89p-1, + 0x1.62e430p-1 + }, + { // Entry 414 + -0x1.7ffffd94737a03bf6ea2e40ff28f406bp-1, + -0x1.62e42ep-1 + }, + { // Entry 415 + 0x1.7ffffd94737a03bf6ea2e40ff28f406bp-1, + 0x1.62e42ep-1 + }, + { // Entry 416 + -0x1.7ffffb14737c377a230d14a4c1d143bdp-1, + -0x1.62e42cp-1 + }, + { // Entry 417 + 0x1.7ffffb14737c377a230d14a4c1d143bdp-1, + 0x1.62e42cp-1 + }, + { // Entry 418 + -0x1.6a09e6794e2f30cb2fc046292efc5a1dp-2, + -0x1.62e430p-2 + }, + { // Entry 419 + 0x1.6a09e6794e2f30cb2fc046292efc5a1dp-2, + 0x1.62e430p-2 + }, + { // Entry 420 + -0x1.6a09e45a3f55bf3a68e492142f0e7acfp-2, + -0x1.62e42ep-2 + }, + { // Entry 421 + 0x1.6a09e45a3f55bf3a68e492142f0e7acfp-2, + 0x1.62e42ep-2 + }, + { // Entry 422 + -0x1.6a09e23b307ca82c1b1f6dd4a0d1ed94p-2, + -0x1.62e42cp-2 + }, + { // Entry 423 + 0x1.6a09e23b307ca82c1b1f6dd4a0d1ed94p-2, + 0x1.62e42cp-2 + }, + { // Entry 424 + -0x1.64ab8f71aebb8d82b05be9a027129269p-3, + -0x1.62e430p-3 + }, + { // Entry 425 + 0x1.64ab8f71aebb8d82b05be9a027129269p-3, + 0x1.62e430p-3 + }, + { // Entry 426 + -0x1.64ab8d69f9de29ffa2a5944cf26374fap-3, + -0x1.62e42ep-3 + }, + { // Entry 427 + 0x1.64ab8d69f9de29ffa2a5944cf26374fap-3, + 0x1.62e42ep-3 + }, + { // Entry 428 + -0x1.64ab8b624500dcc74dc5de97a0720aabp-3, + -0x1.62e42cp-3 + }, + { // Entry 429 + 0x1.64ab8b624500dcc74dc5de97a0720aabp-3, + 0x1.62e42cp-3 + }, + { // Entry 430 + -0x1.6355e7102bb7d9dbd8b8b0d68c09401bp-4, + -0x1.62e430p-4 + }, + { // Entry 431 + 0x1.6355e7102bb7d9dbd8b8b0d68c09401bp-4, + 0x1.62e430p-4 + }, + { // Entry 432 + -0x1.6355e50e3f6d2cc2dd6e747f61bb8c65p-4, + -0x1.62e42ep-4 + }, + { // Entry 433 + 0x1.6355e50e3f6d2cc2dd6e747f61bb8c65p-4, + 0x1.62e42ep-4 + }, + { // Entry 434 + -0x1.6355e30c5322853739b87125ec22bdecp-4, + -0x1.62e42cp-4 + }, + { // Entry 435 + 0x1.6355e30c5322853739b87125ec22bdecp-4, + 0x1.62e42cp-4 + }, + { // Entry 436 + -0x1.63009bb7a0f1fda3e41657180afe2797p-5, + -0x1.62e430p-5 + }, + { // Entry 437 + 0x1.63009bb7a0f1fda3e41657180afe2797p-5, + 0x1.62e430p-5 + }, + { // Entry 438 + -0x1.630099b725ee198cf48f439e2807bf07p-5, + -0x1.62e42ep-5 + }, + { // Entry 439 + 0x1.630099b725ee198cf48f439e2807bf07p-5, + 0x1.62e42ep-5 + }, + { // Entry 440 + -0x1.630097b6aaea36d905a1e74a332b0102p-5, + -0x1.62e42cp-5 + }, + { // Entry 441 + 0x1.630097b6aaea36d905a1e74a332b0102p-5, + 0x1.62e42cp-5 + }, + { // Entry 442 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 443 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 444 + 0.0, + 0.0 + }, + { // Entry 445 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 446 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 447 + 0x1.ecb35112d674d05785ec00066c2b3ec8p-4, + 0x1.eb851cp-4 + }, + { // Entry 448 + -0x1.ecb35112d674d05785ec00066c2b3ec8p-4, + -0x1.eb851cp-4 + }, + { // Entry 449 + 0x1.ecb35316874ebf73aba92491a44e079fp-4, + 0x1.eb851ep-4 + }, + { // Entry 450 + -0x1.ecb35316874ebf73aba92491a44e079fp-4, + -0x1.eb851ep-4 + }, + { // Entry 451 + 0x1.ecb3551a3828b6429eb2a33a17713014p-4, + 0x1.eb8520p-4 + }, + { // Entry 452 + -0x1.ecb3551a3828b6429eb2a33a17713014p-4, + -0x1.eb8520p-4 + }, + { // Entry 453 + 0x1.0accffddb7a12b4e6a96d72af3961f53p-1, + 0x1.fffffep-2 + }, + { // Entry 454 + -0x1.0accffddb7a12b4e6a96d72af3961f53p-1, + -0x1.fffffep-2 + }, + { // Entry 455 + 0x1.0acd00fe63b96ca357895761ae66224ap-1, + 0x1.p-1 + }, + { // Entry 456 + -0x1.0acd00fe63b96ca357895761ae66224ap-1, + -0x1.p-1 + }, + { // Entry 457 + 0x1.0acd033fbbeab766f2754da05aade930p-1, + 0x1.000002p-1 + }, + { // Entry 458 + -0x1.0acd033fbbeab766f2754da05aade930p-1, + -0x1.000002p-1 + }, + { // Entry 459 + 0x1.2cd9fab9e4439e75ab2524ffce0283e9p0, + 0x1.fffffep-1 + }, + { // Entry 460 + -0x1.2cd9fab9e4439e75ab2524ffce0283e9p0, + -0x1.fffffep-1 + }, + { // Entry 461 + 0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + 0x1.p0 + }, + { // Entry 462 + -0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + -0x1.p0 + }, + { // Entry 463 + 0x1.2cd9ff5afa44ba9aa6eb599be725c9bap0, + 0x1.000002p0 + }, + { // Entry 464 + -0x1.2cd9ff5afa44ba9aa6eb599be725c9bap0, + -0x1.000002p0 + }, + { // Entry 465 + 0x1.ab5aa630eb432540ea7a11d9455e5b65p30, + 0x1.5ffffep4 + }, + { // Entry 466 + -0x1.ab5aa630eb432540ea7a11d9455e5b65p30, + -0x1.5ffffep4 + }, + { // Entry 467 + 0x1.ab5adb9c435ff8194ddd9a72c8c01183p30, + 0x1.60p4 + }, + { // Entry 468 + -0x1.ab5adb9c435ff8194ddd9a72c8c01183p30, + -0x1.60p4 + }, + { // Entry 469 + 0x1.ab5b1107a22a36602250dcbb2b7eed81p30, + 0x1.600002p4 + }, + { // Entry 470 + -0x1.ab5b1107a22a36602250dcbb2b7eed81p30, + -0x1.600002p4 + }, + { // Entry 471 + 0x1.226aceedc3b97c2a0dd7e83bf16d5abdp32, + 0x1.6ffffep4 + }, + { // Entry 472 + -0x1.226aceedc3b97c2a0dd7e83bf16d5abdp32, + -0x1.6ffffep4 + }, + { // Entry 473 + 0x1.226af33b1fdc0a574c76ab2161309880p32, + 0x1.70p4 + }, + { // Entry 474 + -0x1.226af33b1fdc0a574c76ab2161309880p32, + -0x1.70p4 + }, + { // Entry 475 + 0x1.226b1788808844517796616972748648p32, + 0x1.700002p4 + }, + { // Entry 476 + -0x1.226b1788808844517796616972748648p32, + -0x1.700002p4 + }, + { // Entry 477 + 0x1.ffff8188b8b59acbb8a36c9f1de4adc7p22, + 0x1.0a2b20p4 + }, + { // Entry 478 + -0x1.ffff8188b8b59acbb8a36c9f1de4adc7p22, + -0x1.0a2b20p4 + }, + { // Entry 479 + 0x1.ffffc188ace6b110a80fe49615910ff2p22, + 0x1.0a2b22p4 + }, + { // Entry 480 + -0x1.ffffc188ace6b110a80fe49615910ff2p22, + -0x1.0a2b22p4 + }, + { // Entry 481 + 0x1.000000c4548be32ddd1950fdd39f4c49p23, + 0x1.0a2b24p4 + }, + { // Entry 482 + -0x1.000000c4548be32ddd1950fdd39f4c49p23, + -0x1.0a2b24p4 + }, + { // Entry 483 + 0x1.ffffbec45834f71f62c471559658238ap10, + 0x1.0a2b20p3 + }, + { // Entry 484 + -0x1.ffffbec45834f71f62c471559658238ap10, + -0x1.0a2b20p3 + }, + { // Entry 485 + 0x1.ffffdec455613c8f512d34bec21133e4p10, + 0x1.0a2b22p3 + }, + { // Entry 486 + -0x1.ffffdec455613c8f512d34bec21133e4p10, + -0x1.0a2b22p3 + }, + { // Entry 487 + 0x1.fffffec4548d81de03eb840f2501233dp10, + 0x1.0a2b24p3 + }, + { // Entry 488 + -0x1.fffffec4548d81de03eb840f2501233dp10, + -0x1.0a2b24p3 + }, + { // Entry 489 + 0x1.fffed83ee2532ac846bdff097cd2f43bp127, + 0x1.65a9f6p6 + }, + { // Entry 490 + -0x1.fffed83ee2532ac846bdff097cd2f43bp127, + -0x1.65a9f6p6 + }, + { // Entry 491 + 0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + 0x1.65a9f8p6 + }, + { // Entry 492 + -0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + -0x1.65a9f8p6 + }, + { // Entry 493 + HUGE_VALF, + 0x1.65a9fap6 + }, + { // Entry 494 + -HUGE_VALF, + -0x1.65a9fap6 + }, + { // Entry 495 + -HUGE_VALF, + -0x1.65a9fap6 + }, + { // Entry 496 + HUGE_VALF, + 0x1.65a9fap6 + }, + { // Entry 497 + -0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + -0x1.65a9f8p6 + }, + { // Entry 498 + 0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + 0x1.65a9f8p6 + }, + { // Entry 499 + -0x1.fffed83ee2532ac846bdff097cd2f43bp127, + -0x1.65a9f6p6 + }, + { // Entry 500 + 0x1.fffed83ee2532ac846bdff097cd2f43bp127, + 0x1.65a9f6p6 + }, + { // Entry 501 + 0x1.fffffe00000000055555455555655559p-31, + 0x1.fffffep-31 + }, + { // Entry 502 + -0x1.fffffe00000000055555455555655559p-31, + -0x1.fffffep-31 + }, + { // Entry 503 + 0x1.0000000000000002aaaaaaaaaaaaaaacp-30, + 0x1.p-30 + }, + { // Entry 504 + -0x1.0000000000000002aaaaaaaaaaaaaaacp-30, + -0x1.p-30 + }, + { // Entry 505 + 0x1.0000020000000002aaaabaaaaacaaaacp-30, + 0x1.000002p-30 + }, + { // Entry 506 + -0x1.0000020000000002aaaabaaaaacaaaacp-30, + -0x1.000002p-30 + }, + { // Entry 507 + 0x1.fffffe0155555155999d984449720172p-16, + 0x1.fffffep-16 + }, + { // Entry 508 + -0x1.fffffe0155555155999d984449720172p-16, + -0x1.fffffep-16 + }, + { // Entry 509 + 0x1.00000000aaaaaaaaccccccccd00d00d0p-15, + 0x1.p-15 + }, + { // Entry 510 + -0x1.00000000aaaaaaaaccccccccd00d00d0p-15, + -0x1.p-15 + }, + { // Entry 511 + 0x1.00000200aaaaaeaaccd4ce222abd00fdp-15, + 0x1.000002p-15 + }, + { // Entry 512 + -0x1.00000200aaaaaeaaccd4ce222abd00fdp-15, + -0x1.000002p-15 + }, + { // Entry 513 + 0x1.0002a9acc4cd92374b92f33d0d8e44f7p-6, + 0x1.fffffep-7 + }, + { // Entry 514 + -0x1.0002a9acc4cd92374b92f33d0d8e44f7p-6, + -0x1.fffffep-7 + }, + { // Entry 515 + 0x1.0002aaaccccd9cd9fbd8a7d1dc72c44bp-6, + 0x1.p-6 + }, + { // Entry 516 + -0x1.0002aaaccccd9cd9fbd8a7d1dc72c44bp-6, + -0x1.p-6 + }, + { // Entry 517 + 0x1.0002acacdccdb24f5ce4216260c9d73ep-6, + 0x1.000002p-6 + }, + { // Entry 518 + -0x1.0002acacdccdb24f5ce4216260c9d73ep-6, + -0x1.000002p-6 + }, + { // Entry 519 + 0x1.000aa9ccad0025af274480ba84b0fbbcp-5, + 0x1.fffffep-6 + }, + { // Entry 520 + -0x1.000aa9ccad0025af274480ba84b0fbbcp-5, + -0x1.fffffep-6 + }, + { // Entry 521 + 0x1.000aaacccd00d03b3cb23dfecf8fcbdcp-5, + 0x1.p-5 + }, + { // Entry 522 + -0x1.000aaacccd00d03b3cb23dfecf8fcbdcp-5, + -0x1.p-5 + }, + { // Entry 523 + 0x1.000aaccd0d0226136f8e122926144f90p-5, + 0x1.000002p-5 + }, + { // Entry 524 + -0x1.000aaccd0d0226136f8e122926144f90p-5, + -0x1.000002p-5 + }, + { // Entry 525 + 0x1.002aabcc59c3209063dc64ea2e03bf70p-4, + 0x1.fffffep-5 + }, + { // Entry 526 + -0x1.002aabcc59c3209063dc64ea2e03bf70p-4, + -0x1.fffffep-5 + }, + { // Entry 527 + 0x1.002aacccd9cdcb1600814d8ee0ea5e98p-4, + 0x1.p-4 + }, + { // Entry 528 + -0x1.002aacccd9cdcb1600814d8ee0ea5e98p-4, + -0x1.p-4 + }, + { // Entry 529 + 0x1.002aaecdd9e32321b9d285e5bac4a4bdp-4, + 0x1.000002p-4 + }, + { // Entry 530 + -0x1.002aaecdd9e32321b9d285e5bac4a4bdp-4, + -0x1.000002p-4 + }, + { // Entry 531 + 0x1.00aacbce0c844e1659887b1aa3a95e84p-3, + 0x1.fffffep-4 + }, + { // Entry 532 + -0x1.00aacbce0c844e1659887b1aa3a95e84p-3, + -0x1.fffffep-4 + }, + { // Entry 533 + 0x1.00aaccd00d2f0d82badd7396c439091ep-3, + 0x1.p-3 + }, + { // Entry 534 + -0x1.00aaccd00d2f0d82badd7396c439091ep-3, + -0x1.p-3 + }, + { // Entry 535 + 0x1.00aaced40e8498637f252d2fe50c3df3p-3, + 0x1.000002p-3 + }, + { // Entry 536 + -0x1.00aaced40e8498637f252d2fe50c3df3p-3, + -0x1.000002p-3 + }, + { // Entry 537 + 0x1.02accc94fd5fc9d5c6d93f41fe780d47p-2, + 0x1.fffffep-3 + }, + { // Entry 538 + -0x1.02accc94fd5fc9d5c6d93f41fe780d47p-2, + -0x1.fffffep-3 + }, + { // Entry 539 + 0x1.02accd9d08101e6674cdf3fc8eaabf2ap-2, + 0x1.p-2 + }, + { // Entry 540 + -0x1.02accd9d08101e6674cdf3fc8eaabf2ap-2, + -0x1.p-2 + }, + { // Entry 541 + 0x1.02accfad1d70f80837554f9fbb4fbbb9p-2, + 0x1.000002p-2 + }, + { // Entry 542 + -0x1.02accfad1d70f80837554f9fbb4fbbb9p-2, + -0x1.000002p-2 + }, + { // Entry 543 + 0x1.d03cf2784edbd911feefcda4d65799f9p1, + 0x1.fffffep0 + }, + { // Entry 544 + -0x1.d03cf2784edbd911feefcda4d65799f9p1, + -0x1.fffffep0 + }, + { // Entry 545 + 0x1.d03cf63b6e19f6f34c802c96200970efp1, + 0x1.p1 + }, + { // Entry 546 + -0x1.d03cf63b6e19f6f34c802c96200970efp1, + -0x1.p1 + }, + { // Entry 547 + 0x1.d03cfdc1acabf591817690cd031d2cc7p1, + 0x1.000002p1 + }, + { // Entry 548 + -0x1.d03cfdc1acabf591817690cd031d2cc7p1, + -0x1.000002p1 + }, + { // Entry 549 + 0x1.b4a37963495a7a1c36845b0346599916p4, + 0x1.fffffep1 + }, + { // Entry 550 + -0x1.b4a37963495a7a1c36845b0346599916p4, + -0x1.fffffep1 + }, + { // Entry 551 + 0x1.b4a3803703630c8fe70261d92e563a88p4, + 0x1.p2 + }, + { // Entry 552 + -0x1.b4a3803703630c8fe70261d92e563a88p4, + -0x1.p2 + }, + { // Entry 553 + 0x1.b4a38dde77c6101fbf8ab4c24ce6ac27p4, + 0x1.000002p2 + }, + { // Entry 554 + -0x1.b4a38dde77c6101fbf8ab4c24ce6ac27p4, + -0x1.000002p2 + }, + { // Entry 555 + 0x1.749e996ff7805133d5d6b4402bd52f34p10, + 0x1.fffffep2 + }, + { // Entry 556 + -0x1.749e996ff7805133d5d6b4402bd52f34p10, + -0x1.fffffep2 + }, + { // Entry 557 + 0x1.749ea514eca65d06ea7688aff46cfe09p10, + 0x1.p3 + }, + { // Entry 558 + -0x1.749ea514eca65d06ea7688aff46cfe09p10, + -0x1.p3 + }, + { // Entry 559 + 0x1.749ebc5ed809ebabcca514f4a486c5a8p10, + 0x1.000002p3 + }, + { // Entry 560 + -0x1.749ebc5ed809ebabcca514f4a486c5a8p10, + -0x1.000002p3 + }, + { // Entry 561 + 0x1.0f2eac1794b52d4201f8831417012cc1p22, + 0x1.fffffep3 + }, + { // Entry 562 + -0x1.0f2eac1794b52d4201f8831417012cc1p22, + -0x1.fffffep3 + }, + { // Entry 563 + 0x1.0f2ebd0a7ffe3de6ac939fced0122707p22, + 0x1.p4 + }, + { // Entry 564 + -0x1.0f2ebd0a7ffe3de6ac939fced0122707p22, + -0x1.p4 + }, + { // Entry 565 + 0x1.0f2edef059bdeb7814367009089b255ap22, + 0x1.000002p4 + }, + { // Entry 566 + -0x1.0f2edef059bdeb7814367009089b255ap22, + -0x1.000002p4 + }, + { // Entry 567 + 0x1.1f43d8dc3908b8ed87a5abc6c3ed2c73p45, + 0x1.fffffep4 + }, + { // Entry 568 + -0x1.1f43d8dc3908b8ed87a5abc6c3ed2c73p45, + -0x1.fffffep4 + }, + { // Entry 569 + 0x1.1f43fcc4b662c7d847884009ffe4c4c3p45, + 0x1.p5 + }, + { // Entry 570 + -0x1.1f43fcc4b662c7d847884009ffe4c4c3p45, + -0x1.p5 + }, + { // Entry 571 + 0x1.1f444495be8e1616a1e5e37a356cd622p45, + 0x1.000002p5 + }, + { // Entry 572 + -0x1.1f444495be8e1616a1e5e37a356cd622p45, + -0x1.000002p5 + }, + { // Entry 573 + 0x1.4259323902dbc6e62e3e07ce26cd904cp91, + 0x1.fffffep5 + }, + { // Entry 574 + -0x1.4259323902dbc6e62e3e07ce26cd904cp91, + -0x1.fffffep5 + }, + { // Entry 575 + 0x1.425982cf597cd205ce3d5b4edb031756p91, + 0x1.p6 + }, + { // Entry 576 + -0x1.425982cf597cd205ce3d5b4edb031756p91, + -0x1.p6 + }, + { // Entry 577 + 0x1.425a23fc432fb5d556006a4d8e7ee11bp91, + 0x1.000002p6 + }, + { // Entry 578 + -0x1.425a23fc432fb5d556006a4d8e7ee11bp91, + -0x1.000002p6 + }, + { // Entry 579 + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 580 + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 581 + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 582 + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 583 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 584 + HUGE_VALF, + 0x1.fffffep127 + }, + { // Entry 585 + HUGE_VALF, + 0x1.fffffcp127 + }, + { // Entry 586 + 0x1.718f47f73f26d7350c83f4c71e2d335ep3, + 0x1.921fb6p1 + }, + { // Entry 587 + 0x1.2690f74d668ce2b3a755fcc5d03d001ap1, + 0x1.921fb6p0 + }, + { // Entry 588 + 0x1.2cd9ff5afa44ba9aa6eb599be725c9bap0, + 0x1.000002p0 + }, + { // Entry 589 + 0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + 0x1.p0 + }, + { // Entry 590 + 0x1.2cd9fab9e4439e75ab2524ffce0283e9p0, + 0x1.fffffep-1 + }, + { // Entry 591 + 0x1.bcc271add0bab156a8d0a0df56b0db93p-1, + 0x1.921fb6p-1 + }, + { // Entry 592 + 0x1.000002p-126, + 0x1.000002p-126 + }, + { // Entry 593 + 0x1.p-126, + 0x1.p-126 + }, + { // Entry 594 + 0x1.fffffcp-127, + 0x1.fffffcp-127 + }, + { // Entry 595 + 0x1.fffff8p-127, + 0x1.fffff8p-127 + }, + { // Entry 596 + 0x1.p-148, + 0x1.p-148 + }, + { // Entry 597 + 0x1.p-149, + 0x1.p-149 + }, + { // Entry 598 + 0.0, + 0.0f + }, + { // Entry 599 + -0.0, + -0.0f + }, + { // Entry 600 + -0x1.p-149, + -0x1.p-149 + }, + { // Entry 601 + -0x1.p-148, + -0x1.p-148 + }, + { // Entry 602 + -0x1.fffff8p-127, + -0x1.fffff8p-127 + }, + { // Entry 603 + -0x1.fffffcp-127, + -0x1.fffffcp-127 + }, + { // Entry 604 + -0x1.p-126, + -0x1.p-126 + }, + { // Entry 605 + -0x1.000002p-126, + -0x1.000002p-126 + }, + { // Entry 606 + -0x1.bcc271add0bab156a8d0a0df56b0db93p-1, + -0x1.921fb6p-1 + }, + { // Entry 607 + -0x1.2cd9fab9e4439e75ab2524ffce0283e9p0, + -0x1.fffffep-1 + }, + { // Entry 608 + -0x1.2cd9fc44eb9825a80249487f064ffd5cp0, + -0x1.p0 + }, + { // Entry 609 + -0x1.2cd9ff5afa44ba9aa6eb599be725c9bap0, + -0x1.000002p0 + }, + { // Entry 610 + -0x1.2690f74d668ce2b3a755fcc5d03d001ap1, + -0x1.921fb6p0 + }, + { // Entry 611 + -0x1.718f47f73f26d7350c83f4c71e2d335ep3, + -0x1.921fb6p1 + }, + { // Entry 612 + -HUGE_VALF, + -0x1.fffffcp127 + }, + { // Entry 613 + -HUGE_VALF, + -0x1.fffffep127 + }, + { // Entry 614 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 615 + 0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + 0x1.65a9f8p6 + }, + { // Entry 616 + -0x1.ffffd83e8e7281a45e432bd58cbbc38ap127, + -0x1.65a9f8p6 + }, + { // Entry 617 + HUGE_VALF, + 0x1.65a9fap6 + }, + { // Entry 618 + -HUGE_VALF, + -0x1.65a9fap6 + } +}; diff --git a/tests/math_data/sqrt_intel_data.h b/tests/math_data/sqrt_intel_data.h new file mode 100644 index 000000000..c3417b87c --- /dev/null +++ b/tests/math_data/sqrt_intel_data.h @@ -0,0 +1,718 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_sqrt_intel_data[] = { + { // Entry 0 + 0x1.00000000000007ffffffffffffe0p-1, + 0x1.0000000000001p-2 + }, + { // Entry 1 + 0x1.00000000000007ffffffffffffe0p-5, + 0x1.0000000000001p-10 + }, + { // Entry 2 + 0x1.00000000000007ffffffffffffe0p-20, + 0x1.0000000000001p-40 + }, + { // Entry 3 + 0x1.6a09e667f3bcd459022e5304d0b08199p-511, + 0x1.0000000000001p-1021 + }, + { // Entry 4 + 0x1.00000000000007ffffffffffffe0p-511, + 0x1.0000000000001p-1022 + }, + { // Entry 5 + 0x1.00000000000007ffffffffffffe0p0, + 0x1.0000000000001p0 + }, + { // Entry 6 + 0x1.00000000000007ffffffffffffe0p1, + 0x1.0000000000001p2 + }, + { // Entry 7 + 0x1.0000000000000fffffffffffff80p0, + 0x1.0000000000002p0 + }, + { // Entry 8 + 0x1.6a09e667f3bceaf9a094d2409bd702e2p-3, + 0x1.0000000000003p-5 + }, + { // Entry 9 + 0x1.6a09e667f3bceaf9a094d2409bd702e2p-511, + 0x1.0000000000003p-1021 + }, + { // Entry 10 + 0x1.00000000000017fffffffffffee0p-511, + 0x1.0000000000003p-1022 + }, + { // Entry 11 + 0x1.6a09e667f3bceaf9a094d2409bd702e2p0, + 0x1.0000000000003p1 + }, + { // Entry 12 + 0x1.00000000000037fffffffffff9e0p-3, + 0x1.0000000000007p-6 + }, + { // Entry 13 + 0x1.00000000000037fffffffffff9e0p-511, + 0x1.0000000000007p-1022 + }, + { // Entry 14 + 0x1.00000000000077ffffffffffe3e0p-1, + 0x1.000000000000fp-2 + }, + { // Entry 15 + 0x1.6a09e667f40bfb3319b85c0967d96777p-21, + 0x1.00000000007p-41 + }, + { // Entry 16 + 0x1.0000003ffffff8000001ffffff60p-10, + 0x1.0000008p-20 + }, + { // Entry 17 + 0x1.0000007fffffe000000ffffff6000006p-20, + 0x1.0000010p-40 + }, + { // Entry 18 + 0x1.000000ffffef78001087ff66d3e1aa74p-503, + 0x1.000001ffffdffp-1006 + }, + { // Entry 19 + 0x1.000000ffffef8000107fff676001a8dfp-509, + 0x1.000001ffffep-1018 + }, + { // Entry 20 + 0x1.000001fffffe000003fffff600001bffp50, + 0x1.0000040p100 + }, + { // Entry 21 + 0x1.000001fffffe880002effff90be01238p-10, + 0x1.0000040000011p-20 + }, + { // Entry 22 + 0x1.6a0a40db7d51f00038bb4d171626c123p-500, + 0x1.00007feafp-999 + }, + { // Entry 23 + 0x1.6a2bd5be688300293f34c09a864348a7p-511, + 0x1.003p-1021 + }, + { // Entry 24 + 0x1.6a6521b171386b3e9c9708c18094f81ep1, + 0x1.0081159eb7531p3 + }, + { // Entry 25 + 0x1.6b20018577e83a548e15ae72516a45e5p1, + 0x1.0189e42871b67p3 + }, + { // Entry 26 + 0x1.030dc4eb8784b800006b31393def4b78p-5, + 0x1.0624dd322b9bdp-10 + }, + { // Entry 27 + 0x1.030dc4f1684a3000002a2118b9ff4fc3p-5, + 0x1.0624dd3e110d4p-10 + }, + { // Entry 28 + 0x1.030dc4f1696f97ffffdbf85c70af7a32p-5, + 0x1.0624dd3e135f1p-10 + }, + { // Entry 29 + 0x1.030dc4fce267800000008a6d267d447fp-5, + 0x1.0624dd554b60ap-10 + }, + { // Entry 30 + 0x1.6e9b2675a66267ffc501a2a352d80cadp-11, + 0x1.068p-21 + }, + { // Entry 31 + 0x1.6e9b2675a66267ffc501a2a352d80cadp-18, + 0x1.068p-35 + }, + { // Entry 32 + 0x1.6ede29b025aaf0011c319ebac8dce9fap-11, + 0x1.06ep-21 + }, + { // Entry 33 + 0x1.717983890b6a97fffff1c9e6db43dc37p48, + 0x1.0a9fc36f5705dp97 + }, + { // Entry 34 + 0x1.752deb01e1aa48002dcf5a4f55adabf7p-4, + 0x1.0fff6b87f90p-7 + }, + { // Entry 35 + 0x1.76356020885cca53989372a8049c6ccbp-11, + 0x1.118p-21 + }, + { // Entry 36 + 0x1.7b63945a7c4cb40027ac4d7964bdfdffp-11, + 0x1.192p-21 + }, + { // Entry 37 + 0x1.83821c9ec9b2a8003b649ec5754fa2e6p-6, + 0x1.2549525495251p-11 + }, + { // Entry 38 + 0x1.8ac40868f92c17ff0ecf9e6c802c000ap-11, + 0x1.306p-21 + }, + { // Entry 39 + 0x1.1a9dc8f6df10380eb98f9c8f8ada2dc3p-10, + 0x1.380p-20 + }, + { // Entry 40 + 0x1.1a9dc8f6df10380eb98f9c8f8ada2dc3p-20, + 0x1.380p-40 + }, + { // Entry 41 + 0x1.1d43ad1c267397ff000366e504ec0904p0, + 0x1.3ddfc154bf689p0 + }, + { // Entry 42 + 0x1.2d4d2aa66779740440a7ac683ca92be7p0, + 0x1.629e8d8dfe88ep0 + }, + { // Entry 43 + 0x1.ae89f995ad3ab3fed29f3cdde669565cp-1, + 0x1.6a09e667f3bc9p-1 + }, + { // Entry 44 + 0x1.bb67ae8584caa73b25742d7078b83b89p-537, + 0x1.8p-1073 + }, + { // Entry 45 + 0x1.bb67ae86abb307ffff9450222403ce3fp0, + 0x1.80000001fecb9p1 + }, + { // Entry 46 + 0x1.404b92fd6a8120001cc2a21eb82dc383p-1, + 0x1.90bd05c8ff254p-2 + }, + { // Entry 47 + 0x1.43d1363d61aec800006b07fe0fefdfa2p-2, + 0x1.999999d880368p-4 + }, + { // Entry 48 + 0x1.4e78ac22c6f5e800ffc121b0def932c0p5, + 0x1.b4ff1a0c9382fp10 + }, + { // Entry 49 + 0x1.50144b1c72dd17ff0012ebc586f4e10fp-519, + 0x1.b93546c68p-1038 + }, + { // Entry 50 + 0x1.dfd052dbe76857ff0b1587ce79a18a73p7, + 0x1.c1a69fccd6111p15 + }, + { // Entry 51 + 0x1.e4826468545d31f66cbd21db9f6249b7p-1, + 0x1.ca7ea70a502bep-1 + }, + { // Entry 52 + 0x1.e96948d224f0585c0f7a85d30932126dp1, + 0x1.d3d1b1bfd11bbp3 + }, + { // Entry 53 + 0x1.ee51da20312bfe8a4722b6c085901297p-512, + 0x1.dd3fffffffffep-1023 + }, + { // Entry 54 + 0x1.5f744159f7e5efff106d1c5d5d64aa8dp-10, + 0x1.e28p-20 + }, + { // Entry 55 + 0x1.fdcecc6f3d49e79e3d375b22e0b9f4b1p-11, + 0x1.fbap-21 + }, + { // Entry 56 + 0x1.fe35a055fc4be7fc5f7d57d28e7bd1a7p0, + 0x1.fc6cdb0930a24p1 + }, + { // Entry 57 + 0x1.feadd22799ac4801f8159ee8a6db5ef2p-1, + 0x1.fd5c83adbf2a9p-1 + }, + { // Entry 58 + 0x1.ffbffbff80080000000200300a02205cp-5, + 0x1.ff80000000380p-9 + }, + { // Entry 59 + 0x1.ffefffbffdffdbfe9fef7f2bf4ab6197p-512, + 0x1.ffdfffffffffep-1023 + }, + { // Entry 60 + 0x1.ffff7fffeffff3fffcbffecfff75ffc0p-21, + 0x1.fffefffffffffp-41 + }, + { // Entry 61 + 0x1.fffff3ffffdbf7ff27cff9aa4fbac71dp-21, + 0x1.ffffe7fffffffp-41 + }, + { // Entry 62 + 0x1.fffff3ffffdbf7ff27cff9aa4fbac71dp-23, + 0x1.ffffe7fffffffp-45 + }, + { // Entry 63 + 0x1.ffffff800000e0000037ffffdcffffdep-488, + 0x1.ffffff000001ep-975 + }, + { // Entry 64 + 0x1.ffffff8000010000003fffffcfffffd4p-26, + 0x1.ffffff0000022p-51 + }, + { // Entry 65 + 0x1.fffffff9fffff7f6ffffe7e4ffef939ap-21, + 0x1.fffffff3fffffp-41 + }, + { // Entry 66 + 0x1.fffffffe000017ff000017feff7023fep-5, + 0x1.fffffffc00003p-9 + }, + { // Entry 67 + 0x1.fffffffe000017ff000017feff7023fep-6, + 0x1.fffffffc00003p-11 + }, + { // Entry 68 + 0x1.fffffffe000017ff000017feff7023fep-21, + 0x1.fffffffc00003p-41 + }, + { // Entry 69 + 0x1.fffffffe000017ff000017feff7023fep-156, + 0x1.fffffffc00003p-311 + }, + { // Entry 70 + 0x1.fffffffe000017ff000017feff7023fep-511, + 0x1.fffffffc00003p-1021 + }, + { // Entry 71 + 0x1.fffffffe3ffff7ff3bfff8ff546ff6cfp-21, + 0x1.fffffffc7ffffp-41 + }, + { // Entry 72 + 0x1.6a09e667f3b858019b5c99e309b9080ap-3, + 0x1.fffffffffff37p-6 + }, + { // Entry 73 + 0x1.fffffffffffd77fffffffffe65efffffp-1, + 0x1.fffffffffffafp-1 + }, + { // Entry 74 + 0x1.fffffffffffd77fffffffffe65efffffp-5, + 0x1.fffffffffffafp-9 + }, + { // Entry 75 + 0x1.fffffffffffd77fffffffffe65efffffp-511, + 0x1.fffffffffffafp-1021 + }, + { // Entry 76 + 0x1.ffffffffffff37ffffffffffd8efffffp1, + 0x1.fffffffffffe7p3 + }, + { // Entry 77 + 0x1.ffffffffffffefffffffffffffbfffffp-4, + 0x1.ffffffffffffep-7 + }, + { // Entry 78 + 0x1.ffffffffffffefffffffffffffbfffffp-21, + 0x1.ffffffffffffep-41 + }, + { // Entry 79 + 0x1.ffffffffffffefffffffffffffbfffffp-511, + 0x1.ffffffffffffep-1021 + }, + { // Entry 80 + 0x1.fffffffffffff7ffffffffffffefffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 81 + 0x1.fffffffffffff7ffffffffffffefffffp-4, + 0x1.fffffffffffffp-7 + }, + { // Entry 82 + 0x1.fffffffffffff7ffffffffffffefffffp-21, + 0x1.fffffffffffffp-41 + }, + { // Entry 83 + 0x1.fffffffffffff7ffffffffffffefffffp0, + 0x1.fffffffffffffp1 + }, + { // Entry 84 + 0x1.306fe0a31b71419ddec788789fb4580ap-1, + 0x1.6a09e667f3bcap-2 + }, + { // Entry 85 + 0x1.306fe0a31b71485806addf2d8b5a8b60p-1, + 0x1.6a09e667f3bcbp-2 + }, + { // Entry 86 + 0x1.306fe0a31b714f122e9435e276dab0b9p-1, + 0x1.6a09e667f3bccp-2 + }, + { // Entry 87 + 0x1.306fe0a31b7155cc567a8c976234c817p-1, + 0x1.6a09e667f3bcdp-2 + }, + { // Entry 88 + 0x1.306fe0a31b715c867e60e34c4d68d179p-1, + 0x1.6a09e667f3bcep-2 + }, + { // Entry 89 + 0x1.ae89f995ad3abd8251a455b971a538dbp-1, + 0x1.6a09e667f3bcap-1 + }, + { // Entry 90 + 0x1.ae89f995ad3ac705d0a96e94fcab4a1ap-1, + 0x1.6a09e667f3bcbp-1 + }, + { // Entry 91 + 0x1.ae89f995ad3ad0894fae8770877b8a1bp-1, + 0x1.6a09e667f3bccp-1 + }, + { // Entry 92 + 0x1.ae89f995ad3ada0cceb3a04c1215f8ddp-1, + 0x1.6a09e667f3bcdp-1 + }, + { // Entry 93 + 0x1.ae89f995ad3ae3904db8b9279c7a965fp-1, + 0x1.6a09e667f3bcep-1 + }, + { // Entry 94 + 0x1.306fe0a31b71419ddec788789fb4580ap0, + 0x1.6a09e667f3bcap0 + }, + { // Entry 95 + 0x1.306fe0a31b71485806addf2d8b5a8b60p0, + 0x1.6a09e667f3bcbp0 + }, + { // Entry 96 + 0x1.306fe0a31b714f122e9435e276dab0b9p0, + 0x1.6a09e667f3bccp0 + }, + { // Entry 97 + 0x1.306fe0a31b7155cc567a8c976234c817p0, + 0x1.6a09e667f3bcdp0 + }, + { // Entry 98 + 0x1.306fe0a31b715c867e60e34c4d68d179p0, + 0x1.6a09e667f3bcep0 + }, + { // Entry 99 + 0x1.ae89f995ad3abd8251a455b971a538dbp0, + 0x1.6a09e667f3bcap1 + }, + { // Entry 100 + 0x1.ae89f995ad3ac705d0a96e94fcab4a1ap0, + 0x1.6a09e667f3bcbp1 + }, + { // Entry 101 + 0x1.ae89f995ad3ad0894fae8770877b8a1bp0, + 0x1.6a09e667f3bccp1 + }, + { // Entry 102 + 0x1.ae89f995ad3ada0cceb3a04c1215f8ddp0, + 0x1.6a09e667f3bcdp1 + }, + { // Entry 103 + 0x1.ae89f995ad3ae3904db8b9279c7a965fp0, + 0x1.6a09e667f3bcep1 + }, + { // Entry 104 + 0x1.fffffffffffff7ffffffffffffefffffp-4, + 0x1.fffffffffffffp-7 + }, + { // Entry 105 + 0x1.p-3, + 0x1.0p-6 + }, + { // Entry 106 + 0x1.00000000000007ffffffffffffe0p-3, + 0x1.0000000000001p-6 + }, + { // Entry 107 + 0x1.6a09e667f3bcc3608b617397f7660a23p-3, + 0x1.fffffffffffffp-6 + }, + { // Entry 108 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-3, + 0x1.0p-5 + }, + { // Entry 109 + 0x1.6a09e667f3bcd459022e5304d0b08199p-3, + 0x1.0000000000001p-5 + }, + { // Entry 110 + 0x1.fffffffffffff7ffffffffffffefffffp-3, + 0x1.fffffffffffffp-5 + }, + { // Entry 111 + 0x1.p-2, + 0x1.0p-4 + }, + { // Entry 112 + 0x1.00000000000007ffffffffffffe0p-2, + 0x1.0000000000001p-4 + }, + { // Entry 113 + 0x1.6a09e667f3bcc3608b617397f7660a23p-2, + 0x1.fffffffffffffp-4 + }, + { // Entry 114 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-2, + 0x1.0p-3 + }, + { // Entry 115 + 0x1.6a09e667f3bcd459022e5304d0b08199p-2, + 0x1.0000000000001p-3 + }, + { // Entry 116 + 0x1.fffffffffffff7ffffffffffffefffffp-2, + 0x1.fffffffffffffp-3 + }, + { // Entry 117 + 0x1.p-1, + 0x1.0p-2 + }, + { // Entry 118 + 0x1.00000000000007ffffffffffffe0p-1, + 0x1.0000000000001p-2 + }, + { // Entry 119 + 0x1.6a09e667f3bcc3608b617397f7660a23p-1, + 0x1.fffffffffffffp-2 + }, + { // Entry 120 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1, + 0x1.0p-1 + }, + { // Entry 121 + 0x1.6a09e667f3bcd459022e5304d0b08199p-1, + 0x1.0000000000001p-1 + }, + { // Entry 122 + 0x1.fffffffffffff7ffffffffffffefffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 123 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 124 + 0x1.00000000000007ffffffffffffe0p0, + 0x1.0000000000001p0 + }, + { // Entry 125 + 0x1.6a09e667f3bcc3608b617397f7660a23p0, + 0x1.fffffffffffffp0 + }, + { // Entry 126 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.0p1 + }, + { // Entry 127 + 0x1.6a09e667f3bcd459022e5304d0b08199p0, + 0x1.0000000000001p1 + }, + { // Entry 128 + 0x1.fffffffffffff7ffffffffffffefffffp0, + 0x1.fffffffffffffp1 + }, + { // Entry 129 + 0x1.p1, + 0x1.0p2 + }, + { // Entry 130 + 0x1.00000000000007ffffffffffffe0p1, + 0x1.0000000000001p2 + }, + { // Entry 131 + -0.0, + -0.0 + }, + { // Entry 132 + 0x1.p-537, + 0x1.0p-1074 + }, + { // Entry 133 + 0x1.ffffffffffffefffffffffffffbfffffp-512, + 0x1.ffffffffffffep-1023 + }, + { // Entry 134 + 0x1.p-511, + 0x1.0p-1022 + }, + { // Entry 135 + 0x1.00000000000007ffffffffffffe0p-511, + 0x1.0000000000001p-1022 + }, + { // Entry 136 + 0x1.p-537, + 0x1.0p-1074 + }, + { // Entry 137 + 0x1.279a74590331d74bc03dae7e16ded15bp-512, + 0x1.5555555555558p-1024 + }, + { // Entry 138 + 0x1.a20bd700c2c3e64872281df887e3cbf1p-512, + 0x1.5555555555556p-1023 + }, + { // Entry 139 + 0x1.ffffffffffffefffffffffffffbfffffp-512, + 0x1.ffffffffffffep-1023 + }, + { // Entry 140 + 0x1.ffffffffece09fffffa494f9e6fc95edp-1, + 0x1.ffffffffd9c14p-1 + }, + { // Entry 141 + 0x1.ffffffffece0a7ffffa49546646c95f1p-1, + 0x1.ffffffffd9c15p-1 + }, + { // Entry 142 + 0x1.ffffffffece0afffffa49592e1bc95f5p-1, + 0x1.ffffffffd9c16p-1 + }, + { // Entry 143 + 0x1.ffffffffece0b7ffffa495df5eec95fap-1, + 0x1.ffffffffd9c17p-1 + }, + { // Entry 144 + 0x1.ffffffffece0bfffffa4962bdbfc95fep-1, + 0x1.ffffffffd9c18p-1 + }, + { // Entry 145 + 0x1.ffffffffeae35fffff9092a326fb67c8p-1, + 0x1.ffffffffd5c6cp-1 + }, + { // Entry 146 + 0x1.ffffffffeae367ffff9092f7996b67cep-1, + 0x1.ffffffffd5c6dp-1 + }, + { // Entry 147 + 0x1.ffffffffeae36fffff90934c0bbb67d3p-1, + 0x1.ffffffffd5c6ep-1 + }, + { // Entry 148 + 0x1.ffffffffeae377ffff9093a07deb67d8p-1, + 0x1.ffffffffd5c6fp-1 + }, + { // Entry 149 + 0x1.ffffffffeae37fffff9093f4effb67ddp-1, + 0x1.ffffffffd5c70p-1 + }, + { // Entry 150 + 0x1.fffffffffffff7ffffffffffffefffffp511, + 0x1.fffffffffffffp1023 + }, + { // Entry 151 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 152 + 0x1.fffffffffffff7ffffffffffffefffffp511, + 0x1.fffffffffffffp1023 + }, + { // Entry 153 + 0x1.ffffffffffffefffffffffffffbfffffp511, + 0x1.ffffffffffffep1023 + }, + { // Entry 154 + 0x1.c5bf891b4ef6a7fc7dc11ccf9559536ep0, + 0x1.921fb54442d18p1 + }, + { // Entry 155 + 0x1.40d931ff627057a2dddf7c87edb63664p0, + 0x1.921fb54442d18p0 + }, + { // Entry 156 + 0x1.00000000000007ffffffffffffe0p0, + 0x1.0000000000001p0 + }, + { // Entry 157 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 158 + 0x1.fffffffffffff7ffffffffffffefffffp-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 159 + 0x1.c5bf891b4ef6a7fc7dc11ccf9559536ep-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 160 + 0x1.00000000000007ffffffffffffe0p-511, + 0x1.0000000000001p-1022 + }, + { // Entry 161 + 0x1.p-511, + 0x1.0p-1022 + }, + { // Entry 162 + 0x1.ffffffffffffefffffffffffffbfffffp-512, + 0x1.ffffffffffffep-1023 + }, + { // Entry 163 + 0x1.ffffffffffffdffffffffffffeffffffp-512, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 164 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-537, + 0x1.0p-1073 + }, + { // Entry 165 + 0x1.p-537, + 0x1.0p-1074 + }, + { // Entry 166 + 0.0, + 0.0 + }, + { // Entry 167 + -0.0, + -0.0 + }, + { // Entry 168 + 0x1.p1, + 0x1.0p2 + }, + { // Entry 169 + 0x1.p2, + 0x1.0p4 + }, + { // Entry 170 + 0x1.80p1, + 0x1.2p3 + }, + { // Entry 171 + 0x1.40p2, + 0x1.9p4 + }, + { // Entry 172 + 0x1.p-1, + 0x1.0p-2 + }, + { // Entry 173 + 0x1.c0p2, + 0x1.880p5 + }, + { // Entry 174 + 0x1.40p3, + 0x1.9p6 + } +}; diff --git a/tests/math_data/sqrtf_intel_data.h b/tests/math_data/sqrtf_intel_data.h new file mode 100644 index 000000000..bd07143de --- /dev/null +++ b/tests/math_data/sqrtf_intel_data.h @@ -0,0 +1,710 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_sqrtf_intel_data[] = { + { // Entry 0 + 0x1.p-1, + 0x1.p-2 + }, + { // Entry 1 + 0x1.p-10, + 0x1.p-20 + }, + { // Entry 2 + 0x1.000000ffffff8000007fffff600000dfp-1, + 0x1.000002p-2 + }, + { // Entry 3 + 0x1.000000ffffff8000007fffff600000dfp-20, + 0x1.000002p-40 + }, + { // Entry 4 + 0x1.000000ffffff8000007fffff600000dfp-63, + 0x1.000002p-126 + }, + { // Entry 5 + 0x1.6a09eaa61169a3b76f99ea0d364efd91p-63, + 0x1.000006p-125 + }, + { // Entry 6 + 0x1.6a0a0584cc337abc8740253db45a12f6p-3, + 0x1.00002cp-5 + }, + { // Entry 7 + 0x1.6a0a1ef97b51a8def43dbb5dc7f37ff0p-11, + 0x1.000050p-21 + }, + { // Entry 8 + 0x1.6a0a1ef97b51a8def43dbb5dc7f37ff0p-18, + 0x1.000050p-35 + }, + { // Entry 9 + 0x1.6a0a359a157a0b9bd4ff286a2eab2edfp-21, + 0x1.000070p-41 + }, + { // Entry 10 + 0x1.6a0a9898a74a019a7cc18157814e39d9p-6, + 0x1.0000fcp-11 + }, + { // Entry 11 + 0x1.6a0a9898a74a019a7cc18157814e39d9p-59, + 0x1.0000fcp-117 + }, + { // Entry 12 + 0x1.6a0a9898a74a019a7cc18157814e39d9p-61, + 0x1.0000fcp-121 + }, + { // Entry 13 + 0x1.6a0a9898a74a019a7cc18157814e39d9p1, + 0x1.0000fcp3 + }, + { // Entry 14 + 0x1.6a0ab377552adf71413bdc5fdf2d3e0dp63, + 0x1.000122p127 + }, + { // Entry 15 + 0x1.6a0b1d87f00e99851a9dcb6fb9c2d56ep-3, + 0x1.0001b8p-5 + }, + { // Entry 16 + 0x1.6a0ba98930c5cb58722f06e15c330f95p-1, + 0x1.00027ep-1 + }, + { // Entry 17 + 0x1.6a0bea96a144bf2a9c899380f11039d1p0, + 0x1.0002dap1 + }, + { // Entry 18 + 0x1.6a0d3c935fb77764b4cc3f34e117a891p-49, + 0x1.0004b8p-97 + }, + { // Entry 19 + 0x1.6a0d6700222327f1053e4a429adb015ep-3, + 0x1.0004f4p-5 + }, + { // Entry 20 + 0x1.6a0dc893ce705ac35b85bb49e3aa1badp0, + 0x1.00057ep1 + }, + { // Entry 21 + 0x1.001ffe003ff601bfac107ca6b29a0c31p-20, + 0x1.0040p-40 + }, + { // Entry 22 + 0x1.6a3724d10762c86a71fe557d13336111p-21, + 0x1.0040p-41 + }, + { // Entry 23 + 0x1.6a38a9884557da551f3ec21f785779d7p6, + 0x1.004226p13 + }, + { // Entry 24 + 0x1.6abbeb82dbfd8f20f5923ab389eef7f3p-11, + 0x1.00fcp-21 + }, + { // Entry 25 + 0x1.0085dd004f71f5362dd6a5e09a9cee74p-10, + 0x1.010cp-20 + }, + { // Entry 26 + 0x1.0085dd004f71f5362dd6a5e09a9cee74p-20, + 0x1.010cp-40 + }, + { // Entry 27 + 0x1.6cdb707e0273cc8e2a1d99aa3ad67b66p0, + 0x1.040062p1 + }, + { // Entry 28 + 0x1.6e14fb33af5d199451a44c592d18f9e1p-11, + 0x1.05c0p-21 + }, + { // Entry 29 + 0x1.6e3eedfff2f9d88cc837d36b17bce548p-11, + 0x1.05fcp-21 + }, + { // Entry 30 + 0x1.708713bb31c17627489983a6397ff529p-1, + 0x1.094250p-1 + }, + { // Entry 31 + 0x1.7214c125cb8b2284459daa230a47b9dfp-11, + 0x1.0b80p-21 + }, + { // Entry 32 + 0x1.7528ce694c692ce6ecf340f96e7ac410p-9, + 0x1.0ff7f8p-17 + }, + { // Entry 33 + 0x1.752b9263582a2e3ab2a36ee98ed34a19p-11, + 0x1.0ffcp-21 + }, + { // Entry 34 + 0x1.752b9263582a2e3ab2a36ee98ed34a19p-49, + 0x1.0ffcp-97 + }, + { // Entry 35 + 0x1.752b9263582a2e3ab2a36ee98ed34a19p-63, + 0x1.0ffcp-125 + }, + { // Entry 36 + 0x1.752b9263582a2e3ab2a36ee98ed34a19p-68, + 0x1.0ffcp-135 + }, + { // Entry 37 + 0x1.752bcd629c83e4378e77e8fb09e0dfb8p0, + 0x1.0ffc56p1 + }, + { // Entry 38 + 0x1.752cdbac2ec6fddb69cc2e00bdf1fd02p4, + 0x1.0ffde0p9 + }, + { // Entry 39 + 0x1.752cf45e665c37b7d77c8c9fb50cd678p-4, + 0x1.0ffe04p-7 + }, + { // Entry 40 + 0x1.752cf45e665c37b7d77c8c9fb50cd678p-63, + 0x1.0ffe04p-125 + }, + { // Entry 41 + 0x1.752cf45e665c37b7d77c8c9fb50cd678p1, + 0x1.0ffe04p3 + }, + { // Entry 42 + 0x1.752d6a5c75cf3b16e5de9a228f3ef4dap1, + 0x1.0ffeb0p3 + }, + { // Entry 43 + 0x1.752d6a5c75cf3b16e5de9a228f3ef4dap28, + 0x1.0ffeb0p57 + }, + { // Entry 44 + 0x1.752e105f70189628b0d2d6e17ca2b9c5p1, + 0x1.0fffa2p3 + }, + { // Entry 45 + 0x1.752e4b5e4f95f6a45bcfd8721ccbf950p-4, + 0x1.0ffff8p-7 + }, + { // Entry 46 + 0x1.752e4b5e4f95f6a45bcfd8721ccbf950p-53, + 0x1.0ffff8p-105 + }, + { // Entry 47 + 0x1.752e4b5e4f95f6a45bcfd8721ccbf950p-61, + 0x1.0ffff8p-121 + }, + { // Entry 48 + 0x1.752e4b5e4f95f6a45bcfd8721ccbf950p-62, + 0x1.0ffff8p-123 + }, + { // Entry 49 + 0x1.752e4b5e4f95f6a45bcfd8721ccbf950p1, + 0x1.0ffff8p3 + }, + { // Entry 50 + 0x1.784220501c1fc95d7e2043339d354588p-1, + 0x1.148128p-1 + }, + { // Entry 51 + 0x1.78cc0a00054d7683165ea2815b6b8d14p-11, + 0x1.154cp-21 + }, + { // Entry 52 + 0x1.7ea8336e0f268f6d05f0934a67b4840ap-32, + 0x1.1dfd34p-63 + }, + { // Entry 53 + 0x1.0ec1270014d42e5424a7780b67b4974cp-10, + 0x1.1e5cp-20 + }, + { // Entry 54 + 0x1.0f7a3974c0a036ead45a0017d4782e1ap-10, + 0x1.1fe4p-20 + }, + { // Entry 55 + 0x1.10207f000077f1ab909fb7b5314f837fp-1, + 0x1.214512p-2 + }, + { // Entry 56 + 0x1.8c4487000042dd2813dd730d1a7f3cabp1, + 0x1.32b20ap3 + }, + { // Entry 57 + 0x1.8dc41537f0b639cb37aedfa8d531d4cfp-51, + 0x1.3504e0p-101 + }, + { // Entry 58 + 0x1.8fae0c15ad389e24852497e80935e4b5p-63, + 0x1.38p-125 + }, + { // Entry 59 + 0x1.95b8c0ffff868994f9ce14b11aa1cfd5p-2, + 0x1.41810cp-3 + }, + { // Entry 60 + 0x1.a644fe00060ec83a5393c3c3cd39fc95p-1, + 0x1.5c43c4p-1 + }, + { // Entry 61 + 0x1.b7070406a4527543e7e1a93c34a2d6f7p-1, + 0x1.787488p-1 + }, + { // Entry 62 + 0x1.3836b2ffff863cbb58a0fb2bcad85474p-1, + 0x1.7cc560p-2 + }, + { // Entry 63 + 0x1.bb67ad5dea55ebaf21faa9bb10eabdf1p-21, + 0x1.7ffffep-41 + }, + { // Entry 64 + 0x1.ce7e96000007bfd0ed97130360c298ddp-1, + 0x1.a1c692p-1 + }, + { // Entry 65 + 0x1.d10d73f80594d3d73fae1f2d6a130247p0, + 0x1.a668f0p1 + }, + { // Entry 66 + 0x1.d94c090afeb02b92e741bb236186bc86p-1, + 0x1.b58508p-1 + }, + { // Entry 67 + 0x1.de4315000013008bf12e454d672ffbdfp-2, + 0x1.bebf4ap-3 + }, + { // Entry 68 + 0x1.e768d28cf1e3981570e875af113546c7p-21, + 0x1.cffffep-41 + }, + { // Entry 69 + 0x1.e7f0cc5a77a783be336f9b5127709acep-1, + 0x1.d10306p-1 + }, + { // Entry 70 + 0x1.f3169029c9867f10142750dc51d5843dp-1, + 0x1.e6807cp-1 + }, + { // Entry 71 + 0x1.f6eb62d27730caff89a8d78c7314934ap-60, + 0x1.eep-119 + }, + { // Entry 72 + 0x1.f8f3935d2ecc7256a14d7c8816275c60p-21, + 0x1.f1fffep-41 + }, + { // Entry 73 + 0x1.f94a8e8524ece8623432ace75571785ep-1, + 0x1.f2ab9ep-1 + }, + { // Entry 74 + 0x1.faa0p-1, + 0x1.f54e72p-1 + }, + { // Entry 75 + 0x1.feefb698fc02e71c2377deb225837a87p-63, + 0x1.fddffep-125 + }, + { // Entry 76 + 0x1.fffffcfffffdbffffc9ffff9abfff2b5p-1, + 0x1.fffffap-1 + }, + { // Entry 77 + 0x1.fffffdfffffefffffefffffebffffe3fp-4, + 0x1.fffffcp-7 + }, + { // Entry 78 + 0x1.fffffdfffffefffffefffffebffffe3fp-21, + 0x1.fffffcp-41 + }, + { // Entry 79 + 0x1.fffffdfffffefffffefffffebffffe3fp-63, + 0x1.fffffcp-125 + }, + { // Entry 80 + 0x1.fffffeffffffbfffffdfffffebfffff1p-4, + 0x1.fffffep-7 + }, + { // Entry 81 + 0x1.fffffeffffffbfffffdfffffebfffff1p0, + 0x1.fffffep1 + }, + { // Entry 82 + 0x1.306fdec8dc9ad32b551e92585b7094f3p-1, + 0x1.6a09e2p-2 + }, + { // Entry 83 + 0x1.306fdfa02198a13d946ad818ec615547p-1, + 0x1.6a09e4p-2 + }, + { // Entry 84 + 0x1.306fe0776695d717e1e11958d56541cfp-1, + 0x1.6a09e6p-2 + }, + { // Entry 85 + 0x1.306fe14eab9274ba3ec43d966959f47cp-1, + 0x1.6a09e8p-2 + }, + { // Entry 86 + 0x1.306fe225f08e7a24ac572c4b8579785fp-1, + 0x1.6a09eap-2 + }, + { // Entry 87 + 0x1.ae89f6f6fe087ac302131f3840da7a90p-1, + 0x1.6a09e2p-1 + }, + { // Entry 88 + 0x1.ae89f8276dea8c7accb82339973f2af9p-1, + 0x1.6a09e4p-1 + }, + { // Entry 89 + 0x1.ae89f957ddcbc6ed986cf1a0e754d170p-1, + 0x1.6a09e6p-1 + }, + { // Entry 90 + 0x1.ae89fa884dac2a1b66fa324394d3c590p-1, + 0x1.6a09e8p-1 + }, + { // Entry 91 + 0x1.ae89fbb8bd8bb6043a288cf0b4eef0aep-1, + 0x1.6a09eap-1 + }, + { // Entry 92 + 0x1.306fdec8dc9ad32b551e92585b7094f3p0, + 0x1.6a09e2p0 + }, + { // Entry 93 + 0x1.306fdfa02198a13d946ad818ec615547p0, + 0x1.6a09e4p0 + }, + { // Entry 94 + 0x1.306fe0776695d717e1e11958d56541cfp0, + 0x1.6a09e6p0 + }, + { // Entry 95 + 0x1.306fe14eab9274ba3ec43d966959f47cp0, + 0x1.6a09e8p0 + }, + { // Entry 96 + 0x1.306fe225f08e7a24ac572c4b8579785fp0, + 0x1.6a09eap0 + }, + { // Entry 97 + 0x1.ae89f6f6fe087ac302131f3840da7a90p0, + 0x1.6a09e2p1 + }, + { // Entry 98 + 0x1.ae89f8276dea8c7accb82339973f2af9p0, + 0x1.6a09e4p1 + }, + { // Entry 99 + 0x1.ae89f957ddcbc6ed986cf1a0e754d170p0, + 0x1.6a09e6p1 + }, + { // Entry 100 + 0x1.ae89fa884dac2a1b66fa324394d3c590p0, + 0x1.6a09e8p1 + }, + { // Entry 101 + 0x1.ae89fbb8bd8bb6043a288cf0b4eef0aep0, + 0x1.6a09eap1 + }, + { // Entry 102 + 0x1.fffffeffffffbfffffdfffffebfffff1p-4, + 0x1.fffffep-7 + }, + { // Entry 103 + 0x1.p-3, + 0x1.p-6 + }, + { // Entry 104 + 0x1.000000ffffff8000007fffff600000dfp-3, + 0x1.000002p-6 + }, + { // Entry 105 + 0x1.6a09e5b2eec967cd97b2eff75f471493p-3, + 0x1.fffffep-6 + }, + { // Entry 106 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-3, + 0x1.p-5 + }, + { // Entry 107 + 0x1.6a09e7d1fda27bf77d45272dd2d83a4bp-3, + 0x1.000002p-5 + }, + { // Entry 108 + 0x1.fffffeffffffbfffffdfffffebfffff1p-3, + 0x1.fffffep-5 + }, + { // Entry 109 + 0x1.p-2, + 0x1.p-4 + }, + { // Entry 110 + 0x1.000000ffffff8000007fffff600000dfp-2, + 0x1.000002p-4 + }, + { // Entry 111 + 0x1.6a09e5b2eec967cd97b2eff75f471493p-2, + 0x1.fffffep-4 + }, + { // Entry 112 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-2, + 0x1.p-3 + }, + { // Entry 113 + 0x1.6a09e7d1fda27bf77d45272dd2d83a4bp-2, + 0x1.000002p-3 + }, + { // Entry 114 + 0x1.fffffeffffffbfffffdfffffebfffff1p-2, + 0x1.fffffep-3 + }, + { // Entry 115 + 0x1.p-1, + 0x1.p-2 + }, + { // Entry 116 + 0x1.000000ffffff8000007fffff600000dfp-1, + 0x1.000002p-2 + }, + { // Entry 117 + 0x1.6a09e5b2eec967cd97b2eff75f471493p-1, + 0x1.fffffep-2 + }, + { // Entry 118 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-1, + 0x1.p-1 + }, + { // Entry 119 + 0x1.6a09e7d1fda27bf77d45272dd2d83a4bp-1, + 0x1.000002p-1 + }, + { // Entry 120 + 0x1.fffffeffffffbfffffdfffffebfffff1p-1, + 0x1.fffffep-1 + }, + { // Entry 121 + 0x1.p0, + 0x1.p0 + }, + { // Entry 122 + 0x1.000000ffffff8000007fffff600000dfp0, + 0x1.000002p0 + }, + { // Entry 123 + 0x1.6a09e5b2eec967cd97b2eff75f471493p0, + 0x1.fffffep0 + }, + { // Entry 124 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep0, + 0x1.p1 + }, + { // Entry 125 + 0x1.6a09e7d1fda27bf77d45272dd2d83a4bp0, + 0x1.000002p1 + }, + { // Entry 126 + 0x1.fffffeffffffbfffffdfffffebfffff1p0, + 0x1.fffffep1 + }, + { // Entry 127 + 0x1.p1, + 0x1.p2 + }, + { // Entry 128 + 0x1.000000ffffff8000007fffff600000dfp1, + 0x1.000002p2 + }, + { // Entry 129 + 0.0, + 0.0 + }, + { // Entry 130 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-75, + 0x1.p-149 + }, + { // Entry 131 + 0x1.fffffdfffffefffffefffffebffffe3fp-64, + 0x1.fffffcp-127 + }, + { // Entry 132 + 0x1.p-63, + 0x1.p-126 + }, + { // Entry 133 + 0x1.000000ffffff8000007fffff600000dfp-63, + 0x1.000002p-126 + }, + { // Entry 134 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-75, + 0x1.p-149 + }, + { // Entry 135 + 0x1.279a75809da58a0811243c04849bccb2p-64, + 0x1.555558p-128 + }, + { // Entry 136 + 0x1.a20bd62fbcd82b1d65e201b6160bb97fp-64, + 0x1.555554p-127 + }, + { // Entry 137 + 0x1.fffffdfffffefffffefffffebffffe3fp-64, + 0x1.fffffcp-127 + }, + { // Entry 138 + 0x1.fffffcfffffdbffffc9ffff9abfff2b5p-1, + 0x1.fffffap-1 + }, + { // Entry 139 + 0x1.fffffdfffffefffffefffffebffffe3fp-1, + 0x1.fffffcp-1 + }, + { // Entry 140 + 0x1.fffffeffffffbfffffdfffffebfffff1p-1, + 0x1.fffffep-1 + }, + { // Entry 141 + 0x1.p0, + 0x1.p0 + }, + { // Entry 142 + 0x1.000000ffffff8000007fffff600000dfp0, + 0x1.000002p0 + }, + { // Entry 143 + 0x1.fffffcfffffdbffffc9ffff9abfff2b5p-1, + 0x1.fffffap-1 + }, + { // Entry 144 + 0x1.fffffdfffffefffffefffffebffffe3fp-1, + 0x1.fffffcp-1 + }, + { // Entry 145 + 0x1.fffffeffffffbfffffdfffffebfffff1p-1, + 0x1.fffffep-1 + }, + { // Entry 146 + 0x1.p0, + 0x1.p0 + }, + { // Entry 147 + 0x1.000000ffffff8000007fffff600000dfp0, + 0x1.000002p0 + }, + { // Entry 148 + 0x1.fffffeffffffbfffffdfffffebfffff1p63, + 0x1.fffffep127 + }, + { // Entry 149 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 150 + 0x1.fffffeffffffbfffffdfffffebfffff1p63, + 0x1.fffffep127 + }, + { // Entry 151 + 0x1.fffffdfffffefffffefffffebffffe3fp63, + 0x1.fffffcp127 + }, + { // Entry 152 + 0x1.c5bf89853a94d473c88f0dc85f187a6ep0, + 0x1.921fb6p1 + }, + { // Entry 153 + 0x1.40d9324a48137bb45e891e1bdffe64c2p0, + 0x1.921fb6p0 + }, + { // Entry 154 + 0x1.000000ffffff8000007fffff600000dfp0, + 0x1.000002p0 + }, + { // Entry 155 + 0x1.p0, + 0x1.p0 + }, + { // Entry 156 + 0x1.fffffeffffffbfffffdfffffebfffff1p-1, + 0x1.fffffep-1 + }, + { // Entry 157 + 0x1.c5bf89853a94d473c88f0dc85f187a6ep-1, + 0x1.921fb6p-1 + }, + { // Entry 158 + 0x1.000000ffffff8000007fffff600000dfp-63, + 0x1.000002p-126 + }, + { // Entry 159 + 0x1.p-63, + 0x1.p-126 + }, + { // Entry 160 + 0x1.fffffdfffffefffffefffffebffffe3fp-64, + 0x1.fffffcp-127 + }, + { // Entry 161 + 0x1.fffffbfffffbfffff7ffffebffffc7ffp-64, + 0x1.fffff8p-127 + }, + { // Entry 162 + 0x1.p-74, + 0x1.p-148 + }, + { // Entry 163 + 0x1.6a09e667f3bcc908b2fb1366ea957d3ep-75, + 0x1.p-149 + }, + { // Entry 164 + 0.0, + 0.0f + }, + { // Entry 165 + -0.0, + -0.0f + }, + { // Entry 166 + 0x1.p1, + 0x1.p2 + }, + { // Entry 167 + 0x1.p2, + 0x1.p4 + }, + { // Entry 168 + 0x1.80p1, + 0x1.20p3 + }, + { // Entry 169 + 0x1.40p2, + 0x1.90p4 + }, + { // Entry 170 + 0x1.p-1, + 0x1.p-2 + }, + { // Entry 171 + 0x1.c0p2, + 0x1.88p5 + }, + { // Entry 172 + 0x1.40p3, + 0x1.90p6 + } +}; diff --git a/tests/math_tan_intel_data.h b/tests/math_data/tan_intel_data.h similarity index 100% rename from tests/math_tan_intel_data.h rename to tests/math_data/tan_intel_data.h diff --git a/tests/math_tanf_intel_data.h b/tests/math_data/tanf_intel_data.h similarity index 100% rename from tests/math_tanf_intel_data.h rename to tests/math_data/tanf_intel_data.h diff --git a/tests/math_data/tanh_intel_data.h b/tests/math_data/tanh_intel_data.h new file mode 100644 index 000000000..2e433ca1e --- /dev/null +++ b/tests/math_data/tanh_intel_data.h @@ -0,0 +1,2938 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_tanh_intel_data[] = { + { // Entry 0 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0000000000001p40 + }, + { // Entry 1 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0000000000001p40 + }, + { // Entry 2 + -0x1.fff5559997e1091212284e477e6b601bp-7, + -0x1.000000000000cp-6 + }, + { // Entry 3 + 0x1.fff5559997e1091212284e477e6b601bp-7, + 0x1.000000000000cp-6 + }, + { // Entry 4 + -0x1.fffffffffff4e7ff9444b603d6dd765cp-1, + -0x1.02020p4 + }, + { // Entry 5 + 0x1.fffffffffff4e7ff9444b603d6dd765cp-1, + 0x1.02020p4 + }, + { // Entry 6 + -0x1.fbae8ebca20d4c5880046e52256af91ep-3, + -0x1.033db279cac50p-2 + }, + { // Entry 7 + 0x1.fbae8ebca20d4c5880046e52256af91ep-3, + 0x1.033db279cac50p-2 + }, + { // Entry 8 + -0x1.ef865be1ef42880100008a5e4e4190c5p-1, + -0x1.0741ea37759d0p1 + }, + { // Entry 9 + 0x1.ef865be1ef42880100008a5e4e4190c5p-1, + 0x1.0741ea37759d0p1 + }, + { // Entry 10 + -0x1.fffffe4130884001624e28693fd77976p-1, + -0x1.17701b3bf0502p3 + }, + { // Entry 11 + 0x1.fffffe4130884001624e28693fd77976p-1, + 0x1.17701b3bf0502p3 + }, + { // Entry 12 + -0x1.bfe15277a8709fff7196fc7ed299cacfp-1, + -0x1.5a6p0 + }, + { // Entry 13 + 0x1.bfe15277a8709fff7196fc7ed299cacfp-1, + 0x1.5a6p0 + }, + { // Entry 14 + -0x1.4597c2c7089a5296d1b38cc8fc3b35b2p-1, + -0x1.80aa4dee35c52p-1 + }, + { // Entry 15 + 0x1.4597c2c7089a5296d1b38cc8fc3b35b2p-1, + 0x1.80aa4dee35c52p-1 + }, + { // Entry 16 + -0x1.8535183c81bec818a4482b6aa562704ap-4, + -0x1.86629b25ad139p-4 + }, + { // Entry 17 + 0x1.8535183c81bec818a4482b6aa562704ap-4, + 0x1.86629b25ad139p-4 + }, + { // Entry 18 + -0x1.49914b1c7a6a3040d7a1246b5c9a7223p-1, + -0x1.8765183af0bf8p-1 + }, + { // Entry 19 + 0x1.49914b1c7a6a3040d7a1246b5c9a7223p-1, + 0x1.8765183af0bf8p-1 + }, + { // Entry 20 + -0x1.9070fe4e6f41f7e2e1d3a8d017f0997ep-4, + -0x1.91b97a94248cep-4 + }, + { // Entry 21 + 0x1.9070fe4e6f41f7e2e1d3a8d017f0997ep-4, + 0x1.91b97a94248cep-4 + }, + { // Entry 22 + -0x1.53fca0a748a40b956f64ea48ae26ceb7p-1, + -0x1.999999999999ap-1 + }, + { // Entry 23 + 0x1.53fca0a748a40b956f64ea48ae26ceb7p-1, + 0x1.999999999999ap-1 + }, + { // Entry 24 + -0x1.afbec6429aad794d7f2a775b8759d621p-8, + -0x1.afc05f9bb3e19p-8 + }, + { // Entry 25 + 0x1.afbec6429aad794d7f2a775b8759d621p-8, + 0x1.afc05f9bb3e19p-8 + }, + { // Entry 26 + -0x1.ff142eecd1b15800cdeb0f526da78623p-1, + -0x1.c0cffc79a8e7ap1 + }, + { // Entry 27 + 0x1.ff142eecd1b15800cdeb0f526da78623p-1, + 0x1.c0cffc79a8e7ap1 + }, + { // Entry 28 + -0x1.69ee34427443cf9fe259a9bb2567fcc0p-1, + -0x1.c30c0608de324p-1 + }, + { // Entry 29 + 0x1.69ee34427443cf9fe259a9bb2567fcc0p-1, + 0x1.c30c0608de324p-1 + }, + { // Entry 30 + -0x1.78d4ef748dd52801170d542b2b0cb210p-1, + -0x1.e225b5b8fe514p-1 + }, + { // Entry 31 + 0x1.78d4ef748dd52801170d542b2b0cb210p-1, + 0x1.e225b5b8fe514p-1 + }, + { // Entry 32 + -0x1.ce716dc85f4f601568694f24eb23ca3cp-2, + -0x1.f2652ecbdc0f1p-2 + }, + { // Entry 33 + 0x1.ce716dc85f4f601568694f24eb23ca3cp-2, + 0x1.f2652ecbdc0f1p-2 + }, + { // Entry 34 + -0x1.d9353d750404d7fd4bd76174b9eb0c4ap-2, + -0x1.ffffffff7ffffp-2 + }, + { // Entry 35 + 0x1.d9353d750404d7fd4bd76174b9eb0c4ap-2, + 0x1.ffffffff7ffffp-2 + }, + { // Entry 36 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffep6 + }, + { // Entry 37 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ffffffffffffep6 + }, + { // Entry 38 + 0x1.85efab514f3952c8d133af19e5e8cdd6p-1, + 0x1.0000000000001p0 + }, + { // Entry 39 + -0x1.85efab514f3952c8d133af19e5e8cdd6p-1, + -0x1.0000000000001p0 + }, + { // Entry 40 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0000000000001p40 + }, + { // Entry 41 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0000000000001p40 + }, + { // Entry 42 + 0x1.d9353d7568afe67b37fb989f559be834p-2, + 0x1.0000000000007p-1 + }, + { // Entry 43 + -0x1.d9353d7568afe67b37fb989f559be834p-2, + -0x1.0000000000007p-1 + }, + { // Entry 44 + 0x1.ffff5555999b9df5cab1d843ba27b16bp-9, + 0x1.0000000000011p-8 + }, + { // Entry 45 + -0x1.ffff5555999b9df5cab1d843ba27b16bp-9, + -0x1.0000000000011p-8 + }, + { // Entry 46 + 0x1.fff5559997e1e90412bd9e530b1bb1c8p-7, + 0x1.0000000000013p-6 + }, + { // Entry 47 + -0x1.fff5559997e1e90412bd9e530b1bb1c8p-7, + -0x1.0000000000013p-6 + }, + { // Entry 48 + 0x1.fd5992bc4b8938001f85b833d16495fap-4, + 0x1.0000000000030p-3 + }, + { // Entry 49 + -0x1.fd5992bc4b8938001f85b833d16495fap-4, + -0x1.0000000000030p-3 + }, + { // Entry 50 + 0x1.fff5559997f228001d929172a4eb85d4p-7, + 0x1.0000000000095p-6 + }, + { // Entry 51 + -0x1.fff5559997f228001d929172a4eb85d4p-7, + -0x1.0000000000095p-6 + }, + { // Entry 52 + 0x1.ed9505e1bc464849d749fc9de18202c2p-1, + 0x1.00000000002p1 + }, + { // Entry 53 + -0x1.ed9505e1bc464849d749fc9de18202c2p-1, + -0x1.00000000002p1 + }, + { // Entry 54 + 0x1.ff55997e035588295a0fea71abc3cb2ep-5, + 0x1.0000000000243p-4 + }, + { // Entry 55 + -0x1.ff55997e035588295a0fea71abc3cb2ep-5, + -0x1.0000000000243p-4 + }, + { // Entry 56 + 0x1.f597ea69a231a72e6af16bc1c1566108p-3, + 0x1.0000000000380p-2 + }, + { // Entry 57 + -0x1.f597ea69a231a72e6af16bc1c1566108p-3, + -0x1.0000000000380p-2 + }, + { // Entry 58 + 0x1.f597ea69a58af253fe597fddbebb43e2p-3, + 0x1.00000000020p-2 + }, + { // Entry 59 + -0x1.f597ea69a58af253fe597fddbebb43e2p-3, + -0x1.00000000020p-2 + }, + { // Entry 60 + 0x1.fffd55599de69fe673438a43e4e4e8f0p-8, + 0x1.00000000022a0p-7 + }, + { // Entry 61 + -0x1.fffd55599de69fe673438a43e4e4e8f0p-8, + -0x1.00000000022a0p-7 + }, + { // Entry 62 + 0x1.fffff872a91f87faf5806a50e5c4b91bp-1, + 0x1.0000000002ff0p3 + }, + { // Entry 63 + -0x1.fffff872a91f87faf5806a50e5c4b91bp-1, + -0x1.0000000002ff0p3 + }, + { // Entry 64 + 0x1.fffff872a91f87fb6e55d77442ed3d29p-1, + 0x1.00000000030p3 + }, + { // Entry 65 + -0x1.fffff872a91f87fb6e55d77442ed3d29p-1, + -0x1.00000000030p3 + }, + { // Entry 66 + 0x1.85efab5178d6d000016b608b6d73768fp-1, + 0x1.00000000318b9p0 + }, + { // Entry 67 + -0x1.85efab5178d6d000016b608b6d73768fp-1, + -0x1.00000000318b9p0 + }, + { // Entry 68 + 0x1.d9353d75bd3167fffe0ca38b641c896fp-2, + 0x1.0000000035ba6p-1 + }, + { // Entry 69 + -0x1.d9353d75bd3167fffe0ca38b641c896fp-2, + -0x1.0000000035ba6p-1 + }, + { // Entry 70 + 0x1.d9353d771617800000a9a580e469340ep-2, + 0x1.0000000111012p-1 + }, + { // Entry 71 + -0x1.d9353d771617800000a9a580e469340ep-2, + -0x1.0000000111012p-1 + }, + { // Entry 72 + 0x1.fd5992bf3fa307ce156b9614980779ecp-4, + 0x1.000000018p-3 + }, + { // Entry 73 + -0x1.fd5992bf3fa307ce156b9614980779ecp-4, + -0x1.000000018p-3 + }, + { // Entry 74 + 0x1.fff57197d7f21aad8cde741e0c0ad7fap-7, + 0x1.00000e0p-6 + }, + { // Entry 75 + -0x1.fff57197d7f21aad8cde741e0c0ad7fap-7, + -0x1.00000e0p-6 + }, + { // Entry 76 + 0x1.ff55b95e1854b7dec3a51ba27b39be8bp-5, + 0x1.00001p-4 + }, + { // Entry 77 + -0x1.ff55b95e1854b7dec3a51ba27b39be8bp-5, + -0x1.00001p-4 + }, + { // Entry 78 + 0x1.ff55ed7fe5192835b5778c9d03720c56p-5, + 0x1.00002a2b0p-4 + }, + { // Entry 79 + -0x1.ff55ed7fe5192835b5778c9d03720c56p-5, + -0x1.00002a2b0p-4 + }, + { // Entry 80 + 0x1.ffd9589953c32bc8da7c0ed0baa544b3p-6, + 0x1.00020p-5 + }, + { // Entry 81 + -0x1.ffd9589953c32bc8da7c0ed0baa544b3p-6, + -0x1.00020p-5 + }, + { // Entry 82 + 0x1.85fd1b1b96f55c651875290b2d7f494cp-1, + 0x1.001p0 + }, + { // Entry 83 + -0x1.85fd1b1b96f55c651875290b2d7f494cp-1, + -0x1.001p0 + }, + { // Entry 84 + 0x1.fdb8166cc3ed2817c1f59dbd8b23b2abp-4, + 0x1.003p-3 + }, + { // Entry 85 + -0x1.fdb8166cc3ed2817c1f59dbd8b23b2abp-4, + -0x1.003p-3 + }, + { // Entry 86 + 0x1.ffe8933bc5a6d7be8a7316e43ce9c6cdp-5, + 0x1.0049c689802d0p-4 + }, + { // Entry 87 + -0x1.ffe8933bc5a6d7be8a7316e43ce9c6cdp-5, + -0x1.0049c689802d0p-4 + }, + { // Entry 88 + 0x1.fa73af7a658375ff4348367f3830a567p-3, + 0x1.0295fad40a580p-2 + }, + { // Entry 89 + -0x1.fa73af7a658375ff4348367f3830a567p-3, + -0x1.0295fad40a580p-2 + }, + { // Entry 90 + 0x1.0624d77c51e6880001f9be17000b9cf1p-10, + 0x1.0624dd3655b8ap-10 + }, + { // Entry 91 + -0x1.0624d77c51e6880001f9be17000b9cf1p-10, + -0x1.0624dd3655b8ap-10 + }, + { // Entry 92 + 0x1.0624d79f9b19f7fffe0a9d21eca99d7cp-10, + 0x1.0624dd599eee6p-10 + }, + { // Entry 93 + -0x1.0624d79f9b19f7fffe0a9d21eca99d7cp-10, + -0x1.0624dd599eee6p-10 + }, + { // Entry 94 + 0x1.e429309abfffd2ddfd82de658136eba5p-2, + 0x1.07020e041c084p-1 + }, + { // Entry 95 + -0x1.e429309abfffd2ddfd82de658136eba5p-2, + -0x1.07020e041c084p-1 + }, + { // Entry 96 + 0x1.8c7f5c6b80f69a39323c4db93a0f72b0p-1, + 0x1.080p0 + }, + { // Entry 97 + -0x1.8c7f5c6b80f69a39323c4db93a0f72b0p-1, + -0x1.080p0 + }, + { // Entry 98 + 0x1.8d012ee7bd86f7ff002853771d7f8bf3p-1, + 0x1.08a278c042d05p0 + }, + { // Entry 99 + -0x1.8d012ee7bd86f7ff002853771d7f8bf3p-1, + -0x1.08a278c042d05p0 + }, + { // Entry 100 + 0x1.fffffe4130884001a9dd6277c63796bap-1, + 0x1.17701b3bf052bp3 + }, + { // Entry 101 + -0x1.fffffe4130884001a9dd6277c63796bap-1, + -0x1.17701b3bf052bp3 + }, + { // Entry 102 + 0x1.fdbcb70e1a79f7fae20bb105bc7b5a09p-2, + 0x1.17bd082f7494ap-1 + }, + { // Entry 103 + -0x1.fdbcb70e1a79f7fae20bb105bc7b5a09p-2, + -0x1.17bd082f7494ap-1 + }, + { // Entry 104 + 0x1.ff97efd9e06bae1b16cedbdb4a92304ep-2, + 0x1.18f94c43e4254p-1 + }, + { // Entry 105 + -0x1.ff97efd9e06bae1b16cedbdb4a92304ep-2, + -0x1.18f94c43e4254p-1 + }, + { // Entry 106 + 0x1.1abe341c3a920fff94d356d6f5ffbc8dp-7, + 0x1.1acp-7 + }, + { // Entry 107 + -0x1.1abe341c3a920fff94d356d6f5ffbc8dp-7, + -0x1.1acp-7 + }, + { // Entry 108 + 0x1.02e1e2b14b97c6a35cbdc397873184d2p-1, + 0x1.1d1a3a347468fp-1 + }, + { // Entry 109 + -0x1.02e1e2b14b97c6a35cbdc397873184d2p-1, + -0x1.1d1a3a347468fp-1 + }, + { // Entry 110 + 0x1.9d8d4198958f6f11c41090ab7e3accb0p-1, + 0x1.1ed47ae8419b9p0 + }, + { // Entry 111 + -0x1.9d8d4198958f6f11c41090ab7e3accb0p-1, + -0x1.1ed47ae8419b9p0 + }, + { // Entry 112 + 0x1.182d330b3abd2a2e07d69cfdde7a8e36p-2, + 0x1.1f8p-2 + }, + { // Entry 113 + -0x1.182d330b3abd2a2e07d69cfdde7a8e36p-2, + -0x1.1f8p-2 + }, + { // Entry 114 + 0x1.ffe0482ef94fe800fb76431a7260ec18p-1, + 0x1.20a0ea0ea0f75p2 + }, + { // Entry 115 + -0x1.ffe0482ef94fe800fb76431a7260ec18p-1, + -0x1.20a0ea0ea0f75p2 + }, + { // Entry 116 + 0x1.268f1d822590680082a05be831e4854ap-6, + 0x1.26973dc7c5be6p-6 + }, + { // Entry 117 + -0x1.268f1d822590680082a05be831e4854ap-6, + -0x1.26973dc7c5be6p-6 + }, + { // Entry 118 + 0x1.218ab0574162d800d421fdb840145675p-2, + 0x1.29a69bd13ee87p-2 + }, + { // Entry 119 + -0x1.218ab0574162d800d421fdb840145675p-2, + -0x1.29a69bd13ee87p-2 + }, + { // Entry 120 + 0x1.2a4dda7de0017fffffbc7994f1ba04a0p-2, + 0x1.3333333389314p-2 + }, + { // Entry 121 + -0x1.2a4dda7de0017fffffbc7994f1ba04a0p-2, + -0x1.3333333389314p-2 + }, + { // Entry 122 + 0x1.3588dea53e3e48000186808c28c507e0p-3, + 0x1.37eca6a41e727p-3 + }, + { // Entry 123 + -0x1.3588dea53e3e48000186808c28c507e0p-3, + -0x1.37eca6a41e727p-3 + }, + { // Entry 124 + 0x1.adc58b27626030403b9dea1c7eee05c0p-1, + 0x1.3818fe847da14p0 + }, + { // Entry 125 + -0x1.adc58b27626030403b9dea1c7eee05c0p-1, + -0x1.3818fe847da14p0 + }, + { // Entry 126 + 0x1.39e670f864e06800916b322435b7bc9ap-6, + 0x1.39f046957a2f6p-6 + }, + { // Entry 127 + -0x1.39e670f864e06800916b322435b7bc9ap-6, + -0x1.39f046957a2f6p-6 + }, + { // Entry 128 + 0x1.afb03526b454afc4fd8fbb37ba979691p-1, + 0x1.3b6071d1f7484p0 + }, + { // Entry 129 + -0x1.afb03526b454afc4fd8fbb37ba979691p-1, + -0x1.3b6071d1f7484p0 + }, + { // Entry 130 + 0x1.fff71a538fb237ffaecdafac07098ecdp-1, + 0x1.494ee9ac8da60p2 + }, + { // Entry 131 + -0x1.fff71a538fb237ffaecdafac07098ecdp-1, + -0x1.494ee9ac8da60p2 + }, + { // Entry 132 + 0x1.b8af4dc2536ea800f3619a37dabd112ep-1, + 0x1.4bcc5e389c6a2p0 + }, + { // Entry 133 + -0x1.b8af4dc2536ea800f3619a37dabd112ep-1, + -0x1.4bcc5e389c6a2p0 + }, + { // Entry 134 + 0x1.bfe15277a8709fff7196fc7ed299cacfp-1, + 0x1.5a6p0 + }, + { // Entry 135 + -0x1.bfe15277a8709fff7196fc7ed299cacfp-1, + -0x1.5a6p0 + }, + { // Entry 136 + 0x1.31e258b9d59417ff0172bc482ad0836bp-1, + 0x1.60d71db63fc38p-1 + }, + { // Entry 137 + -0x1.31e258b9d59417ff0172bc482ad0836bp-1, + -0x1.60d71db63fc38p-1 + }, + { // Entry 138 + 0x1.62fd595702658ff6ef9857182535c62fp-6, + 0x1.630b92e7f0f77p-6 + }, + { // Entry 139 + -0x1.62fd595702658ff6ef9857182535c62fp-6, + -0x1.630b92e7f0f77p-6 + }, + { // Entry 140 + 0x1.33ea141cebb6430c668ffce962626636p-1, + 0x1.64024f4a3b070p-1 + }, + { // Entry 141 + -0x1.33ea141cebb6430c668ffce962626636p-1, + -0x1.64024f4a3b070p-1 + }, + { // Entry 142 + 0x1.64c8407c232917fafcc3fa7256f65979p-13, + 0x1.64c840b5e30aap-13 + }, + { // Entry 143 + -0x1.64c8407c232917fafcc3fa7256f65979p-13, + -0x1.64c840b5e30aap-13 + }, + { // Entry 144 + 0x1.35061c5e8c503500e45460954fc60ba0p-1, + 0x1.65c0300548991p-1 + }, + { // Entry 145 + -0x1.35061c5e8c503500e45460954fc60ba0p-1, + -0x1.65c0300548991p-1 + }, + { // Entry 146 + 0x1.fc659d3ccb3ad0f406e5741895bf529bp-1, + 0x1.695ab3124e6f3p1 + }, + { // Entry 147 + -0x1.fc659d3ccb3ad0f406e5741895bf529bp-1, + -0x1.695ab3124e6f3p1 + }, + { // Entry 148 + 0x1.698e7945aa772812eb8246c066fe12cep-4, + 0x1.6a8p-4 + }, + { // Entry 149 + -0x1.698e7945aa772812eb8246c066fe12cep-4, + -0x1.6a8p-4 + }, + { // Entry 150 + 0x1.c9a96d9b25e257fef42254a09c5a8e89p-1, + 0x1.70dc370dc370cp0 + }, + { // Entry 151 + -0x1.c9a96d9b25e257fef42254a09c5a8e89p-1, + -0x1.70dc370dc370cp0 + }, + { // Entry 152 + 0x1.729b0b53891cd8029a198f346aded3c6p-5, + 0x1.72dbd9697a31ap-5 + }, + { // Entry 153 + -0x1.729b0b53891cd8029a198f346aded3c6p-5, + -0x1.72dbd9697a31ap-5 + }, + { // Entry 154 + 0x1.42dfc90ce7990801849a792e4b568e22p-1, + 0x1.7c2055eedea83p-1 + }, + { // Entry 155 + -0x1.42dfc90ce7990801849a792e4b568e22p-1, + -0x1.7c2055eedea83p-1 + }, + { // Entry 156 + 0x1.445fe311097e8b509753e0bbd4d8de8ap-1, + 0x1.7eap-1 + }, + { // Entry 157 + -0x1.445fe311097e8b509753e0bbd4d8de8ap-1, + -0x1.7eap-1 + }, + { // Entry 158 + 0x1.7e9dcb8e6272f7ff7aebf989fc716171p-6, + 0x1.7eaf9b6ae4ee3p-6 + }, + { // Entry 159 + -0x1.7e9dcb8e6272f7ff7aebf989fc716171p-6, + -0x1.7eaf9b6ae4ee3p-6 + }, + { // Entry 160 + 0x1.459f0dcdb1b2522b5637d303656306dep-1, + 0x1.80b68cceb89c4p-1 + }, + { // Entry 161 + -0x1.459f0dcdb1b2522b5637d303656306dep-1, + -0x1.80b68cceb89c4p-1 + }, + { // Entry 162 + 0x1.45b3111d091a910621ec7f399ccdb8c2p-1, + 0x1.80d82924ec44dp-1 + }, + { // Entry 163 + -0x1.45b3111d091a910621ec7f399ccdb8c2p-1, + -0x1.80d82924ec44dp-1 + }, + { // Entry 164 + 0x1.49009c6556eed1e5e07615b5b4c368ecp-1, + 0x1.866e5ae84b0e8p-1 + }, + { // Entry 165 + -0x1.49009c6556eed1e5e07615b5b4c368ecp-1, + -0x1.866e5ae84b0e8p-1 + }, + { // Entry 166 + 0x1.49a2006d9598d0564979f87ef81c5b1cp-1, + 0x1.8781a092a0f52p-1 + }, + { // Entry 167 + -0x1.49a2006d9598d0564979f87ef81c5b1cp-1, + -0x1.8781a092a0f52p-1 + }, + { // Entry 168 + 0x1.862c8470e675a07e123ea879f8baebb3p-3, + 0x1.8b0p-3 + }, + { // Entry 169 + -0x1.862c8470e675a07e123ea879f8baebb3p-3, + -0x1.8b0p-3 + }, + { // Entry 170 + 0x1.8f77d5d8932c9ff9095e8f77fddd070dp-6, + 0x1.8f8c1b47ec114p-6 + }, + { // Entry 171 + -0x1.8f77d5d8932c9ff9095e8f77fddd070dp-6, + -0x1.8f8c1b47ec114p-6 + }, + { // Entry 172 + 0x1.830e23e04e0347fe78663f1c44eb84fbp-2, + 0x1.974p-2 + }, + { // Entry 173 + -0x1.830e23e04e0347fe78663f1c44eb84fbp-2, + -0x1.974p-2 + }, + { // Entry 174 + 0x1.536c6d4bc8352db7986656026697f1a9p-1, + 0x1.98980p-1 + }, + { // Entry 175 + -0x1.536c6d4bc8352db7986656026697f1a9p-1, + -0x1.98980p-1 + }, + { // Entry 176 + 0x1.53ca8372b3cf0800c109372ef0258556p-1, + 0x1.994p-1 + }, + { // Entry 177 + -0x1.53ca8372b3cf0800c109372ef0258556p-1, + -0x1.994p-1 + }, + { // Entry 178 + 0x1.94022794ca0f90111cd01b7fcb8cf9b6p-3, + 0x1.996p-3 + }, + { // Entry 179 + -0x1.94022794ca0f90111cd01b7fcb8cf9b6p-3, + -0x1.996p-3 + }, + { // Entry 180 + 0x1.9439830b85ad100001b86875e3435678p-3, + 0x1.99999999e7fb6p-3 + }, + { // Entry 181 + -0x1.9439830b85ad100001b86875e3435678p-3, + -0x1.99999999e7fb6p-3 + }, + { // Entry 182 + 0x1.8511573d83e2980001dfb476af7fd902p-2, + 0x1.9999999b34a5bp-2 + }, + { // Entry 183 + -0x1.8511573d83e2980001dfb476af7fd902p-2, + -0x1.9999999b34a5bp-2 + }, + { // Entry 184 + 0x1.9439830d887d0800010c022856ad8045p-3, + 0x1.9999999bffa9bp-3 + }, + { // Entry 185 + -0x1.9439830d887d0800010c022856ad8045p-3, + -0x1.9999999bffa9bp-3 + }, + { // Entry 186 + 0x1.983d7799ce1f6ffffe2004e393d95329p-4, + 0x1.9999999d7d8a2p-4 + }, + { // Entry 187 + -0x1.983d7799ce1f6ffffe2004e393d95329p-4, + -0x1.9999999d7d8a2p-4 + }, + { // Entry 188 + 0x1.983d779b6c85f7fffe2905fb22397b60p-4, + 0x1.9999999f20191p-4 + }, + { // Entry 189 + -0x1.983d779b6c85f7fffe2905fb22397b60p-4, + -0x1.9999999f20191p-4 + }, + { // Entry 190 + 0x1.dcba660c6fece80d4553119effdd5c2ep-1, + 0x1.aaaaaaaaaaaacp0 + }, + { // Entry 191 + -0x1.dcba660c6fece80d4553119effdd5c2ep-1, + -0x1.aaaaaaaaaaaacp0 + }, + { // Entry 192 + 0x1.ad59b59465b065170605cbf13988832ap-7, + 0x1.ad6p-7 + }, + { // Entry 193 + -0x1.ad59b59465b065170605cbf13988832ap-7, + -0x1.ad6p-7 + }, + { // Entry 194 + 0x1.6010ea0ed51797ff8b6ca7fede1b8d31p-1, + 0x1.afd7ebf5faf80p-1 + }, + { // Entry 195 + -0x1.6010ea0ed51797ff8b6ca7fede1b8d31p-1, + -0x1.afd7ebf5faf80p-1 + }, + { // Entry 196 + 0x1.9b46310eb4e6d7fcfcd6e280870e9b65p-2, + 0x1.b3cfa6c7643acp-2 + }, + { // Entry 197 + -0x1.9b46310eb4e6d7fcfcd6e280870e9b65p-2, + -0x1.b3cfa6c7643acp-2 + }, + { // Entry 198 + 0x1.630edae8786c8eac4ae4fc2ca2fa0dbep-1, + 0x1.b590150dcf8bfp-1 + }, + { // Entry 199 + -0x1.630edae8786c8eac4ae4fc2ca2fa0dbep-1, + -0x1.b590150dcf8bfp-1 + }, + { // Entry 200 + 0x1.657a4f7f260d4f26d7f76db01c856ac3p-1, + 0x1.ba4108b264c6ap-1 + }, + { // Entry 201 + -0x1.657a4f7f260d4f26d7f76db01c856ac3p-1, + -0x1.ba4108b264c6ap-1 + }, + { // Entry 202 + 0x1.ba73ec4f0359a005d109ed3d8245363fp-6, + 0x1.ba8f78449f0b8p-6 + }, + { // Entry 203 + -0x1.ba73ec4f0359a005d109ed3d8245363fp-6, + -0x1.ba8f78449f0b8p-6 + }, + { // Entry 204 + 0x1.b42aa86fc0c0afc4c48569cd92293a6fp-3, + 0x1.baf2501e20528p-3 + }, + { // Entry 205 + -0x1.b42aa86fc0c0afc4c48569cd92293a6fp-3, + -0x1.baf2501e20528p-3 + }, + { // Entry 206 + 0x1.e0eb93e911bfd7ffc1cbb555f083546ap-1, + 0x1.bb6766c1a2624p0 + }, + { // Entry 207 + -0x1.e0eb93e911bfd7ffc1cbb555f083546ap-1, + -0x1.bb6766c1a2624p0 + }, + { // Entry 208 + 0x1.bc9c90043f5afff80b989f92cea4b087p-6, + 0x1.bcb883bb4a1d2p-6 + }, + { // Entry 209 + -0x1.bc9c90043f5afff80b989f92cea4b087p-6, + -0x1.bcb883bb4a1d2p-6 + }, + { // Entry 210 + 0x1.66de0bef230e8802075b728fcffdea9ep-1, + 0x1.bcf9b5e552e46p-1 + }, + { // Entry 211 + -0x1.66de0bef230e8802075b728fcffdea9ep-1, + -0x1.bcf9b5e552e46p-1 + }, + { // Entry 212 + 0x1.c761f75b6966c8015bc19070f6ab5006p-6, + 0x1.c78p-6 + }, + { // Entry 213 + -0x1.c761f75b6966c8015bc19070f6ab5006p-6, + -0x1.c78p-6 + }, + { // Entry 214 + 0x1.71421350a064b0b3b168c6e13a942da1p-1, + 0x1.d20p-1 + }, + { // Entry 215 + -0x1.71421350a064b0b3b168c6e13a942da1p-1, + -0x1.d20p-1 + }, + { // Entry 216 + 0x1.ca9adc00daadf21de2f8e2a3b667acc3p-3, + 0x1.d2827155cd7f2p-3 + }, + { // Entry 217 + -0x1.ca9adc00daadf21de2f8e2a3b667acc3p-3, + -0x1.d2827155cd7f2p-3 + }, + { // Entry 218 + 0x1.d3af0b409493d80f16690d417a020954p-5, + 0x1.d4315fde0fd60p-5 + }, + { // Entry 219 + -0x1.d3af0b409493d80f16690d417a020954p-5, + -0x1.d4315fde0fd60p-5 + }, + { // Entry 220 + 0x1.ff53ef909a53c7ff46ae6492b249f914p-1, + 0x1.d50p1 + }, + { // Entry 221 + -0x1.ff53ef909a53c7ff46ae6492b249f914p-1, + -0x1.d50p1 + }, + { // Entry 222 + 0x1.d4c6dbdd6204b7fdaefa65c2de6c3bc1p-5, + 0x1.d54a1b43f2119p-5 + }, + { // Entry 223 + -0x1.d4c6dbdd6204b7fdaefa65c2de6c3bc1p-5, + -0x1.d54a1b43f2119p-5 + }, + { // Entry 224 + 0x1.d60c056eebcb57ea94de726e86f49ee6p-4, + 0x1.d82076d07e0cap-4 + }, + { // Entry 225 + -0x1.d60c056eebcb57ea94de726e86f49ee6p-4, + -0x1.d82076d07e0cap-4 + }, + { // Entry 226 + 0x1.745a81f5485b0dad83d3ad761f034d17p-1, + 0x1.d8829d48d5ccap-1 + }, + { // Entry 227 + -0x1.745a81f5485b0dad83d3ad761f034d17p-1, + -0x1.d8829d48d5ccap-1 + }, + { // Entry 228 + 0x1.dab77f34d301c900e13d05b912fca596p-7, + 0x1.dacp-7 + }, + { // Entry 229 + -0x1.dab77f34d301c900e13d05b912fca596p-7, + -0x1.dacp-7 + }, + { // Entry 230 + 0x1.d59fb2c4927767ffaf038b5b533e17b8p-3, + 0x1.de2p-3 + }, + { // Entry 231 + -0x1.d59fb2c4927767ffaf038b5b533e17b8p-3, + -0x1.de2p-3 + }, + { // Entry 232 + 0x1.bebc593435695f3e5d9dfdce8ac65911p-2, + 0x1.ded4e157ebb5ap-2 + }, + { // Entry 233 + -0x1.bebc593435695f3e5d9dfdce8ac65911p-2, + -0x1.ded4e157ebb5ap-2 + }, + { // Entry 234 + 0x1.d7665cf9bb8287f53cfd2d51f28dbc87p-3, + 0x1.ep-3 + }, + { // Entry 235 + -0x1.d7665cf9bb8287f53cfd2d51f28dbc87p-3, + -0x1.ep-3 + }, + { // Entry 236 + 0x1.e1839a63361cd36a2077ec3be46fb31cp-6, + 0x1.e1a71c88d42abp-6 + }, + { // Entry 237 + -0x1.e1839a63361cd36a2077ec3be46fb31cp-6, + -0x1.e1a71c88d42abp-6 + }, + { // Entry 238 + 0x1.e94414bfb8b1c926487a611c3e9c82fep-1, + 0x1.e48p0 + }, + { // Entry 239 + -0x1.e94414bfb8b1c926487a611c3e9c82fep-1, + -0x1.e48p0 + }, + { // Entry 240 + 0x1.e47ecb0b519ed4c405e6925c6189b4d5p-6, + 0x1.e4a2f72376d83p-6 + }, + { // Entry 241 + -0x1.e47ecb0b519ed4c405e6925c6189b4d5p-6, + -0x1.e4a2f72376d83p-6 + }, + { // Entry 242 + 0x1.e94fc93631c7e9191f4973a0d807d78ap-1, + 0x1.e4c377153ca9ap0 + }, + { // Entry 243 + -0x1.e94fc93631c7e9191f4973a0d807d78ap-1, + -0x1.e4c377153ca9ap0 + }, + { // Entry 244 + 0x1.c4cc03a3d0c237fdcf5623b5615bbe1dp-2, + 0x1.e6577536d43e7p-2 + }, + { // Entry 245 + -0x1.c4cc03a3d0c237fdcf5623b5615bbe1dp-2, + -0x1.e6577536d43e7p-2 + }, + { // Entry 246 + 0x1.c6214d5944547e0b684eaf0557117675p-2, + 0x1.e80p-2 + }, + { // Entry 247 + -0x1.c6214d5944547e0b684eaf0557117675p-2, + -0x1.e80p-2 + }, + { // Entry 248 + 0x1.7cd8fa892ecf17fe5da6a217f1e8d441p-1, + 0x1.eb05b226cd194p-1 + }, + { // Entry 249 + -0x1.7cd8fa892ecf17fe5da6a217f1e8d441p-1, + -0x1.eb05b226cd194p-1 + }, + { // Entry 250 + 0x1.fb638c376c8fa8010dbbb805d349366ep-6, + 0x1.fb8d188a84c37p-6 + }, + { // Entry 251 + -0x1.fb638c376c8fa8010dbbb805d349366ep-6, + -0x1.fb8d188a84c37p-6 + }, + { // Entry 252 + 0x1.ed02211fde846895e3a231ab4b15fc07p-1, + 0x1.fbfffffffffffp0 + }, + { // Entry 253 + -0x1.ed02211fde846895e3a231ab4b15fc07p-1, + -0x1.fbfffffffffffp0 + }, + { // Entry 254 + 0x1.85558570498f17fd9281ca9c45bffb5ep-1, + 0x1.fe91bd20c2fa7p-1 + }, + { // Entry 255 + -0x1.85558570498f17fd9281ca9c45bffb5ep-1, + -0x1.fe91bd20c2fa7p-1 + }, + { // Entry 256 + 0x1.ff8f55c580d0ad705f464b9e36c04624p-9, + 0x1.ff8ffffffffffp-9 + }, + { // Entry 257 + -0x1.ff8f55c580d0ad705f464b9e36c04624p-9, + -0x1.ff8ffffffffffp-9 + }, + { // Entry 258 + 0x1.ffcf558594f9980987b40863efca6716p-9, + 0x1.ffcffffffffffp-9 + }, + { // Entry 259 + -0x1.ffcf558594f9980987b40863efca6716p-9, + -0x1.ffcffffffffffp-9 + }, + { // Entry 260 + 0x1.ffb5619756262b83f716223082574b9bp-6, + 0x1.ffep-6 + }, + { // Entry 261 + -0x1.ffb5619756262b83f716223082574b9bp-6, + -0x1.ffep-6 + }, + { // Entry 262 + 0x1.ffe14573a7c18e0b1e2b616408b023d0p-9, + 0x1.ffe1effffffffp-9 + }, + { // Entry 263 + -0x1.ffe14573a7c18e0b1e2b616408b023d0p-9, + -0x1.ffe1effffffffp-9 + }, + { // Entry 264 + 0x1.ffed559996e8080e35db4ddd5c5067b7p-8, + 0x1.ffeffffffffffp-8 + }, + { // Entry 265 + -0x1.ffed559996e8080e35db4ddd5c5067b7p-8, + -0x1.ffeffffffffffp-8 + }, + { // Entry 266 + 0x1.fd595b1bf5ffd7fd760222476204a3c8p-4, + 0x1.ffffc77ffff47p-4 + }, + { // Entry 267 + -0x1.fd595b1bf5ffd7fd760222476204a3c8p-4, + -0x1.ffffc77ffff47p-4 + }, + { // Entry 268 + 0x1.85efa37cbe334800fffc63002c8c03eep-1, + 0x1.ffffed5aeedc7p-1 + }, + { // Entry 269 + -0x1.85efa37cbe334800fffc63002c8c03eep-1, + -0x1.ffffed5aeedc7p-1 + }, + { // Entry 270 + 0x1.85efa9d9032e6ebb257c9dc7befcea9cp-1, + 0x1.fffffc7ffffffp-1 + }, + { // Entry 271 + -0x1.85efa9d9032e6ebb257c9dc7befcea9cp-1, + -0x1.fffffc7ffffffp-1 + }, + { // Entry 272 + 0x1.f597ea2d3c6b112fb996697ab9d730f8p-3, + 0x1.ffffffbfbffffp-3 + }, + { // Entry 273 + -0x1.f597ea2d3c6b112fb996697ab9d730f8p-3, + -0x1.ffffffbfbffffp-3 + }, + { // Entry 274 + 0x1.f597ea3c82e148049b81276747b22a43p-3, + 0x1.ffffffcffffffp-3 + }, + { // Entry 275 + -0x1.f597ea3c82e148049b81276747b22a43p-3, + -0x1.ffffffcffffffp-3 + }, + { // Entry 276 + 0x1.d9353d750404d7fd4bd76174b9eb0c4ap-2, + 0x1.ffffffff7ffffp-2 + }, + { // Entry 277 + -0x1.d9353d750404d7fd4bd76174b9eb0c4ap-2, + -0x1.ffffffff7ffffp-2 + }, + { // Entry 278 + 0x1.85efab514f10ed5614c26425b952b2a6p-1, + 0x1.ffffffffff9ffp-1 + }, + { // Entry 279 + -0x1.85efab514f10ed5614c26425b952b2a6p-1, + -0x1.ffffffffff9ffp-1 + }, + { // Entry 280 + 0x1.ffd559992af86be17634ba8180eb56e3p-6, + 0x1.ffffffffffda8p-6 + }, + { // Entry 281 + -0x1.ffd559992af86be17634ba8180eb56e3p-6, + -0x1.ffffffffffda8p-6 + }, + { // Entry 282 + 0x1.ff55997e02f5d7f9739cb079aec68ef1p-5, + 0x1.ffffffffffe85p-5 + }, + { // Entry 283 + -0x1.ff55997e02f5d7f9739cb079aec68ef1p-5, + -0x1.ffffffffffe85p-5 + }, + { // Entry 284 + 0x1.85efab514f38edfd97f9312bc98e2889p-1, + 0x1.ffffffffffff3p-1 + }, + { // Entry 285 + -0x1.85efab514f38edfd97f9312bc98e2889p-1, + -0x1.ffffffffffff3p-1 + }, + { // Entry 286 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ffffffffffffep6 + }, + { // Entry 287 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffep6 + }, + { // Entry 288 + 0.0, + 0.0 + }, + { // Entry 289 + 0x1.1a5eeff27cc84e29675f038f1aba6042p-5, + 0x1.1a7b9611a7b96p-5 + }, + { // Entry 290 + -0x1.1a5eeff27cc84e29675f038f1aba6042p-5, + -0x1.1a7b9611a7b96p-5 + }, + { // Entry 291 + 0x1.1a09275c594348d69d3aa6bc5a6d3eacp-4, + 0x1.1a7b9611a7b96p-4 + }, + { // Entry 292 + -0x1.1a09275c594348d69d3aa6bc5a6d3eacp-4, + -0x1.1a7b9611a7b96p-4 + }, + { // Entry 293 + 0x1.a63815915c3db32a3543202f310ededbp-4, + 0x1.a7b9611a7b961p-4 + }, + { // Entry 294 + -0x1.a63815915c3db32a3543202f310ededbp-4, + -0x1.a7b9611a7b961p-4 + }, + { // Entry 295 + 0x1.18b472e84eb8a189e113a261ae412556p-3, + 0x1.1a7b9611a7b96p-3 + }, + { // Entry 296 + -0x1.18b472e84eb8a189e113a261ae412556p-3, + -0x1.1a7b9611a7b96p-3 + }, + { // Entry 297 + 0x1.5da54d60a7195c8adb545802f1bfc594p-3, + 0x1.611a7b9611a7cp-3 + }, + { // Entry 298 + -0x1.5da54d60a7195c8adb545802f1bfc594p-3, + -0x1.611a7b9611a7cp-3 + }, + { // Entry 299 + 0x1.a1c7a7122df5863ada1156ab3e6900a0p-3, + 0x1.a7b9611a7b962p-3 + }, + { // Entry 300 + -0x1.a1c7a7122df5863ada1156ab3e6900a0p-3, + -0x1.a7b9611a7b962p-3 + }, + { // Entry 301 + 0x1.e4f66c98ea9387f84c4b3ac494f670b7p-3, + 0x1.ee58469ee5848p-3 + }, + { // Entry 302 + -0x1.e4f66c98ea9387f84c4b3ac494f670b7p-3, + -0x1.ee58469ee5848p-3 + }, + { // Entry 303 + 0x1.13875ab3cead807903e1f1f3e8e5643ep-2, + 0x1.1a7b9611a7b97p-2 + }, + { // Entry 304 + -0x1.13875ab3cead807903e1f1f3e8e5643ep-2, + -0x1.1a7b9611a7b97p-2 + }, + { // Entry 305 + 0x1.33f8025638e0d966877007ff4292fc49p-2, + 0x1.3dcb08d3dcb0ap-2 + }, + { // Entry 306 + -0x1.33f8025638e0d966877007ff4292fc49p-2, + -0x1.3dcb08d3dcb0ap-2 + }, + { // Entry 307 + 0x1.53be3f9638299cc1042cd3014eb611a5p-2, + 0x1.611a7b9611a7dp-2 + }, + { // Entry 308 + -0x1.53be3f9638299cc1042cd3014eb611a5p-2, + -0x1.611a7b9611a7dp-2 + }, + { // Entry 309 + 0x1.72cc8acad74a0554ceab8f673d8fd9c1p-2, + 0x1.8469ee58469f0p-2 + }, + { // Entry 310 + -0x1.72cc8acad74a0554ceab8f673d8fd9c1p-2, + -0x1.8469ee58469f0p-2 + }, + { // Entry 311 + 0x1.9116d18d0f897a8cd0329175c1761056p-2, + 0x1.a7b9611a7b963p-2 + }, + { // Entry 312 + -0x1.9116d18d0f897a8cd0329175c1761056p-2, + -0x1.a7b9611a7b963p-2 + }, + { // Entry 313 + 0x1.ae92803956bf8fe7960fe047c58fe2cep-2, + 0x1.cb08d3dcb08d6p-2 + }, + { // Entry 314 + -0x1.ae92803956bf8fe7960fe047c58fe2cep-2, + -0x1.cb08d3dcb08d6p-2 + }, + { // Entry 315 + 0x1.cb3685d89f9d9f9f4ed38442b61bb2a8p-2, + 0x1.ee58469ee5849p-2 + }, + { // Entry 316 + -0x1.cb3685d89f9d9f9f4ed38442b61bb2a8p-2, + -0x1.ee58469ee5849p-2 + }, + { // Entry 317 + 0x1.e6fb52c30980e5f495d12b6477845637p-2, + 0x1.08d3dcb08d3dep-1 + }, + { // Entry 318 + -0x1.e6fb52c30980e5f495d12b6477845637p-2, + -0x1.08d3dcb08d3dep-1 + }, + { // Entry 319 + 0x1.00ed69341225491fa94ea8dd2d1c04adp-1, + 0x1.1a7b9611a7b97p-1 + }, + { // Entry 320 + -0x1.00ed69341225491fa94ea8dd2d1c04adp-1, + -0x1.1a7b9611a7b97p-1 + }, + { // Entry 321 + 0x1.0de8305e4cc3d5001e5239e63b8dbed5p-1, + 0x1.2c234f72c2350p-1 + }, + { // Entry 322 + -0x1.0de8305e4cc3d5001e5239e63b8dbed5p-1, + -0x1.2c234f72c2350p-1 + }, + { // Entry 323 + 0x1.1a6c5ded8f162aadbb0149b498cb1b24p-1, + 0x1.3dcb08d3dcb09p-1 + }, + { // Entry 324 + -0x1.1a6c5ded8f162aadbb0149b498cb1b24p-1, + -0x1.3dcb08d3dcb09p-1 + }, + { // Entry 325 + 0x1.2678f93777439d5d9ad904ba063ecb5ep-1, + 0x1.4f72c234f72c2p-1 + }, + { // Entry 326 + -0x1.2678f93777439d5d9ad904ba063ecb5ep-1, + -0x1.4f72c234f72c2p-1 + }, + { // Entry 327 + 0x1.320da7c091ef4552ae755c643a3b4933p-1, + 0x1.611a7b9611a7bp-1 + }, + { // Entry 328 + -0x1.320da7c091ef4552ae755c643a3b4933p-1, + -0x1.611a7b9611a7bp-1 + }, + { // Entry 329 + 0x1.3d2aa22040bdd68238402204b98c4e93p-1, + 0x1.72c234f72c234p-1 + }, + { // Entry 330 + -0x1.3d2aa22040bdd68238402204b98c4e93p-1, + -0x1.72c234f72c234p-1 + }, + { // Entry 331 + 0x1.47d0a82acb4267d301a5dffb3c9a40b2p-1, + 0x1.8469ee58469edp-1 + }, + { // Entry 332 + -0x1.47d0a82acb4267d301a5dffb3c9a40b2p-1, + -0x1.8469ee58469edp-1 + }, + { // Entry 333 + 0x1.5200f4a602b2eebb2c2d9b4d031da2b3p-1, + 0x1.9611a7b9611a6p-1 + }, + { // Entry 334 + -0x1.5200f4a602b2eebb2c2d9b4d031da2b3p-1, + -0x1.9611a7b9611a6p-1 + }, + { // Entry 335 + 0x1.5bbd30c7183021dd4ae1af94efeb7351p-1, + 0x1.a7b9611a7b95fp-1 + }, + { // Entry 336 + -0x1.5bbd30c7183021dd4ae1af94efeb7351p-1, + -0x1.a7b9611a7b95fp-1 + }, + { // Entry 337 + 0x1.650767b19bab5c9a85115d59c1bbbbecp-1, + 0x1.b9611a7b96118p-1 + }, + { // Entry 338 + -0x1.650767b19bab5c9a85115d59c1bbbbecp-1, + -0x1.b9611a7b96118p-1 + }, + { // Entry 339 + 0x1.6de1fa2868b7da01452d1e472d0223d9p-1, + 0x1.cb08d3dcb08d1p-1 + }, + { // Entry 340 + -0x1.6de1fa2868b7da01452d1e472d0223d9p-1, + -0x1.cb08d3dcb08d1p-1 + }, + { // Entry 341 + 0x1.764f9299df20114d026ebd244b4e904ap-1, + 0x1.dcb08d3dcb08ap-1 + }, + { // Entry 342 + -0x1.764f9299df20114d026ebd244b4e904ap-1, + -0x1.dcb08d3dcb08ap-1 + }, + { // Entry 343 + 0x1.7e5319a96b6639eb0ade7fa028ee0d3bp-1, + 0x1.ee58469ee5843p-1 + }, + { // Entry 344 + -0x1.7e5319a96b6639eb0ade7fa028ee0d3bp-1, + -0x1.ee58469ee5843p-1 + }, + { // Entry 345 + 0x1.85efab514f392a77871c49877ccdbfbep-1, + 0x1.ffffffffffffcp-1 + }, + { // Entry 346 + -0x1.85efab514f392a77871c49877ccdbfbep-1, + -0x1.ffffffffffffcp-1 + }, + { // Entry 347 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0p100 + }, + { // Entry 348 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p100 + }, + { // Entry 349 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0d79435e50d79p100 + }, + { // Entry 350 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0d79435e50d79p100 + }, + { // Entry 351 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.1af286bca1af2p100 + }, + { // Entry 352 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.1af286bca1af2p100 + }, + { // Entry 353 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.286bca1af286bp100 + }, + { // Entry 354 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.286bca1af286bp100 + }, + { // Entry 355 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.35e50d79435e4p100 + }, + { // Entry 356 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.35e50d79435e4p100 + }, + { // Entry 357 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.435e50d79435dp100 + }, + { // Entry 358 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.435e50d79435dp100 + }, + { // Entry 359 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.50d79435e50d6p100 + }, + { // Entry 360 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.50d79435e50d6p100 + }, + { // Entry 361 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.5e50d79435e4fp100 + }, + { // Entry 362 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.5e50d79435e4fp100 + }, + { // Entry 363 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.6bca1af286bc8p100 + }, + { // Entry 364 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.6bca1af286bc8p100 + }, + { // Entry 365 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.79435e50d7941p100 + }, + { // Entry 366 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.79435e50d7941p100 + }, + { // Entry 367 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.86bca1af286bap100 + }, + { // Entry 368 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.86bca1af286bap100 + }, + { // Entry 369 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.9435e50d79433p100 + }, + { // Entry 370 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9435e50d79433p100 + }, + { // Entry 371 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.a1af286bca1acp100 + }, + { // Entry 372 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.a1af286bca1acp100 + }, + { // Entry 373 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.af286bca1af25p100 + }, + { // Entry 374 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.af286bca1af25p100 + }, + { // Entry 375 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.bca1af286bc9ep100 + }, + { // Entry 376 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.bca1af286bc9ep100 + }, + { // Entry 377 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ca1af286bca17p100 + }, + { // Entry 378 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ca1af286bca17p100 + }, + { // Entry 379 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.d79435e50d790p100 + }, + { // Entry 380 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.d79435e50d790p100 + }, + { // Entry 381 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.e50d79435e509p100 + }, + { // Entry 382 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.e50d79435e509p100 + }, + { // Entry 383 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.f286bca1af282p100 + }, + { // Entry 384 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.f286bca1af282p100 + }, + { // Entry 385 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ffffffffffffbp100 + }, + { // Entry 386 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffbp100 + }, + { // Entry 387 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0p200 + }, + { // Entry 388 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p200 + }, + { // Entry 389 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0d79435e50d79p200 + }, + { // Entry 390 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0d79435e50d79p200 + }, + { // Entry 391 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.1af286bca1af2p200 + }, + { // Entry 392 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.1af286bca1af2p200 + }, + { // Entry 393 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.286bca1af286bp200 + }, + { // Entry 394 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.286bca1af286bp200 + }, + { // Entry 395 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.35e50d79435e4p200 + }, + { // Entry 396 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.35e50d79435e4p200 + }, + { // Entry 397 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.435e50d79435dp200 + }, + { // Entry 398 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.435e50d79435dp200 + }, + { // Entry 399 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.50d79435e50d6p200 + }, + { // Entry 400 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.50d79435e50d6p200 + }, + { // Entry 401 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.5e50d79435e4fp200 + }, + { // Entry 402 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.5e50d79435e4fp200 + }, + { // Entry 403 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.6bca1af286bc8p200 + }, + { // Entry 404 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.6bca1af286bc8p200 + }, + { // Entry 405 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.79435e50d7941p200 + }, + { // Entry 406 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.79435e50d7941p200 + }, + { // Entry 407 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.86bca1af286bap200 + }, + { // Entry 408 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.86bca1af286bap200 + }, + { // Entry 409 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.9435e50d79433p200 + }, + { // Entry 410 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9435e50d79433p200 + }, + { // Entry 411 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.a1af286bca1acp200 + }, + { // Entry 412 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.a1af286bca1acp200 + }, + { // Entry 413 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.af286bca1af25p200 + }, + { // Entry 414 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.af286bca1af25p200 + }, + { // Entry 415 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.bca1af286bc9ep200 + }, + { // Entry 416 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.bca1af286bc9ep200 + }, + { // Entry 417 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ca1af286bca17p200 + }, + { // Entry 418 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ca1af286bca17p200 + }, + { // Entry 419 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.d79435e50d790p200 + }, + { // Entry 420 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.d79435e50d790p200 + }, + { // Entry 421 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.e50d79435e509p200 + }, + { // Entry 422 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.e50d79435e509p200 + }, + { // Entry 423 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.f286bca1af282p200 + }, + { // Entry 424 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.f286bca1af282p200 + }, + { // Entry 425 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ffffffffffffbp200 + }, + { // Entry 426 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffbp200 + }, + { // Entry 427 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0p1000 + }, + { // Entry 428 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p1000 + }, + { // Entry 429 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0d79435e50d79p1000 + }, + { // Entry 430 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0d79435e50d79p1000 + }, + { // Entry 431 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.1af286bca1af2p1000 + }, + { // Entry 432 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.1af286bca1af2p1000 + }, + { // Entry 433 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.286bca1af286bp1000 + }, + { // Entry 434 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.286bca1af286bp1000 + }, + { // Entry 435 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.35e50d79435e4p1000 + }, + { // Entry 436 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.35e50d79435e4p1000 + }, + { // Entry 437 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.435e50d79435dp1000 + }, + { // Entry 438 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.435e50d79435dp1000 + }, + { // Entry 439 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.50d79435e50d6p1000 + }, + { // Entry 440 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.50d79435e50d6p1000 + }, + { // Entry 441 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.5e50d79435e4fp1000 + }, + { // Entry 442 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.5e50d79435e4fp1000 + }, + { // Entry 443 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.6bca1af286bc8p1000 + }, + { // Entry 444 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.6bca1af286bc8p1000 + }, + { // Entry 445 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.79435e50d7941p1000 + }, + { // Entry 446 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.79435e50d7941p1000 + }, + { // Entry 447 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.86bca1af286bap1000 + }, + { // Entry 448 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.86bca1af286bap1000 + }, + { // Entry 449 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.9435e50d79433p1000 + }, + { // Entry 450 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9435e50d79433p1000 + }, + { // Entry 451 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.a1af286bca1acp1000 + }, + { // Entry 452 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.a1af286bca1acp1000 + }, + { // Entry 453 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.af286bca1af25p1000 + }, + { // Entry 454 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.af286bca1af25p1000 + }, + { // Entry 455 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.bca1af286bc9ep1000 + }, + { // Entry 456 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.bca1af286bc9ep1000 + }, + { // Entry 457 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ca1af286bca17p1000 + }, + { // Entry 458 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ca1af286bca17p1000 + }, + { // Entry 459 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.d79435e50d790p1000 + }, + { // Entry 460 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.d79435e50d790p1000 + }, + { // Entry 461 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.e50d79435e509p1000 + }, + { // Entry 462 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.e50d79435e509p1000 + }, + { // Entry 463 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.f286bca1af282p1000 + }, + { // Entry 464 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.f286bca1af282p1000 + }, + { // Entry 465 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ffffffffffffbp1000 + }, + { // Entry 466 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffbp1000 + }, + { // Entry 467 + -0.0, + -0x1.0p-1074 + }, + { // Entry 468 + 0.0, + 0x1.0p-1074 + }, + { // Entry 469 + -0.0, + -0.0 + }, + { // Entry 470 + 0.0, + 0x1.0p-1074 + }, + { // Entry 471 + -0.0, + -0x1.0p-1074 + }, + { // Entry 472 + 0x1.d9353d7568af29bbdeb6502490ea91f5p-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 473 + -0x1.d9353d7568af29bbdeb6502490ea91f5p-2, + -0x1.fffffffffffffp-2 + }, + { // Entry 474 + 0x1.d9353d7568af365128ee21c65b08d3a7p-2, + 0x1.0p-1 + }, + { // Entry 475 + -0x1.d9353d7568af365128ee21c65b08d3a7p-2, + -0x1.0p-1 + }, + { // Entry 476 + 0x1.d9353d7568af4f7bbd5dc509eeb9c854p-2, + 0x1.0000000000001p-1 + }, + { // Entry 477 + -0x1.d9353d7568af4f7bbd5dc509eeb9c854p-2, + -0x1.0000000000001p-1 + }, + { // Entry 478 + 0x1.ffffffffffffd9ce09d9ac0077339fccp-2, + 0x1.193ea7aad0309p-1 + }, + { // Entry 479 + -0x1.ffffffffffffd9ce09d9ac0077339fccp-2, + -0x1.193ea7aad0309p-1 + }, + { // Entry 480 + 0x1.fffffffffffff1ce09d9ac0078052f7dp-2, + 0x1.193ea7aad030ap-1 + }, + { // Entry 481 + -0x1.fffffffffffff1ce09d9ac0078052f7dp-2, + -0x1.193ea7aad030ap-1 + }, + { // Entry 482 + 0x1.00000000000004e704ecd6003c0b5f97p-1, + 0x1.193ea7aad030bp-1 + }, + { // Entry 483 + -0x1.00000000000004e704ecd6003c0b5f97p-1, + -0x1.193ea7aad030bp-1 + }, + { // Entry 484 + 0x1.fffffffffffffffa422f887a2db9896bp-1, + 0x1.5ffffffffffffp4 + }, + { // Entry 485 + -0x1.fffffffffffffffa422f887a2db9896bp-1, + -0x1.5ffffffffffffp4 + }, + { // Entry 486 + 0x1.fffffffffffffffa422f887a2dc5050cp-1, + 0x1.6p4 + }, + { // Entry 487 + -0x1.fffffffffffffffa422f887a2dc5050cp-1, + -0x1.6p4 + }, + { // Entry 488 + 0x1.fffffffffffffffa422f887a2dd080adp-1, + 0x1.6000000000001p4 + }, + { // Entry 489 + -0x1.fffffffffffffffa422f887a2dd080adp-1, + -0x1.6000000000001p4 + }, + { // Entry 490 + -0x1.3333333333333b4d120fbdf5bd629059p-1, + -0x1.62e42fefa39f0p-1 + }, + { // Entry 491 + 0x1.3333333333333b4d120fbdf5bd629059p-1, + 0x1.62e42fefa39f0p-1 + }, + { // Entry 492 + -0x1.333333333333310fa16be6eb800e8ac1p-1, + -0x1.62e42fefa39efp-1 + }, + { // Entry 493 + 0x1.333333333333310fa16be6eb800e8ac1p-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 494 + -0x1.33333333333326d230c80fe142583755p-1, + -0x1.62e42fefa39eep-1 + }, + { // Entry 495 + 0x1.33333333333326d230c80fe142583755p-1, + 0x1.62e42fefa39eep-1 + }, + { // Entry 496 + -0x1.5555555555556095b587a4471560a40bp-2, + -0x1.62e42fefa39f0p-2 + }, + { // Entry 497 + 0x1.5555555555556095b587a4471560a40bp-2, + 0x1.62e42fefa39f0p-2 + }, + { // Entry 498 + -0x1.555555555555525cd1f96b638732caf9p-2, + -0x1.62e42fefa39efp-2 + }, + { // Entry 499 + 0x1.555555555555525cd1f96b638732caf9p-2, + 0x1.62e42fefa39efp-2 + }, + { // Entry 500 + -0x1.5555555555554423ee6b327ff8df04ddp-2, + -0x1.62e42fefa39eep-2 + }, + { // Entry 501 + 0x1.5555555555554423ee6b327ff8df04ddp-2, + 0x1.62e42fefa39eep-2 + }, + { // Entry 502 + -0x1.5f619980c4337bbdd8e8c2066bb51eb7p-3, + -0x1.62e42fefa39f0p-3 + }, + { // Entry 503 + 0x1.5f619980c4337bbdd8e8c2066bb51eb7p-3, + 0x1.62e42fefa39f0p-3 + }, + { // Entry 504 + -0x1.5f619980c4336c366c1acb38d4f1b2bdp-3, + -0x1.62e42fefa39efp-3 + }, + { // Entry 505 + 0x1.5f619980c4336c366c1acb38d4f1b2bdp-3, + 0x1.62e42fefa39efp-3 + }, + { // Entry 506 + -0x1.5f619980c4335caeff4cd46b3e239e77p-3, + -0x1.62e42fefa39eep-3 + }, + { // Entry 507 + 0x1.5f619980c4335caeff4cd46b3e239e77p-3, + 0x1.62e42fefa39eep-3 + }, + { // Entry 508 + -0x1.620185e5621414c6823c701f4e8d83f5p-4, + -0x1.62e42fefa39f0p-4 + }, + { // Entry 509 + 0x1.620185e5621414c6823c701f4e8d83f5p-4, + 0x1.62e42fefa39f0p-4 + }, + { // Entry 510 + -0x1.620185e5621404e51abfd52a9fb35582p-4, + -0x1.62e42fefa39efp-4 + }, + { // Entry 511 + 0x1.620185e5621404e51abfd52a9fb35582p-4, + 0x1.62e42fefa39efp-4 + }, + { // Entry 512 + -0x1.620185e56213f503b3433a35f0d66857p-4, + -0x1.62e42fefa39eep-4 + }, + { // Entry 513 + 0x1.620185e56213f503b3433a35f0d66857p-4, + 0x1.62e42fefa39eep-4 + }, + { // Entry 514 + -0x1.62ab64c8162a91fbc4d3da77194b3135p-5, + -0x1.62e42fefa39f0p-5 + }, + { // Entry 515 + 0x1.62ab64c8162a91fbc4d3da77194b3135p-5, + 0x1.62e42fefa39f0p-5 + }, + { // Entry 516 + -0x1.62ab64c8162a8203724db05bba6bf1f1p-5, + -0x1.62e42fefa39efp-5 + }, + { // Entry 517 + 0x1.62ab64c8162a8203724db05bba6bf1f1p-5, + 0x1.62e42fefa39efp-5 + }, + { // Entry 518 + -0x1.62ab64c8162a720b1fc786405b8c01adp-5, + -0x1.62e42fefa39eep-5 + }, + { // Entry 519 + 0x1.62ab64c8162a720b1fc786405b8c01adp-5, + 0x1.62e42fefa39eep-5 + }, + { // Entry 520 + -0x1.62d5fb19f39d32db543feb53c0c8af33p-6, + -0x1.62e42fefa39f0p-6 + }, + { // Entry 521 + 0x1.62d5fb19f39d32db543feb53c0c8af33p-6, + 0x1.62e42fefa39f0p-6 + }, + { // Entry 522 + -0x1.62d5fb19f39d22dd401468a35602a39dp-6, + -0x1.62e42fefa39efp-6 + }, + { // Entry 523 + 0x1.62d5fb19f39d22dd401468a35602a39dp-6, + 0x1.62e42fefa39efp-6 + }, + { // Entry 524 + -0x1.62d5fb19f39d12df2be8e5f2eb3c6bb2p-6, + -0x1.62e42fefa39eep-6 + }, + { // Entry 525 + 0x1.62d5fb19f39d12df2be8e5f2eb3c6bb2p-6, + 0x1.62e42fefa39eep-6 + }, + { // Entry 526 + 0x1.62d5fb19f39d12df2be8e5f2eb3c6bb2p-6, + 0x1.62e42fefa39eep-6 + }, + { // Entry 527 + -0x1.62d5fb19f39d12df2be8e5f2eb3c6bb2p-6, + -0x1.62e42fefa39eep-6 + }, + { // Entry 528 + 0x1.62d5fb19f39d22dd401468a35602a39dp-6, + 0x1.62e42fefa39efp-6 + }, + { // Entry 529 + -0x1.62d5fb19f39d22dd401468a35602a39dp-6, + -0x1.62e42fefa39efp-6 + }, + { // Entry 530 + 0x1.62d5fb19f39d32db543feb53c0c8af33p-6, + 0x1.62e42fefa39f0p-6 + }, + { // Entry 531 + -0x1.62d5fb19f39d32db543feb53c0c8af33p-6, + -0x1.62e42fefa39f0p-6 + }, + { // Entry 532 + 0x1.62ab64c8162a720b1fc786405b8c01adp-5, + 0x1.62e42fefa39eep-5 + }, + { // Entry 533 + -0x1.62ab64c8162a720b1fc786405b8c01adp-5, + -0x1.62e42fefa39eep-5 + }, + { // Entry 534 + 0x1.62ab64c8162a8203724db05bba6bf1f1p-5, + 0x1.62e42fefa39efp-5 + }, + { // Entry 535 + -0x1.62ab64c8162a8203724db05bba6bf1f1p-5, + -0x1.62e42fefa39efp-5 + }, + { // Entry 536 + 0x1.62ab64c8162a91fbc4d3da77194b3135p-5, + 0x1.62e42fefa39f0p-5 + }, + { // Entry 537 + -0x1.62ab64c8162a91fbc4d3da77194b3135p-5, + -0x1.62e42fefa39f0p-5 + }, + { // Entry 538 + 0x1.620185e56213f503b3433a35f0d66857p-4, + 0x1.62e42fefa39eep-4 + }, + { // Entry 539 + -0x1.620185e56213f503b3433a35f0d66857p-4, + -0x1.62e42fefa39eep-4 + }, + { // Entry 540 + 0x1.620185e5621404e51abfd52a9fb35582p-4, + 0x1.62e42fefa39efp-4 + }, + { // Entry 541 + -0x1.620185e5621404e51abfd52a9fb35582p-4, + -0x1.62e42fefa39efp-4 + }, + { // Entry 542 + 0x1.620185e5621414c6823c701f4e8d83f5p-4, + 0x1.62e42fefa39f0p-4 + }, + { // Entry 543 + -0x1.620185e5621414c6823c701f4e8d83f5p-4, + -0x1.62e42fefa39f0p-4 + }, + { // Entry 544 + 0x1.5f619980c4335caeff4cd46b3e239e77p-3, + 0x1.62e42fefa39eep-3 + }, + { // Entry 545 + -0x1.5f619980c4335caeff4cd46b3e239e77p-3, + -0x1.62e42fefa39eep-3 + }, + { // Entry 546 + 0x1.5f619980c4336c366c1acb38d4f1b2bdp-3, + 0x1.62e42fefa39efp-3 + }, + { // Entry 547 + -0x1.5f619980c4336c366c1acb38d4f1b2bdp-3, + -0x1.62e42fefa39efp-3 + }, + { // Entry 548 + 0x1.5f619980c4337bbdd8e8c2066bb51eb7p-3, + 0x1.62e42fefa39f0p-3 + }, + { // Entry 549 + -0x1.5f619980c4337bbdd8e8c2066bb51eb7p-3, + -0x1.62e42fefa39f0p-3 + }, + { // Entry 550 + 0x1.5555555555554423ee6b327ff8df04ddp-2, + 0x1.62e42fefa39eep-2 + }, + { // Entry 551 + -0x1.5555555555554423ee6b327ff8df04ddp-2, + -0x1.62e42fefa39eep-2 + }, + { // Entry 552 + 0x1.555555555555525cd1f96b638732caf9p-2, + 0x1.62e42fefa39efp-2 + }, + { // Entry 553 + -0x1.555555555555525cd1f96b638732caf9p-2, + -0x1.62e42fefa39efp-2 + }, + { // Entry 554 + 0x1.5555555555556095b587a4471560a40bp-2, + 0x1.62e42fefa39f0p-2 + }, + { // Entry 555 + -0x1.5555555555556095b587a4471560a40bp-2, + -0x1.62e42fefa39f0p-2 + }, + { // Entry 556 + 0x1.33333333333326d230c80fe142583755p-1, + 0x1.62e42fefa39eep-1 + }, + { // Entry 557 + -0x1.33333333333326d230c80fe142583755p-1, + -0x1.62e42fefa39eep-1 + }, + { // Entry 558 + 0x1.333333333333310fa16be6eb800e8ac1p-1, + 0x1.62e42fefa39efp-1 + }, + { // Entry 559 + -0x1.333333333333310fa16be6eb800e8ac1p-1, + -0x1.62e42fefa39efp-1 + }, + { // Entry 560 + 0x1.3333333333333b4d120fbdf5bd629059p-1, + 0x1.62e42fefa39f0p-1 + }, + { // Entry 561 + -0x1.3333333333333b4d120fbdf5bd629059p-1, + -0x1.62e42fefa39f0p-1 + }, + { // Entry 562 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42fefa39eep9 + }, + { // Entry 563 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42fefa39eep9 + }, + { // Entry 564 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42fefa39efp9 + }, + { // Entry 565 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42fefa39efp9 + }, + { // Entry 566 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42fefa39f0p9 + }, + { // Entry 567 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42fefa39f0p9 + }, + { // Entry 568 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.72e42fefa39f0p9 + }, + { // Entry 569 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.72e42fefa39f0p9 + }, + { // Entry 570 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.72e42fefa39efp9 + }, + { // Entry 571 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.72e42fefa39efp9 + }, + { // Entry 572 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.72e42fefa39eep9 + }, + { // Entry 573 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.72e42fefa39eep9 + }, + { // Entry 574 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.633ce8fb9f87cp9 + }, + { // Entry 575 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.633ce8fb9f87cp9 + }, + { // Entry 576 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.633ce8fb9f87dp9 + }, + { // Entry 577 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.633ce8fb9f87dp9 + }, + { // Entry 578 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.633ce8fb9f87ep9 + }, + { // Entry 579 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.633ce8fb9f87ep9 + }, + { // Entry 580 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42fefa39f0p9 + }, + { // Entry 581 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42fefa39f0p9 + }, + { // Entry 582 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42fefa39efp9 + }, + { // Entry 583 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42fefa39efp9 + }, + { // Entry 584 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42fefa39eep9 + }, + { // Entry 585 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42fefa39eep9 + }, + { // Entry 586 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffffffffffp62 + }, + { // Entry 587 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp62 + }, + { // Entry 588 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0p63 + }, + { // Entry 589 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p63 + }, + { // Entry 590 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0000000000001p63 + }, + { // Entry 591 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0000000000001p63 + }, + { // Entry 592 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffffffffffp26 + }, + { // Entry 593 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp26 + }, + { // Entry 594 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0p27 + }, + { // Entry 595 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p27 + }, + { // Entry 596 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0000000000001p27 + }, + { // Entry 597 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0000000000001p27 + }, + { // Entry 598 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffffffffffp23 + }, + { // Entry 599 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp23 + }, + { // Entry 600 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0p24 + }, + { // Entry 601 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0p24 + }, + { // Entry 602 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0000000000001p24 + }, + { // Entry 603 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0000000000001p24 + }, + { // Entry 604 + 0x1.ffffffffffffffffffffffcd2c5719bcp-1, + 0x1.fffffffffffffp4 + }, + { // Entry 605 + -0x1.ffffffffffffffffffffffcd2c5719bcp-1, + -0x1.fffffffffffffp4 + }, + { // Entry 606 + 0x1.ffffffffffffffffffffffcd2c5719bcp-1, + 0x1.0p5 + }, + { // Entry 607 + -0x1.ffffffffffffffffffffffcd2c5719bcp-1, + -0x1.0p5 + }, + { // Entry 608 + 0x1.ffffffffffffffffffffffcd2c5719bcp-1, + 0x1.0000000000001p5 + }, + { // Entry 609 + -0x1.ffffffffffffffffffffffcd2c5719bcp-1, + -0x1.0000000000001p5 + }, + { // Entry 610 + 0x1.fffffffffff1bdcd844f4df082619d92p-1, + 0x1.fffffffffffffp3 + }, + { // Entry 611 + -0x1.fffffffffff1bdcd844f4df082619d92p-1, + -0x1.fffffffffffffp3 + }, + { // Entry 612 + 0x1.fffffffffff1bdcd844f4dfec4941943p-1, + 0x1.0p4 + }, + { // Entry 613 + -0x1.fffffffffff1bdcd844f4dfec4941943p-1, + -0x1.0p4 + }, + { // Entry 614 + 0x1.fffffffffff1bdcd844f4e1b48f910a4p-1, + 0x1.0000000000001p4 + }, + { // Entry 615 + -0x1.fffffffffff1bdcd844f4e1b48f910a4p-1, + -0x1.0000000000001p4 + }, + { // Entry 616 + 0x1.fffff872a91f8690ea47c1d1bd107d6ep-1, + 0x1.fffffffffffffp2 + }, + { // Entry 617 + -0x1.fffff872a91f8690ea47c1d1bd107d6ep-1, + -0x1.fffffffffffffp2 + }, + { // Entry 618 + 0x1.fffff872a91f8690ee0e6d3ad8aee46bp-1, + 0x1.0p3 + }, + { // Entry 619 + -0x1.fffff872a91f8690ee0e6d3ad8aee46bp-1, + -0x1.0p3 + }, + { // Entry 620 + 0x1.fffff872a91f8690f59bc40d0febacbdp-1, + 0x1.0000000000001p3 + }, + { // Entry 621 + -0x1.fffff872a91f8690f59bc40d0febacbdp-1, + -0x1.0000000000001p3 + }, + { // Entry 622 + 0x1.ffa81708a0b421525ec9970925cd4155p-1, + 0x1.fffffffffffffp1 + }, + { // Entry 623 + -0x1.ffa81708a0b421525ec9970925cd4155p-1, + -0x1.fffffffffffffp1 + }, + { // Entry 624 + 0x1.ffa81708a0b4216857246c19dc60acb8p-1, + 0x1.0p2 + }, + { // Entry 625 + -0x1.ffa81708a0b4216857246c19dc60acb8p-1, + -0x1.0p2 + }, + { // Entry 626 + 0x1.ffa81708a0b4219447da163b49770c0ep-1, + 0x1.0000000000001p2 + }, + { // Entry 627 + -0x1.ffa81708a0b4219447da163b49770c0ep-1, + -0x1.0000000000001p2 + }, + { // Entry 628 + 0x1.ed9505e1bc3d3af0feae367ddede350ep-1, + 0x1.fffffffffffffp0 + }, + { // Entry 629 + -0x1.ed9505e1bc3d3af0feae367ddede350ep-1, + -0x1.fffffffffffffp0 + }, + { // Entry 630 + 0x1.ed9505e1bc3d3d33c432fc3e8255c8b5p-1, + 0x1.0p1 + }, + { // Entry 631 + -0x1.ed9505e1bc3d3d33c432fc3e8255c8b5p-1, + -0x1.0p1 + }, + { // Entry 632 + 0x1.ed9505e1bc3d41b94f3c87bfc873b4a6p-1, + 0x1.0000000000001p1 + }, + { // Entry 633 + -0x1.ed9505e1bc3d41b94f3c87bfc873b4a6p-1, + -0x1.0000000000001p1 + }, + { // Entry 634 + 0x1.85efab514f393ea02c27fc50b2cbbe65p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 635 + -0x1.85efab514f393ea02c27fc50b2cbbe65p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 636 + 0x1.85efab514f394558632be293c4274fe6p-1, + 0x1.0p0 + }, + { // Entry 637 + -0x1.85efab514f394558632be293c4274fe6p-1, + -0x1.0p0 + }, + { // Entry 638 + 0x1.85efab514f3952c8d133af19e5e8cdd6p-1, + 0x1.0000000000001p0 + }, + { // Entry 639 + -0x1.85efab514f3952c8d133af19e5e8cdd6p-1, + -0x1.0000000000001p0 + }, + { // Entry 640 + 0x1.d9353d7568af29bbdeb6502490ea91f5p-2, + 0x1.fffffffffffffp-2 + }, + { // Entry 641 + -0x1.d9353d7568af29bbdeb6502490ea91f5p-2, + -0x1.fffffffffffffp-2 + }, + { // Entry 642 + 0x1.d9353d7568af365128ee21c65b08d3a7p-2, + 0x1.0p-1 + }, + { // Entry 643 + -0x1.d9353d7568af365128ee21c65b08d3a7p-2, + -0x1.0p-1 + }, + { // Entry 644 + 0x1.d9353d7568af4f7bbd5dc509eeb9c854p-2, + 0x1.0000000000001p-1 + }, + { // Entry 645 + -0x1.d9353d7568af4f7bbd5dc509eeb9c854p-2, + -0x1.0000000000001p-1 + }, + { // Entry 646 + 0x1.f597ea69a1c850090bd4877911ae9956p-3, + 0x1.fffffffffffffp-3 + }, + { // Entry 647 + -0x1.f597ea69a1c850090bd4877911ae9956p-3, + -0x1.fffffffffffffp-3 + }, + { // Entry 648 + 0x1.f597ea69a1c85f1358d71d84729c80c8p-3, + 0x1.0p-2 + }, + { // Entry 649 + -0x1.f597ea69a1c85f1358d71d84729c80c8p-3, + -0x1.0p-2 + }, + { // Entry 650 + 0x1.f597ea69a1c87d27f2dc499b344c1b8cp-3, + 0x1.0000000000001p-2 + }, + { // Entry 651 + -0x1.f597ea69a1c87d27f2dc499b344c1b8cp-3, + -0x1.0000000000001p-2 + }, + { // Entry 652 + 0x1.fd5992bc4b834000063fd671ecd5ebeep-4, + 0x1.fffffffffffffp-4 + }, + { // Entry 653 + -0x1.fd5992bc4b834000063fd671ecd5ebeep-4, + -0x1.fffffffffffffp-4 + }, + { // Entry 654 + 0x1.fd5992bc4b834fc0af6ac8eff7d81040p-4, + 0x1.0p-3 + }, + { // Entry 655 + -0x1.fd5992bc4b834fc0af6ac8eff7d81040p-4, + -0x1.0p-3 + }, + { // Entry 656 + 0x1.fd5992bc4b836f4201c0adec0dd0980dp-4, + 0x1.0000000000001p-3 + }, + { // Entry 657 + -0x1.fd5992bc4b836f4201c0adec0dd0980dp-4, + -0x1.0000000000001p-3 + }, + { // Entry 658 + 0x1.ff55997e030d60692ab487c7d22013f6p-5, + 0x1.fffffffffffffp-5 + }, + { // Entry 659 + -0x1.ff55997e030d60692ab487c7d22013f6p-5, + -0x1.fffffffffffffp-5 + }, + { // Entry 660 + 0x1.ff55997e030d705935592a366a8a66d4p-5, + 0x1.0p-4 + }, + { // Entry 661 + -0x1.ff55997e030d705935592a366a8a66d4p-5, + -0x1.0p-4 + }, + { // Entry 662 + 0x1.ff55997e030d90394aa26f139b5c108ep-5, + 0x1.0000000000001p-4 + }, + { // Entry 663 + -0x1.ff55997e030d90394aa26f139b5c108ep-5, + -0x1.0000000000001p-4 + }, + { // Entry 664 + 0x1.ffd559992b1dd287055184b7d46402dap-6, + 0x1.fffffffffffffp-6 + }, + { // Entry 665 + -0x1.ffd559992b1dd287055184b7d46402dap-6, + -0x1.fffffffffffffp-6 + }, + { // Entry 666 + 0x1.ffd559992b1de28305fc17382205392ep-6, + 0x1.0p-5 + }, + { // Entry 667 + -0x1.ffd559992b1de28305fc17382205392ep-6, + -0x1.0p-5 + }, + { // Entry 668 + 0x1.ffd559992b1e027b07513c38bd46e616p-6, + 0x1.0000000000001p-5 + }, + { // Entry 669 + -0x1.ffd559992b1e027b07513c38bd46e616p-6, + -0x1.0000000000001p-5 + }, + { // Entry 670 + 0x1.fff5559997df792b111dad0e4c36a1efp-7, + 0x1.fffffffffffffp-7 + }, + { // Entry 671 + -0x1.fff5559997df792b111dad0e4c36a1efp-7, + -0x1.fffffffffffffp-7 + }, + { // Entry 672 + 0x1.fff5559997df892a1128575843fc0d52p-7, + 0x1.0p-6 + }, + { // Entry 673 + -0x1.fff5559997df892a1128575843fc0d52p-7, + -0x1.0p-6 + }, + { // Entry 674 + 0x1.fff5559997dfa928113dabec3386b41bp-7, + 0x1.0000000000001p-6 + }, + { // Entry 675 + -0x1.fff5559997dfa928113dabec3386b41bp-7, + -0x1.0000000000001p-6 + }, + { // Entry 676 + 0x1.fffffff555554599999a97df7ded4005p-15, + 0x1.fffffffffffffp-15 + }, + { // Entry 677 + -0x1.fffffff555554599999a97df7ded4005p-15, + -0x1.fffffffffffffp-15 + }, + { // Entry 678 + 0x1.fffffff555555599999997df7df7eab0p-15, + 0x1.0p-14 + }, + { // Entry 679 + -0x1.fffffff555555599999997df7df7eab0p-15, + -0x1.0p-14 + }, + { // Entry 680 + 0x1.fffffff555557599999797df7e0d4005p-15, + 0x1.0000000000001p-14 + }, + { // Entry 681 + -0x1.fffffff555557599999797df7e0d4005p-15, + -0x1.0000000000001p-14 + }, + { // Entry 682 + 0x1.ffffffffffffeff55555555555565599p-31, + 0x1.fffffffffffffp-31 + }, + { // Entry 683 + -0x1.ffffffffffffeff55555555555565599p-31, + -0x1.fffffffffffffp-31 + }, + { // Entry 684 + 0x1.fffffffffffffff55555555555555599p-31, + 0x1.0p-30 + }, + { // Entry 685 + -0x1.fffffffffffffff55555555555555599p-31, + -0x1.0p-30 + }, + { // Entry 686 + 0x1.0000000000000ffaaaaaaaaaaaa9aaccp-30, + 0x1.0000000000001p-30 + }, + { // Entry 687 + -0x1.0000000000000ffaaaaaaaaaaaa9aaccp-30, + -0x1.0000000000001p-30 + }, + { // Entry 688 + 0x1.ffffffffffffeffffffffffffffd5555p-56, + 0x1.fffffffffffffp-56 + }, + { // Entry 689 + -0x1.ffffffffffffeffffffffffffffd5555p-56, + -0x1.fffffffffffffp-56 + }, + { // Entry 690 + 0x1.fffffffffffffffffffffffffffd5555p-56, + 0x1.0p-55 + }, + { // Entry 691 + -0x1.fffffffffffffffffffffffffffd5555p-56, + -0x1.0p-55 + }, + { // Entry 692 + 0x1.0000000000000ffffffffffffffeaaaap-55, + 0x1.0000000000001p-55 + }, + { // Entry 693 + -0x1.0000000000000ffffffffffffffeaaaap-55, + -0x1.0000000000001p-55 + }, + { // Entry 694 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp1023 + }, + { // Entry 695 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffffffffffp1023 + }, + { // Entry 696 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffffffffffp1023 + }, + { // Entry 697 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp1023 + }, + { // Entry 698 + 0x1.p0, + HUGE_VAL + }, + { // Entry 699 + -0x1.p0, + -HUGE_VAL + }, + { // Entry 700 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffffffffffp1023 + }, + { // Entry 701 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffffffffffp1023 + }, + { // Entry 702 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ffffffffffffep1023 + }, + { // Entry 703 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ffffffffffffep1023 + }, + { // Entry 704 + 0x1.fe175fa29280faada6e2c93ea708789ep-1, + 0x1.921fb54442d18p1 + }, + { // Entry 705 + -0x1.fe175fa29280faada6e2c93ea708789ep-1, + -0x1.921fb54442d18p1 + }, + { // Entry 706 + 0x1.d594fdae482b98a703d473d9a8cd44cdp-1, + 0x1.921fb54442d18p0 + }, + { // Entry 707 + -0x1.d594fdae482b98a703d473d9a8cd44cdp-1, + -0x1.921fb54442d18p0 + }, + { // Entry 708 + 0x1.85efab514f3952c8d133af19e5e8cdd6p-1, + 0x1.0000000000001p0 + }, + { // Entry 709 + -0x1.85efab514f3952c8d133af19e5e8cdd6p-1, + -0x1.0000000000001p0 + }, + { // Entry 710 + 0x1.85efab514f394558632be293c4274fe6p-1, + 0x1.0p0 + }, + { // Entry 711 + -0x1.85efab514f394558632be293c4274fe6p-1, + -0x1.0p0 + }, + { // Entry 712 + 0x1.85efab514f393ea02c27fc50b2cbbe65p-1, + 0x1.fffffffffffffp-1 + }, + { // Entry 713 + -0x1.85efab514f393ea02c27fc50b2cbbe65p-1, + -0x1.fffffffffffffp-1 + }, + { // Entry 714 + 0x1.4fc441fa6d6d6195ca63f8eb92d312a4p-1, + 0x1.921fb54442d18p-1 + }, + { // Entry 715 + -0x1.4fc441fa6d6d6195ca63f8eb92d312a4p-1, + -0x1.921fb54442d18p-1 + }, + { // Entry 716 + 0x1.0000000000000fffffffffffffffffffp-1022, + 0x1.0000000000001p-1022 + }, + { // Entry 717 + -0x1.0000000000000fffffffffffffffffffp-1022, + -0x1.0000000000001p-1022 + }, + { // Entry 718 + 0x1.ffffffffffffffffffffffffffffffffp-1023, + 0x1.0p-1022 + }, + { // Entry 719 + -0x1.ffffffffffffffffffffffffffffffffp-1023, + -0x1.0p-1022 + }, + { // Entry 720 + 0x1.ffffffffffffdfffffffffffffffffffp-1023, + 0x1.ffffffffffffep-1023 + }, + { // Entry 721 + -0x1.ffffffffffffdfffffffffffffffffffp-1023, + -0x1.ffffffffffffep-1023 + }, + { // Entry 722 + 0x1.ffffffffffffbfffffffffffffffffffp-1023, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 723 + -0x1.ffffffffffffbfffffffffffffffffffp-1023, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 724 + 0x1.ffffffffffffffffffffffffffffffffp-1074, + 0x1.0p-1073 + }, + { // Entry 725 + -0x1.ffffffffffffffffffffffffffffffffp-1074, + -0x1.0p-1073 + }, + { // Entry 726 + 0.0, + 0x1.0p-1074 + }, + { // Entry 727 + -0.0, + -0x1.0p-1074 + }, + { // Entry 728 + 0.0, + 0.0 + }, + { // Entry 729 + -0.0, + -0.0 + } +}; diff --git a/tests/math_data/tanhf_intel_data.h b/tests/math_data/tanhf_intel_data.h new file mode 100644 index 000000000..be1cd9f80 --- /dev/null +++ b/tests/math_data/tanhf_intel_data.h @@ -0,0 +1,2274 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_tanhf_intel_data[] = { + { // Entry 0 + -0x1.ff5717ff015e292b197aa6a5bd8ead11p-5, + -0x1.0000c0p-4 + }, + { // Entry 1 + 0x1.ff5717ff015e292b197aa6a5bd8ead11p-5, + 0x1.0000c0p-4 + }, + { // Entry 2 + -0x1.fffffc0001871106009b5aaf55c49116p-1, + -0x1.0a2b2ap3 + }, + { // Entry 3 + 0x1.fffffc0001871106009b5aaf55c49116p-1, + 0x1.0a2b2ap3 + }, + { // Entry 4 + -0x1.f2c4e0c5399bd4c3248a88570584900dp-2, + -0x1.107fa4p-1 + }, + { // Entry 5 + 0x1.f2c4e0c5399bd4c3248a88570584900dp-2, + 0x1.107fa4p-1 + }, + { // Entry 6 + -0x1.968428ffd872ecb6c9fd8e70df8a8bfep-1, + -0x1.150498p0 + }, + { // Entry 7 + 0x1.968428ffd872ecb6c9fd8e70df8a8bfep-1, + 0x1.150498p0 + }, + { // Entry 8 + -0x1.fffffdfd7b7e46383ce8fadc5f8ea7eap-1, + -0x1.152e2ep3 + }, + { // Entry 9 + 0x1.fffffdfd7b7e46383ce8fadc5f8ea7eap-1, + 0x1.152e2ep3 + }, + { // Entry 10 + -0x1.189751ff578effbe5ec0f53fb816c705p-4, + -0x1.1908p-4 + }, + { // Entry 11 + 0x1.189751ff578effbe5ec0f53fb816c705p-4, + 0x1.1908p-4 + }, + { // Entry 12 + -0x1.fffffef20b998e5904f90043100cd5d3p-1, + -0x1.1f80p3 + }, + { // Entry 13 + 0x1.fffffef20b998e5904f90043100cd5d3p-1, + 0x1.1f80p3 + }, + { // Entry 14 + -0x1.fff9f601c71a50ea8042b6e535d99676p-1, + -0x1.55b54ep2 + }, + { // Entry 15 + 0x1.fff9f601c71a50ea8042b6e535d99676p-1, + 0x1.55b54ep2 + }, + { // Entry 16 + -0x1.35fec061664b9cf1b7b1484307f84259p-1, + -0x1.674804p-1 + }, + { // Entry 17 + 0x1.35fec061664b9cf1b7b1484307f84259p-1, + 0x1.674804p-1 + }, + { // Entry 18 + -0x1.8d9b1b0128196f89d9531df123a40ff4p-11, + -0x1.8d9b20p-11 + }, + { // Entry 19 + 0x1.8d9b1b0128196f89d9531df123a40ff4p-11, + 0x1.8d9b20p-11 + }, + { // Entry 20 + -0x1.e3b21701a09ce46bedfb3f6e4f5f9a30p-11, + -0x1.e3b220p-11 + }, + { // Entry 21 + 0x1.e3b21701a09ce46bedfb3f6e4f5f9a30p-11, + 0x1.e3b220p-11 + }, + { // Entry 22 + -0x1.fb070301e5b46bfdaf1d2a7bd9573b3cp-8, + -0x1.fb099ap-8 + }, + { // Entry 23 + 0x1.fb070301e5b46bfdaf1d2a7bd9573b3cp-8, + 0x1.fb099ap-8 + }, + { // Entry 24 + -0x1.ff85d977c45b8a463709fc31915c04bap-6, + -0x1.ffb06cp-6 + }, + { // Entry 25 + 0x1.ff85d977c45b8a463709fc31915c04bap-6, + 0x1.ffb06cp-6 + }, + { // Entry 26 + -0x1.ff5517ffac72f276baf86702efd7f0e4p-5, + -0x1.ffff7ep-5 + }, + { // Entry 27 + 0x1.ff5517ffac72f276baf86702efd7f0e4p-5, + 0x1.ffff7ep-5 + }, + { // Entry 28 + 0x1.85efacff5cf7afdba442be92190b551bp-1, + 0x1.000002p0 + }, + { // Entry 29 + -0x1.85efacff5cf7afdba442be92190b551bp-1, + -0x1.000002p0 + }, + { // Entry 30 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.000002p8 + }, + { // Entry 31 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.000002p8 + }, + { // Entry 32 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.000002p40 + }, + { // Entry 33 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.000002p40 + }, + { // Entry 34 + 0x1.ff5717ff015e292b197aa6a5bd8ead11p-5, + 0x1.0000c0p-4 + }, + { // Entry 35 + -0x1.ff5717ff015e292b197aa6a5bd8ead11p-5, + -0x1.0000c0p-4 + }, + { // Entry 36 + 0x1.ffd7b90143bb5d654465fbf6eb08db94p-6, + 0x1.000130p-5 + }, + { // Entry 37 + -0x1.ffd7b90143bb5d654465fbf6eb08db94p-6, + -0x1.000130p-5 + }, + { // Entry 38 + 0x1.ff5816ffa9aaf77b52ddf52d862ee085p-5, + 0x1.000140p-4 + }, + { // Entry 39 + -0x1.ff5816ffa9aaf77b52ddf52d862ee085p-5, + -0x1.000140p-4 + }, + { // Entry 40 + 0x1.fd5c86dbf1ef7c0b7c17b5a5fc9384bap-4, + 0x1.000180p-3 + }, + { // Entry 41 + -0x1.fd5c86dbf1ef7c0b7c17b5a5fc9384bap-4, + -0x1.000180p-3 + }, + { // Entry 42 + 0x1.fff8d56199d2d1496393498af57a65c5p-7, + 0x1.0001c0p-6 + }, + { // Entry 43 + -0x1.fff8d56199d2d1496393498af57a65c5p-7, + -0x1.0001c0p-6 + }, + { // Entry 44 + 0x1.ff5a1500f7488c88a28967ef3279598bp-5, + 0x1.000240p-4 + }, + { // Entry 45 + -0x1.ff5a1500f7488c88a28967ef3279598bp-5, + -0x1.000240p-4 + }, + { // Entry 46 + 0x1.ffdd57997869c223859da246115830a8p-6, + 0x1.0004p-5 + }, + { // Entry 47 + -0x1.ffdd57997869c223859da246115830a8p-6, + -0x1.0004p-5 + }, + { // Entry 48 + 0x1.0003ffffffeaa9aaa6aaa777a223777cp-21, + 0x1.0004p-21 + }, + { // Entry 49 + -0x1.0003ffffffeaa9aaa6aaa777a223777cp-21, + -0x1.0004p-21 + }, + { // Entry 50 + 0x1.fffed101db6291871ee5b1f184662c14p-7, + 0x1.0004bep-6 + }, + { // Entry 51 + -0x1.fffed101db6291871ee5b1f184662c14p-7, + -0x1.0004bep-6 + }, + { // Entry 52 + 0x1.ffa82cfe3d3102474919a811a60807b3p-1, + 0x1.0008p2 + }, + { // Entry 53 + -0x1.ffa82cfe3d3102474919a811a60807b3p-1, + -0x1.0008p2 + }, + { // Entry 54 + 0x1.00718b006b52c2ab11702de3389d77dep-5, + 0x1.0087p-5 + }, + { // Entry 55 + -0x1.00718b006b52c2ab11702de3389d77dep-5, + -0x1.0087p-5 + }, + { // Entry 56 + 0x1.ffaacb36b2dfa869b4fddee9c98dc067p-1, + 0x1.01p2 + }, + { // Entry 57 + -0x1.ffaacb36b2dfa869b4fddee9c98dc067p-1, + -0x1.01p2 + }, + { // Entry 58 + 0x1.fffff900052e44ea345da5965f4d110ep-1, + 0x1.0137p3 + }, + { // Entry 59 + -0x1.fffff900052e44ea345da5965f4d110ep-1, + -0x1.0137p3 + }, + { // Entry 60 + 0x1.fc32f80000dd7b300750a0078a9054c1p-3, + 0x1.03843ep-2 + }, + { // Entry 61 + -0x1.fc32f80000dd7b300750a0078a9054c1p-3, + -0x1.03843ep-2 + }, + { // Entry 62 + 0x1.fd19570002093df94b65683f9a00917fp-3, + 0x1.03ffp-2 + }, + { // Entry 63 + -0x1.fd19570002093df94b65683f9a00917fp-3, + -0x1.03ffp-2 + }, + { // Entry 64 + 0x1.fde5d8ffff80b927d4d76ae1dce6f59bp-3, + 0x1.046cp-2 + }, + { // Entry 65 + -0x1.fde5d8ffff80b927d4d76ae1dce6f59bp-3, + -0x1.046cp-2 + }, + { // Entry 66 + 0x1.feb06fff85b879ae19eb2bc5cf70e031p-3, + 0x1.04d8p-2 + }, + { // Entry 67 + -0x1.feb06fff85b879ae19eb2bc5cf70e031p-3, + -0x1.04d8p-2 + }, + { // Entry 68 + 0x1.e6c426ed700f503e6583df7694a4979bp-2, + 0x1.08b038p-1 + }, + { // Entry 69 + -0x1.e6c426ed700f503e6583df7694a4979bp-2, + -0x1.08b038p-1 + }, + { // Entry 70 + 0x1.fffffc0001871106009b5aaf55c49116p-1, + 0x1.0a2b2ap3 + }, + { // Entry 71 + -0x1.fffffc0001871106009b5aaf55c49116p-1, + -0x1.0a2b2ap3 + }, + { // Entry 72 + 0x1.ffc392f4ab8d534aa69f7c5166cf0366p-1, + 0x1.0cp2 + }, + { // Entry 73 + -0x1.ffc392f4ab8d534aa69f7c5166cf0366p-1, + -0x1.0cp2 + }, + { // Entry 74 + 0x1.0acd33000032a880878690d403afbcbep-3, + 0x1.0c5392p-3 + }, + { // Entry 75 + -0x1.0acd33000032a880878690d403afbcbep-3, + -0x1.0c5392p-3 + }, + { // Entry 76 + 0x1.fffffcfb1bf37b0f791d7a17eb6b0a15p-1, + 0x1.0eab7cp3 + }, + { // Entry 77 + -0x1.fffffcfb1bf37b0f791d7a17eb6b0a15p-1, + -0x1.0eab7cp3 + }, + { // Entry 78 + 0x1.fffffcfb1e37253dc76193d1e1aed817p-1, + 0x1.0eab88p3 + }, + { // Entry 79 + -0x1.fffffcfb1e37253dc76193d1e1aed817p-1, + -0x1.0eab88p3 + }, + { // Entry 80 + 0x1.fffffcfb3902021b406b1ea187844f4bp-1, + 0x1.0eac16p3 + }, + { // Entry 81 + -0x1.fffffcfb3902021b406b1ea187844f4bp-1, + -0x1.0eac16p3 + }, + { // Entry 82 + 0x1.f5443f00c7ad11ba27b4800bc8cff692p-2, + 0x1.12236ap-1 + }, + { // Entry 83 + -0x1.f5443f00c7ad11ba27b4800bc8cff692p-2, + -0x1.12236ap-1 + }, + { // Entry 84 + 0x1.0db18affff41c0dc320851eef3614bffp-2, + 0x1.1433d2p-2 + }, + { // Entry 85 + -0x1.0db18affff41c0dc320851eef3614bffp-2, + -0x1.1433d2p-2 + }, + { // Entry 86 + 0x1.fffffdfdabb86f8672c461c08d04046fp-1, + 0x1.152faep3 + }, + { // Entry 87 + -0x1.fffffdfdabb86f8672c461c08d04046fp-1, + -0x1.152faep3 + }, + { // Entry 88 + 0x1.fa265d240155e5013f12a3b41500189ep-2, + 0x1.155cp-1 + }, + { // Entry 89 + -0x1.fa265d240155e5013f12a3b41500189ep-2, + -0x1.155cp-1 + }, + { // Entry 90 + 0x1.fc9a1a5f9c32905aaf97cba3f8aafaf0p-2, + 0x1.16fcp-1 + }, + { // Entry 91 + -0x1.fc9a1a5f9c32905aaf97cba3f8aafaf0p-2, + -0x1.16fcp-1 + }, + { // Entry 92 + 0x1.155868ffff4152df457a24ad6f413bdfp-3, + 0x1.170f48p-3 + }, + { // Entry 93 + -0x1.155868ffff4152df457a24ad6f413bdfp-3, + -0x1.170f48p-3 + }, + { // Entry 94 + 0x1.177d0f00f641d1e96c79c7abd75269b1p-6, + 0x1.1784p-6 + }, + { // Entry 95 + -0x1.177d0f00f641d1e96c79c7abd75269b1p-6, + -0x1.1784p-6 + }, + { // Entry 96 + 0x1.189751ff578effbe5ec0f53fb816c705p-4, + 0x1.1908p-4 + }, + { // Entry 97 + -0x1.189751ff578effbe5ec0f53fb816c705p-4, + -0x1.1908p-4 + }, + { // Entry 98 + 0x1.1dce250138c3f920efea001b064975a3p-7, + 0x1.1dd0p-7 + }, + { // Entry 99 + -0x1.1dce250138c3f920efea001b064975a3p-7, + -0x1.1dd0p-7 + }, + { // Entry 100 + 0x1.1dda24c562621a0640fe0b86641cd64bp-7, + 0x1.1ddcp-7 + }, + { // Entry 101 + -0x1.1dda24c562621a0640fe0b86641cd64bp-7, + -0x1.1ddcp-7 + }, + { // Entry 102 + 0x1.1fa86e8f695d32c4d8d874744814444dp-6, + 0x1.1fb0p-6 + }, + { // Entry 103 + -0x1.1fa86e8f695d32c4d8d874744814444dp-6, + -0x1.1fb0p-6 + }, + { // Entry 104 + 0x1.a01401001045019528db07ebeec35ef9p-1, + 0x1.2281aap0 + }, + { // Entry 105 + -0x1.a01401001045019528db07ebeec35ef9p-1, + -0x1.2281aap0 + }, + { // Entry 106 + 0x1.aeea270075d91da2ac1928b5d795a866p-1, + 0x1.3a0b6cp0 + }, + { // Entry 107 + -0x1.aeea270075d91da2ac1928b5d795a866p-1, + -0x1.3a0b6cp0 + }, + { // Entry 108 + 0x1.58840500489a56042910d82b4425107cp-10, + 0x1.588412p-10 + }, + { // Entry 109 + -0x1.58840500489a56042910d82b4425107cp-10, + -0x1.588412p-10 + }, + { // Entry 110 + 0x1.fffc48bea6ea7bca9e3cc76637bfbfcep-1, + 0x1.653fbcp2 + }, + { // Entry 111 + -0x1.fffc48bea6ea7bca9e3cc76637bfbfcep-1, + -0x1.653fbcp2 + }, + { // Entry 112 + 0x1.fffc48d5dfe4c3c0ebf5fc4e969507bap-1, + 0x1.654084p2 + }, + { // Entry 113 + -0x1.fffc48d5dfe4c3c0ebf5fc4e969507bap-1, + -0x1.654084p2 + }, + { // Entry 114 + 0x1.fffc5933b716ebf93b846ed2d0629240p-1, + 0x1.65ceb4p2 + }, + { // Entry 115 + -0x1.fffc5933b716ebf93b846ed2d0629240p-1, + -0x1.65ceb4p2 + }, + { // Entry 116 + 0x1.6cc3070142cab25a8a3556c9810da1e8p-5, + 0x1.6d00d0p-5 + }, + { // Entry 117 + -0x1.6cc3070142cab25a8a3556c9810da1e8p-5, + -0x1.6d00d0p-5 + }, + { // Entry 118 + 0x1.6cc309003eed18aedf499413fadb462fp-5, + 0x1.6d00d2p-5 + }, + { // Entry 119 + -0x1.6cc309003eed18aedf499413fadb462fp-5, + -0x1.6d00d2p-5 + }, + { // Entry 120 + 0x1.fd3f72ffe427753610423980d1d05fedp-1, + 0x1.7aa642p1 + }, + { // Entry 121 + -0x1.fd3f72ffe427753610423980d1d05fedp-1, + -0x1.7aa642p1 + }, + { // Entry 122 + 0x1.7c2f60ffff4224b41b98aa2e87d40e93p-3, + 0x1.80a516p-3 + }, + { // Entry 123 + -0x1.7c2f60ffff4224b41b98aa2e87d40e93p-3, + -0x1.80a516p-3 + }, + { // Entry 124 + 0x1.fffec68f7d9cae8cb2022d2f6e1cb483p-1, + 0x1.88c660p2 + }, + { // Entry 125 + -0x1.fffec68f7d9cae8cb2022d2f6e1cb483p-1, + -0x1.88c660p2 + }, + { // Entry 126 + 0x1.8959449ca3adfa7d322370460455a902p-9, + 0x1.895992p-9 + }, + { // Entry 127 + -0x1.8959449ca3adfa7d322370460455a902p-9, + -0x1.895992p-9 + }, + { // Entry 128 + 0x1.fffecc86683d8ef8a1fb2cafaea1545fp-1, + 0x1.8963c4p2 + }, + { // Entry 129 + -0x1.fffecc86683d8ef8a1fb2cafaea1545fp-1, + -0x1.8963c4p2 + }, + { // Entry 130 + 0x1.79b6110000baefbe3999a6dff4c4acdbp-2, + 0x1.8c6448p-2 + }, + { // Entry 131 + -0x1.79b6110000baefbe3999a6dff4c4acdbp-2, + -0x1.8c6448p-2 + }, + { // Entry 132 + 0x1.9556a2f5d933a6a7c7cf78568bb7249ap-7, + 0x1.955beep-7 + }, + { // Entry 133 + -0x1.9556a2f5d933a6a7c7cf78568bb7249ap-7, + -0x1.955beep-7 + }, + { // Entry 134 + 0x1.a6460901ad2d3a62ccc87319783ddde8p-8, + 0x1.a64788p-8 + }, + { // Entry 135 + -0x1.a6460901ad2d3a62ccc87319783ddde8p-8, + -0x1.a64788p-8 + }, + { // Entry 136 + 0x1.62faf5001c03bf4b64fe9125b3ecbd72p-1, + 0x1.b569c2p-1 + }, + { // Entry 137 + -0x1.62faf5001c03bf4b64fe9125b3ecbd72p-1, + -0x1.b569c2p-1 + }, + { // Entry 138 + 0x1.ffffb2f40c1a3456b2931f183789727dp-1, + 0x1.b5ad60p2 + }, + { // Entry 139 + -0x1.ffffb2f40c1a3456b2931f183789727dp-1, + -0x1.b5ad60p2 + }, + { // Entry 140 + 0x1.b855a8c8313c4cd13e0f00b884857ca3p-7, + 0x1.b85c72p-7 + }, + { // Entry 141 + -0x1.b855a8c8313c4cd13e0f00b884857ca3p-7, + -0x1.b85c72p-7 + }, + { // Entry 142 + 0x1.af0793000035655bbe779d897c9f5d4ep-2, + 0x1.cb9714p-2 + }, + { // Entry 143 + -0x1.af0793000035655bbe779d897c9f5d4ep-2, + -0x1.cb9714p-2 + }, + { // Entry 144 + 0x1.cf812104022313677123e2625c6cb00bp-5, + 0x1.cffffep-5 + }, + { // Entry 145 + -0x1.cf812104022313677123e2625c6cb00bp-5, + -0x1.cffffep-5 + }, + { // Entry 146 + 0x1.d5132b00e44b3c951c3d25000110a656p-4, + 0x1.d7244cp-4 + }, + { // Entry 147 + -0x1.d5132b00e44b3c951c3d25000110a656p-4, + -0x1.d7244cp-4 + }, + { // Entry 148 + 0x1.bc797cffffff6db7359d1c595930bc63p-2, + 0x1.dc0accp-2 + }, + { // Entry 149 + -0x1.bc797cffffff6db7359d1c595930bc63p-2, + -0x1.dc0accp-2 + }, + { // Entry 150 + 0x1.dd556501c8476b8826b0d4995a3e0054p-7, + 0x1.dd5e0ap-7 + }, + { // Entry 151 + -0x1.dd556501c8476b8826b0d4995a3e0054p-7, + -0x1.dd5e0ap-7 + }, + { // Entry 152 + 0x1.dfe86501ca363c2f1da356d0632fe6c8p-7, + 0x1.dff12ep-7 + }, + { // Entry 153 + -0x1.dfe86501ca363c2f1da356d0632fe6c8p-7, + -0x1.dff12ep-7 + }, + { // Entry 154 + 0x1.d9d7000000930fc88ef47c6e1ada9a2ep-3, + 0x1.e293c6p-3 + }, + { // Entry 155 + -0x1.d9d7000000930fc88ef47c6e1ada9a2ep-3, + -0x1.e293c6p-3 + }, + { // Entry 156 + 0x1.e3871b0406361c77ff3262df09e8c737p-11, + 0x1.e38724p-11 + }, + { // Entry 157 + -0x1.e3871b0406361c77ff3262df09e8c737p-11, + -0x1.e38724p-11 + }, + { // Entry 158 + 0x1.e7f6c1d323d9985457500cf721006947p-7, + 0x1.e7fffep-7 + }, + { // Entry 159 + -0x1.e7f6c1d323d9985457500cf721006947p-7, + -0x1.e7fffep-7 + }, + { // Entry 160 + 0x1.7c54ecfffa1859038ca17969c97fe5dep-1, + 0x1.e9de92p-1 + }, + { // Entry 161 + -0x1.7c54ecfffa1859038ca17969c97fe5dep-1, + -0x1.e9de92p-1 + }, + { // Entry 162 + 0x1.f34e86fff858026738196409a11a9d77p-4, + 0x1.f5cd60p-4 + }, + { // Entry 163 + -0x1.f34e86fff858026738196409a11a9d77p-4, + -0x1.f5cd60p-4 + }, + { // Entry 164 + 0x1.f650cd01dd1dd3b74d4170b58162d604p-7, + 0x1.f65ae0p-7 + }, + { // Entry 165 + -0x1.f650cd01dd1dd3b74d4170b58162d604p-7, + -0x1.f65ae0p-7 + }, + { // Entry 166 + 0x1.f7f5d19736651657bb4a908bb6ce6f3cp-7, + 0x1.f7fffep-7 + }, + { // Entry 167 + -0x1.f7f5d19736651657bb4a908bb6ce6f3cp-7, + -0x1.f7fffep-7 + }, + { // Entry 168 + 0x1.f936b301e75e5596ad5b43deb4061c2cp-10, + 0x1.f936dcp-10 + }, + { // Entry 169 + -0x1.f936b301e75e5596ad5b43deb4061c2cp-10, + -0x1.f936dcp-10 + }, + { // Entry 170 + 0x1.fb5c247b97361255c41f765d4cbab28ep-10, + 0x1.fb5c4ep-10 + }, + { // Entry 171 + -0x1.fb5c247b97361255c41f765d4cbab28ep-10, + -0x1.fb5c4ep-10 + }, + { // Entry 172 + 0x1.fb60ee7a6a3af79f5ce57fd612d65a22p-10, + 0x1.fb6118p-10 + }, + { // Entry 173 + -0x1.fb60ee7a6a3af79f5ce57fd612d65a22p-10, + -0x1.fb6118p-10 + }, + { // Entry 174 + 0x1.fb61507a522ba9573e82098c0792ba25p-10, + 0x1.fb617ap-10 + }, + { // Entry 175 + -0x1.fb61507a522ba9573e82098c0792ba25p-10, + -0x1.fb617ap-10 + }, + { // Entry 176 + 0x1.fb896701df3450ee4bc970f28fb75445p-8, + 0x1.fb8cp-8 + }, + { // Entry 177 + -0x1.fb896701df3450ee4bc970f28fb75445p-8, + -0x1.fb8cp-8 + }, + { // Entry 178 + 0x1.fc3c1bffffc9f2bffbd43471548806fcp-4, + 0x1.fede10p-4 + }, + { // Entry 179 + -0x1.fc3c1bffffc9f2bffbd43471548806fcp-4, + -0x1.fede10p-4 + }, + { // Entry 180 + 0x1.fed5976f11593f5d7e4b3836da802317p-6, + 0x1.fefffep-6 + }, + { // Entry 181 + -0x1.fed5976f11593f5d7e4b3836da802317p-6, + -0x1.fefffep-6 + }, + { // Entry 182 + 0x1.ff1d56d81077af007425dda32d1f0031p-8, + 0x1.ff1ffep-8 + }, + { // Entry 183 + -0x1.ff1d56d81077af007425dda32d1f0031p-8, + -0x1.ff1ffep-8 + }, + { // Entry 184 + 0x1.fff1d3d1b5268bffb0a21ac78411370bp-7, + 0x1.fffc7ep-7 + }, + { // Entry 185 + -0x1.fff1d3d1b5268bffb0a21ac78411370bp-7, + -0x1.fffc7ep-7 + }, + { // Entry 186 + 0x1.fd580cdbebec6f60e3365d17ed60414ap-4, + 0x1.fffe74p-4 + }, + { // Entry 187 + -0x1.fd580cdbebec6f60e3365d17ed60414ap-4, + -0x1.fffe74p-4 + }, + { // Entry 188 + 0x1.f596b7f7b4c13c155c3efd93f5dfe6d2p-3, + 0x1.fffebap-3 + }, + { // Entry 189 + -0x1.f596b7f7b4c13c155c3efd93f5dfe6d2p-3, + -0x1.fffebap-3 + }, + { // Entry 190 + 0x1.f597340cb7cde9ab8349aed17bf234d0p-3, + 0x1.ffff3ep-3 + }, + { // Entry 191 + -0x1.f597340cb7cde9ab8349aed17bf234d0p-3, + -0x1.ffff3ep-3 + }, + { // Entry 192 + 0x1.ff5517ffac72f276baf86702efd7f0e4p-5, + 0x1.ffff7ep-5 + }, + { // Entry 193 + -0x1.ff5517ffac72f276baf86702efd7f0e4p-5, + -0x1.ffff7ep-5 + }, + { // Entry 194 + 0x1.85ef82ffff600101847e4b0f9e445356p-1, + 0x1.ffffa0p-1 + }, + { // Entry 195 + -0x1.85ef82ffff600101847e4b0f9e445356p-1, + -0x1.ffffa0p-1 + }, + { // Entry 196 + 0x1.d9352125813bde3aa9ea505b2809fca3p-2, + 0x1.ffffdcp-2 + }, + { // Entry 197 + -0x1.d9352125813bde3aa9ea505b2809fca3p-2, + -0x1.ffffdcp-2 + }, + { // Entry 198 + 0x1.ffa817006391aeb5707dac7212cf73d5p-1, + 0x1.fffffap1 + }, + { // Entry 199 + -0x1.ffa817006391aeb5707dac7212cf73d5p-1, + -0x1.fffffap1 + }, + { // Entry 200 + 0x1.a86c170000be8e7f4d04a063da24860ep-3, + 0x1.aea8e2p-3 + }, + { // Entry 201 + -0x1.a86c170000be8e7f4d04a063da24860ep-3, + -0x1.aea8e2p-3 + }, + { // Entry 202 + 0.0, + 0.0 + }, + { // Entry 203 + 0x1.1a5eefe0da6da46ea6f171425810e4dfp-5, + 0x1.1a7b96p-5 + }, + { // Entry 204 + -0x1.1a5eefe0da6da46ea6f171425810e4dfp-5, + -0x1.1a7b96p-5 + }, + { // Entry 205 + 0x1.1a09274ac6f7b6d4b727690be74eb0ddp-4, + 0x1.1a7b96p-4 + }, + { // Entry 206 + -0x1.1a09274ac6f7b6d4b727690be74eb0ddp-4, + -0x1.1a7b96p-4 + }, + { // Entry 207 + 0x1.a6381479e10e322568c693ec4f279989p-4, + 0x1.a7b960p-4 + }, + { // Entry 208 + -0x1.a6381479e10e322568c693ec4f279989p-4, + -0x1.a7b960p-4 + }, + { // Entry 209 + 0x1.18b472d6fbe7dee4499ec16056fea055p-3, + 0x1.1a7b96p-3 + }, + { // Entry 210 + -0x1.18b472d6fbe7dee4499ec16056fea055p-3, + -0x1.1a7b96p-3 + }, + { // Entry 211 + 0x1.5da54dc77f05440705ed9d5be3f9e9d8p-3, + 0x1.611a7cp-3 + }, + { // Entry 212 + -0x1.5da54dc77f05440705ed9d5be3f9e9d8p-3, + -0x1.611a7cp-3 + }, + { // Entry 213 + 0x1.a1c7a7ee254eb0b79612d120102ce9cdp-3, + 0x1.a7b962p-3 + }, + { // Entry 214 + -0x1.a1c7a7ee254eb0b79612d120102ce9cdp-3, + -0x1.a7b962p-3 + }, + { // Entry 215 + 0x1.e4f66de638560e22d3726a77da8f160fp-3, + 0x1.ee5848p-3 + }, + { // Entry 216 + -0x1.e4f66de638560e22d3726a77da8f160fp-3, + -0x1.ee5848p-3 + }, + { // Entry 217 + 0x1.13875aa36e2d8920626dbd412fff0a19p-2, + 0x1.1a7b96p-2 + }, + { // Entry 218 + -0x1.13875aa36e2d8920626dbd412fff0a19p-2, + -0x1.1a7b96p-2 + }, + { // Entry 219 + 0x1.33f8019585f3cc502e91eecf50e70e1ep-2, + 0x1.3dcb08p-2 + }, + { // Entry 220 + -0x1.33f8019585f3cc502e91eecf50e70e1ep-2, + -0x1.3dcb08p-2 + }, + { // Entry 221 + 0x1.53be3e2cd98b021967b9bd31e58b5176p-2, + 0x1.611a7ap-2 + }, + { // Entry 222 + -0x1.53be3e2cd98b021967b9bd31e58b5176p-2, + -0x1.611a7ap-2 + }, + { // Entry 223 + 0x1.72cc88c146572445dafcbe755d41bcabp-2, + 0x1.8469ecp-2 + }, + { // Entry 224 + -0x1.72cc88c146572445dafcbe755d41bcabp-2, + -0x1.8469ecp-2 + }, + { // Entry 225 + 0x1.9116ceec77a9f298abf6b13437746b97p-2, + 0x1.a7b95ep-2 + }, + { // Entry 226 + -0x1.9116ceec77a9f298abf6b13437746b97p-2, + -0x1.a7b95ep-2 + }, + { // Entry 227 + 0x1.ae927d0b74198b988ccf700a98369717p-2, + 0x1.cb08d0p-2 + }, + { // Entry 228 + -0x1.ae927d0b74198b988ccf700a98369717p-2, + -0x1.cb08d0p-2 + }, + { // Entry 229 + 0x1.cb3682279dc978565aefc3dbd264dc6bp-2, + 0x1.ee5842p-2 + }, + { // Entry 230 + -0x1.cb3682279dc978565aefc3dbd264dc6bp-2, + -0x1.ee5842p-2 + }, + { // Entry 231 + 0x1.e6fb4e9962e192a0d5bde52d580d91p-2, + 0x1.08d3dap-1 + }, + { // Entry 232 + -0x1.e6fb4e9962e192a0d5bde52d580d91p-2, + -0x1.08d3dap-1 + }, + { // Entry 233 + 0x1.00ed67a7ca644147f7f84f1f3f68eb4ep-1, + 0x1.1a7b94p-1 + }, + { // Entry 234 + -0x1.00ed67a7ca644147f7f84f1f3f68eb4ep-1, + -0x1.1a7b94p-1 + }, + { // Entry 235 + 0x1.0de82f529333a223ff587747d148653cp-1, + 0x1.2c234ep-1 + }, + { // Entry 236 + -0x1.0de82f529333a223ff587747d148653cp-1, + -0x1.2c234ep-1 + }, + { // Entry 237 + 0x1.1a6c5d5a29120e952b1038e517a86a7ap-1, + 0x1.3dcb08p-1 + }, + { // Entry 238 + -0x1.1a6c5d5a29120e952b1038e517a86a7ap-1, + -0x1.3dcb08p-1 + }, + { // Entry 239 + 0x1.2678f914054d8f29392b6e43daa2fe82p-1, + 0x1.4f72c2p-1 + }, + { // Entry 240 + -0x1.2678f914054d8f29392b6e43daa2fe82p-1, + -0x1.4f72c2p-1 + }, + { // Entry 241 + 0x1.320da804a66b5aea0e2572fe3978eac8p-1, + 0x1.611a7cp-1 + }, + { // Entry 242 + -0x1.320da804a66b5aea0e2572fe3978eac8p-1, + -0x1.611a7cp-1 + }, + { // Entry 243 + 0x1.3d2aa2c374c14e0b68b69e1f2aad8daep-1, + 0x1.72c236p-1 + }, + { // Entry 244 + -0x1.3d2aa2c374c14e0b68b69e1f2aad8daep-1, + -0x1.72c236p-1 + }, + { // Entry 245 + 0x1.47d0a924d14e34db0ec4761b0df7646dp-1, + 0x1.8469f0p-1 + }, + { // Entry 246 + -0x1.47d0a924d14e34db0ec4761b0df7646dp-1, + -0x1.8469f0p-1 + }, + { // Entry 247 + 0x1.5200f5eeb74275fa79657708d5b078b6p-1, + 0x1.9611aap-1 + }, + { // Entry 248 + -0x1.5200f5eeb74275fa79657708d5b078b6p-1, + -0x1.9611aap-1 + }, + { // Entry 249 + 0x1.5bbd32569013f13f86d8a0f1ef604c1dp-1, + 0x1.a7b964p-1 + }, + { // Entry 250 + -0x1.5bbd32569013f13f86d8a0f1ef604c1dp-1, + -0x1.a7b964p-1 + }, + { // Entry 251 + 0x1.650769803034e7d79ffaa44b0cc39437p-1, + 0x1.b9611ep-1 + }, + { // Entry 252 + -0x1.650769803034e7d79ffaa44b0cc39437p-1, + -0x1.b9611ep-1 + }, + { // Entry 253 + 0x1.6de1fc2ec1c6722f9de045bb1a94b919p-1, + 0x1.cb08d8p-1 + }, + { // Entry 254 + -0x1.6de1fc2ec1c6722f9de045bb1a94b919p-1, + -0x1.cb08d8p-1 + }, + { // Entry 255 + 0x1.764f94d0fb2866129f770f308fa0ba85p-1, + 0x1.dcb092p-1 + }, + { // Entry 256 + -0x1.764f94d0fb2866129f770f308fa0ba85p-1, + -0x1.dcb092p-1 + }, + { // Entry 257 + 0x1.7e531c0aa594c275df30c5b8451bba53p-1, + 0x1.ee584cp-1 + }, + { // Entry 258 + -0x1.7e531c0aa594c275df30c5b8451bba53p-1, + -0x1.ee584cp-1 + }, + { // Entry 259 + 0x1.85efab514f394558632be293c4274fe6p-1, + 0x1.p0 + }, + { // Entry 260 + -0x1.85efab514f394558632be293c4274fe6p-1, + -0x1.p0 + }, + { // Entry 261 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.p100 + }, + { // Entry 262 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.p100 + }, + { // Entry 263 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.0d7944p100 + }, + { // Entry 264 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.0d7944p100 + }, + { // Entry 265 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.1af288p100 + }, + { // Entry 266 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.1af288p100 + }, + { // Entry 267 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.286bccp100 + }, + { // Entry 268 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.286bccp100 + }, + { // Entry 269 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.35e510p100 + }, + { // Entry 270 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.35e510p100 + }, + { // Entry 271 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.435e54p100 + }, + { // Entry 272 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.435e54p100 + }, + { // Entry 273 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.50d798p100 + }, + { // Entry 274 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.50d798p100 + }, + { // Entry 275 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.5e50dcp100 + }, + { // Entry 276 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.5e50dcp100 + }, + { // Entry 277 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.6bca20p100 + }, + { // Entry 278 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.6bca20p100 + }, + { // Entry 279 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.794364p100 + }, + { // Entry 280 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.794364p100 + }, + { // Entry 281 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.86bca8p100 + }, + { // Entry 282 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.86bca8p100 + }, + { // Entry 283 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.9435ecp100 + }, + { // Entry 284 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9435ecp100 + }, + { // Entry 285 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.a1af30p100 + }, + { // Entry 286 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.a1af30p100 + }, + { // Entry 287 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.af2874p100 + }, + { // Entry 288 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.af2874p100 + }, + { // Entry 289 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.bca1b8p100 + }, + { // Entry 290 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.bca1b8p100 + }, + { // Entry 291 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.ca1afcp100 + }, + { // Entry 292 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.ca1afcp100 + }, + { // Entry 293 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.d79440p100 + }, + { // Entry 294 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.d79440p100 + }, + { // Entry 295 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.e50d84p100 + }, + { // Entry 296 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.e50d84p100 + }, + { // Entry 297 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.f286c8p100 + }, + { // Entry 298 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.f286c8p100 + }, + { // Entry 299 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.p101 + }, + { // Entry 300 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.p101 + }, + { // Entry 301 + -0.0f, + -0x1.p-149 + }, + { // Entry 302 + 0.0f, + 0x1.p-149 + }, + { // Entry 303 + 0.0, + 0.0 + }, + { // Entry 304 + 0.0f, + 0x1.p-149 + }, + { // Entry 305 + -0.0f, + -0x1.p-149 + }, + { // Entry 306 + 0x1.d9353be2bf67df131f7df0e337af4ca9p-2, + 0x1.fffffep-2 + }, + { // Entry 307 + -0x1.d9353be2bf67df131f7df0e337af4ca9p-2, + -0x1.fffffep-2 + }, + { // Entry 308 + 0x1.d9353d7568af365128ee21c65b08d3a7p-2, + 0x1.p-1 + }, + { // Entry 309 + -0x1.d9353d7568af365128ee21c65b08d3a7p-2, + -0x1.p-1 + }, + { // Entry 310 + 0x1.d935409abb3bb6925a21ec1ab4945211p-2, + 0x1.000002p-1 + }, + { // Entry 311 + -0x1.d935409abb3bb6925a21ec1ab4945211p-2, + -0x1.000002p-1 + }, + { // Entry 312 + 0x1.fffffa7fc7b1f6bc2e2cdde1540f0470p-2, + 0x1.193ea4p-1 + }, + { // Entry 313 + -0x1.fffffa7fc7b1f6bc2e2cdde1540f0470p-2, + -0x1.193ea4p-1 + }, + { // Entry 314 + 0x1.fffffd7fc7b5f6f475c594f45adc9be5p-2, + 0x1.193ea6p-1 + }, + { // Entry 315 + -0x1.fffffd7fc7b5f6f475c594f45adc9be5p-2, + -0x1.193ea6p-1 + }, + { // Entry 316 + 0x1.0000003fe3db7b965f4f34192b818b64p-1, + 0x1.193ea8p-1 + }, + { // Entry 317 + -0x1.0000003fe3db7b965f4f34192b818b64p-1, + -0x1.193ea8p-1 + }, + { // Entry 318 + 0x1.fffffffffffffffa422e1905e1f508eep-1, + 0x1.5ffffep4 + }, + { // Entry 319 + -0x1.fffffffffffffffa422e1905e1f508eep-1, + -0x1.5ffffep4 + }, + { // Entry 320 + 0x1.fffffffffffffffa422f887a2dc5050cp-1, + 0x1.60p4 + }, + { // Entry 321 + -0x1.fffffffffffffffa422f887a2dc5050cp-1, + -0x1.60p4 + }, + { // Entry 322 + 0x1.fffffffffffffffa4230f7ee1db7f9b3p-1, + 0x1.600002p4 + }, + { // Entry 323 + -0x1.fffffffffffffffa4230f7ee1db7f9b3p-1, + -0x1.600002p4 + }, + { // Entry 324 + -0x1.3333333dabc33b19ad2c008a3f7d4144p-1, + -0x1.62e430p-1 + }, + { // Entry 325 + 0x1.3333333dabc33b19ad2c008a3f7d4144p-1, + 0x1.62e430p-1 + }, + { // Entry 326 + -0x1.333331f5fdae082d6c69302af70f1ab2p-1, + -0x1.62e42ep-1 + }, + { // Entry 327 + 0x1.333331f5fdae082d6c69302af70f1ab2p-1, + 0x1.62e42ep-1 + }, + { // Entry 328 + -0x1.333330ae4f974c09dfacf6fd31a6a22ap-1, + -0x1.62e42cp-1 + }, + { // Entry 329 + 0x1.333330ae4f974c09dfacf6fd31a6a22ap-1, + 0x1.62e42cp-1 + }, + { // Entry 330 + -0x1.55555563e05644101a754f1b989bf5e0p-2, + -0x1.62e430p-2 + }, + { // Entry 331 + 0x1.55555563e05644101a754f1b989bf5e0p-2, + 0x1.62e430p-2 + }, + { // Entry 332 + -0x1.5555539cc3e435f2961e38240bc73aa4p-2, + -0x1.62e42ep-2 + }, + { // Entry 333 + 0x1.5555539cc3e435f2961e38240bc73aa4p-2, + 0x1.62e42ep-2 + }, + { // Entry 334 + -0x1.555551d5a7719020ec6cf2d7658d0ac8p-2, + -0x1.62e42cp-2 + }, + { // Entry 335 + 0x1.555551d5a7719020ec6cf2d7658d0ac8p-2, + 0x1.62e42cp-2 + }, + { // Entry 336 + -0x1.5f619990a5492052ffe57497a9abd298p-3, + -0x1.62e430p-3 + }, + { // Entry 337 + 0x1.5f619990a5492052ffe57497a9abd298p-3, + 0x1.62e430p-3 + }, + { // Entry 338 + -0x1.5f61979fb7af4d856def98ede8520596p-3, + -0x1.62e42ep-3 + }, + { // Entry 339 + 0x1.5f61979fb7af4d856def98ede8520596p-3, + 0x1.62e42ep-3 + }, + { // Entry 340 + -0x1.5f6195aeca155016a893d14088fd4ba5p-3, + -0x1.62e42cp-3 + }, + { // Entry 341 + 0x1.5f6195aeca155016a893d14088fd4ba5p-3, + 0x1.62e42cp-3 + }, + { // Entry 342 + -0x1.620185f59f2beaefe5f1ff532c6185e9p-4, + -0x1.62e430p-4 + }, + { // Entry 343 + 0x1.620185f59f2beaefe5f1ff532c6185e9p-4, + 0x1.62e430p-4 + }, + { // Entry 344 + -0x1.620183f9723c526db01581b03289e0f8p-4, + -0x1.62e42ep-4 + }, + { // Entry 345 + 0x1.620183f9723c526db01581b03289e0f8p-4, + 0x1.62e42ep-4 + }, + { // Entry 346 + -0x1.620181fd454caef095a305bc4bfa5f8cp-4, + -0x1.62e42cp-4 + }, + { // Entry 347 + 0x1.620181fd454caef095a305bc4bfa5f8cp-4, + 0x1.62e42cp-4 + }, + { // Entry 348 + -0x1.62ab64d86ab1c41d432598f1a7016c16p-5, + -0x1.62e430p-5 + }, + { // Entry 349 + 0x1.62ab64d86ab1c41d432598f1a7016c16p-5, + 0x1.62e430p-5 + }, + { // Entry 350 + -0x1.62ab62d96060fd8e75e7cb16c3cd0f7bp-5, + -0x1.62e42ep-5 + }, + { // Entry 351 + 0x1.62ab62d96060fd8e75e7cb16c3cd0f7bp-5, + 0x1.62e42ep-5 + }, + { // Entry 352 + -0x1.62ab60da5610343ba64510e844c87ed4p-5, + -0x1.62e42cp-5 + }, + { // Entry 353 + 0x1.62ab60da5610343ba64510e844c87ed4p-5, + 0x1.62e42cp-5 + }, + { // Entry 354 + -0x1.62d5fb2a4e0746b264bbd3e451c465d4p-6, + -0x1.62e430p-6 + }, + { // Entry 355 + 0x1.62d5fb2a4e0746b264bbd3e451c465d4p-6, + 0x1.62e430p-6 + }, + { // Entry 356 + -0x1.62d5f92a8b81d6095737ce1a949ac4bep-6, + -0x1.62e42ep-6 + }, + { // Entry 357 + 0x1.62d5f92a8b81d6095737ce1a949ac4bep-6, + 0x1.62e42ep-6 + }, + { // Entry 358 + -0x1.62d5f72ac8fc64aef404ea2dd7db57a6p-6, + -0x1.62e42cp-6 + }, + { // Entry 359 + 0x1.62d5f72ac8fc64aef404ea2dd7db57a6p-6, + 0x1.62e42cp-6 + }, + { // Entry 360 + 0x1.62d5f72ac8fc64aef404ea2dd7db57a6p-6, + 0x1.62e42cp-6 + }, + { // Entry 361 + -0x1.62d5f72ac8fc64aef404ea2dd7db57a6p-6, + -0x1.62e42cp-6 + }, + { // Entry 362 + 0x1.62d5f92a8b81d6095737ce1a949ac4bep-6, + 0x1.62e42ep-6 + }, + { // Entry 363 + -0x1.62d5f92a8b81d6095737ce1a949ac4bep-6, + -0x1.62e42ep-6 + }, + { // Entry 364 + 0x1.62d5fb2a4e0746b264bbd3e451c465d4p-6, + 0x1.62e430p-6 + }, + { // Entry 365 + -0x1.62d5fb2a4e0746b264bbd3e451c465d4p-6, + -0x1.62e430p-6 + }, + { // Entry 366 + 0x1.62ab60da5610343ba64510e844c87ed4p-5, + 0x1.62e42cp-5 + }, + { // Entry 367 + -0x1.62ab60da5610343ba64510e844c87ed4p-5, + -0x1.62e42cp-5 + }, + { // Entry 368 + 0x1.62ab62d96060fd8e75e7cb16c3cd0f7bp-5, + 0x1.62e42ep-5 + }, + { // Entry 369 + -0x1.62ab62d96060fd8e75e7cb16c3cd0f7bp-5, + -0x1.62e42ep-5 + }, + { // Entry 370 + 0x1.62ab64d86ab1c41d432598f1a7016c16p-5, + 0x1.62e430p-5 + }, + { // Entry 371 + -0x1.62ab64d86ab1c41d432598f1a7016c16p-5, + -0x1.62e430p-5 + }, + { // Entry 372 + 0x1.620181fd454caef095a305bc4bfa5f8cp-4, + 0x1.62e42cp-4 + }, + { // Entry 373 + -0x1.620181fd454caef095a305bc4bfa5f8cp-4, + -0x1.62e42cp-4 + }, + { // Entry 374 + 0x1.620183f9723c526db01581b03289e0f8p-4, + 0x1.62e42ep-4 + }, + { // Entry 375 + -0x1.620183f9723c526db01581b03289e0f8p-4, + -0x1.62e42ep-4 + }, + { // Entry 376 + 0x1.620185f59f2beaefe5f1ff532c6185e9p-4, + 0x1.62e430p-4 + }, + { // Entry 377 + -0x1.620185f59f2beaefe5f1ff532c6185e9p-4, + -0x1.62e430p-4 + }, + { // Entry 378 + 0x1.5f6195aeca155016a893d14088fd4ba5p-3, + 0x1.62e42cp-3 + }, + { // Entry 379 + -0x1.5f6195aeca155016a893d14088fd4ba5p-3, + -0x1.62e42cp-3 + }, + { // Entry 380 + 0x1.5f61979fb7af4d856def98ede8520596p-3, + 0x1.62e42ep-3 + }, + { // Entry 381 + -0x1.5f61979fb7af4d856def98ede8520596p-3, + -0x1.62e42ep-3 + }, + { // Entry 382 + 0x1.5f619990a5492052ffe57497a9abd298p-3, + 0x1.62e430p-3 + }, + { // Entry 383 + -0x1.5f619990a5492052ffe57497a9abd298p-3, + -0x1.62e430p-3 + }, + { // Entry 384 + 0x1.555551d5a7719020ec6cf2d7658d0ac8p-2, + 0x1.62e42cp-2 + }, + { // Entry 385 + -0x1.555551d5a7719020ec6cf2d7658d0ac8p-2, + -0x1.62e42cp-2 + }, + { // Entry 386 + 0x1.5555539cc3e435f2961e38240bc73aa4p-2, + 0x1.62e42ep-2 + }, + { // Entry 387 + -0x1.5555539cc3e435f2961e38240bc73aa4p-2, + -0x1.62e42ep-2 + }, + { // Entry 388 + 0x1.55555563e05644101a754f1b989bf5e0p-2, + 0x1.62e430p-2 + }, + { // Entry 389 + -0x1.55555563e05644101a754f1b989bf5e0p-2, + -0x1.62e430p-2 + }, + { // Entry 390 + 0x1.333330ae4f974c09dfacf6fd31a6a22ap-1, + 0x1.62e42cp-1 + }, + { // Entry 391 + -0x1.333330ae4f974c09dfacf6fd31a6a22ap-1, + -0x1.62e42cp-1 + }, + { // Entry 392 + 0x1.333331f5fdae082d6c69302af70f1ab2p-1, + 0x1.62e42ep-1 + }, + { // Entry 393 + -0x1.333331f5fdae082d6c69302af70f1ab2p-1, + -0x1.62e42ep-1 + }, + { // Entry 394 + 0x1.3333333dabc33b19ad2c008a3f7d4144p-1, + 0x1.62e430p-1 + }, + { // Entry 395 + -0x1.3333333dabc33b19ad2c008a3f7d4144p-1, + -0x1.62e430p-1 + }, + { // Entry 396 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42cp6 + }, + { // Entry 397 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42cp6 + }, + { // Entry 398 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42ep6 + }, + { // Entry 399 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42ep6 + }, + { // Entry 400 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e430p6 + }, + { // Entry 401 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e430p6 + }, + { // Entry 402 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9d1da2p6 + }, + { // Entry 403 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.9d1da2p6 + }, + { // Entry 404 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9d1da0p6 + }, + { // Entry 405 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.9d1da0p6 + }, + { // Entry 406 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.9d1d9ep6 + }, + { // Entry 407 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.9d1d9ep6 + }, + { // Entry 408 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.65a9f6p6 + }, + { // Entry 409 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.65a9f6p6 + }, + { // Entry 410 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.65a9f8p6 + }, + { // Entry 411 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.65a9f8p6 + }, + { // Entry 412 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.65a9fap6 + }, + { // Entry 413 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.65a9fap6 + }, + { // Entry 414 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e430p6 + }, + { // Entry 415 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e430p6 + }, + { // Entry 416 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42ep6 + }, + { // Entry 417 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42ep6 + }, + { // Entry 418 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.62e42cp6 + }, + { // Entry 419 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.62e42cp6 + }, + { // Entry 420 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffep62 + }, + { // Entry 421 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffep62 + }, + { // Entry 422 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.p63 + }, + { // Entry 423 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.p63 + }, + { // Entry 424 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.000002p63 + }, + { // Entry 425 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.000002p63 + }, + { // Entry 426 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffep26 + }, + { // Entry 427 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffep26 + }, + { // Entry 428 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.p27 + }, + { // Entry 429 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.p27 + }, + { // Entry 430 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.000002p27 + }, + { // Entry 431 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.000002p27 + }, + { // Entry 432 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffep23 + }, + { // Entry 433 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffep23 + }, + { // Entry 434 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.p24 + }, + { // Entry 435 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.p24 + }, + { // Entry 436 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.000002p24 + }, + { // Entry 437 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.000002p24 + }, + { // Entry 438 + 0x1.ffffffffffffffffffffffcd2c4a64d0p-1, + 0x1.fffffep4 + }, + { // Entry 439 + -0x1.ffffffffffffffffffffffcd2c4a64d0p-1, + -0x1.fffffep4 + }, + { // Entry 440 + 0x1.ffffffffffffffffffffffcd2c5719bcp-1, + 0x1.p5 + }, + { // Entry 441 + -0x1.ffffffffffffffffffffffcd2c5719bcp-1, + -0x1.p5 + }, + { // Entry 442 + 0x1.ffffffffffffffffffffffcd2c70838ap-1, + 0x1.000002p5 + }, + { // Entry 443 + -0x1.ffffffffffffffffffffffcd2c70838ap-1, + -0x1.000002p5 + }, + { // Entry 444 + 0x1.fffffffffff1bdcbbc08e2044832bbfep-1, + 0x1.fffffep3 + }, + { // Entry 445 + -0x1.fffffffffff1bdcbbc08e2044832bbfep-1, + -0x1.fffffep3 + }, + { // Entry 446 + 0x1.fffffffffff1bdcd844f4dfec4941943p-1, + 0x1.p4 + }, + { // Entry 447 + -0x1.fffffffffff1bdcd844f4dfec4941943p-1, + -0x1.p4 + }, + { // Entry 448 + 0x1.fffffffffff1bdd114db7ad966aba40dp-1, + 0x1.000002p4 + }, + { // Entry 449 + -0x1.fffffffffff1bdd114db7ad966aba40dp-1, + -0x1.000002p4 + }, + { // Entry 450 + 0x1.fffff872a8a6b12003ef317c57617676p-1, + 0x1.fffffep2 + }, + { // Entry 451 + -0x1.fffff872a8a6b12003ef317c57617676p-1, + -0x1.fffffep2 + }, + { // Entry 452 + 0x1.fffff872a91f8690ee0e6d3ad8aee46bp-1, + 0x1.p3 + }, + { // Entry 453 + -0x1.fffff872a91f8690ee0e6d3ad8aee46bp-1, + -0x1.p3 + }, + { // Entry 454 + 0x1.fffff872aa11315c1a493c74b407aa6ep-1, + 0x1.000002p3 + }, + { // Entry 455 + -0x1.fffff872aa11315c1a493c74b407aa6ep-1, + -0x1.000002p3 + }, + { // Entry 456 + 0x1.ffa81705e1a8bbcbf5a3dcf7cb937ef6p-1, + 0x1.fffffep1 + }, + { // Entry 457 + -0x1.ffa81705e1a8bbcbf5a3dcf7cb937ef6p-1, + -0x1.fffffep1 + }, + { // Entry 458 + 0x1.ffa81708a0b4216857246c19dc60acb8p-1, + 0x1.p2 + }, + { // Entry 459 + -0x1.ffa81708a0b4216857246c19dc60acb8p-1, + -0x1.p2 + }, + { // Entry 460 + 0x1.ffa8170e1ecaaac35b6d81d682891126p-1, + 0x1.000002p2 + }, + { // Entry 461 + -0x1.ffa8170e1ecaaac35b6d81d682891126p-1, + -0x1.000002p2 + }, + { // Entry 462 + 0x1.ed950599638c18fec5bd8135b3976fafp-1, + 0x1.fffffep0 + }, + { // Entry 463 + -0x1.ed950599638c18fec5bd8135b3976fafp-1, + -0x1.fffffep0 + }, + { // Entry 464 + 0x1.ed9505e1bc3d3d33c432fc3e8255c8b5p-1, + 0x1.p1 + }, + { // Entry 465 + -0x1.ed9505e1bc3d3d33c432fc3e8255c8b5p-1, + -0x1.p1 + }, + { // Entry 466 + 0x1.ed9506726d9c40b04cf2556073e90aecp-1, + 0x1.000002p1 + }, + { // Entry 467 + -0x1.ed9506726d9c40b04cf2556073e90aecp-1, + -0x1.000002p1 + }, + { // Entry 468 + 0x1.85efaa7a485824cc9f98f88674c08b83p-1, + 0x1.fffffep-1 + }, + { // Entry 469 + -0x1.85efaa7a485824cc9f98f88674c08b83p-1, + -0x1.fffffep-1 + }, + { // Entry 470 + 0x1.85efab514f394558632be293c4274fe6p-1, + 0x1.p0 + }, + { // Entry 471 + -0x1.85efab514f394558632be293c4274fe6p-1, + -0x1.p0 + }, + { // Entry 472 + 0x1.85efacff5cf7afdba442be92190b551bp-1, + 0x1.000002p0 + }, + { // Entry 473 + -0x1.85efacff5cf7afdba442be92190b551bp-1, + -0x1.000002p0 + }, + { // Entry 474 + 0x1.d9353be2bf67df131f7df0e337af4ca9p-2, + 0x1.fffffep-2 + }, + { // Entry 475 + -0x1.d9353be2bf67df131f7df0e337af4ca9p-2, + -0x1.fffffep-2 + }, + { // Entry 476 + 0x1.d9353d7568af365128ee21c65b08d3a7p-2, + 0x1.p-1 + }, + { // Entry 477 + -0x1.d9353d7568af365128ee21c65b08d3a7p-2, + -0x1.p-1 + }, + { // Entry 478 + 0x1.d935409abb3bb6925a21ec1ab4945211p-2, + 0x1.000002p-1 + }, + { // Entry 479 + -0x1.d935409abb3bb6925a21ec1ab4945211p-2, + -0x1.000002p-1 + }, + { // Entry 480 + 0x1.f597e8885827eed9d73369feec84841dp-3, + 0x1.fffffep-3 + }, + { // Entry 481 + -0x1.f597e8885827eed9d73369feec84841dp-3, + -0x1.fffffep-3 + }, + { // Entry 482 + 0x1.f597ea69a1c85f1358d71d84729c80c8p-3, + 0x1.p-2 + }, + { // Entry 483 + -0x1.f597ea69a1c85f1358d71d84729c80c8p-3, + -0x1.p-2 + }, + { // Entry 484 + 0x1.f597ee2c35088eb5da928b278522fdc0p-3, + 0x1.000002p-2 + }, + { // Entry 485 + -0x1.f597ee2c35088eb5da928b278522fdc0p-3, + -0x1.000002p-2 + }, + { // Entry 486 + 0x1.fd5990c4365de99b093619573aed5eefp-4, + 0x1.fffffep-4 + }, + { // Entry 487 + -0x1.fd5990c4365de99b093619573aed5eefp-4, + -0x1.fffffep-4 + }, + { // Entry 488 + 0x1.fd5992bc4b834fc0af6ac8eff7d81040p-4, + 0x1.p-3 + }, + { // Entry 489 + -0x1.fd5992bc4b834fc0af6ac8eff7d81040p-4, + -0x1.p-3 + }, + { // Entry 490 + 0x1.fd5996ac75cded089eba2285d0035a24p-4, + 0x1.000002p-3 + }, + { // Entry 491 + -0x1.fd5996ac75cded089eba2285d0035a24p-4, + -0x1.000002p-3 + }, + { // Entry 492 + 0x1.ff55978001b8da0e0ab4904fa64b8d32p-5, + 0x1.fffffep-5 + }, + { // Entry 493 + -0x1.ff55978001b8da0e0ab4904fa64b8d32p-5, + -0x1.fffffep-5 + }, + { // Entry 494 + 0x1.ff55997e030d705935592a366a8a66d4p-5, + 0x1.p-4 + }, + { // Entry 495 + -0x1.ff55997e030d705935592a366a8a66d4p-5, + -0x1.p-4 + }, + { // Entry 496 + 0x1.ff559d7a05b690ff7d0e4114c0eb72c1p-5, + 0x1.000002p-4 + }, + { // Entry 497 + -0x1.ff559d7a05b690ff7d0e4114c0eb72c1p-5, + -0x1.000002p-4 + }, + { // Entry 498 + 0x1.ffd55799ab088fb326e9ba18d0997203p-6, + 0x1.fffffep-6 + }, + { // Entry 499 + -0x1.ffd55799ab088fb326e9ba18d0997203p-6, + -0x1.fffffep-6 + }, + { // Entry 500 + 0x1.ffd559992b1de28305fc17382205392ep-6, + 0x1.p-5 + }, + { // Entry 501 + -0x1.ffd559992b1de28305fc17382205392ep-6, + -0x1.p-5 + }, + { // Entry 502 + 0x1.ffd55d982b488523c3e9758124e0628bp-6, + 0x1.000002p-5 + }, + { // Entry 503 + -0x1.ffd55d982b488523c3e9758124e0628bp-6, + -0x1.000002p-5 + }, + { // Entry 504 + 0x1.fff55399b7de33c0d4da3bfbdc23a5d4p-7, + 0x1.fffffep-7 + }, + { // Entry 505 + -0x1.fff55399b7de33c0d4da3bfbdc23a5d4p-7, + -0x1.fffffep-7 + }, + { // Entry 506 + 0x1.fff5559997df892a1128575843fc0d52p-7, + 0x1.p-6 + }, + { // Entry 507 + -0x1.fff5559997df892a1128575843fc0d52p-7, + -0x1.p-6 + }, + { // Entry 508 + 0x1.fff5599957e2333c99c37490eae25a5ap-7, + 0x1.000002p-6 + }, + { // Entry 509 + -0x1.fff5599957e2333c99c37490eae25a5ap-7, + -0x1.000002p-6 + }, + { // Entry 510 + 0x1.fffffdf5555575999978428a3604016fp-15, + 0x1.fffffep-15 + }, + { // Entry 511 + -0x1.fffffdf5555575999978428a3604016fp-15, + -0x1.fffffep-15 + }, + { // Entry 512 + 0x1.fffffff555555599999997df7df7eab0p-15, + 0x1.p-14 + }, + { // Entry 513 + -0x1.fffffff555555599999997df7df7eab0p-15, + -0x1.p-14 + }, + { // Entry 514 + 0x1.000001faaaaa8acccc8e2144eeefdea1p-14, + 0x1.000002p-14 + }, + { // Entry 515 + -0x1.000001faaaaa8acccc8e2144eeefdea1p-14, + -0x1.000002p-14 + }, + { // Entry 516 + 0x1.fffffdfffffffff55555755555355599p-31, + 0x1.fffffep-31 + }, + { // Entry 517 + -0x1.fffffdfffffffff55555755555355599p-31, + -0x1.fffffep-31 + }, + { // Entry 518 + 0x1.fffffffffffffff55555555555555599p-31, + 0x1.p-30 + }, + { // Entry 519 + -0x1.fffffffffffffff55555555555555599p-31, + -0x1.p-30 + }, + { // Entry 520 + 0x1.000001fffffffffaaaaa8aaaaa6aaaccp-30, + 0x1.000002p-30 + }, + { // Entry 521 + -0x1.000001fffffffffaaaaa8aaaaa6aaaccp-30, + -0x1.000002p-30 + }, + { // Entry 522 + 0x1.fffffdfffffffffffffffffffffd5555p-56, + 0x1.fffffep-56 + }, + { // Entry 523 + -0x1.fffffdfffffffffffffffffffffd5555p-56, + -0x1.fffffep-56 + }, + { // Entry 524 + 0x1.fffffffffffffffffffffffffffd5555p-56, + 0x1.p-55 + }, + { // Entry 525 + -0x1.fffffffffffffffffffffffffffd5555p-56, + -0x1.p-55 + }, + { // Entry 526 + 0x1.000001fffffffffffffffffffffeaaaap-55, + 0x1.000002p-55 + }, + { // Entry 527 + -0x1.000001fffffffffffffffffffffeaaaap-55, + -0x1.000002p-55 + }, + { // Entry 528 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffep127 + }, + { // Entry 529 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffep127 + }, + { // Entry 530 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffep127 + }, + { // Entry 531 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffep127 + }, + { // Entry 532 + 0x1.p0, + HUGE_VALF + }, + { // Entry 533 + -0x1.p0, + -HUGE_VALF + }, + { // Entry 534 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffep127 + }, + { // Entry 535 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffep127 + }, + { // Entry 536 + 0x1.ffffffffffffffffffffffffffffffffp-1, + 0x1.fffffcp127 + }, + { // Entry 537 + -0x1.ffffffffffffffffffffffffffffffffp-1, + -0x1.fffffcp127 + }, + { // Entry 538 + 0x1.fe175fa8292deb3d8c41deec7c2ee47cp-1, + 0x1.921fb6p1 + }, + { // Entry 539 + -0x1.fe175fa8292deb3d8c41deec7c2ee47cp-1, + -0x1.921fb6p1 + }, + { // Entry 540 + 0x1.d594fde9eb7012c121b429007ea7884ap-1, + 0x1.921fb6p0 + }, + { // Entry 541 + -0x1.d594fde9eb7012c121b429007ea7884ap-1, + -0x1.921fb6p0 + }, + { // Entry 542 + 0x1.85efacff5cf7afdba442be92190b551bp-1, + 0x1.000002p0 + }, + { // Entry 543 + -0x1.85efacff5cf7afdba442be92190b551bp-1, + -0x1.000002p0 + }, + { // Entry 544 + 0x1.85efab514f394558632be293c4274fe6p-1, + 0x1.p0 + }, + { // Entry 545 + -0x1.85efab514f394558632be293c4274fe6p-1, + -0x1.p0 + }, + { // Entry 546 + 0x1.85efaa7a485824cc9f98f88674c08b83p-1, + 0x1.fffffep-1 + }, + { // Entry 547 + -0x1.85efaa7a485824cc9f98f88674c08b83p-1, + -0x1.fffffep-1 + }, + { // Entry 548 + 0x1.4fc442656d206b21f6dcd108d6a88ad7p-1, + 0x1.921fb6p-1 + }, + { // Entry 549 + -0x1.4fc442656d206b21f6dcd108d6a88ad7p-1, + -0x1.921fb6p-1 + }, + { // Entry 550 + 0x1.000001ffffffffffffffffffffffffffp-126, + 0x1.000002p-126 + }, + { // Entry 551 + -0x1.000001ffffffffffffffffffffffffffp-126, + -0x1.000002p-126 + }, + { // Entry 552 + 0x1.ffffffffffffffffffffffffffffffffp-127, + 0x1.p-126 + }, + { // Entry 553 + -0x1.ffffffffffffffffffffffffffffffffp-127, + -0x1.p-126 + }, + { // Entry 554 + 0x1.fffffbffffffffffffffffffffffffffp-127, + 0x1.fffffcp-127 + }, + { // Entry 555 + -0x1.fffffbffffffffffffffffffffffffffp-127, + -0x1.fffffcp-127 + }, + { // Entry 556 + 0x1.fffff7ffffffffffffffffffffffffffp-127, + 0x1.fffff8p-127 + }, + { // Entry 557 + -0x1.fffff7ffffffffffffffffffffffffffp-127, + -0x1.fffff8p-127 + }, + { // Entry 558 + 0x1.ffffffffffffffffffffffffffffffffp-149, + 0x1.p-148 + }, + { // Entry 559 + -0x1.ffffffffffffffffffffffffffffffffp-149, + -0x1.p-148 + }, + { // Entry 560 + 0.0f, + 0x1.p-149 + }, + { // Entry 561 + -0.0f, + -0x1.p-149 + }, + { // Entry 562 + 0.0, + 0.0f + }, + { // Entry 563 + -0.0, + -0.0f + } +}; diff --git a/tests/math_data/trunc_intel_data.h b/tests/math_data/trunc_intel_data.h new file mode 100644 index 000000000..4d3a2d8c1 --- /dev/null +++ b/tests/math_data/trunc_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_trunc_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.0p-1074 + }, + { // Entry 1 + -0.0, + -0.0 + }, + { // Entry 2 + 0.0, + 0x1.0p-1074 + }, + { // Entry 3 + 0.0, + 0x1.fffffffffffffp-2 + }, + { // Entry 4 + 0.0, + 0x1.0p-1 + }, + { // Entry 5 + 0.0, + 0x1.0000000000001p-1 + }, + { // Entry 6 + 0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 8 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 9 + 0x1.p0, + 0x1.7ffffffffffffp0 + }, + { // Entry 10 + 0x1.p0, + 0x1.8p0 + }, + { // Entry 11 + 0x1.p0, + 0x1.8000000000001p0 + }, + { // Entry 12 + 0x1.p0, + 0x1.fffffffffffffp0 + }, + { // Entry 13 + 0x1.p1, + 0x1.0p1 + }, + { // Entry 14 + 0x1.p1, + 0x1.0000000000001p1 + }, + { // Entry 15 + 0x1.p1, + 0x1.3ffffffffffffp1 + }, + { // Entry 16 + 0x1.p1, + 0x1.4p1 + }, + { // Entry 17 + 0x1.p1, + 0x1.4000000000001p1 + }, + { // Entry 18 + 0x1.8cp6, + 0x1.8ffffffffffffp6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.9p6 + }, + { // Entry 20 + 0x1.90p6, + 0x1.9000000000001p6 + }, + { // Entry 21 + 0x1.90p6, + 0x1.91fffffffffffp6 + }, + { // Entry 22 + 0x1.90p6, + 0x1.920p6 + }, + { // Entry 23 + 0x1.90p6, + 0x1.9200000000001p6 + }, + { // Entry 24 + 0x1.f380p9, + 0x1.f3fffffffffffp9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f40p9 + }, + { // Entry 26 + 0x1.f4p9, + 0x1.f400000000001p9 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.f43ffffffffffp9 + }, + { // Entry 28 + 0x1.f4p9, + 0x1.f44p9 + }, + { // Entry 29 + 0x1.f4p9, + 0x1.f440000000001p9 + }, + { // Entry 30 + 0x1.ffffffffffff80p49, + 0x1.fffffffffffffp49 + }, + { // Entry 31 + 0x1.p50, + 0x1.0p50 + }, + { // Entry 32 + 0x1.p50, + 0x1.0000000000001p50 + }, + { // Entry 33 + 0x1.ffffffffffffc0p50, + 0x1.fffffffffffffp50 + }, + { // Entry 34 + 0x1.p51, + 0x1.0p51 + }, + { // Entry 35 + 0x1.p51, + 0x1.0000000000001p51 + }, + { // Entry 36 + 0x1.ffffffffffffe0p51, + 0x1.fffffffffffffp51 + }, + { // Entry 37 + 0x1.p52, + 0x1.0p52 + }, + { // Entry 38 + 0x1.00000000000010p52, + 0x1.0000000000001p52 + }, + { // Entry 39 + 0x1.fffffffffffff0p52, + 0x1.fffffffffffffp52 + }, + { // Entry 40 + 0x1.p53, + 0x1.0p53 + }, + { // Entry 41 + 0x1.00000000000010p53, + 0x1.0000000000001p53 + }, + { // Entry 42 + 0x1.fffffffffffff0p53, + 0x1.fffffffffffffp53 + }, + { // Entry 43 + 0x1.p54, + 0x1.0p54 + }, + { // Entry 44 + 0x1.00000000000010p54, + 0x1.0000000000001p54 + }, + { // Entry 45 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 46 + -0.0, + -0x1.0000000000001p-1 + }, + { // Entry 47 + -0.0, + -0x1.0p-1 + }, + { // Entry 48 + -0.0, + -0x1.fffffffffffffp-2 + }, + { // Entry 49 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 51 + -0.0, + -0x1.fffffffffffffp-1 + }, + { // Entry 52 + -0x1.p0, + -0x1.8000000000001p0 + }, + { // Entry 53 + -0x1.p0, + -0x1.8p0 + }, + { // Entry 54 + -0x1.p0, + -0x1.7ffffffffffffp0 + }, + { // Entry 55 + -0x1.p1, + -0x1.0000000000001p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.0p1 + }, + { // Entry 57 + -0x1.p0, + -0x1.fffffffffffffp0 + }, + { // Entry 58 + -0x1.p1, + -0x1.4000000000001p1 + }, + { // Entry 59 + -0x1.p1, + -0x1.4p1 + }, + { // Entry 60 + -0x1.p1, + -0x1.3ffffffffffffp1 + }, + { // Entry 61 + -0x1.90p6, + -0x1.9000000000001p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.9p6 + }, + { // Entry 63 + -0x1.8cp6, + -0x1.8ffffffffffffp6 + }, + { // Entry 64 + -0x1.90p6, + -0x1.9200000000001p6 + }, + { // Entry 65 + -0x1.90p6, + -0x1.920p6 + }, + { // Entry 66 + -0x1.90p6, + -0x1.91fffffffffffp6 + }, + { // Entry 67 + -0x1.f4p9, + -0x1.f400000000001p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f40p9 + }, + { // Entry 69 + -0x1.f380p9, + -0x1.f3fffffffffffp9 + }, + { // Entry 70 + -0x1.f4p9, + -0x1.f440000000001p9 + }, + { // Entry 71 + -0x1.f4p9, + -0x1.f44p9 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f43ffffffffffp9 + }, + { // Entry 73 + -0x1.p50, + -0x1.0000000000001p50 + }, + { // Entry 74 + -0x1.p50, + -0x1.0p50 + }, + { // Entry 75 + -0x1.ffffffffffff80p49, + -0x1.fffffffffffffp49 + }, + { // Entry 76 + -0x1.p51, + -0x1.0000000000001p51 + }, + { // Entry 77 + -0x1.p51, + -0x1.0p51 + }, + { // Entry 78 + -0x1.ffffffffffffc0p50, + -0x1.fffffffffffffp50 + }, + { // Entry 79 + -0x1.00000000000010p52, + -0x1.0000000000001p52 + }, + { // Entry 80 + -0x1.p52, + -0x1.0p52 + }, + { // Entry 81 + -0x1.ffffffffffffe0p51, + -0x1.fffffffffffffp51 + }, + { // Entry 82 + -0x1.00000000000010p53, + -0x1.0000000000001p53 + }, + { // Entry 83 + -0x1.p53, + -0x1.0p53 + }, + { // Entry 84 + -0x1.fffffffffffff0p52, + -0x1.fffffffffffffp52 + }, + { // Entry 85 + -0x1.00000000000010p54, + -0x1.0000000000001p54 + }, + { // Entry 86 + -0x1.p54, + -0x1.0p54 + }, + { // Entry 87 + -0x1.fffffffffffff0p53, + -0x1.fffffffffffffp53 + }, + { // Entry 88 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 89 + 0x1.fffffff8p29, + 0x1.fffffffffffffp29 + }, + { // Entry 90 + 0x1.p30, + 0x1.0p30 + }, + { // Entry 91 + 0x1.p30, + 0x1.0000000000001p30 + }, + { // Entry 92 + 0x1.fffffff4p30, + 0x1.fffffff7ffffep30 + }, + { // Entry 93 + 0x1.fffffff4p30, + 0x1.fffffff7fffffp30 + }, + { // Entry 94 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 95 + 0x1.fffffff8p30, + 0x1.fffffff800001p30 + }, + { // Entry 96 + 0x1.fffffff8p30, + 0x1.fffffff800002p30 + }, + { // Entry 97 + 0x1.fffffff8p30, + 0x1.fffffff9ffffep30 + }, + { // Entry 98 + 0x1.fffffff8p30, + 0x1.fffffff9fffffp30 + }, + { // Entry 99 + 0x1.fffffff8p30, + 0x1.fffffffa0p30 + }, + { // Entry 100 + 0x1.fffffff8p30, + 0x1.fffffffa00001p30 + }, + { // Entry 101 + 0x1.fffffff8p30, + 0x1.fffffffa00002p30 + }, + { // Entry 102 + 0x1.fffffff8p30, + 0x1.fffffffbffffep30 + }, + { // Entry 103 + 0x1.fffffff8p30, + 0x1.fffffffbfffffp30 + }, + { // Entry 104 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 105 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 106 + 0x1.fffffffcp30, + 0x1.fffffffc00002p30 + }, + { // Entry 107 + 0x1.fffffffcp30, + 0x1.fffffffdffffep30 + }, + { // Entry 108 + 0x1.fffffffcp30, + 0x1.fffffffdfffffp30 + }, + { // Entry 109 + 0x1.fffffffcp30, + 0x1.fffffffe0p30 + }, + { // Entry 110 + 0x1.fffffffcp30, + 0x1.fffffffe00001p30 + }, + { // Entry 111 + 0x1.fffffffcp30, + 0x1.fffffffe00002p30 + }, + { // Entry 112 + 0x1.fffffffcp30, + 0x1.ffffffffffffep30 + }, + { // Entry 113 + 0x1.fffffffcp30, + 0x1.fffffffffffffp30 + }, + { // Entry 114 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 115 + 0x1.p31, + 0x1.0000000000001p31 + }, + { // Entry 116 + 0x1.p31, + 0x1.0000000000002p31 + }, + { // Entry 117 + 0x1.p31, + 0x1.00000000ffffep31 + }, + { // Entry 118 + 0x1.p31, + 0x1.00000000fffffp31 + }, + { // Entry 119 + 0x1.p31, + 0x1.000000010p31 + }, + { // Entry 120 + 0x1.p31, + 0x1.0000000100001p31 + }, + { // Entry 121 + 0x1.p31, + 0x1.0000000100002p31 + }, + { // Entry 122 + 0x1.ffffffe0p30, + 0x1.ffffffep30 + }, + { // Entry 123 + 0x1.ffffffe4p30, + 0x1.ffffffe40p30 + }, + { // Entry 124 + 0x1.ffffffe8p30, + 0x1.ffffffe80p30 + }, + { // Entry 125 + 0x1.ffffffecp30, + 0x1.ffffffec0p30 + }, + { // Entry 126 + 0x1.fffffff0p30, + 0x1.fffffffp30 + }, + { // Entry 127 + 0x1.fffffff4p30, + 0x1.fffffff40p30 + }, + { // Entry 128 + 0x1.fffffff8p30, + 0x1.fffffff80p30 + }, + { // Entry 129 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 130 + 0x1.p31, + 0x1.0p31 + }, + { // Entry 131 + 0x1.00000002p31, + 0x1.000000020p31 + }, + { // Entry 132 + -0x1.p30, + -0x1.0000000000001p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.0p30 + }, + { // Entry 134 + -0x1.fffffff8p29, + -0x1.fffffffffffffp29 + }, + { // Entry 135 + -0x1.fffffff8p30, + -0x1.fffffff800002p30 + }, + { // Entry 136 + -0x1.fffffff8p30, + -0x1.fffffff800001p30 + }, + { // Entry 137 + -0x1.fffffff8p30, + -0x1.fffffff80p30 + }, + { // Entry 138 + -0x1.fffffff4p30, + -0x1.fffffff7fffffp30 + }, + { // Entry 139 + -0x1.fffffff4p30, + -0x1.fffffff7ffffep30 + }, + { // Entry 140 + -0x1.fffffff8p30, + -0x1.fffffffa00002p30 + }, + { // Entry 141 + -0x1.fffffff8p30, + -0x1.fffffffa00001p30 + }, + { // Entry 142 + -0x1.fffffff8p30, + -0x1.fffffffa0p30 + }, + { // Entry 143 + -0x1.fffffff8p30, + -0x1.fffffff9fffffp30 + }, + { // Entry 144 + -0x1.fffffff8p30, + -0x1.fffffff9ffffep30 + }, + { // Entry 145 + -0x1.fffffffcp30, + -0x1.fffffffc00002p30 + }, + { // Entry 146 + -0x1.fffffffcp30, + -0x1.fffffffc00001p30 + }, + { // Entry 147 + -0x1.fffffffcp30, + -0x1.fffffffc0p30 + }, + { // Entry 148 + -0x1.fffffff8p30, + -0x1.fffffffbfffffp30 + }, + { // Entry 149 + -0x1.fffffff8p30, + -0x1.fffffffbffffep30 + }, + { // Entry 150 + -0x1.fffffffcp30, + -0x1.fffffffe00002p30 + }, + { // Entry 151 + -0x1.fffffffcp30, + -0x1.fffffffe00001p30 + }, + { // Entry 152 + -0x1.fffffffcp30, + -0x1.fffffffe0p30 + }, + { // Entry 153 + -0x1.fffffffcp30, + -0x1.fffffffdfffffp30 + }, + { // Entry 154 + -0x1.fffffffcp30, + -0x1.fffffffdffffep30 + }, + { // Entry 155 + -0x1.p31, + -0x1.0000000000002p31 + }, + { // Entry 156 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 158 + -0x1.fffffffcp30, + -0x1.fffffffffffffp30 + }, + { // Entry 159 + -0x1.fffffffcp30, + -0x1.ffffffffffffep30 + }, + { // Entry 160 + -0x1.p31, + -0x1.0000000100002p31 + }, + { // Entry 161 + -0x1.p31, + -0x1.0000000100001p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.000000010p31 + }, + { // Entry 163 + -0x1.p31, + -0x1.00000000fffffp31 + }, + { // Entry 164 + -0x1.p31, + -0x1.00000000ffffep31 + }, + { // Entry 165 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 166 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 167 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 168 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 169 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 170 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 171 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 172 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 173 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 174 + -0x1.ffffffe0p30, + -0x1.ffffffep30 + }, + { // Entry 175 + 0x1.ffffffffffffe0p61, + 0x1.ffffffffffffep61 + }, + { // Entry 176 + 0x1.fffffffffffff0p61, + 0x1.fffffffffffffp61 + }, + { // Entry 177 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 178 + 0x1.00000000000010p62, + 0x1.0000000000001p62 + }, + { // Entry 179 + 0x1.00000000000020p62, + 0x1.0000000000002p62 + }, + { // Entry 180 + 0x1.ffffffffffffe0p62, + 0x1.ffffffffffffep62 + }, + { // Entry 181 + 0x1.fffffffffffff0p62, + 0x1.fffffffffffffp62 + }, + { // Entry 182 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 183 + 0x1.00000000000010p63, + 0x1.0000000000001p63 + }, + { // Entry 184 + 0x1.00000000000020p63, + 0x1.0000000000002p63 + }, + { // Entry 185 + 0x1.ffffffffffffe0p63, + 0x1.ffffffffffffep63 + }, + { // Entry 186 + 0x1.fffffffffffff0p63, + 0x1.fffffffffffffp63 + }, + { // Entry 187 + 0x1.p64, + 0x1.0p64 + }, + { // Entry 188 + 0x1.00000000000010p64, + 0x1.0000000000001p64 + }, + { // Entry 189 + 0x1.00000000000020p64, + 0x1.0000000000002p64 + }, + { // Entry 190 + -0x1.00000000000020p62, + -0x1.0000000000002p62 + }, + { // Entry 191 + -0x1.00000000000010p62, + -0x1.0000000000001p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 193 + -0x1.fffffffffffff0p61, + -0x1.fffffffffffffp61 + }, + { // Entry 194 + -0x1.ffffffffffffe0p61, + -0x1.ffffffffffffep61 + }, + { // Entry 195 + -0x1.00000000000020p63, + -0x1.0000000000002p63 + }, + { // Entry 196 + -0x1.00000000000010p63, + -0x1.0000000000001p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 198 + -0x1.fffffffffffff0p62, + -0x1.fffffffffffffp62 + }, + { // Entry 199 + -0x1.ffffffffffffe0p62, + -0x1.ffffffffffffep62 + }, + { // Entry 200 + -0x1.00000000000020p64, + -0x1.0000000000002p64 + }, + { // Entry 201 + -0x1.00000000000010p64, + -0x1.0000000000001p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.0p64 + }, + { // Entry 203 + -0x1.fffffffffffff0p63, + -0x1.fffffffffffffp63 + }, + { // Entry 204 + -0x1.ffffffffffffe0p63, + -0x1.ffffffffffffep63 + }, + { // Entry 205 + 0x1.p62, + 0x1.0p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.0p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.0p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.0p63 + }, + { // Entry 209 + 0x1.fffffff8p30, + 0x1.fffffffbfffffp30 + }, + { // Entry 210 + 0x1.fffffffcp30, + 0x1.fffffffc0p30 + }, + { // Entry 211 + 0x1.fffffffcp30, + 0x1.fffffffc00001p30 + }, + { // Entry 212 + -0x1.p31, + -0x1.0000000000001p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.0p31 + }, + { // Entry 214 + -0x1.fffffffcp30, + -0x1.fffffffffffffp30 + }, + { // Entry 215 + 0x1.80p1, + 0x1.fffffffffffffp1 + }, + { // Entry 216 + 0x1.p2, + 0x1.0p2 + }, + { // Entry 217 + 0x1.p2, + 0x1.0000000000001p2 + }, + { // Entry 218 + 0x1.c0p2, + 0x1.fffffffffffffp2 + }, + { // Entry 219 + 0x1.p3, + 0x1.0p3 + }, + { // Entry 220 + 0x1.p3, + 0x1.0000000000001p3 + }, + { // Entry 221 + 0x1.e0p3, + 0x1.fffffffffffffp3 + }, + { // Entry 222 + 0x1.p4, + 0x1.0p4 + }, + { // Entry 223 + 0x1.p4, + 0x1.0000000000001p4 + }, + { // Entry 224 + 0x1.f0p4, + 0x1.fffffffffffffp4 + }, + { // Entry 225 + 0x1.p5, + 0x1.0p5 + }, + { // Entry 226 + 0x1.p5, + 0x1.0000000000001p5 + }, + { // Entry 227 + 0x1.f8p5, + 0x1.fffffffffffffp5 + }, + { // Entry 228 + 0x1.p6, + 0x1.0p6 + }, + { // Entry 229 + 0x1.p6, + 0x1.0000000000001p6 + }, + { // Entry 230 + 0x1.fcp6, + 0x1.fffffffffffffp6 + }, + { // Entry 231 + 0x1.p7, + 0x1.0p7 + }, + { // Entry 232 + 0x1.p7, + 0x1.0000000000001p7 + }, + { // Entry 233 + 0x1.fep7, + 0x1.fffffffffffffp7 + }, + { // Entry 234 + 0x1.p8, + 0x1.0p8 + }, + { // Entry 235 + 0x1.p8, + 0x1.0000000000001p8 + }, + { // Entry 236 + 0x1.ffp8, + 0x1.fffffffffffffp8 + }, + { // Entry 237 + 0x1.p9, + 0x1.0p9 + }, + { // Entry 238 + 0x1.p9, + 0x1.0000000000001p9 + }, + { // Entry 239 + 0x1.ff80p9, + 0x1.fffffffffffffp9 + }, + { // Entry 240 + 0x1.p10, + 0x1.0p10 + }, + { // Entry 241 + 0x1.p10, + 0x1.0000000000001p10 + }, + { // Entry 242 + 0x1.ffc0p10, + 0x1.fffffffffffffp10 + }, + { // Entry 243 + 0x1.p11, + 0x1.0p11 + }, + { // Entry 244 + 0x1.p11, + 0x1.0000000000001p11 + }, + { // Entry 245 + 0x1.ffe0p11, + 0x1.fffffffffffffp11 + }, + { // Entry 246 + 0x1.p12, + 0x1.0p12 + }, + { // Entry 247 + 0x1.p12, + 0x1.0000000000001p12 + }, + { // Entry 248 + 0x1.p2, + 0x1.1ffffffffffffp2 + }, + { // Entry 249 + 0x1.p2, + 0x1.2p2 + }, + { // Entry 250 + 0x1.p2, + 0x1.2000000000001p2 + }, + { // Entry 251 + 0x1.p3, + 0x1.0ffffffffffffp3 + }, + { // Entry 252 + 0x1.p3, + 0x1.1p3 + }, + { // Entry 253 + 0x1.p3, + 0x1.1000000000001p3 + }, + { // Entry 254 + 0x1.p4, + 0x1.07fffffffffffp4 + }, + { // Entry 255 + 0x1.p4, + 0x1.080p4 + }, + { // Entry 256 + 0x1.p4, + 0x1.0800000000001p4 + }, + { // Entry 257 + 0x1.p5, + 0x1.03fffffffffffp5 + }, + { // Entry 258 + 0x1.p5, + 0x1.040p5 + }, + { // Entry 259 + 0x1.p5, + 0x1.0400000000001p5 + }, + { // Entry 260 + 0x1.p6, + 0x1.01fffffffffffp6 + }, + { // Entry 261 + 0x1.p6, + 0x1.020p6 + }, + { // Entry 262 + 0x1.p6, + 0x1.0200000000001p6 + }, + { // Entry 263 + 0x1.p7, + 0x1.00fffffffffffp7 + }, + { // Entry 264 + 0x1.p7, + 0x1.010p7 + }, + { // Entry 265 + 0x1.p7, + 0x1.0100000000001p7 + }, + { // Entry 266 + 0x1.p8, + 0x1.007ffffffffffp8 + }, + { // Entry 267 + 0x1.p8, + 0x1.008p8 + }, + { // Entry 268 + 0x1.p8, + 0x1.0080000000001p8 + }, + { // Entry 269 + 0x1.p9, + 0x1.003ffffffffffp9 + }, + { // Entry 270 + 0x1.p9, + 0x1.004p9 + }, + { // Entry 271 + 0x1.p9, + 0x1.0040000000001p9 + }, + { // Entry 272 + 0x1.p10, + 0x1.001ffffffffffp10 + }, + { // Entry 273 + 0x1.p10, + 0x1.002p10 + }, + { // Entry 274 + 0x1.p10, + 0x1.0020000000001p10 + }, + { // Entry 275 + 0x1.0040p10, + 0x1.005ffffffffffp10 + }, + { // Entry 276 + 0x1.0040p10, + 0x1.006p10 + }, + { // Entry 277 + 0x1.0040p10, + 0x1.0060000000001p10 + }, + { // Entry 278 + 0x1.p11, + 0x1.000ffffffffffp11 + }, + { // Entry 279 + 0x1.p11, + 0x1.001p11 + }, + { // Entry 280 + 0x1.p11, + 0x1.0010000000001p11 + }, + { // Entry 281 + 0x1.p12, + 0x1.0007fffffffffp12 + }, + { // Entry 282 + 0x1.p12, + 0x1.00080p12 + }, + { // Entry 283 + 0x1.p12, + 0x1.0008000000001p12 + }, + { // Entry 284 + HUGE_VAL, + HUGE_VAL + }, + { // Entry 285 + -HUGE_VAL, + -HUGE_VAL + }, + { // Entry 286 + 0x1.fffffffffffff0p1023, + 0x1.fffffffffffffp1023 + }, + { // Entry 287 + -0x1.fffffffffffff0p1023, + -0x1.fffffffffffffp1023 + }, + { // Entry 288 + 0x1.ffffffffffffe0p1023, + 0x1.ffffffffffffep1023 + }, + { // Entry 289 + -0x1.ffffffffffffe0p1023, + -0x1.ffffffffffffep1023 + }, + { // Entry 290 + 0x1.80p1, + 0x1.921fb54442d18p1 + }, + { // Entry 291 + -0x1.80p1, + -0x1.921fb54442d18p1 + }, + { // Entry 292 + 0x1.p0, + 0x1.921fb54442d18p0 + }, + { // Entry 293 + -0x1.p0, + -0x1.921fb54442d18p0 + }, + { // Entry 294 + 0x1.p0, + 0x1.0000000000001p0 + }, + { // Entry 295 + -0x1.p0, + -0x1.0000000000001p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.0p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.0p0 + }, + { // Entry 298 + 0.0, + 0x1.fffffffffffffp-1 + }, + { // Entry 299 + -0.0, + -0x1.fffffffffffffp-1 + }, + { // Entry 300 + 0.0, + 0x1.921fb54442d18p-1 + }, + { // Entry 301 + -0.0, + -0x1.921fb54442d18p-1 + }, + { // Entry 302 + 0.0, + 0x1.0000000000001p-1022 + }, + { // Entry 303 + -0.0, + -0x1.0000000000001p-1022 + }, + { // Entry 304 + 0.0, + 0x1.0p-1022 + }, + { // Entry 305 + -0.0, + -0x1.0p-1022 + }, + { // Entry 306 + 0.0, + 0x1.ffffffffffffep-1023 + }, + { // Entry 307 + -0.0, + -0x1.ffffffffffffep-1023 + }, + { // Entry 308 + 0.0, + 0x1.ffffffffffffcp-1023 + }, + { // Entry 309 + -0.0, + -0x1.ffffffffffffcp-1023 + }, + { // Entry 310 + 0.0, + 0x1.0p-1073 + }, + { // Entry 311 + -0.0, + -0x1.0p-1073 + }, + { // Entry 312 + 0.0, + 0x1.0p-1074 + }, + { // Entry 313 + -0.0, + -0x1.0p-1074 + }, + { // Entry 314 + 0.0, + 0.0 + }, + { // Entry 315 + -0.0, + -0.0 + }, + { // Entry 316 + 0x1.p0, + 0x1.8p0 + }, + { // Entry 317 + -0x1.p0, + -0x1.8p0 + }, + { // Entry 318 + 0x1.p1, + 0x1.4p1 + }, + { // Entry 319 + -0x1.p1, + -0x1.4p1 + }, + { // Entry 320 + 0.0, + 0x1.fffffp-2 + }, + { // Entry 321 + 0.0, + 0x1.0p-1 + }, + { // Entry 322 + 0.0, + 0x1.00001p-1 + }, + { // Entry 323 + -0.0, + -0x1.fffffp-2 + }, + { // Entry 324 + -0.0, + -0x1.0p-1 + }, + { // Entry 325 + -0.0, + -0x1.00001p-1 + }, + { // Entry 326 + 0x1.p0, + 0x1.80001p0 + }, + { // Entry 327 + 0x1.p0, + 0x1.7ffffp0 + }, + { // Entry 328 + -0x1.p0, + -0x1.80001p0 + }, + { // Entry 329 + -0x1.p0, + -0x1.7ffffp0 + } +}; diff --git a/tests/math_data/truncf_intel_data.h b/tests/math_data/truncf_intel_data.h new file mode 100644 index 000000000..1f1a447aa --- /dev/null +++ b/tests/math_data/truncf_intel_data.h @@ -0,0 +1,1338 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +static data_1_1_t g_truncf_intel_data[] = { + { // Entry 0 + -0.0, + -0x1.p-149 + }, + { // Entry 1 + 0.0, + 0.0 + }, + { // Entry 2 + 0.0, + 0x1.p-149 + }, + { // Entry 3 + 0.0, + 0x1.fffffep-2 + }, + { // Entry 4 + 0.0, + 0x1.p-1 + }, + { // Entry 5 + 0.0, + 0x1.000002p-1 + }, + { // Entry 6 + 0.0, + 0x1.fffffep-1 + }, + { // Entry 7 + 0x1.p0, + 0x1.p0 + }, + { // Entry 8 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 9 + 0x1.p0, + 0x1.7ffffep0 + }, + { // Entry 10 + 0x1.p0, + 0x1.80p0 + }, + { // Entry 11 + 0x1.p0, + 0x1.800002p0 + }, + { // Entry 12 + 0x1.p0, + 0x1.fffffep0 + }, + { // Entry 13 + 0x1.p1, + 0x1.p1 + }, + { // Entry 14 + 0x1.p1, + 0x1.000002p1 + }, + { // Entry 15 + 0x1.p1, + 0x1.3ffffep1 + }, + { // Entry 16 + 0x1.p1, + 0x1.40p1 + }, + { // Entry 17 + 0x1.p1, + 0x1.400002p1 + }, + { // Entry 18 + 0x1.8cp6, + 0x1.8ffffep6 + }, + { // Entry 19 + 0x1.90p6, + 0x1.90p6 + }, + { // Entry 20 + 0x1.90p6, + 0x1.900002p6 + }, + { // Entry 21 + 0x1.90p6, + 0x1.91fffep6 + }, + { // Entry 22 + 0x1.90p6, + 0x1.92p6 + }, + { // Entry 23 + 0x1.90p6, + 0x1.920002p6 + }, + { // Entry 24 + 0x1.f380p9, + 0x1.f3fffep9 + }, + { // Entry 25 + 0x1.f4p9, + 0x1.f4p9 + }, + { // Entry 26 + 0x1.f4p9, + 0x1.f40002p9 + }, + { // Entry 27 + 0x1.f4p9, + 0x1.f43ffep9 + }, + { // Entry 28 + 0x1.f4p9, + 0x1.f440p9 + }, + { // Entry 29 + 0x1.f4p9, + 0x1.f44002p9 + }, + { // Entry 30 + 0x1.fffff0p20, + 0x1.fffffep20 + }, + { // Entry 31 + 0x1.p21, + 0x1.p21 + }, + { // Entry 32 + 0x1.p21, + 0x1.000002p21 + }, + { // Entry 33 + 0x1.fffff8p21, + 0x1.fffffep21 + }, + { // Entry 34 + 0x1.p22, + 0x1.p22 + }, + { // Entry 35 + 0x1.p22, + 0x1.000002p22 + }, + { // Entry 36 + 0x1.fffffcp22, + 0x1.fffffep22 + }, + { // Entry 37 + 0x1.p23, + 0x1.p23 + }, + { // Entry 38 + 0x1.000002p23, + 0x1.000002p23 + }, + { // Entry 39 + 0x1.fffffep23, + 0x1.fffffep23 + }, + { // Entry 40 + 0x1.p24, + 0x1.p24 + }, + { // Entry 41 + 0x1.000002p24, + 0x1.000002p24 + }, + { // Entry 42 + 0x1.fffffep24, + 0x1.fffffep24 + }, + { // Entry 43 + 0x1.p25, + 0x1.p25 + }, + { // Entry 44 + 0x1.000002p25, + 0x1.000002p25 + }, + { // Entry 45 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 46 + -0.0, + -0x1.000002p-1 + }, + { // Entry 47 + -0.0, + -0x1.p-1 + }, + { // Entry 48 + -0.0, + -0x1.fffffep-2 + }, + { // Entry 49 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 50 + -0x1.p0, + -0x1.p0 + }, + { // Entry 51 + -0.0, + -0x1.fffffep-1 + }, + { // Entry 52 + -0x1.p0, + -0x1.800002p0 + }, + { // Entry 53 + -0x1.p0, + -0x1.80p0 + }, + { // Entry 54 + -0x1.p0, + -0x1.7ffffep0 + }, + { // Entry 55 + -0x1.p1, + -0x1.000002p1 + }, + { // Entry 56 + -0x1.p1, + -0x1.p1 + }, + { // Entry 57 + -0x1.p0, + -0x1.fffffep0 + }, + { // Entry 58 + -0x1.p1, + -0x1.400002p1 + }, + { // Entry 59 + -0x1.p1, + -0x1.40p1 + }, + { // Entry 60 + -0x1.p1, + -0x1.3ffffep1 + }, + { // Entry 61 + -0x1.90p6, + -0x1.900002p6 + }, + { // Entry 62 + -0x1.90p6, + -0x1.90p6 + }, + { // Entry 63 + -0x1.8cp6, + -0x1.8ffffep6 + }, + { // Entry 64 + -0x1.90p6, + -0x1.920002p6 + }, + { // Entry 65 + -0x1.90p6, + -0x1.92p6 + }, + { // Entry 66 + -0x1.90p6, + -0x1.91fffep6 + }, + { // Entry 67 + -0x1.f4p9, + -0x1.f40002p9 + }, + { // Entry 68 + -0x1.f4p9, + -0x1.f4p9 + }, + { // Entry 69 + -0x1.f380p9, + -0x1.f3fffep9 + }, + { // Entry 70 + -0x1.f4p9, + -0x1.f44002p9 + }, + { // Entry 71 + -0x1.f4p9, + -0x1.f440p9 + }, + { // Entry 72 + -0x1.f4p9, + -0x1.f43ffep9 + }, + { // Entry 73 + -0x1.p21, + -0x1.000002p21 + }, + { // Entry 74 + -0x1.p21, + -0x1.p21 + }, + { // Entry 75 + -0x1.fffff0p20, + -0x1.fffffep20 + }, + { // Entry 76 + -0x1.p22, + -0x1.000002p22 + }, + { // Entry 77 + -0x1.p22, + -0x1.p22 + }, + { // Entry 78 + -0x1.fffff8p21, + -0x1.fffffep21 + }, + { // Entry 79 + -0x1.000002p23, + -0x1.000002p23 + }, + { // Entry 80 + -0x1.p23, + -0x1.p23 + }, + { // Entry 81 + -0x1.fffffcp22, + -0x1.fffffep22 + }, + { // Entry 82 + -0x1.000002p24, + -0x1.000002p24 + }, + { // Entry 83 + -0x1.p24, + -0x1.p24 + }, + { // Entry 84 + -0x1.fffffep23, + -0x1.fffffep23 + }, + { // Entry 85 + -0x1.000002p25, + -0x1.000002p25 + }, + { // Entry 86 + -0x1.p25, + -0x1.p25 + }, + { // Entry 87 + -0x1.fffffep24, + -0x1.fffffep24 + }, + { // Entry 88 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 89 + 0x1.fffffep29, + 0x1.fffffep29 + }, + { // Entry 90 + 0x1.p30, + 0x1.p30 + }, + { // Entry 91 + 0x1.000002p30, + 0x1.000002p30 + }, + { // Entry 92 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 93 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 94 + 0x1.p31, + 0x1.p31 + }, + { // Entry 95 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 96 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 97 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 98 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 99 + 0x1.p31, + 0x1.p31 + }, + { // Entry 100 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 101 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 102 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 103 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 104 + 0x1.p31, + 0x1.p31 + }, + { // Entry 105 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 106 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 107 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 108 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 109 + 0x1.p31, + 0x1.p31 + }, + { // Entry 110 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 111 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 112 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 113 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 114 + 0x1.p31, + 0x1.p31 + }, + { // Entry 115 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 116 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 117 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 118 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 119 + 0x1.p31, + 0x1.p31 + }, + { // Entry 120 + 0x1.000002p31, + 0x1.000002p31 + }, + { // Entry 121 + 0x1.000004p31, + 0x1.000004p31 + }, + { // Entry 122 + 0x1.p31, + 0x1.p31 + }, + { // Entry 123 + 0x1.p31, + 0x1.p31 + }, + { // Entry 124 + 0x1.p31, + 0x1.p31 + }, + { // Entry 125 + 0x1.p31, + 0x1.p31 + }, + { // Entry 126 + 0x1.p31, + 0x1.p31 + }, + { // Entry 127 + 0x1.p31, + 0x1.p31 + }, + { // Entry 128 + 0x1.p31, + 0x1.p31 + }, + { // Entry 129 + 0x1.p31, + 0x1.p31 + }, + { // Entry 130 + 0x1.p31, + 0x1.p31 + }, + { // Entry 131 + 0x1.p31, + 0x1.p31 + }, + { // Entry 132 + -0x1.000002p30, + -0x1.000002p30 + }, + { // Entry 133 + -0x1.p30, + -0x1.p30 + }, + { // Entry 134 + -0x1.fffffep29, + -0x1.fffffep29 + }, + { // Entry 135 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 136 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 137 + -0x1.p31, + -0x1.p31 + }, + { // Entry 138 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 139 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 140 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 141 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 142 + -0x1.p31, + -0x1.p31 + }, + { // Entry 143 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 144 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 145 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 146 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 147 + -0x1.p31, + -0x1.p31 + }, + { // Entry 148 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 149 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 150 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 151 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 152 + -0x1.p31, + -0x1.p31 + }, + { // Entry 153 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 154 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 155 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 156 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 157 + -0x1.p31, + -0x1.p31 + }, + { // Entry 158 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 159 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 160 + -0x1.000004p31, + -0x1.000004p31 + }, + { // Entry 161 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 162 + -0x1.p31, + -0x1.p31 + }, + { // Entry 163 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 164 + -0x1.fffffcp30, + -0x1.fffffcp30 + }, + { // Entry 165 + -0x1.p31, + -0x1.p31 + }, + { // Entry 166 + -0x1.p31, + -0x1.p31 + }, + { // Entry 167 + -0x1.p31, + -0x1.p31 + }, + { // Entry 168 + -0x1.p31, + -0x1.p31 + }, + { // Entry 169 + -0x1.p31, + -0x1.p31 + }, + { // Entry 170 + -0x1.p31, + -0x1.p31 + }, + { // Entry 171 + -0x1.p31, + -0x1.p31 + }, + { // Entry 172 + -0x1.p31, + -0x1.p31 + }, + { // Entry 173 + -0x1.p31, + -0x1.p31 + }, + { // Entry 174 + -0x1.p31, + -0x1.p31 + }, + { // Entry 175 + 0x1.fffffcp61, + 0x1.fffffcp61 + }, + { // Entry 176 + 0x1.fffffep61, + 0x1.fffffep61 + }, + { // Entry 177 + 0x1.p62, + 0x1.p62 + }, + { // Entry 178 + 0x1.000002p62, + 0x1.000002p62 + }, + { // Entry 179 + 0x1.000004p62, + 0x1.000004p62 + }, + { // Entry 180 + 0x1.fffffcp62, + 0x1.fffffcp62 + }, + { // Entry 181 + 0x1.fffffep62, + 0x1.fffffep62 + }, + { // Entry 182 + 0x1.p63, + 0x1.p63 + }, + { // Entry 183 + 0x1.000002p63, + 0x1.000002p63 + }, + { // Entry 184 + 0x1.000004p63, + 0x1.000004p63 + }, + { // Entry 185 + 0x1.fffffcp63, + 0x1.fffffcp63 + }, + { // Entry 186 + 0x1.fffffep63, + 0x1.fffffep63 + }, + { // Entry 187 + 0x1.p64, + 0x1.p64 + }, + { // Entry 188 + 0x1.000002p64, + 0x1.000002p64 + }, + { // Entry 189 + 0x1.000004p64, + 0x1.000004p64 + }, + { // Entry 190 + -0x1.000004p62, + -0x1.000004p62 + }, + { // Entry 191 + -0x1.000002p62, + -0x1.000002p62 + }, + { // Entry 192 + -0x1.p62, + -0x1.p62 + }, + { // Entry 193 + -0x1.fffffep61, + -0x1.fffffep61 + }, + { // Entry 194 + -0x1.fffffcp61, + -0x1.fffffcp61 + }, + { // Entry 195 + -0x1.000004p63, + -0x1.000004p63 + }, + { // Entry 196 + -0x1.000002p63, + -0x1.000002p63 + }, + { // Entry 197 + -0x1.p63, + -0x1.p63 + }, + { // Entry 198 + -0x1.fffffep62, + -0x1.fffffep62 + }, + { // Entry 199 + -0x1.fffffcp62, + -0x1.fffffcp62 + }, + { // Entry 200 + -0x1.000004p64, + -0x1.000004p64 + }, + { // Entry 201 + -0x1.000002p64, + -0x1.000002p64 + }, + { // Entry 202 + -0x1.p64, + -0x1.p64 + }, + { // Entry 203 + -0x1.fffffep63, + -0x1.fffffep63 + }, + { // Entry 204 + -0x1.fffffcp63, + -0x1.fffffcp63 + }, + { // Entry 205 + 0x1.p62, + 0x1.p62 + }, + { // Entry 206 + 0x1.p63, + 0x1.p63 + }, + { // Entry 207 + -0x1.p62, + -0x1.p62 + }, + { // Entry 208 + -0x1.p63, + -0x1.p63 + }, + { // Entry 209 + 0x1.fffffcp30, + 0x1.fffffcp30 + }, + { // Entry 210 + 0x1.fffffep30, + 0x1.fffffep30 + }, + { // Entry 211 + 0x1.p31, + 0x1.p31 + }, + { // Entry 212 + -0x1.000002p31, + -0x1.000002p31 + }, + { // Entry 213 + -0x1.p31, + -0x1.p31 + }, + { // Entry 214 + -0x1.fffffep30, + -0x1.fffffep30 + }, + { // Entry 215 + 0x1.80p1, + 0x1.fffffep1 + }, + { // Entry 216 + 0x1.p2, + 0x1.p2 + }, + { // Entry 217 + 0x1.p2, + 0x1.000002p2 + }, + { // Entry 218 + 0x1.c0p2, + 0x1.fffffep2 + }, + { // Entry 219 + 0x1.p3, + 0x1.p3 + }, + { // Entry 220 + 0x1.p3, + 0x1.000002p3 + }, + { // Entry 221 + 0x1.e0p3, + 0x1.fffffep3 + }, + { // Entry 222 + 0x1.p4, + 0x1.p4 + }, + { // Entry 223 + 0x1.p4, + 0x1.000002p4 + }, + { // Entry 224 + 0x1.f0p4, + 0x1.fffffep4 + }, + { // Entry 225 + 0x1.p5, + 0x1.p5 + }, + { // Entry 226 + 0x1.p5, + 0x1.000002p5 + }, + { // Entry 227 + 0x1.f8p5, + 0x1.fffffep5 + }, + { // Entry 228 + 0x1.p6, + 0x1.p6 + }, + { // Entry 229 + 0x1.p6, + 0x1.000002p6 + }, + { // Entry 230 + 0x1.fcp6, + 0x1.fffffep6 + }, + { // Entry 231 + 0x1.p7, + 0x1.p7 + }, + { // Entry 232 + 0x1.p7, + 0x1.000002p7 + }, + { // Entry 233 + 0x1.fep7, + 0x1.fffffep7 + }, + { // Entry 234 + 0x1.p8, + 0x1.p8 + }, + { // Entry 235 + 0x1.p8, + 0x1.000002p8 + }, + { // Entry 236 + 0x1.ffp8, + 0x1.fffffep8 + }, + { // Entry 237 + 0x1.p9, + 0x1.p9 + }, + { // Entry 238 + 0x1.p9, + 0x1.000002p9 + }, + { // Entry 239 + 0x1.ff80p9, + 0x1.fffffep9 + }, + { // Entry 240 + 0x1.p10, + 0x1.p10 + }, + { // Entry 241 + 0x1.p10, + 0x1.000002p10 + }, + { // Entry 242 + 0x1.ffc0p10, + 0x1.fffffep10 + }, + { // Entry 243 + 0x1.p11, + 0x1.p11 + }, + { // Entry 244 + 0x1.p11, + 0x1.000002p11 + }, + { // Entry 245 + 0x1.ffe0p11, + 0x1.fffffep11 + }, + { // Entry 246 + 0x1.p12, + 0x1.p12 + }, + { // Entry 247 + 0x1.p12, + 0x1.000002p12 + }, + { // Entry 248 + 0x1.p2, + 0x1.1ffffep2 + }, + { // Entry 249 + 0x1.p2, + 0x1.20p2 + }, + { // Entry 250 + 0x1.p2, + 0x1.200002p2 + }, + { // Entry 251 + 0x1.p3, + 0x1.0ffffep3 + }, + { // Entry 252 + 0x1.p3, + 0x1.10p3 + }, + { // Entry 253 + 0x1.p3, + 0x1.100002p3 + }, + { // Entry 254 + 0x1.p4, + 0x1.07fffep4 + }, + { // Entry 255 + 0x1.p4, + 0x1.08p4 + }, + { // Entry 256 + 0x1.p4, + 0x1.080002p4 + }, + { // Entry 257 + 0x1.p5, + 0x1.03fffep5 + }, + { // Entry 258 + 0x1.p5, + 0x1.04p5 + }, + { // Entry 259 + 0x1.p5, + 0x1.040002p5 + }, + { // Entry 260 + 0x1.p6, + 0x1.01fffep6 + }, + { // Entry 261 + 0x1.p6, + 0x1.02p6 + }, + { // Entry 262 + 0x1.p6, + 0x1.020002p6 + }, + { // Entry 263 + 0x1.p7, + 0x1.00fffep7 + }, + { // Entry 264 + 0x1.p7, + 0x1.01p7 + }, + { // Entry 265 + 0x1.p7, + 0x1.010002p7 + }, + { // Entry 266 + 0x1.p8, + 0x1.007ffep8 + }, + { // Entry 267 + 0x1.p8, + 0x1.0080p8 + }, + { // Entry 268 + 0x1.p8, + 0x1.008002p8 + }, + { // Entry 269 + 0x1.p9, + 0x1.003ffep9 + }, + { // Entry 270 + 0x1.p9, + 0x1.0040p9 + }, + { // Entry 271 + 0x1.p9, + 0x1.004002p9 + }, + { // Entry 272 + 0x1.p10, + 0x1.001ffep10 + }, + { // Entry 273 + 0x1.p10, + 0x1.0020p10 + }, + { // Entry 274 + 0x1.p10, + 0x1.002002p10 + }, + { // Entry 275 + 0x1.0040p10, + 0x1.005ffep10 + }, + { // Entry 276 + 0x1.0040p10, + 0x1.0060p10 + }, + { // Entry 277 + 0x1.0040p10, + 0x1.006002p10 + }, + { // Entry 278 + 0x1.p11, + 0x1.000ffep11 + }, + { // Entry 279 + 0x1.p11, + 0x1.0010p11 + }, + { // Entry 280 + 0x1.p11, + 0x1.001002p11 + }, + { // Entry 281 + 0x1.p12, + 0x1.0007fep12 + }, + { // Entry 282 + 0x1.p12, + 0x1.0008p12 + }, + { // Entry 283 + 0x1.p12, + 0x1.000802p12 + }, + { // Entry 284 + HUGE_VALF, + HUGE_VALF + }, + { // Entry 285 + -HUGE_VALF, + -HUGE_VALF + }, + { // Entry 286 + 0x1.fffffep127, + 0x1.fffffep127 + }, + { // Entry 287 + -0x1.fffffep127, + -0x1.fffffep127 + }, + { // Entry 288 + 0x1.fffffcp127, + 0x1.fffffcp127 + }, + { // Entry 289 + -0x1.fffffcp127, + -0x1.fffffcp127 + }, + { // Entry 290 + 0x1.80p1, + 0x1.921fb6p1 + }, + { // Entry 291 + -0x1.80p1, + -0x1.921fb6p1 + }, + { // Entry 292 + 0x1.p0, + 0x1.921fb6p0 + }, + { // Entry 293 + -0x1.p0, + -0x1.921fb6p0 + }, + { // Entry 294 + 0x1.p0, + 0x1.000002p0 + }, + { // Entry 295 + -0x1.p0, + -0x1.000002p0 + }, + { // Entry 296 + 0x1.p0, + 0x1.p0 + }, + { // Entry 297 + -0x1.p0, + -0x1.p0 + }, + { // Entry 298 + 0.0, + 0x1.fffffep-1 + }, + { // Entry 299 + -0.0, + -0x1.fffffep-1 + }, + { // Entry 300 + 0.0, + 0x1.921fb6p-1 + }, + { // Entry 301 + -0.0, + -0x1.921fb6p-1 + }, + { // Entry 302 + 0.0, + 0x1.000002p-126 + }, + { // Entry 303 + -0.0, + -0x1.000002p-126 + }, + { // Entry 304 + 0.0, + 0x1.p-126 + }, + { // Entry 305 + -0.0, + -0x1.p-126 + }, + { // Entry 306 + 0.0, + 0x1.fffffcp-127 + }, + { // Entry 307 + -0.0, + -0x1.fffffcp-127 + }, + { // Entry 308 + 0.0, + 0x1.fffff8p-127 + }, + { // Entry 309 + -0.0, + -0x1.fffff8p-127 + }, + { // Entry 310 + 0.0, + 0x1.p-148 + }, + { // Entry 311 + -0.0, + -0x1.p-148 + }, + { // Entry 312 + 0.0, + 0x1.p-149 + }, + { // Entry 313 + -0.0, + -0x1.p-149 + }, + { // Entry 314 + 0.0, + 0.0f + }, + { // Entry 315 + -0.0, + -0.0f + }, + { // Entry 316 + 0x1.p0, + 0x1.80p0 + }, + { // Entry 317 + -0x1.p0, + -0x1.80p0 + }, + { // Entry 318 + 0x1.p1, + 0x1.40p1 + }, + { // Entry 319 + -0x1.p1, + -0x1.40p1 + }, + { // Entry 320 + 0.0, + 0x1.fffff0p-2 + }, + { // Entry 321 + 0.0, + 0x1.p-1 + }, + { // Entry 322 + 0.0, + 0x1.000010p-1 + }, + { // Entry 323 + -0.0, + -0x1.fffff0p-2 + }, + { // Entry 324 + -0.0, + -0x1.p-1 + }, + { // Entry 325 + -0.0, + -0x1.000010p-1 + }, + { // Entry 326 + 0x1.p0, + 0x1.800010p0 + }, + { // Entry 327 + 0x1.p0, + 0x1.7ffff0p0 + }, + { // Entry 328 + -0x1.p0, + -0x1.800010p0 + }, + { // Entry 329 + -0x1.p0, + -0x1.7ffff0p0 + } +}; diff --git a/tests/math_data_test.h b/tests/math_data_test.h index f3d25ef21..8aa2bf180 100644 --- a/tests/math_data_test.h +++ b/tests/math_data_test.h @@ -24,6 +24,12 @@ struct data_1_1_t { T1 input; }; +template +struct data_int_1_t { + int expected; + T1 input; +}; + template struct data_1_2_t { RT expected; @@ -38,6 +44,29 @@ struct data_2_1_t { T input; }; +template +struct data_1_int_1_t { + RT1 expected1; + int expected2; + T input; +}; + +template +struct data_1_int_2_t { + RT1 expected1; + int expected2; + T1 input1; + T2 input2; +}; + +template +struct data_1_3_t { + RT expected; + T1 input1; + T2 input2; + T3 input3; +}; + template union fp_u; template <> union fp_u { @@ -117,6 +146,17 @@ void DoMathDataTest(data_1_1_t (&data)[N], RT f(T)) { } } +// Runs through the array 'data' applying 'f' to each of the input values +// and asserting that the result is within ULP ulps of the expected value. +// For testing a (double) -> int function like ilogb(3). +template +void DoMathDataTest(data_int_1_t (&data)[N], int f(T)) { + fesetenv(FE_DFL_ENV); + for (size_t i = 0; i < N; ++i) { + EXPECT_EQ(data[i].expected, f(data[i].input)) << "Failed on element " << i; + } +} + // Runs through the array 'data' applying 'f' to each of the pairs of input values // and asserting that the result is within ULP ulps of the expected value. // For testing a (double, double) -> double function like pow(3). @@ -146,3 +186,66 @@ void DoMathDataTest(data_2_1_t (&data)[N], void f(T1, RT1*, RT2*)) EXPECT_PRED_FORMAT2(predicate2, data[i].expected2, out2) << "Failed on element " << i; } } + +// Runs through the array 'data' applying 'f' to each of the input values +// and asserting that the results are within ULP ulps of the expected values. +// For testing a (double, double*) -> double function like modf(3). +template +void DoMathDataTest(data_2_1_t (&data)[N], RT1 f(T1, RT2*)) { + fesetenv(FE_DFL_ENV); + FpUlpEq predicate1; + FpUlpEq predicate2; + for (size_t i = 0; i < N; ++i) { + RT1 out1; + RT2 out2; + out1 = f(data[i].input, &out2); + EXPECT_PRED_FORMAT2(predicate1, data[i].expected1, out1) << "Failed on element " << i; + EXPECT_PRED_FORMAT2(predicate2, data[i].expected2, out2) << "Failed on element " << i; + } +} + +// Runs through the array 'data' applying 'f' to each of the input values +// and asserting that the results are within ULP ulps of the expected values. +// For testing a (double, int*) -> double function like frexp(3). +template +void DoMathDataTest(data_1_int_1_t (&data)[N], RT1 f(T1, int*)) { + fesetenv(FE_DFL_ENV); + FpUlpEq predicate1; + for (size_t i = 0; i < N; ++i) { + RT1 out1; + int out2; + out1 = f(data[i].input, &out2); + EXPECT_PRED_FORMAT2(predicate1, data[i].expected1, out1) << "Failed on element " << i; + EXPECT_EQ(data[i].expected2, out2) << "Failed on element " << i; + } +} + +// Runs through the array 'data' applying 'f' to each of the input values +// and asserting that the results are within ULP ulps of the expected values. +// For testing a (double, double, int*) -> double function like remquo(3). +template +void DoMathDataTest(data_1_int_2_t (&data)[N], RT1 f(T1, T2, int*)) { + fesetenv(FE_DFL_ENV); + FpUlpEq predicate1; + for (size_t i = 0; i < N; ++i) { + RT1 out1; + int out2; + out1 = f(data[i].input1, data[i].input2, &out2); + EXPECT_PRED_FORMAT2(predicate1, data[i].expected1, out1) << "Failed on element " << i; + EXPECT_EQ(data[i].expected2, out2) << "Failed on element " << i; + } +} + +// Runs through the array 'data' applying 'f' to each of the pairs of input values +// and asserting that the result is within ULP ulps of the expected value. +// For testing a (double, double, double) -> double function like fma(3). +template +void DoMathDataTest(data_1_3_t (&data)[N], RT f(T1, T2, T3)) { + fesetenv(FE_DFL_ENV); + FpUlpEq predicate; + for (size_t i = 0; i < N; ++i) { + EXPECT_PRED_FORMAT2(predicate, + data[i].expected, f(data[i].input1, data[i].input2, data[i].input3)) << "Failed on element " << i; + } +} + diff --git a/tests/math_test.cpp b/tests/math_test.cpp index e14d3ddf4..e616e9b08 100644 --- a/tests/math_test.cpp +++ b/tests/math_test.cpp @@ -1379,72 +1379,492 @@ TEST(math, nextafterl_OpenBSD_bug) { ASSERT_TRUE(nextafterl(1.0L, 0.0L) - 1.0L < 0.0L); } -#include "math_cos_intel_data.h" +#include "math_data/acos_intel_data.h" +TEST(math, acos_intel) { + DoMathDataTest<1>(g_acos_intel_data, acos); +} + +#include "math_data/acosf_intel_data.h" +TEST(math, acosf_intel) { + DoMathDataTest<1>(g_acosf_intel_data, acosf); +} + +#include "math_data/acosh_intel_data.h" +TEST(math, acosh_intel) { + DoMathDataTest<2>(g_acosh_intel_data, acosh); +} + +#include "math_data/acoshf_intel_data.h" +TEST(math, acoshf_intel) { + DoMathDataTest<2>(g_acoshf_intel_data, acoshf); +} + +#include "math_data/asin_intel_data.h" +TEST(math, asin_intel) { + DoMathDataTest<1>(g_asin_intel_data, asin); +} + +#include "math_data/asinf_intel_data.h" +TEST(math, asinf_intel) { + DoMathDataTest<1>(g_asinf_intel_data, asinf); +} + +#include "math_data/asinh_intel_data.h" +TEST(math, asinh_intel) { + DoMathDataTest<2>(g_asinh_intel_data, asinh); +} + +#include "math_data/asinhf_intel_data.h" +TEST(math, asinhf_intel) { + DoMathDataTest<2>(g_asinhf_intel_data, asinhf); +} + +#include "math_data/atan2_intel_data.h" +TEST(math, atan2_intel) { + DoMathDataTest<2>(g_atan2_intel_data, atan2); +} + +#include "math_data/atan2f_intel_data.h" +TEST(math, atan2f_intel) { + DoMathDataTest<2>(g_atan2f_intel_data, atan2f); +} + +#include "math_data/atan_intel_data.h" +TEST(math, atan_intel) { + DoMathDataTest<1>(g_atan_intel_data, atan); +} + +#include "math_data/atanf_intel_data.h" +TEST(math, atanf_intel) { + DoMathDataTest<1>(g_atanf_intel_data, atanf); +} + +#include "math_data/atanh_intel_data.h" +TEST(math, atanh_intel) { + DoMathDataTest<2>(g_atanh_intel_data, atanh); +} + +#include "math_data/atanhf_intel_data.h" +TEST(math, atanhf_intel) { + DoMathDataTest<2>(g_atanhf_intel_data, atanhf); +} + +#include "math_data/cbrt_intel_data.h" +TEST(math, cbrt_intel) { + DoMathDataTest<1>(g_cbrt_intel_data, cbrt); +} + +#include "math_data/cbrtf_intel_data.h" +TEST(math, cbrtf_intel) { + DoMathDataTest<1>(g_cbrtf_intel_data, cbrtf); +} + +#include "math_data/ceil_intel_data.h" +TEST(math, ceil_intel) { + DoMathDataTest<1>(g_ceil_intel_data, ceil); +} + +#include "math_data/ceilf_intel_data.h" +TEST(math, ceilf_intel) { + DoMathDataTest<1>(g_ceilf_intel_data, ceilf); +} + +#include "math_data/copysign_intel_data.h" +TEST(math, copysign_intel) { + DoMathDataTest<1>(g_copysign_intel_data, copysign); +} + +#include "math_data/copysignf_intel_data.h" +TEST(math, copysignf_intel) { + DoMathDataTest<1>(g_copysignf_intel_data, copysignf); +} + +#include "math_data/cos_intel_data.h" TEST(math, cos_intel) { DoMathDataTest<1>(g_cos_intel_data, cos); } -#include "math_cosf_intel_data.h" +#include "math_data/cosf_intel_data.h" TEST(math, cosf_intel) { DoMathDataTest<1>(g_cosf_intel_data, cosf); } -#include "math_exp_intel_data.h" +#include "math_data/cosh_intel_data.h" +TEST(math, cosh_intel) { + DoMathDataTest<2>(g_cosh_intel_data, cosh); +} + +#include "math_data/coshf_intel_data.h" +TEST(math, coshf_intel) { + DoMathDataTest<2>(g_coshf_intel_data, coshf); +} + +#include "math_data/exp_intel_data.h" TEST(math, exp_intel) { DoMathDataTest<1>(g_exp_intel_data, exp); } -#include "math_expf_intel_data.h" +#include "math_data/expf_intel_data.h" TEST(math, expf_intel) { DoMathDataTest<1>(g_expf_intel_data, expf); } -#include "math_log_intel_data.h" +#include "math_data/exp2_intel_data.h" +TEST(math, exp2_intel) { + DoMathDataTest<1>(g_exp2_intel_data, exp2); +} + +#include "math_data/exp2f_intel_data.h" +TEST(math, exp2f_intel) { + DoMathDataTest<1>(g_exp2f_intel_data, exp2f); +} + +#include "math_data/expm1_intel_data.h" +TEST(math, expm1_intel) { + DoMathDataTest<1>(g_expm1_intel_data, expm1); +} + +#include "math_data/expm1f_intel_data.h" +TEST(math, expm1f_intel) { + DoMathDataTest<1>(g_expm1f_intel_data, expm1f); +} + +#include "math_data/fabs_intel_data.h" +TEST(math, fabs_intel) { + DoMathDataTest<1>(g_fabs_intel_data, fabs); +} + +#include "math_data/fabsf_intel_data.h" +TEST(math, fabsf_intel) { + DoMathDataTest<1>(g_fabsf_intel_data, fabsf); +} + +#include "math_data/fdim_intel_data.h" +TEST(math, fdim_intel) { + DoMathDataTest<1>(g_fdim_intel_data, fdim); +} + +#include "math_data/fdimf_intel_data.h" +TEST(math, fdimf_intel) { + DoMathDataTest<1>(g_fdimf_intel_data, fdimf); +} + +#include "math_data/floor_intel_data.h" +TEST(math, floor_intel) { + DoMathDataTest<1>(g_floor_intel_data, floor); +} + +#include "math_data/floorf_intel_data.h" +TEST(math, floorf_intel) { + DoMathDataTest<1>(g_floorf_intel_data, floorf); +} + +#include "math_data/fma_intel_data.h" +TEST(math, fma_intel) { + DoMathDataTest<1>(g_fma_intel_data, fma); +} + +#include "math_data/fmaf_intel_data.h" +TEST(math, fmaf_intel) { + DoMathDataTest<1>(g_fmaf_intel_data, fmaf); +} + +#include "math_data/fmax_intel_data.h" +TEST(math, fmax_intel) { + DoMathDataTest<1>(g_fmax_intel_data, fmax); +} + +#include "math_data/fmaxf_intel_data.h" +TEST(math, fmaxf_intel) { + DoMathDataTest<1>(g_fmaxf_intel_data, fmaxf); +} + +#include "math_data/fmin_intel_data.h" +TEST(math, fmin_intel) { + DoMathDataTest<1>(g_fmin_intel_data, fmin); +} + +#include "math_data/fminf_intel_data.h" +TEST(math, fminf_intel) { + DoMathDataTest<1>(g_fminf_intel_data, fminf); +} + +#include "math_data/fmod_intel_data.h" +TEST(math, fmod_intel) { + DoMathDataTest<1>(g_fmod_intel_data, fmod); +} + +#include "math_data/fmodf_intel_data.h" +TEST(math, fmodf_intel) { + DoMathDataTest<1>(g_fmodf_intel_data, fmodf); +} + +#include "math_data/frexp_intel_data.h" +TEST(math, frexp_intel) { + DoMathDataTest<1>(g_frexp_intel_data, frexp); +} + +#include "math_data/frexpf_intel_data.h" +TEST(math, frexpf_intel) { + DoMathDataTest<1>(g_frexpf_intel_data, frexpf); +} + +#include "math_data/hypot_intel_data.h" +TEST(math, hypot_intel) { + DoMathDataTest<1>(g_hypot_intel_data, hypot); +} + +#include "math_data/hypotf_intel_data.h" +TEST(math, hypotf_intel) { + DoMathDataTest<1>(g_hypotf_intel_data, hypotf); +} + +#include "math_data/ilogb_intel_data.h" +TEST(math, ilogb_intel) { + DoMathDataTest<1>(g_ilogb_intel_data, ilogb); +} + +#include "math_data/ilogbf_intel_data.h" +TEST(math, ilogbf_intel) { + DoMathDataTest<1>(g_ilogbf_intel_data, ilogbf); +} + +#include "math_data/ldexp_intel_data.h" +TEST(math, ldexp_intel) { + DoMathDataTest<1>(g_ldexp_intel_data, ldexp); +} + +#include "math_data/ldexpf_intel_data.h" +TEST(math, ldexpf_intel) { + DoMathDataTest<1>(g_ldexpf_intel_data, ldexpf); +} + +#include "math_data/log_intel_data.h" TEST(math, log_intel) { DoMathDataTest<1>(g_log_intel_data, log); } -#include "math_logf_intel_data.h" +#include "math_data/logf_intel_data.h" TEST(math, logf_intel) { DoMathDataTest<1>(g_logf_intel_data, logf); } -#include "math_pow_intel_data.h" +#include "math_data/log10_intel_data.h" +TEST(math, log10_intel) { + DoMathDataTest<1>(g_log10_intel_data, log10); +} + +#include "math_data/log10f_intel_data.h" +TEST(math, log10f_intel) { + DoMathDataTest<1>(g_log10f_intel_data, log10f); +} + +#include "math_data/log1p_intel_data.h" +TEST(math, log1p_intel) { + DoMathDataTest<1>(g_log1p_intel_data, log1p); +} + +#include "math_data/log1pf_intel_data.h" +TEST(math, log1pf_intel) { + DoMathDataTest<1>(g_log1pf_intel_data, log1pf); +} + +#include "math_data/log2_intel_data.h" +TEST(math, log2_intel) { + DoMathDataTest<1>(g_log2_intel_data, log2); +} + +#include "math_data/log2f_intel_data.h" +TEST(math, log2f_intel) { + DoMathDataTest<1>(g_log2f_intel_data, log2f); +} + +#include "math_data/logb_intel_data.h" +TEST(math, logb_intel) { + DoMathDataTest<1>(g_logb_intel_data, logb); +} + +#include "math_data/logbf_intel_data.h" +TEST(math, logbf_intel) { + DoMathDataTest<1>(g_logbf_intel_data, logbf); +} + +#include "math_data/modf_intel_data.h" +TEST(math, modf_intel) { + DoMathDataTest<1>(g_modf_intel_data, modf); +} + +#include "math_data/modff_intel_data.h" +TEST(math, modff_intel) { + DoMathDataTest<1>(g_modff_intel_data, modff); +} + +#include "math_data/nearbyint_intel_data.h" +TEST(math, nearbyint_intel) { + DoMathDataTest<1>(g_nearbyint_intel_data, nearbyint); +} + +#include "math_data/nearbyintf_intel_data.h" +TEST(math, nearbyintf_intel) { + DoMathDataTest<1>(g_nearbyintf_intel_data, nearbyintf); +} + +#include "math_data/nextafter_intel_data.h" +TEST(math, nextafter_intel) { + DoMathDataTest<1>(g_nextafter_intel_data, nextafter); +} + +#include "math_data/nextafterf_intel_data.h" +TEST(math, nextafterf_intel) { + DoMathDataTest<1>(g_nextafterf_intel_data, nextafterf); +} + +#include "math_data/pow_intel_data.h" TEST(math, pow_intel) { DoMathDataTest<1>(g_pow_intel_data, pow); } -#include "math_powf_intel_data.h" +#include "math_data/powf_intel_data.h" TEST(math, powf_intel) { DoMathDataTest<1>(g_powf_intel_data, powf); } -#include "math_sin_intel_data.h" +#include "math_data/remainder_intel_data.h" +TEST(math, remainder_intel) { + DoMathDataTest<1>(g_remainder_intel_data, remainder); +} + +#include "math_data/remainderf_intel_data.h" +TEST(math, remainderf_intel) { + DoMathDataTest<1>(g_remainderf_intel_data, remainderf); +} + +#include "math_data/remquo_intel_data.h" +TEST(math, remquo_intel) { + DoMathDataTest<1>(g_remquo_intel_data, remquo); +} + +#include "math_data/remquof_intel_data.h" +TEST(math, remquof_intel) { + DoMathDataTest<1>(g_remquof_intel_data, remquof); +} + +#include "math_data/rint_intel_data.h" +TEST(math, rint_intel) { + DoMathDataTest<1>(g_rint_intel_data, rint); +} + +#include "math_data/rintf_intel_data.h" +TEST(math, rintf_intel) { + DoMathDataTest<1>(g_rintf_intel_data, rintf); +} + +#include "math_data/round_intel_data.h" +TEST(math, round_intel) { + DoMathDataTest<1>(g_round_intel_data, round); +} + +#include "math_data/roundf_intel_data.h" +TEST(math, roundf_intel) { + DoMathDataTest<1>(g_roundf_intel_data, roundf); +} + +#include "math_data/scalb_intel_data.h" +TEST(math, scalb_intel) { + DoMathDataTest<1>(g_scalb_intel_data, scalb); +} + +#include "math_data/scalbf_intel_data.h" +TEST(math, scalbf_intel) { + DoMathDataTest<1>(g_scalbf_intel_data, scalbf); +} + +#include "math_data/scalbn_intel_data.h" +TEST(math, scalbn_intel) { + DoMathDataTest<1>(g_scalbn_intel_data, scalbn); +} + +#include "math_data/scalbnf_intel_data.h" +TEST(math, scalbnf_intel) { + DoMathDataTest<1>(g_scalbnf_intel_data, scalbnf); +} + +#include "math_data/significand_intel_data.h" +TEST(math, significand_intel) { + DoMathDataTest<1>(g_significand_intel_data, significand); +} + +#include "math_data/significandf_intel_data.h" +TEST(math, significandf_intel) { + DoMathDataTest<1>(g_significandf_intel_data, significandf); +} + +#include "math_data/sin_intel_data.h" TEST(math, sin_intel) { DoMathDataTest<1>(g_sin_intel_data, sin); } -#include "math_sincos_intel_data.h" -TEST(math, sincos_intel) { - DoMathDataTest<1>(g_sincos_intel_data, sincos); -} - -#include "math_sincosf_intel_data.h" -TEST(math, sincosf_intel) { - DoMathDataTest<1>(g_sincosf_intel_data, sincosf); -} - -#include "math_sinf_intel_data.h" +#include "math_data/sinf_intel_data.h" TEST(math, sinf_intel) { DoMathDataTest<1>(g_sinf_intel_data, sinf); } -#include "math_tan_intel_data.h" +#include "math_data/sinh_intel_data.h" +TEST(math, sinh_intel) { + DoMathDataTest<2>(g_sinh_intel_data, sinh); +} + +#include "math_data/sinhf_intel_data.h" +TEST(math, sinhf_intel) { + DoMathDataTest<2>(g_sinhf_intel_data, sinhf); +} + +#include "math_data/sincos_intel_data.h" +TEST(math, sincos_intel) { + DoMathDataTest<1>(g_sincos_intel_data, sincos); +} + +#include "math_data/sincosf_intel_data.h" +TEST(math, sincosf_intel) { + DoMathDataTest<1>(g_sincosf_intel_data, sincosf); +} + +#include "math_data/sqrt_intel_data.h" +TEST(math, sqrt_intel) { + DoMathDataTest<1>(g_sqrt_intel_data, sqrt); +} + +#include "math_data/sqrtf_intel_data.h" +TEST(math, sqrtf_intel) { + DoMathDataTest<1>(g_sqrtf_intel_data, sqrtf); +} + +#include "math_data/tan_intel_data.h" TEST(math, tan_intel) { DoMathDataTest<1>(g_tan_intel_data, tan); } -#include "math_tanf_intel_data.h" +#include "math_data/tanf_intel_data.h" TEST(math, tanf_intel) { DoMathDataTest<1>(g_tanf_intel_data, tanf); } + +#include "math_data/tanh_intel_data.h" +TEST(math, tanh_intel) { + DoMathDataTest<2>(g_tanh_intel_data, tanh); +} + +#include "math_data/tanhf_intel_data.h" +TEST(math, tanhf_intel) { + DoMathDataTest<2>(g_tanhf_intel_data, tanhf); +} + +#include "math_data/trunc_intel_data.h" +TEST(math, trunc_intel) { + DoMathDataTest<1>(g_trunc_intel_data, trunc); +} + +#include "math_data/truncf_intel_data.h" +TEST(math, truncf_intel) { + DoMathDataTest<1>(g_truncf_intel_data, truncf); +} diff --git a/tests/pthread_test.cpp b/tests/pthread_test.cpp index 5dc60eeee..d3b53325b 100644 --- a/tests/pthread_test.cpp +++ b/tests/pthread_test.cpp @@ -19,7 +19,6 @@ #include "private/ScopeGuard.h" #include "BionicDeathTest.h" #include "ScopedSignalHandler.h" -#include "gtest_ex.h" #include #include @@ -33,6 +32,8 @@ #include #include +#include + TEST(pthread, pthread_key_create) { pthread_key_t key; ASSERT_EQ(0, pthread_key_create(&key, NULL)); @@ -699,6 +700,79 @@ TEST(pthread, pthread_rwlock_smoke) { ASSERT_EQ(0, pthread_rwlock_destroy(&l)); } +struct RwlockWakeupHelperArg { + pthread_rwlock_t lock; + enum Progress { + LOCK_INITIALIZED, + LOCK_WAITING, + LOCK_RELEASED, + LOCK_ACCESSED + }; + std::atomic progress; +}; + +static void pthread_rwlock_reader_wakeup_writer_helper(RwlockWakeupHelperArg* arg) { + ASSERT_EQ(RwlockWakeupHelperArg::LOCK_INITIALIZED, arg->progress); + arg->progress = RwlockWakeupHelperArg::LOCK_WAITING; + + ASSERT_EQ(EBUSY, pthread_rwlock_trywrlock(&arg->lock)); + ASSERT_EQ(0, pthread_rwlock_wrlock(&arg->lock)); + ASSERT_EQ(RwlockWakeupHelperArg::LOCK_RELEASED, arg->progress); + ASSERT_EQ(0, pthread_rwlock_unlock(&arg->lock)); + + arg->progress = RwlockWakeupHelperArg::LOCK_ACCESSED; +} + +TEST(pthread, pthread_rwlock_reader_wakeup_writer) { + RwlockWakeupHelperArg wakeup_arg; + ASSERT_EQ(0, pthread_rwlock_init(&wakeup_arg.lock, NULL)); + ASSERT_EQ(0, pthread_rwlock_rdlock(&wakeup_arg.lock)); + wakeup_arg.progress = RwlockWakeupHelperArg::LOCK_INITIALIZED; + + pthread_t thread; + ASSERT_EQ(0, pthread_create(&thread, NULL, + reinterpret_cast(pthread_rwlock_reader_wakeup_writer_helper), &wakeup_arg)); + sleep(1); + ASSERT_EQ(RwlockWakeupHelperArg::LOCK_WAITING, wakeup_arg.progress); + wakeup_arg.progress = RwlockWakeupHelperArg::LOCK_RELEASED; + ASSERT_EQ(0, pthread_rwlock_unlock(&wakeup_arg.lock)); + + ASSERT_EQ(0, pthread_join(thread, NULL)); + ASSERT_EQ(RwlockWakeupHelperArg::LOCK_ACCESSED, wakeup_arg.progress); + ASSERT_EQ(0, pthread_rwlock_destroy(&wakeup_arg.lock)); +} + +static void pthread_rwlock_writer_wakeup_reader_helper(RwlockWakeupHelperArg* arg) { + ASSERT_EQ(RwlockWakeupHelperArg::LOCK_INITIALIZED, arg->progress); + arg->progress = RwlockWakeupHelperArg::LOCK_WAITING; + + ASSERT_EQ(EBUSY, pthread_rwlock_tryrdlock(&arg->lock)); + ASSERT_EQ(0, pthread_rwlock_rdlock(&arg->lock)); + ASSERT_EQ(RwlockWakeupHelperArg::LOCK_RELEASED, arg->progress); + ASSERT_EQ(0, pthread_rwlock_unlock(&arg->lock)); + + arg->progress = RwlockWakeupHelperArg::LOCK_ACCESSED; +} + +TEST(pthread, pthread_rwlock_writer_wakeup_reader) { + RwlockWakeupHelperArg wakeup_arg; + ASSERT_EQ(0, pthread_rwlock_init(&wakeup_arg.lock, NULL)); + ASSERT_EQ(0, pthread_rwlock_wrlock(&wakeup_arg.lock)); + wakeup_arg.progress = RwlockWakeupHelperArg::LOCK_INITIALIZED; + + pthread_t thread; + ASSERT_EQ(0, pthread_create(&thread, NULL, + reinterpret_cast(pthread_rwlock_writer_wakeup_reader_helper), &wakeup_arg)); + sleep(1); + ASSERT_EQ(RwlockWakeupHelperArg::LOCK_WAITING, wakeup_arg.progress); + wakeup_arg.progress = RwlockWakeupHelperArg::LOCK_RELEASED; + ASSERT_EQ(0, pthread_rwlock_unlock(&wakeup_arg.lock)); + + ASSERT_EQ(0, pthread_join(thread, NULL)); + ASSERT_EQ(RwlockWakeupHelperArg::LOCK_ACCESSED, wakeup_arg.progress); + ASSERT_EQ(0, pthread_rwlock_destroy(&wakeup_arg.lock)); +} + static int g_once_fn_call_count = 0; static void OnceFn() { ++g_once_fn_call_count; @@ -742,23 +816,21 @@ static void AtForkChild1() { g_atfork_child_calls = (g_atfork_child_calls << 4) static void AtForkChild2() { g_atfork_child_calls = (g_atfork_child_calls << 4) | 2; } TEST(pthread, pthread_atfork_smoke) { - test_isolated([] { - ASSERT_EQ(0, pthread_atfork(AtForkPrepare1, AtForkParent1, AtForkChild1)); - ASSERT_EQ(0, pthread_atfork(AtForkPrepare2, AtForkParent2, AtForkChild2)); + ASSERT_EQ(0, pthread_atfork(AtForkPrepare1, AtForkParent1, AtForkChild1)); + ASSERT_EQ(0, pthread_atfork(AtForkPrepare2, AtForkParent2, AtForkChild2)); - int pid = fork(); - ASSERT_NE(-1, pid) << strerror(errno); + int pid = fork(); + ASSERT_NE(-1, pid) << strerror(errno); - // Child and parent calls are made in the order they were registered. - if (pid == 0) { - ASSERT_EQ(0x12, g_atfork_child_calls); - _exit(0); - } - ASSERT_EQ(0x12, g_atfork_parent_calls); + // Child and parent calls are made in the order they were registered. + if (pid == 0) { + ASSERT_EQ(0x12, g_atfork_child_calls); + _exit(0); + } + ASSERT_EQ(0x12, g_atfork_parent_calls); - // Prepare calls are made in the reverse order. - ASSERT_EQ(0x21, g_atfork_prepare_calls); - }); + // Prepare calls are made in the reverse order. + ASSERT_EQ(0x21, g_atfork_prepare_calls); } TEST(pthread, pthread_attr_getscope) { @@ -800,7 +872,7 @@ TEST(pthread, pthread_condattr_setclock) { } TEST(pthread, pthread_cond_broadcast__preserves_condattr_flags) { -#if defined(__BIONIC__) // This tests a bionic implementation detail. +#if defined(__BIONIC__) pthread_condattr_t attr; pthread_condattr_init(&attr); @@ -813,16 +885,78 @@ TEST(pthread, pthread_cond_broadcast__preserves_condattr_flags) { ASSERT_EQ(0, pthread_cond_signal(&cond_var)); ASSERT_EQ(0, pthread_cond_broadcast(&cond_var)); - attr = static_cast(cond_var.value); + attr = static_cast(*reinterpret_cast(cond_var.__private)); clockid_t clock; ASSERT_EQ(0, pthread_condattr_getclock(&attr, &clock)); ASSERT_EQ(CLOCK_MONOTONIC, clock); int pshared; ASSERT_EQ(0, pthread_condattr_getpshared(&attr, &pshared)); ASSERT_EQ(PTHREAD_PROCESS_SHARED, pshared); -#else // __BIONIC__ - GTEST_LOG_(INFO) << "This test does nothing.\n"; -#endif // __BIONIC__ +#else // !defined(__BIONIC__) + GTEST_LOG_(INFO) << "This tests a bionic implementation detail.\n"; +#endif // !defined(__BIONIC__) +} + +class pthread_CondWakeupTest : public ::testing::Test { + protected: + pthread_mutex_t mutex; + pthread_cond_t cond; + + enum Progress { + INITIALIZED, + WAITING, + SIGNALED, + FINISHED, + }; + std::atomic progress; + pthread_t thread; + + protected: + virtual void SetUp() { + ASSERT_EQ(0, pthread_mutex_init(&mutex, NULL)); + ASSERT_EQ(0, pthread_cond_init(&cond, NULL)); + progress = INITIALIZED; + ASSERT_EQ(0, + pthread_create(&thread, NULL, reinterpret_cast(WaitThreadFn), this)); + } + + virtual void TearDown() { + ASSERT_EQ(0, pthread_join(thread, NULL)); + ASSERT_EQ(FINISHED, progress); + ASSERT_EQ(0, pthread_cond_destroy(&cond)); + ASSERT_EQ(0, pthread_mutex_destroy(&mutex)); + } + + void SleepUntilProgress(Progress expected_progress) { + while (progress != expected_progress) { + usleep(5000); + } + usleep(5000); + } + + private: + static void WaitThreadFn(pthread_CondWakeupTest* test) { + ASSERT_EQ(0, pthread_mutex_lock(&test->mutex)); + test->progress = WAITING; + while (test->progress == WAITING) { + ASSERT_EQ(0, pthread_cond_wait(&test->cond, &test->mutex)); + } + ASSERT_EQ(SIGNALED, test->progress); + test->progress = FINISHED; + ASSERT_EQ(0, pthread_mutex_unlock(&test->mutex)); + } +}; + +TEST_F(pthread_CondWakeupTest, signal) { + SleepUntilProgress(WAITING); + progress = SIGNALED; + pthread_cond_signal(&cond); +} + +TEST_F(pthread_CondWakeupTest, broadcast) { + SleepUntilProgress(WAITING); + progress = SIGNALED; + pthread_cond_broadcast(&cond); } TEST(pthread, pthread_mutex_timedlock) { diff --git a/tests/stdio_test.cpp b/tests/stdio_test.cpp index 890e86edc..2ecfc6072 100644 --- a/tests/stdio_test.cpp +++ b/tests/stdio_test.cpp @@ -965,3 +965,41 @@ TEST(stdio, fwrite_after_fread_slow_path) { TEST(stdio, fwrite_after_fread_fast_path) { test_fwrite_after_fread(64*1024); } + +// http://b/19172514 +TEST(stdio, fread_after_fseek) { + TemporaryFile tf; + + FILE* fp = fopen(tf.filename, "w+"); + ASSERT_TRUE(fp != nullptr); + + char file_data[12288]; + for (size_t i = 0; i < 12288; i++) { + file_data[i] = i; + } + ASSERT_EQ(12288U, fwrite(file_data, 1, 12288, fp)); + fclose(fp); + + fp = fopen(tf.filename, "r"); + ASSERT_TRUE(fp != nullptr); + + char buffer[8192]; + size_t cur_location = 0; + // Small read to populate internal buffer. + ASSERT_EQ(100U, fread(buffer, 1, 100, fp)); + ASSERT_EQ(memcmp(file_data, buffer, 100), 0); + + cur_location = static_cast(ftell(fp)); + // Large read to force reading into the user supplied buffer and bypassing + // the internal buffer. + ASSERT_EQ(8192U, fread(buffer, 1, 8192, fp)); + ASSERT_EQ(memcmp(file_data+cur_location, buffer, 8192), 0); + + // Small backwards seek to verify fseek does not reuse the internal buffer. + ASSERT_EQ(0, fseek(fp, -22, SEEK_CUR)); + cur_location = static_cast(ftell(fp)); + ASSERT_EQ(22U, fread(buffer, 1, 22, fp)); + ASSERT_EQ(memcmp(file_data+cur_location, buffer, 22), 0); + + fclose(fp); +} diff --git a/tests/string_test.cpp b/tests/string_test.cpp index 137565e25..1d63c7668 100644 --- a/tests/string_test.cpp +++ b/tests/string_test.cpp @@ -1385,3 +1385,18 @@ TEST(string, __gnu_basename) { TestBasename("///", ""); TestBasename("//usr//lib//", ""); } + +TEST(string, strnlen_147048) { + // https://code.google.com/p/android/issues/detail?id=147048 + char stack_src[64] = {0}; + EXPECT_EQ(0U, strnlen(stack_src, 1024*1024*1024)); + char* heap_src = new char[1]; + *heap_src = '\0'; + EXPECT_EQ(0U, strnlen(heap_src, 1024*1024*1024)); + delete[] heap_src; +} + +TEST(string, mempcpy) { + char dst[6]; + ASSERT_EQ(&dst[4], reinterpret_cast(mempcpy(dst, "hello", 4))); +} diff --git a/tests/sys_stat_test.cpp b/tests/sys_stat_test.cpp index 7bbb7c665..7c387ba2f 100644 --- a/tests/sys_stat_test.cpp +++ b/tests/sys_stat_test.cpp @@ -138,13 +138,18 @@ TEST(sys_stat, fchmodat_AT_SYMLINK_NOFOLLOW_nonexistant_file) { #endif } +static void AssertFileModeEquals(mode_t expected_mode, const char* filename) { + struct stat sb; + ASSERT_EQ(0, stat(filename, &sb)); + mode_t mask = S_IRWXU | S_IRWXG | S_IRWXO; + ASSERT_EQ(expected_mode & mask, static_cast(sb.st_mode) & mask); +} + TEST(sys_stat, fchmodat_file) { TemporaryFile tf; - struct stat sb; ASSERT_EQ(0, fchmodat(AT_FDCWD, tf.filename, 0751, 0)); - ASSERT_EQ(0, fstat(tf.fd, &sb)); - ASSERT_TRUE(0751 == (sb.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO))); + AssertFileModeEquals(0751, tf.filename); } TEST(sys_stat, fchmodat_AT_SYMLINK_NOFOLLOW_file) { @@ -153,11 +158,9 @@ TEST(sys_stat, fchmodat_AT_SYMLINK_NOFOLLOW_file) { int result = fchmodat(AT_FDCWD, tf.filename, 0751, AT_SYMLINK_NOFOLLOW); #if defined(__BIONIC__) - struct stat sb; ASSERT_EQ(0, result); ASSERT_EQ(0, errno); - ASSERT_EQ(0, fstat(tf.fd, &sb)); - ASSERT_TRUE(0751 == (sb.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO))); + AssertFileModeEquals(0751, tf.filename); #else // glibc 2.19 does not implement AT_SYMLINK_NOFOLLOW and always // returns ENOTSUP @@ -169,14 +172,12 @@ TEST(sys_stat, fchmodat_AT_SYMLINK_NOFOLLOW_file) { TEST(sys_stat, fchmodat_symlink) { TemporaryFile tf; char linkname[255]; - struct stat sb; snprintf(linkname, sizeof(linkname), "%s.link", tf.filename); ASSERT_EQ(0, symlink(tf.filename, linkname)); ASSERT_EQ(0, fchmodat(AT_FDCWD, linkname, 0751, 0)); - ASSERT_EQ(0, fstat(tf.fd, &sb)); - ASSERT_TRUE(0751 == (sb.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO))); + AssertFileModeEquals(0751, tf.filename); unlink(linkname); } @@ -194,28 +195,93 @@ TEST(sys_stat, fchmodat_dangling_symlink) { unlink(linkname); } +static void AssertSymlinkModeEquals(mode_t expected_mode, const char* linkname) { + struct stat sb; + ASSERT_EQ(0, fstatat(AT_FDCWD, linkname, &sb, AT_SYMLINK_NOFOLLOW)); + mode_t mask = S_IRWXU | S_IRWXG | S_IRWXO; + ASSERT_EQ(expected_mode & mask, static_cast(sb.st_mode) & mask); +} + TEST(sys_stat, fchmodat_AT_SYMLINK_NOFOLLOW_with_symlink) { TemporaryFile tf; - char linkname[255]; + struct stat tf_sb; + ASSERT_EQ(0, stat(tf.filename, &tf_sb)); + char linkname[255]; snprintf(linkname, sizeof(linkname), "%s.link", tf.filename); ASSERT_EQ(0, symlink(tf.filename, linkname)); - ASSERT_EQ(-1, fchmodat(AT_FDCWD, linkname, 0751, AT_SYMLINK_NOFOLLOW)); - ASSERT_EQ(ENOTSUP, errno); + int result = fchmodat(AT_FDCWD, linkname, 0751, AT_SYMLINK_NOFOLLOW); + // It depends on the kernel whether chmod operation on symlink is allowed. + if (result == 0) { + AssertSymlinkModeEquals(0751, linkname); + } else { + ASSERT_EQ(-1, result); + ASSERT_EQ(ENOTSUP, errno); + } + + // Target file mode shouldn't be modified. + AssertFileModeEquals(tf_sb.st_mode, tf.filename); unlink(linkname); } TEST(sys_stat, fchmodat_AT_SYMLINK_NOFOLLOW_with_dangling_symlink) { TemporaryFile tf; + char linkname[255]; char target[255]; - snprintf(linkname, sizeof(linkname), "%s.link", tf.filename); snprintf(target, sizeof(target), "%s.doesnotexist", tf.filename); ASSERT_EQ(0, symlink(target, linkname)); - ASSERT_EQ(-1, fchmodat(AT_FDCWD, linkname, 0751, AT_SYMLINK_NOFOLLOW)); - ASSERT_EQ(ENOTSUP, errno); + int result = fchmodat(AT_FDCWD, linkname, 0751, AT_SYMLINK_NOFOLLOW); + // It depends on the kernel whether chmod operation on symlink is allowed. + if (result == 0) { + AssertSymlinkModeEquals(0751, linkname); + } else { + ASSERT_EQ(-1, result); + ASSERT_EQ(ENOTSUP, errno); + } + unlink(linkname); } + +TEST(sys_stat, faccessat_EINVAL) { + ASSERT_EQ(-1, faccessat(AT_FDCWD, "/dev/null", F_OK, ~AT_SYMLINK_NOFOLLOW)); + ASSERT_EQ(EINVAL, errno); +#if defined(__BIONIC__) + ASSERT_EQ(-1, faccessat(AT_FDCWD, "/dev/null", ~(R_OK | W_OK | X_OK), 0)); + ASSERT_EQ(EINVAL, errno); +#else + ASSERT_EQ(0, faccessat(AT_FDCWD, "/dev/null", ~(R_OK | W_OK | X_OK), AT_SYMLINK_NOFOLLOW)); + ASSERT_EQ(-1, faccessat(AT_FDCWD, "/dev/null", ~(R_OK | W_OK | X_OK), 0)); + ASSERT_EQ(EINVAL, errno); +#endif +} + +TEST(sys_stat, faccessat_AT_SYMLINK_NOFOLLOW_EINVAL) { +#if defined(__BIONIC__) + // Android doesn't support AT_SYMLINK_NOFOLLOW + ASSERT_EQ(-1, faccessat(AT_FDCWD, "/dev/null", F_OK, AT_SYMLINK_NOFOLLOW)); + ASSERT_EQ(EINVAL, errno); +#else + ASSERT_EQ(0, faccessat(AT_FDCWD, "/dev/null", F_OK, AT_SYMLINK_NOFOLLOW)); +#endif +} + +TEST(sys_stat, faccessat_dev_null) { + ASSERT_EQ(0, faccessat(AT_FDCWD, "/dev/null", F_OK, 0)); + ASSERT_EQ(0, faccessat(AT_FDCWD, "/dev/null", R_OK, 0)); + ASSERT_EQ(0, faccessat(AT_FDCWD, "/dev/null", W_OK, 0)); + ASSERT_EQ(0, faccessat(AT_FDCWD, "/dev/null", R_OK|W_OK, 0)); +} + +TEST(sys_stat, faccessat_nonexistant) { + ASSERT_EQ(-1, faccessat(AT_FDCWD, "/blah", F_OK, AT_SYMLINK_NOFOLLOW)); +#if defined(__BIONIC__) + // Android doesn't support AT_SYMLINK_NOFOLLOW + ASSERT_EQ(EINVAL, errno); +#else + ASSERT_EQ(ENOENT, errno); +#endif +} diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp index f5c0524c4..f54a4619b 100644 --- a/tests/unistd_test.cpp +++ b/tests/unistd_test.cpp @@ -801,3 +801,22 @@ TEST(unistd, sysconf) { VERIFY_SYSCONF_NOT_SUPPORT(_SC_XOPEN_UUCP); #endif // defined(__BIONIC__) } + +TEST(unistd, dup2_same) { + // POSIX says of dup2: + // If fildes2 is already a valid open file descriptor ... + // [and] fildes is equal to fildes2 ... dup2() shall return + // fildes2 without closing it. + // This isn't true of dup3(2), so we need to manually implement that. + + // Equal and valid. + int fd = open("/proc/version", O_RDONLY); + ASSERT_TRUE(fd != -1); + ASSERT_EQ(fd, dup2(fd, fd)); + ASSERT_EQ(0, close(fd)); // Check that dup2 didn't close fd. + + // Equal, but invalid. + errno = 0; + ASSERT_EQ(-1, dup2(fd, fd)); + ASSERT_EQ(EBADF, errno); +} diff --git a/tests/wchar_test.cpp b/tests/wchar_test.cpp index 63f376086..e86d56dc0 100644 --- a/tests/wchar_test.cpp +++ b/tests/wchar_test.cpp @@ -234,6 +234,11 @@ TEST(wchar, wcsstr) { ASSERT_EQ(NULL, wcsstr(haystack, bad_needle)); } +TEST(wchar, wcsstr_80199) { + // https://code.google.com/p/android/issues/detail?id=80199 + ASSERT_TRUE(wcsstr(L"romrom", L"rom") != NULL); +} + TEST(wchar, mbtowc) { wchar_t out[8]; @@ -662,3 +667,8 @@ TEST(wchar, wcstoull_l_EINVAL) { wcstoull_l(L"123", NULL, 37, LC_GLOBAL_LOCALE); ASSERT_EQ(EINVAL, errno); } + +TEST(wchar, wmempcpy) { + wchar_t dst[6]; + ASSERT_EQ(&dst[4], wmempcpy(dst, L"hello", 4)); +} diff --git a/tools/Android.mk b/tools/Android.mk new file mode 100644 index 000000000..4dd66fe07 --- /dev/null +++ b/tools/Android.mk @@ -0,0 +1,19 @@ +# +# Copyright (C) 2015 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_PATH := $(call my-dir) + +include $(call all-subdir-makefiles) diff --git a/tools/relocation_packer/Android.mk b/tools/relocation_packer/Android.mk new file mode 100644 index 000000000..99a39c02b --- /dev/null +++ b/tools/relocation_packer/Android.mk @@ -0,0 +1,96 @@ +# +# Copyright (C) 2015 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +common_cppflags := -Wall -Wextra -Wunused -Werror -Wold-style-cast + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_CPP_EXTENSION := .cc + +LOCAL_SRC_FILES := \ + src/debug.cc \ + src/delta_encoder.cc \ + src/elf_file.cc \ + src/leb128.cc \ + src/packer.cc \ + src/sleb128.cc \ + +LOCAL_STATIC_LIBRARIES := libelf +LOCAL_C_INCLUDES := external/elfutils/src/libelf +LOCAL_MODULE := lib_relocation_packer + +LOCAL_CPPFLAGS := $(common_cppflags) + +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk + +include $(BUILD_HOST_STATIC_LIBRARY) + +include $(CLEAR_VARS) + +LOCAL_CPP_EXTENSION := .cc + +LOCAL_SRC_FILES := src/main.cc +LOCAL_STATIC_LIBRARIES := lib_relocation_packer libelf +LOCAL_C_INCLUDES := external/elfutils/src/libelf libnativehelper/include + +LOCAL_MODULE := relocation_packer + +LOCAL_CPPFLAGS := $(common_cppflags) + +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk + +include $(BUILD_HOST_EXECUTABLE) + +include $(CLEAR_VARS) + +LOCAL_CPP_EXTENSION := .cc + +LOCAL_SRC_FILES := \ + src/debug_unittest.cc \ + src/delta_encoder_unittest.cc \ + src/elf_file_unittest.cc \ + src/leb128_unittest.cc \ + src/sleb128_unittest.cc \ + src/packer_unittest.cc \ + +LOCAL_STATIC_LIBRARIES := lib_relocation_packer libelf +LOCAL_C_INCLUDES := external/elfutils/src/libelf + +LOCAL_CPPFLAGS := $(common_cppflags) + +LOCAL_MODULE := relocation_packer_unit_tests +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk + +include $(BUILD_HOST_NATIVE_TEST) + +# $(1) library name +define copy-test-library +include $(CLEAR_VARS) +LOCAL_IS_HOST_MODULE := true +LOCAL_MODULE := $(1) +LOCAL_MODULE_CLASS := SHARED_LIBRARIES +LOCAL_MODULE_PATH := $(HOST_OUT_EXECUTABLES) +LOCAL_STRIP_MODULE := false +LOCAL_SRC_FILES := test_data/$(1) +include $(BUILD_PREBUILT) +endef + +$(eval $(call copy-test-library,elf_file_unittest_relocs_arm32.so)) +$(eval $(call copy-test-library,elf_file_unittest_relocs_arm32_packed.so)) +$(eval $(call copy-test-library,elf_file_unittest_relocs_arm64.so)) +$(eval $(call copy-test-library,elf_file_unittest_relocs_arm64_packed.so)) diff --git a/tools/relocation_packer/LICENSE b/tools/relocation_packer/LICENSE new file mode 100644 index 000000000..972bb2edb --- /dev/null +++ b/tools/relocation_packer/LICENSE @@ -0,0 +1,27 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * 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. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "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 COPYRIGHT +// OWNER 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. diff --git a/tools/relocation_packer/README.TXT b/tools/relocation_packer/README.TXT new file mode 100644 index 000000000..071ab5df2 --- /dev/null +++ b/tools/relocation_packer/README.TXT @@ -0,0 +1,135 @@ +Introduction: +------------- + +Relative relocations are the bulk of dynamic relocations (the .rel.dyn +or .rela.dyn sections) in libchrome..so. The ELF standard +representation of them is wasteful. + +Packing uses a combination of run length encoding, delta encoding, and LEB128 +encoding to store them more efficiently. Packed relocations are placed in +a new .android.rel.dyn or .android.rela.dyn section. Packing reduces +the footprint of libchrome..so in the filesystem, in APK downloads, +and in memory when loaded on the device. + +A packed libchrome..so is designed so that it can be loaded directly +on Android, but requires the explicit support of a crazy linker that has been +extended to understand packed relocations. Packed relocations are currently +only supported on ARM. + +A packed libchrome..so cannot currently be used with the standard +Android runtime linker. + +See src/*.h for design and implementation notes. + + +Notes: +------ + +Packing does not adjust debug data. An unstripped libchrome..so +can be packed and will run, but may no longer be useful for debugging. + +Unpacking on the device requires the explicit support of an extended crazy +linker. Adds the following new .dynamic tags, used by the crazy linker to +find the packed .android.rel.dyn or .android.rela.dyn section data: + + DT_ANDROID_REL_OFFSET = DT_LOOS (Operating System specific: 0x6000000d) + - The offset of packed relocation data in libchrome..so + DT_ANDROID_REL_SIZE = DT_LOOS + 1 (Operating System Specific: 0x6000000e) + - The size of packed relocation data in bytes + +32 bit ARM libraries use relocations without addends. 64 bit ARM libraries +use relocations with addends. The packing strategy necessarily differs for +the two relocation types. + +Where libchrome..so contains relocations without addends, the format +of .android.rel.dyn data is: + + "APR1" identifier + N: the number of count-delta pairs in the encoding + A: the initial offset + N * C,D: N count-delta pairs + +Where libchrome..so contains relocations with addends, the format +of .android.rela.dyn data is: + + "APA1" identifier + N: the number of addr-addend delta pairs in the encoding + N * A,V: N addr-addend delta pairs + +All numbers in the encoding stream are stored as LEB128 values. For details +see http://en.wikipedia.org/wiki/LEB128. + +The streaming unpacking algorithm for 32 bit ARM is: + + skip over "APR1" + pairs, addr = next leb128 value, next leb128 value + emit R_ARM_RELATIVE relocation with r_offset = addr + while pairs: + count, delta = next leb128 value, next leb128 value + while count: + addr += delta + emit R_ARM_RELATIVE relocation with r_offset = addr + count-- + pairs-- + +The streaming unpacking algorithm for 64 bit ARM is: + + skip over "APA1" + pairs = next signed leb128 value + addr, addend = 0, 0 + while pairs: + addr += next signed leb128 value + addend += next signed leb128 value + emit R_AARCH64_RELATIVE relocation with r_offset = addr, r_addend = addend + pairs-- + + +Usage instructions: +------------------- + +To pack relocations, add an empty .android.rel.dyn or .android.rela.dyn and +then run the tool: + + echo -n 'NULL' >/tmp/small + if file libchrome..so | grep -q 'ELF 32'; then + arm-linux-androideabi-objcopy + --add-section .android.rel.dyn=/tmp/small + libchrome..so libchrome..so.packed + else + aarch64-linux-android-objcopy + --add-section .android.rela.dyn=/tmp/small + libchrome..so libchrome..so.packed + fi + rm /tmp/small + relocation_packer libchrome..so.packed + +To unpack and restore the shared library to its original state: + + cp libchrome..so.packed unpackable + relocation_packer -u unpackable + if file libchrome..so | grep -q 'ELF 32'; then + arm-linux-androideabi-objcopy \ + --remove-section=.android.rel.dyn unpackable libchrome..so + else + aarch64-linux-android-objcopy \ + --remove-section=.android.rela.dyn unpackable libchrome..so + endif + rm unpackable + + +Bugs & TODOs: +------------- + +Requires two free slots in the .dynamic section. Uses these to add data that +tells the crazy linker where to find the packed relocation data. Fails +if insufficient free slots exist (use gold --spare-dynamic-slots to increase +the allocation). + +Requires libelf 0.158 or later. Earlier libelf releases may be buggy in +ways that prevent the packer from working correctly. + + +Testing: +-------- + +Unittests run under gtest, on the host system. diff --git a/tools/relocation_packer/src/debug.cc b/tools/relocation_packer/src/debug.cc new file mode 100644 index 000000000..29d7ab067 --- /dev/null +++ b/tools/relocation_packer/src/debug.cc @@ -0,0 +1,55 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "debug.h" + +#include +#include +#include + +namespace relocation_packer { + +// Construct a new message logger. Prints if level is less than or equal to +// the level set with SetVerbose() and predicate is true. +Logger::Logger(Severity severity, int level, bool predicate) { + severity_ = severity; + level_ = level; + predicate_ = predicate; +} + +// On destruction, flush and print the strings accumulated. Abort if FATAL. +Logger::~Logger() { + if (predicate_) { + if (level_ <= max_level_) { + std::ostream* log = severity_ == INFO ? info_stream_ : error_stream_; + std::string tag; + switch (severity_) { + case INFO: tag = "INFO"; break; + case WARNING: tag = "WARNING"; break; + case ERROR: tag = "ERROR"; break; + case FATAL: tag = "FATAL"; break; + } + stream_.flush(); + *log << tag << ": " << stream_.str() << std::endl; + } + if (severity_ == FATAL) + abort(); + } +} + +// Reset to initial state. +void Logger::Reset() { + max_level_ = -1; + info_stream_ = &std::cout; + error_stream_ = &std::cerr; +} + +// Verbosity. Not thread-safe. +int Logger::max_level_ = -1; + +// Logging streams. Not thread-safe. +std::ostream* Logger::info_stream_ = &std::cout; +std::ostream* Logger::error_stream_ = &std::cerr; + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/debug.h b/tools/relocation_packer/src/debug.h new file mode 100644 index 000000000..48be6c19b --- /dev/null +++ b/tools/relocation_packer/src/debug.h @@ -0,0 +1,115 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Logging and checks. Avoids a dependency on base. +// +// LOG(tag) prints messages. Tags are INFO, WARNING, ERROR and FATAL. +// INFO prints to stdout, the others to stderr. FATAL aborts after printing. +// +// LOG_IF(tag, predicate) logs if predicate evaluates to true, else silent. +// +// VLOG(level) logs INFO messages where level is less than or equal to the +// verbosity level set with SetVerbose(). +// +// VLOG_IF(level, predicate) logs INFO if predicate evaluates to true, +// else silent. +// +// CHECK(predicate) logs a FATAL error if predicate is false. +// NOTREACHED() always aborts. +// Log streams can be changed with SetStreams(). Logging is not thread-safe. +// + +#ifndef TOOLS_RELOCATION_PACKER_SRC_DEBUG_H_ +#define TOOLS_RELOCATION_PACKER_SRC_DEBUG_H_ + +#include +#include +#include + +namespace relocation_packer { + +class Logger { + public: + enum Severity {INFO = 0, WARNING, ERROR, FATAL}; + + // Construct a new message logger. Prints if level is less than or + // equal to the level set with SetVerbose() and predicate is true. + // |severity| is an enumerated severity. + // |level| is the verbosity level. + // |predicate| controls if the logger prints or is silent. + Logger(Severity severity, int level, bool predicate); + + // On destruction, flush and print the strings accumulated in stream_. + ~Logger(); + + // Return the stream for this logger. + std::ostream& GetStream() { return stream_; } + + // Set verbosity level. Messages with a level less than or equal to + // this level are printed, others are discarded. Static, not thread-safe. + static void SetVerbose(int level) { max_level_ = level; } + + // Set info and error logging streams. Static, not thread-safe. + static void SetStreams(std::ostream* info_stream, + std::ostream* error_stream) { + info_stream_ = info_stream; + error_stream_ = error_stream; + } + + // Reset to initial state. + static void Reset(); + + private: + // Message severity, verbosity level, and predicate. + Severity severity_; + int level_; + bool predicate_; + + // String stream, accumulates message text. + std::ostringstream stream_; + + // Verbosity for INFO messages. Not thread-safe. + static int max_level_; + + // Logging streams. Not thread-safe. + static std::ostream* info_stream_; + static std::ostream* error_stream_; +}; + +} // namespace relocation_packer + +// Make logging severities visible globally. +typedef relocation_packer::Logger::Severity LogSeverity; +using LogSeverity::INFO; +using LogSeverity::WARNING; +using LogSeverity::ERROR; +using LogSeverity::FATAL; + +// LOG(severity) prints a message with the given severity, and aborts if +// severity is FATAL. LOG_IF(severity, predicate) does the same but only if +// predicate is true. INT_MIN is guaranteed to be less than or equal to +// any verbosity level. +#define LOG(severity) \ + (relocation_packer::Logger(severity, INT_MIN, true).GetStream()) +#define LOG_IF(severity, predicate) \ + (relocation_packer::Logger(severity, INT_MIN, (predicate)).GetStream()) + +// VLOG(level) prints its message as INFO if level is less than or equal to +// the current verbosity level. +#define VLOG(level) \ + (relocation_packer::Logger(INFO, (level), true).GetStream()) +#define VLOG_IF(level, predicate) \ + (relocation_packer::Logger(INFO, (level), (predicate)).GetStream()) + +// CHECK(predicate) fails with a FATAL log message if predicate is false. +#define CHECK(predicate) (LOG_IF(FATAL, !(predicate)) \ + << __FILE__ << ":" << __LINE__ << ": " \ + << __FUNCTION__ << ": CHECK '" #predicate "' failed") + +// NOTREACHED() always fails with a FATAL log message. +#define NOTREACHED(_) (LOG(FATAL) \ + << __FILE__ << ":" << __LINE__ << ": " \ + << __FUNCTION__ << ": NOTREACHED() hit") + +#endif // TOOLS_RELOCATION_PACKER_SRC_DEBUG_H_ diff --git a/tools/relocation_packer/src/debug_unittest.cc b/tools/relocation_packer/src/debug_unittest.cc new file mode 100644 index 000000000..b31e2ae7e --- /dev/null +++ b/tools/relocation_packer/src/debug_unittest.cc @@ -0,0 +1,122 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "debug.h" + +#include +#include "gtest/gtest.h" + +namespace relocation_packer { + +TEST(Debug, Log) { + Logger::Reset(); + std::ostringstream info; + std::ostringstream error; + Logger::SetStreams(&info, &error); + + LOG(INFO) << "INFO log message"; + LOG(WARNING) << "WARNING log message"; + LOG(ERROR) << "ERROR log message"; + + EXPECT_EQ("INFO: INFO log message\n", info.str()); + EXPECT_EQ("WARNING: WARNING log message\n" + "ERROR: ERROR log message\n", error.str()); + Logger::Reset(); +} + +TEST(Debug, LogIf) { + Logger::Reset(); + std::ostringstream info; + std::ostringstream error; + Logger::SetStreams(&info, &error); + + LOG_IF(INFO, true) << "INFO log message"; + LOG_IF(INFO, false) << "INFO log message, SHOULD NOT PRINT"; + LOG_IF(WARNING, true) << "WARNING log message"; + LOG_IF(WARNING, false) << "WARNING log message, SHOULD NOT PRINT"; + LOG_IF(ERROR, true) << "ERROR log message"; + LOG_IF(ERROR, false) << "ERROR log message, SHOULD NOT PRINT"; + LOG_IF(FATAL, false) << "FATAL log message, SHOULD NOT PRINT"; + + EXPECT_EQ("INFO: INFO log message\n", info.str()); + EXPECT_EQ("WARNING: WARNING log message\n" + "ERROR: ERROR log message\n", error.str()); + Logger::Reset(); +} + +TEST(Debug, Vlog) { + Logger::Reset(); + std::ostringstream info; + std::ostringstream error; + Logger::SetStreams(&info, &error); + + VLOG(0) << "VLOG 0 INFO log message, SHOULD NOT PRINT"; + VLOG(1) << "VLOG 1 INFO log message, SHOULD NOT PRINT"; + VLOG(2) << "VLOG 2 INFO log message, SHOULD NOT PRINT"; + + EXPECT_EQ("", info.str()); + EXPECT_EQ("", error.str()); + + Logger::SetVerbose(1); + + VLOG(0) << "VLOG 0 INFO log message"; + VLOG(1) << "VLOG 1 INFO log message"; + VLOG(2) << "VLOG 2 INFO log message, SHOULD NOT PRINT"; + + EXPECT_EQ("INFO: VLOG 0 INFO log message\n" + "INFO: VLOG 1 INFO log message\n", info.str()); + EXPECT_EQ("", error.str()); + Logger::Reset(); +} + +TEST(Debug, VlogIf) { + Logger::Reset(); + std::ostringstream info; + std::ostringstream error; + Logger::SetStreams(&info, &error); + + VLOG_IF(0, true) << "VLOG 0 INFO log message, SHOULD NOT PRINT"; + VLOG_IF(1, true) << "VLOG 1 INFO log message, SHOULD NOT PRINT"; + VLOG_IF(2, true) << "VLOG 2 INFO log message, SHOULD NOT PRINT"; + + EXPECT_EQ("", info.str()); + EXPECT_EQ("", error.str()); + + Logger::SetVerbose(1); + + VLOG_IF(0, true) << "VLOG 0 INFO log message"; + VLOG_IF(0, false) << "VLOG 0 INFO log message, SHOULD NOT PRINT"; + VLOG_IF(1, true) << "VLOG 1 INFO log message"; + VLOG_IF(1, false) << "VLOG 1 INFO log message, SHOULD NOT PRINT"; + VLOG_IF(2, true) << "VLOG 2 INFO log message, SHOULD NOT PRINT"; + VLOG_IF(2, false) << "VLOG 2 INFO log message, SHOULD NOT PRINT"; + + EXPECT_EQ("INFO: VLOG 0 INFO log message\n" + "INFO: VLOG 1 INFO log message\n", info.str()); + EXPECT_EQ("", error.str()); + Logger::Reset(); +} + +TEST(DebugDeathTest, Fatal) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + Logger::Reset(); + EXPECT_DEATH(LOG(FATAL) << "FATAL log message", "FATAL: FATAL log message"); + EXPECT_DEATH( + LOG_IF(FATAL, true) << "FATAL log message", "FATAL: FATAL log message"); +} + +TEST(DebugDeathTest, Check) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + Logger::Reset(); + CHECK(0 == 0); + EXPECT_DEATH(CHECK(0 == 1), "FATAL: .*:.*: .*: CHECK '0 == 1' failed"); +} + +TEST(DebugDeathTest, NotReached) { + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; + Logger::Reset(); + EXPECT_DEATH(NOTREACHED(), "FATAL: .*:.*: .*: NOTREACHED\\(\\) hit"); +} + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/delta_encoder.cc b/tools/relocation_packer/src/delta_encoder.cc new file mode 100644 index 000000000..8349d7c64 --- /dev/null +++ b/tools/relocation_packer/src/delta_encoder.cc @@ -0,0 +1,307 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "delta_encoder.h" + +#include + +#include "debug.h" + +static constexpr uint32_t RELOCATION_GROUPED_BY_INFO_FLAG = 1; +static constexpr uint32_t RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG = 2; +static constexpr uint32_t RELOCATION_GROUPED_BY_ADDEND_FLAG = 4; +static constexpr uint32_t RELOCATION_GROUP_HAS_ADDEND_FLAG = 8; + +static bool is_relocation_grouped_by_info(uint64_t flags) { + return (flags & RELOCATION_GROUPED_BY_INFO_FLAG) != 0; +} + +static bool is_relocation_grouped_by_offset_delta(uint64_t flags) { + return (flags & RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG) != 0; +} + +static bool is_relocation_grouped_by_addend(uint64_t flags) { + return (flags & RELOCATION_GROUPED_BY_ADDEND_FLAG) != 0; +} + +static bool is_relocation_group_has_addend(uint64_t flags) { + return (flags & RELOCATION_GROUP_HAS_ADDEND_FLAG) != 0; +} + +namespace relocation_packer { + +// Encode relocations into a delta encoded (packed) representation. +template +void RelocationDeltaCodec::Encode(const std::vector& relocations, + std::vector* packed) { + if (relocations.size() == 0) + return; + + // Start with the relocation count, then append groups + // TODO(dimitry): we might want to move it to DT_ANDROID_RELCOUNT section + packed->push_back(static_cast(relocations.size())); + + // lets write starting offset (offset of the first reloc - first delta) + ElfAddr start_offset = relocations.size() > 1 ? + relocations[0].r_offset - (relocations[1].r_offset - relocations[0].r_offset) : + relocations[0].r_offset; + + packed->push_back(start_offset); + + // this one is used to calculate delta + ElfAddr previous_addend = 0; + ElfAddr previous_offset = start_offset; + + for (size_t group_start = 0; group_start < relocations.size(); ) { + ElfAddr group_flags = 0; + ElfAddr group_offset_delta = 0; + ElfAddr group_addend = 0; + ElfAddr group_info = 0; + + ElfAddr group_size = 0; + + DetectGroup(relocations, group_start, previous_offset, &group_size, &group_flags, + &group_offset_delta, &group_info, &group_addend); + + // write the group header + packed->push_back(group_size); + packed->push_back(group_flags); + + if (is_relocation_grouped_by_offset_delta(group_flags)) { + packed->push_back(group_offset_delta); + } + + if (is_relocation_grouped_by_info(group_flags)) { + packed->push_back(group_info); + } + + if (is_relocation_group_has_addend(group_flags) && + is_relocation_grouped_by_addend(group_flags)) { + packed->push_back(group_addend - previous_addend); + previous_addend = group_addend; + } + + for (size_t i = 0; i < static_cast(group_size); ++i) { + CHECK((group_start + i) < relocations.size()); + const ElfRela* relocation = &relocations[group_start + i]; + + if (!is_relocation_grouped_by_offset_delta(group_flags)) { + packed->push_back(relocation->r_offset - previous_offset); + } + previous_offset = relocation->r_offset; + + if (!is_relocation_grouped_by_info(group_flags)) { + packed->push_back(relocation->r_info); + } + + if (is_relocation_group_has_addend(group_flags) && + !is_relocation_grouped_by_addend(group_flags)) { + packed->push_back(relocation->r_addend - previous_addend); + previous_addend = relocation->r_addend; + } + } + + // If the relocation group does not have an addend - reset it to 0 + // to simplify addend computation for the group following this one. + if (!is_relocation_group_has_addend(group_flags)) { + previous_addend = 0; + } + + group_start += group_size; + } +} + +// Decode relocations from a delta encoded (packed) representation. +template +void RelocationDeltaCodec::Decode(const std::vector& packed, + std::vector* relocations) { + if (packed.size() < 5) { + return; + } + + size_t ndx = 0; + ElfAddr current_count = 0; + ElfAddr total_count = packed[ndx++]; + + ElfAddr offset = packed[ndx++]; + ElfAddr info = 0; + ElfAddr addend = 0; + + while(current_count < total_count) { + // read group + ElfAddr group_size = packed[ndx++]; + ElfAddr group_flags = packed[ndx++]; + ElfAddr group_offset_delta = 0; + + if (is_relocation_grouped_by_offset_delta(group_flags)) { + group_offset_delta = packed[ndx++]; + } + + if (is_relocation_grouped_by_info(group_flags)) { + info = packed[ndx++]; + } + + if (is_relocation_group_has_addend(group_flags) && + is_relocation_grouped_by_addend(group_flags)) { + addend += packed[ndx++]; + } + + // now read not grouped info + for (ElfAddr i = 0; ipush_back(reloc); + } + + if (!is_relocation_group_has_addend(group_flags)) { + addend = 0; + } + + current_count += group_size; + } +} + +// This function detects a way to group reloc_one and reloc_two, sets up group_flags +// and initializes values for corresponding group_ fields. For example if relocations +// can be grouped by r_info the function will set group_info variable. +template +void RelocationDeltaCodec::DetectGroupFields(const ElfRela& reloc_one, + const ElfRela& reloc_two, + ElfAddr current_offset_delta, + ElfAddr* group_flags, + ElfAddr* group_offset_delta, + ElfAddr* group_info, + ElfAddr* group_addend) { + *group_flags = 0; + + const ElfAddr offset_delta = static_cast(reloc_two.r_offset) - + static_cast(reloc_one.r_offset); + + if (offset_delta == current_offset_delta) { + *group_flags |= RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG; + if (group_offset_delta != nullptr) { + *group_offset_delta = current_offset_delta; + } + } + + if (reloc_one.r_info == reloc_two.r_info) { + *group_flags |= RELOCATION_GROUPED_BY_INFO_FLAG; + if (group_info != nullptr) { + *group_info = reloc_one.r_info; + } + } + + if (reloc_one.r_addend != 0 || reloc_two.r_addend != 0) { + *group_flags |= RELOCATION_GROUP_HAS_ADDEND_FLAG; + if (reloc_one.r_addend == reloc_two.r_addend) { + *group_flags |= RELOCATION_GROUPED_BY_ADDEND_FLAG; + if (group_addend != nullptr) { + *group_addend = reloc_one.r_addend; + } + } + } +} + +// This function is used to detect if there is better group available +// during RelocationDeltaCodec::DetectGroup processing. +// Current implementation prefers having groups without addend (== zero addend) +// to any other groups field with the ratio 3:1. This is because addend tends +// to be more unevenly distributed than other fields. +static uint32_t group_weight(uint64_t flags) { + uint32_t weight = 0; + if (!is_relocation_group_has_addend(flags)) { + weight += 3; + } else if (is_relocation_grouped_by_addend(flags)) { + weight += 1; + } + + if (is_relocation_grouped_by_offset_delta(flags)) { + weight += 1; + } + + if (is_relocation_grouped_by_info(flags)) { + weight += 1; + } + + return weight; +} + +template +void RelocationDeltaCodec::DetectGroup(const std::vector& relocations, + size_t group_starts_with, ElfAddr previous_offset, + ElfAddr* group_size, ElfAddr* group_flags, + ElfAddr* group_offset_delta, ElfAddr* group_info, + ElfAddr* group_addend) { + CHECK(group_starts_with < relocations.size()); + CHECK(group_flags != nullptr); + + const ElfRela& reloc_one = relocations[group_starts_with++]; + if (group_starts_with == relocations.size()) { + *group_flags = reloc_one.r_addend == 0 ? 0 : RELOCATION_GROUP_HAS_ADDEND_FLAG; + *group_size = 1; + return; + } + + const ElfAddr offset_delta = reloc_one.r_offset - previous_offset; + + // detect group_flags + DetectGroupFields(reloc_one, relocations[group_starts_with], offset_delta, group_flags, + group_offset_delta, group_info, group_addend); + + if (group_starts_with + 1 == relocations.size()) { + *group_size = 2; + return; + } + + ElfAddr cnt = 1; + for (size_t i = group_starts_with; i < relocations.size() - 1; ++i) { + ElfAddr candidate_flags; + // check if next group (reloc_current; reloc_next) has better grouped_by flags + DetectGroupFields(relocations[i], relocations[i+1], offset_delta, &candidate_flags, + nullptr, nullptr, nullptr); + + if (group_weight(*group_flags) < group_weight(candidate_flags)) { + break; + } + cnt++; + + if (candidate_flags != *group_flags) { + break; + } + + if (i + 1 == relocations.size() - 1) { // last one + cnt++; + } + } + + // if as a result of checking candidates we ended up with cnt == 1 + // reset flags to the default state + if (cnt == 1) { + *group_flags = reloc_one.r_addend == 0 ? 0 : RELOCATION_GROUP_HAS_ADDEND_FLAG; + } + + *group_size = cnt; +} + +template class RelocationDeltaCodec; +template class RelocationDeltaCodec; + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/delta_encoder.h b/tools/relocation_packer/src/delta_encoder.h new file mode 100644 index 000000000..46c324c49 --- /dev/null +++ b/tools/relocation_packer/src/delta_encoder.h @@ -0,0 +1,132 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Delta encode and decode REL/RELA section of elf file. +// +// The encoded data format is sequence of elements of ElfAddr type (unsigned long): +// +// [00] relocation_count - the total count of relocations +// [01] initial r_offset - this is initial r_offset for the +// relocation table. +// followed by group structures: +// [02] group +// ... +// [nn] group + +// the generalized format of the group is (! - always present ? - depends on group_flags): +// -------------- +// ! group_size +// ! group_flags +// ? group_r_offset_delta when RELOCATION_GROUPED_BY_OFFSET_DELTA flag is set +// ? group_r_info when RELOCATION_GROUPED_BY_INFO flag is set +// ? group_r_addend_group_delta when RELOCATION_GROUP_HAS_ADDEND and RELOCATION_GROUPED_BY_ADDEND +// flag is set +// +// The group description is followed by individual relocations. +// please note that there is a case when individual relocation +// section could be empty - that is if every field ends up grouped. +// +// The format for individual relocations section is: +// ? r_offset_delta - when RELOCATION_GROUPED_BY_OFFSET_DELTA is not set +// ? r_info - when RELOCATION_GROUPED_BY_INFO flag is not set +// ? r_addend_delta - RELOCATION_GROUP_HAS_ADDEND is set and RELOCATION_GROUPED_BY_ADDEND is not set +// +// For example lets pack the following relocations: +// +// Relocation section '.rela.dyn' at offset 0xbf58 contains 939 entries: +// Offset Info Type Symbol's Value Symbol's Name + Addend +// 00000000000a2178 0000000000000403 R_AARCH64_RELATIVE 177a8 +// 00000000000a2180 0000000000000403 R_AARCH64_RELATIVE 177cc +// 00000000000a2188 0000000000000403 R_AARCH64_RELATIVE 177e0 +// 00000000000a2190 0000000000000403 R_AARCH64_RELATIVE 177f4 +// 00000000000a2198 0000000000000403 R_AARCH64_RELATIVE 17804 +// 00000000000a21a0 0000000000000403 R_AARCH64_RELATIVE 17818 +// 00000000000a21a8 0000000000000403 R_AARCH64_RELATIVE 1782c +// 00000000000a21b0 0000000000000403 R_AARCH64_RELATIVE 17840 +// 00000000000a21b8 0000000000000403 R_AARCH64_RELATIVE 17854 +// 00000000000a21c0 0000000000000403 R_AARCH64_RELATIVE 17868 +// 00000000000a21c8 0000000000000403 R_AARCH64_RELATIVE 1787c +// 00000000000a21d0 0000000000000403 R_AARCH64_RELATIVE 17890 +// 00000000000a21d8 0000000000000403 R_AARCH64_RELATIVE 178a4 +// 00000000000a21e8 0000000000000403 R_AARCH64_RELATIVE 178b8 +// +// The header is going to be +// [00] 14 <- count +// [01] 0x00000000000a2170 <- initial relocation (first relocation - delta, +// the delta is 8 in this case) +// -- starting the first and only group +// [03] 14 <- group size +// [03] 0xb <- flags RELOCATION_GROUP_HAS_ADDEND | RELOCATION_GROUPED_BY_OFFSET_DELTA +// | RELOCATION_GROUPED_BY_INFO +// [04] 8 <- offset delta +// [05] 0x403 <- r_info +// -- end of group definition, starting list of r_addend deltas +// [06] 0x177a8 +// [07] 0x24 = 177cc - 177a8 +// [08] 0x14 = 177e0 - 177cc +// [09] 0x14 = 177f4 - 177e0 +// [10] 0x10 = 17804 - 177f4 +// [11] 0x14 = 17818 - 17804 +// [12] 0x14 = 1782c - 17818 +// [13] 0x14 = 17840 - 1782c +// [14] 0x14 = 17854 - 17840 +// [15] 0x14 = 17868 - 17854 +// [16] 0x14 = 1787c - 17868 +// [17] 0x14 = 17890 - 1787c +// [18] 0x14 = 178a4 - 17890 +// [19] 0x14 = 178b8 - 178a4 +// -- the end. + +// TODO (dimitry): consider using r_addend_group_delta in the way we use group offset delta, it can +// save us more bytes... + +// The input ends when sum(group_size) == relocation_count + +#ifndef TOOLS_RELOCATION_PACKER_SRC_DELTA_ENCODER_H_ +#define TOOLS_RELOCATION_PACKER_SRC_DELTA_ENCODER_H_ + +#include + +#include "elf.h" +#include "elf_traits.h" + +namespace relocation_packer { + +// A RelocationDeltaCodec packs vectors of relative relocations with +// addends into more compact forms, and unpacks them to reproduce the +// pre-packed data. +template +class RelocationDeltaCodec { + public: + typedef typename ELF::Addr ElfAddr; + typedef typename ELF::Rela ElfRela; + + // Encode relocations with addends into a more compact form. + // |relocations| is a vector of relative relocation with addend structs. + // |packed| is the vector of packed words into which relocations are packed. + static void Encode(const std::vector& relocations, + std::vector* packed); + + // Decode relative relocations with addends from their more compact form. + // |packed| is the vector of packed relocations. + // |relocations| is a vector of unpacked relative relocations. + static void Decode(const std::vector& packed, + std::vector* relocations); + + private: + static void DetectGroup(const std::vector& relocations, + size_t group_starts_with, ElfAddr previous_offset, + ElfAddr* group_size, ElfAddr* group_flags, + ElfAddr* group_offset_delta, ElfAddr* group_info, + ElfAddr* group_addend); + + static void DetectGroupFields(const ElfRela& reloc_one, const ElfRela& reloc_two, + ElfAddr current_offset_delta, ElfAddr* group_flags, + ElfAddr* group_offset_delta, ElfAddr* group_info, + ElfAddr* group_addend); +}; + +} // namespace relocation_packer + +#endif // TOOLS_RELOCATION_PACKER_SRC_DELTA_ENCODER_H_ diff --git a/tools/relocation_packer/src/delta_encoder_unittest.cc b/tools/relocation_packer/src/delta_encoder_unittest.cc new file mode 100644 index 000000000..06d9c9673 --- /dev/null +++ b/tools/relocation_packer/src/delta_encoder_unittest.cc @@ -0,0 +1,223 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "delta_encoder.h" + +#include +#include "elf.h" +#include "gtest/gtest.h" + +namespace { + +template +void AddRelocation(uint32_t addr, + uint32_t info, + int32_t addend, + std::vector* relocations) { + T relocation; + relocation.r_offset = addr; + relocation.r_info = info; + relocation.r_addend = addend; + relocations->push_back(relocation); +} + +template +bool CheckRelocation(uint32_t addr, + uint32_t info, + int32_t addend, + const T& relocation) { + return relocation.r_offset == addr && + relocation.r_info == info && + relocation.r_addend == addend; +} + +} // namespace + +namespace relocation_packer { + +template +static void encode() { + std::vector relocations; + std::vector packed; + + RelocationDeltaCodec codec; + + codec.Encode(relocations, &packed); + + ASSERT_EQ(0U, packed.size()); + + // Initial relocation. + AddRelocation(0xf00d0000, 11U, 10000, &relocations); + + codec.Encode(relocations, &packed); + + // size of reloc table, size of group, flags, 3 fields, zero + EXPECT_EQ(7U, packed.size()); + // One pair present. + size_t ndx = 0; + EXPECT_EQ(1U, packed[ndx++]); + EXPECT_EQ(0xf00d0000, packed[ndx++]); + EXPECT_EQ(1U, packed[ndx++]); // group_size + EXPECT_EQ(8U, packed[ndx++]); // flags + // Delta from the neutral element is zero + EXPECT_EQ(0U, packed[ndx++]); // offset_delta + EXPECT_EQ(11U, packed[ndx++]); // info + EXPECT_EQ(10000U, packed[ndx++]); // addend_delta + + // Add a second relocation, 4 byte offset delta, 12 byte addend delta. + // same info + AddRelocation(0xf00d0004, 11U, 10012, &relocations); + + packed.clear(); + codec.Encode(relocations, &packed); + + ndx = 0; + EXPECT_EQ(8U, packed.size()); + + EXPECT_EQ(2U, packed[ndx++]); // relocs count + EXPECT_EQ(0xf00cfffc, packed[ndx++]); // initial offset + EXPECT_EQ(2U, packed[ndx++]); // group count + EXPECT_EQ(11U, packed[ndx++]); // flags + EXPECT_EQ(4U, packed[ndx++]); // group offset delta + EXPECT_EQ(11U, packed[ndx++]); // info + + EXPECT_EQ(10000U, packed[ndx++]); // addend delta + EXPECT_EQ(12U, packed[ndx++]); // addend delta + + // Add a third relocation, 4 byte offset delta, 12 byte addend delta. + // different info + AddRelocation(0xf00d0008, 41U, 10024, &relocations); + + // Add three more relocations, 8 byte offset deltas, -24 byte addend deltas. + AddRelocation(0xf00d0010, 42U, 10000, &relocations); + AddRelocation(0xf00d0018, 42U, 9976, &relocations); + AddRelocation(0xf00d0020, 42U, 9952, &relocations); + + AddRelocation(0xf00d2028, 1042U, 0, &relocations); + AddRelocation(0xf00d2030, 3442U, 0, &relocations); + + packed.clear(); + codec.Encode(relocations, &packed); + + ndx = 0; + EXPECT_EQ(26U, packed.size()); + // Total number of relocs + EXPECT_EQ(8U, packed[ndx++]); + EXPECT_EQ(0xf00cfffc, packed[ndx++]); + // 2 in first group + EXPECT_EQ(2U, packed[ndx++]); + EXPECT_EQ(11U, packed[ndx++]); //flags + EXPECT_EQ(4U, packed[ndx++]); // group offset delta + EXPECT_EQ(11U, packed[ndx++]); // info + + // Initial relocation. + EXPECT_EQ(10000U, packed[ndx++]); // addend delta + // Two relocations, 4 byte offset deltas, 12 byte addend deltas. + EXPECT_EQ(12U, packed[ndx++]); // addend delta + + // second group has only one reloc + EXPECT_EQ(1U, packed[ndx++]); // count + EXPECT_EQ(8U, packed[ndx++]); // flags + + EXPECT_EQ(4U, packed[ndx++]); // offset delta + EXPECT_EQ(41U, packed[ndx++]); // info + EXPECT_EQ(12U, packed[ndx++]); // addend delta + + // next - 3 relocs grouped by info + EXPECT_EQ(3U, packed[ndx++]); // count + EXPECT_EQ(11U, packed[ndx++]); // flags + EXPECT_EQ(8U, packed[ndx++]); // group offset delta + EXPECT_EQ(42U, packed[ndx++]); // info + // Three relocations, 8 byte offset deltas, -24 byte addend deltas. + EXPECT_EQ(static_cast(-24), packed[ndx++]); + EXPECT_EQ(static_cast(-24), packed[ndx++]); + EXPECT_EQ(static_cast(-24), packed[ndx++]); + + // and last - 2 relocations without addend + EXPECT_EQ(2U, packed[ndx++]); + EXPECT_EQ(0U, packed[ndx++]); // flags + // offset_deltas and r_infos for next 2 relocations + EXPECT_EQ(0x2008U, packed[ndx++]); // offset delta + EXPECT_EQ(1042U, packed[ndx++]); // r_info + EXPECT_EQ(0x8U, packed[ndx++]); // offset delta + EXPECT_EQ(3442U, packed[ndx++]); // r_info + + EXPECT_EQ(packed.size(), ndx); +} + +TEST(Delta, Encode32) { + encode(); +} + +TEST(Delta, Encode64) { + encode(); +} + +template +static void decode() { + std::vector packed; + std::vector relocations; + + RelocationDeltaCodec codec; + codec.Decode(packed, &relocations); + + EXPECT_EQ(0U, relocations.size()); + + // Six pairs. + packed.push_back(6U); // count + packed.push_back(0xc0ddfffc); // base offset + packed.push_back(3U); // group count + packed.push_back(11U); // flags + packed.push_back(4U); // offset delta + packed.push_back(11U); // info + // Initial relocation. + packed.push_back(10000U); + // Two relocations, 4 byte offset deltas, 12 byte addend deltas. + packed.push_back(12U); // addend + packed.push_back(12U); // addend + + // Three relocations, 8 byte offset deltas, -24 byte addend deltas. + packed.push_back(1U); // group count + packed.push_back(9U); // flags + packed.push_back(11U); // info + + packed.push_back(8U); + packed.push_back(static_cast(-24)); + // next group with 2 relocs + packed.push_back(2U); // group count + packed.push_back(11U); // flags + packed.push_back(8U); // offset + packed.push_back(42U); // info + + packed.push_back(static_cast(-24)); // addend + packed.push_back(static_cast(-24)); // addend + + relocations.clear(); + codec.Decode(packed, &relocations); + + EXPECT_EQ(6U, relocations.size()); + // Initial relocation. + EXPECT_TRUE(CheckRelocation(0xc0de0000, 11U, 10000, relocations[0])); + // Two relocations, 4 byte offset deltas, 12 byte addend deltas. + EXPECT_TRUE(CheckRelocation(0xc0de0004, 11U, 10012, relocations[1])); + EXPECT_TRUE(CheckRelocation(0xc0de0008, 11U, 10024, relocations[2])); + // Three relocations, 8 byte offset deltas, -24 byte addend deltas. + EXPECT_TRUE(CheckRelocation(0xc0de0010, 11U, 10000, relocations[3])); + EXPECT_TRUE(CheckRelocation(0xc0de0018, 42U, 9976, relocations[4])); + EXPECT_TRUE(CheckRelocation(0xc0de0020, 42U, 9952, relocations[5])); +} + +TEST(Delta, Decode32) { + decode(); +} + +TEST(Delta, Decode64) { + decode(); +} + +// TODO (dimitry): add more tests (fix by 19 January 2038 03:14:07 UTC) +// TODO (dimtiry): 1. Incorrect packed array for decode +// TODO (dimtiry): 2. Try to catch situation where it is likely to get series of groups with size 1 + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/elf_file.cc b/tools/relocation_packer/src/elf_file.cc new file mode 100644 index 000000000..20b25ef82 --- /dev/null +++ b/tools/relocation_packer/src/elf_file.cc @@ -0,0 +1,882 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Implementation notes: +// +// We need to remove a piece from the ELF shared library. However, we also +// want to avoid fixing DWARF cfi data and relative relocation addresses. +// So after packing we shift offets and starting address of the RX segment +// while preserving code/data vaddrs location. +// This requires some fixups for symtab/hash/gnu_hash dynamic section addresses. + +#include "elf_file.h" + +#include +#include +#include +#include +#include +#include + +#include "debug.h" +#include "elf_traits.h" +#include "libelf.h" +#include "packer.h" + +namespace relocation_packer { + +// Out-of-band dynamic tags used to indicate the offset and size of the +// android packed relocations section. +static constexpr int32_t DT_ANDROID_REL = DT_LOOS + 2; +static constexpr int32_t DT_ANDROID_RELSZ = DT_LOOS + 3; + +static constexpr int32_t DT_ANDROID_RELA = DT_LOOS + 4; +static constexpr int32_t DT_ANDROID_RELASZ = DT_LOOS + 5; + +static constexpr uint32_t SHT_ANDROID_REL = SHT_LOOS + 1; +static constexpr uint32_t SHT_ANDROID_RELA = SHT_LOOS + 2; + +// Alignment to preserve, in bytes. This must be at least as large as the +// largest d_align and sh_addralign values found in the loaded file. +// Out of caution for RELRO page alignment, we preserve to a complete target +// page. See http://www.airs.com/blog/archives/189. +static constexpr size_t kPreserveAlignment = 4096; + +// Get section data. Checks that the section has exactly one data entry, +// so that the section size and the data size are the same. True in +// practice for all sections we resize when packing or unpacking. Done +// by ensuring that a call to elf_getdata(section, data) returns NULL as +// the next data entry. +static Elf_Data* GetSectionData(Elf_Scn* section) { + Elf_Data* data = elf_getdata(section, NULL); + CHECK(data && elf_getdata(section, data) == NULL); + return data; +} + +// Rewrite section data. Allocates new data and makes it the data element's +// buffer. Relies on program exit to free allocated data. +static void RewriteSectionData(Elf_Scn* section, + const void* section_data, + size_t size) { + Elf_Data* data = GetSectionData(section); + CHECK(size == data->d_size); + uint8_t* area = new uint8_t[size]; + memcpy(area, section_data, size); + data->d_buf = area; +} + +// Verbose ELF header logging. +template +static void VerboseLogElfHeader(const Ehdr* elf_header) { + VLOG(1) << "e_phoff = " << elf_header->e_phoff; + VLOG(1) << "e_shoff = " << elf_header->e_shoff; + VLOG(1) << "e_ehsize = " << elf_header->e_ehsize; + VLOG(1) << "e_phentsize = " << elf_header->e_phentsize; + VLOG(1) << "e_phnum = " << elf_header->e_phnum; + VLOG(1) << "e_shnum = " << elf_header->e_shnum; + VLOG(1) << "e_shstrndx = " << elf_header->e_shstrndx; +} + +// Verbose ELF program header logging. +template +static void VerboseLogProgramHeader(size_t program_header_index, + const Phdr* program_header) { + std::string type; + switch (program_header->p_type) { + case PT_NULL: type = "NULL"; break; + case PT_LOAD: type = "LOAD"; break; + case PT_DYNAMIC: type = "DYNAMIC"; break; + case PT_INTERP: type = "INTERP"; break; + case PT_PHDR: type = "PHDR"; break; + case PT_GNU_RELRO: type = "GNU_RELRO"; break; + case PT_GNU_STACK: type = "GNU_STACK"; break; + case PT_ARM_EXIDX: type = "EXIDX"; break; + default: type = "(OTHER)"; break; + } + VLOG(1) << "phdr[" << program_header_index << "] : " << type; + VLOG(1) << " p_offset = " << program_header->p_offset; + VLOG(1) << " p_vaddr = " << program_header->p_vaddr; + VLOG(1) << " p_paddr = " << program_header->p_paddr; + VLOG(1) << " p_filesz = " << program_header->p_filesz; + VLOG(1) << " p_memsz = " << program_header->p_memsz; + VLOG(1) << " p_flags = " << program_header->p_flags; + VLOG(1) << " p_align = " << program_header->p_align; +} + +// Verbose ELF section header logging. +template +static void VerboseLogSectionHeader(const std::string& section_name, + const Shdr* section_header) { + VLOG(1) << "section " << section_name; + VLOG(1) << " sh_addr = " << section_header->sh_addr; + VLOG(1) << " sh_offset = " << section_header->sh_offset; + VLOG(1) << " sh_size = " << section_header->sh_size; + VLOG(1) << " sh_entsize = " << section_header->sh_entsize; + VLOG(1) << " sh_addralign = " << section_header->sh_addralign; +} + +// Verbose ELF section data logging. +static void VerboseLogSectionData(const Elf_Data* data) { + VLOG(1) << " data"; + VLOG(1) << " d_buf = " << data->d_buf; + VLOG(1) << " d_off = " << data->d_off; + VLOG(1) << " d_size = " << data->d_size; + VLOG(1) << " d_align = " << data->d_align; +} + +// Load the complete ELF file into a memory image in libelf, and identify +// the .rel.dyn or .rela.dyn, .dynamic, and .android.rel.dyn or +// .android.rela.dyn sections. No-op if the ELF file has already been loaded. +template +bool ElfFile::Load() { + if (elf_) + return true; + + Elf* elf = elf_begin(fd_, ELF_C_RDWR, NULL); + CHECK(elf); + + if (elf_kind(elf) != ELF_K_ELF) { + LOG(ERROR) << "File not in ELF format"; + return false; + } + + auto elf_header = ELF::getehdr(elf); + if (!elf_header) { + LOG(ERROR) << "Failed to load ELF header: " << elf_errmsg(elf_errno()); + return false; + } + + if (elf_header->e_type != ET_DYN) { + LOG(ERROR) << "ELF file is not a shared object"; + return false; + } + + // Require that our endianness matches that of the target, and that both + // are little-endian. Safe for all current build/target combinations. + const int endian = elf_header->e_ident[EI_DATA]; + CHECK(endian == ELFDATA2LSB); + CHECK(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__); + + const int file_class = elf_header->e_ident[EI_CLASS]; + VLOG(1) << "endian = " << endian << ", file class = " << file_class; + VerboseLogElfHeader(elf_header); + + auto elf_program_header = ELF::getphdr(elf); + CHECK(elf_program_header != nullptr); + + const typename ELF::Phdr* dynamic_program_header = NULL; + for (size_t i = 0; i < elf_header->e_phnum; ++i) { + auto program_header = &elf_program_header[i]; + VerboseLogProgramHeader(i, program_header); + + if (program_header->p_type == PT_DYNAMIC) { + CHECK(dynamic_program_header == NULL); + dynamic_program_header = program_header; + } + } + CHECK(dynamic_program_header != nullptr); + + size_t string_index; + elf_getshdrstrndx(elf, &string_index); + + // Notes of the dynamic relocations, packed relocations, and .dynamic + // sections. Found while iterating sections, and later stored in class + // attributes. + Elf_Scn* found_relocations_section = nullptr; + Elf_Scn* found_dynamic_section = nullptr; + + // Notes of relocation section types seen. We require one or the other of + // these; both is unsupported. + bool has_rel_relocations = false; + bool has_rela_relocations = false; + + Elf_Scn* section = NULL; + while ((section = elf_nextscn(elf, section)) != nullptr) { + auto section_header = ELF::getshdr(section); + std::string name = elf_strptr(elf, string_index, section_header->sh_name); + VerboseLogSectionHeader(name, section_header); + + // Note relocation section types. + if (section_header->sh_type == SHT_REL || section_header->sh_type == SHT_ANDROID_REL) { + has_rel_relocations = true; + } + if (section_header->sh_type == SHT_RELA || section_header->sh_type == SHT_ANDROID_RELA) { + has_rela_relocations = true; + } + + // Note special sections as we encounter them. + if ((name == ".rel.dyn" || name == ".rela.dyn") && + section_header->sh_size > 0) { + found_relocations_section = section; + } + + if (section_header->sh_offset == dynamic_program_header->p_offset) { + found_dynamic_section = section; + } + + // Ensure we preserve alignment, repeated later for the data block(s). + CHECK(section_header->sh_addralign <= kPreserveAlignment); + + Elf_Data* data = NULL; + while ((data = elf_getdata(section, data)) != NULL) { + CHECK(data->d_align <= kPreserveAlignment); + VerboseLogSectionData(data); + } + } + + // Loading failed if we did not find the required special sections. + if (!found_relocations_section) { + LOG(ERROR) << "Missing or empty .rel.dyn or .rela.dyn section"; + return false; + } + if (!found_dynamic_section) { + LOG(ERROR) << "Missing .dynamic section"; + return false; + } + + // Loading failed if we could not identify the relocations type. + if (!has_rel_relocations && !has_rela_relocations) { + LOG(ERROR) << "No relocations sections found"; + return false; + } + if (has_rel_relocations && has_rela_relocations) { + LOG(ERROR) << "Multiple relocations sections with different types found, " + << "not currently supported"; + return false; + } + + elf_ = elf; + relocations_section_ = found_relocations_section; + dynamic_section_ = found_dynamic_section; + relocations_type_ = has_rel_relocations ? REL : RELA; + return true; +} + +// Helper for ResizeSection(). Adjust the main ELF header for the hole. +template +static void AdjustElfHeaderForHole(typename ELF::Ehdr* elf_header, + typename ELF::Off hole_start, + ssize_t hole_size) { + if (elf_header->e_phoff > hole_start) { + elf_header->e_phoff += hole_size; + VLOG(1) << "e_phoff adjusted to " << elf_header->e_phoff; + } + if (elf_header->e_shoff > hole_start) { + elf_header->e_shoff += hole_size; + VLOG(1) << "e_shoff adjusted to " << elf_header->e_shoff; + } +} + +// Helper for ResizeSection(). Adjust all section headers for the hole. +template +static void AdjustSectionHeadersForHole(Elf* elf, + typename ELF::Off hole_start, + ssize_t hole_size) { + size_t string_index; + elf_getshdrstrndx(elf, &string_index); + + Elf_Scn* section = NULL; + while ((section = elf_nextscn(elf, section)) != NULL) { + auto section_header = ELF::getshdr(section); + std::string name = elf_strptr(elf, string_index, section_header->sh_name); + + if (section_header->sh_offset > hole_start) { + section_header->sh_offset += hole_size; + VLOG(1) << "section " << name + << " sh_offset adjusted to " << section_header->sh_offset; + } else { + section_header->sh_addr -= hole_size; + VLOG(1) << "section " << name + << " sh_addr adjusted to " << section_header->sh_addr; + } + } +} + +// Helper for ResizeSection(). Adjust the offsets of any program headers +// that have offsets currently beyond the hole start. +template +static void AdjustProgramHeaderOffsets(typename ELF::Phdr* program_headers, + size_t count, + typename ELF::Off hole_start, + ssize_t hole_size) { + for (size_t i = 0; i < count; ++i) { + typename ELF::Phdr* program_header = &program_headers[i]; + + if (program_header->p_offset > hole_start) { + // The hole start is past this segment, so adjust offset. + program_header->p_offset += hole_size; + VLOG(1) << "phdr[" << i + << "] p_offset adjusted to "<< program_header->p_offset; + } else { + program_header->p_vaddr -= hole_size; + program_header->p_paddr -= hole_size; + VLOG(1) << "phdr[" << i + << "] p_vaddr adjusted to "<< program_header->p_vaddr + << "; p_paddr adjusted to "<< program_header->p_paddr; + } + } +} + +// Helper for ResizeSection(). Find the first loadable segment in the +// file. We expect it to map from file offset zero. +template +static typename ELF::Phdr* FindLoadSegmentForHole(typename ELF::Phdr* program_headers, + size_t count, + typename ELF::Off hole_start) { + for (size_t i = 0; i < count; ++i) { + typename ELF::Phdr* program_header = &program_headers[i]; + + if (program_header->p_type == PT_LOAD && + program_header->p_offset <= hole_start && + (program_header->p_offset + program_header->p_filesz) >= hole_start ) { + return program_header; + } + } + LOG(FATAL) << "Cannot locate a LOAD segment with hole_start=0x" << std::hex << hole_start; + NOTREACHED(); + + return nullptr; +} + +// Helper for ResizeSection(). Rewrite program headers. +template +static void RewriteProgramHeadersForHole(Elf* elf, + typename ELF::Off hole_start, + ssize_t hole_size) { + const typename ELF::Ehdr* elf_header = ELF::getehdr(elf); + CHECK(elf_header); + + typename ELF::Phdr* elf_program_header = ELF::getphdr(elf); + CHECK(elf_program_header); + + const size_t program_header_count = elf_header->e_phnum; + + // Locate the segment that we can overwrite to form the new LOAD entry, + // and the segment that we are going to split into two parts. + typename ELF::Phdr* target_load_header = + FindLoadSegmentForHole(elf_program_header, program_header_count, hole_start); + + VLOG(1) << "phdr[" << target_load_header - elf_program_header << "] adjust"; + // Adjust PT_LOAD program header memsz and filesz + target_load_header->p_filesz += hole_size; + target_load_header->p_memsz += hole_size; + + // Adjust the offsets and p_vaddrs + AdjustProgramHeaderOffsets(elf_program_header, + program_header_count, + hole_start, + hole_size); +} + +// Helper for ResizeSection(). Locate and return the dynamic section. +template +static Elf_Scn* GetDynamicSection(Elf* elf) { + const typename ELF::Ehdr* elf_header = ELF::getehdr(elf); + CHECK(elf_header); + + const typename ELF::Phdr* elf_program_header = ELF::getphdr(elf); + CHECK(elf_program_header); + + // Find the program header that describes the dynamic section. + const typename ELF::Phdr* dynamic_program_header = NULL; + for (size_t i = 0; i < elf_header->e_phnum; ++i) { + const typename ELF::Phdr* program_header = &elf_program_header[i]; + + if (program_header->p_type == PT_DYNAMIC) { + dynamic_program_header = program_header; + } + } + CHECK(dynamic_program_header); + + // Now find the section with the same offset as this program header. + Elf_Scn* dynamic_section = NULL; + Elf_Scn* section = NULL; + while ((section = elf_nextscn(elf, section)) != NULL) { + typename ELF::Shdr* section_header = ELF::getshdr(section); + + if (section_header->sh_offset == dynamic_program_header->p_offset) { + dynamic_section = section; + } + } + CHECK(dynamic_section != NULL); + + return dynamic_section; +} + +// Helper for ResizeSection(). Adjust the .dynamic section for the hole. +template +void ElfFile::AdjustDynamicSectionForHole(Elf_Scn* dynamic_section, + typename ELF::Off hole_start, + ssize_t hole_size, + relocations_type_t relocations_type) { + CHECK(relocations_type != NONE); + Elf_Data* data = GetSectionData(dynamic_section); + + auto dynamic_base = reinterpret_cast(data->d_buf); + std::vector dynamics( + dynamic_base, + dynamic_base + data->d_size / sizeof(dynamics[0])); + + if (hole_size > 0) { // expanding + hole_start += hole_size; + } + + for (size_t i = 0; i < dynamics.size(); ++i) { + typename ELF::Dyn* dynamic = &dynamics[i]; + const typename ELF::Sword tag = dynamic->d_tag; + + // Any tags that hold offsets are adjustment candidates. + const bool is_adjustable = (tag == DT_PLTGOT || + tag == DT_HASH || + tag == DT_GNU_HASH || + tag == DT_STRTAB || + tag == DT_SYMTAB || + tag == DT_RELA || + tag == DT_INIT || + tag == DT_FINI || + tag == DT_REL || + tag == DT_JMPREL || + tag == DT_INIT_ARRAY || + tag == DT_FINI_ARRAY || + tag == DT_ANDROID_REL|| + tag == DT_ANDROID_RELA); + + if (is_adjustable && dynamic->d_un.d_ptr <= hole_start) { + dynamic->d_un.d_ptr -= hole_size; + VLOG(1) << "dynamic[" << i << "] " << dynamic->d_tag + << " d_ptr adjusted to " << dynamic->d_un.d_ptr; + } + + // DT_RELSZ or DT_RELASZ indicate the overall size of relocations. + // Only one will be present. Adjust by hole size. + if (tag == DT_RELSZ || tag == DT_RELASZ || tag == DT_ANDROID_RELSZ || tag == DT_ANDROID_RELASZ) { + dynamic->d_un.d_val += hole_size; + VLOG(1) << "dynamic[" << i << "] " << dynamic->d_tag + << " d_val adjusted to " << dynamic->d_un.d_val; + } + + // Ignore DT_RELCOUNT and DT_RELACOUNT: (1) nobody uses them and + // technically (2) the relative relocation count is not changed. + + // DT_RELENT and DT_RELAENT don't change, ignore them as well. + } + + void* section_data = &dynamics[0]; + size_t bytes = dynamics.size() * sizeof(dynamics[0]); + RewriteSectionData(dynamic_section, section_data, bytes); +} + +// Resize a section. If the new size is larger than the current size, open +// up a hole by increasing file offsets that come after the hole. If smaller +// than the current size, remove the hole by decreasing those offsets. +template +void ElfFile::ResizeSection(Elf* elf, Elf_Scn* section, size_t new_size, + typename ELF::Word new_sh_type, + relocations_type_t relocations_type) { + + size_t string_index; + elf_getshdrstrndx(elf, &string_index); + auto section_header = ELF::getshdr(section); + std::string name = elf_strptr(elf, string_index, section_header->sh_name); + + if (section_header->sh_size == new_size) { + return; + } + + // Require that the section size and the data size are the same. True + // in practice for all sections we resize when packing or unpacking. + Elf_Data* data = GetSectionData(section); + CHECK(data->d_off == 0 && data->d_size == section_header->sh_size); + + // Require that the section is not zero-length (that is, has allocated + // data that we can validly expand). + CHECK(data->d_size && data->d_buf); + + const auto hole_start = section_header->sh_offset; + const ssize_t hole_size = new_size - data->d_size; + + VLOG_IF(1, (hole_size > 0)) << "expand section (" << name << ") size: " << + data->d_size << " -> " << (data->d_size + hole_size); + VLOG_IF(1, (hole_size < 0)) << "shrink section (" << name << ") size: " << + data->d_size << " -> " << (data->d_size + hole_size); + + // libelf overrides sh_entsize for known sh_types, so it does not matter what we set + // for SHT_REL/SHT_RELA. + typename ELF::Xword new_entsize = + (new_sh_type == SHT_ANDROID_REL || new_sh_type == SHT_ANDROID_RELA) ? 1 : 0; + + VLOG(1) << "Update section (" << name << ") entry size: " << + section_header->sh_entsize << " -> " << new_entsize; + + // Resize the data and the section header. + data->d_size += hole_size; + section_header->sh_size += hole_size; + section_header->sh_entsize = new_entsize; + section_header->sh_type = new_sh_type; + + // Add the hole size to all offsets in the ELF file that are after the + // start of the hole. If the hole size is positive we are expanding the + // section to create a new hole; if negative, we are closing up a hole. + + // Start with the main ELF header. + typename ELF::Ehdr* elf_header = ELF::getehdr(elf); + AdjustElfHeaderForHole(elf_header, hole_start, hole_size); + + // Adjust all section headers. + AdjustSectionHeadersForHole(elf, hole_start, hole_size); + + // Rewrite the program headers to either split or coalesce segments, + // and adjust dynamic entries to match. + RewriteProgramHeadersForHole(elf, hole_start, hole_size); + + Elf_Scn* dynamic_section = GetDynamicSection(elf); + AdjustDynamicSectionForHole(dynamic_section, hole_start, hole_size, relocations_type); +} + +// Find the first slot in a dynamics array with the given tag. The array +// always ends with a free (unused) element, and which we exclude from the +// search. Returns dynamics->size() if not found. +template +static size_t FindDynamicEntry(typename ELF::Sword tag, + std::vector* dynamics) { + // Loop until the penultimate entry. We exclude the end sentinel. + for (size_t i = 0; i < dynamics->size() - 1; ++i) { + if (dynamics->at(i).d_tag == tag) { + return i; + } + } + + // The tag was not found. + return dynamics->size(); +} + +// Replace dynamic entry. +template +static void ReplaceDynamicEntry(typename ELF::Sword tag, + const typename ELF::Dyn& dyn, + std::vector* dynamics) { + const size_t slot = FindDynamicEntry(tag, dynamics); + if (slot == dynamics->size()) { + LOG(FATAL) << "Dynamic slot is not found for tag=" << tag; + } + + // Replace this entry with the one supplied. + dynamics->at(slot) = dyn; + VLOG(1) << "dynamic[" << slot << "] overwritten with " << dyn.d_tag; +} + +// Remove relative entries from dynamic relocations and write as packed +// data into android packed relocations. +template +bool ElfFile::PackRelocations() { + // Load the ELF file into libelf. + if (!Load()) { + LOG(ERROR) << "Failed to load as ELF"; + return false; + } + + // Retrieve the current dynamic relocations section data. + Elf_Data* data = GetSectionData(relocations_section_); + // we always pack rela, because packed format is pretty much the same + std::vector relocations; + + if (relocations_type_ == REL) { + // Convert data to a vector of relocations. + const typename ELF::Rel* relocations_base = reinterpret_cast(data->d_buf); + ConvertRelArrayToRelaVector(relocations_base, + data->d_size / sizeof(typename ELF::Rel), &relocations); + LOG(INFO) << "Relocations : REL"; + } else if (relocations_type_ == RELA) { + // Convert data to a vector of relocations with addends. + const typename ELF::Rela* relocations_base = reinterpret_cast(data->d_buf); + relocations = std::vector( + relocations_base, + relocations_base + data->d_size / sizeof(relocations[0])); + + LOG(INFO) << "Relocations : RELA"; + } else { + NOTREACHED(); + } + + return PackTypedRelocations(&relocations); +} + +// Helper for PackRelocations(). Rel type is one of ELF::Rel or ELF::Rela. +template +bool ElfFile::PackTypedRelocations(std::vector* relocations) { + typedef typename ELF::Rela Rela; + + // If no relocations then we have nothing packable. Perhaps + // the shared object has already been packed? + if (relocations->empty()) { + LOG(ERROR) << "No relocations found (already packed?)"; + return false; + } + + const size_t rel_size = + relocations_type_ == RELA ? sizeof(typename ELF::Rela) : sizeof(typename ELF::Rel); + const size_t initial_bytes = relocations->size() * rel_size; + + LOG(INFO) << "Unpacked : " << initial_bytes << " bytes"; + std::vector packed; + RelocationPacker packer; + + // Pack relocations: dry run to estimate memory savings. + packer.PackRelocations(*relocations, &packed); + const size_t packed_bytes_estimate = packed.size() * sizeof(packed[0]); + LOG(INFO) << "Packed (no padding): " << packed_bytes_estimate << " bytes"; + + if (packed.empty()) { + LOG(INFO) << "Too few relocations to pack"; + return false; + } + + // Pre-calculate the size of the hole we will close up when we rewrite + // dynamic relocations. We have to adjust relocation addresses to + // account for this. + typename ELF::Shdr* section_header = ELF::getshdr(relocations_section_); + ssize_t hole_size = initial_bytes - packed_bytes_estimate; + + // hole_size needs to be page_aligned. + hole_size -= hole_size % kPreserveAlignment; + + LOG(INFO) << "Compaction : " << hole_size << " bytes"; + + // Adjusting for alignment may have removed any packing benefit. + if (hole_size == 0) { + LOG(INFO) << "Too few relocations to pack after alignment"; + return false; + } + + if (hole_size <= 0) { + LOG(INFO) << "Packing relocations saves no space"; + return false; + } + + size_t data_padding_bytes = is_padding_relocations_ ? + initial_bytes - packed_bytes_estimate : + initial_bytes - hole_size - packed_bytes_estimate; + + // pad data + std::vector padding(data_padding_bytes, 0); + packed.insert(packed.end(), padding.begin(), padding.end()); + + const void* packed_data = &packed[0]; + + // Run a loopback self-test as a check that packing is lossless. + std::vector unpacked; + packer.UnpackRelocations(packed, &unpacked); + CHECK(unpacked.size() == relocations->size()); + CHECK(!memcmp(&unpacked[0], + &relocations->at(0), + unpacked.size() * sizeof(unpacked[0]))); + + // Rewrite the current dynamic relocations section with packed one then shrink it to size. + const size_t bytes = packed.size() * sizeof(packed[0]); + ResizeSection(elf_, relocations_section_, bytes, + relocations_type_ == REL ? SHT_ANDROID_REL : SHT_ANDROID_RELA, relocations_type_); + RewriteSectionData(relocations_section_, packed_data, bytes); + + // TODO (dimitry): fix string table and replace .rel.dyn/plt with .android.rel.dyn/plt + + // Rewrite .dynamic and rename relocation tags describing the packed android + // relocations. + Elf_Data* data = GetSectionData(dynamic_section_); + const typename ELF::Dyn* dynamic_base = reinterpret_cast(data->d_buf); + std::vector dynamics( + dynamic_base, + dynamic_base + data->d_size / sizeof(dynamics[0])); + section_header = ELF::getshdr(relocations_section_); + { + typename ELF::Dyn dyn; + dyn.d_tag = relocations_type_ == REL ? DT_ANDROID_REL : DT_ANDROID_RELA; + dyn.d_un.d_ptr = section_header->sh_addr; + ReplaceDynamicEntry(relocations_type_ == REL ? DT_REL : DT_RELA, dyn, &dynamics); + } + { + typename ELF::Dyn dyn; + dyn.d_tag = relocations_type_ == REL ? DT_ANDROID_RELSZ : DT_ANDROID_RELASZ; + dyn.d_un.d_val = section_header->sh_size; + ReplaceDynamicEntry(relocations_type_ == REL ? DT_RELSZ : DT_RELASZ, dyn, &dynamics); + } + + const void* dynamics_data = &dynamics[0]; + const size_t dynamics_bytes = dynamics.size() * sizeof(dynamics[0]); + RewriteSectionData(dynamic_section_, dynamics_data, dynamics_bytes); + + Flush(); + return true; +} + +// Find packed relative relocations in the packed android relocations +// section, unpack them, and rewrite the dynamic relocations section to +// contain unpacked data. +template +bool ElfFile::UnpackRelocations() { + // Load the ELF file into libelf. + if (!Load()) { + LOG(ERROR) << "Failed to load as ELF"; + return false; + } + + typename ELF::Shdr* section_header = ELF::getshdr(relocations_section_); + // Retrieve the current packed android relocations section data. + Elf_Data* data = GetSectionData(relocations_section_); + + // Convert data to a vector of bytes. + const uint8_t* packed_base = reinterpret_cast(data->d_buf); + std::vector packed( + packed_base, + packed_base + data->d_size / sizeof(packed[0])); + + if ((section_header->sh_type == SHT_ANDROID_RELA || section_header->sh_type == SHT_ANDROID_REL) && + packed.size() > 3 && + packed[0] == 'A' && + packed[1] == 'P' && + (packed[2] == 'U' || packed[2] == 'S') && + packed[3] == '2') { + LOG(INFO) << "Relocations : " << (relocations_type_ == REL ? "REL" : "RELA"); + } else { + LOG(ERROR) << "Packed relocations not found (not packed?)"; + return false; + } + + return UnpackTypedRelocations(packed); +} + +// Helper for UnpackRelocations(). Rel type is one of ELF::Rel or ELF::Rela. +template +bool ElfFile::UnpackTypedRelocations(const std::vector& packed) { + // Unpack the data to re-materialize the relative relocations. + const size_t packed_bytes = packed.size() * sizeof(packed[0]); + LOG(INFO) << "Packed : " << packed_bytes << " bytes"; + std::vector unpacked_relocations; + RelocationPacker packer; + packer.UnpackRelocations(packed, &unpacked_relocations); + + const size_t relocation_entry_size = + relocations_type_ == REL ? sizeof(typename ELF::Rel) : sizeof(typename ELF::Rela); + const size_t unpacked_bytes = unpacked_relocations.size() * relocation_entry_size; + LOG(INFO) << "Unpacked : " << unpacked_bytes << " bytes"; + + // Retrieve the current dynamic relocations section data. + Elf_Data* data = GetSectionData(relocations_section_); + + LOG(INFO) << "Relocations : " << unpacked_relocations.size() << " entries"; + + // If we found the same number of null relocation entries in the dynamic + // relocations section as we hold as unpacked relative relocations, then + // this is a padded file. + + const bool is_padded = packed_bytes == unpacked_bytes; + + // Unless padded, pre-apply relative relocations to account for the + // hole, and pre-adjust all relocation offsets accordingly. + typename ELF::Shdr* section_header = ELF::getshdr(relocations_section_); + + if (!is_padded) { + LOG(INFO) << "Expansion : " << unpacked_bytes - packed_bytes << " bytes"; + } + + // Rewrite the current dynamic relocations section with unpacked version of + // relocations. + const void* section_data = nullptr; + std::vector unpacked_rel_relocations; + if (relocations_type_ == RELA) { + section_data = &unpacked_relocations[0]; + } else if (relocations_type_ == REL) { + ConvertRelaVectorToRelVector(unpacked_relocations, &unpacked_rel_relocations); + section_data = &unpacked_rel_relocations[0]; + } else { + NOTREACHED(); + } + + ResizeSection(elf_, relocations_section_, unpacked_bytes, + relocations_type_ == REL ? SHT_REL : SHT_RELA, relocations_type_); + RewriteSectionData(relocations_section_, section_data, unpacked_bytes); + + // Rewrite .dynamic to remove two tags describing packed android relocations. + data = GetSectionData(dynamic_section_); + const typename ELF::Dyn* dynamic_base = reinterpret_cast(data->d_buf); + std::vector dynamics( + dynamic_base, + dynamic_base + data->d_size / sizeof(dynamics[0])); + { + typename ELF::Dyn dyn; + dyn.d_tag = relocations_type_ == REL ? DT_REL : DT_RELA; + dyn.d_un.d_ptr = section_header->sh_addr; + ReplaceDynamicEntry(relocations_type_ == REL ? DT_ANDROID_REL : DT_ANDROID_RELA, + dyn, &dynamics); + } + + { + typename ELF::Dyn dyn; + dyn.d_tag = relocations_type_ == REL ? DT_RELSZ : DT_RELASZ; + dyn.d_un.d_val = section_header->sh_size; + ReplaceDynamicEntry(relocations_type_ == REL ? DT_ANDROID_RELSZ : DT_ANDROID_RELASZ, + dyn, &dynamics); + } + + const void* dynamics_data = &dynamics[0]; + const size_t dynamics_bytes = dynamics.size() * sizeof(dynamics[0]); + RewriteSectionData(dynamic_section_, dynamics_data, dynamics_bytes); + + Flush(); + return true; +} + +// Flush rewritten shared object file data. +template +void ElfFile::Flush() { + // Flag all ELF data held in memory as needing to be written back to the + // file, and tell libelf that we have controlled the file layout. + elf_flagelf(elf_, ELF_C_SET, ELF_F_DIRTY); + elf_flagelf(elf_, ELF_C_SET, ELF_F_LAYOUT); + + // Write ELF data back to disk. + const off_t file_bytes = elf_update(elf_, ELF_C_WRITE); + if (file_bytes == -1) { + LOG(ERROR) << "elf_update failed: " << elf_errmsg(elf_errno()); + } + + CHECK(file_bytes > 0); + VLOG(1) << "elf_update returned: " << file_bytes; + + // Clean up libelf, and truncate the output file to the number of bytes + // written by elf_update(). + elf_end(elf_); + elf_ = NULL; + const int truncate = ftruncate(fd_, file_bytes); + CHECK(truncate == 0); +} + +template +void ElfFile::ConvertRelArrayToRelaVector(const typename ELF::Rel* rel_array, + size_t rel_array_size, + std::vector* rela_vector) { + for (size_t i = 0; ipush_back(rela); + } +} + +template +void ElfFile::ConvertRelaVectorToRelVector(const std::vector& rela_vector, + std::vector* rel_vector) { + for (auto rela : rela_vector) { + typename ELF::Rel rel; + rel.r_offset = rela.r_offset; + rel.r_info = rela.r_info; + CHECK(rela.r_addend == 0); + rel_vector->push_back(rel); + } +} + +template class ElfFile; +template class ElfFile; + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/elf_file.h b/tools/relocation_packer/src/elf_file.h new file mode 100644 index 000000000..73c31923f --- /dev/null +++ b/tools/relocation_packer/src/elf_file.h @@ -0,0 +1,155 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// ELF shared object file updates handler. +// +// Provides functions to remove relative relocations from the .rel.dyn +// or .rela.dyn sections and pack into .android.rel.dyn or .android.rela.dyn, +// and unpack to return the file to its pre-packed state. +// +// Files to be packed or unpacked must include an existing .android.rel.dyn +// or android.rela.dyn section. A standard libchrome..so will not +// contain this section, so the following can be used to add one: +// +// echo -n 'NULL' >/tmp/small +// if file libchrome..so | grep -q 'ELF 32'; then +// arm-linux-androideabi-objcopy +// --add-section .android.rel.dyn=/tmp/small +// libchrome..so libchrome..so.packed +// else +// aarch64-linux-android-objcopy +// --add-section .android.rela.dyn=/tmp/small +// libchrome..so libchrome..so.packed +// fi +// rm /tmp/small +// +// To use, open the file and pass the file descriptor to the constructor, +// then pack or unpack as desired. Packing or unpacking will flush the file +// descriptor on success. Example: +// +// int fd = open(..., O_RDWR); +// ElfFile elf_file(fd); +// bool status; +// if (is_packing) +// status = elf_file.PackRelocations(); +// else +// status = elf_file.UnpackRelocations(); +// close(fd); +// +// SetPadding() causes PackRelocations() to pad .rel.dyn or .rela.dyn with +// NONE-type entries rather than cutting a hole out of the shared object +// file. This keeps all load addresses and offsets constant, and enables +// easier debugging and testing. +// +// A packed shared object file has all of its relative relocations +// removed from .rel.dyn or .rela.dyn, and replaced as packed data in +// .android.rel.dyn or .android.rela.dyn respectively. The resulting file +// is shorter than its non-packed original. +// +// Unpacking a packed file restores the file to its non-packed state, by +// expanding the packed data in .android.rel.dyn or .android.rela.dyn, +// combining the relative relocations with the data already in .rel.dyn +// or .rela.dyn, and then writing back the now expanded section. + +#ifndef TOOLS_RELOCATION_PACKER_SRC_ELF_FILE_H_ +#define TOOLS_RELOCATION_PACKER_SRC_ELF_FILE_H_ + +#include +#include + +#include "elf.h" +#include "libelf.h" +#include "packer.h" + +namespace relocation_packer { + +// An ElfFile reads shared objects, and shuttles relative relocations +// between .rel.dyn or .rela.dyn and .android.rel.dyn or .android.rela.dyn +// sections. +template +class ElfFile { + public: + explicit ElfFile(int fd) + : fd_(fd), is_padding_relocations_(false), elf_(NULL), + relocations_section_(NULL), dynamic_section_(NULL), + relocations_type_(NONE) {} + ~ElfFile() {} + + // Set padding mode. When padding, PackRelocations() will not shrink + // the .rel.dyn or .rela.dyn section, but instead replace relative with + // NONE-type entries. + // |flag| is true to pad .rel.dyn or .rela.dyn, false to shrink it. + inline void SetPadding(bool flag) { is_padding_relocations_ = flag; } + + // Transfer relative relocations from .rel.dyn or .rela.dyn to a packed + // representation in .android.rel.dyn or .android.rela.dyn. Returns true + // on success. + bool PackRelocations(); + + // Transfer relative relocations from a packed representation in + // .android.rel.dyn or .android.rela.dyn to .rel.dyn or .rela.dyn. Returns + // true on success. + bool UnpackRelocations(); + + private: + enum relocations_type_t { + NONE = 0, REL, RELA + }; + + // Load a new ElfFile from a filedescriptor. If flushing, the file must + // be open for read/write. Returns true on successful ELF file load. + // |fd| is an open file descriptor for the shared object. + bool Load(); + + // Templated packer, helper for PackRelocations(). Rel type is one of + // ELF::Rel or ELF::Rela. + bool PackTypedRelocations(std::vector* relocations); + + // Templated unpacker, helper for UnpackRelocations(). Rel type is one of + // ELF::Rel or ELF::Rela. + bool UnpackTypedRelocations(const std::vector& packed); + + // Write ELF file changes. + void Flush(); + + void AdjustRelativeRelocationTargets(typename ELF::Off hole_start, + ssize_t hole_size, + std::vector* relocations); + + static void ResizeSection(Elf* elf, Elf_Scn* section, size_t new_size, + typename ELF::Word new_sh_type, relocations_type_t relocations_type); + + static void AdjustDynamicSectionForHole(Elf_Scn* dynamic_section, + typename ELF::Off hole_start, + ssize_t hole_size, + relocations_type_t relocations_type); + + static void ConvertRelArrayToRelaVector(const typename ELF::Rel* rel_array, size_t rel_array_size, + std::vector* rela_vector); + + static void ConvertRelaVectorToRelVector(const std::vector& rela_vector, + std::vector* rel_vector); + + + // File descriptor opened on the shared object. + int fd_; + + // If set, pad rather than shrink .rel.dyn or .rela.dyn. Primarily for + // debugging, allows packing to be checked without affecting load addresses. + bool is_padding_relocations_; + + // Libelf handle, assigned by Load(). + Elf* elf_; + + // Sections that we manipulate, assigned by Load(). + Elf_Scn* relocations_section_; + Elf_Scn* dynamic_section_; + + // Relocation type found, assigned by Load(). + relocations_type_t relocations_type_; +}; + +} // namespace relocation_packer + +#endif // TOOLS_RELOCATION_PACKER_SRC_ELF_FILE_H_ diff --git a/tools/relocation_packer/src/elf_file_unittest.cc b/tools/relocation_packer/src/elf_file_unittest.cc new file mode 100644 index 000000000..434f10102 --- /dev/null +++ b/tools/relocation_packer/src/elf_file_unittest.cc @@ -0,0 +1,188 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "elf_file.h" + +#include +#include +#include +#include +#include +#include "debug.h" +#include "elf_traits.h" +#include "gtest/gtest.h" + +namespace { + +void GetDataFilePath(const char* name, std::string* path) { + std::string data_dir; + + const char* bindir = getenv("bindir"); + if (bindir) { + data_dir = std::string(bindir); + } else { + char path[PATH_MAX]; + memset(path, 0, sizeof(path)); + ASSERT_NE(-1, readlink("/proc/self/exe", path, sizeof(path) - 1)); + + data_dir = std::string(path); + size_t pos = data_dir.rfind('/'); + ASSERT_NE(std::string::npos, pos); + + data_dir.erase(pos); + } + + *path = data_dir + "/" + name; +} + +void OpenRelocsTestFile(const char* name, FILE** stream) { + std::string path; + GetDataFilePath(name, &path); + + FILE* testfile = fopen(path.c_str(), "rb"); + ASSERT_FALSE(testfile == NULL) << "Error opening '" << path << "'"; + + FILE* temporary = tmpfile(); + ASSERT_FALSE(temporary == NULL); + + static const size_t buffer_size = 4096; + unsigned char buffer[buffer_size]; + + size_t bytes; + do { + bytes = fread(buffer, 1, sizeof(buffer), testfile); + ASSERT_EQ(bytes, fwrite(buffer, 1, bytes, temporary)); + } while (bytes > 0); + + ASSERT_EQ(0, fclose(testfile)); + ASSERT_EQ(0, fseek(temporary, 0, SEEK_SET)); + ASSERT_EQ(0, lseek(fileno(temporary), 0, SEEK_SET)); + + *stream = temporary; +} + +void OpenRelocsTestFiles(const std::string& arch, FILE** relocs_so, FILE** packed_relocs_so) { + const std::string base = std::string("elf_file_unittest_relocs_") + arch; + const std::string relocs = base + ".so"; + const std::string packed_relocs = base + "_packed.so"; + + OpenRelocsTestFile(relocs.c_str(), relocs_so); + OpenRelocsTestFile(packed_relocs.c_str(), packed_relocs_so); +} + +void CloseRelocsTestFile(FILE* temporary) { + fclose(temporary); +} + +void CloseRelocsTestFiles(FILE* relocs_so, FILE* packed_relocs_so) { + CloseRelocsTestFile(relocs_so); + CloseRelocsTestFile(packed_relocs_so); +} + +void CheckFileContentsEqual(FILE* first, FILE* second) { + ASSERT_EQ(0, fseek(first, 0, SEEK_SET)); + ASSERT_EQ(0, fseek(second, 0, SEEK_SET)); + + static const size_t buffer_size = 4096; + unsigned char first_buffer[buffer_size]; + unsigned char second_buffer[buffer_size]; + + do { + size_t first_read = fread(first_buffer, 1, sizeof(first_buffer), first); + size_t second_read = fread(second_buffer, 1, sizeof(second_buffer), second); + + EXPECT_EQ(first_read, second_read); + EXPECT_EQ(0, memcmp(first_buffer, second_buffer, first_read)); + } while (!feof(first) && !feof(second)); + + EXPECT_TRUE(feof(first) && feof(second)); +} + +template +static void ProcessUnpack(FILE* relocs_so, FILE* packed_relocs_so) { + relocation_packer::ElfFile elf_file(fileno(packed_relocs_so)); + + // Ensure packing fails (already packed). + EXPECT_FALSE(elf_file.PackRelocations()); + + // Unpack golden relocations, and check files are now identical. + EXPECT_TRUE(elf_file.UnpackRelocations()); + CheckFileContentsEqual(packed_relocs_so, relocs_so); + + CloseRelocsTestFiles(relocs_so, packed_relocs_so); +} + +static void RunUnpackRelocationsTestFor(const std::string& arch) { + ASSERT_NE(static_cast(EV_NONE), elf_version(EV_CURRENT)); + + FILE* relocs_so = NULL; + FILE* packed_relocs_so = NULL; + OpenRelocsTestFiles(arch, &relocs_so, &packed_relocs_so); + + if (relocs_so != NULL && packed_relocs_so != NULL) { + // lets detect elf class + ASSERT_EQ(0, fseek(relocs_so, EI_CLASS, SEEK_SET)) + << "Invalid file length: " << strerror(errno); + uint8_t elf_class = 0; + ASSERT_EQ(1U, fread(&elf_class, 1, 1, relocs_so)); + ASSERT_EQ(0, fseek(relocs_so, 0, SEEK_SET)); + if (elf_class == ELFCLASS32) { + ProcessUnpack(relocs_so, packed_relocs_so); + } else { + ProcessUnpack(relocs_so, packed_relocs_so); + } + } +} + +template +static void ProcessPack(FILE* relocs_so, FILE* packed_relocs_so) { + relocation_packer::ElfFile elf_file(fileno(relocs_so)); + + // Ensure unpacking fails (not packed). + EXPECT_FALSE(elf_file.UnpackRelocations()); + + // Pack relocations, and check files are now identical. + EXPECT_TRUE(elf_file.PackRelocations()); + CheckFileContentsEqual(relocs_so, packed_relocs_so); + + CloseRelocsTestFiles(relocs_so, packed_relocs_so); +} + +static void RunPackRelocationsTestFor(const std::string& arch) { + ASSERT_NE(static_cast(EV_NONE), elf_version(EV_CURRENT)); + + FILE* relocs_so = NULL; + FILE* packed_relocs_so = NULL; + OpenRelocsTestFiles(arch, &relocs_so, &packed_relocs_so); + + if (relocs_so != NULL && packed_relocs_so != NULL) { + // lets detect elf class + ASSERT_EQ(0, fseek(packed_relocs_so, EI_CLASS, SEEK_SET)) + << "Invalid file length: " << strerror(errno); + uint8_t elf_class = 0; + ASSERT_EQ(1U, fread(&elf_class, 1, 1, packed_relocs_so)); + fseek(packed_relocs_so, 0, SEEK_SET); + if (elf_class == ELFCLASS32) { + ProcessPack(relocs_so, packed_relocs_so); + } else { + ProcessPack(relocs_so, packed_relocs_so); + } + } +} + +} // namespace + +namespace relocation_packer { + +TEST(ElfFile, PackRelocations) { + RunPackRelocationsTestFor("arm32"); + RunPackRelocationsTestFor("arm64"); +} + +TEST(ElfFile, UnpackRelocations) { + RunUnpackRelocationsTestFor("arm32"); + RunUnpackRelocationsTestFor("arm64"); +} + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/elf_traits.h b/tools/relocation_packer/src/elf_traits.h new file mode 100644 index 000000000..41b06c857 --- /dev/null +++ b/tools/relocation_packer/src/elf_traits.h @@ -0,0 +1,64 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Target-specific ELF type traits. + +#ifndef TOOLS_RELOCATION_PACKER_SRC_ELF_TRAITS_H_ +#define TOOLS_RELOCATION_PACKER_SRC_ELF_TRAITS_H_ + +#include "elf.h" +#include "libelf.h" + +// ELF is a traits structure used to provide convenient aliases for +// 32/64 bit Elf types and functions, depending on the target file. + +struct ELF32_traits { + typedef Elf32_Addr Addr; + typedef Elf32_Dyn Dyn; + typedef Elf32_Ehdr Ehdr; + typedef Elf32_Off Off; + typedef Elf32_Phdr Phdr; + typedef Elf32_Rel Rel; + typedef Elf32_Rela Rela; + typedef Elf32_Shdr Shdr; + typedef Elf32_Sword Sword; + typedef Elf32_Sxword Sxword; + typedef Elf32_Sym Sym; + typedef Elf32_Word Word; + typedef Elf32_Xword Xword; + typedef Elf32_Half Half; + + static inline Ehdr* getehdr(Elf* elf) { return elf32_getehdr(elf); } + static inline Phdr* getphdr(Elf* elf) { return elf32_getphdr(elf); } + static inline Shdr* getshdr(Elf_Scn* scn) { return elf32_getshdr(scn); } + static inline Word elf_r_type(Word info) { return ELF32_R_TYPE(info); } + static inline int elf_st_type(uint8_t info) { return ELF32_ST_TYPE(info); } + static inline Word elf_r_sym(Word info) { return ELF32_R_SYM(info); } +}; + +struct ELF64_traits { + typedef Elf64_Addr Addr; + typedef Elf64_Dyn Dyn; + typedef Elf64_Ehdr Ehdr; + typedef Elf64_Off Off; + typedef Elf64_Phdr Phdr; + typedef Elf64_Rel Rel; + typedef Elf64_Rela Rela; + typedef Elf64_Shdr Shdr; + typedef Elf64_Sword Sword; + typedef Elf64_Sxword Sxword; + typedef Elf64_Sym Sym; + typedef Elf64_Word Word; + typedef Elf64_Xword Xword; + typedef Elf64_Half Half; + + static inline Ehdr* getehdr(Elf* elf) { return elf64_getehdr(elf); } + static inline Phdr* getphdr(Elf* elf) { return elf64_getphdr(elf); } + static inline Shdr* getshdr(Elf_Scn* scn) { return elf64_getshdr(scn); } + static inline Xword elf_r_type(Xword info) { return ELF64_R_TYPE(info); } + static inline int elf_st_type(uint8_t info) { return ELF64_ST_TYPE(info); } + static inline Word elf_r_sym(Xword info) { return ELF64_R_SYM(info); } +}; + +#endif // TOOLS_RELOCATION_PACKER_SRC_ELF_TRAITS_H_ diff --git a/tools/relocation_packer/src/leb128.cc b/tools/relocation_packer/src/leb128.cc new file mode 100644 index 000000000..101c55778 --- /dev/null +++ b/tools/relocation_packer/src/leb128.cc @@ -0,0 +1,87 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "leb128.h" + +#include +#include + +#include "elf_traits.h" + +namespace relocation_packer { + +// Empty constructor and destructor to silence chromium-style. +template +Leb128Encoder::Leb128Encoder() { } + +template +Leb128Encoder::~Leb128Encoder() { } + +// Add a single value to the encoding. Values are encoded with variable +// length. The least significant 7 bits of each byte hold 7 bits of data, +// and the most significant bit is set on each byte except the last. +template +void Leb128Encoder::Enqueue(uint_t value) { + uint_t uvalue = static_cast(value); + do { + const uint8_t byte = uvalue & 127; + uvalue >>= 7; + encoding_.push_back((uvalue ? 128 : 0) | byte); + } while (uvalue); +} + +// Add a vector of values to the encoding. +template +void Leb128Encoder::EnqueueAll(const std::vector& values) { + for (size_t i = 0; i < values.size(); ++i) { + Enqueue(values[i]); + } +} + +// Create a new decoder for the given encoded stream. +template +Leb128Decoder::Leb128Decoder(const std::vector& encoding, size_t start_with) { + encoding_ = encoding; + cursor_ = start_with; +} + +// Empty destructor to silence chromium-style. +template +Leb128Decoder::~Leb128Decoder() { } + +// Decode and retrieve a single value from the encoding. Read forwards until +// a byte without its most significant bit is found, then read the 7 bit +// fields of the bytes spanned to re-form the value. +template +uint_t Leb128Decoder::Dequeue() { + uint_t value = 0; + + size_t shift = 0; + uint8_t byte; + + // Loop until we reach a byte with its high order bit clear. + do { + byte = encoding_[cursor_++]; + value |= static_cast(byte & 127) << shift; + shift += 7; + } while (byte & 128); + + return value; +} + +// Decode and retrieve all remaining values from the encoding. +template +void Leb128Decoder::DequeueAll(std::vector* values) { + while (cursor_ < encoding_.size()) { + values->push_back(Dequeue()); + } +} + +template class Leb128Encoder; +template class Leb128Encoder; + +template class Leb128Decoder; +template class Leb128Decoder; + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/leb128.h b/tools/relocation_packer/src/leb128.h new file mode 100644 index 000000000..2c5b5d079 --- /dev/null +++ b/tools/relocation_packer/src/leb128.h @@ -0,0 +1,76 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// LEB128 encoder and decoder for packed relative relocations. +// +// Run-length encoded relative relocations consist of a large number +// of pairs of relatively small positive integer values. Encoding these as +// LEB128 saves space. +// +// For more on LEB128 see http://en.wikipedia.org/wiki/LEB128. + +#ifndef TOOLS_RELOCATION_PACKER_SRC_LEB128_H_ +#define TOOLS_RELOCATION_PACKER_SRC_LEB128_H_ + +#include +#include + +#include "elf_traits.h" + +namespace relocation_packer { + +// Encode packed words as a LEB128 byte stream. +template +class Leb128Encoder { + public: + // Explicit (but empty) constructor and destructor, for chromium-style. + Leb128Encoder(); + ~Leb128Encoder(); + + // Add a value to the encoding stream. + // |value| is the unsigned int to add. + void Enqueue(uint_t value); + + // Add a vector of values to the encoding stream. + // |values| is the vector of unsigned ints to add. + void EnqueueAll(const std::vector& values); + + // Retrieve the encoded representation of the values. + // |encoding| is the returned vector of encoded data. + void GetEncoding(std::vector* encoding) { *encoding = encoding_; } + + private: + // Growable vector holding the encoded LEB128 stream. + std::vector encoding_; +}; + +// Decode a LEB128 byte stream to produce packed words. +template +class Leb128Decoder { + public: + // Create a new decoder for the given encoded stream. + // |encoding| is the vector of encoded data. + explicit Leb128Decoder(const std::vector& encoding, size_t start_with); + + // Explicit (but empty) destructor, for chromium-style. + ~Leb128Decoder(); + + // Retrieve the next value from the encoded stream. + uint_t Dequeue(); + + // Retrieve all remaining values from the encoded stream. + // |values| is the vector of decoded data. + void DequeueAll(std::vector* values); + + private: + // Encoded LEB128 stream. + std::vector encoding_; + + // Cursor indicating the current stream retrieval point. + size_t cursor_; +}; + +} // namespace relocation_packer + +#endif // TOOLS_RELOCATION_PACKER_SRC_LEB128_H_ diff --git a/tools/relocation_packer/src/leb128_unittest.cc b/tools/relocation_packer/src/leb128_unittest.cc new file mode 100644 index 000000000..8a7028cbc --- /dev/null +++ b/tools/relocation_packer/src/leb128_unittest.cc @@ -0,0 +1,111 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "leb128.h" + +#include +#include "gtest/gtest.h" + +namespace relocation_packer { + +TEST(Leb128, Encoder64) { + std::vector values; + values.push_back(624485); + values.push_back(0); + values.push_back(1); + values.push_back(127); + values.push_back(128); + + Leb128Encoder encoder; + encoder.EnqueueAll(values); + + encoder.Enqueue(4294967295); + encoder.Enqueue(18446744073709551615ul); + + std::vector encoding; + encoder.GetEncoding(&encoding); + + EXPECT_EQ(23U, encoding.size()); + // 624485 + EXPECT_EQ(0xe5, encoding[0]); + EXPECT_EQ(0x8e, encoding[1]); + EXPECT_EQ(0x26, encoding[2]); + // 0 + EXPECT_EQ(0x00, encoding[3]); + // 1 + EXPECT_EQ(0x01, encoding[4]); + // 127 + EXPECT_EQ(0x7f, encoding[5]); + // 128 + EXPECT_EQ(0x80, encoding[6]); + EXPECT_EQ(0x01, encoding[7]); + // 4294967295 + EXPECT_EQ(0xff, encoding[8]); + EXPECT_EQ(0xff, encoding[9]); + EXPECT_EQ(0xff, encoding[10]); + EXPECT_EQ(0xff, encoding[11]); + EXPECT_EQ(0x0f, encoding[12]); + // 18446744073709551615 + EXPECT_EQ(0xff, encoding[13]); + EXPECT_EQ(0xff, encoding[14]); + EXPECT_EQ(0xff, encoding[15]); + EXPECT_EQ(0xff, encoding[16]); + EXPECT_EQ(0xff, encoding[17]); + EXPECT_EQ(0xff, encoding[18]); + EXPECT_EQ(0xff, encoding[19]); + EXPECT_EQ(0xff, encoding[20]); + EXPECT_EQ(0xff, encoding[21]); + EXPECT_EQ(0x01, encoding[22]); +} + +TEST(Leb128, Decoder64) { + std::vector encoding; + // 624485 + encoding.push_back(0xe5); + encoding.push_back(0x8e); + encoding.push_back(0x26); + // 0 + encoding.push_back(0x00); + // 1 + encoding.push_back(0x01); + // 127 + encoding.push_back(0x7f); + // 128 + encoding.push_back(0x80); + encoding.push_back(0x01); + // 4294967295 + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0x0f); + // 18446744073709551615 + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0x01); + + Leb128Decoder decoder(encoding, 0); + + EXPECT_EQ(624485U, decoder.Dequeue()); + + std::vector dequeued; + decoder.DequeueAll(&dequeued); + + EXPECT_EQ(6U, dequeued.size()); + EXPECT_EQ(0U, dequeued[0]); + EXPECT_EQ(1U, dequeued[1]); + EXPECT_EQ(127U, dequeued[2]); + EXPECT_EQ(128U, dequeued[3]); + EXPECT_EQ(4294967295U, dequeued[4]); + EXPECT_EQ(18446744073709551615UL, dequeued[5]); +} + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/main.cc b/tools/relocation_packer/src/main.cc new file mode 100644 index 000000000..3f784e4f3 --- /dev/null +++ b/tools/relocation_packer/src/main.cc @@ -0,0 +1,153 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Tool to pack and unpack relative relocations in a shared library. +// +// Packing removes relative relocations from .rel.dyn and writes them +// in a more compact form to .android.rel.dyn. Unpacking does the reverse. +// +// Invoke with -v to trace actions taken when packing or unpacking. +// Invoke with -p to pad removed relocations with R_*_NONE. Suppresses +// shrinking of .rel.dyn. +// See PrintUsage() below for full usage details. +// +// NOTE: Breaks with libelf 0.152, which is buggy. libelf 0.158 works. + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "debug.h" +#include "elf_file.h" +#include "elf_traits.h" +#include "libelf.h" + +#include "nativehelper/ScopedFd.h" + +static void PrintUsage(const char* argv0) { + std::string temporary = argv0; + const size_t last_slash = temporary.find_last_of("/"); + if (last_slash != temporary.npos) { + temporary.erase(0, last_slash + 1); + } + const char* basename = temporary.c_str(); + + printf( + "Usage: %s [-u] [-v] [-p] file\n\n" + "Pack or unpack relative relocations in a shared library.\n\n" + " -u, --unpack unpack previously packed relative relocations\n" + " -v, --verbose trace object file modifications (for debugging)\n" + " -p, --pad do not shrink relocations, but pad (for debugging)\n\n", + basename); + + printf( + "Debug sections are not handled, so packing should not be used on\n" + "shared libraries compiled for debugging or otherwise unstripped.\n"); +} + +int main(int argc, char* argv[]) { + bool is_unpacking = false; + bool is_verbose = false; + bool is_padding = false; + + static const option options[] = { + {"unpack", 0, 0, 'u'}, {"verbose", 0, 0, 'v'}, {"pad", 0, 0, 'p'}, + {"help", 0, 0, 'h'}, {NULL, 0, 0, 0} + }; + bool has_options = true; + while (has_options) { + int c = getopt_long(argc, argv, "uvph", options, NULL); + switch (c) { + case 'u': + is_unpacking = true; + break; + case 'v': + is_verbose = true; + break; + case 'p': + is_padding = true; + break; + case 'h': + PrintUsage(argv[0]); + return 0; + case '?': + LOG(INFO) << "Try '" << argv[0] << " --help' for more information."; + return 1; + case -1: + has_options = false; + break; + default: + NOTREACHED(); + return 1; + } + } + if (optind != argc - 1) { + LOG(INFO) << "Try '" << argv[0] << " --help' for more information."; + return 1; + } + + if (elf_version(EV_CURRENT) == EV_NONE) { + LOG(WARNING) << "Elf Library is out of date!"; + } + + const char* file = argv[argc - 1]; + ScopedFd fd(open(file, O_RDWR)); + if (fd.get() == -1) { + LOG(ERROR) << file << ": " << strerror(errno); + return 1; + } + + if (is_verbose) + relocation_packer::Logger::SetVerbose(1); + + // We need to detect elf class in order to create + // correct implementation + uint8_t e_ident[EI_NIDENT]; + if (TEMP_FAILURE_RETRY(read(fd.get(), e_ident, EI_NIDENT) != EI_NIDENT)) { + LOG(ERROR) << file << ": failed to read elf header:" << strerror(errno); + return 1; + } + + if (TEMP_FAILURE_RETRY(lseek(fd.get(), 0, SEEK_SET)) != 0) { + LOG(ERROR) << file << ": lseek to 0 failed:" << strerror(errno); + return 1; + } + + bool status = false; + + if (e_ident[EI_CLASS] == ELFCLASS32) { + relocation_packer::ElfFile elf_file(fd.get()); + elf_file.SetPadding(is_padding); + + if (is_unpacking) { + status = elf_file.UnpackRelocations(); + } else { + status = elf_file.PackRelocations(); + } + } else if (e_ident[EI_CLASS] == ELFCLASS64) { + relocation_packer::ElfFile elf_file(fd.get()); + elf_file.SetPadding(is_padding); + + if (is_unpacking) { + status = elf_file.UnpackRelocations(); + } else { + status = elf_file.PackRelocations(); + } + } else { + LOG(ERROR) << file << ": unknown ELFCLASS: " << e_ident[EI_CLASS]; + return 1; + } + + if (!status) { + LOG(ERROR) << file << ": failed to pack/unpack file"; + return 1; + } + + return 0; +} diff --git a/tools/relocation_packer/src/packer.cc b/tools/relocation_packer/src/packer.cc new file mode 100644 index 000000000..8e30612e5 --- /dev/null +++ b/tools/relocation_packer/src/packer.cc @@ -0,0 +1,88 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "packer.h" + +#include + +#include "debug.h" +#include "delta_encoder.h" +#include "elf_traits.h" +#include "leb128.h" +#include "sleb128.h" + +namespace relocation_packer { + +// Pack relocations into a group encoded packed representation. +template +void RelocationPacker::PackRelocations(const std::vector& relocations, + std::vector* packed) { + // Run-length encode. + std::vector packed_words; + RelocationDeltaCodec codec; + codec.Encode(relocations, &packed_words); + + // If insufficient data do nothing. + if (packed_words.empty()) + return; + + Sleb128Encoder sleb128_encoder; + Leb128Encoder leb128_encoder; + + std::vector leb128_packed; + std::vector sleb128_packed; + + leb128_encoder.EnqueueAll(packed_words); + leb128_encoder.GetEncoding(&leb128_packed); + + sleb128_encoder.EnqueueAll(packed_words); + sleb128_encoder.GetEncoding(&sleb128_packed); + + // TODO (simonb): Estimate savings on current android system image and consider using + // one encoder for all packed relocations to reduce complexity. + if (leb128_packed.size() <= sleb128_packed.size()) { + packed->push_back('A'); + packed->push_back('P'); + packed->push_back('U'); + packed->push_back('2'); + packed->insert(packed->end(), leb128_packed.begin(), leb128_packed.end()); + } else { + packed->push_back('A'); + packed->push_back('P'); + packed->push_back('S'); + packed->push_back('2'); + packed->insert(packed->end(), sleb128_packed.begin(), sleb128_packed.end()); + } +} + +// Unpack relative relocations from a run-length encoded packed +// representation. +template +void RelocationPacker::UnpackRelocations( + const std::vector& packed, + std::vector* relocations) { + + std::vector packed_words; + CHECK(packed.size() > 4 && + packed[0] == 'A' && + packed[1] == 'P' && + (packed[2] == 'U' || packed[2] == 'S') && + packed[3] == '2'); + + if (packed[2] == 'U') { + Leb128Decoder decoder(packed, 4); + decoder.DequeueAll(&packed_words); + } else { + Sleb128Decoder decoder(packed, 4); + decoder.DequeueAll(&packed_words); + } + + RelocationDeltaCodec codec; + codec.Decode(packed_words, relocations); +} + +template class RelocationPacker; +template class RelocationPacker; + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/packer.h b/tools/relocation_packer/src/packer.h new file mode 100644 index 000000000..8a57e623b --- /dev/null +++ b/tools/relocation_packer/src/packer.h @@ -0,0 +1,74 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Pack relative relocations into a more compact form. +// +// +// For relative relocations without addends (32 bit platforms) +// ----------------------------------------------------------- +// +// Applies two packing strategies. The first is run-length encoding, which +// turns a large set of relative relocations into a much smaller set +// of delta-count pairs, prefixed with a two-word header comprising the +// count of pairs and the initial relocation offset. The second is LEB128 +// encoding, which compresses the result of run-length encoding. +// +// Once packed, data is prefixed by an identifier that allows for any later +// versioning of packing strategies. +// +// A complete packed stream of relocations without addends might look +// something like: +// +// "APR1" pairs init_offset count1 delta1 count2 delta2 ... +// 41505231 f2b003 b08ac716 e001 04 01 10 ... +// +// +// For relative relocations with addends (64 bit platforms) +// -------------------------------------------------------- +// +// Applies two packing strategies. The first is delta encoding, which +// turns a large set of relative relocations into a smaller set +// of offset and addend delta pairs, prefixed with a header indicating the +// count of pairs. The second is signed LEB128 encoding, which compacts +// the result of delta encoding. +// +// Once packed, data is prefixed by an identifier that allows for any later +// versioning of packing strategies. +// +// A complete packed stream might look something like: +// +// "APA1" pairs offset_d1 addend_d1 offset_d2 addend_d2 ... +// 41505232 f2b018 04 28 08 9f01 ... + +#ifndef TOOLS_RELOCATION_PACKER_SRC_PACKER_H_ +#define TOOLS_RELOCATION_PACKER_SRC_PACKER_H_ + +#include +#include + +#include "elf.h" + +namespace relocation_packer { + +// A RelocationPacker packs vectors of relocations into more +// compact forms, and unpacks them to reproduce the pre-packed data. +template +class RelocationPacker { + public: + // Pack relocations into a more compact form. + // |relocations| is a vector of relocation structs. + // |packed| is the vector of packed bytes into which relocations are packed. + static void PackRelocations(const std::vector& relocations, + std::vector* packed); + + // Unpack relocations from their more compact form. + // |packed| is the vector of packed relocations. + // |relocations| is a vector of unpacked relocation structs. + static void UnpackRelocations(const std::vector& packed, + std::vector* relocations); +}; + +} // namespace relocation_packer + +#endif // TOOLS_RELOCATION_PACKER_SRC_PACKER_H_ diff --git a/tools/relocation_packer/src/packer_unittest.cc b/tools/relocation_packer/src/packer_unittest.cc new file mode 100644 index 000000000..8dddd8b41 --- /dev/null +++ b/tools/relocation_packer/src/packer_unittest.cc @@ -0,0 +1,292 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "packer.h" + +#include +#include "elf.h" +#include "elf_traits.h" +#include "gtest/gtest.h" + + +template +static void AddRelocation(typename ELF::Addr addr, + typename ELF::Xword info, + typename ELF::Sxword addend, + std::vector* relocations) { + typename ELF::Rela relocation; + relocation.r_offset = addr; + relocation.r_info = info; + relocation.r_addend = addend; + + relocations->push_back(relocation); +} + +template +static bool CheckRelocation(typename ELF::Addr addr, + typename ELF::Xword info, + typename ELF::Sxword addend, + const typename ELF::Rela& relocation) { + return relocation.r_offset == addr && + relocation.r_info == info && + relocation.r_addend == addend; +} + +namespace relocation_packer { + +template +static void DoPackNoAddend() { + std::vector relocations; + std::vector packed; + // Initial relocation. + AddRelocation(0xd1ce0000, 0x11, 0, &relocations); + // Two more relocations, 4 byte deltas. + AddRelocation(0xd1ce0004, 0x11, 0, &relocations); + AddRelocation(0xd1ce0008, 0x11, 0, &relocations); + // Three more relocations, 8 byte deltas. + AddRelocation(0xd1ce0010, 0x11, 0, &relocations); + AddRelocation(0xd1ce0018, 0x11, 0, &relocations); + AddRelocation(0xd1ce0020, 0x11, 0, &relocations); + + RelocationPacker packer; + + packed.clear(); + packer.PackRelocations(relocations, &packed); + + ASSERT_EQ(18U, packed.size()); + // Identifier. + size_t ndx = 0; + EXPECT_EQ('A', packed[ndx++]); + EXPECT_EQ('P', packed[ndx++]); + EXPECT_EQ('U', packed[ndx++]); + EXPECT_EQ('2', packed[ndx++]); + // relocation count + EXPECT_EQ(6, packed[ndx++]); + // base relocation = 0xd1cdfffc -> fc, ff, b7, 8e, 0d + EXPECT_EQ(0xfc, packed[ndx++]); + EXPECT_EQ(0xff, packed[ndx++]); + EXPECT_EQ(0xb7, packed[ndx++]); + EXPECT_EQ(0x8e, packed[ndx++]); + EXPECT_EQ(0x0d, packed[ndx++]); + // first group + EXPECT_EQ(3, packed[ndx++]); // size + EXPECT_EQ(3, packed[ndx++]); // flags + EXPECT_EQ(4, packed[ndx++]); // r_offset_delta + EXPECT_EQ(0x11, packed[ndx++]); // r_info + // second group + EXPECT_EQ(3, packed[ndx++]); // size + EXPECT_EQ(3, packed[ndx++]); // flags + EXPECT_EQ(8, packed[ndx++]); // r_offset_delta + EXPECT_EQ(0x11, packed[ndx++]); // r_info + + EXPECT_EQ(ndx, packed.size()); +} + +TEST(Packer, PackNoAddend) { + DoPackNoAddend(); + DoPackNoAddend(); +} + +template +static void DoUnpackNoAddend() { + std::vector relocations; + std::vector packed; + packed.push_back('A'); + packed.push_back('P'); + packed.push_back('U'); + packed.push_back('2'); + // relocation count + packed.push_back(6); + // base relocation = 0xd1cdfffc -> fc, ff, b7, 8e, 0d + packed.push_back(0xfc); + packed.push_back(0xff); + packed.push_back(0xb7); + packed.push_back(0x8e); + packed.push_back(0x0d); + // first group + packed.push_back(3); // size + packed.push_back(3); // flags + packed.push_back(4); // r_offset_delta + packed.push_back(0x11); // r_info + // second group + packed.push_back(3); // size + packed.push_back(3); // flags + packed.push_back(8); // r_offset_delta + packed.push_back(0x11); // r_info + + RelocationPacker packer; + packer.UnpackRelocations(packed, &relocations); + + size_t ndx = 0; + EXPECT_EQ(6U, relocations.size()); + EXPECT_TRUE(CheckRelocation(0xd1ce0000, 0x11, 0, relocations[ndx++])); + EXPECT_TRUE(CheckRelocation(0xd1ce0004, 0x11, 0, relocations[ndx++])); + EXPECT_TRUE(CheckRelocation(0xd1ce0008, 0x11, 0, relocations[ndx++])); + + EXPECT_TRUE(CheckRelocation(0xd1ce0010, 0x11, 0, relocations[ndx++])); + EXPECT_TRUE(CheckRelocation(0xd1ce0018, 0x11, 0, relocations[ndx++])); + EXPECT_TRUE(CheckRelocation(0xd1ce0020, 0x11, 0, relocations[ndx++])); + + EXPECT_EQ(ndx, relocations.size()); +} + +TEST(Packer, UnpackNoAddend) { + DoUnpackNoAddend(); + DoUnpackNoAddend(); +} + +template +static void DoPackWithAddend() { + std::vector relocations; + + // Initial relocation. + AddRelocation(0xd1ce0000, 0x01, 10024, &relocations); + // Two more relocations, 4 byte offset deltas, 12 byte addend deltas. + AddRelocation(0xd1ce0004, 0x01, 10012, &relocations); + AddRelocation(0xd1ce0008, 0x01, 10024, &relocations); + // Three more relocations, 8 byte deltas, -24 byte addend deltas. + AddRelocation(0xd1ce0010, 0x01, 10000, &relocations); + AddRelocation(0xd1ce0018, 0x01, 9976, &relocations); + AddRelocation(0xd1ce0020, 0x01, 9952, &relocations); + + std::vector packed; + + RelocationPacker packer; + + packed.clear(); + packer.PackRelocations(relocations, &packed); + + EXPECT_EQ(26U, packed.size()); + size_t ndx = 0; + // Identifier. + EXPECT_EQ('A', packed[ndx++]); + EXPECT_EQ('P', packed[ndx++]); + EXPECT_EQ('S', packed[ndx++]); + EXPECT_EQ('2', packed[ndx++]); + // Relocation count + EXPECT_EQ(6U, packed[ndx++]); + // base relocation = 0xd1cdfffc -> fc, ff, b7, 8e, 0d/7d (depending on ELF::Addr) + EXPECT_EQ(0xfc, packed[ndx++]); + EXPECT_EQ(0xff, packed[ndx++]); + EXPECT_EQ(0xb7, packed[ndx++]); + EXPECT_EQ(0x8e, packed[ndx++]); + if (sizeof(typename ELF::Addr) == 8) { + // positive for uint64_t + EXPECT_EQ(0x0d, packed[ndx++]); + } else { + // negative for uint32_t + EXPECT_EQ(0x7d, packed[ndx++]); + } + // group 1 + EXPECT_EQ(0x03, packed[ndx++]); // size + EXPECT_EQ(0x0b, packed[ndx++]); // flags + EXPECT_EQ(0x04, packed[ndx++]); // r_offset_delta + EXPECT_EQ(0x01, packed[ndx++]); // r_info + // group 1 - addend 1: 10024 = 0xa8, 0xce, 0x80 + EXPECT_EQ(0xa8, packed[ndx++]); + EXPECT_EQ(0xce, packed[ndx++]); + EXPECT_EQ(0x00, packed[ndx++]); + // group 1 - addend 2: -12 = 0x74 + EXPECT_EQ(0x74, packed[ndx++]); + // group 1 - addend 3: +12 = 0x0c + EXPECT_EQ(0x0c, packed[ndx++]); + + // group 2 + EXPECT_EQ(0x03, packed[ndx++]); // size + EXPECT_EQ(0x0b, packed[ndx++]); // flags + EXPECT_EQ(0x08, packed[ndx++]); // r_offset_delta + EXPECT_EQ(0x01, packed[ndx++]); // r_info + + // group 2 - addend 1: -24 = 0x68 + EXPECT_EQ(0x68, packed[ndx++]); + // group 2 - addend 2: -24 = 0x68 + EXPECT_EQ(0x68, packed[ndx++]); + // group 2 - addend 3: -24 = 0x68 + EXPECT_EQ(0x68, packed[ndx++]); + + EXPECT_EQ(ndx, packed.size()); +} + +TEST(Packer, PackWithAddend) { + DoPackWithAddend(); + DoPackWithAddend(); +} + +template +static void DoUnpackWithAddend() { + std::vector packed; + // Identifier. + packed.push_back('A'); + packed.push_back('P'); + packed.push_back('S'); + packed.push_back('2'); + // Relocation count + packed.push_back(6U); + // base relocation = 0xd1cdfffc -> fc, ff, b7, 8e, 0d + packed.push_back(0xfc); + packed.push_back(0xff); + packed.push_back(0xb7); + packed.push_back(0x8e); + if (sizeof(typename ELF::Addr) == 8) { + // positive for uint64_t + packed.push_back(0x0d); + } else { + // negative for uint32_t + packed.push_back(0x7d); + } + // group 1 + packed.push_back(0x03); // size + packed.push_back(0x0b); // flags + packed.push_back(0x04); // r_offset_delta + packed.push_back(0x01); // r_info + // group 1 - addend 1: 10024 = 0xa8, 0xce, 0x80 + packed.push_back(0xa8); + packed.push_back(0xce); + packed.push_back(0x00); + // group 1 - addend 2: -12 = 0x74 + packed.push_back(0x74); + // group 1 - addend 3: +12 = 0x0c + packed.push_back(0x0c); + + // group 2 + packed.push_back(0x03); // size + packed.push_back(0x0b); // flags + packed.push_back(0x08); // r_offset_delta + packed.push_back(0x01); // r_info + + // group 2 - addend 1: -24 = 0x68 + packed.push_back(0x68); + // group 2 - addend 2: -24 = 0x68 + packed.push_back(0x68); + // group 2 - addend 3: -24 = 0x68 + packed.push_back(0x68); + + std::vector relocations; + + RelocationPacker packer; + + relocations.clear(); + packer.UnpackRelocations(packed, &relocations); + + EXPECT_EQ(6U, relocations.size()); + size_t ndx = 0; + // Initial relocation. + EXPECT_TRUE(CheckRelocation(0xd1ce0000, 0x01, 10024, relocations[ndx++])); + // Two more relocations, 4 byte offset deltas, 12 byte addend deltas. + EXPECT_TRUE(CheckRelocation(0xd1ce0004, 0x01, 10012, relocations[ndx++])); + EXPECT_TRUE(CheckRelocation(0xd1ce0008, 0x01, 10024, relocations[ndx++])); + // Three more relocations, 8 byte offset deltas, -24 byte addend deltas. + EXPECT_TRUE(CheckRelocation(0xd1ce0010, 0x01, 10000, relocations[ndx++])); + EXPECT_TRUE(CheckRelocation(0xd1ce0018, 0x01, 9976, relocations[ndx++])); + EXPECT_TRUE(CheckRelocation(0xd1ce0020, 0x01, 9952, relocations[ndx++])); + + EXPECT_EQ(ndx, relocations.size()); +} + +TEST(Packer, UnpackWithAddend) { + DoUnpackWithAddend(); + DoUnpackWithAddend(); +} + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/run_length_encoder.h b/tools/relocation_packer/src/run_length_encoder.h new file mode 100644 index 000000000..f3a80e602 --- /dev/null +++ b/tools/relocation_packer/src/run_length_encoder.h @@ -0,0 +1,81 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Run-length encode and decode relative relocations. +// +// Relative relocations are the bulk of dynamic relocations (the +// .rel.dyn or .rela.dyn sections) in libchrome..so, and the ELF +// standard representation of them is wasteful. .rel.dyn contains +// relocations without addends, .rela.dyn relocations with addends. +// +// A relocation with no addend is 8 bytes on 32 bit platforms and 16 bytes +// on 64 bit plaforms, split into offset and info fields. Offsets strictly +// increase, and each is commonly a few bytes different from its predecessor. +// There are long runs where the difference does not change. The info field +// is constant. Example, from 'readelf -x4 libchrome..so' 32 bit: +// +// offset info offset info +// 808fef01 17000000 848fef01 17000000 ................ +// 888fef01 17000000 8c8fef01 17000000 ................ +// 908fef01 17000000 948fef01 17000000 ................ +// +// Run length encoding packs this data more efficiently, by representing it +// as a delta and a count of entries each differing from its predecessor +// by this delta. The above can be represented as a start address followed +// by an encoded count of 6 and offset difference of 4: +// +// start count diff +// 01ef8f80 00000006 00000004 +// +// Because relative relocation offsets strictly increase, the complete +// set of relative relocations in libchrome..so can be +// represented by a single start address followed by one or more difference +// and count encoded word pairs: +// +// start run1 count run1 diff run2 count run2 diff +// 01ef8f80 00000006 00000004 00000010 00000008 ... +// +// Decoding regenerates relative relocations beginning at address +// 'start' and for each encoded run, incrementing the address by 'difference' +// for 'count' iterations and emitting a new relative relocation. +// +// Once encoded, data is prefixed by a single word count of packed delta and +// count pairs. A final run-length encoded relative relocations vector +// might therefore look something like: +// +// pairs start run 1 run 2 ... run 15 +// 0000000f 01ef8f80 00000006 00000004 00000010 00000008 ... +// Interpreted as: +// pairs=15 start=.. count=6,delta=4 count=16,delta=8 + +#ifndef TOOLS_RELOCATION_PACKER_SRC_RUN_LENGTH_ENCODER_H_ +#define TOOLS_RELOCATION_PACKER_SRC_RUN_LENGTH_ENCODER_H_ + +#include + +#include "elf.h" +#include "elf_traits.h" + +namespace relocation_packer { + +// A RelocationRunLengthCodec packs vectors of relative relocations +// into more compact forms, and unpacks them to reproduce the pre-packed data. +class RelocationRunLengthCodec { + public: + // Encode relative relocations into a more compact form. + // |relocations| is a vector of relative relocation structs. + // |packed| is the vector of packed words into which relocations are packed. + static void Encode(const std::vector& relocations, + std::vector* packed); + + // Decode relative relocations from their more compact form. + // |packed| is the vector of packed relocations. + // |relocations| is a vector of unpacked relative relocation structs. + static void Decode(const std::vector& packed, + std::vector* relocations); +}; + +} // namespace relocation_packer + +#endif // TOOLS_RELOCATION_PACKER_SRC_RUN_LENGTH_ENCODER_H_ diff --git a/tools/relocation_packer/src/sleb128.cc b/tools/relocation_packer/src/sleb128.cc new file mode 100644 index 000000000..12c21e364 --- /dev/null +++ b/tools/relocation_packer/src/sleb128.cc @@ -0,0 +1,131 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "sleb128.h" + +#include +#include +#include + +#include "elf_traits.h" + +namespace { + +template +class uint_traits {}; + +template <> +class uint_traits { + public: + typedef int64_t int_t; +}; + +template <> +class uint_traits { + public: + typedef int32_t int_t; +}; + +} + +namespace relocation_packer { + +// Empty constructor and destructor to silence chromium-style. +template +Sleb128Encoder::Sleb128Encoder() { } + +template +Sleb128Encoder::~Sleb128Encoder() { } + +// Add a single value to the encoding. Values are encoded with variable +// length. The least significant 7 bits of each byte hold 7 bits of data, +// and the most significant bit is set on each byte except the last. The +// value is sign extended up to a multiple of 7 bits (ensuring that the +// most significant bit is zero for a positive number and one for a +// negative number). +template +void Sleb128Encoder::Enqueue(uint_t value) { + typedef typename uint_traits::int_t int_t; + static const size_t size = CHAR_BIT * sizeof(value); + + bool more = true; + const bool negative = static_cast(value) < 0; + + while (more) { + uint8_t byte = value & 127; + value >>= 7; + + // Sign extend if encoding a -ve value. + if (negative) + value |= -(static_cast(1) << (size - 7)); + + // The sign bit of byte is second high order bit. + const bool sign_bit = byte & 64; + if ((value == 0 && !sign_bit) || (value == static_cast(-1) && sign_bit)) + more = false; + else + byte |= 128; + encoding_.push_back(byte); + } +} + +// Add a vector of values to the encoding. +template +void Sleb128Encoder::EnqueueAll(const std::vector& values) { + for (size_t i = 0; i < values.size(); ++i) { + Enqueue(values[i]); + } +} + +// Create a new decoder for the given encoded stream. +template +Sleb128Decoder::Sleb128Decoder(const std::vector& encoding, size_t start_with) { + encoding_ = encoding; + cursor_ = start_with; +} + +// Empty destructor to silence chromium-style. +template +Sleb128Decoder::~Sleb128Decoder() { } + +// Decode and retrieve a single value from the encoding. Consume bytes +// until one without its most significant bit is found, and re-form the +// value from the 7 bit fields of the bytes consumed. +template +uint_t Sleb128Decoder::Dequeue() { + uint_t value = 0; + static const size_t size = CHAR_BIT * sizeof(value); + + size_t shift = 0; + uint8_t byte; + + // Loop until we reach a byte with its high order bit clear. + do { + byte = encoding_[cursor_++]; + value |= (static_cast(byte & 127) << shift); + shift += 7; + } while (byte & 128); + + // The sign bit is second high order bit of the final byte decoded. + // Sign extend if value is -ve and we did not shift all of it. + if (shift < size && (byte & 64)) + value |= -(static_cast(1) << shift); + + return static_cast(value); +} + +// Decode and retrieve all remaining values from the encoding. +template +void Sleb128Decoder::DequeueAll(std::vector* values) { + while (cursor_ < encoding_.size()) { + values->push_back(Dequeue()); + } +} + +template class Sleb128Encoder; +template class Sleb128Encoder; +template class Sleb128Decoder; +template class Sleb128Decoder; + +} // namespace relocation_packer diff --git a/tools/relocation_packer/src/sleb128.h b/tools/relocation_packer/src/sleb128.h new file mode 100644 index 000000000..fa0a24610 --- /dev/null +++ b/tools/relocation_packer/src/sleb128.h @@ -0,0 +1,77 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// SLEB128 encoder and decoder for packed relative relocations. +// +// Delta encoded relative relocations consist of a large number +// of pairs signed integer values, many with small values. Encoding these +// as signed LEB128 saves space. +// +// For more on LEB128 see http://en.wikipedia.org/wiki/LEB128. + +#ifndef TOOLS_RELOCATION_PACKER_SRC_SLEB128_H_ +#define TOOLS_RELOCATION_PACKER_SRC_SLEB128_H_ + +#include +#include +#include + +#include "elf_traits.h" + +namespace relocation_packer { + +// Encode packed words as a signed LEB128 byte stream. +template +class Sleb128Encoder { + public: + // Explicit (but empty) constructor and destructor, for chromium-style. + Sleb128Encoder(); + ~Sleb128Encoder(); + + // Add a value to the encoding stream. + // |value| is the signed int to add. + void Enqueue(int_t value); + + // Add a vector of values to the encoding stream. + // |values| is the vector of signed ints to add. + void EnqueueAll(const std::vector& values); + + // Retrieve the encoded representation of the values. + // |encoding| is the returned vector of encoded data. + void GetEncoding(std::vector* encoding) { *encoding = encoding_; } + + private: + // Growable vector holding the encoded LEB128 stream. + std::vector encoding_; +}; + +// Decode a LEB128 byte stream to produce packed words. +template +class Sleb128Decoder { + public: + // Create a new decoder for the given encoded stream. + // |encoding| is the vector of encoded data. + explicit Sleb128Decoder(const std::vector& encoding, size_t start_with); + + // Explicit (but empty) destructor, for chromium-style. + ~Sleb128Decoder(); + + // Retrieve the next value from the encoded stream. + int_t Dequeue(); + + // Retrieve all remaining values from the encoded stream. + // |values| is the vector of decoded data. + void DequeueAll(std::vector* values); + + private: + // Encoded LEB128 stream. + std::vector encoding_; + + // Cursor indicating the current stream retrieval point. + size_t cursor_; +}; + +} // namespace relocation_packer + +#endif // TOOLS_RELOCATION_PACKER_SRC_SLEB128_H_ diff --git a/tools/relocation_packer/src/sleb128_unittest.cc b/tools/relocation_packer/src/sleb128_unittest.cc new file mode 100644 index 000000000..49a553c2f --- /dev/null +++ b/tools/relocation_packer/src/sleb128_unittest.cc @@ -0,0 +1,166 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "sleb128.h" + +#include +#include "elf_traits.h" +#include "gtest/gtest.h" + +namespace relocation_packer { + +TEST(Sleb128, Encoder64) { + std::vector values; + values.push_back(624485U); + values.push_back(0U); + values.push_back(1U); + values.push_back(63U); + values.push_back(64U); + values.push_back(static_cast(-1)); + values.push_back(static_cast(-624485)); + + Sleb128Encoder encoder; + encoder.EnqueueAll(values); + + encoder.Enqueue(2147483647U); + encoder.Enqueue(static_cast(-2147483648)); + encoder.Enqueue(9223372036854775807ULL); + encoder.Enqueue(static_cast(-9223372036854775807LL - 1)); + + std::vector encoding; + encoder.GetEncoding(&encoding); + + EXPECT_EQ(42u, encoding.size()); + // 624485 + EXPECT_EQ(0xe5, encoding[0]); + EXPECT_EQ(0x8e, encoding[1]); + EXPECT_EQ(0x26, encoding[2]); + // 0 + EXPECT_EQ(0x00, encoding[3]); + // 1 + EXPECT_EQ(0x01, encoding[4]); + // 63 + EXPECT_EQ(0x3f, encoding[5]); + // 64 + EXPECT_EQ(0xc0, encoding[6]); + EXPECT_EQ(0x00, encoding[7]); + // -1 + EXPECT_EQ(0x7f, encoding[8]); + // -624485 + EXPECT_EQ(0x9b, encoding[9]); + EXPECT_EQ(0xf1, encoding[10]); + EXPECT_EQ(0x59, encoding[11]); + // 2147483647 + EXPECT_EQ(0xff, encoding[12]); + EXPECT_EQ(0xff, encoding[13]); + EXPECT_EQ(0xff, encoding[14]); + EXPECT_EQ(0xff, encoding[15]); + EXPECT_EQ(0x07, encoding[16]); + // -2147483648 + EXPECT_EQ(0x80, encoding[17]); + EXPECT_EQ(0x80, encoding[18]); + EXPECT_EQ(0x80, encoding[19]); + EXPECT_EQ(0x80, encoding[20]); + EXPECT_EQ(0x78, encoding[21]); + // 9223372036854775807 + EXPECT_EQ(0xff, encoding[22]); + EXPECT_EQ(0xff, encoding[23]); + EXPECT_EQ(0xff, encoding[24]); + EXPECT_EQ(0xff, encoding[25]); + EXPECT_EQ(0xff, encoding[26]); + EXPECT_EQ(0xff, encoding[27]); + EXPECT_EQ(0xff, encoding[28]); + EXPECT_EQ(0xff, encoding[29]); + EXPECT_EQ(0xff, encoding[30]); + EXPECT_EQ(0x00, encoding[31]); + // -9223372036854775808 + EXPECT_EQ(0x80, encoding[32]); + EXPECT_EQ(0x80, encoding[33]); + EXPECT_EQ(0x80, encoding[34]); + EXPECT_EQ(0x80, encoding[35]); + EXPECT_EQ(0x80, encoding[36]); + EXPECT_EQ(0x80, encoding[37]); + EXPECT_EQ(0x80, encoding[38]); + EXPECT_EQ(0x80, encoding[39]); + EXPECT_EQ(0x80, encoding[40]); + EXPECT_EQ(0x7f, encoding[41]); +} + +TEST(Sleb128, Decoder) { + std::vector encoding; + // 624485 + encoding.push_back(0xe5); + encoding.push_back(0x8e); + encoding.push_back(0x26); + // 0 + encoding.push_back(0x00); + // 1 + encoding.push_back(0x01); + // 63 + encoding.push_back(0x3f); + // 64 + encoding.push_back(0xc0); + encoding.push_back(0x00); + // -1 + encoding.push_back(0x7f); + // -624485 + encoding.push_back(0x9b); + encoding.push_back(0xf1); + encoding.push_back(0x59); + // 2147483647 + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0x07); + // -2147483648 + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x78); + // 9223372036854775807 + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0xff); + encoding.push_back(0x00); + // -9223372036854775808 + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x80); + encoding.push_back(0x7f); + + Sleb128Decoder decoder(encoding, 0); + + EXPECT_EQ(624485U, decoder.Dequeue()); + + std::vector dequeued; + decoder.DequeueAll(&dequeued); + + EXPECT_EQ(10U, dequeued.size()); + EXPECT_EQ(0U, dequeued[0]); + EXPECT_EQ(1U, dequeued[1]); + EXPECT_EQ(63U, dequeued[2]); + EXPECT_EQ(64U, dequeued[3]); + EXPECT_EQ(static_cast(-1), dequeued[4]); + EXPECT_EQ(static_cast(-624485), dequeued[5]); + EXPECT_EQ(2147483647U, dequeued[6]); + EXPECT_EQ(static_cast(-2147483648), dequeued[7]); + EXPECT_EQ(9223372036854775807ULL, dequeued[8]); + EXPECT_EQ(static_cast(-9223372036854775807LL - 1), dequeued[9]); +} + +} // namespace relocation_packer diff --git a/tools/relocation_packer/test_data/elf_file_unittest_relocs.cc b/tools/relocation_packer/test_data/elf_file_unittest_relocs.cc new file mode 100644 index 000000000..5e1fa747e --- /dev/null +++ b/tools/relocation_packer/test_data/elf_file_unittest_relocs.cc @@ -0,0 +1,1014 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Test data for packing/unpacking. When compiled, creates a run of +// relative relocations. +// +// See generate_elf_file_unittest_relocs.sh for instructions on how to build +// unit test data from this source file. + +const int i = 0; + +// Generator: +// python -c 'for i in xrange(0,1000):print"const void* pointer_%d = &i;"%i' +const void* pointer_0 = &i; +const void* pointer_1 = &i; +const void* pointer_2 = &i; +const void* pointer_3 = &i; +const void* pointer_4 = &i; +const void* pointer_5 = &i; +const void* pointer_6 = &i; +const void* pointer_7 = &i; +const void* pointer_8 = &i; +const void* pointer_9 = &i; +const void* pointer_10 = &i; +const void* pointer_11 = &i; +const void* pointer_12 = &i; +const void* pointer_13 = &i; +const void* pointer_14 = &i; +const void* pointer_15 = &i; +const void* pointer_16 = &i; +const void* pointer_17 = &i; +const void* pointer_18 = &i; +const void* pointer_19 = &i; +const void* pointer_20 = &i; +const void* pointer_21 = &i; +const void* pointer_22 = &i; +const void* pointer_23 = &i; +const void* pointer_24 = &i; +const void* pointer_25 = &i; +const void* pointer_26 = &i; +const void* pointer_27 = &i; +const void* pointer_28 = &i; +const void* pointer_29 = &i; +const void* pointer_30 = &i; +const void* pointer_31 = &i; +const void* pointer_32 = &i; +const void* pointer_33 = &i; +const void* pointer_34 = &i; +const void* pointer_35 = &i; +const void* pointer_36 = &i; +const void* pointer_37 = &i; +const void* pointer_38 = &i; +const void* pointer_39 = &i; +const void* pointer_40 = &i; +const void* pointer_41 = &i; +const void* pointer_42 = &i; +const void* pointer_43 = &i; +const void* pointer_44 = &i; +const void* pointer_45 = &i; +const void* pointer_46 = &i; +const void* pointer_47 = &i; +const void* pointer_48 = &i; +const void* pointer_49 = &i; +const void* pointer_50 = &i; +const void* pointer_51 = &i; +const void* pointer_52 = &i; +const void* pointer_53 = &i; +const void* pointer_54 = &i; +const void* pointer_55 = &i; +const void* pointer_56 = &i; +const void* pointer_57 = &i; +const void* pointer_58 = &i; +const void* pointer_59 = &i; +const void* pointer_60 = &i; +const void* pointer_61 = &i; +const void* pointer_62 = &i; +const void* pointer_63 = &i; +const void* pointer_64 = &i; +const void* pointer_65 = &i; +const void* pointer_66 = &i; +const void* pointer_67 = &i; +const void* pointer_68 = &i; +const void* pointer_69 = &i; +const void* pointer_70 = &i; +const void* pointer_71 = &i; +const void* pointer_72 = &i; +const void* pointer_73 = &i; +const void* pointer_74 = &i; +const void* pointer_75 = &i; +const void* pointer_76 = &i; +const void* pointer_77 = &i; +const void* pointer_78 = &i; +const void* pointer_79 = &i; +const void* pointer_80 = &i; +const void* pointer_81 = &i; +const void* pointer_82 = &i; +const void* pointer_83 = &i; +const void* pointer_84 = &i; +const void* pointer_85 = &i; +const void* pointer_86 = &i; +const void* pointer_87 = &i; +const void* pointer_88 = &i; +const void* pointer_89 = &i; +const void* pointer_90 = &i; +const void* pointer_91 = &i; +const void* pointer_92 = &i; +const void* pointer_93 = &i; +const void* pointer_94 = &i; +const void* pointer_95 = &i; +const void* pointer_96 = &i; +const void* pointer_97 = &i; +const void* pointer_98 = &i; +const void* pointer_99 = &i; +const void* pointer_100 = &i; +const void* pointer_101 = &i; +const void* pointer_102 = &i; +const void* pointer_103 = &i; +const void* pointer_104 = &i; +const void* pointer_105 = &i; +const void* pointer_106 = &i; +const void* pointer_107 = &i; +const void* pointer_108 = &i; +const void* pointer_109 = &i; +const void* pointer_110 = &i; +const void* pointer_111 = &i; +const void* pointer_112 = &i; +const void* pointer_113 = &i; +const void* pointer_114 = &i; +const void* pointer_115 = &i; +const void* pointer_116 = &i; +const void* pointer_117 = &i; +const void* pointer_118 = &i; +const void* pointer_119 = &i; +const void* pointer_120 = &i; +const void* pointer_121 = &i; +const void* pointer_122 = &i; +const void* pointer_123 = &i; +const void* pointer_124 = &i; +const void* pointer_125 = &i; +const void* pointer_126 = &i; +const void* pointer_127 = &i; +const void* pointer_128 = &i; +const void* pointer_129 = &i; +const void* pointer_130 = &i; +const void* pointer_131 = &i; +const void* pointer_132 = &i; +const void* pointer_133 = &i; +const void* pointer_134 = &i; +const void* pointer_135 = &i; +const void* pointer_136 = &i; +const void* pointer_137 = &i; +const void* pointer_138 = &i; +const void* pointer_139 = &i; +const void* pointer_140 = &i; +const void* pointer_141 = &i; +const void* pointer_142 = &i; +const void* pointer_143 = &i; +const void* pointer_144 = &i; +const void* pointer_145 = &i; +const void* pointer_146 = &i; +const void* pointer_147 = &i; +const void* pointer_148 = &i; +const void* pointer_149 = &i; +const void* pointer_150 = &i; +const void* pointer_151 = &i; +const void* pointer_152 = &i; +const void* pointer_153 = &i; +const void* pointer_154 = &i; +const void* pointer_155 = &i; +const void* pointer_156 = &i; +const void* pointer_157 = &i; +const void* pointer_158 = &i; +const void* pointer_159 = &i; +const void* pointer_160 = &i; +const void* pointer_161 = &i; +const void* pointer_162 = &i; +const void* pointer_163 = &i; +const void* pointer_164 = &i; +const void* pointer_165 = &i; +const void* pointer_166 = &i; +const void* pointer_167 = &i; +const void* pointer_168 = &i; +const void* pointer_169 = &i; +const void* pointer_170 = &i; +const void* pointer_171 = &i; +const void* pointer_172 = &i; +const void* pointer_173 = &i; +const void* pointer_174 = &i; +const void* pointer_175 = &i; +const void* pointer_176 = &i; +const void* pointer_177 = &i; +const void* pointer_178 = &i; +const void* pointer_179 = &i; +const void* pointer_180 = &i; +const void* pointer_181 = &i; +const void* pointer_182 = &i; +const void* pointer_183 = &i; +const void* pointer_184 = &i; +const void* pointer_185 = &i; +const void* pointer_186 = &i; +const void* pointer_187 = &i; +const void* pointer_188 = &i; +const void* pointer_189 = &i; +const void* pointer_190 = &i; +const void* pointer_191 = &i; +const void* pointer_192 = &i; +const void* pointer_193 = &i; +const void* pointer_194 = &i; +const void* pointer_195 = &i; +const void* pointer_196 = &i; +const void* pointer_197 = &i; +const void* pointer_198 = &i; +const void* pointer_199 = &i; +const void* pointer_200 = &i; +const void* pointer_201 = &i; +const void* pointer_202 = &i; +const void* pointer_203 = &i; +const void* pointer_204 = &i; +const void* pointer_205 = &i; +const void* pointer_206 = &i; +const void* pointer_207 = &i; +const void* pointer_208 = &i; +const void* pointer_209 = &i; +const void* pointer_210 = &i; +const void* pointer_211 = &i; +const void* pointer_212 = &i; +const void* pointer_213 = &i; +const void* pointer_214 = &i; +const void* pointer_215 = &i; +const void* pointer_216 = &i; +const void* pointer_217 = &i; +const void* pointer_218 = &i; +const void* pointer_219 = &i; +const void* pointer_220 = &i; +const void* pointer_221 = &i; +const void* pointer_222 = &i; +const void* pointer_223 = &i; +const void* pointer_224 = &i; +const void* pointer_225 = &i; +const void* pointer_226 = &i; +const void* pointer_227 = &i; +const void* pointer_228 = &i; +const void* pointer_229 = &i; +const void* pointer_230 = &i; +const void* pointer_231 = &i; +const void* pointer_232 = &i; +const void* pointer_233 = &i; +const void* pointer_234 = &i; +const void* pointer_235 = &i; +const void* pointer_236 = &i; +const void* pointer_237 = &i; +const void* pointer_238 = &i; +const void* pointer_239 = &i; +const void* pointer_240 = &i; +const void* pointer_241 = &i; +const void* pointer_242 = &i; +const void* pointer_243 = &i; +const void* pointer_244 = &i; +const void* pointer_245 = &i; +const void* pointer_246 = &i; +const void* pointer_247 = &i; +const void* pointer_248 = &i; +const void* pointer_249 = &i; +const void* pointer_250 = &i; +const void* pointer_251 = &i; +const void* pointer_252 = &i; +const void* pointer_253 = &i; +const void* pointer_254 = &i; +const void* pointer_255 = &i; +const void* pointer_256 = &i; +const void* pointer_257 = &i; +const void* pointer_258 = &i; +const void* pointer_259 = &i; +const void* pointer_260 = &i; +const void* pointer_261 = &i; +const void* pointer_262 = &i; +const void* pointer_263 = &i; +const void* pointer_264 = &i; +const void* pointer_265 = &i; +const void* pointer_266 = &i; +const void* pointer_267 = &i; +const void* pointer_268 = &i; +const void* pointer_269 = &i; +const void* pointer_270 = &i; +const void* pointer_271 = &i; +const void* pointer_272 = &i; +const void* pointer_273 = &i; +const void* pointer_274 = &i; +const void* pointer_275 = &i; +const void* pointer_276 = &i; +const void* pointer_277 = &i; +const void* pointer_278 = &i; +const void* pointer_279 = &i; +const void* pointer_280 = &i; +const void* pointer_281 = &i; +const void* pointer_282 = &i; +const void* pointer_283 = &i; +const void* pointer_284 = &i; +const void* pointer_285 = &i; +const void* pointer_286 = &i; +const void* pointer_287 = &i; +const void* pointer_288 = &i; +const void* pointer_289 = &i; +const void* pointer_290 = &i; +const void* pointer_291 = &i; +const void* pointer_292 = &i; +const void* pointer_293 = &i; +const void* pointer_294 = &i; +const void* pointer_295 = &i; +const void* pointer_296 = &i; +const void* pointer_297 = &i; +const void* pointer_298 = &i; +const void* pointer_299 = &i; +const void* pointer_300 = &i; +const void* pointer_301 = &i; +const void* pointer_302 = &i; +const void* pointer_303 = &i; +const void* pointer_304 = &i; +const void* pointer_305 = &i; +const void* pointer_306 = &i; +const void* pointer_307 = &i; +const void* pointer_308 = &i; +const void* pointer_309 = &i; +const void* pointer_310 = &i; +const void* pointer_311 = &i; +const void* pointer_312 = &i; +const void* pointer_313 = &i; +const void* pointer_314 = &i; +const void* pointer_315 = &i; +const void* pointer_316 = &i; +const void* pointer_317 = &i; +const void* pointer_318 = &i; +const void* pointer_319 = &i; +const void* pointer_320 = &i; +const void* pointer_321 = &i; +const void* pointer_322 = &i; +const void* pointer_323 = &i; +const void* pointer_324 = &i; +const void* pointer_325 = &i; +const void* pointer_326 = &i; +const void* pointer_327 = &i; +const void* pointer_328 = &i; +const void* pointer_329 = &i; +const void* pointer_330 = &i; +const void* pointer_331 = &i; +const void* pointer_332 = &i; +const void* pointer_333 = &i; +const void* pointer_334 = &i; +const void* pointer_335 = &i; +const void* pointer_336 = &i; +const void* pointer_337 = &i; +const void* pointer_338 = &i; +const void* pointer_339 = &i; +const void* pointer_340 = &i; +const void* pointer_341 = &i; +const void* pointer_342 = &i; +const void* pointer_343 = &i; +const void* pointer_344 = &i; +const void* pointer_345 = &i; +const void* pointer_346 = &i; +const void* pointer_347 = &i; +const void* pointer_348 = &i; +const void* pointer_349 = &i; +const void* pointer_350 = &i; +const void* pointer_351 = &i; +const void* pointer_352 = &i; +const void* pointer_353 = &i; +const void* pointer_354 = &i; +const void* pointer_355 = &i; +const void* pointer_356 = &i; +const void* pointer_357 = &i; +const void* pointer_358 = &i; +const void* pointer_359 = &i; +const void* pointer_360 = &i; +const void* pointer_361 = &i; +const void* pointer_362 = &i; +const void* pointer_363 = &i; +const void* pointer_364 = &i; +const void* pointer_365 = &i; +const void* pointer_366 = &i; +const void* pointer_367 = &i; +const void* pointer_368 = &i; +const void* pointer_369 = &i; +const void* pointer_370 = &i; +const void* pointer_371 = &i; +const void* pointer_372 = &i; +const void* pointer_373 = &i; +const void* pointer_374 = &i; +const void* pointer_375 = &i; +const void* pointer_376 = &i; +const void* pointer_377 = &i; +const void* pointer_378 = &i; +const void* pointer_379 = &i; +const void* pointer_380 = &i; +const void* pointer_381 = &i; +const void* pointer_382 = &i; +const void* pointer_383 = &i; +const void* pointer_384 = &i; +const void* pointer_385 = &i; +const void* pointer_386 = &i; +const void* pointer_387 = &i; +const void* pointer_388 = &i; +const void* pointer_389 = &i; +const void* pointer_390 = &i; +const void* pointer_391 = &i; +const void* pointer_392 = &i; +const void* pointer_393 = &i; +const void* pointer_394 = &i; +const void* pointer_395 = &i; +const void* pointer_396 = &i; +const void* pointer_397 = &i; +const void* pointer_398 = &i; +const void* pointer_399 = &i; +const void* pointer_400 = &i; +const void* pointer_401 = &i; +const void* pointer_402 = &i; +const void* pointer_403 = &i; +const void* pointer_404 = &i; +const void* pointer_405 = &i; +const void* pointer_406 = &i; +const void* pointer_407 = &i; +const void* pointer_408 = &i; +const void* pointer_409 = &i; +const void* pointer_410 = &i; +const void* pointer_411 = &i; +const void* pointer_412 = &i; +const void* pointer_413 = &i; +const void* pointer_414 = &i; +const void* pointer_415 = &i; +const void* pointer_416 = &i; +const void* pointer_417 = &i; +const void* pointer_418 = &i; +const void* pointer_419 = &i; +const void* pointer_420 = &i; +const void* pointer_421 = &i; +const void* pointer_422 = &i; +const void* pointer_423 = &i; +const void* pointer_424 = &i; +const void* pointer_425 = &i; +const void* pointer_426 = &i; +const void* pointer_427 = &i; +const void* pointer_428 = &i; +const void* pointer_429 = &i; +const void* pointer_430 = &i; +const void* pointer_431 = &i; +const void* pointer_432 = &i; +const void* pointer_433 = &i; +const void* pointer_434 = &i; +const void* pointer_435 = &i; +const void* pointer_436 = &i; +const void* pointer_437 = &i; +const void* pointer_438 = &i; +const void* pointer_439 = &i; +const void* pointer_440 = &i; +const void* pointer_441 = &i; +const void* pointer_442 = &i; +const void* pointer_443 = &i; +const void* pointer_444 = &i; +const void* pointer_445 = &i; +const void* pointer_446 = &i; +const void* pointer_447 = &i; +const void* pointer_448 = &i; +const void* pointer_449 = &i; +const void* pointer_450 = &i; +const void* pointer_451 = &i; +const void* pointer_452 = &i; +const void* pointer_453 = &i; +const void* pointer_454 = &i; +const void* pointer_455 = &i; +const void* pointer_456 = &i; +const void* pointer_457 = &i; +const void* pointer_458 = &i; +const void* pointer_459 = &i; +const void* pointer_460 = &i; +const void* pointer_461 = &i; +const void* pointer_462 = &i; +const void* pointer_463 = &i; +const void* pointer_464 = &i; +const void* pointer_465 = &i; +const void* pointer_466 = &i; +const void* pointer_467 = &i; +const void* pointer_468 = &i; +const void* pointer_469 = &i; +const void* pointer_470 = &i; +const void* pointer_471 = &i; +const void* pointer_472 = &i; +const void* pointer_473 = &i; +const void* pointer_474 = &i; +const void* pointer_475 = &i; +const void* pointer_476 = &i; +const void* pointer_477 = &i; +const void* pointer_478 = &i; +const void* pointer_479 = &i; +const void* pointer_480 = &i; +const void* pointer_481 = &i; +const void* pointer_482 = &i; +const void* pointer_483 = &i; +const void* pointer_484 = &i; +const void* pointer_485 = &i; +const void* pointer_486 = &i; +const void* pointer_487 = &i; +const void* pointer_488 = &i; +const void* pointer_489 = &i; +const void* pointer_490 = &i; +const void* pointer_491 = &i; +const void* pointer_492 = &i; +const void* pointer_493 = &i; +const void* pointer_494 = &i; +const void* pointer_495 = &i; +const void* pointer_496 = &i; +const void* pointer_497 = &i; +const void* pointer_498 = &i; +const void* pointer_499 = &i; +const void* pointer_500 = &i; +const void* pointer_501 = &i; +const void* pointer_502 = &i; +const void* pointer_503 = &i; +const void* pointer_504 = &i; +const void* pointer_505 = &i; +const void* pointer_506 = &i; +const void* pointer_507 = &i; +const void* pointer_508 = &i; +const void* pointer_509 = &i; +const void* pointer_510 = &i; +const void* pointer_511 = &i; +const void* pointer_512 = &i; +const void* pointer_513 = &i; +const void* pointer_514 = &i; +const void* pointer_515 = &i; +const void* pointer_516 = &i; +const void* pointer_517 = &i; +const void* pointer_518 = &i; +const void* pointer_519 = &i; +const void* pointer_520 = &i; +const void* pointer_521 = &i; +const void* pointer_522 = &i; +const void* pointer_523 = &i; +const void* pointer_524 = &i; +const void* pointer_525 = &i; +const void* pointer_526 = &i; +const void* pointer_527 = &i; +const void* pointer_528 = &i; +const void* pointer_529 = &i; +const void* pointer_530 = &i; +const void* pointer_531 = &i; +const void* pointer_532 = &i; +const void* pointer_533 = &i; +const void* pointer_534 = &i; +const void* pointer_535 = &i; +const void* pointer_536 = &i; +const void* pointer_537 = &i; +const void* pointer_538 = &i; +const void* pointer_539 = &i; +const void* pointer_540 = &i; +const void* pointer_541 = &i; +const void* pointer_542 = &i; +const void* pointer_543 = &i; +const void* pointer_544 = &i; +const void* pointer_545 = &i; +const void* pointer_546 = &i; +const void* pointer_547 = &i; +const void* pointer_548 = &i; +const void* pointer_549 = &i; +const void* pointer_550 = &i; +const void* pointer_551 = &i; +const void* pointer_552 = &i; +const void* pointer_553 = &i; +const void* pointer_554 = &i; +const void* pointer_555 = &i; +const void* pointer_556 = &i; +const void* pointer_557 = &i; +const void* pointer_558 = &i; +const void* pointer_559 = &i; +const void* pointer_560 = &i; +const void* pointer_561 = &i; +const void* pointer_562 = &i; +const void* pointer_563 = &i; +const void* pointer_564 = &i; +const void* pointer_565 = &i; +const void* pointer_566 = &i; +const void* pointer_567 = &i; +const void* pointer_568 = &i; +const void* pointer_569 = &i; +const void* pointer_570 = &i; +const void* pointer_571 = &i; +const void* pointer_572 = &i; +const void* pointer_573 = &i; +const void* pointer_574 = &i; +const void* pointer_575 = &i; +const void* pointer_576 = &i; +const void* pointer_577 = &i; +const void* pointer_578 = &i; +const void* pointer_579 = &i; +const void* pointer_580 = &i; +const void* pointer_581 = &i; +const void* pointer_582 = &i; +const void* pointer_583 = &i; +const void* pointer_584 = &i; +const void* pointer_585 = &i; +const void* pointer_586 = &i; +const void* pointer_587 = &i; +const void* pointer_588 = &i; +const void* pointer_589 = &i; +const void* pointer_590 = &i; +const void* pointer_591 = &i; +const void* pointer_592 = &i; +const void* pointer_593 = &i; +const void* pointer_594 = &i; +const void* pointer_595 = &i; +const void* pointer_596 = &i; +const void* pointer_597 = &i; +const void* pointer_598 = &i; +const void* pointer_599 = &i; +const void* pointer_600 = &i; +const void* pointer_601 = &i; +const void* pointer_602 = &i; +const void* pointer_603 = &i; +const void* pointer_604 = &i; +const void* pointer_605 = &i; +const void* pointer_606 = &i; +const void* pointer_607 = &i; +const void* pointer_608 = &i; +const void* pointer_609 = &i; +const void* pointer_610 = &i; +const void* pointer_611 = &i; +const void* pointer_612 = &i; +const void* pointer_613 = &i; +const void* pointer_614 = &i; +const void* pointer_615 = &i; +const void* pointer_616 = &i; +const void* pointer_617 = &i; +const void* pointer_618 = &i; +const void* pointer_619 = &i; +const void* pointer_620 = &i; +const void* pointer_621 = &i; +const void* pointer_622 = &i; +const void* pointer_623 = &i; +const void* pointer_624 = &i; +const void* pointer_625 = &i; +const void* pointer_626 = &i; +const void* pointer_627 = &i; +const void* pointer_628 = &i; +const void* pointer_629 = &i; +const void* pointer_630 = &i; +const void* pointer_631 = &i; +const void* pointer_632 = &i; +const void* pointer_633 = &i; +const void* pointer_634 = &i; +const void* pointer_635 = &i; +const void* pointer_636 = &i; +const void* pointer_637 = &i; +const void* pointer_638 = &i; +const void* pointer_639 = &i; +const void* pointer_640 = &i; +const void* pointer_641 = &i; +const void* pointer_642 = &i; +const void* pointer_643 = &i; +const void* pointer_644 = &i; +const void* pointer_645 = &i; +const void* pointer_646 = &i; +const void* pointer_647 = &i; +const void* pointer_648 = &i; +const void* pointer_649 = &i; +const void* pointer_650 = &i; +const void* pointer_651 = &i; +const void* pointer_652 = &i; +const void* pointer_653 = &i; +const void* pointer_654 = &i; +const void* pointer_655 = &i; +const void* pointer_656 = &i; +const void* pointer_657 = &i; +const void* pointer_658 = &i; +const void* pointer_659 = &i; +const void* pointer_660 = &i; +const void* pointer_661 = &i; +const void* pointer_662 = &i; +const void* pointer_663 = &i; +const void* pointer_664 = &i; +const void* pointer_665 = &i; +const void* pointer_666 = &i; +const void* pointer_667 = &i; +const void* pointer_668 = &i; +const void* pointer_669 = &i; +const void* pointer_670 = &i; +const void* pointer_671 = &i; +const void* pointer_672 = &i; +const void* pointer_673 = &i; +const void* pointer_674 = &i; +const void* pointer_675 = &i; +const void* pointer_676 = &i; +const void* pointer_677 = &i; +const void* pointer_678 = &i; +const void* pointer_679 = &i; +const void* pointer_680 = &i; +const void* pointer_681 = &i; +const void* pointer_682 = &i; +const void* pointer_683 = &i; +const void* pointer_684 = &i; +const void* pointer_685 = &i; +const void* pointer_686 = &i; +const void* pointer_687 = &i; +const void* pointer_688 = &i; +const void* pointer_689 = &i; +const void* pointer_690 = &i; +const void* pointer_691 = &i; +const void* pointer_692 = &i; +const void* pointer_693 = &i; +const void* pointer_694 = &i; +const void* pointer_695 = &i; +const void* pointer_696 = &i; +const void* pointer_697 = &i; +const void* pointer_698 = &i; +const void* pointer_699 = &i; +const void* pointer_700 = &i; +const void* pointer_701 = &i; +const void* pointer_702 = &i; +const void* pointer_703 = &i; +const void* pointer_704 = &i; +const void* pointer_705 = &i; +const void* pointer_706 = &i; +const void* pointer_707 = &i; +const void* pointer_708 = &i; +const void* pointer_709 = &i; +const void* pointer_710 = &i; +const void* pointer_711 = &i; +const void* pointer_712 = &i; +const void* pointer_713 = &i; +const void* pointer_714 = &i; +const void* pointer_715 = &i; +const void* pointer_716 = &i; +const void* pointer_717 = &i; +const void* pointer_718 = &i; +const void* pointer_719 = &i; +const void* pointer_720 = &i; +const void* pointer_721 = &i; +const void* pointer_722 = &i; +const void* pointer_723 = &i; +const void* pointer_724 = &i; +const void* pointer_725 = &i; +const void* pointer_726 = &i; +const void* pointer_727 = &i; +const void* pointer_728 = &i; +const void* pointer_729 = &i; +const void* pointer_730 = &i; +const void* pointer_731 = &i; +const void* pointer_732 = &i; +const void* pointer_733 = &i; +const void* pointer_734 = &i; +const void* pointer_735 = &i; +const void* pointer_736 = &i; +const void* pointer_737 = &i; +const void* pointer_738 = &i; +const void* pointer_739 = &i; +const void* pointer_740 = &i; +const void* pointer_741 = &i; +const void* pointer_742 = &i; +const void* pointer_743 = &i; +const void* pointer_744 = &i; +const void* pointer_745 = &i; +const void* pointer_746 = &i; +const void* pointer_747 = &i; +const void* pointer_748 = &i; +const void* pointer_749 = &i; +const void* pointer_750 = &i; +const void* pointer_751 = &i; +const void* pointer_752 = &i; +const void* pointer_753 = &i; +const void* pointer_754 = &i; +const void* pointer_755 = &i; +const void* pointer_756 = &i; +const void* pointer_757 = &i; +const void* pointer_758 = &i; +const void* pointer_759 = &i; +const void* pointer_760 = &i; +const void* pointer_761 = &i; +const void* pointer_762 = &i; +const void* pointer_763 = &i; +const void* pointer_764 = &i; +const void* pointer_765 = &i; +const void* pointer_766 = &i; +const void* pointer_767 = &i; +const void* pointer_768 = &i; +const void* pointer_769 = &i; +const void* pointer_770 = &i; +const void* pointer_771 = &i; +const void* pointer_772 = &i; +const void* pointer_773 = &i; +const void* pointer_774 = &i; +const void* pointer_775 = &i; +const void* pointer_776 = &i; +const void* pointer_777 = &i; +const void* pointer_778 = &i; +const void* pointer_779 = &i; +const void* pointer_780 = &i; +const void* pointer_781 = &i; +const void* pointer_782 = &i; +const void* pointer_783 = &i; +const void* pointer_784 = &i; +const void* pointer_785 = &i; +const void* pointer_786 = &i; +const void* pointer_787 = &i; +const void* pointer_788 = &i; +const void* pointer_789 = &i; +const void* pointer_790 = &i; +const void* pointer_791 = &i; +const void* pointer_792 = &i; +const void* pointer_793 = &i; +const void* pointer_794 = &i; +const void* pointer_795 = &i; +const void* pointer_796 = &i; +const void* pointer_797 = &i; +const void* pointer_798 = &i; +const void* pointer_799 = &i; +const void* pointer_800 = &i; +const void* pointer_801 = &i; +const void* pointer_802 = &i; +const void* pointer_803 = &i; +const void* pointer_804 = &i; +const void* pointer_805 = &i; +const void* pointer_806 = &i; +const void* pointer_807 = &i; +const void* pointer_808 = &i; +const void* pointer_809 = &i; +const void* pointer_810 = &i; +const void* pointer_811 = &i; +const void* pointer_812 = &i; +const void* pointer_813 = &i; +const void* pointer_814 = &i; +const void* pointer_815 = &i; +const void* pointer_816 = &i; +const void* pointer_817 = &i; +const void* pointer_818 = &i; +const void* pointer_819 = &i; +const void* pointer_820 = &i; +const void* pointer_821 = &i; +const void* pointer_822 = &i; +const void* pointer_823 = &i; +const void* pointer_824 = &i; +const void* pointer_825 = &i; +const void* pointer_826 = &i; +const void* pointer_827 = &i; +const void* pointer_828 = &i; +const void* pointer_829 = &i; +const void* pointer_830 = &i; +const void* pointer_831 = &i; +const void* pointer_832 = &i; +const void* pointer_833 = &i; +const void* pointer_834 = &i; +const void* pointer_835 = &i; +const void* pointer_836 = &i; +const void* pointer_837 = &i; +const void* pointer_838 = &i; +const void* pointer_839 = &i; +const void* pointer_840 = &i; +const void* pointer_841 = &i; +const void* pointer_842 = &i; +const void* pointer_843 = &i; +const void* pointer_844 = &i; +const void* pointer_845 = &i; +const void* pointer_846 = &i; +const void* pointer_847 = &i; +const void* pointer_848 = &i; +const void* pointer_849 = &i; +const void* pointer_850 = &i; +const void* pointer_851 = &i; +const void* pointer_852 = &i; +const void* pointer_853 = &i; +const void* pointer_854 = &i; +const void* pointer_855 = &i; +const void* pointer_856 = &i; +const void* pointer_857 = &i; +const void* pointer_858 = &i; +const void* pointer_859 = &i; +const void* pointer_860 = &i; +const void* pointer_861 = &i; +const void* pointer_862 = &i; +const void* pointer_863 = &i; +const void* pointer_864 = &i; +const void* pointer_865 = &i; +const void* pointer_866 = &i; +const void* pointer_867 = &i; +const void* pointer_868 = &i; +const void* pointer_869 = &i; +const void* pointer_870 = &i; +const void* pointer_871 = &i; +const void* pointer_872 = &i; +const void* pointer_873 = &i; +const void* pointer_874 = &i; +const void* pointer_875 = &i; +const void* pointer_876 = &i; +const void* pointer_877 = &i; +const void* pointer_878 = &i; +const void* pointer_879 = &i; +const void* pointer_880 = &i; +const void* pointer_881 = &i; +const void* pointer_882 = &i; +const void* pointer_883 = &i; +const void* pointer_884 = &i; +const void* pointer_885 = &i; +const void* pointer_886 = &i; +const void* pointer_887 = &i; +const void* pointer_888 = &i; +const void* pointer_889 = &i; +const void* pointer_890 = &i; +const void* pointer_891 = &i; +const void* pointer_892 = &i; +const void* pointer_893 = &i; +const void* pointer_894 = &i; +const void* pointer_895 = &i; +const void* pointer_896 = &i; +const void* pointer_897 = &i; +const void* pointer_898 = &i; +const void* pointer_899 = &i; +const void* pointer_900 = &i; +const void* pointer_901 = &i; +const void* pointer_902 = &i; +const void* pointer_903 = &i; +const void* pointer_904 = &i; +const void* pointer_905 = &i; +const void* pointer_906 = &i; +const void* pointer_907 = &i; +const void* pointer_908 = &i; +const void* pointer_909 = &i; +const void* pointer_910 = &i; +const void* pointer_911 = &i; +const void* pointer_912 = &i; +const void* pointer_913 = &i; +const void* pointer_914 = &i; +const void* pointer_915 = &i; +const void* pointer_916 = &i; +const void* pointer_917 = &i; +const void* pointer_918 = &i; +const void* pointer_919 = &i; +const void* pointer_920 = &i; +const void* pointer_921 = &i; +const void* pointer_922 = &i; +const void* pointer_923 = &i; +const void* pointer_924 = &i; +const void* pointer_925 = &i; +const void* pointer_926 = &i; +const void* pointer_927 = &i; +const void* pointer_928 = &i; +const void* pointer_929 = &i; +const void* pointer_930 = &i; +const void* pointer_931 = &i; +const void* pointer_932 = &i; +const void* pointer_933 = &i; +const void* pointer_934 = &i; +const void* pointer_935 = &i; +const void* pointer_936 = &i; +const void* pointer_937 = &i; +const void* pointer_938 = &i; +const void* pointer_939 = &i; +const void* pointer_940 = &i; +const void* pointer_941 = &i; +const void* pointer_942 = &i; +const void* pointer_943 = &i; +const void* pointer_944 = &i; +const void* pointer_945 = &i; +const void* pointer_946 = &i; +const void* pointer_947 = &i; +const void* pointer_948 = &i; +const void* pointer_949 = &i; +const void* pointer_950 = &i; +const void* pointer_951 = &i; +const void* pointer_952 = &i; +const void* pointer_953 = &i; +const void* pointer_954 = &i; +const void* pointer_955 = &i; +const void* pointer_956 = &i; +const void* pointer_957 = &i; +const void* pointer_958 = &i; +const void* pointer_959 = &i; +const void* pointer_960 = &i; +const void* pointer_961 = &i; +const void* pointer_962 = &i; +const void* pointer_963 = &i; +const void* pointer_964 = &i; +const void* pointer_965 = &i; +const void* pointer_966 = &i; +const void* pointer_967 = &i; +const void* pointer_968 = &i; +const void* pointer_969 = &i; +const void* pointer_970 = &i; +const void* pointer_971 = &i; +const void* pointer_972 = &i; +const void* pointer_973 = &i; +const void* pointer_974 = &i; +const void* pointer_975 = &i; +const void* pointer_976 = &i; +const void* pointer_977 = &i; +const void* pointer_978 = &i; +const void* pointer_979 = &i; +const void* pointer_980 = &i; +const void* pointer_981 = &i; +const void* pointer_982 = &i; +const void* pointer_983 = &i; +const void* pointer_984 = &i; +const void* pointer_985 = &i; +const void* pointer_986 = &i; +const void* pointer_987 = &i; +const void* pointer_988 = &i; +const void* pointer_989 = &i; +const void* pointer_990 = &i; +const void* pointer_991 = &i; +const void* pointer_992 = &i; +const void* pointer_993 = &i; +const void* pointer_994 = &i; +const void* pointer_995 = &i; +const void* pointer_996 = &i; +const void* pointer_997 = &i; +const void* pointer_998 = &i; +const void* pointer_999 = &i; diff --git a/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm32.so b/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm32.so new file mode 100755 index 000000000..6ce6d0cd2 Binary files /dev/null and b/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm32.so differ diff --git a/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm32_packed.so b/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm32_packed.so new file mode 100755 index 000000000..d97ef8252 Binary files /dev/null and b/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm32_packed.so differ diff --git a/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm64.so b/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm64.so new file mode 100755 index 000000000..945b450e3 Binary files /dev/null and b/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm64.so differ diff --git a/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm64_packed.so b/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm64_packed.so new file mode 100755 index 000000000..e44e4597b Binary files /dev/null and b/tools/relocation_packer/test_data/elf_file_unittest_relocs_arm64_packed.so differ diff --git a/tools/relocation_packer/test_data/generate_elf_file_unittest_relocs.py b/tools/relocation_packer/test_data/generate_elf_file_unittest_relocs.py new file mode 100755 index 000000000..e71b5cbbd --- /dev/null +++ b/tools/relocation_packer/test_data/generate_elf_file_unittest_relocs.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Build relocation packer unit test data. + +Uses a built relocation packer to generate 'golden' reference test data +files for elf_file_unittests.cc. +""" + +import optparse +import os +import shutil +import subprocess +import sys +import tempfile + +def PackArmLibraryRelocations(android_pack_relocations, + android_objcopy, + added_section, + input_path, + output_path): + # Copy and add a 'NULL' .android.rel.dyn section for the packing tool. + with tempfile.NamedTemporaryFile() as stream: + stream.write('NULL') + stream.flush() + objcopy_command = [android_objcopy, + '--add-section', '%s=%s' % (added_section, stream.name), + input_path, output_path] + subprocess.check_call(objcopy_command) + + # Pack relocations. + pack_command = [android_pack_relocations, output_path] + subprocess.check_call(pack_command) + + +def UnpackArmLibraryRelocations(android_pack_relocations, + input_path, + output_path): + shutil.copy(input_path, output_path) + + # Unpack relocations. We leave the .android.rel.dyn or .android.rela.dyn + # in place. + unpack_command = [android_pack_relocations, '-u', output_path] + subprocess.check_call(unpack_command) + + +def main(): + parser = optparse.OptionParser() + + parser.add_option('--android-pack-relocations', + help='Path to the ARM relocations packer binary') + parser.add_option('--android-objcopy', + help='Path to the toolchain\'s objcopy binary') + parser.add_option('--added-section', + choices=['.android.rel.dyn', '.android.rela.dyn'], + help='Section to add, one of ".android.rel.dyn" or ".android.rela.dyn"') + parser.add_option('--test-file', + help='Path to the input test file, an unpacked ARM .so') + parser.add_option('--unpacked-output', + help='Path to the output file for reference unpacked data') + parser.add_option('--packed-output', + help='Path to the output file for reference packed data') + + options, _ = parser.parse_args() + + for output in [options.unpacked_output, options.packed_output]: + directory = os.path.dirname(output) + if not os.path.exists(directory): + os.makedirs(directory) + + PackArmLibraryRelocations(options.android_pack_relocations, + options.android_objcopy, + options.added_section, + options.test_file, + options.packed_output) + + UnpackArmLibraryRelocations(options.android_pack_relocations, + options.packed_output, + options.unpacked_output) + + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tools/relocation_packer/test_data/generate_elf_file_unittest_relocs.sh b/tools/relocation_packer/test_data/generate_elf_file_unittest_relocs.sh new file mode 100755 index 000000000..f90a2f658 --- /dev/null +++ b/tools/relocation_packer/test_data/generate_elf_file_unittest_relocs.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Generates elf_file_unittest_relocs_arm{32,64}{,_packed}.so test data files +# from elf_file_unittest_relocs.cc. Run once to create these test data +# files; the files are checked into the source tree. +# +# To use: +# ./generate_elf_file_unittest_relocs.sh +# git add elf_file_unittest_relocs_arm{32,64}{,_packed}.so + +function main() { + local '-r' test_data_directory="$(pwd)" + cd '../../..' + + source tools/cr/cr-bash-helpers.sh + local arch + for arch in 'arm32' 'arm64'; do + cr 'init' '--platform=android' '--type=Debug' '--architecture='"${arch}" + cr 'build' 'relocation_packer_unittests_test_data' + done + + local '-r' packer='out_android/Debug/obj/tools/relocation_packer' + local '-r' gen="${packer}/relocation_packer_unittests_test_data.gen" + + cp "${gen}/elf_file_unittest_relocs_arm"{32,64}{,_packed}'.so' \ + "${test_data_directory}" + + return 0 +} + +main