1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
/* ¹Υƥѥ */
#include <stdio.h>
#include <anthy/dic.h>
#include <anthy/diclib.h>
#include <anthy/matrix.h>
static void
change_endian(struct matrix_image *im)
{
int i;
for (i = 0; i < im->size; i++) {
im->image[i] = anthy_dic_htonl(im->image[i]);
}
}
static void
zero_matrix(void)
{
struct sparse_matrix *m;
struct matrix_image *mi;
int *im, e;
m = anthy_sparse_matrix_new();
anthy_sparse_matrix_make_matrix(m);
mi = anthy_matrix_image_new(m);
change_endian(mi);
im = mi->image;
e = anthy_matrix_image_peek(im, 0, 0);
printf("zero matrix: size=%d (0,0)=%d\n", mi->size, e);
}
static void
dense_matrix(void)
{
int i, j, fail;
struct sparse_matrix *m;
struct matrix_image *mi;
int *im, e;
m = anthy_sparse_matrix_new();
for (i = 0; i < 100; i++) {
for (j = 0; j < 100; j++) {
anthy_sparse_matrix_set(m, i, j, i + j, NULL);
}
}
anthy_sparse_matrix_make_matrix(m);
mi = anthy_matrix_image_new(m);
change_endian(mi);
im = mi->image;
fail = 0;
for (i = 0; i < 100; i++) {
for (j = 0; j < 100; j++) {
e = anthy_matrix_image_peek(im, i, j);
if (e != i+j) {
printf("image(%d,%d) == %d != %d\n", i,j,e,i+j);
fail ++;
}
e = anthy_sparse_matrix_get_int(m, i, j);
if (e != i+j) {
printf("origin(%d,%d) == %d != %d\n", i,j,e,i+j);
fail ++;
}
}
}
printf("%d errors in desnse matrix\n", fail);
}
int
main(int argc, char **argv)
{
(void)argc;
(void)argv;
zero_matrix();
dense_matrix();
return 0;
}
|