public virtual GaSymMapUnilinear Adjoint() { var exprArray = this.ToExprScalarsArray(); var resultMap = GaSymMapUnilinearTree.Create( TargetVSpaceDimension, DomainVSpaceDimension ); for (var id = 0; id < TargetGaSpaceDimension; id++) { var mv = GaSymMultivector.CreateFromRow(exprArray, id); if (!mv.IsNullOrZero()) { resultMap.SetBasisBladeMap(id, mv); } } return(resultMap); }