ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cal/cal/gauss.cal
Revision: 1.1
Committed: Sat Feb 22 02:07:21 2003 UTC (21 years, 2 months ago) by greg
Branch: MAIN
CVS Tags: rad5R2, rad4R2P2, rad5R0, rad5R1, rad3R7P2, rad3R7P1, rad4R2, rad4R1, rad4R0, rad3R5, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1
Log Message:
Changes and check-in for 3.5 release
Includes new source files and modifications not recorded for many years
See ray/doc/notes/ReleaseNotes for notes between 3.1 and 3.5 release

File Contents

# User Rev Content
1 greg 1.1 {
2     Gaussian Integration
3    
4     10/20/87
5    
6     order - order of integral (# of sample points)
7     xmin - interval begin
8     xmax - interval end
9     f(x) - integrand
10     integ - integral value
11     }
12     { Defaults }
13     order = 24 ;
14     xmin = -1 ;
15     xmax = 1 ;
16    
17     integ = q1(ceil(order/2-.25)) * (xmax-xmin)/2 ;
18    
19     q1(i) = if( i-1.5, wght(i)*(f1(absc(i))+f1(-absc(i))) + q1(i-1),
20     wght(1)*(f1(absc(1))+if(even,f1(-absc(1)),0)) ) ;
21    
22     even = floor(order/2+.25) - order/2 + .25 ;
23    
24     f1(u) = f((xmax*(1+u)+xmin*(1-u))/2) ;
25    
26     { Abscissas }
27     absc(i) = select( order,
28     0,
29     .577350269189626, { n = 2 }
30     select( i, { n = 3 }
31     0,
32     .774596669241483
33     ),
34     0, 0,
35     select( i, { n = 6 }
36     .238619186083197,
37     .661209386466265,
38     .932469514203152
39     ),
40     0, 0, 0, 0, 0,
41     select( i, { n = 12 }
42     .125233408511469,
43     .367831498998180,
44     .587317954286617,
45     .769902674194305,
46     .904117256370475,
47     .981560634246719
48     ),
49     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
50     select( i, { n = 24 }
51     .064056892862606,
52     .191118867473616,
53     .315042679696163,
54     .433793507626045,
55     .545421471388840,
56     .648093651936976,
57     .740124191578554,
58     .820001985973903,
59     .886415527004401,
60     .938274552002733,
61     .974728555971309,
62     .995187219997021
63     )
64     ) ;
65    
66     { Weights }
67     wght(i) = select( order,
68     0,
69     1, { n = 2 }
70     select( i, { n = 3 }
71     .888888888888888,
72     .555555555555555
73     ),
74     0, 0,
75     select( i, { n = 6 }
76     .467913934572691,
77     .360761573048139,
78     .171324492379170
79     ),
80     0, 0, 0, 0, 0,
81     select( i, { n = 12 }
82     .249147045813403,
83     .233492536538355,
84     .203167426723066,
85     .160078328543346,
86     .106939325995318,
87     .047175336386512
88     ),
89     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
90     select( i, { n = 24 }
91     .127938195346752,
92     .125837456346828,
93     .121670472927803,
94     .115505668053726,
95     .107444270115966,
96     .097618652104114,
97     .086190161531953,
98     .073346481411080,
99     .059298584915437,
100     .044277438817420,
101     .028531388628934,
102     .012341229799987
103     )
104     ) ;