Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,109 @@
|
|||
'----------------------
|
||||
' definition of a "measurement" type with value and uncartainty
|
||||
' and operators that can operate on them
|
||||
'---------------------
|
||||
|
||||
#macro p2(x)
|
||||
(x)*(x)
|
||||
#endmacro
|
||||
|
||||
type meas
|
||||
vlu as double
|
||||
unc as double
|
||||
end type
|
||||
|
||||
operator + ( a as meas, b as meas ) as meas
|
||||
dim ret as meas
|
||||
ret.vlu = a.vlu + b.vlu
|
||||
ret.unc = sqr( a.unc*a.unc + b.unc*b.unc )
|
||||
return ret
|
||||
end operator
|
||||
|
||||
operator + ( c as double, a as meas ) as meas
|
||||
dim ret as meas
|
||||
ret.vlu = a.vlu + c
|
||||
ret.unc = a.unc
|
||||
return ret
|
||||
end operator
|
||||
|
||||
operator + ( a as meas, c as double ) as meas
|
||||
return c+a
|
||||
end operator
|
||||
|
||||
operator - ( a as meas, b as meas ) as meas
|
||||
dim ret as meas
|
||||
ret.vlu = a.vlu - b.vlu
|
||||
ret.unc = sqr( a.unc*a.unc + b.unc*b.unc )
|
||||
return ret
|
||||
end operator
|
||||
|
||||
operator - ( c as double, a as meas ) as meas
|
||||
dim ret as meas
|
||||
ret.vlu = a.vlu - c
|
||||
ret.unc = a.unc
|
||||
return ret
|
||||
end operator
|
||||
|
||||
operator - ( a as meas, c as double ) as meas
|
||||
dim ret as meas
|
||||
ret.vlu = c - a.vlu
|
||||
ret.unc = a.unc
|
||||
return ret
|
||||
end operator
|
||||
|
||||
operator * ( a as meas, b as meas ) as meas
|
||||
dim ret as meas
|
||||
ret.vlu = a.vlu*b.vlu
|
||||
ret.unc = sqr(p2(ret.vlu) * (p2(a.unc/a.vlu)+p2(b.unc/b.vlu)))
|
||||
return ret
|
||||
end operator
|
||||
|
||||
operator * ( c as double, a as meas ) as meas
|
||||
dim ret as meas
|
||||
ret.vlu = a.vlu*c
|
||||
ret.unc = abs(c*a.unc)
|
||||
return ret
|
||||
end operator
|
||||
|
||||
operator * ( a as meas, c as double ) as meas
|
||||
return c*a
|
||||
end operator
|
||||
|
||||
operator ^ ( a as meas, c as double ) as meas
|
||||
dim ret as meas
|
||||
ret.vlu = a.vlu ^ c
|
||||
ret.unc = abs(ret.vlu*c*a.unc/a.vlu)
|
||||
return ret
|
||||
end operator
|
||||
|
||||
operator / ( c as double, a as meas ) as meas
|
||||
return c*a^(-1)
|
||||
end operator
|
||||
|
||||
operator / ( a as meas, c as double ) as meas
|
||||
return a*(1.0/c)
|
||||
end operator
|
||||
|
||||
operator / ( a as meas, b as meas ) as meas
|
||||
return b*a^(-1)
|
||||
end operator
|
||||
|
||||
sub printm( a as meas )
|
||||
print using "####.##### +- ####.####"; a.vlu; a.unc
|
||||
end sub
|
||||
|
||||
'--------------------------------
|
||||
' now the results
|
||||
'--------------------------------
|
||||
|
||||
dim as meas x1, y1, x2, y2
|
||||
x1.vlu = 100.
|
||||
x1.unc = 1.1
|
||||
y1.vlu = 50.
|
||||
y1.unc = 1.2
|
||||
x2.vlu = 200.
|
||||
x2.unc = 2.2
|
||||
y2.vlu = 100.
|
||||
y2.unc = 2.3
|
||||
|
||||
printm( ((x1-x2)^2 + (y1-y2)^2)^0.5 )
|
||||
Loading…
Add table
Add a link
Reference in a new issue