Bin will be removed on June 1, 2014 in favor of http://gist.github.com. Please save all your pastes before then. So long, and thanks for all the fish!×
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
namespace artificialneuralnetwork
{
  public class BiPolarUtil
  {
    public BiPolarUtil ()
    {
    }
 
    public static double Bipolar2double (bool b)
    {
      if (true == b)
      {
        return 1.0;
      }
      else
      {
        return -1.0;
      }
    }
 
    public static double[] Bipolar2double (bool [] b)
    {
      double [] result = new double[b.Length];
 
      for (int i = 0; i < b.Length; i++)
      {
        result[i] = Bipolar2double(b[i]);
      }
 
      return result;
    }
 
    public static double[,] Bipolar2double (bool[,] b)
    {
      double [,] result = new double[b.GetLength(0), b.GetLength(1)];
 
      for(int x = 0; x < result.GetLength(0); x++)
      {
        for(int y = 0; y < result.GetLength(1); y++)
        {
          result[x, y] = Bipolar2double(b[x, y]);
        }
      }
 
      return result;
    }
 
    public static bool Double2bipolar (double d)
    {
      if (d > 0)
      {
        return true;
      }
      else
      {
        return false;
      }
    }
 
    public static bool[] Double2bipolar (double[] d)
    {
      bool [] result = new bool[d.Length];
 
      for (int i = 0; i < d.Length; i++)
      {
        result[i] = Double2bipolar(d[i]);
      }
 
      return result;
    }
 
    public static bool[,] Double2bipolar (double[,] d)
    {
      bool [,] result = new bool[d.GetLength(0), d.GetLength(1)];
 
      for(int x = 0; x < result.GetLength(0); x++)
      {
        for(int y = 0; y < result.GetLength(1); y++)
        {
          result[x, y] = Double2bipolar(d[x, y]);
        }
      }
 
      return result;
    }
 
    public static double NormalizeBinary (double d)
    {
      if (d > 0.0)
      {
        return 1.0;
      }
      else
      {
        return -1.0;
      }
    }
 
    public static double ToBinary (double d)
    {
      return (d + 1.0) / 2.0;
    }
 
    public static double ToBiPolar (double d)
    {
      return (2.0 * NormalizeBinary(d)) - 1.0;
    }
 
    public static double ToNormalizedBinary (double d)
    {
      return NormalizeBinary(ToBinary(d));
    }
  }
}