⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_dot.c

📁 该文件为c++的数学函数库!是一个非常有用的编程工具.它含有各种数学函数,为科学计算、工程应用等程序编写提供方便!
💻 C
字号:
#include <gsl/gsl_test.h>#include <gsl/gsl_ieee_utils.h>#include <gsl/gsl_math.h>#include <gsl/gsl_cblas.h>#include "tests.h"voidtest_dot (void) {const double flteps = 1e-4, dbleps = 1e-6;  {   int N = 1;   float alpha = 0.0f;   float X[] = { 0.733f };   float Y[] = { 0.825f };   int incX = 1;   int incY = -1;   float expected = 0.604725f;   float f;   f = cblas_sdsdot (N, alpha, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdsdot(case 1)");  };  {   int N = 1;   float alpha = 0.1f;   float X[] = { 0.733f };   float Y[] = { 0.825f };   int incX = 1;   int incY = -1;   float expected = 0.704725f;   float f;   f = cblas_sdsdot (N, alpha, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdsdot(case 2)");  };  {   int N = 1;   float alpha = 1.0f;   float X[] = { 0.733f };   float Y[] = { 0.825f };   int incX = 1;   int incY = -1;   float expected = 1.604725f;   float f;   f = cblas_sdsdot (N, alpha, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdsdot(case 3)");  };  {   int N = 1;   float alpha = 0.0f;   float X[] = { -0.812f };   float Y[] = { -0.667f };   int incX = -1;   int incY = 1;   float expected = 0.541604f;   float f;   f = cblas_sdsdot (N, alpha, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdsdot(case 4)");  };  {   int N = 1;   float alpha = 0.1f;   float X[] = { -0.812f };   float Y[] = { -0.667f };   int incX = -1;   int incY = 1;   float expected = 0.641604f;   float f;   f = cblas_sdsdot (N, alpha, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdsdot(case 5)");  };  {   int N = 1;   float alpha = 1.0f;   float X[] = { -0.812f };   float Y[] = { -0.667f };   int incX = -1;   int incY = 1;   float expected = 1.541604f;   float f;   f = cblas_sdsdot (N, alpha, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdsdot(case 6)");  };  {   int N = 1;   float alpha = 0.0f;   float X[] = { 0.481f };   float Y[] = { 0.523f };   int incX = -1;   int incY = -1;   float expected = 0.251563f;   float f;   f = cblas_sdsdot (N, alpha, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdsdot(case 7)");  };  {   int N = 1;   float alpha = 0.1f;   float X[] = { 0.481f };   float Y[] = { 0.523f };   int incX = -1;   int incY = -1;   float expected = 0.351563f;   float f;   f = cblas_sdsdot (N, alpha, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdsdot(case 8)");  };  {   int N = 1;   float alpha = 1.0f;   float X[] = { 0.481f };   float Y[] = { 0.523f };   int incX = -1;   int incY = -1;   float expected = 1.251563f;   float f;   f = cblas_sdsdot (N, alpha, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdsdot(case 9)");  };  {   int N = 1;   float X[] = { 0.785f };   float Y[] = { -0.7f };   int incX = 1;   int incY = -1;   float expected = -0.5495f;   float f;   f = cblas_sdot(N, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdot(case 10)");  };  {   int N = 1;   double X[] = { 0.79 };   double Y[] = { -0.679 };   int incX = 1;   int incY = -1;   double expected = -0.53641;   double f;   f = cblas_ddot(N, X, incX, Y, incY);   gsl_test_rel(f, expected, dbleps, "ddot(case 11)");  };  {   int N = 1;   float X[] = { 0.474f, -0.27f };   float Y[] = { -0.144f, -0.392f };   int incX = 1;   int incY = -1;   float expected[2] = {-0.174096f, -0.146928f};   float f[2];   cblas_cdotu_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], flteps, "cdotu(case 12) real");   gsl_test_rel(f[1], expected[1], flteps, "cdotu(case 12) imag");  };  {   int N = 1;   float X[] = { 0.474f, -0.27f };   float Y[] = { -0.144f, -0.392f };   int incX = 1;   int incY = -1;   float expected[2] = {0.037584f, -0.224688f};   float f[2];   cblas_cdotc_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], flteps, "cdotc(case 13) real");   gsl_test_rel(f[1], expected[1], flteps, "cdotc(case 13) imag");  };  {   int N = 1;   double X[] = { -0.87, -0.631 };   double Y[] = { -0.7, -0.224 };   int incX = 1;   int incY = -1;   double expected[2] = {0.467656, 0.63658};   double f[2];   cblas_zdotu_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], dbleps, "zdotu(case 14) real");   gsl_test_rel(f[1], expected[1], dbleps, "zdotu(case 14) imag");  };  {   int N = 1;   double X[] = { -0.87, -0.631 };   double Y[] = { -0.7, -0.224 };   int incX = 1;   int incY = -1;   double expected[2] = {0.750344, -0.24682};   double f[2];   cblas_zdotc_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], dbleps, "zdotc(case 15) real");   gsl_test_rel(f[1], expected[1], dbleps, "zdotc(case 15) imag");  };  {   int N = 1;   float X[] = { -0.457f };   float Y[] = { 0.839f };   int incX = -1;   int incY = 1;   float expected = -0.383423f;   float f;   f = cblas_sdot(N, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdot(case 16)");  };  {   int N = 1;   double X[] = { 0.949 };   double Y[] = { -0.873 };   int incX = -1;   int incY = 1;   double expected = -0.828477;   double f;   f = cblas_ddot(N, X, incX, Y, incY);   gsl_test_rel(f, expected, dbleps, "ddot(case 17)");  };  {   int N = 1;   float X[] = { 0.852f, -0.045f };   float Y[] = { 0.626f, -0.164f };   int incX = -1;   int incY = 1;   float expected[2] = {0.525972f, -0.167898f};   float f[2];   cblas_cdotu_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], flteps, "cdotu(case 18) real");   gsl_test_rel(f[1], expected[1], flteps, "cdotu(case 18) imag");  };  {   int N = 1;   float X[] = { 0.852f, -0.045f };   float Y[] = { 0.626f, -0.164f };   int incX = -1;   int incY = 1;   float expected[2] = {0.540732f, -0.111558f};   float f[2];   cblas_cdotc_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], flteps, "cdotc(case 19) real");   gsl_test_rel(f[1], expected[1], flteps, "cdotc(case 19) imag");  };  {   int N = 1;   double X[] = { -0.786, -0.341 };   double Y[] = { -0.271, -0.896 };   int incX = -1;   int incY = 1;   double expected[2] = {-0.09253, 0.796667};   double f[2];   cblas_zdotu_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], dbleps, "zdotu(case 20) real");   gsl_test_rel(f[1], expected[1], dbleps, "zdotu(case 20) imag");  };  {   int N = 1;   double X[] = { -0.786, -0.341 };   double Y[] = { -0.271, -0.896 };   int incX = -1;   int incY = 1;   double expected[2] = {0.518542, 0.611845};   double f[2];   cblas_zdotc_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], dbleps, "zdotc(case 21) real");   gsl_test_rel(f[1], expected[1], dbleps, "zdotc(case 21) imag");  };  {   int N = 1;   float X[] = { -0.088f };   float Y[] = { -0.165f };   int incX = -1;   int incY = -1;   float expected = 0.01452f;   float f;   f = cblas_sdot(N, X, incX, Y, incY);   gsl_test_rel(f, expected, flteps, "sdot(case 22)");  };  {   int N = 1;   double X[] = { -0.434 };   double Y[] = { -0.402 };   int incX = -1;   int incY = -1;   double expected = 0.174468;   double f;   f = cblas_ddot(N, X, incX, Y, incY);   gsl_test_rel(f, expected, dbleps, "ddot(case 23)");  };  {   int N = 1;   float X[] = { -0.347f, 0.899f };   float Y[] = { -0.113f, -0.858f };   int incX = -1;   int incY = -1;   float expected[2] = {0.810553f, 0.196139f};   float f[2];   cblas_cdotu_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], flteps, "cdotu(case 24) real");   gsl_test_rel(f[1], expected[1], flteps, "cdotu(case 24) imag");  };  {   int N = 1;   float X[] = { -0.347f, 0.899f };   float Y[] = { -0.113f, -0.858f };   int incX = -1;   int incY = -1;   float expected[2] = {-0.732131f, 0.399313f};   float f[2];   cblas_cdotc_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], flteps, "cdotc(case 25) real");   gsl_test_rel(f[1], expected[1], flteps, "cdotc(case 25) imag");  };  {   int N = 1;   double X[] = { -0.897, -0.204 };   double Y[] = { -0.759, 0.557 };   int incX = -1;   int incY = -1;   double expected[2] = {0.794451, -0.344793};   double f[2];   cblas_zdotu_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], dbleps, "zdotu(case 26) real");   gsl_test_rel(f[1], expected[1], dbleps, "zdotu(case 26) imag");  };  {   int N = 1;   double X[] = { -0.897, -0.204 };   double Y[] = { -0.759, 0.557 };   int incX = -1;   int incY = -1;   double expected[2] = {0.567195, -0.654465};   double f[2];   cblas_zdotc_sub(N, X, incX, Y, incY, &f);   gsl_test_rel(f[0], expected[0], dbleps, "zdotc(case 27) real");   gsl_test_rel(f[1], expected[1], dbleps, "zdotc(case 27) imag");  };}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -