Annotation of OpenXM/src/ox_toolkit/README, Revision 1.1
1.1 ! ohara 1: # Author: 小原功任 @ 金沢大学理学部計算科学教室
! 2: # URI: http://omega.s.kanazawa-u.ac.jp/ohara/
! 3: # $OpenXM$
! 4:
! 5: ☆ libox.a マニュアル。
! 6:
! 7: libox.a を利用するには次のヘッダファイルをインクルードする必要があります。
! 8:
! 9: #include <oxtag.h>
! 10: #include <ox.h>
! 11: #include <parse.h>
! 12:
! 13: 各構造体および関数の宣言はそれぞれのヘッダファイルを見てください。
! 14: ここでは基本的な考え方について説明します。
! 15:
! 16: まず、すべての CMO データはそのデータ型に対応した new 関数によって生成
! 17: します。たとえば CMO_ZZ 型のオブジェクトは new_cmo_zz() 関数によって生
! 18: 成されます。
! 19:
! 20: CMO データを送受信するには、CMO の種類によらず send_cmo(),
! 21: receive_cmo() を用います。これらの関数は OX ヘッダを扱いませんので、OX
! 22: メッセージを送受信するときには send_ox_tag(), receive_ox_tag() をその
! 23: 前に呼ぶ必要があります。
! 24:
! 25:
! 26: ☆ CMO オブジェクト
! 27: 次のデータ型(構造体)が用意されている。
! 28:
! 29: cmo
! 30: cmo_null
! 31: cmo_int32
! 32: cmo_datum
! 33: cmo_string
! 34: cmo_mathcap
! 35: cmo_list
! 36: cmo_monomial32
! 37: cmo_zz
! 38: cmo_qq
! 39: cmo_zero
! 40: cmo_dms_generic
! 41: cmo_ring_by_name
! 42: cmo_distributed_polynomial
! 43: cmo_indeterminate
! 44: cmo_error2
! 45:
! 46: このうち cmo 型はいわば抽象基底クラスに相当するものであり、この型のオ
! 47: ブジェクトをつくってはいけない。また cmo_distributed_polynomial は
! 48: cmo_list の派生クラスであると思ってもよい。ユーザはオブジェクトの実体を
! 49: 直接扱ってはならない。必ず、new_... 関数、すなわち
! 50:
! 51: new_cmo_null();
! 52: new_cmo_int32(int i);
! 53: new_cmo_string(char* s);
! 54: new_cmo_mathcap(cmo* ob);
! 55: new_cmo_list();
! 56: new_cmo_monomial32();
! 57: new_cmo_monomial32_size(int size);
! 58: new_cmo_zz();
! 59: new_cmo_zz_size(int size);
! 60: new_cmo_zz_set_si(int integer);
! 61: new_cmo_zz_noinit();
! 62: new_cmo_zero();
! 63: new_cmo_distributed_polynomial();
! 64: new_cmo_dms_generic();
! 65: new_cmo_ring_by_name(cmo* ob);
! 66: new_cmo_indeterminate(cmo* ob);
! 67: new_cmo_error2(cmo* ob);
! 68:
! 69: によってオブジェクトを生成し、ユーザはポインタのみを扱うこと。
! 70:
! 71: ☆ OX オブジェクト
! 72: 次のデータ型(構造体)が用意されている。
! 73:
! 74: ox
! 75: ox_command
! 76: ox_data
! 77:
! 78: このうち、ox 型は抽象基底クラスなので、オブジェクトをつくってはいけない。
! 79:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>