# Quadratic equation (ax² + bx + c = 0)

• a
• b
• c

• x1
• x2

## Neuron type

Best algorithm has been found - locked

## Patterns

Pattern Input Output
1.
 a: 1 b: -3 c: -4
 x1: -1 x2: 4
2.
 a: 1 b: -7 c: 0
 x1: 0 x2: 7
3.
 a: 5 b: 6 c: 1
 x1: -1 x2: -0.2

## Applicable neurons

• Square root (√¯)
• discriminant b² - 4ac
• x / 2y
• -a + b; -a - b
• Square - content
• character /
• Declarative sentence
• Get first word
• character [
• logical riddle 5+5
• Contains string word A or B?
• (x)(y)

## Algorithm

### Test

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

/**
* x to the a  (xª): value of the number x to be the power of a
*
* @param x1 x - The base
* @param x2 a - The exponent
* @return {Array}
*/
function neuron18(x1, x2)
{
return[Math.pow(Number(x1), Number(x2))];
}

/**
* Square root (√¯):
*
* @param x1 Number X
* @return {Array}
*/
function neuron554(x1)
{
var outputs = [];
outputs[0] = x1;

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

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

return[outputs[2]];
}

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

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

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

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

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

return[outputs[3]];
}

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

/**
* 4:
*
* @return {Array}
*/
function neuron504()
{
return [4];
}

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

/**
* discriminant b² - 4ac:
*
* @param x1 a
* @param x2 b
* @param x3 c
* @return {Array}
*/
function neuron602(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

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

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

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

arr = neuron504();
outputs[6] = arr[0];

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

arr = neuron2(outputs[3], outputs[7]);
outputs[8] = arr[0];

return[outputs[8]];
}

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

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

/**
* a + b; a - b:
*
* @param x1 a
* @param x2 b
* @return {Array}
*/
function neuron717(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

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

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

return[outputs[2], outputs[3]];
}

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

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

/**
* -1:
*
* @return {Array}
*/
function neuron574()
{
var outputs = [];

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

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

arr = neuron520(outputs[0], outputs[1]);
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()];
}

/**
* x × (-1):
*
* @param x1 x
* @return {Array}
*/
function neuron710(x1)
{
var outputs = [];
outputs[0] = x1;

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

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

return[outputs[2]];
}

/**
* -a + b; -a - b:
*
* @param x1 a
* @param x2 b
* @return {Array}
*/
function neuron798(x1, x2)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;

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

;   outputs[3] = arr[1];

arr = neuron710(outputs[2]);
outputs[4] = arr[0];

return[outputs[3], outputs[4]];
}

/**
* Quadratic equation (ax² + bx + c = 0):
*
* @param x1 a
* @param x2 b
* @param x3 c
* @return {Array}
*/
function neuron575(x1, x2, x3)
{
var outputs = [];
outputs[0] = x1;
outputs[1] = x2;
outputs[2] = x3;

arr = neuron554(outputs[1]);
outputs[3] = arr[0];

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

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

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

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

;   outputs[8] = arr[1];

arr = neuron602(outputs[4], outputs[7], outputs[1]);
outputs[9] = arr[0];

arr = neuron715(outputs[7], outputs[7]);
outputs[10] = arr[0];

arr = neuron554(outputs[6]);
outputs[11] = arr[0];

arr = neuron554(outputs[6]);
outputs[12] = arr[0];

arr = neuron554(outputs[6]);
outputs[13] = arr[0];

arr = neuron798(outputs[4], outputs[13]);
outputs[14] = arr[0];

;   outputs[15] = arr[1];

return[outputs[15], outputs[14]];
}

```