Using the logManipulator
from my answer to Logarithmic slider, you can also achieve your objective via
Manipulate[
f[x, y],
{x, 10.^-10, 10^-1, 10, logManipulator[##] &},
{y, 0.01, 1, 0.01}]
Code for logManipulator
:
ClearAll[logManipulator];
With[{smallerRule = {Large -> Medium, Medium -> Small, Small -> Tiny}},
logManipulator[Dynamic[x_], range_: {1, 10},
OptionsPattern[Manipulator]] := With[{
logrange = Log10[range],
imagesize = OptionValue[ImageSize] /. Automatic -> Medium,
inputfieldsize =
OptionValue[ImageSize] /. Automatic -> Medium /. smallerRule,
enabled = OptionValue[Enabled],
continuousaction = OptionValue[ContinuousAction],
appearance =
First[Cases[OptionValue[Appearance],
Tiny | Small | Medium | Large] /. {} -> {Automatic}],
labeled = ! FreeQ[OptionValue[Appearance], "Labeled"] || !
FreeQ[OptionValue[AppearanceElements], "InlineInputField"],
opener =
OptionValue[AppearanceElements] /. {Automatic -> True,
All -> True, None -> False,
l_List :> (Cases[l, Except["InlineInputField"]] =!= {})},
inputfield =
MatchQ[OptionValue[AppearanceElements], Automatic | All] ||
! FreeQ[OptionValue[AppearanceElements], "InputField"],
appearanceelements =
OptionValue[AppearanceElements] /. {Automatic -> All, None -> {},
l_List :> Cases[l, Except["InlineInputField" | "InputField"]]},
autoaction = OptionValue[AutoAction],
exclusions = OptionValue[Exclusions]},
ReleaseHold@MakeExpression[
PaneBox[
DynamicModuleBox[{
Typeset`open$$ = ! FreeQ[OptionValue[Appearance], "Open"],
Typeset`paused$$ = OptionValue[PausedTime],
Typeset`rate$$ = OptionValue[AnimationRate],
Typeset`dir$$ = OptionValue[AnimationDirection]},
StyleBox[
DynamicBox[
FEPrivate`FrontEndResource["FEExpressions", "Manipulator04"][
Dynamic[x],
Dynamic[Log10[x], (x = 10^#) & ],
logrange,
imagesize,
inputfieldsize,
enabled,
continuousaction,
appearance,
labeled,
opener,
inputfield,
appearanceelements ,
autoaction,
exclusions,
Dynamic[Typeset`open$$],
Dynamic[Typeset`paused$$],
Dynamic[Typeset`rate$$],
Dynamic[Typeset`dir$$]]],
DynamicUpdating -> True],
DynamicModuleValues :> {}],
BaselinePosition -> (OptionValue[BaselinePosition] /. Automatic -> Baseline),
ImageMargins -> OptionValue[ImageMargins]],
StandardForm]]
]
Manipulate[f[10^x, y], {x, -10, -1}, {y, 0.01, 1, 0.01}]
with thef
you already have. Does that do what you want? $\endgroup$