(a)
return SPACETIME.fromarray(res)
SPACETIME.Dual
        
        Poincare duality operator.
SPACETIME.Dual
        
        Poincare duality operator.
SPACETIME . Dual Poincare duality operator .
def Dual(a):
        """SPACETIME.Dual
        
        Poincare duality operator.
        """
        res = a.mvec.copy()
        res[0]=-a[15]
        res[1]=a[14]
        res[2]=-a[13]
        res[3]=a[12]
        res[4]=a[11]
        res[5]=a[10]
        res[6]=-a[9]
        res[7]=-a[8]
        res[8]=a[7]
        res[9]=a[6]
        res[10]=-a[5]
        res[11]=-a[4]
        res[12]=-a[3]
        res[13]=a[2]
        res[14]=-a[1]
        res[15]=a[0]
        return SPACETIME.fromarray(res)
def Dual ( a ) : res = a . mvec . copy ( ) res [ 0 ] = - a [ 15 ] res [ 1 ] = a [ 14 ] res [ 2 ] = - a [ 13 ] res [ 3 ] = a [ 12 ] res [ 4 ] = a [ 11 ] res [ 5 ] = a [ 10 ] res [ 6 ] = - a [ 9 ] res [ 7 ] = - a [ 8 ] res [ 8 ] = a [ 7 ] res [ 9 ] = a [ 6 ] res [ 10 ] = - a [ 5 ] res [ 11 ] = - a [ 4 ] res [ 12 ] = - a [ 3 ] res [ 13 ] = a [ 2 ] res [ 14 ] = - a [ 1 ] res [ 15 ] = a [ 0 ] return SPACETIME . fromarray ( res )