File: machinmsvc.c

package info (click to toggle)
sleef 3.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,564 kB
  • sloc: ansic: 49,154; cpp: 6,095; makefile: 38
file content (23 lines) | stat: -rw-r--r-- 717 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <sleefquad.h>

int main(int argc, char **argv) {
  Sleef_quad a0[] = { Sleef_cast_from_doubleq1_purec(5), Sleef_cast_from_doubleq1_purec(239) };
  Sleef_quadx2 q0 = Sleef_loadq2_sse2(a0);

  Sleef_quadx2 q1 = Sleef_splatq2_sse2(Sleef_strtoq("1.0", NULL));

  Sleef_quadx2 q2 = Sleef_loadq2_sse2((Sleef_quad[]) {
      sleef_q(+0x1000000000000LL, 0x0000000000000000ULL, 4), // 16.0
      sleef_q(+0x1000000000000LL, 0x0000000000000000ULL, 2), // 4.0
  });

  Sleef_quadx2 q3;

  q3 = Sleef_divq2_u05sse2(q1, q0);
  q3 = Sleef_atanq2_u10sse2(q3);
  q3 = Sleef_mulq2_u05sse2(q3, q2);

  Sleef_quad pi = Sleef_subq1_u05purec(Sleef_getq2_sse2(q3, 0), Sleef_getq2_sse2(q3, 1));

  Sleef_printf("%.40Pg\n", &pi);
}