#!/usr/bin/env python # encoding: utf-8 from numpy import cos, pi, linspace import math def sign(v): if v < 0.0: return -1.0 elif v > 0.0: return 1.0 return 0.0 def check(a=5.0, b=6.0, n=2.758): nr = 5 line = [] n2 = 2.0 / n for i in range(nr): t = i * pi * 2.0 / nr ct = cos(t) x = abs(ct ** n2) * a #* sign(ct) print(i, ct, x) line.append((x)) return line def check2(a=5.0, b=6.0, n=2.758): nr = 5 line = [] n2 = 2.0 / n for i in range(nr): t = i * math.pi * 2.0 / nr ct = math.cos(t) x = abs(ct ** n2) * a #* sign(ct) print(i, ct, x) line.append((x)) return line print('-'*30) cc = [3.0] print('cc', cc) nn = 1 bb = [round(z, 2) for z in linspace(3.0, 3.0, nn)] print('bb', bb) print('-'*30) for n in cc: print('n', n) print('check cc', check(n=n)) print('-'*30) for n in bb: print('n', n) print('check bb', check(n=n)) print('-'*60) for n in cc: print('n', n) print('check2 cc', check2(n=n)) print('-'*30) for n in bb: print('n', n) print('check2 bb', check2(n=n)) ''' ./nan-test.py ------------------------------ cc [3.0] bb [3.0] ------------------------------ n 3.0 0 1.0 5.0 1 0.30901699437494745 2.285379077161093 ./nan-test.py:21: RuntimeWarning: invalid value encountered in double_scalars x = abs(ct ** n2) * a #* sign(ct) 2 -0.8090169943749473 nan 3 -0.8090169943749475 nan 4 0.30901699437494723 2.285379077161092 check cc [5.0, 2.285379077161093, nan, nan, 2.285379077161092] ------------------------------ n 3.0 0 1.0 5.0 1 0.30901699437494745 2.285379077161093 2 -0.8090169943749473 nan 3 -0.8090169943749475 nan 4 0.30901699437494723 2.285379077161092 check bb [5.0, 2.285379077161093, nan, nan, 2.285379077161092] ------------------------------------------------------------ n 3.0 0 1.0 5.0 1 0.30901699437494745 2.285379077161093 2 -0.8090169943749473 4.341186402706317 3 -0.8090169943749475 4.341186402706317 4 0.30901699437494723 2.285379077161092 check2 cc [5.0, 2.285379077161093, 4.341186402706317, 4.341186402706317, 2.285379077161092] ------------------------------ n 3.0 0 1.0 5.0 1 0.30901699437494745 2.285379077161093 ./nan-test.py:33: RuntimeWarning: invalid value encountered in double_scalars x = abs(ct ** n2) * a #* sign(ct) 2 -0.8090169943749473 nan 3 -0.8090169943749475 nan 4 0.30901699437494723 2.285379077161092 check2 bb [5.0, 2.285379077161093, nan, nan, 2.285379077161092] '''