1. Introduction
This paper presents symbolic algorithms for determining the behavior at infinity of a plane algebraic curve,
, by determining the
generalized asymptotes, or
g-asymptotes, of its branches at points with sufficiently large coordinates, i.e., at the infinity points. This concept generalizes the classical concept of (line) asymptote and its calculation methods (see [
1,
2]).
Both notions,
g-asymptotes and
infinity branches, are essential tools that allow us to analyze the geometry and topology of a curve at infinity points, as well as detect symmetries that can occur in coordinates far from the origin, which is applicable to solving practical problems in many fields of science and engineering. Thus, it should be noted that rational algebraic curves have been an area of research [
3,
4,
5,
6] that appears in many fields, such as, for example, ancient and modern architectural designs, in number theory problems [
7,
8], in biological forms [
9], in error correction codes [
10,
11,
12] in route planning for robots [
13], and in cryptographic algorithms [
7,
14,
15,
16,
17], among many other applications. In addition, they have recently acquired additional practical importance in the area of Computer-Aided Geometric Design for airplanes, automobiles, and household appliances, which would be unthinkable without computational help and the development of effective methods for the manipulation of algebraic curves and also surfaces [
18,
19,
20,
21]. The parameterizations of these entities also play an important role in other aspects, such as line integral, representation, distribution of polynomial interpolation nodes [
22], control theory [
23], etc.
For this purpose, the pseudocodes of these algorithms are presented, as well as the corresponding implementations and a comparative analysis. We use the algebra software Maple.
To start with,
Section 2 presents previous notions and explains the intuitive idea of
perfect curve and
g-asymptote. That is, given a curve
, a new curve
is said to be a
g-asymptote of
if
is a curve of the smallest possible degree that approximates
at infinity (see [
24]).
Based on these preliminaries,
Section 3 presents the algorithms and pseudocodes which construct the generalized asymptotes from plane algebraic curves given by their implicit and parametric equations, considering the infinity branches that converge to the given curve. These pseudocodes are illustrated with examples that show the methods developed in this work, as well as the implementation programmed with the algebra system
Maple, which are included in the
Appendix C.
Thus, we present the pseudocodes and implementations of algorithms, based on previous studies that use the Puiseux series expansion to construct the g-asymptotes of a plane algebraic curve, implicitly or parametrically defined. Additionally, we propose some new symbolic methods and their corresponding implementations which improve the efficiency of the preceding research. These new methods are based on the computation of limits and derivatives, they show higher computational performance, demanding fewer hardware resources and system requirements, as well as reducing computer overload.
Accordingly,
Section 4 presents, as a novelty in this research area, a comparative analysis for all the algorithms presented in this work, considering the properties of the input curves and their outcomes to analyze their efficiency and to establish comparative criteria between the algorithms.
For this purpose, we study several cases to observe the system overload, when Algorithm 1 or Algorithm 2 is executed (these two algorithms are based on the computation of the Puiseux series). However, for the parametric case, Algorithms 3 and 4 dramatically improve the efficiency of previous methods, since they are based on the computation of limits and derivatives. They show higher computational performance, requiring fewer hardware system resources available and a reduction in computer overload.
Algorithm 1 Computation of asymptotes of an implicit curve |
Require:, plane algebraic curve defined by |
Ensure: /* Asymptotes of */
|
1: |
2: |
3: |
4: PuiseuxSeries |
5: for all of do |
6: |
7: /* Definition 1 */
|
8: /* Equation (1) */
|
9: |
10: /* Equation (2) */
|
11: end for |
12: return , |
Algorithm 2 Computation of asymptotes of a parametric curve |
Require: plane algebraic curve defined by |
/* Equation (3) */ |
|
Ensure: /* Asymptotes of */ |
1: /* Equation (4) */ |
2: |
3: |
4: for all of do |
5: /* Remark 1 */ |
6: /* Definition 1 */ |
7: |
8: /* Equation (1) */ |
9: /* Equation (2) */ |
10: end for |
11: return , |
Algorithm 3 Computation of asymptotes of a parametric curve with limits |
Require: plane algebraic curve defined by |
/* Equation (3) */ |
, |
Ensure: /* Asymptotes of */ |
1: Roots |
2: MultiplicityRoots |
3: Roots |
4: MultiplicityRoots |
5: for all do |
6: if then |
7: /* Horizontal Asymp. Corollary 1 */ |
8: else if then |
9: |
10: |
11: for do |
12: |
13: /* Coeff. of the output parametrization. Theorem 1 */ |
14: end for |
15: |
16: end if |
17: end for |
18: for all Roots do |
19: if ∃ then |
20: |
21: /* Vertical Asymp. Corollary 1 */ |
22: end if |
23: end for |
24: return , |
In
Section 5, a comparative analysis of the previous algorithms is carried out. For this purpose, some properties of the input curves are considered, as well as their results when constructing the respective g-asymptotes of the input curves. Then, the efficiency of each algorithm is analyzed, and a comparative criteria regarding the time of use of the CPU from the simplest curve to the curve with the highest complexity is established.
Algorithm 4 Computation of asymptotes of a parametric curve with derivatives |
Require: plane algebraic curve defined by |
/* Equation (6) */ |
. |
Ensure: /* Asymptotes of */ |
1: Roots(q(s)) |
2: MultiplicityRoots ( |
3: /* Theorem 2 */ |
4: for all do |
5: |
6: |
7: |
8: for do |
9: /* Coeff. of the Parametrization */ |
10: end for |
11: |
12: end for |
13: return , |
Finally, the conclusions and lines of future work are presented. More precisely, we propose to generalize the study to curves defined by a nonrational parametrization, as well as to surfaces, and study the families of existing g-asymptotes. Moreover, we advance the idea that these methods could be extended to improve fuzzy-based algorithms.
We should point out that the novelties concerning previous works are based on the presentation of the symbolic algorithms and the pseudocode with the algebra system Maple to construct the asymptotes of a plane algebraic curve.
2. Preliminaries and Terminology
This section starts by introducing the notions of
infinity branches,
convergent branches, and
approaching curves, derived from previous research (see [
24,
25]).
Let
be an irreducible plane algebraic curve defined in the affine space by an irreducible polynomial
. Due to practical implications, the curve is assumed to be real and, therefore, the implicit polynomial is defined over
R. Let
be its corresponding projective curve defined by the homogeneous polynomial
with
and let
be the form of the points of infinity of
(if the point of infinity
exists, a linear change in coordinates must be applied).
Under these conditions, starting from the curve defined by the polynomial
and calculating the Puiseux series,
,
from
around
, we obtain the
branches of
(see [
24]). In the following, we denote as
with
, and
one of these series. Therefore,
in a neighborhood of
where
converges.
Definition 1. An infinity branch of a plane algebraic curve , at the infinity point , , is the set where and M is some natural number.
Definition 2. Given two branches, and , we say that they are convergent if
Definition 3. Let be a plane algebraic curve with an infinity branch B. We say that a curve approaches at the branch B, if , i.e., .
In [
24], we show that if
is a plane curve with an infinity branch
B, then a plane curve
approximates
into
B, if and only if
has an infinity branch
such that
B and
are convergent.
From the previous concepts, the definitions of
perfect curve and
generalized asymptote are obtained (see [
24]).
Definition 4. A curve of degree d is a perfect curve if it cannot be approximated by any curve of degree less than d.
Note that a curve that is not perfect can be approximated by other curves of a lesser degree.
Definition 5. Let be a plane algebraic curve with an infinity branch B. A curve, , is a g-asymptote or generalized asymptote of in B, if it is a perfect curve that approximates in B.
Let be a curve with a branch , where with coefficients , , , and .
Suppose that
, i.e., the terms
with
have a negative exponent. In the following, we write
with
,
. That is, we simplify the exponents such that
. Note that
,
, and
, i.e., the terms
with
have negative exponents. The terms with non-negative exponent of
are
Applying the change
, we obtain a proper parametrization of a curve
where
,
, and
, which is an asymptote of
(see [
24]).
3. Symbolic Algorithms for the Computation of Generalized Asymptotes
In this section, we describe four algorithms that construct the parametrizations of the generalized asymptotes of the infinity branches of a curve , all of them are described by corresponding pseudocode. Furthermore, we study the behavior and execution of the algorithms.
The next Subsection introduces Algorithm 1 which computes the g-asymptotes of a curve given by its implicit expression.
Section 3.2, Algorithm 2 is applied to a parametrically given curve. Finally, the last two subsections show the improvement of Algorithm 2, with two new algorithms, Algorithms 3 and 4, that dramatically improve the previous results for the parametric case.
3.1. Algorithm for Curves Implicitly Defined
The following algorithm computes the parametrizations of the asymptotes of the infinity branches of the curve
, which is implicitly defined. It should be noted that the below algorithm was implemented with the mathematical software
Maple (see
Appendix C).
Example 1. Let be a curve of degree , defined by the irreducible polynomial The points of infinity are and .
Iteration 1: Let .
We have the branch , with
Iteration 2: Let .
We have the branch with
Figure 1 represents the curve and its generalized asymptotes and , defined by the parametrizations and , respectively. 3.2. Algorithm for Curves Parametrically Defined
Throughout this paper so far, we have dealt with algebraic plane curves implicitly defined. Now, we present a method to compute infinity branches and g-asymptotes of a plane curve from their parametric representation, without implicitizing. This method also involves the computation of Puiseux series and infinity branches (see [
26]).
Let
be a plane curve defined by the parametrization
If
represents the projective curve associated to
, we have that a parametrization of
is given by
or, equivalently,
We assume that we prepared the input curve through a suitable linear change in coordinates (if necessary), such that is not a point at infinity of .
In order to compute the g-asymptotes of
, first we need to determine the infinity branches of
. That is, the sets
Taking into account Definition 1, we have that around , where and F is the polynomial defining implicitly . Observe that, in this section, we are given the parametrization of and then, Thus, intuitively speaking, in order to compute the infinity branches of , and in particular the series , one needs to rewrite the parametrization in the form around . For this purpose, the idea is to look for a value of the parameter s, say , such that around .
Hence, from the above reasoning, we deduce that, first, we have to consider the equation , or equivalently , and we solve it in the variable s around .
From Puiseux’s Theorem, there exist solutions such that, , in a neighborhood of .
Thus, for each
, there exists
such that the points
or equivalently, the points
, where
are in
for
(note that
, since
is a parametrization of
). Observe that
is a Puiseux series, since
and
can be written as Puiseux series and
is a field.
Finally, we set . Then, we have that the points , where are in for . Hence, the infinity branches of are the sets , such that
Remark 1. Note that the series satisfies that , for . Then, from equality (5), we have that and Once we have the infinity branches, we can compute a g-asymptote for each of them by simply removing the terms with negative exponent from .
The following algorithm computes the infinity branches of a given parametric curve and provides a g-asymptote for each of them. We also illustrate the algorithm with an example. The algorithm is implemented in
Maple (see
Appendix C).
Example 2. Let be the plane curve defined by
We apply Algorithm 2 to compute the asymptotes of . We start by computing the Puiseux solutions of the equation around . We obtain: Iteration 1: Let
(a) (b)
Iteration 2: Let
(a) (b)
Iteration 3: Let
(a) (b)
The obtained asymptotes are the curves , , and defined by the proper parametrizations, , and (see Figure 2). 3.3. Algorithm with Limits for Curves Parametrically Defined
As described previously, generalized asymptotes are a fundamental tool to analyze the behavior of a curve at infinity. In the two previous sections, two algorithmic solutions were presented, one for the case of implicitly defined planar algebraic curves and another for the case of parametric curves.
In both cases, the calculation of the g-asymptotes was carried out from the calculation of the infinity branches of the given curves by means of Puiseux series. Algorithm 1 calculates the g-asymptotes of an implicitly defined curve, while Algorithm 2 constructs these generalized asymptotes from the equation of the curve expressed in parametric way.
This subsection presents a method that improves the results of the previously mentioned algorithms, providing a more efficient computational solution, which can be applied to the case of plane algebraic curves expressed parametrically (see Algorithm 3). Furthermore, although this solution is developed for the case of plane algebraic curves, it can be trivially generalized to the case of rational curves defined in n-dimensional space. The idea of this generalization can be extended in more detail to the case of not necessarily rational curves.
For this purpose, we consider a plane rational curve,
, defined by a parameterization according to Equation (
7):
In the following, it is assumed without loss of generality that , (otherwise, a linear change in variables is applied). With this, , and the infinity branches of will be represented when the variable s moves around the different roots of the denominators and .
The following theorem shows how to obtain a g-asymptote for each of these infinity branches, by calculating the simple limits of rational functions built from .
Theorem 1. Let be a curve defined by a parameterization (see Equation (7))where . Let be such that where , and , and let B be the corresponding infinity branch. A g-asymptote of the curve on the branch B is defined by the parameterizationwhere Remark 2. From Theorem 1 we obtain the parameterization(otherwise, would be an infinity point on the input curve). Note that the degree of the resulting curve is not necessarily , since could be an improper parameterization, which is equivalent to for each , such that . Under these conditions, let for each , such that . So, if , then a proper reparametrization of (see ([27] Section 3)). The following corollary discusses the special case of vertical and horizontal g-asymptotes, that is, lines of the form or , where . More precisely, it is proved that these asymptotes are obtained from the noncommon roots of the denominators of a given parameterization. It should be noted that, in practical engineering design and application modeling, rational curves are normally represented by numerical coefficients and, in general, satisfies that , which implies that the mentioned case usually arises in practical problems.
Corollary 1. Let be a curve defined by a parameterization (see Equation (7))where . - 1.
Let be such that where and . An asymptote of , corresponding to the point of infinity , is the horizontal line defined by the parameterization .
- 2.
Let be such that where and . An asymptote of , corresponding to the point of infinity , is the vertical line defined by the parameterization .
As stated previously, Algorithm 3 improves the results of the methods described above, especially with regard to Algorithm 2, showing a clear improvement in efficiency and reducing the amount of hardware resources required of the computer when constructing the asymptotes of a parametric curve using limits (instead of using the Puiseux series expansion). Algorithm 3 is implemented in
Maple (see
Appendix C).
Example 3. Let be the plane algebraic curve defined by the parameterizationWe apply Algorithm 3. Then, we compute the roots of which are and , with multiplicities and , respectively. The multiplicities of these roots in are and . - Root
:It is obtained that:
There is no horizontal asymptote.
The parameterization coefficients, considering the multiplicities and , are:
,
,
,
The parameterization is proper (see Remark 2).
- Root
:It is obtained that:
There is no horizontal asymptote.
The coefficients of the proper parameterization, considering the multiplicities and , are:
,
,
,
The parameterization is proper (see Remark 2).
Finally, we observe that there are no vertical asymptotes. Consequently, the asymptotes are the curves and defined by the proper parameterizations:Figure 3 plots the curve and the asymptotes and . 3.4. Algorithm with Derivatives for Curves Parametrically Defined
In this subsection, a method is developed that allows calculating all the g-asymptotes and branches of a plane algebraic curve defined by a parameterization by determining some derivatives of univariate functions constructed from the input parameterization. For this purpose, we consider the plane algebraic curve,
, defined by the parameterization,
It is assumed that all roots of the denominators can be written as , such that , where and . Otherwise, it would be considered a linear change in coordinates, which would have to be undone later.
Theorem 2. Let be a curve defined by the parameterizationLet be such that , where and . LetLet B be the corresponding infinity branch. A g-asymptote of B is defined by the parameterizationwhere and for
Remark 3. From Theorem 2, we obtain the parameterizationwhere and for , Note that the degree of the resulting curve is not necessarily n, since could be an improper parameterization, which is equivalent to for each , such that .
Therefore, we have that for each such that . We have that is a proper reparameterization of (see ([27] Section 3)). Next, Algorithm 4 is introduced. It performs the calculation of the asymptotes of a plane algebraic curve, expressed in parametric form, applying the results of the Theorem 2. This algorithm is implemented in
Maple (see
Appendix C).
Example 4. Let be the plane curve defined by the parameterization
We compute the asymptotes of using Algorithm 4. For this purpose, it is first observed that has the roots , with multiplicities and . Let - Root
:We have .
The parameterization coefficients are calculated, knowing that the multiplicity of is .
.
.
.
.
.
Parameterization is proper (see Remark 3).
- Roots
:We have that .
The parameterization coefficients are calculated, knowing that the multiplicity of is .
The parameterization is proper (see Remark 3).
- Root
:We have that .
The parameterization coefficients are calculated, knowing that the multiplicity of is .
The parameterization is proper (see Remark 3).
Then, the asymptotes , and are defined by the proper parametrizations: Figure 4 plots the curve and the asymptotes , , and . Furthermore, it illustrates in detail the behavior of each asymptote. To finish this section, we note that Theorem 2 can be adapted to calculate the associated coefficients to terms with a negative exponent. In this way, in addition to the asymptotes, the branches of a plane algebraic curve can be calculated. One may reason analogously with the case of limits.
4. Analysis of the Computational Performance
This section discusses the performance of the previous algorithms, which construct the g-asymptotes from an irreducible plane algebraic curve. We recall that the first algorithm calculates the g-asymptotes of a curve from its implicit expression, considering the infinity branches that converge to the given curve. The other three methods deal with the case of parametrically defined curves. Note that the first two algorithms are based on the computation of the Puiseux series.
For this purpose, fourteen study cases were randomly selected with different characterizations (see
Appendix B). All these curves constitute the study cases to analyze the computational performance of the algorithms presented in
Section 3, which were programmed with the algebra system
Maple, according to the implementation presented in
Appendix C for implicit and parametric input expressions.
Under these conditions, an analysis of the computational performance of each one of the algorithms presented was carried out (based on the outlines of [
28,
29,
30,
31] to validate the performance of algorithms). The hardware overload degree of the machine resources (CPU and memory) was computed, estimating the time of use of the microprocessor and the amount of memory used for the execution of each one of the procedures defined in
Appendix C. In addition, the value of real time invested by the machine was calculated for the methods presented in
Section 3.
To quantify these results, it is necessary to use the tools provided by the CodeTools package of Maple. Thus, it is important to clarify that the command CodeTools:-Usage differentiates between the CPU time and the execution real time of a process. Thus, CPU time is the amount of time used to execute a procedure. On the other hand, the real execution time calculates the period during which the process remains in the system, from the time it is launched until it is finished, that is, the entire amount of time in which it is using the hardware resources of the system: CPU, memory, input/output, and so on.
Note that on monoprocessor systems, the total CPU usage time will always be less than the real execution time. However, on multiprocessor systems, threads could be spread across multiple cores or CPUs. In this case, the sum of all the usage times of the multiple cores, or processors, is considered as the total CPU usage time, and thus can account for the case that it is greater than the real execution time of the process.
To calculate a precise overload degree, each algorithm under analysis was iterated one hundred times for each one of the study curves. Consequently, it was possible to record reliable results on the system requirements, which are necessary to calculate the asymptotes of a given curve. The comparative criteria are based on the different properties of the input curves, such as the degree and the number of terms, as well as the following results obtained after each execution: number of infinity branches, highest degree of the analyzed asymptotes, number of real asymptotes, and number of complex asymptotes.
It is important to underline that Algorithm 1 and Algorithm 2 compute the infinity branches of the input curve by Puiseux series expansion, using the command algcurves:-puiseux from the algebra software Maple, with the desired accuracy fixed to ten for the calculation of the Puiseux series expansions.
From a hardware point of view, the processes were executed by a 2018 Mac Book Pro, with an Intel Core i5 processor, with four cores 2.3 GHz, 16 GiB of 2133 MHz LPDDR3 memory, Intel Iris graphics card Plus 1536 MiB Graphics 655, and 500 GiB SSD. The computer algebra software Maple 2021.1 was run on the operating system macOS Monterrey, version 12.3.1.
The following subsections present the analysis of the results obtained after the application of the methods developed for the calculation of the asymptotes of plane algebraic curves, each of them with a different characterization. Finally, in
Section 5 a comparative analysis of the algorithms is carried out.
4.1. Computation of Asymptotes of Implicitly Algebraic Curves
This subsection presents the results of running Algorithm 1 one hundred times, with accuracy equal to ten for the Puiseux series expansion, on the fourteen curves presented in
Appendix B. We compute the implicit polynomial of a parametric curve using resultants (see [
32]).
Table 1 shows the properties for the input curves and their asymptotes. The curve with the highest degree and the highest number of terms is
. In this case, one may check that the asymptotes have degrees 1 and 3, much lower than the degree of
, which is 17.
We observe that the curve is the only one with the lowest degree and the fewest number of terms. This curve has two infinity branches and the highest degree of the asymptote is 2.
Table 2 shows that the curve
requires the longest execution time and generates the highest overhead in the microprocessor and memory when Algorithm 1 is run. Note that the highest consumption of hardware resources corresponds to the running of the algorithm with this curve, which is the one with the highest degree and the highest number of terms. In this case, the execution consumes 283.47 ms of real time in the system and requires 362.72 ms of CPU usage and 10.55 MiB of memory.
It is convenient to highlight the results concerning the curves and of degrees 13 and 9, respectively. Algorithm 1 presented the highest performance, and the obtained asymptotes has a degree of 2. In particular, the curve has six complex asymptotes and one real linear asymptote.
In a direct method, in order to compute the complex asymptotes, one would introduce algebraic numbers during the computations. However, for these cases, we collect the points whose coordinates depend algebraically on all the conjugate roots of a same irreducible polynomial,
. This method is based on the notion of family of conjugate points (see e.g., [
32]). This concept allows us to determine the asymptotes of a curve without directly introducing algebraic numbers in the computations.
Finally, results for the curve of degree 9 show three real linear asymptotes and two complex asymptotes. Similarly, as in the previous curve, we have to collect the points whose coordinates depend algebraically on all the conjugate roots of a same irreducible polynomial .
Thus, regarding the use of resources,
Table 2 shows that curve
requires the highest resources from the system, and it produces the most overload on the microprocessor and memory, while curves
and
require the least amount of system resources.
Finally, it is convenient to highlight the particularities of the curves and . Note that, in both cases, the algorithm used the least amount of time to calculate the respective asymptotes of both curves. Furthermore, the highest degree of the asymptotes constructed with Algorithm 1 is 2, much lower than the 13 and 9 degrees of the input curves and , respectively.
4.2. Computation of Asymptotes of Parametric Algebraic Curves
This subsection presents the results obtained by executing the methods described in
Appendix C, with an accuracy equal to ten for the Puiseux series expansion. We consider the parametric curves defined in
Appendix B, given according to Equation (
7):
Table 3 shows the same results as the implicit case, except for the # Terms row.
Table 4 shows that, for the case of curves expressed in parametric form, Algorithm 2 presents a lower efficiency than Algorithm 1. In most cases, this algorithm produces a higher system overhead and requires more hardware resources. Thus, it can be seen that Algorithm 2 generates the highest real execution times, requiring a greater time of use of the microprocessor and a bigger memory capacity for all the study cases.
The greatest hardware resource requirements correspond to the calculation of the asymptotes of the curves and , where the algorithm needed more than 24 h of CPU usage and more than 100 GiB of memory.
Moreover, the execution of the algorithm with the input curve requires 17 s of real time, 23 s of microprocessor usage time, and 2.55 GiB of memory; which contrasts sharply with applying Algorithm 1 to the implicit curve , with a real execution time of 6.88 ms, 7.13 ms of CPU usage and 602.33 KiB of memory.
On the other hand, it is interesting to note that the application of Algorithm 2 for the calculation of the asymptotes of the curve presents the least degree of overload, even compared with the application of Algorithm 1 to the case of the implicit curve .
However, if these results are compared with those of
Table 2, it is observed that as the complexity of the curve increases, the CPU usage time, the real execution time, and the memory needs increase exponentially.
4.3. Computation of Asymptotes of Parametric Algebraic Curves with Limits
Table 5 shows the results of executing Algorithm 3 to construct the asymptotes of the curves in
Appendix B, from the parametric expressions. Note that this result is the same as the one in
Table 3.
Table 6 allows us to review the degree of overload that this algorithm produces in the system.
Table 6 shows a greater general efficiency in managing the computer’s memory than Algorithms 1 and 2. Improvements are also observed in the times of CPU usage and real stay in the system, highlighting the behavior of the curves
and
.
The first case, the curve
, corresponds to the curve for which Algorithm 3 required the greatest real time and generated the greatest overload in the microprocessor with the greatest need for memory. However, in this case, the resource usage is much lower than the previous results of
Table 2 and
Table 4, with only 62.82 ms residence time in the system, 59.25 ms of CPU usage, and 1.21 MiB of memory.
In the second case, the curve , the lowest overhead was obtained with only 6.48 ms of real time in the system, 5.92 ms of CPU usage, and 0.5 MiB of memory. Thus, this curve, of degree five, shows the least degree of overload when constructing its two real asymptotes with Algorithm 3.
4.4. Computation of Asymptotes of Parametric Algebraic Curves with Derivatives
Table 7 shows the results of executing Algorithm 4 to construct the curve asymptotes of
Appendix B, using some derivatives of univariate functions. Note that this result is consistent with that of
Table 3 and
Table 5.
Table 8 shows the degree of overload that this algorithm produces in the system. In this case, a very significant improvement is presented with respect to the previous cases, Algorithms 1–3.
In almost all the input curves, except for the case of , the use of hardware resources, time of use of the microprocessor, time of real stay in the system, and memory capacity, show the highest efficiency.
The exception occurs for the case of the construction of the asymptotes of the curve , which requires more memory, more CPU time, and stays longer in the system than for the case of Algorithm 3.
Note that the best performance is obtained by constructing the curve asymptotes of the simplest curve, , with only 2.55 ms processor usage, 2.68 ms of permanence in the system, and 223.10 KiB of memory capacity. The curve that generates the greatest overload is , which requires 50 ms of CPU, with a real time of 48.29 ms and 7.27 MiB of memory.
We briefly analyze the particular case of the asymptotes obtained for the curve . This curve has a complex asymptote of degree five and two real asymptotes of degrees three and two. Similarly as above, in this case, we need to introduce conjugate points, that is, we collect the points whose coordinates depend algebraically on all the conjugate roots of a same irreducible polynomial, . Note that working with the conjugate points of the complex asymptote introduces the greatest degree of overhead.
5. Results and Discussion
In this section, a comparative analysis of Algorithms 1–4 is presented. For this purpose, some properties of the input curves are considered, as well as the results obtained when constructing the respective asymptotes (see
Appendix B).
Table 9 allows to review the efficiency of each algorithm and establishes comparative criteria regarding the time of use of the CPU from the simplest curve that is, the one with the lowest degree and the fewest number of terms,
, with respect to the curve of greater complexity,
.
Table 9 compares the CPU usage times after the execution of each of the four algorithms used for the construction of asymptotes of the curves
–
. The worst results are highlighted in red, and the five best CPU usage times are highlighted in green, given mainly when Algorithm 4 constructs the asymptotes of the curves
,
,
, and
.
Figure 5 represents the behavior of each of the algorithms, depending on the degree of the input curve (axis
x), with respect to the CPU usage time (axis
y) expressed in milliseconds. Note that this is a linear–logarithmic plot, based on 10, in which the trend lines are exponential.
Analyzing Algorithm 4, the highest efficiency is observed, since it requires the least amount of CPU usage time. Likewise, it is also shown that, for all algorithms, the degree of the curve determines the microprocessor time needed to build the asymptotes.
On the other hand, it is noteworthy that although Algorithm 2 behaves well with simple curves (see curve
in
Table 9), CPU usage time increases exponentially as the degree of the input curve increases (see curves
and
in
Table 9).
Figure 6 shows how as the number of terms of the input curve increases the CPU time needed to execute Algorithm 3. However, the density of the input curve seems to affect the efficiency of the rest of the algorithms analyzed to a lesser extent. Note that, in this case, Algorithm 1 is not evaluated. This is due to the fact that the implicit case does not allow establishing a comparative criterion with the rest of the algorithms in what refers to the density of the input curve.
On the other hand, the same thing happens in
Figure 7. Algorithm 2 requires more CPU time in cases where a high number of branches is observed (remember that trend lines are exponential). However, it does not seem that the number of branches determines the time of use of the microprocessor in the case of the other algorithms represented.
Figure 8 shows the CPU time required by each algorithm, as a function of the highest degree of the asymptotes, of each of the input curves. It can be seen that Algorithm 4 is the one that, in general, presents the highest efficiency, since it requires the least amount of CPU time.
Likewise, it is also shown that Algorithm 2 has a quite disparate behavior, since it does not seem that the degree of the asymptotes affects the CPU usage time for this algorithm.
Table 10 shows the real time it takes to execute each algorithm for each of the curves, with results very similar to those obtained in
Table 9, which is quite logical because both times are related.
We recall that real time refers to the period from when the process starts until it ends, that is, the time it remains in the system. Note that, in some cases, this time is less than the microprocessor usage time, because the
Maple computer algebra software executes on a multicore system. In this case, the CPU usage time is the sum of all the usage times of the different microprocessor cores. This sum is what determines the total CPU value given in
Table 9.
In
Table 10, the worst global results are highlighted in red, and they correspond to Algorithm 2, executed with the input curves
and
. In addition, the five best CPU usage times are shown in green, and they correspond to Algorithm 2, executed with the input curve
and when the asymptotes of the curves
,
,
, and
are determined with Algorithm 4.
It can be verified that these results show an efficiency similar to that obtained when CPU usage time is computed (see
Table 9).
Finally,
Table 11 allows comparing the memory needs of the analyzed algorithms. The worst results are highlighted in red, and the five best CPU usage times are highlighted in green. These times correspond to Algorithm 4 when constructing the asymptotes of the curves
,
,
,
, and
.
With this hardware resource, the algorithm that marks the best results is Algorithm 4, followed by Algorithms 1 and 3. However, for the case of Algorithm 2, the hardware memory requirements grow exponentially with the degree of the input curve and the number of terms of the input curve.
Figure 9 and
Figure 10 reflect the behavior of each of the algorithms considering the parameters of the input curve regarding memory.
For the analysis of these figures, we remark that the y-axis is logarithmic, base 10, and that the trend lines are exponential.
On the other hand, looking at
Figure 11, it does not seem that the number of branches is a determining condition for memory needs in the case of the analyzed algorithms. The same happens in
Figure 12. In both cases, it can be seen that Algorithm 4 is the one that, in general, presents the highest efficiency with the least amount of memory needed to be able to execute it. However, Algorithm 2 has quite disparate behavior, since neither the number of branches nor the highest degree of the asymptotes seems to determine the memory requirements to execute the algorithm. For example, it can be seen that for asymptotes whose maximum degree is two, the memory needs can range between 276.03 KiB for the curve
and 2.59 GiB for the curve
.
Finally, it can be stated that Algorithm 4 is the one that presents the best computational performance, requiring the least amount of hardware resources: CPU time, real execution time, and amount of memory. Likewise, it is also shown that, for all algorithms, the degree of the curve is the parameter that determines, to a greater extent, the amount of system resources needed to build the asymptotes.
On the other hand, it is noteworthy that Algorithm 2 has a good behavior with “simple” curves’ see the values for the case of the curves
and
in
Table 9,
Table 10 and
Table 11. However, it is a very “heavy” algorithm when the degree of the input curve increases and the number of terms increases, in which case the hardware needs of said algorithm increase exponentially (see curves
and
in the tables above).
The results of this evaluation show how the Algorithms 3 and 4, additionally to improving the degree of system overload, are more efficient than Algorithms 1 and 2, mainly highlighting the results of Algorithm 4.
On the other side, Algorithm 2 is the one that requires the most resources, generating the greatest overhead in the system, mainly due to the complexity introduced by the computation of the Puiseux series. In addition, the higher the precision for obtaining the series, the greater memory capacity and longer execution time the process requires.
After carrying out this analysis, we have the following conclusions regarding the main aspects that determine the greatest overload in the system, when the g-asymptotes of a given curve are constructedwith: the degree of the input curve, the number of terms of the input curve, and the degree of complex asymptotes.
On the other hand, it was observed that the precision applied when performing the Puiseux series expansion determines the memory capacity needed by the process. At higher precision, the memory requirement grows exponentially and, also, although to a lesser extent, the CPU time and the real execution time.
These results support the idea that the proposed methods can be used effectively for solving large-scale problems, without the high computational resource utilization requirements imposed by previous methods based on the development of Puiseux series. In particular, Algorithms 3 and 4 improve the efficiency of the previous methods (Algorithms 1 and 2), showing higher computational performance, requiring fewer hardware resources, and considerably reducing the degree of computer overload.
6. Conclusions and Future Works
The g-asymptotes determine the behavior of a curve at infinity. The importance of these entities is clear for, for instance, plotting the graph of the input curve, studying the topology, or giving some ideas to deal with some numerical problems. In addition, using these mathematical objects, predictive or trend calculation models can be established, which could improve, for instance, results of simple linear regression.
As future work, it is proposed to generalize these results to curves defined by a nonrational parametrization (see [
25]), as well as to surfaces, and to study the families of existing asymptotes.
Furthermore, we think that as future works, these methods could satisfactorily be extended to enhanced fuzzy-based algorithms, interval environment or shortest path problem solving (see for instance [
33,
34,
35]).
Although this article computes “real” performance and the system overload of the algorithms proposed, the point we wish to make here is the importance of time complexity, which is difficult to compute exactly. Nevertheless, we estimated some preliminary results that confirm the analytical discussion presented in this article, where the time complexity to calculate the Puiseux series is too high (see [
36]) compared with the calculation of limits or derivatives (see [
37]), even if they are of different orders.
Our main objective is to propose methods that can be used effectively to solve large-scale problems, including real-world cases and symmetry issues, without the high computational requirements.