Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dmitry Baryshkov
nettle
Commits
024d5cde
Commit
024d5cde
authored
Oct 23, 2007
by
Niels Möller
Browse files
Deleted the code for binary output.
Rev: nettle/examples/eratosthenes.c:1.3
parent
48c2100a
Changes
1
Hide whitespace changes
Inline
Side-by-side
examples/eratosthenes.c
View file @
024d5cde
...
@@ -58,7 +58,6 @@ usage(void)
...
@@ -58,7 +58,6 @@ usage(void)
" --primes-only Suppress output of differences.
\n
"
" --primes-only Suppress output of differences.
\n
"
" --diff-only Supress output of primes.
\n
"
" --diff-only Supress output of primes.
\n
"
" --tabular Tabular output (default is one prime per line).
\n
"
" --tabular Tabular output (default is one prime per line).
\n
"
" --binary Binary output.
\n
"
" --block SIZE Block size.
\n
"
);
" --block SIZE Block size.
\n
"
);
}
}
...
@@ -185,14 +184,11 @@ struct output_info
...
@@ -185,14 +184,11 @@ struct output_info
{
{
int
output_2
;
int
output_2
;
enum
{
enum
{
FORMAT_PRIMES
=
1
,
FORMAT_DIFF
=
2
,
FORMAT_TABULAR
=
4
,
FORMAT_BINARY
=
8
FORMAT_PRIMES
=
1
,
FORMAT_DIFF
=
2
,
FORMAT_TABULAR
=
4
}
format
;
}
format
;
unsigned
long
last
;
unsigned
long
last
;
unsigned
column
;
unsigned
column
;
/* For the binary output */
unsigned
size
;
};
};
static
void
static
void
...
@@ -201,79 +197,12 @@ output_init(struct output_info *info)
...
@@ -201,79 +197,12 @@ output_init(struct output_info *info)
info
->
output_2
=
1
;
info
->
output_2
=
1
;
info
->
format
=
FORMAT_PRIMES
|
FORMAT_DIFF
;
info
->
format
=
FORMAT_PRIMES
|
FORMAT_DIFF
;
info
->
last
=
0
;
info
->
last
=
0
;
info
->
size
=
1
;
}
}
static
void
static
void
output
(
struct
output_info
*
info
,
unsigned
long
p
)
output
(
struct
output_info
*
info
,
unsigned
long
p
)
{
{
if
(
info
->
format
&
FORMAT_BINARY
)
if
(
info
->
format
&
(
FORMAT_PRIMES
|
FORMAT_DIFF
))
{
/* Overrides the other formats. */
unsigned
char
buf
[
4
];
unsigned
diff
=
(
p
-
info
->
last
)
/
2
;
switch
(
info
->
size
)
{
case
1
:
if
(
diff
<
0x100
)
{
putchar
(
diff
);
break
;
}
else
{
info
->
size
++
;
putchar
(
0
);
/* Fall through */
}
case
2
:
if
(
diff
<
0x10000
)
{
buf
[
0
]
=
diff
>>
8
;
buf
[
1
]
=
diff
&
0xff
;
putchar
(
buf
[
0
]);
putchar
(
buf
[
1
]);
break
;
}
else
{
info
->
size
++
;
putchar
(
0
);
putchar
(
0
);
/* Fall through */
}
case
3
:
if
(
diff
<
0x1000000
)
{
buf
[
0
]
=
diff
>>
16
;
buf
[
1
]
=
(
diff
>>
8
)
&
0xff
;
buf
[
2
]
=
diff
&
0xff
;
putchar
(
buf
[
0
]);
putchar
(
buf
[
1
]);
putchar
(
buf
[
2
]);
break
;
}
else
{
info
->
size
++
;
putchar
(
0
);
putchar
(
0
);
putchar
(
0
);
/* Fall through */
}
case
4
:
buf
[
0
]
=
diff
>>
24
;
buf
[
1
]
=
(
diff
>>
16
)
&
0xff
;
buf
[
2
]
=
(
diff
>>
8
)
&
0xff
;
buf
[
3
]
=
diff
&
0xff
;
putchar
(
buf
[
0
]);
putchar
(
buf
[
1
]);
putchar
(
buf
[
2
]);
putchar
(
buf
[
3
]);
break
;
}
}
else
if
(
info
->
format
&
(
FORMAT_PRIMES
|
FORMAT_DIFF
))
{
{
if
(
info
->
format
&
FORMAT_PRIMES
)
if
(
info
->
format
&
FORMAT_PRIMES
)
printf
(
"%ld"
,
p
);
printf
(
"%ld"
,
p
);
...
@@ -301,19 +230,11 @@ output(struct output_info *info, unsigned long p)
...
@@ -301,19 +230,11 @@ output(struct output_info *info, unsigned long p)
static
void
static
void
output_first
(
struct
output_info
*
info
)
output_first
(
struct
output_info
*
info
)
{
{
if
(
info
->
format
&
FORMAT_BINARY
)
info
->
column
=
0
;
{
if
(
info
->
output_2
)
/* Omit 2, and start with 1, so that differences are odd. */
output
(
info
,
2
);
info
->
last
=
1
;
}
else
{
info
->
column
=
0
;
if
(
info
->
output_2
)
output
(
info
,
2
);
info
->
last
=
2
;
info
->
last
=
2
;
}
}
}
int
int
...
@@ -333,7 +254,7 @@ main (int argc, char **argv)
...
@@ -333,7 +254,7 @@ main (int argc, char **argv)
int
quiet
;
int
quiet
;
int
c
;
int
c
;
enum
{
FLAG_ODD
=
-
100
,
FLAG_PRIME
,
FLAG_DIFF
,
FLAG_TABULAR
,
FLAG_BINARY
,
enum
{
FLAG_ODD
=
-
100
,
FLAG_PRIME
,
FLAG_DIFF
,
FLAG_TABULAR
,
FLAG_QUIET
,
FLAG_BLOCK
};
FLAG_QUIET
,
FLAG_BLOCK
};
static
const
struct
option
options
[]
=
static
const
struct
option
options
[]
=
...
@@ -345,7 +266,6 @@ main (int argc, char **argv)
...
@@ -345,7 +266,6 @@ main (int argc, char **argv)
{
"prime-only"
,
no_argument
,
NULL
,
FLAG_PRIME
},
{
"prime-only"
,
no_argument
,
NULL
,
FLAG_PRIME
},
{
"diff-only"
,
no_argument
,
NULL
,
FLAG_DIFF
},
{
"diff-only"
,
no_argument
,
NULL
,
FLAG_DIFF
},
{
"tabular"
,
no_argument
,
NULL
,
FLAG_TABULAR
},
{
"tabular"
,
no_argument
,
NULL
,
FLAG_TABULAR
},
{
"binary"
,
no_argument
,
NULL
,
FLAG_BINARY
},
{
"block"
,
required_argument
,
NULL
,
FLAG_BLOCK
},
{
"block"
,
required_argument
,
NULL
,
FLAG_BLOCK
},
{
NULL
,
0
,
NULL
,
0
}
{
NULL
,
0
,
NULL
,
0
}
};
};
...
@@ -373,9 +293,6 @@ main (int argc, char **argv)
...
@@ -373,9 +293,6 @@ main (int argc, char **argv)
case
FLAG_TABULAR
:
case
FLAG_TABULAR
:
info
.
format
|=
FORMAT_TABULAR
;
info
.
format
|=
FORMAT_TABULAR
;
break
;
break
;
case
FLAG_BINARY
:
info
.
format
|=
FORMAT_BINARY
;
break
;
case
FLAG_QUIET
:
case
FLAG_QUIET
:
quiet
=
1
;
quiet
=
1
;
break
;
break
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment