Macaulay2 Engine
Loading...
Searching...
No Matches

◆ IM2_MonomialOrdering_to_string()

M2_string IM2_MonomialOrdering_to_string ( const MonomialOrdering * mo)

Definition at line 746 of file monomial-ordering.cpp.

747{
748 int i;
749 const int N = 200;
750 char s[N];
751 int p_ones = 0;
752 M2_string result = M2_tostring("MonomialOrder => {");
753 for (i = 0; i < mo->len; i++)
754 {
755 mon_part p = mo->array[i];
756 p_ones = 0;
757 if (i == 0)
758 result = M2_join(result, M2_tostring("\n "));
759 else
760 result = M2_join(result, M2_tostring(",\n "));
761 switch (p->type)
762 {
763 case MO_LEX:
764 snprintf(s, N, "Lex => %d", p->nvars);
765 break;
766 case MO_LEX2:
767 snprintf(s, N, "LexSmall => %d", p->nvars);
768 break;
769 case MO_LEX4:
770 snprintf(s, N, "LexTiny => %d", p->nvars);
771 break;
772 case MO_GREVLEX:
773 snprintf(s, N, "GRevLex => ");
774 p_ones = 1;
775 break;
776 case MO_GREVLEX2:
777 snprintf(s, N, "GRevLexSmall => ");
778 p_ones = 1;
779 break;
780 case MO_GREVLEX4:
781 snprintf(s, N, "GRevLexTiny => ");
782 p_ones = 1;
783 break;
784 case MO_GREVLEX_WTS:
785 snprintf(s, N, "GRevLex => ");
786 break;
787 case MO_GREVLEX2_WTS:
788 snprintf(s, N, "GRevLexSmall => ");
789 break;
790 case MO_GREVLEX4_WTS:
791 snprintf(s, N, "GRevLexTiny => ");
792 break;
793 case MO_REVLEX:
794 snprintf(s, N, "RevLex => %d", p->nvars);
795 break;
796 case MO_WEIGHTS:
797 snprintf(s, N, "Weights => ");
798 break;
799 case MO_LAURENT:
800 snprintf(s, N, "GroupLex => %d", p->nvars);
801 break;
803 snprintf(s, N, "GroupRevLex => %d", p->nvars);
804 break;
805 case MO_NC_LEX:
806 snprintf(s, N, "NCLex => %d", p->nvars);
807 break;
808 case MO_POSITION_UP:
809 snprintf(s, N, "Position => Up");
810 break;
811 case MO_POSITION_DOWN:
812 snprintf(s, N, "Position => Down");
813 break;
814 default:
815 snprintf(s, N, "UNKNOWN");
816 break;
817 }
819 if (p->wts != nullptr)
820 result = M2_join(result, intarray_to_string(p->nvars, p->wts));
821 else if (p_ones)
823 }
824 result = M2_join(result, M2_tostring("\n }"));
825 return result;
826}
int p
void size_t s
Definition m2-mem.cpp:271
VALGRIND_MAKE_MEM_DEFINED & result(result)
M2_string M2_tostring(const char *s)
Definition m2-types.cpp:31
M2_string M2_join(M2_string x, M2_string y)
Definition m2-types.cpp:21
M2_string ones_to_string(int len)
M2_string intarray_to_string(int len, int *p)
@ MO_GREVLEX4_WTS
@ MO_LAURENT_REVLEX
@ MO_NC_LEX
@ MO_LEX4
@ MO_REVLEX
@ MO_POSITION_UP
@ MO_LEX
@ MO_GREVLEX
@ MO_LEX2
@ MO_GREVLEX4
@ MO_LAURENT
@ MO_GREVLEX2_WTS
@ MO_WEIGHTS
@ MO_POSITION_DOWN
@ MO_GREVLEX2
@ MO_GREVLEX_WTS

References MonomialOrdering::array, intarray_to_string(), MonomialOrdering::len, M2_join(), M2_tostring(), MO_GREVLEX, MO_GREVLEX2, MO_GREVLEX2_WTS, MO_GREVLEX4, MO_GREVLEX4_WTS, MO_GREVLEX_WTS, MO_LAURENT, MO_LAURENT_REVLEX, MO_LEX, MO_LEX2, MO_LEX4, MO_NC_LEX, MO_POSITION_DOWN, MO_POSITION_UP, MO_REVLEX, MO_WEIGHTS, ones_to_string(), p, result(), and s.

Referenced by Monoid::text_out().