ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cal/cal/gauss.cal
Revision: 1.2
Committed: Wed Nov 21 18:10:45 2018 UTC (5 years, 5 months ago) by greg
Branch: MAIN
CVS Tags: rad5R4, rad5R3, HEAD
Changes since 1.1: +1 -0 lines
Log Message:
Added missing RCSid tag

File Contents

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