source: cpp/frams/neuro/impl/neuroimpl-channels.cpp @ 601

Last change on this file since 601 was 286, checked in by Maciej Komosinski, 9 years ago

Updated headers

  • Property svn:eol-style set to native
File size: 866 bytes
Line 
1// This file is a part of Framsticks SDK.  http://www.framsticks.com/
2// Copyright (C) 1999-2015  Maciej Komosinski and Szymon Ulatowski.
3// See LICENSE.txt for details.
4
5#include "neuroimpl-channels.h"
6#include <common/nonstd_stl.h>
7
8void NI_Channelize::go()
9{
10setChannelCount(getInputCount());
11for(int i=0;i<getInputCount();i++)
12        setState(getWeightedInputState(i),i);
13}
14
15void NI_ChMux::go()
16{
17int c=getInputChannelCount(1);
18if (c<2) {setState(getWeightedInputState(1)); return;}
19double s=getWeightedInputState(0);
20s=(max(-1.0,min(1.0,s))+1.0)/2.0; // 0..1
21int i1;
22i1=(int)(s*(c-1)); i1=max(0,min(i1,c-2));
23double sw=1.0/(c-1);
24double s1=sw*i1;
25double w1=fabs((s-s1)/sw);
26double w2=1.0-w1;
27double is1=getWeightedInputState(1,i1);
28double is2=getWeightedInputState(1,i1+1);
29setState(is1*w2 + is2*w1);
30}
31
32void NI_ChSel::go()
33{
34setState(getWeightedInputState(0,ch));
35}
Note: See TracBrowser for help on using the repository browser.