Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  snd.c   Sprache: C

 
#include "defs.h"

#define NPT 32767
#define PSP 1000000
#define SVSP 400000
#define MP 1000
#define MB 80
#define SPACE 500000
#define MEXP 500
#define RISP 32767
#define PAR1 5
#define PAR2 5
#define PAR3 5
#define PAR4 500
/* SPACE is for cosetrep perms and various arrays defined by pointers
   RISP is size of one of these
   MEXP = max no of perms that can be stored as coset reps,
   PAR1,..,PAR4 are parameters used in search for Sylow-group.
*/


char cent, sym, opt, hgst, nop, chpar, syl, nonb[NPT], inf1[80], inf2[80],
    inf3[80], outf1[80], outf2[80];
/* If -s not called, identical to normd.c.
   If -s called inf1 defaults to gpname.sg
           and  inf2 to gpname.sylp
         outf1 becomes gpname.temp, used to store subgroup of sylp-group
         found so far,which is then used as inf2 input to normalizer program.
         This is removed when no longer needed.
*/

short mp = MP, mexp = MEXP, mb = MB - 1, mnpt = NPT, risp = RISP, par1 = PAR1,
      par2 = PAR2, par3 = PAR3, par4 = PAR4, perm[PSP], sv[SVSP],
      cp[10 * NPT], orb[1 + NPT], gbase[NPT], hbase[MB], obase[MB], nbase[MB],
      lorbg[NPT], lorbn[NPT], lorbh[MB], ntno[NPT], reg[NPT + 1], ntorno[NPT],
      tsv1[NPT + 1], tsv2[NPT + 1], tsv3[NPT + 1], genorb[NPT + 1],
      expcp[NPT], fp[MP], pno[MP / 2], start[NPT + 1], space[SPACE], ipno[MP],
      endorno[NPT], *pptr[MP], *svgptr[MB], *svhptr[MB], *svnptr[NPT],
      *intorb[MB], *horno[MB], *hlorb[MB], *expptr[MEXP], *imorno[MB],
      *imlorb[MB], *orbperm[MB], *deftime[MB], *regsv[MB], orep[NPT + 1],
      prime;
int psp = PSP, sp = SPACE, svsp = SVSP;

int main(int argc, char * argv[])
{
  short arg, x;
  char  c, err;
  err = 0;
  arg = 1;
  hgst = 0;
  opt = 0;
  cent = 0;
  nop = 0;
  chpar = 0;
  syl = 0;
  if (argc <= arg) {
    err = 1;
    goto error;
  }
  while (argv[arg][0] == '-') {
    c = argv[arg][1];
    if (c == 'h')
      hgst = 1;
    else if (c == 'o')
      opt = 1;
    else if (c == 'c')
      cent = 1;
    else if (c == 's')
      syl = 1;
    else if (c == 'n')
      nop = 1;
    else {
      err = 1;
      goto error;
    }
    arg++;
    if (argc <= arg) {
      err = 1;
      goto error;
    }
  }
  if (syl) {
    hgst = 0;
    nop = 0;
    if (cent)
      cent = 0;
    if (opt)
      chpar = 1;
    strcpy(inf1, argv[arg]);
    strcat(inf1, ".");
    strcpy(inf2, inf1);
    strcpy(outf1, inf1);
    strcat(outf1, "temp");
    arg++;
    if (argc <= arg)
      strcat(inf1, "sg");
    else
      strcat(inf1, argv[arg]);
    arg++;
    if (argc <= arg)
      strcat(inf2, "sylp");
    else
      strcat(inf2, argv[arg]);
    strcpy(inf3, inf1);
    x = 0;
    while ((x = sylprog(-x)) > 0) {
      strcpy(inf1, outf1);
      if (nprg1() == -1)
        exit(1);
      if (nprg2() == -1)
        exit(1);
      while (sylprog(x) > 0) {
        if (nprg1() == -1)
          exit(1);
        if (nprg2() == -1)
          exit(1);
      }
      if (x == -1)
        exit(1);
      strcpy(inf1, inf3);
      unlink(outf1);
    }
    if (x == -1)
      exit(1);
  }
  else {
    if (argc <= arg + 2) {
      err = 1;
      goto error;
    }
    strcpy(inf1, argv[arg]);
    strcat(inf1, ".");
    strcpy(inf2, inf1);
    strcpy(inf3, inf1);
    strcpy(outf1, inf1);
    strcpy(outf2, inf1);
    if (strcmp(argv[arg + 1], "sym") == 0)
      sym = 1;
    else {
      strcat(inf1, argv[arg + 1]);
      sym = 0;
    }
    strcat(inf2, argv[arg + 2]);
    arg += 3;
    if (hgst) {
      if (argc <= arg) {
        err = 1;
        goto error;
      }
      strcat(inf3, argv[arg]);
      arg++;
    }
    if (argc <= arg) {
      if (cent)
        strcat(outf1, "cent");
      else
        strcat(outf1, "norm");
    }
    else {
      strcat(outf1, argv[arg]);
      arg++;
    }
    if (nop) {
      if (argc <= arg)
        strcat(outf2, "ng");
      else
        strcat(outf2, argv[arg]);
    }
    if (sym)
      printf("G is the symmetric group.\n");
    if (cent)
      printf("Calculation of C(H) ^ G.\n");
    else
      printf("Calculation of N(H) ^ G.\n");
    if (nprg1() == -1)
      exit(1);
    if (nprg2() == -1)
      exit(1);
  }
error:
  if (err) {
    fprintf(stderr, "Usage: sylnorm [-s] [-h] [-n] [-c] [-o] gpname\n");
    fprintf(stderr, " inf1 inf2 (inf3) [outf1] [outf2].\n");
    exit(1);
  }
  exit(0);
}

Messung V0.5
C=95 H=57 G=78

¤ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge