/// <summary> /// Get the suffix compositions /// </summary> /// <returns></returns> public IEnumerable <Composition.Composition> GetSuffixCompositions() { //var compositions = new Composition.Composition[Count]; //var suffixComposition = Data.Composition.Composition.Zero; //for(var index = 0; index < Count; ++index) //{ // compositions[index] = (suffixComposition += this[Count-1-index].Composition); //} //return compositions; return(PrefixComposition.Reverse().Select(c => Composition - c).Take(Count)); }
/// <summary> /// Get the prefix compositions /// </summary> /// <returns></returns> public IEnumerable <Composition.Composition> GetPrefixCompositions() { //var compositions = new Composition.Composition[Count]; //var prefixComposition = Data.Composition.Composition.Zero; //var index = -1; //foreach (var aa in this) //{ // compositions[++index] = (prefixComposition += aa.Composition); //} //return compositions; return(PrefixComposition.Skip(1)); }