diff --git a/.gitignore b/.gitignore index 9874cac..18b1b88 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ kernel/matrixfree/.svn *.o temp *. +*.asv \ No newline at end of file diff --git a/kernel/distances/NCCmexC.mexw64 b/kernel/distances/NCCmexC.mexw64 new file mode 100755 index 0000000..5834aa2 Binary files /dev/null and b/kernel/distances/NCCmexC.mexw64 differ diff --git a/kernel/distances/NGFdotMexC.mexw64 b/kernel/distances/NGFdotMexC.mexw64 new file mode 100755 index 0000000..a575ed4 Binary files /dev/null and b/kernel/distances/NGFdotMexC.mexw64 differ diff --git a/kernel/distances/SSDmexC.mexw64 b/kernel/distances/SSDmexC.mexw64 new file mode 100755 index 0000000..e76bd7d Binary files /dev/null and b/kernel/distances/SSDmexC.mexw64 differ diff --git a/kernel/distances/rhoSplineC.mexw64 b/kernel/distances/rhoSplineC.mexw64 new file mode 100755 index 0000000..44e4ba0 Binary files /dev/null and b/kernel/distances/rhoSplineC.mexw64 differ diff --git a/kernel/distances/testDistances.m b/kernel/distances/testDistances.m index dc09e07..620bfec 100644 --- a/kernel/distances/testDistances.m +++ b/kernel/distances/testDistances.m @@ -5,7 +5,8 @@ % - https://github.com/C4IR and % - http://www.siam.org/books/fa06/ %============================================================================== -% This is a testing environment for the files in the folder kernel/data +% This is a testing environment for the files in the folder +% kernel/distances % 1. Based on data/contents, a list of required files is generated and it % is verified, that all files are present; additional files are listed. % 2. All c-files are compiled. diff --git a/kernel/imgModels/linearInterMexC.mexw64 b/kernel/imgModels/linearInterMexC.mexw64 new file mode 100755 index 0000000..db3a563 Binary files /dev/null and b/kernel/imgModels/linearInterMexC.mexw64 differ diff --git a/kernel/imgModels/linearInterSmoothMexC.mexw64 b/kernel/imgModels/linearInterSmoothMexC.mexw64 new file mode 100755 index 0000000..fcc8bb3 Binary files /dev/null and b/kernel/imgModels/linearInterSmoothMexC.mexw64 differ diff --git a/kernel/imgModels/nnInterMexC.mexw64 b/kernel/imgModels/nnInterMexC.mexw64 new file mode 100755 index 0000000..1e10b18 Binary files /dev/null and b/kernel/imgModels/nnInterMexC.mexw64 differ diff --git a/kernel/imgModels/splineInterMexC.mexw64 b/kernel/imgModels/splineInterMexC.mexw64 new file mode 100755 index 0000000..f29dbd3 Binary files /dev/null and b/kernel/imgModels/splineInterMexC.mexw64 differ diff --git a/kernel/imgModels/testOneImgModel.m b/kernel/imgModels/testOneImgModel.m index 5c0bb76..659d9e0 100644 --- a/kernel/imgModels/testOneImgModel.m +++ b/kernel/imgModels/testOneImgModel.m @@ -29,10 +29,10 @@ function testOneImgModel(file) coeff = @(Tdata,dim) getSplineCoefficients(Tdata,'dim',dim); end -fprintf(2,'%s: test implementation of <%s>, run minimal examples\n',... +fprintf(1,'%s: test implementation of <%s>, run minimal examples\n',... mfilename,file) -fprintf(2,'check <%s> on 1D example\n',file); +fprintf(1,'check <%s> on 1D example\n',file); Tdata = [0,1,4,1,0]; omega = [0,10]; m = length(Tdata); @@ -51,7 +51,7 @@ function testOneImgModel(file) title('dT') -fprintf(2,'check <%s> on 2D example\n',mfilename); +fprintf(1,'check <%s> on 2D example\n',mfilename); omega = [0,10,0,8]; Tdata = [1,2,3,4;1,2,3,4;4,4,4,4]; m = size(Tdata); Tcoef = coeff(Tdata,2); @@ -69,7 +69,7 @@ function testOneImgModel(file) title('dT') -fprintf(2,'check <%s> on 3D example\n',mfilename); +fprintf(1,'check <%s> on 3D example\n',mfilename); omega = [0,1,0,2,0,1]; m = [13,16,7]; Xdata = getCellCenteredGrid(omega,m); Y = reshape(Xdata,[m,3]); @@ -84,7 +84,7 @@ function testOneImgModel(file) subplot(1,2,2); spy(dT); title('dT') -fprintf(2,'run derivative test for <%s> (note: needs to fail)\n',mfilename); +fprintf(1,'run derivative test for <%s> (note: needs to fail)\n',mfilename); fctn = @(xc) feval(file,Tcoef,omega,xc); xc = xc + rand(size(xc)); FAIRfigure(4); diff --git a/kernel/landmarks/TPSmexC.mexw64 b/kernel/landmarks/TPSmexC.mexw64 new file mode 100755 index 0000000..92b2571 Binary files /dev/null and b/kernel/landmarks/TPSmexC.mexw64 differ diff --git a/kernel/landmarks/testLandmarks.m b/kernel/landmarks/testLandmarks.m index ce21514..8bd0431 100644 --- a/kernel/landmarks/testLandmarks.m +++ b/kernel/landmarks/testLandmarks.m @@ -5,7 +5,8 @@ % - https://github.com/C4IR and % - http://www.siam.org/books/fa06/ %============================================================================== -% This is a testing environment for the files in the folder kernel/data +% This is a testing environment for the files in the folder +% kernel/landmarks % 1. Based on data/contents, a list of required files is generated and it % is verified, that all files are present; additional files are listed. % 2. All c-files are compiled. diff --git a/kernel/numerics/checkDerivative.m b/kernel/numerics/checkDerivative.m index 86ad45e..105b6f5 100644 --- a/kernel/numerics/checkDerivative.m +++ b/kernel/numerics/checkDerivative.m @@ -58,6 +58,7 @@ dvf = df*v; elseif isa(df,'function_handle'), dvf = df(v); + if isrow(dvf); dvf = dvf'; end; else keyboard; end; diff --git a/kernel/numerics/nodal2centerC.mexw64 b/kernel/numerics/nodal2centerC.mexw64 new file mode 100755 index 0000000..89e3da9 Binary files /dev/null and b/kernel/numerics/nodal2centerC.mexw64 differ diff --git a/kernel/regularizers/curvatureDiagMex.mexw64 b/kernel/regularizers/curvatureDiagMex.mexw64 new file mode 100755 index 0000000..8a61f33 Binary files /dev/null and b/kernel/regularizers/curvatureDiagMex.mexw64 differ diff --git a/kernel/regularizers/curvatureHessianMex.mexw64 b/kernel/regularizers/curvatureHessianMex.mexw64 new file mode 100755 index 0000000..712599b Binary files /dev/null and b/kernel/regularizers/curvatureHessianMex.mexw64 differ diff --git a/kernel/regularizers/curvatureMexC.mexw64 b/kernel/regularizers/curvatureMexC.mexw64 new file mode 100755 index 0000000..1379d84 Binary files /dev/null and b/kernel/regularizers/curvatureMexC.mexw64 differ diff --git a/kernel/regularizers/geometryMexC.mexw64 b/kernel/regularizers/geometryMexC.mexw64 new file mode 100755 index 0000000..d53e567 Binary files /dev/null and b/kernel/regularizers/geometryMexC.mexw64 differ diff --git a/kernel/regularizers/testRegularizers.m b/kernel/regularizers/testRegularizers.m index ec27336..5d8590c 100644 --- a/kernel/regularizers/testRegularizers.m +++ b/kernel/regularizers/testRegularizers.m @@ -5,8 +5,9 @@ % - https://github.com/C4IR and % - http://www.siam.org/books/fa06/ %============================================================================== -% This is a testing environment for the files in the folder kernel/data -% 1. Based on data/contents, a list of required files is generated and it +% This is a testing environment for the files in the folder +% kernel/regularizers +% 1. Based on regularizers/contents.m, a list of required files is generated and it % is verified, that all files are present; additional files are listed. % 2. All c-files are compiled. % 3. All files are executed. @@ -149,7 +150,7 @@ 'significant difference between matrix-based and matrix free code'); % test dericatives - fprintf('test deivative of [%s]\n',regularizer); + fprintf('test derivative of [%s]\n',regularizer); fctn = @(Y) regularizer(Y,omega,m); checkDerivative(fctn,Y); diff --git a/kernel/tools/FAIRcheckFiles.m b/kernel/tools/FAIRcheckFiles.m index e806dbe..10edd80 100644 --- a/kernel/tools/FAIRcheckFiles.m +++ b/kernel/tools/FAIRcheckFiles.m @@ -60,7 +60,7 @@ function FAIRcheckFiles(caller) %------------------------------------------------------------------------------ % main loop, run over all files %------------------------------------------------------------------------------ - +mexall = mexext('all'); for j=1:length(FAIRtestStatus.(caller)) name = FAIRtestStatus.(caller)(j).name; check = FAIRtestStatus.(caller)(j).check; @@ -80,10 +80,10 @@ function FAIRcheckFiles(caller) case '.m', OK = 1; if strcmp(FAIRtestStatus.('FAIRrun'),'on'), - OK = FAIReval(FAIRtestStatus.(caller)(j).name); + OK = FAIReval(name); end; - if strcmp(FAIRtestStatus.('FAIRedit'),'on') || not(OK), - FAIRopen(FAIRtestStatus.(caller)(j).name); + if strcmp(FAIRtestStatus.('FAIRedit'),'on') || OK==0, + FAIRopen(name); end; case {'.cpp','.c'}, if strcmp(FAIRtestStatus.('FAIRcompile'),'on'), @@ -91,10 +91,10 @@ function FAIRcheckFiles(caller) else OK = 1; end; - case {'.h','.o',lower(['.',mexext])}, + case {'.h','.o'}, OK = 1; - case {'.mexa64'}, + case strcat({'.'}, {mexall.ext}), OK = 3; @@ -111,10 +111,10 @@ function FAIRcheckFiles(caller) J = find([FAIRtestStatus.(caller)(:).check] <= 0); if length(J)>0, - fprintf('none performimg files:\n'); + fprintf('non-performing files:\n'); for j=J fprintf(' - %4d-of-%4d %-30s\n',... - j,length(J),FAIRtestStatus.(caller)(j).name); + j,length(FAIRtestStatus.(caller)),FAIRtestStatus.(caller)(j).name); end; end; @@ -148,7 +148,7 @@ function FAIRcheckFiles(caller) eval(sprintf('dbclear in %s',file)) run(file); OK = 1; -catch +catch e fprintf('file does not run without errors\n'); OK = -10; end; diff --git a/kernel/tools/FAIRcheckFolder.m b/kernel/tools/FAIRcheckFolder.m old mode 100644 new mode 100755 index 81ddaca..e7e713f --- a/kernel/tools/FAIRcheckFolder.m +++ b/kernel/tools/FAIRcheckFolder.m @@ -95,9 +95,10 @@ % % if strcmp(FAIRignoreCompiles,'on') % ignore = zeros(length(credit),1); +% mexall = mexext('all'); % for k=1:length(credit) % [~,~,ext] = fileparts(credit{k}); -% ignore(k) = any(strcmp(ext,{'.o',['.',mexext]})); +% ignore(k) = any(strcmp(ext,[{'.o'},strcat({'.'}, {mexall.ext})])); % end; % credit(find(ignore)) = []; % end; @@ -113,7 +114,7 @@ % keyboard end; -% merge debit and andons, sort by type +% merge debit and addons, sort by type files = {debit{:},credit{:}}; ext = @(str) str(max(1,find(str=='.',1,'last')):end); extensions = cellfun(ext,files','UniformOutput',0)'; @@ -133,7 +134,8 @@ function [C,OK] = sortFiles(list) -ext = {'.cpp','.c','.h','.o',['.',mexext],'.mexa64','.mat','.jpg','.m'}; +mexall = mexext('all'); +ext = [{'.cpp','.c','.h','.o','.mat','.jpg','.m'}, strcat({'.'}, {mexall.ext})]; C = []; R = 1:length(list); for p=1:length(ext), K = find(strcmp(list,ext{p})); @@ -142,6 +144,6 @@ end; OK = isempty(R); for k=1:length(R) - fprintf(' - %d-of-%d, unknown extension [%s]\n',j,length(R),list{R(k)} ) + fprintf(' - %d-of-%d, unknown extension [%s]\n',k,length(R),list{R(k)} ) end; %============================================================================== diff --git a/kernel/tools/FAIRerror.m b/kernel/tools/FAIRerror.m new file mode 100755 index 0000000..6ddf8a9 --- /dev/null +++ b/kernel/tools/FAIRerror.m @@ -0,0 +1,18 @@ +function FAIRerror(err) + +if nargin == 0 + FAIRerror('nice error'); + return; +end + +fprintf(2,'\n\n ----- FAIRerror.m \n'); + +if ischar(err) + fprintf(2,'%s',err); +elseif isa(err,'MException') + fprintf(2,'%s - %s',err.identifier,err.message); +else + fprintf(2,'No clue, sry.'); +end + +fprintf(2,'\n ----- \n\n'); \ No newline at end of file diff --git a/kernel/transformations/splineTransformation2D.m b/kernel/transformations/splineTransformation2D.m index 6229c9a..0ecc17c 100644 --- a/kernel/transformations/splineTransformation2D.m +++ b/kernel/transformations/splineTransformation2D.m @@ -44,12 +44,12 @@ if isempty(w) || (size(Q,1) ~= numel(x)) || (size(Q,2) ~= numel(w)), % it is assumed that x is a cell centered grid, extract xi1 and xi2 - dim = size(omega,2)/2 - n = numel(x)/dim + dim = size(omega,2)/2; + n = numel(x)/dim; if n == prod(m) q = m; elseif n == prod(m+1) - q = m+1 + q = m+1; else error('can not handle this grid') end; diff --git a/kernel/viewers/testViewer.m b/kernel/viewers/testViewer.m index c039f3c..9f7f41c 100644 --- a/kernel/viewers/testViewer.m +++ b/kernel/viewers/testViewer.m @@ -5,7 +5,7 @@ % - https://github.com/C4IR and % - http://www.siam.org/books/fa06/ %============================================================================== -% This is a testing environment for the files in the folder kernel/viewer +% This is a testing environment for the files in the folder kernel/viewers % 1. Based on data/contents, a list of required files is generated and it % is verified, that all files are present; additional files are listed. % 2. All c-files are compiled.