I believe this issue is due to the fact that most of the IR*.m files in the IRtools folder got updated relatively recently, but they depend on some IR*.m files in the Extras folder that were not updated. Not sure if you found your own temp fixes by now, but what I found to work on some similar issues was to add the following snippets to a few files:
IRoption_fields.m
at line 71, but really could go anywhere in the allfields
cell:
'warmrestart';
'SparsityTrans';
'wname';
'wlevels';
'discrflatTol';
IRset.m
at line 287 (again could be anywhere in the switch):
case {'warmrestart'} % off, on
[validvalue, errmsg] = onOffType(field,value);
case {'SparsityTrans'} % none, dwt
[validvalue, errmsg] = sparsityTransType(field,value);
case {'wname'} % db1 default, probably others...
[validvalue, errmsg] = wnameType(field,value);
case {'wlevels'} % probably a positive value?
[validvalue, errmsg] = nonNegscalar(field,value);
case {'discrflatTol'} % probably a positive value?
and then also the newly defined functions for sparsity and wname that I threw at the end of the file:
%------------------------------------------------------------------------
function [valid, errmsg] = sparsityTransType(field,value)
% One of these strings: none, dwt
valid = (ischar(value) && any(strcmpi(value,{'none';'dwt'})));
if ~valid
errmsg = sprintf('Invalid value for OPTIONS parameter %s: must be ''dwt'' or ''none''.',field);
else
errmsg = '';
end
%------------------------------------------------------------------------
function [valid, errmsg] = wnameType(field,value)
% One of these strings: none, dwt
valid = (ischar(value) && any(strcmpi(value,{'none';'db1'})));
if ~valid
errmsg = sprintf('Invalid value for OPTIONS parameter %s: must be ''db1''.',field);
else
errmsg = '';
end
I'm sure there's other things missing, but this at least has me up and running so far.
Originally posted by @jjwadams in https://github.com/jnagy1/IRtools/issue_comments/613685418
The solution suggested above fixed a number of the solvers for me. However remaining issues:
IRell1 - Least squares solver with 1-norm penalization term - Issue with discflatTol & hybridvarient
IRfista - FISTA algorithm for constrained least squares problems Issue with 'shrink' in options
IRconstr_ls also didn't run without the manual fix suggested in the quoted text,
IRhtv again didn't run because of missing warmrestart