2
2
Copyright (c) 1993-2008, Cognitive Technologies
5
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
8
* ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
���� ����������� �� ��������� �����, ���� ������ ������� � �����������
11
* ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
������ ����������, ������������ ��� ���������������, ������ �����������
13
��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
����������� ����� �� ��������.
15
* �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
���� ������������ � �������� �������� ��������� �/��� �����������
17
���������, ���������� �� ���� ��, ��� ���������������� �����������
20
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
������������� ������, ��������� � �������������� ��� ���������� ����������
27
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
5
Разрешается повторное распространение и использование как в виде исходного кода,
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
8
* При повторном распространении исходного кода должны оставаться указанное
9
выше уведомление об авторском праве, этот список условий и последующий
11
* При повторном распространении двоичного кода в документации и/или в
12
других материалах, поставляемых при распространении, должны сохраняться
13
указанная выше информация об авторском праве, этот список условий и
14
последующий отказ от гарантий.
15
* Ни название Cognitive Technologies, ни имена ее сотрудников не могут
16
быть использованы в качестве средства поддержки и/или продвижения
17
продуктов, основанных на этом ПО, без предварительного письменного
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
33
33
Redistribution and use in source and binary forms, with or without modification,
34
34
are permitted provided that the following conditions are met:
58
static void comptorast (PBYTE raster, cell *C)
58
static void comptorast (puchar raster, cell *C)
60
60
memcpy (raster, save_raster (C), ((C -> w + 7)/8) * C -> h);
63
63
static void make_hor_vert (cell *cl)
67
67
struct statist *h, *v;
69
69
memset (hor, 0, sizeof (*hor) * ((dx + 7) & 0xF8));
70
70
memset (vert, 0, sizeof (*vert) * dy);
72
c = (interval *)(((PBYTE) (cl -> env)) + cl -> env -> lines + sizeof (INT));
72
c = (interval *)(((puchar) (cl -> env)) + cl -> env -> lines + sizeof (int16_t));
74
74
while (((lnhead *) c) -> lth)
145
145
for (i = 0; i < dy; i++) funcs [5][i] = hist [1][i];
146
146
// for (i = 0; i < dx; i++) funcs [6][i] = hist [5][i];
147
147
// for (i = 0; i < dx; i++) funcs [7][i] = hist [6][i];
148
m = gmax (hist [1], 0, (INT)(dy - 1));
148
m = gmax (hist [1], 0, (int16_t)(dy - 1));
149
149
for (i = 0; i < dy; i++) funcs [8][i] = m - hist [1][i];
153
static INT line_width (PBYTE func, INT beg, INT end)
153
static int16_t line_width (puchar func, int16_t beg, int16_t end)
159
INT count [MAX_HOR_IL1];
158
int16_t lines_value = 0;
159
int16_t count [MAX_HOR_IL1];
161
161
memset (count, 0, sizeof (count));
162
162
for (i = beg; i < end; i++)
174
174
return lines_value;
177
static WORD integral (PBYTE func, INT from, INT to, INT threshold)
177
static uint16_t integral (puchar func, int16_t from, int16_t to, int16_t threshold)
183
for (i = from; i <= (DWORD)to; i++)
183
for (i = from; i <= (uint32_t)to; i++)
184
184
s += MAX (0, func [i] - threshold);
188
static INT gmax (PBYTE func, INT from, INT to)
188
static int16_t gmax (puchar func, int16_t from, int16_t to)
194
194
for (i = from; i <= to; i++)
331
static INT vertsym (INT bound)
331
static int16_t vertsym (int16_t bound)
333
if (gmax (funcs [3], (INT)(dy * 6 / 100), (INT)(dy * 94 / 100)) <= bound) return 1;
333
if (gmax (funcs [3], (int16_t)(dy * 6 / 100), (int16_t)(dy * 94 / 100)) <= bound) return 1;
337
static INT centrsym (INT bound)
337
static int16_t centrsym (int16_t bound)
339
if (gmax (funcs [4], (INT)(dy * 6 / 100), (INT)(dy * 94 / 100)) <= bound) return 1;
339
if (gmax (funcs [4], (int16_t)(dy * 6 / 100), (int16_t)(dy * 94 / 100)) <= bound) return 1;
344
static INT toplad (INT jump, INT percent)
344
static int16_t toplad (int16_t jump, int16_t percent)
346
346
// This procedure checks left brim on top of letter.
352
352
beg = dy * 67 / 100;