comparison liboctave/FEGrid.cc @ 5275:23b37da9fd5b

[project @ 2005-04-08 16:07:35 by jwe]
author jwe
date Fri, 08 Apr 2005 16:07:37 +0000
parents e35b034d3523
children 4c8a2e4e0717
comparison
equal deleted inserted replaced
5274:eae7b40388e9 5275:23b37da9fd5b
43 error ("number of elements less than 1"); 43 error ("number of elements less than 1");
44 } 44 }
45 45
46 // Constructors 46 // Constructors
47 47
48 FEGrid::FEGrid (int nel, double width) 48 FEGrid::FEGrid (octave_idx_type nel, double width)
49 { 49 {
50 if (nel < 1) 50 if (nel < 1)
51 { 51 {
52 nel_error (); 52 nel_error ();
53 return; 53 return;
54 } 54 }
55 55
56 elem.resize (nel+1); 56 elem.resize (nel+1);
57 57
58 for (int i = 0; i <= nel; i++) 58 for (octave_idx_type i = 0; i <= nel; i++)
59 elem.elem (i) = i * width; 59 elem.elem (i) = i * width;
60 } 60 }
61 61
62 FEGrid::FEGrid (int nel, double l, double r) 62 FEGrid::FEGrid (octave_idx_type nel, double l, double r)
63 { 63 {
64 if (nel < 1) 64 if (nel < 1)
65 { 65 {
66 nel_error (); 66 nel_error ();
67 return; 67 return;
69 69
70 elem.resize (nel+1); 70 elem.resize (nel+1);
71 71
72 double width = (r - l) / nel; 72 double width = (r - l) / nel;
73 73
74 for (int i = 0; i <= nel; i++) 74 for (octave_idx_type i = 0; i <= nel; i++)
75 elem.elem (i) = i * width + l; 75 elem.elem (i) = i * width + l;
76 76
77 check_grid (); 77 check_grid ();
78 } 78 }
79 79
80 int 80 octave_idx_type
81 FEGrid::element (double x) const 81 FEGrid::element (double x) const
82 { 82 {
83 if (! in_bounds (x)) 83 if (! in_bounds (x))
84 { 84 {
85 error ("value not within grid boundaries"); 85 error ("value not within grid boundaries");
86 return -1; 86 return -1;
87 } 87 }
88 88
89 int nel = elem.capacity () - 1; 89 octave_idx_type nel = elem.capacity () - 1;
90 for (int i = 1; i <= nel; i++) 90 for (octave_idx_type i = 1; i <= nel; i++)
91 { 91 {
92 if (x >= elem.elem (i-1) && x <= elem.elem (i)) 92 if (x >= elem.elem (i-1) && x <= elem.elem (i))
93 return i; 93 return i;
94 } 94 }
95 return -1; 95 return -1;
97 } 97 }
98 98
99 void 99 void
100 FEGrid::check_grid (void) const 100 FEGrid::check_grid (void) const
101 { 101 {
102 int nel = elem.capacity () - 1; 102 octave_idx_type nel = elem.capacity () - 1;
103 if (nel < 1) 103 if (nel < 1)
104 { 104 {
105 nel_error (); 105 nel_error ();
106 return; 106 return;
107 } 107 }
108 108
109 for (int i = 1; i <= nel; i++) 109 for (octave_idx_type i = 1; i <= nel; i++)
110 { 110 {
111 if (elem.elem (i-1) > elem.elem (i)) 111 if (elem.elem (i-1) > elem.elem (i))
112 { 112 {
113 error ("element boundaries not in ascending order"); 113 error ("element boundaries not in ascending order");
114 return; 114 return;