ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/linregr.h
Revision: 2.6
Committed: Fri Jun 27 06:53:21 2003 UTC (20 years, 9 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad4R2P2, rad5R0, rad5R1, rad3R7P2, rad3R7P1, rad4R2, rad4R1, rad4R0, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1, rad5R3, HEAD
Changes since 2.5: +1 -3 lines
Log Message:
Broke standard.h into rtio.h, rterror.h, rtmath.h, and rtmisc.h

File Contents

# Content
1 /* RCSid $Id: linregr.h,v 2.5 2003/06/06 16:38:47 schorsch Exp $ */
2 /*
3 * Header file for linear regression calculation.
4 */
5 #ifndef _RAD_LINEGR_H_
6 #define _RAD_LINEGR_H_
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 typedef struct {
12 double xs, ys, xxs, yys, xys;
13 int n;
14 } LRSUM;
15
16 typedef struct {
17 double slope, intercept, correlation;
18 } LRLIN;
19
20 #define lrpoint(x,y,l) ((l)->xs+=(x),(l)->ys+=(y),(l)->xxs+=(x)*(x), \
21 (l)->yys+=(y)*(y),(l)->xys+=(x)*(y),++(l)->n)
22
23 #define lrxavg(l) ((l)->xs/(l)->n)
24 #define lryavg(l) ((l)->ys/(l)->n)
25 #define lrxvar(l) (((l)->xxs-(l)->xs*(l)->xs/(l)->n)/(l)->n)
26 #define lryvar(l) (((l)->yys-(l)->ys*(l)->ys/(l)->n)/(l)->n)
27 #define lrxdev(l) sqrt(((l)->xxs-(l)->xs*(l)->xs/(l)->n)/((l)->n-1))
28 #define lrydev(l) sqrt(((l)->yys-(l)->ys*(l)->ys/(l)->n)/((l)->n-1))
29
30
31 extern void lrclear(LRSUM *l);
32 extern int flrpoint(double x, double y, LRSUM *l);
33 extern int lrfit(LRLIN *r, LRSUM *l);
34
35
36 #ifdef __cplusplus
37 }
38 #endif
39 #endif /* _RAD_LINEGR_H_ */
40