File: poisson.mac

package info (click to toggle)
maxima 5.49.0%2Bdsfg-1
  • links: PTS
  • area: main
  • in suites:
  • size: 128,932 kB
  • sloc: lisp: 437,845; fortran: 14,665; tcl: 10,143; sh: 4,598; makefile: 2,206; ansic: 447; java: 374; python: 262; perl: 201; xml: 60; awk: 28; sed: 15; javascript: 2
file content (22 lines) | stat: -rw-r--r-- 705 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* written by Furuya <go.maxima@gmail.com> 
#  This program 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 2 of the License, or           
#  (at your option) any later version.                
*/

/* need to do load("diag") */
/* poisson braket operator */

p_braket(_f,_g):= block([_x,_a,_b,_j,_jj:[],basis ],
	mode_declare([_x,_a,_b],any),
	basis:[],
	for i:1 thru dim do (
	basis:endcons('basis[i],basis)
	),
	_x:coefmatrix([d(_f)],basis),
	_j:matrix([0,1],[-1,0]),
	for i:1 thru dim/2 do (
	_jj:cons(_j,_jj)),
	_b:(_x.diag(_jj)).basis,
	inner(d(_g),_b));