# Average

• value 1
• value 2

• average

## Neuron type

Best algorithm has been found - locked

## Patterns

Pattern Input Output
1.
 value 1: 1 value 2: 3
 average: 2
2.
 value 1: 22 value 2: 24
 average: 23
3.
 value 1: 0 value 2: 10
 average: 5
4.
 value 1: 4 value 2: 5
 average: 4.5

## Applicable neurons

• Plus (x + y)
• Division (x ÷ y)
• 1
• 2
• Get before substring
• a < b
• tag h1
• tag img

## Algorithm

### Test

```/**
* 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()];
}

/**
* 5:
*
* @return {Array}
*/
function neuron505()
{
return [5];
}

/**
* character .:
*
* @return {Array}
*/
function neuron510()
{
return['.'];
}

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

/**
* Half (0.5):
*
* @return {Array}
*/
function neuron522()
{
var outputs = [];

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

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

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

return[outputs[2]];
}

/**
* Multiple (x × y):
*
* @param x1 Number X
* @param x2 Number Y
* @return {Array}
*/
function neuron3(x1, x2)
{
math.config({number: 'BigNumber', precision: 64}); return [math.eval(Number(x1) + '*'+Number(x2)).toString()];
}

/**
* Midpoint (2d):
*
* @param x1 Point A: xa
* @param x2 Point A: ya
* @param x3 Point B: xb
* @param x4 Point B: yb
* @return {Array}
*/
function neuron659(x1, x2, x3, x4)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;
outputs[3] = x4;

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

arr = neuron522();
outputs[5] = arr[0];

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

arr = neuron3(outputs[4], outputs[5]);
outputs[7] = arr[0];

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

return[outputs[8], outputs[7]];
}

/**
* Midpoint (3d):
*
* @param x1 Point A: xa
* @param x2 Point A: ya
* @param x3 Point A: za
* @param x4 Point B: xb
* @param x5 Point B: yb
* @param x6 Point B: zb
* @return {Array}
*/
function neuron660(x1, x2, x3, x4, x5, x6)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;
outputs[3] = x4;
outputs[4] = x5;
outputs[5] = x6;

arr = neuron659(outputs[2], outputs[3], outputs[5], outputs[0]);
outputs[6] = arr[0];

;   outputs[7] = arr[1];

arr = neuron659(outputs[2], outputs[4], outputs[0], outputs[1]);
outputs[8] = arr[0];

;   outputs[9] = arr[1];

return[outputs[7], outputs[9], outputs[6]];
}

/**
* Average:
*
* @param x1 value 1
* @param x2 value 2
* @return {Array}
*/
function neuron877(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

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

;   outputs[3] = arr[1];

;   outputs[4] = arr[2];

return[outputs[3]];
}

```