# select sum (A, B, C)

• value 1
• value 2
• value 3

• sum

## Neuron type

Best algorithm has been found - locked

## Patterns

Pattern Input Output
1.
 value 1: 1 value 2: 2 value 3: null
 sum: 3
2.
 value 1: null value 2: 33 value 3: null
 sum: 33
3.
 value 1: null value 2: null value 3: null
 sum: null
4.
 value 1: 6 value 2: 7 value 3: 8
 sum: 21
5.
 value 1: 66 value 2: -4 value 3: -8
 sum: 54

## Applicable neurons

• null
• sql A+B
• IfNull
• Torque
• circle - Perimeter (by radius)
• (x|y)
• \\w
• -a + b; -a - b
• Connect - seven inputs
• Width of family
• tag img

## Algorithm

### Test

```/**
* 1:
*
* @return {Array}
*/
function neuron501()
{
return [1];
}

/**
* 0:
*
* @return {Array}
*/
function neuron500()
{
return [0];
}

/**
* 8:
*
* @return {Array}
*/
function neuron508()
{
return [8];
}

/**
* Connect - two inputs:
*
* @param x1 Variable A
* @param x2 Variable B
* @return {Array}
*/
function neuron520(x1, x2)
{
return [x1.toString()+x2.toString()];
}

/**
* Connect - three inputs: Connect stringA + stringB + stringC
*
* @param x1 string A
* @param x2 string B
* @param x3 string C
* @return {Array}
*/
function neuron564(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron520(outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron520(outputs[0], outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* Ascii code into character:
*
* @param x1 ascii code
* @return {Array}
*/
function neuron585(x1)
{
return [String.fromCharCode(x1)];
}

/**
* 3 digits of ascii code into character: connect 3 digits to one ascii number and change it to character
*
* @param x1 1. digit
* @param x2 2. digit
* @param x3 3. digit
* @return {Array}
*/
function neuron638(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron564(outputs[0], outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron585(outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* character l:
*
* @return {Array}
*/
function neuron644()
{
var outputs = [];

arr = neuron501();
outputs[0] = arr[0];

arr = neuron500();
outputs[1] = arr[0];

arr = neuron508();
outputs[2] = arr[0];

arr = neuron638(outputs[0], outputs[1], outputs[2]);
outputs[3] = arr[0];

return[outputs[3]];
}

/**
* 0:
*
* @return {Array}
*/
function neuron500()
{
return [0];
}

/**
* 1:
*
* @return {Array}
*/
function neuron501()
{
return [1];
}

/**
* Connect - two inputs:
*
* @param x1 Variable A
* @param x2 Variable B
* @return {Array}
*/
function neuron520(x1, x2)
{
return [x1.toString()+x2.toString()];
}

/**
* Connect - three inputs: Connect stringA + stringB + stringC
*
* @param x1 string A
* @param x2 string B
* @param x3 string C
* @return {Array}
*/
function neuron564(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron520(outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron520(outputs[0], outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* Ascii code into character:
*
* @param x1 ascii code
* @return {Array}
*/
function neuron585(x1)
{
return [String.fromCharCode(x1)];
}

/**
* 3 digits of ascii code into character: connect 3 digits to one ascii number and change it to character
*
* @param x1 1. digit
* @param x2 2. digit
* @param x3 3. digit
* @return {Array}
*/
function neuron638(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron564(outputs[0], outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron585(outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* character n:
*
* @return {Array}
*/
function neuron782()
{
var outputs = [];

arr = neuron500();
outputs[0] = arr[0];

arr = neuron501();
outputs[1] = arr[0];

arr = neuron638(outputs[1], outputs[1], outputs[0]);
outputs[2] = arr[0];

return[outputs[2]];
}

/**
* 1:
*
* @return {Array}
*/
function neuron501()
{
return [1];
}

/**
* 7:
*
* @return {Array}
*/
function neuron507()
{
return [7];
}

/**
* Connect - two inputs:
*
* @param x1 Variable A
* @param x2 Variable B
* @return {Array}
*/
function neuron520(x1, x2)
{
return [x1.toString()+x2.toString()];
}

/**
* Connect - three inputs: Connect stringA + stringB + stringC
*
* @param x1 string A
* @param x2 string B
* @param x3 string C
* @return {Array}
*/
function neuron564(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron520(outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron520(outputs[0], outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* Ascii code into character:
*
* @param x1 ascii code
* @return {Array}
*/
function neuron585(x1)
{
return [String.fromCharCode(x1)];
}

/**
* 3 digits of ascii code into character: connect 3 digits to one ascii number and change it to character
*
* @param x1 1. digit
* @param x2 2. digit
* @param x3 3. digit
* @return {Array}
*/
function neuron638(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron564(outputs[0], outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron585(outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* character u:
*
* @return {Array}
*/
function neuron866()
{
var outputs = [];

arr = neuron501();
outputs[0] = arr[0];

arr = neuron507();
outputs[1] = arr[0];

arr = neuron638(outputs[0], outputs[0], outputs[1]);
outputs[2] = arr[0];

return[outputs[2]];
}

/**
* Connect - two inputs:
*
* @param x1 Variable A
* @param x2 Variable B
* @return {Array}
*/
function neuron520(x1, x2)
{
return [x1.toString()+x2.toString()];
}

/**
* Connect - four inputs:
*
* @param x1 string A
* @param x2 string B
* @param x3 string C
* @param x4 string D
* @return {Array}
*/
function neuron565(x1, x2, x3, x4)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;
outputs[3] = x4;

arr = neuron520(outputs[2], outputs[3]);
outputs[4] = arr[0];

arr = neuron520(outputs[1], outputs[4]);
outputs[5] = arr[0];

arr = neuron520(outputs[0], outputs[5]);
outputs[6] = arr[0];

return[outputs[6]];
}

/**
* null:
*
* @return {Array}
*/
function neuron865()
{
var outputs = [];

arr = neuron644();
outputs[0] = arr[0];

arr = neuron782();
outputs[1] = arr[0];

arr = neuron866();
outputs[2] = arr[0];

arr = neuron565(outputs[1], outputs[2], outputs[0], outputs[0]);
outputs[3] = arr[0];

return[outputs[3]];
}

/**
* Plus (x + y): The addition of two whole numbers is the total amount of those quantities combined.
*
* @param x1 first number
* @param x2 second number
* @return {Array}
*/
function neuron1(x1, x2)
{
math.config({number: 'BigNumber', precision: 64}); return [math.eval(Number(x1) + '+'+Number(x2)).toString()];
}

/**
* a = b: IF a=b THEN 1 ELSE 0;
*
* @param x1 a
* @param x2 b
* @return {Array}
*/
function neuron591(x1, x2)
{
return [(x1 == x2) ? 1 : 0];
}

/**
* IF: IF a THEN b ELSE c;
*
* @param x1 condition (1/0)
* @param x2 variable for 1
* @param x3 variable for 0
* @return {Array}
*/
function neuron579(x1, x2, x3)
{
return [(x1) ? x2 : x3];
}

/**
* IF a=b THEN c ELSE d:
*
* @param x1 a
* @param x2 b
* @param x3 c
* @param x4 d
* @return {Array}
*/
function neuron724(x1, x2, x3, x4)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;
outputs[3] = x4;

arr = neuron591(outputs[1], outputs[0]);
outputs[4] = arr[0];

arr = neuron579(outputs[4], outputs[2], outputs[3]);
outputs[5] = arr[0];

return[outputs[5]];
}

/**
* sql A+B: SELECT A + B
*
* @param x1 A
* @param x2 B
* @return {Array}
*/
function neuron867(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

arr = neuron865();
outputs[2] = arr[0];

arr = neuron1(outputs[2], outputs[1]);
outputs[3] = arr[0];

arr = neuron1(outputs[0], outputs[1]);
outputs[4] = arr[0];

arr = neuron724(outputs[4], outputs[3], outputs[2], outputs[4]);
outputs[5] = arr[0];

return[outputs[5]];
}

/**
* 1:
*
* @return {Array}
*/
function neuron501()
{
return [1];
}

/**
* 0:
*
* @return {Array}
*/
function neuron500()
{
return [0];
}

/**
* 8:
*
* @return {Array}
*/
function neuron508()
{
return [8];
}

/**
* Connect - two inputs:
*
* @param x1 Variable A
* @param x2 Variable B
* @return {Array}
*/
function neuron520(x1, x2)
{
return [x1.toString()+x2.toString()];
}

/**
* Connect - three inputs: Connect stringA + stringB + stringC
*
* @param x1 string A
* @param x2 string B
* @param x3 string C
* @return {Array}
*/
function neuron564(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron520(outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron520(outputs[0], outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* Ascii code into character:
*
* @param x1 ascii code
* @return {Array}
*/
function neuron585(x1)
{
return [String.fromCharCode(x1)];
}

/**
* 3 digits of ascii code into character: connect 3 digits to one ascii number and change it to character
*
* @param x1 1. digit
* @param x2 2. digit
* @param x3 3. digit
* @return {Array}
*/
function neuron638(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron564(outputs[0], outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron585(outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* character l:
*
* @return {Array}
*/
function neuron644()
{
var outputs = [];

arr = neuron501();
outputs[0] = arr[0];

arr = neuron500();
outputs[1] = arr[0];

arr = neuron508();
outputs[2] = arr[0];

arr = neuron638(outputs[0], outputs[1], outputs[2]);
outputs[3] = arr[0];

return[outputs[3]];
}

/**
* 0:
*
* @return {Array}
*/
function neuron500()
{
return [0];
}

/**
* 1:
*
* @return {Array}
*/
function neuron501()
{
return [1];
}

/**
* Connect - two inputs:
*
* @param x1 Variable A
* @param x2 Variable B
* @return {Array}
*/
function neuron520(x1, x2)
{
return [x1.toString()+x2.toString()];
}

/**
* Connect - three inputs: Connect stringA + stringB + stringC
*
* @param x1 string A
* @param x2 string B
* @param x3 string C
* @return {Array}
*/
function neuron564(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron520(outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron520(outputs[0], outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* Ascii code into character:
*
* @param x1 ascii code
* @return {Array}
*/
function neuron585(x1)
{
return [String.fromCharCode(x1)];
}

/**
* 3 digits of ascii code into character: connect 3 digits to one ascii number and change it to character
*
* @param x1 1. digit
* @param x2 2. digit
* @param x3 3. digit
* @return {Array}
*/
function neuron638(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron564(outputs[0], outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron585(outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* character n:
*
* @return {Array}
*/
function neuron782()
{
var outputs = [];

arr = neuron500();
outputs[0] = arr[0];

arr = neuron501();
outputs[1] = arr[0];

arr = neuron638(outputs[1], outputs[1], outputs[0]);
outputs[2] = arr[0];

return[outputs[2]];
}

/**
* 1:
*
* @return {Array}
*/
function neuron501()
{
return [1];
}

/**
* 7:
*
* @return {Array}
*/
function neuron507()
{
return [7];
}

/**
* Connect - two inputs:
*
* @param x1 Variable A
* @param x2 Variable B
* @return {Array}
*/
function neuron520(x1, x2)
{
return [x1.toString()+x2.toString()];
}

/**
* Connect - three inputs: Connect stringA + stringB + stringC
*
* @param x1 string A
* @param x2 string B
* @param x3 string C
* @return {Array}
*/
function neuron564(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron520(outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron520(outputs[0], outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* Ascii code into character:
*
* @param x1 ascii code
* @return {Array}
*/
function neuron585(x1)
{
return [String.fromCharCode(x1)];
}

/**
* 3 digits of ascii code into character: connect 3 digits to one ascii number and change it to character
*
* @param x1 1. digit
* @param x2 2. digit
* @param x3 3. digit
* @return {Array}
*/
function neuron638(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron564(outputs[0], outputs[1], outputs[2]);
outputs[3] = arr[0];

arr = neuron585(outputs[3]);
outputs[4] = arr[0];

return[outputs[4]];
}

/**
* character u:
*
* @return {Array}
*/
function neuron866()
{
var outputs = [];

arr = neuron501();
outputs[0] = arr[0];

arr = neuron507();
outputs[1] = arr[0];

arr = neuron638(outputs[0], outputs[0], outputs[1]);
outputs[2] = arr[0];

return[outputs[2]];
}

/**
* Connect - two inputs:
*
* @param x1 Variable A
* @param x2 Variable B
* @return {Array}
*/
function neuron520(x1, x2)
{
return [x1.toString()+x2.toString()];
}

/**
* Connect - four inputs:
*
* @param x1 string A
* @param x2 string B
* @param x3 string C
* @param x4 string D
* @return {Array}
*/
function neuron565(x1, x2, x3, x4)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;
outputs[3] = x4;

arr = neuron520(outputs[2], outputs[3]);
outputs[4] = arr[0];

arr = neuron520(outputs[1], outputs[4]);
outputs[5] = arr[0];

arr = neuron520(outputs[0], outputs[5]);
outputs[6] = arr[0];

return[outputs[6]];
}

/**
* null:
*
* @return {Array}
*/
function neuron865()
{
var outputs = [];

arr = neuron644();
outputs[0] = arr[0];

arr = neuron782();
outputs[1] = arr[0];

arr = neuron866();
outputs[2] = arr[0];

arr = neuron565(outputs[1], outputs[2], outputs[0], outputs[0]);
outputs[3] = arr[0];

return[outputs[3]];
}

/**
* a = b: IF a=b THEN 1 ELSE 0;
*
* @param x1 a
* @param x2 b
* @return {Array}
*/
function neuron591(x1, x2)
{
return [(x1 == x2) ? 1 : 0];
}

/**
* IF: IF a THEN b ELSE c;
*
* @param x1 condition (1/0)
* @param x2 variable for 1
* @param x3 variable for 0
* @return {Array}
*/
function neuron579(x1, x2, x3)
{
return [(x1) ? x2 : x3];
}

/**
* IF a=b THEN c ELSE d:
*
* @param x1 a
* @param x2 b
* @param x3 c
* @param x4 d
* @return {Array}
*/
function neuron724(x1, x2, x3, x4)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;
outputs[3] = x4;

arr = neuron591(outputs[1], outputs[0]);
outputs[4] = arr[0];

arr = neuron579(outputs[4], outputs[2], outputs[3]);
outputs[5] = arr[0];

return[outputs[5]];
}

/**
* IfNull:
*
* @param x1 Variable
* @param x2 Output, if variable is null
* @return {Array}
*/
function neuron868(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

arr = neuron865();
outputs[2] = arr[0];

arr = neuron724(outputs[0], outputs[2], outputs[1], outputs[0]);
outputs[3] = arr[0];

return[outputs[3]];
}

/**
* select sum (A, B, C):
*
* @param x1 value 1
* @param x2 value 2
* @param x3 value 3
* @return {Array}
*/
function neuron869(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron867(outputs[0], outputs[1]);
outputs[3] = arr[0];

arr = neuron868(outputs[3], outputs[1]);
outputs[4] = arr[0];

arr = neuron867(outputs[4], outputs[2]);
outputs[5] = arr[0];

arr = neuron868(outputs[5], outputs[4]);
outputs[6] = arr[0];

return[outputs[6]];
}

```