Groups
Groups
Sign in
Groups
Groups
ats-lang-users
Conversations
Labels
About
Send feedback
Help
Best way to handle short-living linear objects
55 views
Skip to first unread message
Russoul
unread,
Oct 20, 2017, 10:11:00 AM
10/20/17
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ats-lang-users
Let's treat `list_vt(a,n)` as algebraic vector of dim 'n'. Then let's perform some operations on a bunch of them:
(*pseudocode*)
...
val a = $list_vt(1,0,0)
val b = $list_vt(0,1,0)
val c = a \cross b
val d = c * PI
...
val _ = free a
val _ = free b
val _ = free c
val _ = free d
(*end of code fragment*)
Cleaning(freeing) after simple algebraic operations in the above example is tedious. And I suppose it can become a real pain in math extensive code.
What is the way out ?
Steinway Wu
unread,
Oct 20, 2017, 10:21:27 AM
10/20/17
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ats-lan...@googlegroups.com
I guess you can define \cross and * as functions that consume the linear lists and return a new one?
Russoul
unread,
Oct 20, 2017, 10:29:19 AM
10/20/17
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ats-lang-users
Yes, but that is not modular. What if I need the inputs later ? Then I'll have to copy them. Consuming the inputs is also a bit confusing.
пятница, 20 октября 2017 г., 17:21:27 UTC+3 пользователь Steinway Wu написал:
gmhwxi
unread,
Oct 20, 2017, 10:31:36 AM
10/20/17
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ats-lang-users
This issue is related to the way library functions are implemented.
For instance, \cross may free both of its arguments.
A few years ago, I did a package for doing linear algebra:
https://github.com/githwxi/ATS-Postiats-contrib/tree/master/contrib/libfloats
And you may take a look at the function interface:
https://github.com/githwxi/ATS-Postiats-contrib/tree/master/contrib/libfloats/SATS
In this day and age of machine learning, I may need to revisit this package :)
On Friday, October 20, 2017 at 10:11:00 AM UTC-4, Russoul wrote:
gmhwxi
unread,
Oct 20, 2017, 10:33:10 AM
10/20/17
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ats-lang-users
No, you don't. You can use reference counting. See the libfloats
package I posted in my previous message.
Reply all
Reply to author
Forward
0 new messages