File: symfcn.h

package info (click to toggle)
lrcalc 1.2-2~bpo8%2B1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-backports
  • size: 1,728 kB
  • sloc: sh: 11,110; ansic: 3,092; makefile: 27
file content (43 lines) | stat: -rw-r--r-- 1,058 bytes parent folder | download | duplicates (3)
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
#ifndef _SYMFCN_H
#define _SYMFCN_H

#include "hashtab.h"
#include "vector.h"

int part_itr_sz(vector *part);
int part_itr_sub(vector *part, vector *outer);
int part_itr_between(vector *part, vector *inner, vector *outer);

int part_length(vector *p);
vector *part_conjugate(vector *p);
int part_subset(vector *p1, vector *p2);

long long lrcoef(vector *outer, vector *inner1, vector *inner2);

hashtab *skew(vector *outer, vector *inner, int maxrows);
hashtab *mult(vector *sh1, vector *sh2, int maxrows);
hashtab *coprod(vector *part, int all);

hashtab *schur_lc_mult(hashtab *lc1, hashtab *lc2, int maxrows);

list *quantum_reduce(hashtab* s, int rows, int cols);
void fusion_reduce(hashtab *lc, int rows, int cols, int opt_zero);


typedef struct {
  vector *outer;
  vector *inner;
  vector *conts;
  int maxrows;
  vector *conjugate;
  int rows;
  int cols;
  int matrix[1];
} skewtab;

skewtab *st_new(vector *outer, vector *inner, vector *conts, int maxrows);
int st_next(skewtab *st);
void st_print(skewtab *st);
void st_free(skewtab *st);

#endif