1 /* basics.c */
2
3 #include "../Pencil.h"
4
5 #define MYDEBUG 0
6
7 /*--------------------------------------------------------------------*/
8 /*
9 -----------------------
10 simplest constructor
11
12 created -- 98may02, cca
13 -----------------------
14 */
15 Pencil *
Pencil_new(void)16 Pencil_new (
17 void
18 ) {
19 Pencil *pencil ;
20
21 ALLOCATE(pencil, struct _Pencil, 1) ;
22 Pencil_setDefaultFields(pencil) ;
23
24 return(pencil) ; }
25
26 /*--------------------------------------------------------------------*/
27 /*
28 -----------------------
29 set the default fields
30
31 created -- 98may02, cca
32 -----------------------
33 */
34 void
Pencil_setDefaultFields(Pencil * pencil)35 Pencil_setDefaultFields (
36 Pencil *pencil
37 ) {
38 if ( pencil == NULL ) {
39 fprintf(stderr, "\n fatal error in Pencil_setDefaultFields(%p)"
40 "\n bad input", pencil) ;
41 exit(-1) ;
42 }
43 pencil->type = SPOOLES_REAL ;
44 pencil->symflag = SPOOLES_SYMMETRIC ;
45 pencil->sigma[0] = 0.0 ;
46 pencil->sigma[1] = 0.0 ;
47 pencil->inpmtxA = NULL ;
48 pencil->inpmtxB = NULL ;
49
50 return ; }
51
52 /*--------------------------------------------------------------------*/
53 /*
54 --------------------------------------------------
55 clear the data fields, releasing allocated storage
56
57 created -- 98may02, cca
58 --------------------------------------------------
59 */
60 void
Pencil_clearData(Pencil * pencil)61 Pencil_clearData (
62 Pencil *pencil
63 ) {
64 /*
65 ---------------
66 check the input
67 ---------------
68 */
69 if ( pencil == NULL ) {
70 fprintf(stderr, "\n fatal error in Pencil_clearData(%p)"
71 "\n bad input\n", pencil) ;
72 exit(-1) ;
73 }
74 /*
75 -----------------
76 free the matrices
77 -----------------
78 */
79 if ( pencil->inpmtxA != NULL ) {
80 InpMtx_free(pencil->inpmtxA) ;
81 }
82 if ( pencil->inpmtxB != NULL ) {
83 InpMtx_free(pencil->inpmtxB) ;
84 }
85 /*
86 ----------------------
87 set the default fields
88 ----------------------
89 */
90 Pencil_setDefaultFields(pencil) ;
91
92 return ; }
93
94 /*--------------------------------------------------------------------*/
95 /*
96 ------------------------------------------
97 destructor, free's the object and its data
98
99 created -- 98may02, cca
100 ------------------------------------------
101 */
102 Pencil *
Pencil_free(Pencil * pencil)103 Pencil_free (
104 Pencil *pencil
105 ) {
106 if ( pencil == NULL ) {
107 fprintf(stderr, "\n fatal error in Pencil_free(%p)"
108 "\n bad input\n", pencil) ;
109 exit(-1) ;
110 }
111 Pencil_clearData(pencil) ;
112 FREE(pencil) ;
113
114 return(NULL) ; }
115
116 /*--------------------------------------------------------------------*/
117