Ejemplo n.º 1
0
    def test_adjoint_scaling(self):

        vol_rn = Rn(self.geom.vol_size)
        vol_rn_ones = vol_rn.element(1)

        proj_rn = Rn(self.geom.proj_size)
        proj_rn_ones = proj_rn.element(1)

        projector = Projector(self.geom, vol_rn, proj_rn)

        proj1 = projector.forward(vol_rn_ones)
        vol1 = projector.backward(proj_rn_ones)

        n1 = proj1.inner(proj_rn_ones)
        n2 = vol_rn_ones.inner(vol1)

        print('<A x, y> = <x, Ad y> : {0} = {1}'.format(n1, n2))
        print('<A x, y> / <x, Ad y> - 1 = {0}'.format(n1/n2 - 1))

        proj = projector.forward(vol_rn_ones)
        vol = projector.backward(proj)

        alpha = proj.norm()**2 / vol_rn._inner(vol, vol_rn_ones)
        print alpha

        projector.clear_astra_memory()
Ejemplo n.º 2
0
    def test_adjoint_scaling(self):

        vol_rn = Rn(self.geom.vol_size)
        vol_rn_ones = vol_rn.element(1)

        proj_rn = Rn(self.geom.proj_size)
        proj_rn_ones = proj_rn.element(1)

        projector = Projector(self.geom, vol_rn, proj_rn)

        proj1 = projector.forward(vol_rn_ones)
        vol1 = projector.backward(proj_rn_ones)

        n1 = proj1.inner(proj_rn_ones)
        n2 = vol_rn_ones.inner(vol1)

        print('<A x, y> = <x, Ad y> : {0} = {1}'.format(n1, n2))
        print('<A x, y> / <x, Ad y> - 1 = {0}'.format(n1 / n2 - 1))

        proj = projector.forward(vol_rn_ones)
        vol = projector.backward(proj)

        alpha = proj.norm()**2 / vol_rn._inner(vol, vol_rn_ones)
        print alpha

        projector.clear_astra_memory()