This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A321620 #53 Apr 29 2022 03:00:09 %S A321620 1,1,1,0,1,1,1,1,1,1,1,3,2,1,1,3,5,5,3,1,1,6,13,10,7,4,1,1,15,29,26, %T A321620 16,9,5,1,1,36,73,61,42,23,11,6,1,1,91,181,157,103,61,31,13,7,1,1,232, %U A321620 465,398,271,156,83,40,15,8,1,1,603,1205,1040,702,419,221,108,50,17,9,1,1 %N A321620 The Riordan square of the Riordan numbers, triangle read by rows, T(n, k) for 0 <= k <= n. %C A321620 If gf is a generating function of the sequence a then by the 'Riordan square of a' we understand the integer triangle given by the Riordan array (gf, gf). This mapping can be seen as an operator RS: Z[[x]] -> Mat[Z]. %C A321620 For instance A039599 is the Riordan square of the Catalan numbers, A172094 is the Riordan square of the little Schröder numbers and A063967 is the Riordan square of the Fibonacci numbers. The Riordan square of the simplest sequence of positive numbers (A000012) is the Pascal triangle. %C A321620 The generating functions used are listed in the table below. They may differ slightly from those defined elsewhere in order to ensure that RS(a) is invertible (as a matrix). We understand this as a kind of normalization. %C A321620 --------------------------------------------------------------------------- %C A321620 Sequence a | RS(a) | gf(a) %C A321620 --------------------------------------------------------------------------- %C A321620 Catalan | A039599 | (1 - sqrt(1 - 4*x))/(2*x). %C A321620 1, Riordan | A321620 | 1 + 2*x/(1 + x + sqrt(1 - 2*x - 3*x^2)). %C A321620 Motzkin | A321621 | (1 - x - sqrt(1 - 2*x - 3*x^2))/(2*x^2). %C A321620 Fine | A321622 | 1 + (1 - sqrt(1 - 4*x))/(3 - sqrt(1 - 4*x)). %C A321620 large Schröder | A321623 | (1 - x - sqrt(1 - 6*x + x^2))/(2*x). %C A321620 little Schröder | A172094 | (1 + x - sqrt(1 - 6*x + x^2))/(4*x). %C A321620 Lucas | A321624 | 1 + x*(1 + 2*x)/(1 - x - x^2). %C A321620 swinging factorial | A321625 | (1 + x/(1 - 4*x^2))/sqrt(1 - 4*x^2). %C A321620 ternary trees ||A109956|| u = sqrt(x*3/4); sin(arcsin(3*u)/3)/u. %C A321620 central trinomial | A116392 | 1/sqrt(1 - 2*x - 3*x^2) %C A321620 Bell | A154380 | Sum_{k>=0} x^k/Product_{j=1..k}(1 - j*x). %C A321620 (2*n-1)!! | A321627 | 1/(1-x/(1-2*x/(1-3*x/(1-4*x/(1-5*x/... %C A321620 powers of 2 | A038208 | 1/(1 - 2*x). %C A321620 the all 1's seq. | A007318 | 1/(1 - x). %C A321620 Fibonacci | A063967 | 1/(1 - x - x^2). %C A321620 tribonacci | A187889 | 1/(1 - x - x^2 - x^3). %C A321620 tetranacci | A353593 | 1/(1 - x - x^2 - x^3 - x^4). %C A321620 Jacobsthal | A322942 | (2*x^2-1)/((x + 1)*(2*x - 1)) %H A321620 Peter Luschny, <a href="http://luschny.de/math/seq/RiordanSquare.html">The Riordan Square Transform</a>, 2018. %F A321620 Given a generating function g and an positive integer N compute the Taylor expansion at the origin t(k) = [x^k] g(x) for k in [0...N-1] and set T(n, 0) = t(n) for n in [0...N-1]. Then compute T(m, k) = Sum_{j in [k-1...m-1]} T(j, k - 1) t(m - j) for k in [1...N-1] and for m in [k...N-1]. The resulting (0, 0)-based lower triangular array is the Riordan square generated by g. %e A321620 The triangle starts: %e A321620 [ 0] 1 %e A321620 [ 1] 1 1 %e A321620 [ 2] 0 1 1 %e A321620 [ 3] 1 1 1 1 %e A321620 [ 4] 1 3 2 1 1 %e A321620 [ 5] 3 5 5 3 1 1 %e A321620 [ 6] 6 13 10 7 4 1 1 %e A321620 [ 7] 15 29 26 16 9 5 1 1 %e A321620 [ 8] 36 73 61 42 23 11 6 1 1 %e A321620 [ 9] 91 181 157 103 61 31 13 7 1 1 %e A321620 [10] 232 465 398 271 156 83 40 15 8 1 1 %p A321620 RiordanSquare := proc(d, n, exp:=false) local td, M, k, m, u, j; %p A321620 series(d, x, n+1); td := [seq(coeff(%, x, j), j = 0..n)]; %p A321620 M := Matrix(n); for k from 1 to n do M[k, 1] := td[k] od; %p A321620 for k from 1 to n-1 do for m from k to n-1 do %p A321620 M[m+1, k+1] := add(M[j, k]*td[m-j+2], j = k..m) od od; %p A321620 if exp then u := 1; %p A321620 for k from 1 to n-1 do u := u * k; %p A321620 for m from 1 to k do j := `if`(m = 1, u, j/(m-1)); %p A321620 M[k+1, m] := M[k+1, m] * j od od fi; %p A321620 M end: %p A321620 RiordanSquare(1 + 2*x/(1 + x + sqrt(1 - 2*x - 3*x^2)), 8); %t A321620 RiordanSquare[gf_, len_] := Module[{T}, T[n_, k_] := T[n, k] = If[k == 0, SeriesCoefficient[gf, {x, 0, n}], Sum[T[j, k-1] T[n-j, 0], {j, k-1, n-1}]]; Table[T[n, k], {n, 0, len-1}, {k, 0, n}]]; %t A321620 M = RiordanSquare[1 + 2x/(1 + x + Sqrt[1 - 2x - 3x^2]), 12]; %t A321620 M // Flatten (* _Jean-François Alcover_, Nov 24 2018 *) %o A321620 (Sage) # uses[riordan_array from A256893] %o A321620 def riordan_square(gf, len, exp=false): %o A321620 return riordan_array(gf, gf, len, exp) %o A321620 riordan_square(1 + 2*x/(1 + x + sqrt(1 - 2*x - 3*x^2)), 10) %o A321620 # Alternatively, given a list S: %o A321620 def riordan_square_array(S): %o A321620 N = len(S) %o A321620 M = matrix(ZZ, N, N) %o A321620 for n in (0..N-1): M[n, 0] = S[n] %o A321620 for k in (1..N-1): %o A321620 for m in (k..N-1): %o A321620 M[m, k] = sum(M[j, k-1]*S[m-j] for j in (k-1..m-1)) %o A321620 return M %o A321620 riordan_square_array([1, 1, 0, 1, 1, 3, 6, 15, 36]) # _Peter Luschny_, Apr 03 2020 %Y A321620 Row sums are A007971 and |A167022| shifted one place left. %Y A321620 Cf. A039599, A321621, A321622, A321624, A172094, A321623, A321624, A321625, A109956, A154380, A038208, A007318, A063967, A187889, A321629, A322942, A236376. %K A321620 nonn,tabl %O A321620 0,12 %A A321620 _Peter Luschny_, Nov 15 2018