473,396 Members | 1,703 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

java.math.BigInteger

281 100+
I don't understand about this program is doing. Could someone please tell me what it is about. Because I have gcd function in one program that calls this function. Thanks a lot
Expand|Select|Wrap|Line Numbers
  1.  
  2. switch (opcode) {
  3. case GCD:       out = b1.gcd(b2).toString();
  4.                             break;
Expand|Select|Wrap|Line Numbers
  1. /**
  2.      * Returns a BigInteger whose value is the greatest common divisor of
  3.      * <tt>abs(this)</tt> and <tt>abs(val)</tt>.  Returns 0 if
  4.      * <tt>this==0 &amp;&amp; val==0</tt>.
  5.      *
  6.      * @param  val value with with the GCD is to be computed.
  7.      * @return <tt>GCD(abs(this), abs(val))</tt>
  8.      */
  9.     public BigInteger gcd(BigInteger val) {
  10.         if (val.signum == 0)
  11.         return this.abs();
  12.     else if (this.signum == 0)
  13.         return val.abs();
  14.  
  15.         MutableBigInteger a = new MutableBigInteger(this);
  16.         MutableBigInteger b = new MutableBigInteger(val);
  17.  
  18.         MutableBigInteger result = a.hybridGCD(b);
  19.  
  20.         return new BigInteger(result, 1);
  21.     }
Mar 19 '07 #1
19 6424
r035198x
13,262 8TB
I don't understand about this program is doing. Could someone please tell me what it is about. Because I have gcd function in one program that calls this function. Thanks a lot
Expand|Select|Wrap|Line Numbers
  1.  
  2. switch (opcode) {
  3. case GCD: out = b1.gcd(b2).toString();
  4. break;
Expand|Select|Wrap|Line Numbers
  1. /**
  2. * Returns a BigInteger whose value is the greatest common divisor of
  3. * <tt>abs(this)</tt> and <tt>abs(val)</tt>. Returns 0 if
  4. * <tt>this==0 &amp;&amp; val==0</tt>.
  5. *
  6. * @param val value with with the GCD is to be computed.
  7. * @return <tt>GCD(abs(this), abs(val))</tt>
  8. */
  9. public BigInteger gcd(BigInteger val) {
  10. if (val.signum == 0)
  11.      return this.abs();
  12.     else if (this.signum == 0)
  13.      return val.abs();
  14.  
  15. MutableBigInteger a = new MutableBigInteger(this);
  16. MutableBigInteger b = new MutableBigInteger(val);
  17.  
  18. MutableBigInteger result = a.hybridGCD(b);
  19.  
  20. return new BigInteger(result, 1);
  21. }
which part specifically do you not understand?
Mar 19 '07 #2
shana07
281 100+
which part specifically do you not understand?
The java package code. From my reading, signum is either '+', '-' or 0.
Then, mutableBigInteger is for what?
As for gcd (a, b) calculation actually is about
a.gcd(b)
Then it involves with operator 'mod' to get remainder.
Where can I check those operators?

Expand|Select|Wrap|Line Numbers
  1. public BigInteger gcd(BigInteger val) {
  2. if (val.signum == 0)
  3.      return this.abs();
  4.     else if (this.signum == 0)
  5.      return val.abs();
  6.  
  7. MutableBigInteger a = new MutableBigInteger(this);
  8. MutableBigInteger b = new MutableBigInteger(val);
  9.  
  10. MutableBigInteger result = a.hybridGCD(b);
  11.  
  12. return new BigInteger(result, 1);
  13. }
Mar 19 '07 #3
r035198x
13,262 8TB
The java package code. From my reading, signum is either '+', '-' or 0.
Then, mutableBigInteger is for what?
As for gcd (a, b) calculation actually is about
a.gcd(b)
Then it involves with operator 'mod' to get remainder.
Where can I check those operators?

Expand|Select|Wrap|Line Numbers
  1. public BigInteger gcd(BigInteger val) {
  2. if (val.signum == 0)
  3.      return this.abs();
  4.     else if (this.signum == 0)
  5.      return val.abs();
  6.  
  7. MutableBigInteger a = new MutableBigInteger(this);
  8. MutableBigInteger b = new MutableBigInteger(val);
  9.  
  10. MutableBigInteger result = a.hybridGCD(b);
  11.  
  12. return new BigInteger(result, 1);
  13. }
MutableBigInteger is another class in the java.math package. It's implementation of hybridGCD is

Expand|Select|Wrap|Line Numbers
  1.  
  2. MutableBigInteger hybridGCD(MutableBigInteger b) {
  3.         // Use Euclid's algorithm until the numbers are approximately the
  4.         // same length, then use the binary GCD algorithm to find the GCD.
  5.         MutableBigInteger a = this;
  6.         MutableBigInteger q = new MutableBigInteger(),
  7.                           r = new MutableBigInteger();
  8.         while (b.intLen != 0) {
  9.             if (Math.abs(a.intLen - b.intLen) < 2)
  10.                 return a.binaryGCD(b);
  11.             a.divide(b, q, r);
  12.             MutableBigInteger swapper = a;
  13.             a = b; b = r; r = swapper;
  14.         }
  15.         return a;
  16.     }
  17.  
Mar 19 '07 #4
shana07
281 100+
MutableBigInteger is another class in the java.math package. It's implementation of hybridGCD is

Expand|Select|Wrap|Line Numbers
  1.  
  2. MutableBigInteger hybridGCD(MutableBigInteger b) {
  3.         // Use Euclid's algorithm until the numbers are approximately the
  4.         // same length, then use the binary GCD algorithm to find the GCD.
  5.         MutableBigInteger a = this;
  6.         MutableBigInteger q = new MutableBigInteger(),
  7.                           r = new MutableBigInteger();
  8.         while (b.intLen != 0) {
  9.             if (Math.abs(a.intLen - b.intLen) < 2)
  10.                 return a.binaryGCD(b);
  11.             a.divide(b, q, r);
  12.             MutableBigInteger swapper = a;
  13.             a = b; b = r; r = swapper;
  14.         }
  15.         return a;
  16.     }
  17.  
Oh it's there...alright. TQ
One more question I need to consult you.Is it possible for me to replace any operators inside this class (only gcd subroutines)? Seems I can't do mutation on my program (that calls gcd class) .
* Aim - to do mutation to this gcd function. Because I remember last time, I tried on other java default pakcages and from netbean I can't open that package anymore once I changed it (unzipped the packages and zipped back).....sorry If this confusing you....
Mar 19 '07 #5
r035198x
13,262 8TB
Oh it's there...alright. TQ
One more question I need to consult you.Is it possible for me to replace any operators inside this class (only gcd subroutines)? Seems I can't do mutation on my program (that calls gcd class) .
* Aim - to do mutation to this gcd function. Because I remember last time, I tried on other java default pakcages and from netbean I can't open that package anymore once I changed it (unzipped the packages and zipped back).....sorry If this confusing you....
Do not change any classes in your java directories.
If you need to use any of them, copy them somewhere else and edit them there if you need to.
Mar 19 '07 #6
shana07
281 100+
Do not change any classes in your java directories.
If you need to use any of them, copy them somewhere else and edit them there if you need to.
Meaning to say that this is possible for me to do so isn't.
I need your advice regarding this please..
1. I have copied those two default java classes in my program under test
2. I renamed classes names as below:

java.math.BigInteger >>> jonelo.sugar.math.MutableBigIntegerMutant
java.math.MutableBigInteger >>> jonelo.sugar.math.BigIntMutant

3. And I have renamed all methods/variables/constructors with BigIntMutant
and MutableBigIntegerMutant

4. Is that possible for me to ask my program to refer to these two new classes when it calls gcd (I changed gcd method >>> gcdMutant).
Expand|Select|Wrap|Line Numbers
  1. case GCD:       out = b1.gcdMutant(b2).toString();
  2.                             break;
When I compile my main program - these 3 errors occured, Please advise what should I do..thank you

Main.java:31: cannot find symbol
symbol : class BigIntMutant
location: package jonelo.sugar.math
import jonelo.sugar.math.BigIntMutant;
^
Main.java:32: cannot find symbol
symbol : class MutableBigIntegerMutant
location: package jonelo.sugar.math
import jonelo.sugar.math.MutableBigIntegerMutant;
^
Main.java:528: cannot find symbol
symbol : method gcdMutant(java.math.BigInteger)
location: class java.math.BigInteger
case GCD: out = b1.gcdMutant(b2).toString();
^
3 errors
Mar 20 '07 #7
r035198x
13,262 8TB
Meaning to say that this is possible for me to do so isn't.
I need your advice regarding this please..
1. I have copied those two default java classes in my program under test
2. I renamed classes names as below:

java.math.BigInteger >>> jonelo.sugar.math.MutableBigIntegerMutant
java.math.MutableBigInteger >>> jonelo.sugar.math.BigIntMutant

3. And I have renamed all methods/variables/constructors with BigIntMutant
and MutableBigIntegerMutant

4. Is that possible for me to ask my program to refer to these two new classes when it calls gcd (I changed gcd method >>> gcdMutant).
Expand|Select|Wrap|Line Numbers
  1. case GCD: out = b1.gcdMutant(b2).toString();
  2. break;
When I compile my main program - these 3 errors occured, Please advise what should I do..thank you

Main.java:31: cannot find symbol
symbol : class BigIntMutant
location: package jonelo.sugar.math
import jonelo.sugar.math.BigIntMutant;
^
Main.java:32: cannot find symbol
symbol : class MutableBigIntegerMutant
location: package jonelo.sugar.math
import jonelo.sugar.math.MutableBigIntegerMutant;
^
Main.java:528: cannot find symbol
symbol : method gcdMutant(java.math.BigInteger)
location: class java.math.BigInteger
case GCD: out = b1.gcdMutant(b2).toString();
^
3 errors
First you will need to make sure that the classes you copied are not referencing other classes that you may not have copied.
Then you need to make sure that your import statements are correct e.g you cannot import a class that you are actually writting code for.
Mar 20 '07 #8
shana07
281 100+
First you will need to make sure that the classes you copied are not referencing other classes that you may not have copied.
Then you need to make sure that your import statements are correct e.g you cannot import a class that you are actually writting code for.
good example. Help me take a look at this import of the Main class. Why when I compile the Main class comes that errors: can't find class from that import statement....

Expand|Select|Wrap|Line Numbers
  1. package jonelo.bigal;
  2. import java.io.*;
  3. import java.math.BigInteger;
  4. import java.math.BigDecimal;
  5. import jonelo.sugar.math.GeneralMath; // ** Check: This default class from this program
  6.  
  7. import jonelo.sugar.math.BigIntMutant; //** Check: That's why I put these altered class in here
  8. import jonelo.sugar.math.MutableBigIntegerMutant; //** Check: same as this
  9.  
Mar 20 '07 #9
r035198x
13,262 8TB
good example. Help me take a look at this import of the Main class. Why when I compile the Main class comes that errors: can't find class from that import statement....

Expand|Select|Wrap|Line Numbers
  1. package jonelo.bigal;
  2. import java.io.*;
  3. import java.math.BigInteger;
  4. import java.math.BigDecimal;
  5. import jonelo.sugar.math.GeneralMath; // ** Check: This default class from this program
  6.  
  7. import jonelo.sugar.math.BigIntMutant; //** Check: That's why I put these altered class in here
  8. import jonelo.sugar.math.MutableBigIntegerMutant; //** Check: same as this
  9.  
Did you set up the directory structure correctly?
Mar 20 '07 #10
shana07
281 100+
Did you set up the directory structure correctly?
I think yes, because I just paste the two classes in that directory.
So in the src\jonelo\sugar\math directory contains classes:

GeneralMath
MutableBigIntegerMutant
BigIntMutant

What else should be done you think...
Mar 20 '07 #11
r035198x
13,262 8TB
I think yes, because I just paste the two classes in that directory.
So in the src\jonelo\sugar\math directory contains classes:

GeneralMath
MutableBigIntegerMutant
BigIntMutant

What else should be done you think...
and you put the package name correctly in the classes in the package statement.
Mar 20 '07 #12
shana07
281 100+
and you put the package name correctly in the classes in the package statement.
Hurm, I need to consult you about this naming directory/package which I am not clear about it. I have located my program such this:

D:\Assignments\GOOD\BigAl\BigAl\bigal-src\
inside there contains:
jonelo\bigal\ * 3 classes: Main, Algorithm, BigAlException
jonelo\sugar\math\ * classes: GeneralMath, BigIntMutant, MutableBigIntegerMutant
jonelo\sugar\util\ *1 class: General

So, from where should I put import statement in Main class?
This is my import statements in Main class, please correct if I made wrong

package jonelo.bigal;

import java.io.*;
import java.math.BigInteger;
import java.math.BigDecimal;

import jonelo.sugar.math.GeneralMath;
import jonelo.sugar.math.BigIntMutant;
import jonelo.sugar.math.MutableBigIntegerMutant;
Mar 20 '07 #13
r035198x
13,262 8TB
Hurm, I need to consult you about this naming directory/package which I am not clear about it. I have located my program such this:

D:\Assignments\GOOD\BigAl\BigAl\bigal-src\
inside there contains:
jonelo\bigal\ * 3 classes: Main, Algorithm, BigAlException
jonelo\sugar\math\ * classes: GeneralMath, BigIntMutant, MutableBigIntegerMutant
jonelo\sugar\util\ *1 class: General

So, from where should I put import statement in Main class?
This is my import statements in Main class, please correct if I made wrong

package jonelo.bigal;

import java.io.*;
import java.math.BigInteger;
import java.math.BigDecimal;

import jonelo.sugar.math.GeneralMath;
import jonelo.sugar.math.BigIntMutant;
import jonelo.sugar.math.MutableBigIntegerMutant;
Why don't you try to put all your classes in one package first.
Mar 20 '07 #14
shana07
281 100+
Why don't you try to put all your classes in one package first.
This porblem is solved. I created one package like javah/math/BigInteger.
Then I used netbeans to build and run.
About this, i need to ask you: build in netbeans is same as compile?
Then I can see there is one jar created with same program name and build folder?....What happened was, I used prompt before to compile them one by one.

One more thing, what is this statement means?
Expand|Select|Wrap|Line Numbers
  1.  int k = (s1 < s2) ? s1 : s2;
Mar 21 '07 #15
r035198x
13,262 8TB
This porblem is solved. I created one package like javah/math/BigInteger.
Then I used netbeans to build and run.
About this, i need to ask you: build in netbeans is same as compile?
Then I can see there is one jar created with same program name and build folder?....What happened was, I used prompt before to compile them one by one.

One more thing, what is this statement means?
Expand|Select|Wrap|Line Numbers
  1.  int k = (s1 < s2) ? s1 : s2;
It's a short cut way of writing the if-else construct. Play around with it and you will understand it better then.
Mar 21 '07 #16
shana07
281 100+
Again about java/math package ...
1. I do need help to understand what is this program for.
2. In what situation then it calls binaryGCD (different binaryGCD & hybridGCD)
please..thanks
Expand|Select|Wrap|Line Numbers
  1.  /**
  2.      * Calculate GCD of this and b. This and b are changed by the computation.
  3.      */
  4.     MutableBigInteger hybridGCD(MutableBigInteger b)      {
  5.         // Use Euclid's algorithm until the numbers are approximately the
  6.         // same length, then use the binary GCD algorithm to find the GCD.
  7.         MutableBigInteger a = this;
  8.         MutableBigInteger q = new MutableBigInteger(),
  9.                           r = new MutableBigInteger();
  10.  
  11.         while (b.intLen != 0) 
  12.         {
  13.             if (Math.abs(a.intLen - b.intLen) < 2)
  14.                 return a.binaryGCD(b);
  15.             a.divide(b, q, r);
  16.             MutableBigInteger swapper = a;
  17.             a = b; b = r; r = swapper;
  18.         }
  19.         return a;
  20.     }
Mar 22 '07 #17
r035198x
13,262 8TB
Again about java/math package ...
1. I do need help to understand what is this program for.
2. In what situation then it calls binaryGCD (different binaryGCD & hybridGCD)
please..thanks
Expand|Select|Wrap|Line Numbers
  1.  /**
  2. * Calculate GCD of this and b. This and b are changed by the computation.
  3. */
  4. MutableBigInteger hybridGCD(MutableBigInteger b) {
  5. // Use Euclid's algorithm until the numbers are approximately the
  6. // same length, then use the binary GCD algorithm to find the GCD.
  7. MutableBigInteger a = this;
  8. MutableBigInteger q = new MutableBigInteger(),
  9. r = new MutableBigInteger();
  10.  
  11. while (b.intLen != 0) 
  12. {
  13. if (Math.abs(a.intLen - b.intLen) < 2)
  14. return a.binaryGCD(b);
  15. a.divide(b, q, r);
  16. MutableBigInteger swapper = a;
  17. a = b; b = r; r = swapper;
  18. }
  19. return a;
  20. }

What it's used for can be anything where one fells they need the gcd and when it calls which method is actually explained by the comment there :

// Use Euclid's algorithm until the numbers are approximately the
// same length, then use the binary GCD algorithm to find the GCD.
Mar 22 '07 #18
shana07
281 100+
What it's used for can be anything where one fells they need the gcd and when it calls which method is actually explained by the comment there :

// Use Euclid's algorithm until the numbers are approximately the
// same length, then use the binary GCD algorithm to find the GCD.
meaning to say, if I need to write one calculation program to test :
45.gcd(5) or gcd (45, 5) >>> it will call hybrid function and binary both?
Sorry, I need to paste long codes here to show my query .....thanks
Expand|Select|Wrap|Line Numbers
  1. while (b.intLen != 0) 
  2.         {
  3.             if (Math.abs(a.intLen - b.intLen) < 2)
  4.                 return a.binaryGCD(b);
  5.             a.divide(b, q, r);
  6.             MutableBigInteger swapper = a;
  7.             a = b; b = r; r = swapper;
  8.         }
  9.         return a;
  10.     }
  11.  
  12.  
  13.     /**
  14.      * Calculate GCD of this and v.
  15.      * Assumes that this and v are not zero.
  16.      */
  17.     private MutableBigInteger binaryGCD(MutableBigInteger v)      {
  18.         // Algorithm B from Knuth section 4.5.2
  19.         MutableBigInteger u = this;
  20.         MutableBigInteger q = new MutableBigInteger(),
  21.             r = new MutableBigInteger();
  22.  
  23.         // step B1
  24.         int s1 = u.getLowestSetBit();
  25.         int s2 = v.getLowestSetBit();
  26.         int k = (s1 < s2) ? s1 : s2;  //
  27.         if (k != 0) {
  28.             u.rightShift(k);
  29.             v.rightShift(k);
  30.         }
  31.  
  32.         // step B2
  33.         boolean uOdd = (k==s1);
  34.         MutableBigInteger t = uOdd ? v: u;
  35.         int tsign = uOdd ? -1 : 1;
  36.  
  37.         int lb;
  38.         while ((lb = t.getLowestSetBit()) >= 0) {
  39.             // steps B3 and B4
  40.             t.rightShift(lb);
  41.             // step B5
  42.             if (tsign > 0)
  43.                 u = t;
  44.             else
  45.                 v = t;
  46.  
  47.             // Special case one word numbers
  48.             if (u.intLen < 2 && v.intLen < 2) {
  49.                 int x = u.value[u.offset];
  50.                 int y = v.value[v.offset];
  51.                 x  = binaryGcd(x, y);
  52.                 r.value[0] = x;
  53.                 r.intLen = 1;
  54.                 r.offset = 0;
  55.                 if (k > 0)
  56.                     r.leftShift(k);
  57.                 return r;
  58.             }
  59.  
  60.             // step B6
  61.             if ((tsign = u.difference(v)) == 0)
  62.                 break;
  63.             t = (tsign >= 0) ? u : v;
  64.         }
  65.  
  66.         if (k > 0)
  67.             u.leftShift(k);
  68.         return u;
  69.     }
  70.  
  71.     /**
  72.      * Calculate GCD of a and b interpreted as unsigned integers.
  73.      */
  74.     static int binaryGcd(int a, int b) {
  75.         if (b==0)
  76.             return a;
  77.         if (a==0)
  78.             return b;
  79.  
  80.         int x;
  81.         int aZeros = 0;
  82.         while ((x = (int)a & 0xff) == 0) {
  83.             a >>>= 8;
  84.             aZeros += 8;
  85.         }
  86.         int y = BigInteger.trailingZeroTable[x];
  87.         aZeros += y;
  88.         a >>>= y;
  89.  
  90.         int bZeros = 0;
  91.         while ((x = (int)b & 0xff) == 0) {
  92.             b >>>= 8;
  93.             bZeros += 8;
  94.         }
  95.         y = BigInteger.trailingZeroTable[x];
  96.         bZeros += y;
  97.         b >>>= y;
  98.  
  99.         int t = (aZeros < bZeros ? aZeros : bZeros);
  100.  
  101.         while (a != b) {
  102.             if ((a+0x80000000) > (b+0x80000000)) {  // a > b as unsigned
  103.                 a -= b;
  104.  
  105.                 while ((x = (int)a & 0xff) == 0)
  106.                     a >>>= 8;
  107.                 a >>>= BigInteger.trailingZeroTable[x];
  108.             } else {
  109.                 b -= a;
  110.  
  111.                 while ((x = (int)b & 0xff) == 0)
  112.                     b >>>= 8;
  113.                 b >>>= BigInteger.trailingZeroTable[x];
  114.             }
  115.         }
  116.         return a<<t;
  117.     }
Mar 22 '07 #19
shana07
281 100+
Need help, If someone has experience in core java class - MutableBigInteger, please share some with me. BinaryGCD here is what for...Let say I have gcd(45, 5) is that involves with binaryGCD(MutableBigInteger v)) too?
Thankss
Mar 22 '07 #20

