Skip to content

Commit 0245a18

Browse files
committed
Added division operation.
1 parent 7067f56 commit 0245a18

5 files changed

Lines changed: 82 additions & 23 deletions

File tree

src/gp.c

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,7 +1056,7 @@ gpMakeColumnSelectMenu(gpcon_t *gp, int dN)
10561056
sN = cN - rd->data[dN].column_N;
10571057

10581058
sprintf(gp->sbuf[0], "[%3i] %c ", cN,
1059-
" TFSEPRAXHDIBLMU?" [gp->pl->data[dN].sub[sN].busy]);
1059+
" TFSEPRAXNHDIBLMU?" [gp->pl->data[dN].sub[sN].busy]);
10601060

10611061
if (gp->pl->data[dN].sub[sN].busy == SUBTRACT_TIME_MEDIAN) {
10621062

@@ -1096,6 +1096,7 @@ gpMakeColumnSelectMenu(gpcon_t *gp, int dN)
10961096
else if (gp->pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_SUBTRACTION
10971097
|| gp->pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_ADDITION
10981098
|| gp->pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_MULTIPLICATION
1099+
|| gp->pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_DIVISION
10991100
|| gp->pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_HYPOTENUSE) {
11001101

11011102
sprintf(gp->sbuf[0] + strlen(gp->sbuf[0]), "(%i, %i)",
@@ -2553,8 +2554,6 @@ gpMenuHandle(gpcon_t *gp, int menu_N, int item_N)
25532554

25542555
mu->hidden_N[0] = 5;
25552556
mu->hidden_N[1] = 6;
2556-
mu->hidden_N[2] = 7;
2557-
mu->hidden_N[3] = 8;
25582557
}
25592558

25602559
N = plotFigureAnother(pl, gp->fig_N);
@@ -2652,47 +2651,42 @@ gpMenuHandle(gpcon_t *gp, int menu_N, int item_N)
26522651
break;
26532652

26542653
case 6:
2655-
plotFigureSubtractSwitch(pl, SUBTRACT_BINARY_ADDITION);
2656-
break;
2657-
2658-
case 7:
2659-
plotFigureSubtractSwitch(pl, SUBTRACT_BINARY_MULTIPLICATION);
2660-
break;
2654+
menuRaise(mu, 3026, gp->la->figure_binary_menu,
2655+
mu->box_X, mu->box_Y);
26612656

2662-
case 8:
2663-
plotFigureSubtractSwitch(pl, SUBTRACT_BINARY_HYPOTENUSE);
2657+
gp->stat = GP_MENU;
26642658
break;
26652659

2666-
case 9:
2660+
case 7:
26672661
plotFigureSubtractFilter(pl, gp->fig_N, SUBTRACT_FILTER_DIFFERENCE, 0.);
26682662
break;
26692663

2670-
case 10:
2664+
case 8:
26712665
plotFigureSubtractFilter(pl, gp->fig_N, SUBTRACT_FILTER_CUMULATIVE, 0.);
26722666
break;
26732667

2674-
case 11:
2668+
case 9:
26752669
editRaise(ed, 8, gp->la->bit_number_edit,
26762670
"0", mu->box_X, mu->box_Y);
26772671

26782672
gp->stat = GP_EDIT;
26792673
break;
26802674

2681-
case 12:
2675+
case 10:
26822676
editRaise(ed, 13, gp->la->low_pass_edit,
26832677
"0.1", mu->box_X, mu->box_Y);
26842678

26852679
gp->stat = GP_EDIT;
26862680
break;
26872681

2688-
case 13:
2682+
case 11:
26892683
editRaise(ed, 19, gp->la->median_unwrap_edit,
26902684
"15", mu->box_X, mu->box_Y);
26912685

26922686
gp->stat = GP_EDIT;
26932687
break;
26942688

2695-
case 14:
2689+
case 12:
26962690
editRaise(ed, 27, gp->la->demultiplex_edit,
26972691
"0", mu->box_X, mu->box_Y);
26982692

@@ -2767,6 +2761,27 @@ gpMenuHandle(gpcon_t *gp, int menu_N, int item_N)
27672761
break;
27682762
}
27692763
}
2764+
else if (menu_N == 3026) {
2765+
2766+
switch (item_N) {
2767+
2768+
case 0:
2769+
plotFigureSubtractSwitch(pl, SUBTRACT_BINARY_ADDITION);
2770+
break;
2771+
2772+
case 1:
2773+
plotFigureSubtractSwitch(pl, SUBTRACT_BINARY_MULTIPLICATION);
2774+
break;
2775+
2776+
case 2:
2777+
plotFigureSubtractSwitch(pl, SUBTRACT_BINARY_DIVISION);
2778+
break;
2779+
2780+
case 3:
2781+
plotFigureSubtractSwitch(pl, SUBTRACT_BINARY_HYPOTENUSE);
2782+
break;
2783+
}
2784+
}
27702785
else if (menu_N == 3031) {
27712786

27722787
if (item_N != -1) {

src/lang.c

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,7 @@ void langFill(lang_t *la, int lang)
161161
" Scale on Y ...\0"
162162
" Add P polynomial ...\0"
163163
"R Add B subtraction\0"
164-
" Add B addition\0"
165-
" Add B multiplication\0"
166-
" Add B hypotenuse\0"
164+
" Add B operation ...\0"
167165
" Add F differences\0"
168166
" Add F integral\0"
169167
" Add F bit field ...\0"
@@ -173,6 +171,15 @@ void langFill(lang_t *la, int lang)
173171

174172
"\0";
175173

174+
la->figure_binary_menu =
175+
176+
" Add B addition\0"
177+
" Add B multiplication\0"
178+
" Add B division\0"
179+
" Add B hypotenuse\0"
180+
181+
"\0";
182+
176183
la->legend_menu =
177184

178185
" Drawing primitive ...\0"
@@ -370,9 +377,7 @@ void langFill(lang_t *la, int lang)
370377
" Масштаб по Y ...\0"
371378
" Добавить P полином ...\0"
372379
"R Добавить B вычитание\0"
373-
" Добавить B сложение\0"
374-
" Добавить B умножение\0"
375-
" Добавить B гипотенузу\0"
380+
" Добавить B операцию ...\0"
376381
" Добавить F производную\0"
377382
" Добавить F интеграл\0"
378383
" Добавить F битовое поле ...\0"
@@ -382,6 +387,15 @@ void langFill(lang_t *la, int lang)
382387

383388
"\0";
384389

390+
la->figure_binary_menu =
391+
392+
" Добавить B сложение\0"
393+
" Добавить B умножение\0"
394+
" Добавить B деление\0"
395+
" Добавить B гипотенузу\0"
396+
397+
"\0";
398+
385399
la->legend_menu =
386400

387401
" Примитив рисования ...\0"

src/lang.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ typedef struct {
3636
const char *figure_edit_drawing_menu;
3737
const char *figure_edit_color_menu;
3838
const char *figure_operation_menu;
39+
const char *figure_binary_menu;
3940
const char *legend_menu;
4041
const char *resample_menu[7];
4142
const char *databox_menu;

src/plot.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1493,6 +1493,29 @@ plotDataSubtractWrite(plot_t *pl, int dN, int sN, int rN_beg, int id_N_beg, int
14931493
}
14941494
while (1);
14951495
}
1496+
else if (mode == SUBTRACT_BINARY_DIVISION) {
1497+
1498+
cNX = pl->data[dN].sub[sN].op.binary.column_X;
1499+
cNY = pl->data[dN].sub[sN].op.binary.column_Y;
1500+
1501+
do {
1502+
row = plotDataWrite(pl, dN, &rN);
1503+
1504+
if (row == NULL)
1505+
break;
1506+
1507+
X1 = (cNX < 0) ? id_N : row[cNX];
1508+
X2 = (cNY < 0) ? id_N : row[cNY];
1509+
1510+
row[cN] = X1 / X2;
1511+
1512+
id_N++;
1513+
1514+
if (rN == rN_end)
1515+
break;
1516+
}
1517+
while (1);
1518+
}
14961519
else if (mode == SUBTRACT_BINARY_HYPOTENUSE) {
14971520

14981521
cNX = pl->data[dN].sub[sN].op.binary.column_X;
@@ -4126,6 +4149,7 @@ plotCheckColumnLinked(plot_t *pl, int dN, int cN)
41264149
else if ( pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_SUBTRACTION
41274150
|| pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_ADDITION
41284151
|| pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_MULTIPLICATION
4152+
|| pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_DIVISION
41294153
|| pl->data[dN].sub[sN].busy == SUBTRACT_BINARY_HYPOTENUSE) {
41304154

41314155
if ( cN == pl->data[dN].sub[sN].op.binary.column_X
@@ -5302,6 +5326,10 @@ plotFigureSubtractAdd(plot_t *pl, int fN, int fN_1, int fN_2, int opSUB)
53025326

53035327
sprintf(pl->figure[fN].label, "X: %.35s * %.35s", label_1, label_2);
53045328
}
5329+
else if (opSUB == SUBTRACT_BINARY_DIVISION) {
5330+
5331+
sprintf(pl->figure[fN].label, "N: %.35s / %.35s", label_1, label_2);
5332+
}
53055333
else if (opSUB == SUBTRACT_BINARY_HYPOTENUSE) {
53065334

53075335
sprintf(pl->figure[fN].label, "H: %.35s ~ %.35s", label_1, label_2);

src/plot.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ enum {
9797
SUBTRACT_BINARY_SUBTRACTION,
9898
SUBTRACT_BINARY_ADDITION,
9999
SUBTRACT_BINARY_MULTIPLICATION,
100+
SUBTRACT_BINARY_DIVISION,
100101
SUBTRACT_BINARY_HYPOTENUSE,
101102
SUBTRACT_FILTER_DIFFERENCE,
102103
SUBTRACT_FILTER_CUMULATIVE,

0 commit comments

Comments
 (0)