# IfNull

## Inputs

• Variable
• Output, if variable is null

• Output

## Neuron type

Best algorithm has been found - locked

## Patterns

Pattern Input Output
1.
 Variable: null Output, if variable is null: 0
 Output: 0
2.
 Variable: 3 Output, if variable is null: 7
 Output: 3
3.
 Variable: 5 Output, if variable is null: null
 Output: 5
4.
 Variable: 2 Output, if variable is null: 0
 Output: 2
5.
 Variable: null Output, if variable is null: 100
 Output: 100

## Applicable neurons

• IF
• a > b
• a = b
• a is not b
• IF a=b THEN c ELSE d
• IF (1) THEN a ELSE b
• null
• sql A+B
• Substring (from start to position)
• Connect - three inputs
• 10
• logical riddle 5+25
• decimal part of a number
• character \$
• Half of number
• One child with two parents

## 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]];
}

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