Documentation contents

atlas Library · Script File

misc.at

Source
atlas-scripts/misc.at (200 lines)
Definitions
54
Loads
Loaded by
modules.at simple_factors.at representations.at affine.at structure_constants.at

Definitions in source order

is_nonnegative

L4is_nonnegative (vec v) = bool
test if an integer is even, or a rational is an integer

also in this file at line 9

is_positive 2 overloads

L5is_positive (vec v) = bool
L8is_positive (ratvec v) = bool
test if a ratvec is in fact a vec (integers)

also defined in coherent_irreducible.at

is_nonnegative

L9is_nonnegative (ratvec v) = bool

also in this file at line 4

%

L12% (ParamPol P) = [(Split,Param)]
transform ParamPol into a list of (Split,Param) pairs; previously built-in

also defined in basic.at, extParamPol.at, polynomial.at

int_part

L15int_part (ParamPol P) = ParamPol
int_part and s_part of a ParamPol, s.t. P=int_part(P)+s*s_part(P)

also defined in basic.at, K_types.at

s_part

L16s_part (ParamPol P) = ParamPol

also defined in basic.at, K_types.at

param

L19param(RealForm G,int k, vec lambda_rho,ratvec nu) = Param
simpler syntax for param command: param(G,3,...) for param(KGB(G,3),...)

finalize

L24finalize (Param p) = ParamPol
replace non-final parameter with ParamPol
this function used to return a [Param] instead, with coefficients ignored

also in this file at line 29

Finalize

L26Finalize(Param p) = Param

finalize

L29finalize ([Param] P) = ParamPol
will fail on an empty list

also in this file at line 24

# 3 overloads

L34#(Split w,int t)
evaluate at s=t for t integer (or rational?): replace w=a+bs with a+bt
would seem to make sense only if t^2=1, so if either t=1 or t=-1
L35#(Split w,rat t)
L36#(ParamPol P,int t) = ParamPol
with integer coefficients

also defined in basic.at, W_reps.at, cells.at

properties of groups
L39

fiber_partition

L41fiber_partition(RealForm G) = [int]

ss_rank

L43ss_rank (RootDatum rd)

also defined in affine.at

root_length

L45root_length(RootDatum rd,vec alpha) = int

is_simple_root

L46is_simple_root(RootDatum rd,[int] alpha) = bool

simple_imaginary_subsystem

L48simple_imaginary_subsystem (KGBElt x) = (mat,mat)
simple (co)roots

simple_real_subsystem

L51simple_real_subsystem (KGBElt x) = (mat,mat)
simple (co)roots

to_binary

L54to_binary (int length, int n) = vec

generate_all_binary

L58generate_all_binary = (int->[vec])

generate_all_subsets 3 overloads

L61generate_all_subsets = ([int]->[[int]])
generate all subsets of a set of integers
L64generate_all_subsets([vec] S) = [[vec]]
generate all subsets of a set of vectors
L68generate_all_subsets([ratvec] S) = [[ratvec]]
all 2^n subsets of a set of rational vectors

is_proper_subset

L72is_proper_subset(vec A,vec B) = bool
A is a proper subset of B

also defined in parameters.at

complement

L76complement([Param] A,[Param] B) = [Param]
complement of A in B

also defined in basic.at, parameters.at

prettyPrint 2 overloads

L80prettyPrint (Split w) = string
nicer display of Splits
L93prettyPrint (ParamPol P) = void
nice output of ParamPol:
prettyPrint the coefficients, print terms in order of x

box 2 overloads

L98rec_fun box(int height, int rank) = [[int]]
Cartesian power (#height)^rank, lists of length rank of numbers <height
converted from [vec] to [[int]]
L102rec_fun box([int] heights) = [[int]]
Cartesian product (#heights[0])*(#heights[1])*...*(heights~[0])
converted

flatten

L104flatten = ## @ [[int]]

delete_trailing_zeros

L107delete_trailing_zeros([int] list) = [int]
delete trailing zeros, a.k.a. |strip_to_partition| from combinatorics.at

delete_leading_zeros

L110delete_leading_zeros([int] list) = [int]
more basic functions involving roots
L113

not_a_root 2 overloads

L116not_a_root(RootDatum rd,vec v) = bool
for logical convenience
L117not_a_root(RootDatum rd) = (vec -> bool)

all_root_index 2 overloads

L120all_root_index(RootDatum rd,vec alpha) = int
index of root in list of all roots
L121all_root_index(RootDatum rd) = (vec -> int)

also defined in tits_centralizer.at

simple_root_index 2 overloads

L124simple_root_index(RootDatum rd,vec alpha) = int
index of root in list of simple roots
L125simple_root_index(RootDatum rd) = (vec -> int)

pm_simple_root_index 2 overloads

L130pm_simple_root_index(RootDatum rd,vec alpha) = int
return 0...n-1=simple root index of alpha (if positive simple) or -alpha (if negative simple)
or -1 to indicate an error
L132pm_simple_root_index(RootDatum rd) = (vec -> int)

sgn 2 overloads

L135sgn(RootDatum rd,vec alpha) = int
sgn(alpha)alpha is positive
L138sgn(RootDatum rd) = (vec->int)

also defined in Weylgroup.at

height 2 overloads

L143height(RootDatum rd,vec alpha) = int
alpha>0: height(alpha)=sum of coefficients of simple roots
alpha<0: height(alpha)=height(-alpha)(
L146height(RootDatum rd) = (vec->int)

also defined in basic.at

roots_of_height

L149roots_of_height(RootDatum rd,int height) = [vec]
list roots of given height

max_height

L152max_height(RootDatum rd) = int

also defined in basic.at

roots_by_height

L156roots_by_height(RootDatum rd) = [[vec]]
all roots, sorted by height

root_string 2 overloads

L168root_string(RootDatum rd, vec beta, vec alpha) = (int,int)
return (p,q) where
alpha+p\beta is a root (maximal such p)
alpha-q\beta is a root (maximal such q)
set root_string(RootDatum rd, vec alpha, vec beta)=(int,int):
assert(not alpha=-beta,"alpha=-beta");
let x = first(for i:4 do  not is_root(rd,alpha+i*beta) od) then
y = first(for i:4 do not  is_root(rd,alpha-i*beta) od) in (x-1,y-1)
L173root_string(RootDatum rd) = ((vec,vec)->(int,int))

posroot_as_sum_of_simple

L176posroot_as_sum_of_simple (RootDatum rd,vec alpha) = [vec]
write a positive root as a sum of simple roots

root_as_sum_of_simple

L184root_as_sum_of_simple(RootDatum rd,vec alpha) = [vec]
write any root as sum of simple or sum of (-simple)

simple_root_summand

L197simple_root_summand(RootDatum rd,vec alpha) = vec
alpha>0: return alpha_1  (alpha_1 simple) so alpha= alpha_1+(other simple roots...)
alpha<0: return -alpha_1 (alpha_1 simple) so alpha=-alpha_1-(other simple roots...)

Generated from atlas-scripts at commit 648506c (2026-10-13).