Putting on the finishing touches.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@95 36f187d4-5712-4624-889c-152d48957efamaster
parent
4e5e5cd17d
commit
d0f2d55cce
|
@ -0,0 +1,31 @@
|
|||
Copyright (c) 2013, James S. Plank, Kevin M. Greenan, Ethan L. Miller, William B. Houston
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
- Neither the name of the University of Tennessee nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
||||
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1,5 @@
|
|||
This is GF-Complete, Revision 0.1.
|
||||
|
||||
Please see http://www.cs.utk.edu/~plank/plank/papers/CS-13-703.html for the user's
|
||||
manual and other important documentation about this library, including more
|
||||
recent revisions.
|
17
gf_54.c
17
gf_54.c
|
@ -11,8 +11,19 @@
|
|||
main()
|
||||
{
|
||||
gf_t gf;
|
||||
void *scratch;
|
||||
int size;
|
||||
|
||||
gf_init_easy(&gf, 4);
|
||||
printf("%d\n", gf.multiply.w32(&gf, 5, 4));
|
||||
exit(0);
|
||||
size = gf_scratch_size(16, GF_MULT_SPLIT_TABLE,
|
||||
GF_REGION_SSE | GF_REGION_ALTMAP,
|
||||
GF_DIVIDE_DEFAULT,
|
||||
16, 4);
|
||||
if (size == -1) exit(1); /* It failed. That shouldn't happen*/
|
||||
scratch = (void *) malloc(size);
|
||||
if (scratch == NULL) { perror("malloc"); exit(1); }
|
||||
if (!gf_init_hard(&gf, 16, GF_MULT_SPLIT_TABLE,
|
||||
GF_REGION_SSE | GF_REGION_ALTMAP,
|
||||
GF_DIVIDE_DEFAULT,
|
||||
0, 16, 4, NULL, scratch)) exit(1);
|
||||
printf("Yo\n");
|
||||
}
|
||||
|
|
|
@ -59,6 +59,9 @@ void usage(char *s)
|
|||
fprintf(stderr, " D: Single: Divisions\n");
|
||||
fprintf(stderr, " I: Single: Inverses\n");
|
||||
fprintf(stderr, " G: Region: Buffer-Constant Multiplication\n");
|
||||
fprintf(stderr, " 0: Region: Doing nothing, and bzero()\n");
|
||||
fprintf(stderr, " 1: Region: Memcpy() and XOR\n");
|
||||
fprintf(stderr, " 2: Region: Multiplying by two\n");
|
||||
fprintf(stderr, "\n");
|
||||
fprintf(stderr, "Use -1 for time(0) as a seed.\n");
|
||||
fprintf(stderr, "\n");
|
||||
|
|
23
junk.c
23
junk.c
|
@ -1,17 +1,18 @@
|
|||
/*
|
||||
* Multiplies four and five in GF(2^4).
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "gf_complete.h"
|
||||
|
||||
main()
|
||||
{
|
||||
int size, iterations;
|
||||
double ds, di, elapsed;
|
||||
gf_t gf;
|
||||
|
||||
elapsed = 0.614553;
|
||||
size = 8192;
|
||||
iterations = 655360;
|
||||
|
||||
ds = size;
|
||||
di = iterations;
|
||||
|
||||
printf("%10.3lf\n", ((double) (size*iterations)) / (1024 * 1024 * elapsed));
|
||||
printf("%10.3lf\n", ds * di / 1024.0 / 1024.0 / elapsed);
|
||||
gf_init_easy(&gf, 4);
|
||||
printf("%d\n", gf.multiply.w32(&gf, 5, 4));
|
||||
exit(0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue