public override bool Equals(Object o) { if (o is Kmer <A> ) { Kmer <A> otherKmer = (Kmer <A>)o; if (otherKmer.Count == this.Count) { return(this.Zip(otherKmer, (a, b) => a.Equals(b)).Conjunction()); //TODO: Is this the right equality operator? Nulls? } } return(false); }
public double GetKeyFracLaplace(Kmer <Tyvar> val) { return(GetKeyFracLaplace(val, 1)); }
public double GetKeyFracLaplace(Kmer <Tyvar> val, double smoothingAmt) { return(((double)getCount(val) + smoothingAmt) / ((double)sizes[val.Count] + smoothingAmt)); //TODO is this laplacian smoothing? }
public double GetKeyFrac(Kmer <Tyvar> v) { //Console.WriteLine ("f(" + v + ") = " + (double)getCount (v) + " / " + (double)sizes[v.Count]); return((double)getCount(v) / (double)sizes[v.Count]); }
public int getCount(Kmer <Tyvar> item) { return(data[item.Count].getCount(item)); }
public void AddKmer(Kmer <Tyvar> toAdd, int count) { data[toAdd.Count].Add(toAdd, count); sizes[toAdd.Count] += count; }
public void AddKmer(Kmer <Tyvar> toAdd) { data[toAdd.Count].Add(toAdd); sizes[toAdd.Count]++; }