Accessing Top-level Commands after Rebinding Their Names - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : System : Libraries and Packages : rebound

Accessing Top-level Commands after Rebinding Their Names

  

Some commands in Maple have similar names. For example, the top-level command name diff is similar to the package-level command name VectorCalculus[diff].

  

When the short-form name of package-level command is defined using the with command, the short-form name is bound to the package-level command. This happens regardless of whether a top-level command with the same name, protected or not, exists. For example, after issuing with(VectorCalculus, diff), the command name diff refers to the package-level VectorCalculus[diff] command.

  

You can still directly access the top-level command after its name has been rebound if the package invoked is implemented as a module, but not if the package is implemented as a table.

How to determine if a package is implemented as a module or table

  

Use the type command to determine if a package is implemented as a module or as a table.

• 

type(packagename, `module`);

• 

type(packagename, table);

  

For example,

type(networks, '`module`');

false

(1)

type(VectorCalculus, '`module`');

true

(2)
  

Once you have determined how the package has been implemented, follow the instructions in one of the following sections.

• 

Packages Implemented as Modules

• 

Packages Implemented as Tables

Packages Implemented as Modules

  

To use a top-level command after its name has been rebound to a package-level command, use the colon-dash syntax (:-commandname).

  

The following example intentionally employs an error message to illustrate which command level is used.

diff( );

Error, invalid input: diff expects 2 or more arguments, but received 0

  

Note: The message refers to the top-level diff command.

  

Now invoke the VectorCalculus package.

with(VectorCalculus);

&x&comma;`*`&comma;`+`&comma;`-`&comma;`.`&comma;<,>&comma;<|>&comma;About&comma;AddCoordinates&comma;ArcLength&comma;BasisFormat&comma;Binormal&comma;Compatibility&comma;ConvertVector&comma;CrossProduct&comma;Curl&comma;Curvature&comma;D&comma;Del&comma;DirectionalDiff&comma;Divergence&comma;DotProduct&comma;Flux&comma;GetCoordinateParameters&comma;GetCoordinates&comma;GetNames&comma;GetPVDescription&comma;GetRootPoint&comma;GetSpace&comma;Gradient&comma;Hessian&comma;IsPositionVector&comma;IsRootedVector&comma;IsVectorField&comma;Jacobian&comma;Laplacian&comma;LineInt&comma;MapToBasis&comma;Nabla&comma;Norm&comma;Normalize&comma;PathInt&comma;PlotPositionVector&comma;PlotVector&comma;PositionVector&comma;PrincipalNormal&comma;RadiusOfCurvature&comma;RootedVector&comma;ScalarPotential&comma;SetCoordinateParameters&comma;SetCoordinates&comma;SpaceCurve&comma;SurfaceInt&comma;TNBFrame&comma;Tangent&comma;TangentLine&comma;TangentPlane&comma;TangentVector&comma;Torsion&comma;Vector&comma;VectorField&comma;VectorPotential&comma;VectorSpace&comma;Wronskian&comma;diff&comma;eval&comma;evalVF&comma;int&comma;limit&comma;series

(3)
  

The VectorCalculus package contains a diff command. For differences between the two commands, see diff and VectorCalculus[diff].

  

Enter the diff(); command again.

diff();

Error, invalid input: VectorCalculus:-diff uses a 1st argument, f, which is missing

  

The message now indicates that the error is generated by the VectorCalculus package-level command and not the top-level diff command.

  

To use the top-level diff command, use the :- syntax.

:-diff();

Error, invalid input: diff expects 2 or more arguments, but received 0

  

Note: The message once again indicates that the error is generated by the top-level diff function.

Packages Implemented as Tables

  

To use a top-level command after its name has been rebound to a package-level command, you must first use the restart; command.

  

The following example intentionally employs an error message to illustrate which command level is used.

minimize();

Error, invalid input: minimize uses a 1st argument, exprFP (of type algebraic), which is missing

  

Note: The message refers to the top-level minimize command.

with(simplex);

basis&comma;convexhull&comma;cterm&comma;define_zero&comma;display&comma;dual&comma;feasible&comma;maximize&comma;minimize&comma;pivot&comma;pivoteqn&comma;pivotvar&comma;ratio&comma;setup&comma;standardize

(4)
  

The simplex package contains a minimize command.

minimize();

Error, invalid input: minimize uses a 1st argument, obj, which is missing

  

Note: The message refers to the package-level simplex[minimize] command.

:-minimize();

Error, invalid input: minimize uses a 1st argument, obj, which is missing

  

Note: Packages implemented as tables overwrite any conflicting top-level commands when you invoke the package. You cannot access the top-level command by using the :- syntax.

  

To use the top-level minimize command, first invoke the restart command.

restart;

minimize();

Error, invalid input: minimize uses a 1st argument, exprFP (of type algebraic), which is missing

  

Note: The message once again refers to the top-level minimize command.

See Also

protect, Using Packages, with


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam