public IList <ProcParam <SequenceProcEnv> > GetParameters() { var row = new SequenceSingleSelectParameter("Source Label Row", x => x.Type != SequenceType.Numeric); var labels = new LabelSelectParameter("Labels where Value is to keep existing", true, row); return(new ProcParam <SequenceProcEnv>[] { row, labels }); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { var row = new SequenceSingleSelectParameter("Sequence for Target Label", x => x.Type != SequenceType.Numeric); var labels = new LabelSelectParameter("Target Labels", true, row); return(new ProcParam <SequenceProcEnv>[] { row, labels }); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { // 仮引数作成 var label = new SequenceSingleSelectParameter("Target", viewer => (viewer.Type & SequenceType.Label) != 0); var append = new BooleanParameter("Append Title to label"); return(new ProcParam <SequenceProcEnv>[] { label, append }); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { var mode = new SingleSelectParameter("Mode", new[] { "Per Time", "Per Correct Label Count", "Per Obtained Label Count" }); var threshold = new NumberParameter("Threshold for Ratio of Label Coverage for Matching", 0.001M, 1, 3); threshold.Value = 0.001M; var correct = new SequenceSingleSelectParameter("Correct Label", (v) => v.Type != SequenceType.Numeric); return(new ProcParam <SequenceProcEnv>[] { mode, threshold, correct }); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { List <ProcParam <SequenceProcEnv> > ret = new List <ProcParam <SequenceProcEnv> >(); var label = new SequenceSingleSelectParameter("Target"); ret.Add(label); var sameOnly = new BooleanParameter("Same Label Text Only"); sameOnly.Value = true; ret.Add(sameOnly); return(ret); }
public SequenceData Operate(IList <ProcParam <SequenceProcEnv> > args, SequenceProcEnv env) { SequenceSingleSelectParameter operand = args[0] as SequenceSingleSelectParameter; TimeSeriesValues ret = new TimeSeriesValues("InnerProduct"); int count = Math.Min(env.SelectedSequence.Values.ColumnCount, operand.Value.Values.ColumnCount); using (IEnumerator <KeyValuePair <decimal, decimal?[]> > one = env.SelectedSequence.Values.Enumerate().GetEnumerator()) using (IEnumerator <KeyValuePair <decimal, decimal?[]> > another = operand.Value.Values.Enumerate().GetEnumerator()) { bool oneAlive = one.MoveNext(); bool anotherAlive = another.MoveNext(); while (oneAlive && anotherAlive) { decimal?value = 0; for (int i = 0; i < count; i++) { if (one.Current.Value[i].HasValue && another.Current.Value[i].HasValue) { value = value.Value + one.Current.Value[i].Value * another.Current.Value[i].Value; } else { value = null; break; } } // 後にある時刻のところに値を入れる // 前にある方を進める if (one.Current.Key < another.Current.Key) { ret.SetValue(another.Current.Key, value); oneAlive = one.MoveNext(); } else { ret.SetValue(one.Current.Key, value); anotherAlive = another.MoveNext(); } } } return(new SequenceData(ret, null, PathEx.GiveName("InnerProduct", env.SelectedSequence.Title, operand.Value.Title))); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { SequenceSingleSelectParameter operand = new SequenceSingleSelectParameter("Other operand", (v) => (v.Type & SequenceType.Numeric) != 0); return(new ProcParam <SequenceProcEnv>[] { operand }); }