Python cmath.pi() Examples
The following are 30
code examples of cmath.pi().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
cmath
, or try the search function
.
Example #1
Source File: fplot.py From micropython-nano-gui with MIT License | 6 votes |
def show(self): super().show() # Clear working area ssd = self.device x0 = self.x0 y0 = self.y0 radius = self.radius adivs = self.adivs rdivs = self.rdivs diam = 2 * radius if rdivs > 0: for r in range(1, rdivs + 1): circle(ssd, self.xp_origin, self.yp_origin, round(radius * r / rdivs), self.gridcolor) if adivs > 0: v = complex(1) m = rect(1, pi / adivs) for _ in range(adivs): self.cline(-v, v, self.gridcolor) v *= m ssd.vline(x0 + radius, y0, diam, self.fgcolor) ssd.hline(x0, y0 + radius, diam, self.fgcolor)
Example #2
Source File: test_taulgamma.py From flavio with MIT License | 6 votes |
def test_tauegamma_implementation(self): input_dict_list=[{ 'Cgamma_taue':np.random.random()*1e-8*exp(1j*2*pi*np.random.random()), 'Cgamma_etau':np.random.random()*1e-8*exp(1j*2*pi*np.random.random()), } for i in range(10)] BRs = np.array([ flavio.np_prediction( 'BR(tau->egamma)', Wilson(input_dict, 100, 'WET', 'flavio') ) for input_dict in input_dict_list ]) compare_BRs = np.array([ compare_BR( Wilson(input_dict, 100, 'WET', 'flavio'), 'tau', 'e', ) for input_dict in input_dict_list ]) self.assertAlmostEqual(np.max(np.abs(1-BRs/compare_BRs)), 0, delta=0.002)
Example #3
Source File: test_muegamma.py From flavio with MIT License | 6 votes |
def test_tauegamma_implementation(self): input_dict_list=[{ 'Cgamma_mue':np.random.random()*1e-8*exp(1j*2*pi*np.random.random()), 'Cgamma_emu':np.random.random()*1e-8*exp(1j*2*pi*np.random.random()), } for i in range(10)] BRs = np.array([ flavio.np_prediction( 'BR(mu->egamma)', Wilson(input_dict, 100, 'WET', 'flavio') ) for input_dict in input_dict_list ]) compare_BRs = np.array([ compare_BR( Wilson(input_dict, 100, 'WET', 'flavio'), 'mu', 'e', ) for input_dict in input_dict_list ]) self.assertAlmostEqual(np.max(np.abs(1-BRs/compare_BRs)), 0, delta=0.005)
Example #4
Source File: test_taulgamma.py From flavio with MIT License | 6 votes |
def test_taumugamma_implementation(self): input_dict_list=[{ 'Cgamma_taumu':np.random.random()*1e-8*exp(1j*2*pi*np.random.random()), 'Cgamma_mutau':np.random.random()*1e-8*exp(1j*2*pi*np.random.random()), } for i in range(10)] BRs = np.array([ flavio.np_prediction( 'BR(tau->mugamma)', Wilson(input_dict, 100, 'WET', 'flavio') ) for input_dict in input_dict_list ]) compare_BRs = np.array([ compare_BR( Wilson(input_dict, 100, 'WET', 'flavio'), 'tau', 'mu', ) for input_dict in input_dict_list ]) self.assertAlmostEqual(np.max(np.abs(1-BRs/compare_BRs)), 0, delta=0.02)
Example #5
Source File: vectors.py From micropython-tft-gui with MIT License | 6 votes |
def arrow(tft, origin, vec, lc, color): ccw = cmath.exp(3j * cmath.pi/4) # Unit vectors cw = cmath.exp(-3j * cmath.pi/4) length, theta = cmath.polar(vec) uv = cmath.rect(1, theta) # Unit rotation vector start = -vec if length > 3 * lc: # If line is long ds = cmath.rect(lc, theta) start += ds # shorten to allow for length of tail chevrons chev = lc + 0j pline(tft, origin, vec, color) # Origin to tip pline(tft, origin, start, color) # Origin to tail pline(tft, origin + conj(vec), chev*ccw*uv, color) # Tip chevron pline(tft, origin + conj(vec), chev*cw*uv, color) if length > lc: # Confusing appearance of very short vectors with tail chevron pline(tft, origin + conj(start), chev*ccw*uv, color) # Tail chevron pline(tft, origin + conj(start), chev*cw*uv, color) # Vector display
Example #6
Source File: vtest.py From micropython-tft-gui with MIT License | 6 votes |
def aclock(dial, lbldate, lbltim): uv = lambda phi : rect(1, phi) # Return a unit vector of phase phi days = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday') months = ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December') hrs = Pointer(dial) mins = Pointer(dial) secs = Pointer(dial) hstart = 0 + 0.7j # Pointer lengths. Position at top. mstart = 0 + 1j sstart = 0 + 1j while True: t = time.localtime() hrs.value(hstart * uv(-t[3] * pi/6 - t[4] * pi / 360), CYAN) mins.value(mstart * uv(-t[4] * pi/30), CYAN) secs.value(sstart * uv(-t[5] * pi/30), RED) lbltim.value('{:02d}.{:02d}.{:02d}'.format(t[3], t[4], t[5])) lbldate.value('{} {} {} {}'.format(days[t[6]], t[2], months[t[1] - 1], t[0])) await asyncio.sleep(1)
Example #7
Source File: test_taulgamma.py From flavio with MIT License | 6 votes |
def compare_BR(wc_wilson, l1, l2): scale = flavio.config['renormalization scale'][l1+'decays'] ll = wcxf_sector_names[l1, l2] par = flavio.default_parameters.get_central_all() wc_obj = flavio.WilsonCoefficients.from_wilson(wc_wilson, par) par = flavio.parameters.default_parameters.get_central_all() wc = wc_obj.get_wc(ll, scale, par, nf_out=4) alpha = flavio.physics.running.running.get_alpha_e(par, scale, nf_out=4) e = sqrt(4 * pi * alpha) ml = par['m_' + l1] # cf. (18) of hep-ph/0404211 pre = 48 * pi**3 * alpha / par['GF']**2 DL = 2 / (e * ml) * wc['Cgamma_' + l1 + l2] DR = 2 / (e * ml) * wc['Cgamma_' + l2 + l1].conjugate() if l1 == 'tau': BR_SL = par['BR(tau->{}nunu)'.format(l2)] else: BR_SL = 1 # BR(mu->enunu) = 1 return pre * (abs(DL)**2 + abs(DR)**2) * BR_SL
Example #8
Source File: nanogui.py From micropython-nano-gui with MIT License | 6 votes |
def arrow(dev, origin, vec, lc, color, ccw=cmath.exp(3j * cmath.pi/4), cw=cmath.exp(-3j * cmath.pi/4)): length, theta = cmath.polar(vec) uv = cmath.rect(1, theta) # Unit rotation vector start = -vec if length > 3 * lc: # If line is long ds = cmath.rect(lc, theta) start += ds # shorten to allow for length of tail chevrons chev = lc + 0j polar(dev, origin, vec, color) # Origin to tip polar(dev, origin, start, color) # Origin to tail polar(dev, origin + conj(vec), chev*ccw*uv, color) # Tip chevron polar(dev, origin + conj(vec), chev*cw*uv, color) if length > lc: # Confusing appearance of very short vectors with tail chevron polar(dev, origin + conj(start), chev*ccw*uv, color) # Tail chevron polar(dev, origin + conj(start), chev*cw*uv, color) # If a (framebuf based) device is passed to refresh, the screen is cleared. # None causes pending widgets to be drawn and the result to be copied to hardware. # The pend mechanism enables a displayable object to postpone its renedering # until it is complete: efficient for e.g. Dial which may have multiple Pointers
Example #9
Source File: color15.py From micropython-nano-gui with MIT License | 6 votes |
def clock(x): print('Clock test.') refresh(ssd, True) # Clear any prior image lbl = Label(wri, 5, 85, 'Clock') dial = Dial(wri, 5, 5, height = 75, ticks = 12, bdcolor=None, label=50) # Border in fg color hrs = Pointer(dial) mins = Pointer(dial) hrs.value(0 + 0.7j, RED) mins.value(0 + 0.9j, YELLOW) dm = cmath.rect(1, -cmath.pi/30) # Rotate by 1 minute (CW) dh = cmath.rect(1, -cmath.pi/1800) # Rotate hours by 1 minute for n in range(x): refresh(ssd) utime.sleep_ms(200) mins.value(mins.value() * dm, YELLOW) hrs.value(hrs.value() * dh, RED) dial.text('ticks: {}'.format(n)) lbl.value('Done')
Example #10
Source File: test_cmath.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_polar(self): self.assertCISEqual(polar(0), (0., 0.)) self.assertCISEqual(polar(1.), (1., 0.)) self.assertCISEqual(polar(-1.), (1., pi)) self.assertCISEqual(polar(1j), (1., pi/2)) self.assertCISEqual(polar(-1j), (1., -pi/2))
Example #11
Source File: test_cmath.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_rect(self): self.assertCEqual(rect(0, 0), (0, 0)) self.assertCEqual(rect(1, 0), (1., 0)) self.assertCEqual(rect(1, -pi), (-1., 0)) self.assertCEqual(rect(1, pi/2), (0, 1.)) self.assertCEqual(rect(1, -pi/2), (0, -1.))
Example #12
Source File: test_cmath.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_phase(self): self.assertAlmostEqual(phase(0), 0.) self.assertAlmostEqual(phase(1.), 0.) self.assertAlmostEqual(phase(-1.), pi) self.assertAlmostEqual(phase(-1.+1E-300j), pi) self.assertAlmostEqual(phase(-1.-1E-300j), -pi) self.assertAlmostEqual(phase(1j), pi/2) self.assertAlmostEqual(phase(-1j), -pi/2) # zeros self.assertEqual(phase(complex(0.0, 0.0)), 0.0) self.assertEqual(phase(complex(0.0, -0.0)), -0.0) self.assertEqual(phase(complex(-0.0, 0.0)), pi) self.assertEqual(phase(complex(-0.0, -0.0)), -pi) # infinities self.assertAlmostEqual(phase(complex(-INF, -0.0)), -pi) self.assertAlmostEqual(phase(complex(-INF, -2.3)), -pi) self.assertAlmostEqual(phase(complex(-INF, -INF)), -0.75*pi) self.assertAlmostEqual(phase(complex(-2.3, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(-0.0, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(0.0, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(2.3, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(INF, -INF)), -pi/4) self.assertEqual(phase(complex(INF, -2.3)), -0.0) self.assertEqual(phase(complex(INF, -0.0)), -0.0) self.assertEqual(phase(complex(INF, 0.0)), 0.0) self.assertEqual(phase(complex(INF, 2.3)), 0.0) self.assertAlmostEqual(phase(complex(INF, INF)), pi/4) self.assertAlmostEqual(phase(complex(2.3, INF)), pi/2) self.assertAlmostEqual(phase(complex(0.0, INF)), pi/2) self.assertAlmostEqual(phase(complex(-0.0, INF)), pi/2) self.assertAlmostEqual(phase(complex(-2.3, INF)), pi/2) self.assertAlmostEqual(phase(complex(-INF, INF)), 0.75*pi) self.assertAlmostEqual(phase(complex(-INF, 2.3)), pi) self.assertAlmostEqual(phase(complex(-INF, 0.0)), pi) # real or imaginary part NaN for z in complex_nans: self.assertTrue(math.isnan(phase(z)))
Example #13
Source File: test_cmath.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_rect(self): self.assertCEqual(rect(0, 0), (0, 0)) self.assertCEqual(rect(1, 0), (1., 0)) self.assertCEqual(rect(1, -pi), (-1., 0)) self.assertCEqual(rect(1, pi/2), (0, 1.)) self.assertCEqual(rect(1, -pi/2), (0, -1.))
Example #14
Source File: test_cmath.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_rect(self): self.assertCEqual(rect(0, 0), (0, 0)) self.assertCEqual(rect(1, 0), (1., 0)) self.assertCEqual(rect(1, -pi), (-1., 0)) self.assertCEqual(rect(1, pi/2), (0, 1.)) self.assertCEqual(rect(1, -pi/2), (0, -1.))
Example #15
Source File: test_cmath.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_constants(self): e_expected = 2.71828182845904523536 pi_expected = 3.14159265358979323846 self.assertAlmostEqual(cmath.pi, pi_expected, places=9, msg="cmath.pi is {}; should be {}".format(cmath.pi, pi_expected)) self.assertAlmostEqual(cmath.e, e_expected, places=9, msg="cmath.e is {}; should be {}".format(cmath.e, e_expected))
Example #16
Source File: canvas.py From tk_tools with MIT License | 5 votes |
def _draw_background(self, divisions: int = 10): """ Draws the background of the dial :param divisions: the number of divisions between 'ticks' shown on the dial :return: None """ self.canvas.create_arc(2, 2, self.size-2, self.size-2, style=tk.PIESLICE, start=-60, extent=30, fill='red') self.canvas.create_arc(2, 2, self.size-2, self.size-2, style=tk.PIESLICE, start=-30, extent=60, fill='yellow') self.canvas.create_arc(2, 2, self.size-2, self.size-2, style=tk.PIESLICE, start=30, extent=210, fill='green') # find the distance between the center and the inner tick radius inner_tick_radius = int(self.size * 0.4) outer_tick_radius = int(self.size * 0.5) for tick in range(divisions): angle_in_radians = (2.0 * cmath.pi / 3.0) \ + tick/divisions * (5.0 * cmath.pi / 3.0) inner_point = cmath.rect(inner_tick_radius, angle_in_radians) outer_point = cmath.rect(outer_tick_radius, angle_in_radians) self.canvas.create_line( *self.to_absolute(inner_point.real, inner_point.imag), *self.to_absolute(outer_point.real, outer_point.imag), width=1 )
Example #17
Source File: canvas.py From tk_tools with MIT License | 5 votes |
def set_value(self, number: (float, int)): """ Sets the value of the graphic :param number: the number (must be between 0 and \ 'max_range' or the scale will peg the limits :return: None """ self.canvas.delete('all') self.canvas.create_image(0, 0, image=self.image, anchor='nw') number = number if number <= self.max_value else self.max_value number = 0.0 if number < 0.0 else number radius = 0.9 * self.size/2.0 angle_in_radians = (2.0 * cmath.pi / 3.0) \ + number / self.max_value * (5.0 * cmath.pi / 3.0) center = cmath.rect(0, 0) outer = cmath.rect(radius, angle_in_radians) if self.needle_thickness == 0: line_width = int(5 * self.size / 200) line_width = 1 if line_width < 1 else line_width else: line_width = self.needle_thickness self.canvas.create_line( *self.to_absolute(center.real, center.imag), *self.to_absolute(outer.real, outer.imag), width=line_width, fill=self.needle_color ) self.readout['text'] = '{}{}'.format(number, self.unit)
Example #18
Source File: test_cmath.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_phase(self): self.assertAlmostEqual(phase(0), 0.) self.assertAlmostEqual(phase(1.), 0.) self.assertAlmostEqual(phase(-1.), pi) self.assertAlmostEqual(phase(-1.+1E-300j), pi) self.assertAlmostEqual(phase(-1.-1E-300j), -pi) self.assertAlmostEqual(phase(1j), pi/2) self.assertAlmostEqual(phase(-1j), -pi/2) # zeros self.assertEqual(phase(complex(0.0, 0.0)), 0.0) self.assertEqual(phase(complex(0.0, -0.0)), -0.0) self.assertEqual(phase(complex(-0.0, 0.0)), pi) self.assertEqual(phase(complex(-0.0, -0.0)), -pi) # infinities self.assertAlmostEqual(phase(complex(-INF, -0.0)), -pi) self.assertAlmostEqual(phase(complex(-INF, -2.3)), -pi) self.assertAlmostEqual(phase(complex(-INF, -INF)), -0.75*pi) self.assertAlmostEqual(phase(complex(-2.3, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(-0.0, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(0.0, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(2.3, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(INF, -INF)), -pi/4) self.assertEqual(phase(complex(INF, -2.3)), -0.0) self.assertEqual(phase(complex(INF, -0.0)), -0.0) self.assertEqual(phase(complex(INF, 0.0)), 0.0) self.assertEqual(phase(complex(INF, 2.3)), 0.0) self.assertAlmostEqual(phase(complex(INF, INF)), pi/4) self.assertAlmostEqual(phase(complex(2.3, INF)), pi/2) self.assertAlmostEqual(phase(complex(0.0, INF)), pi/2) self.assertAlmostEqual(phase(complex(-0.0, INF)), pi/2) self.assertAlmostEqual(phase(complex(-2.3, INF)), pi/2) self.assertAlmostEqual(phase(complex(-INF, INF)), 0.75*pi) self.assertAlmostEqual(phase(complex(-INF, 2.3)), pi) self.assertAlmostEqual(phase(complex(-INF, 0.0)), pi) # real or imaginary part NaN for z in complex_nans: self.assertTrue(math.isnan(phase(z)))
Example #19
Source File: test_cmath.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_constants(self): e_expected = 2.71828182845904523536 pi_expected = 3.14159265358979323846 self.assertAlmostEqual(cmath.pi, pi_expected, places=9, msg="cmath.pi is {}; should be {}".format(cmath.pi, pi_expected)) self.assertAlmostEqual(cmath.e, e_expected, places=9, msg="cmath.e is {}; should be {}".format(cmath.e, e_expected))
Example #20
Source File: vectors.py From micropython-tft-gui with MIT License | 5 votes |
def show(self): # cache bound variables tft = self.tft ticks = self.ticks radius = self.radius xo = self.xorigin yo = self.yorigin vor = self.vor if self.redraw: # An overlaying screen has closed. Force redraw. self.redraw = False self.drawn = False if not self.drawn: self.drawn = True vtstart = (1 - self.TICKLEN) * radius + 0j # start of tick vtick = self.TICKLEN * radius + 0j # tick vrot = cmath.exp(2j * cmath.pi/ticks) # unit rotation for _ in range(ticks): pline(tft, vor + conj(vtstart), vtick, self.fgcolor) vtick *= vrot vtstart *= vrot tft.draw_circle(xo, yo, radius, self.fgcolor) vshort = 1000 # Length of shortest vector for v in self.vectors: val = v.value() * radius # val is complex vshort = min(vshort, cmath.polar(val)[0]) v.show() if isinstance(self.pip, tuple) and vshort > 9: tft.fill_circle(xo, yo, 3, self.pip)
Example #21
Source File: test_cmath.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_rect(self): self.assertCEqual(rect(0, 0), (0, 0)) self.assertCEqual(rect(1, 0), (1., 0)) self.assertCEqual(rect(1, -pi), (-1., 0)) self.assertCEqual(rect(1, pi/2), (0, 1.)) self.assertCEqual(rect(1, -pi/2), (0, -1.))
Example #22
Source File: test_cmath.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_phase(self): self.assertAlmostEqual(phase(0), 0.) self.assertAlmostEqual(phase(1.), 0.) self.assertAlmostEqual(phase(-1.), pi) self.assertAlmostEqual(phase(-1.+1E-300j), pi) self.assertAlmostEqual(phase(-1.-1E-300j), -pi) self.assertAlmostEqual(phase(1j), pi/2) self.assertAlmostEqual(phase(-1j), -pi/2) # zeros self.assertEqual(phase(complex(0.0, 0.0)), 0.0) self.assertEqual(phase(complex(0.0, -0.0)), -0.0) self.assertEqual(phase(complex(-0.0, 0.0)), pi) self.assertEqual(phase(complex(-0.0, -0.0)), -pi) # infinities self.assertAlmostEqual(phase(complex(-INF, -0.0)), -pi) self.assertAlmostEqual(phase(complex(-INF, -2.3)), -pi) self.assertAlmostEqual(phase(complex(-INF, -INF)), -0.75*pi) self.assertAlmostEqual(phase(complex(-2.3, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(-0.0, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(0.0, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(2.3, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(INF, -INF)), -pi/4) self.assertEqual(phase(complex(INF, -2.3)), -0.0) self.assertEqual(phase(complex(INF, -0.0)), -0.0) self.assertEqual(phase(complex(INF, 0.0)), 0.0) self.assertEqual(phase(complex(INF, 2.3)), 0.0) self.assertAlmostEqual(phase(complex(INF, INF)), pi/4) self.assertAlmostEqual(phase(complex(2.3, INF)), pi/2) self.assertAlmostEqual(phase(complex(0.0, INF)), pi/2) self.assertAlmostEqual(phase(complex(-0.0, INF)), pi/2) self.assertAlmostEqual(phase(complex(-2.3, INF)), pi/2) self.assertAlmostEqual(phase(complex(-INF, INF)), 0.75*pi) self.assertAlmostEqual(phase(complex(-INF, 2.3)), pi) self.assertAlmostEqual(phase(complex(-INF, 0.0)), pi) # real or imaginary part NaN for z in complex_nans: self.assertTrue(math.isnan(phase(z)))
Example #23
Source File: test_cmath.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_polar(self): self.assertCISEqual(polar(0), (0., 0.)) self.assertCISEqual(polar(1.), (1., 0.)) self.assertCISEqual(polar(-1.), (1., pi)) self.assertCISEqual(polar(1j), (1., pi/2)) self.assertCISEqual(polar(-1j), (1., -pi/2))
Example #24
Source File: test_cmath.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_constants(self): e_expected = 2.71828182845904523536 pi_expected = 3.14159265358979323846 self.assertAlmostEqual(cmath.pi, pi_expected, places=9, msg="cmath.pi is {}; should be {}".format(cmath.pi, pi_expected)) self.assertAlmostEqual(cmath.e, e_expected, places=9, msg="cmath.e is {}; should be {}".format(cmath.e, e_expected))
Example #25
Source File: abstract_reader.py From ditto with BSD 3-Clause "New" or "Revised" License | 5 votes |
def get_sequence_impedance_matrix(self, phase_impedance_matrix): """Get sequence impedance matrix from phase impedance matrix.""" phase_impedance_matrix = np.array(phase_impedance_matrix) # If we have a 3 by 3 phase impedance matrix if phase_impedance_matrix.shape == (3, 3): a = cmath.exp(complex(0, 2.0 / 3 * cmath.pi)) A = np.array( [ [complex(1.0, 0), complex(1.0, 0), complex(1.0, 0)], [complex(1.0, 0), a ** 2, a], [complex(1.0, 0), a, a ** 2], ] ) A_inv = ( 1.0 / 3.0 * np.array( [ [complex(1.0, 0), complex(1.0, 0), complex(1.0, 0)], [complex(1.0, 0), a, a ** 2], [complex(1.0, 0), a ** 2, a], ] ) ) # if we have a 2 by 2 phase impedance matrix elif phase_impedance_matrix.shape == (2, 2): A = np.array([[1.0, 1.0], [1.0, -1.0]]) A_inv = np.array([[0.5, 0.5], [0.5, -0.5]]) else: return [] return np.dot(A_inv, np.dot(phase_impedance_matrix, A))
Example #26
Source File: fft.py From PyRival with Apache License 2.0 | 5 votes |
def fft(a, inv=False): n = len(a) w = [cmath.rect(1, (-2 if inv else 2) * cmath.pi * i / n) for i in range(n >> 1)] rev = [0] * n for i in range(n): rev[i] = rev[i >> 1] >> 1 if i & 1: rev[i] |= n >> 1 if i < rev[i]: a[i], a[rev[i]] = a[rev[i]], a[i] step = 2 while step <= n: half, diff = step >> 1, n // step for i in range(0, n, step): pw = 0 for j in range(i, i + half): v = a[j + half] * w[pw] a[j + half] = a[j] - v a[j] += v pw += diff step <<= 1 if inv: for i in range(n): a[i] /= n
Example #27
Source File: test_cmath.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_rect(self): self.assertCEqual(rect(0, 0), (0, 0)) self.assertCEqual(rect(1, 0), (1., 0)) self.assertCEqual(rect(1, -pi), (-1., 0)) self.assertCEqual(rect(1, pi/2), (0, 1.)) self.assertCEqual(rect(1, -pi/2), (0, -1.))
Example #28
Source File: test_cmath.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_phase(self): self.assertAlmostEqual(phase(0), 0.) self.assertAlmostEqual(phase(1.), 0.) self.assertAlmostEqual(phase(-1.), pi) self.assertAlmostEqual(phase(-1.+1E-300j), pi) self.assertAlmostEqual(phase(-1.-1E-300j), -pi) self.assertAlmostEqual(phase(1j), pi/2) self.assertAlmostEqual(phase(-1j), -pi/2) # zeros self.assertEqual(phase(complex(0.0, 0.0)), 0.0) self.assertEqual(phase(complex(0.0, -0.0)), -0.0) self.assertEqual(phase(complex(-0.0, 0.0)), pi) self.assertEqual(phase(complex(-0.0, -0.0)), -pi) # infinities self.assertAlmostEqual(phase(complex(-INF, -0.0)), -pi) self.assertAlmostEqual(phase(complex(-INF, -2.3)), -pi) self.assertAlmostEqual(phase(complex(-INF, -INF)), -0.75*pi) self.assertAlmostEqual(phase(complex(-2.3, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(-0.0, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(0.0, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(2.3, -INF)), -pi/2) self.assertAlmostEqual(phase(complex(INF, -INF)), -pi/4) self.assertEqual(phase(complex(INF, -2.3)), -0.0) self.assertEqual(phase(complex(INF, -0.0)), -0.0) self.assertEqual(phase(complex(INF, 0.0)), 0.0) self.assertEqual(phase(complex(INF, 2.3)), 0.0) self.assertAlmostEqual(phase(complex(INF, INF)), pi/4) self.assertAlmostEqual(phase(complex(2.3, INF)), pi/2) self.assertAlmostEqual(phase(complex(0.0, INF)), pi/2) self.assertAlmostEqual(phase(complex(-0.0, INF)), pi/2) self.assertAlmostEqual(phase(complex(-2.3, INF)), pi/2) self.assertAlmostEqual(phase(complex(-INF, INF)), 0.75*pi) self.assertAlmostEqual(phase(complex(-INF, 2.3)), pi) self.assertAlmostEqual(phase(complex(-INF, 0.0)), pi) # real or imaginary part NaN for z in complex_nans: self.assertTrue(math.isnan(phase(z)))
Example #29
Source File: test_cmath.py From ironpython3 with Apache License 2.0 | 5 votes |
def check_polar(self, func): def check(arg, expected): got = func(arg) for e, g in zip(expected, got): self.rAssertAlmostEqual(e, g) check(0, (0., 0.)) check(1, (1., 0.)) check(-1, (1., pi)) check(1j, (1., pi / 2)) check(-3j, (3., -pi / 2)) inf = float('inf') check(complex(inf, 0), (inf, 0.)) check(complex(-inf, 0), (inf, pi)) check(complex(3, inf), (inf, pi / 2)) check(complex(5, -inf), (inf, -pi / 2)) check(complex(inf, inf), (inf, pi / 4)) check(complex(inf, -inf), (inf, -pi / 4)) check(complex(-inf, inf), (inf, 3 * pi / 4)) check(complex(-inf, -inf), (inf, -3 * pi / 4)) nan = float('nan') check(complex(nan, 0), (nan, nan)) check(complex(0, nan), (nan, nan)) check(complex(nan, nan), (nan, nan)) check(complex(inf, nan), (inf, nan)) check(complex(-inf, nan), (inf, nan)) check(complex(nan, inf), (inf, nan)) check(complex(nan, -inf), (inf, nan))
Example #30
Source File: test_cmath.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_constants(self): e_expected = 2.71828182845904523536 pi_expected = 3.14159265358979323846 self.assertAlmostEqual(cmath.pi, pi_expected, places=9, msg="cmath.pi is {}; should be {}".format(cmath.pi, pi_expected)) self.assertAlmostEqual(cmath.e, e_expected, places=9, msg="cmath.e is {}; should be {}".format(cmath.e, e_expected))