-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsgwt_cheby_eval.m
More file actions
50 lines (42 loc) · 1.7 KB
/
sgwt_cheby_eval.m
File metadata and controls
50 lines (42 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
% sgwt_cheby_eval : Evaluate shifted Chebyshev polynomial on given domain
%
% function r=sgwt_cheby_eval(x,c,arange)
%
% Compute Chebyshev polynomial of laplacian applied to input.
% This is primarily for visualization
%
% Inputs:
% x - input values to evaluate polynomial on
% c - Chebyshev coefficients (c(1+j) is jth coefficient)
% arange - interval of approximation. Note that x need not be inside
% arange, but the polynomial will no longer be near the
% approximated function outside of arange.
% This file is part of the SGWT toolbox (Spectral Graph Wavelet Transform toolbox)
% Copyright (C) 2010, David K. Hammond.
%
% The SGWT toolbox is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% The SGWT toolbox is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with the SGWT toolbox. If not, see <http://www.gnu.org/licenses/>.
function r=sgwt_cheby_eval(x,c,arange)
% By setting the operator L to mean (pointwise) multiplication by x,
% and f to be vector of ones, p(L)f will contain p(x) at each
% point. This lets us use sgwt_cheby_op to evaluate the Chebyshev polynomials.
L=spdiags(x(:),0,speye(numel(x)));
f=ones(size(x(:)));
r=sgwt_cheby_op(f,L,c,arange);
if iscell(r)
for k=1:numel(r)
r{k}=reshape(r{k},size(x));
end
else
r=reshape(r,size(x));
end