source: cpp/gdk/neuroimpl-channels.cpp @ 100

Last change on this file since 100 was 82, checked in by Maciej Komosinski, 12 years ago

compiles under more platforms and OSes

  • Property svn:eol-style set to native
File size: 876 bytes
Line 
1// This file is a part of the Framsticks GDK library.
2// Copyright (C) 2002-2011  Szymon Ulatowski.  See LICENSE.txt for details.
3// Refer to http://www.framsticks.com/ for further information.
4
5#include "neuroimpl-channels.h"
6#include "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=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.