computeUnifyingDec

PURPOSE ^

create embedding unifying representation from decomposition

SYNOPSIS ^

function esDec = computeUnifyingDec(dec, zerotol)

DESCRIPTION ^

 create embedding unifying representation from decomposition

 Syntax: esDec = computeEmbeddingSimpleDec(dec)

 A new matrix of facet normals dec.A is calculated that contains all
   facets that could be created by adding structuring elements of the
   input decomposition. A matching group mapping matrix is also generated.
   The new decomposition would have a unified partitions, where all
   structuring elements of the input decomposition are extreme rays.
   Hence, any point represented in the input decomposition will reside at
   the boundary of the output decomposition (and unified partition)

 All data is transformed to the new decomposition. This decomposition is
   typically not complete (validity cone, unified paritions etc.).

 See also: obtainDec, projectDec

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function esDec = computeUnifyingDec(dec, zerotol)
0002 % create embedding unifying representation from decomposition
0003 %
0004 % Syntax: esDec = computeEmbeddingSimpleDec(dec)
0005 %
0006 % A new matrix of facet normals dec.A is calculated that contains all
0007 %   facets that could be created by adding structuring elements of the
0008 %   input decomposition. A matching group mapping matrix is also generated.
0009 %   The new decomposition would have a unified partitions, where all
0010 %   structuring elements of the input decomposition are extreme rays.
0011 %   Hence, any point represented in the input decomposition will reside at
0012 %   the boundary of the output decomposition (and unified partition)
0013 %
0014 % All data is transformed to the new decomposition. This decomposition is
0015 %   typically not complete (validity cone, unified paritions etc.).
0016 %
0017 % See also: obtainDec, projectDec
0018 
0019 % The elk-library: convex geometry applied to crystallization modeling.
0020 %   Copyright (C) 2013 Alexander Reinhold
0021 %
0022 % This program is free software: you can redistribute it and/or modify it
0023 %   under the terms of the GNU General Public License as published by the
0024 %   Free Software Foundation, either version 3 of the License, or (at your
0025 %   option) any later version.
0026 %
0027 % This program is distributed in the hope that it will be useful, but
0028 %   WITHOUT ANY WARRANTY; without even the implied warranty of
0029 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0030 %   General Public License for more details.
0031 %
0032 % You should have received a copy of the GNU General Public License along
0033 %   with this program.  If not, see <http://www.gnu.org/licenses/>.
0034 
0035 %! ToDo: this function should be named computeExtendedEmbedding, now. This
0036 %    also changes the name of the private function.
0037 
0038 %% input handling
0039 if ~exist('zerotol', 'var') || isempty(zerotol)
0040     zerotol = elkZerotol;
0041 end
0042 if ~dec.isProper || ~dec.isOrdinary
0043     error('elk:decomposition:inputError', ['Handling of improper or ' ...
0044         'singular input data is not supported.'])
0045 end
0046 
0047 % copy original data
0048 esDec.originalData = dec;
0049 
0050 %% Extended H-representation
0051 % find additional facets from pairwise Minkowski addition of structuring
0052 %   elements. This creates a new embedding H-representation.
0053 esDec.originalData.newFacetNormalMatrix = computeAdditionalFacetMatrix(...
0054     dec, zerotol);
0055 esDec.A = [dec.A; esDec.originalData.newFacetNormalMatrix];
0056 esDec.nH = size(esDec.A, 1);
0057 
0058 %% Extended Hc-representation
0059 % identify which subdomain is spanned by the structuring elements of the
0060 %   original Hc-representation. We obtain a new Hc-representation that
0061 %   might be called extended embedding (since it is not proper but will be
0062 %   used as the embedding representation for an approximation).
0063 esDec = computeExtendedEmbedding(esDec, zerotol);
0064 % add mapping information
0065 esDec = addUnifyingMappingData(esDec);
0066 % assign measure information again (recomputation of al measures)
0067 esDec = recomputeMeasureData(esDec, esDec.originalData);
0068

Generated on Sat 18-Jul-2015 16:45:31 by m2html © 2005