where
where
where
If \(\widetilde{\omega}\) is the length of each dual edge, then
(Source code, png, hires.png, pdf)
>>> mirror0(array([1, 2, 3]))
array([1, 2, 3, 2])
>>> mirror0(array([1, 2, 3]), -1)
array([ 1, 2, 3, -2])
>>> to_matrix(mirror0, 3)
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.],
[ 0., 1., 0.]])
>>> to_matrix(lambda x: mirror0(x, -1), 3)
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.],
[-0., -1., -0.]])
>>> mirror1(array([1, 2, 3]))
array([1, 2, 3, 3, 2, 1])
>>> mirror1(array([1, 2, 3]), -1)
array([ 1, 2, 3, -3, -2, -1])
>>> to_matrix(mirror1, 2)
array([[ 1., 0.],
[ 0., 1.],
[ 0., 1.],
[ 1., 0.]])
>>> to_matrix(lambda x: mirror1(x, -1), 2)
array([[ 1., 0.],
[ 0., 1.],
[-0., -1.],
[-1., -0.]])
>>> unmirror0(array([1, 2, 3, 2]))
array([1, 2, 3])
>>> unmirror1(array([1, 2, 3, -3, -2, -1]))
array([1, 2, 3])
This is the discrete version of \(\delta(x)\) - the basis functions for the half edge at -1
>>> half_edge_base(3)
array([ 4.5, -0.5, 0.5])
Pick the nth element in the array f.