// The reflect package implements run-time reflection, allowing a program to
// manipulate objects with arbitrary types. The typical use is to take a
// value with static type interface{} and extract its dynamic type
-// information by calling Typeof(), which returns an object with interface
+// information by calling Typeof, which returns an object with interface
// type Type. That contains a pointer to a struct of type *StructType,
// *IntType, etc. representing the details of the underlying type. A type
// switch or type assertion can reveal which.
var lastrandom uint32 = 42
// Random number between 0.0 and 1.0
-func Zmyrandom() float {
+func myrandom() float {
const (
IM = 139968;
IA = 3877;
return float(int32(lastrandom)) / IM;
}
-// TODO: delete this when compiler does the reduction for us
-func
-myrandom() float
-{
- const (
- IM = 139968;
- IA = 3877;
- IC = 29573;
- S = 46;
- IM1 = ((1<<S) + IM) / IM;
- )
-
- n := (lastrandom * IA + IC);
- q := uint32((uint64(n) * IM1) >> S);
- lastrandom = n - q*IM;
- return float(int32(lastrandom)) / IM;
-}
-
func AccumulateProbabilities(genelist []AminoAcid) {
for i := 1; i < len(genelist); i++ {
genelist[i].p += genelist[i-1].p;