function y = df( x )
    n           = 100;
    N           = (0:n)';
    fTranspose  = false;

    if( size(x,1) > 1 && size(x,2) > 1 )
        error( 'Matrix-valued evaluation is infeasible.' );
    end

    if( size(x,2) > 1 )
        fTranspose  = true;
        x           = x';
    end

    y = sum( cos(pi*16.^N*x') ./ (2*ones(length(N),1)).^N );

    if( ~fTranspose )
        y = y';
    end
end