Sign in to post your reply or Sign up for a free account.

Similar topics

2
by: Cheetah | last post by:
Does anyone know of some public/open source implementations of Trig funtions - ie sin, cos, tan - for Java that operate with BigIntegers or BigDecimals. Even better would be a library which can add...
73
by: RobertMaas | last post by:
After many years of using LISP, I'm taking a class in Java and finding the two roughly comparable in some ways and very different in other ways. Each has a decent size library of useful utilities...
458
by: wellstone9912 | last post by:
Java programmers seem to always be whining about how confusing and overly complex C++ appears to them. I would like to introduce an explanation for this. Is it possible that Java programmers...
2
by: phjones | last post by:
Need help programming mortagage calculator for 3 different loans 7 year, 15 year and 30 year. using java array I am a beginner with Java, This is what I have so far. Need to know if I am off the...
1
by: feathers75 | last post by:
-------------------------------------------------------------------------------- First, Hello eveyone and I am new to Java. I am trying to create a Java program that will calculate a person...
5
by: r035198x | last post by:
Setting up. Getting started To get started with java, one must download and install a version of Sun's JDK (Java Development Kit). The newest release at the time of writting this article is...
6
by: mearvk | last post by:
Does C++ or C have something roughly equivalent to this: http://java.sun.com/javase/6/docs/api/java/math/BigInteger.html What I need is a way to quickly convert between decimal and binary and...
318
by: King Raz | last post by:
The shootout site has benchmarks comparing different languages. It includes C# Mono vs Java but not C# .NET vs Java. So I went through all the benchmark on the site ... ...
11
by: imranisb | last post by:
Hi, Im developing RSA cryptography based application in VC#.Net 2.0 and need to use "BigInteger.probablePrime()". I know that VC#.Net 2.0 doesn't have the BigInteger class but found that one...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.