I assumed you meant “searching for `a`

such that `target_y`

is the average of the processed image”.

Here is a quick attempt, so far it seems to work:

```
dichotomic_sigmoid :
# Define the image processing function to consider.
m "proc : n. 0,1 f. 1/(1+exp(-$""1*(i))) n. 0,1"
# Find sigmoid parameter, such that processed image average is 0.5.
search_dichotomic "+proc $""1 res={ia} rm. u $res",0.5 gamma=${}
# Generate processed result.
+proc $gamma
```

Then,

```
$ gmic sp tiger dichotomic_sigmoid mul. 255 to[0] Original to[1] Processed a x o res_sigmoid.png
```

**EDIT**: Oups, it doesn’t seem to work when I add `-0.5`

as a shift for the sigmoid function, I’ll investigate that

**EDIT2**: It’s not that surprising in fact. The dichotomic search works only if the considered function is strictly increasing (**according to the searched parameter**), which is not the fact if we add a negative offset like `-0.5`

in it, as the plot below shows:

```
$ gmic plot "'1/(1+exp(-x*(-0.4)))'",1024,1,1,-10,10
```

What happen if that if your original image, normalized to [0,1] has most of its value below `0.5`

, then the average of all the applied sigmoid (with a shift of `-0.5`

) will be a decreasing function of the searched parameter, thus making the dichotomic search fail.