File: tgcd.c

package info (click to toggle)
sollya 7.0%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 13,864 kB
  • sloc: ansic: 117,441; yacc: 8,822; lex: 2,419; makefile: 870; cpp: 76
file content (59 lines) | stat: -rw-r--r-- 1,169 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <sollya.h>

static const char* inputs[] = { "1001", 
				"231", 
				"13", 
				"17", 
				"-210", 
				"462", 
				"6/7", 
				"33/13", 
				"exp(13)", 
				"sin(17)", 
				"24 + 68 * _x_ + 74 * _x_^2 + 39 * _x_^3 + 10 * _x_^4 + _x_^5", 
				"480 + 776 * _x_ + 476 * _x_^2 + 138 * _x_^3 + 19 * _x_^4 + _x_^5", 
				"1001 * _x_^2", 
				"231 * _x_", 
				"exp(_x_)", 
				"_x_^2", 
				"-14", 
				"15", 
				"-213", 
				"-5", 
				"23/13", 
				"11/17", 
				"exp(13)", 
				"-sin(17)", 
				"4 + 4 * _x_ + _x_^2", 
				"2 * _x_^3", 
				"_x_^3", 
				"sin(_x_)", 
				NULL };

int main(void) {
  int i, j, nb;
  sollya_obj_t *a;
  sollya_obj_t r;

  sollya_lib_init();

  for (nb=0; inputs[nb] != NULL; nb++);
  
  a = (sollya_obj_t *) sollya_lib_calloc(nb, sizeof(sollya_obj_t));
  for (i=0; i<nb; i++) a[i] = sollya_lib_parse_string(inputs[i]);

  for (i=0; i<nb; i++) {
    for (j=0; j<nb; j++) {
      r = sollya_lib_gcd(a[i], a[j]);
      sollya_lib_printf("gcd(%b, %b) = %b\n", a[i], a[j], r);
      sollya_lib_clear_obj(r);
    }
  }
  
  for (i=0; i<nb; i++) sollya_lib_clear_obj(a[i]);
  sollya_lib_free(a);
  
  sollya_lib_close();
  return 0;
}