[BACK]Return to beta.m CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_math / lib

File: [local] / OpenXM / src / ox_math / lib / beta.m (download)

Revision 1.2, Thu Jan 20 15:00:02 2000 UTC (24 years, 4 months ago) by ohara
Branch: MAIN
CVS Tags: maekawa-ipv6, R_1_3_1-2, RELEASE_20000124, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.1: +7 -23 lines

I add oxclient.m

(* $OpenXM: OpenXM/src/ox_math/lib/beta.m,v 1.2 2000/01/20 15:00:02 ohara Exp $ *)

(*
This program reuires asir programs beta, igraph, sets;
these files are in OpenXM/src/asir-contrib/packages/src/.
you must add load("beta") to your .asirrc.

usage:
$ math
Mathematica 3.0 for Linux
Copyright 1988-97 Wolfram Research, Inc.
 -- Motif graphics initialized -- 

In[1]:= <<beta.m
In[2]:= OxStart["ox_asir"]
In[3]:= betaNbcBasis[ {z-t, t, t-s, s, 1-s}, {t,s} ];
Out[3]= {{{t, -s + t}, {s}}, {{t}, {1 - s}}, {{-s + t}, {1 - s}}}

---
We explains output above.
the elements of ``Out[2]'' are a differntial form.
For example, {{t, -s + t}, {s}} means the following form:
( a_1 dlog(t) + a_2 dlog(-s+t) ) \wedge ( a_3 dlog(s) ),
where a_1, a_2, a_3 are exponents.
*)

toForm[polys_List, bnbc_List] := Module[
	{list1, list2, list3, i,j,k},
	list1 = {};
	For[i=1, i<=Length[bnbc], i++,
	   list2 = {};
	   For[j=1, j<=Length[bnbc[[i]]], j++,
		  list3 = {};
		  For[k=1, k<=Length[bnbc[[i]][[j]]], k++,
			 list3 = Append[list3, polys[[bnbc[[i]][[j]][[k]]]]];
			  ];
		  list2 = Append[list2, list3]
		   ];
	   list1 = Append[list1, list2]
		];
	list1
	]

betaNbcBasis[polys_List, vars_List] := Module[
	{s, arr, bnbc},
	arr = {polys, vars};
	order = Range[Length[polys]];
	s = StringJoin[	{"IG = igraph_getIGraph( ", asirRtostr[arr], " );"}];
	OxExecuteString[s];
	s = StringJoin[	{"Order = ", asirRtostr[order], ";"}];
	OxExecuteString[s];
	s = "BF = beta_betaNbcSet2forms(beta_getBetaNbcSet(IG, Order), IG, Order);";
	OxExecuteString[s];
	OxExecuteString["m_rtostr(BF);"];
	bnbc = ToExpression[OxPopString[]];
	toForm[polys, bnbc]
	]

Get[Environment["OpenXM_HOME"] <> "/lib/math/oxclient.m"]