def apply_list(self, zmin, zmax, ns, evaluation): 'RandomComplex[{zmin_, zmax_}, ns_]' expr = Expression('RandomComplex', Expression('List', zmin, zmax), ns) min_value, max_value = self.to_complex(zmin, evaluation), self.to_complex( zmax, evaluation) if min_value is None or max_value is None: return evaluation.message('RandomComplex', 'unifr', Expression('List', zmin, zmax)) py_ns = ns.to_python() if not isinstance(py_ns, list): py_ns = [py_ns] if not all([isinstance(i, int) and i >= 0 for i in py_ns]): return evaluation.message('RandomComplex', 'array', ns, expr) with RandomEnv(evaluation) as rand: real = rand.randreal(min_value.real, max_value.real, py_ns) imag = rand.randreal(min_value.imag, max_value.imag, py_ns) return instantiate_elements( stack(real, imag), lambda c: Complex(Real(c[0]), Real(c[1])), d=2)
def testStackUnstackIdentity(self): a = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]] b = [1, 2, 3] c = [[1, 2], [3, 4]] for m in (a, b, c): self.assertEqualArrays(stack(*unstack(m)), m)
def testStackUnstackIdentity(self): a = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]] b = [1, 2, 3] c = [[1, 2], [3, 4]] for m in (a, b, c): self.assertEqualArrays(stack(*unstack(m)), m)
def apply_list(self, zmin, zmax, ns, evaluation): 'RandomComplex[{zmin_, zmax_}, ns_]' expr = Expression('RandomComplex', Expression('List', zmin, zmax), ns) min_value, max_value = self.to_complex(zmin, evaluation), self.to_complex(zmax, evaluation) if min_value is None or max_value is None: return evaluation.message('RandomComplex', 'unifr', Expression('List', zmin, zmax)) py_ns = ns.to_python() if not isinstance(py_ns, list): py_ns = [py_ns] if not all([isinstance(i, six.integer_types) and i >= 0 for i in py_ns]): return evaluation.message('RandomComplex', 'array', ns, expr) with RandomEnv(evaluation) as rand: real = rand.randreal(min_value.real, max_value.real, py_ns) imag = rand.randreal(min_value.imag, max_value.imag, py_ns) return instantiate_elements( stack(real, imag), lambda c: Complex(Real(c[0]), Real(c[1])), d=2)
def rgb_to_xyz(r, g, b, *rest): r, g, b = map(_inverse_compand_srgb, (r, g, b)) x, y, z = unstack(_clip1(dot_t(stack(r, g, b), _xyz_from_rgb))) return map(_clip1, (x, y, z) + rest)
def xyz_to_rgb(x, y, z, *rest): x, y, z = map(_clip1, (x, y, z)) r, g, b = unstack(dot_t(stack(x, y, z), _rgb_from_xyz)) r, g, b = map(_clip1, (r, g, b)) r, g, b = map(_compand_srgb, (r, g, b)) return map(_clip1, (r, g, b) + rest)
def rgb_to_xyz(r, g, b, *rest): r, g, b = map(_inverse_compand_srgb, (r, g, b)) x, y, z = unstack(_clip1(dot_t(stack(r, g, b), _xyz_from_rgb))) return map(_clip1, (x, y, z) + rest)
def xyz_to_rgb(x, y, z, *rest): x, y, z = map(_clip1, (x, y, z)) r, g, b = unstack(dot_t(stack(x, y, z), _rgb_from_xyz)) r, g, b = map(_clip1, (r, g, b)) r, g, b = map(_compand_srgb, (r, g, b)) return map(_clip1, (r, g, b) + rest)