# secant -- Computes the secant of an ideal

## Synopsis

• Usage:
J = secant(I,n)
• Inputs:
• I, an ideal, An ideal of a ring R
• k, an integer, Order of the secant
• Optional inputs:
• Outputs:
• J, an ideal, The kth secant of I

## Description

Computes the kth secant of I by constructing the abstract secant and then projecting with elimination.

Setting k to 1 gives the dimension of the ideal, while 2 is the usual secant, and higher values correspond to higher order secants.

Setting the optional argument DegreeLimit to {d} will produce only the generators of the secant ideal up to degree d.

This method is general and will work for arbitrary polynomial ideals, not just phylogenetic ideals.

 ```i1 : R = QQ[a..d] o1 = R o1 : PolynomialRing``` ```i2 : I = ideal {a^2-b,a^3-c,a^4-d} 2 3 4 o2 = ideal (a - b, a - c, a - d) o2 : Ideal of R``` ```i3 : secant(I,2) 3 2 2 2 2 2 2 o3 = ideal (b - 2a*b*c + a d + 2c - 2b*d, a*b - a c - b*c + a*d, a b - b ------------------------------------------------------------------------ 3 - 2a*c + 2d, a - 3a*b + 2c) o3 : Ideal of R```