annotate mononomial.m @ 1028:5df155ededcd feature/advectionRV

Remove obsolete AdvectionRV1D scheme
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Mon, 07 Jan 2019 16:41:21 +0100
parents 0090a86d8b72
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
770
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
1 % calculate a N-D mononomial with powers k in points x:
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
2 % z = x(:,1).^k(1) * x(:,2).^k(2) * ...
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
3 function z = mononomial(x, k)
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
4 assert(size(x,2) == length(k), 'k must have the same length as the width of x');
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
5
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
6 if any(k < 0)
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
7 z = x(:,1)*0;
660
184833fe4c0e Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 return
184833fe4c0e Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 end
770
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
10
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
11 denom = prod(factorial(k));
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
12
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
13 for i = 1:length(k)
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
14 x(:,i) = x(:,i).^k(i);
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
15 end
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
16 z = prod(x,2)/denom;
660
184833fe4c0e Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 end