getRandomLinearForms(R, L)
This will give you a list of random forms (ring elements) of the specified types. This is useful, because in many cases, for instance when doing generic projection, you only need a a certain number of the forms in the map to be fully random. Furthermore, at the cost of some randomness, using monomial or binomial forms can be much faster.
The types of form are specified via the second argument, a list with 5 entries. The first entry is how many constant forms are allowed.
|
|
The second entry in the list is how many monomial forms are returned. Note if Homogeneous=>false then these forms will usually have constant terms.
|
|
Next, the third entry is how many monomial forms (without constant terms, even if Homogeneous=>false).
|
The fourth entry is how many binomial forms should be returned.
|
|
The ultimate entry is how many truly random forms to produce.
|
|
You may combine the different specifications to create a list of the desired type. The order is randomized.
If the option Verify=>true, then this will check the jacobian of the list of forms (discounting the constant forms), to make sure it has maximal rank. Random forms in small numbers of variables over small fields will produce non-injective ring maps occasionally otherwise.
The object getRandomLinearForms is a method function with options.