Matlab any function in C / C++ Due to software constraints, I cannot use the standard libraries, math.h, algorithm, templates, inline, or boost. I am also using standard C (ISO C99) such that array is not a reserved keyword like it is in Visual Studio.

I need to duplicate the Matlab any function in C / C++ for an array. I currently have written two any functions with different inputs depending on the array size. 


Is it possible to write just one any function without using templates? 
How can I improve performance?


I am striving for const correctness, performance/efficiency, and avoiding implicit type casting. 

bool any(bool* array, const int N){
    // mimics the behavior of Matlab's any() function. Returns true if any element of the array is true
    bool val;
    val = array[0] == true;
    int i = 0;
    while (val == false &amp;&amp; i &lt; N){
        val = array[i++] == true;
    }
    return val;
}

bool any(bool** array, const int nRow, const int nCol){
    // mimics the behavior of Matlab's any() function. Returns true if any element of the array is true
    bool val;
    val = array[0][0] == true;
    int i = 0;
    while (i &lt; nRow &amp;&amp; val == false){
        int j = 0;
        while (j &lt; nCol &amp;&amp; val == false){
            val = array[i][j++] == true;
        }
        i++;
    }
    return val;
}
I would suggest having the 2D implementation call the 1D implementation, rather than duplicating the "any" logic in both implementations, e.g.

bool any(bool** array, const int nRow, const int nCol){
    // mimics the behavior of Matlab's any() function. Returns true if any element of the array is true
    bool val = false;

    for (int i = 0; i &lt; nRow &amp;&amp; val == false; ++i)
    {
        val = any(array[i], nCol); // call 1D version of any
    )
    return val;
}