collatz = Compile[{{n, _Integer}}, If[EvenQ[n], n/2, 3 n + 1] //
IntegerPart];
collatz2 = Compile[{{n, _Integer}}, If[EvenQ[n], n/2, 3 n + 1] // Round];
m = 1000000;
Timing[t1 = Table[collatz[n], {n, m}];]
{0.291132, Null}
Timing[t2 = Table[collatz2[n], {n, m}];]
{0.322116, Null}
Timing[t3 = Table[If[EvenQ[n], n/2, 3 n + 1], {n, m}];]
{2.352646, Null}
t1 == t2 == t3
True
Bob Hanlon
On Mon, May 12, 2014 at 12:43 AM, Harvey P. Dale <
h...@hpdale.org> wrote:
> Some compiled functions yield reals even if the input and