Hi,
I don't know, whether i am fine to use this forum. Please apologize, if i am not supposed to be posting here. I am a software developer involved in open source development. I will try to give a background of my question.
a) In a database, the way to go about indexing the data is usually with B+ Trees. So whenever we insert a data into a table, we make an index entry, so that people who search for data will get access to the inserted data.
b) There is a concept called function based indexes, wherein instead of indexing on a particular value(say x), we index on f(x), where f is a function. Sometimes, we need to reach the index entry from the table entry. For example, when we want to delete the data in the table, we need to mark the data in the index also as deleted. So when i accept a function, i need to know whether f(x) will always be the same for a given x. For example a random number generator cannot give the same value for two calls to the same function. Is there a way to determine whether a function will return the same output for same input, irrespective of the number of times it is called? We term these kind of functions as volatile functions
c) Similarly, we allow users to define a data type and an ordering for that data type. For example complex numbers don't have ordering. So the user should write a function, which compares two complex numbers and say which is greater. This is necessary for insertion into B+ Tree. Here we need to find those functions which behave like this.
say there are three values a,b,c and the function returns a > b, b > c and c > a(actually it should have been a > c). We call these type of data types as broken data types. Is there a mathematical way to find out such broken data type comparison functions?
Thanks,
Gokul.
I don't know, whether i am fine to use this forum. Please apologize, if i am not supposed to be posting here. I am a software developer involved in open source development. I will try to give a background of my question.
a) In a database, the way to go about indexing the data is usually with B+ Trees. So whenever we insert a data into a table, we make an index entry, so that people who search for data will get access to the inserted data.
b) There is a concept called function based indexes, wherein instead of indexing on a particular value(say x), we index on f(x), where f is a function. Sometimes, we need to reach the index entry from the table entry. For example, when we want to delete the data in the table, we need to mark the data in the index also as deleted. So when i accept a function, i need to know whether f(x) will always be the same for a given x. For example a random number generator cannot give the same value for two calls to the same function. Is there a way to determine whether a function will return the same output for same input, irrespective of the number of times it is called? We term these kind of functions as volatile functions
c) Similarly, we allow users to define a data type and an ordering for that data type. For example complex numbers don't have ordering. So the user should write a function, which compares two complex numbers and say which is greater. This is necessary for insertion into B+ Tree. Here we need to find those functions which behave like this.
say there are three values a,b,c and the function returns a > b, b > c and c > a(actually it should have been a > c). We call these type of data types as broken data types. Is there a mathematical way to find out such broken data type comparison functions?
Thanks,
Gokul.