# Create vector(integer) efficiently

**URL:** https://quantlab.discourse.group/t/create-vector-integer-efficiently/117
**Category:** Qlang Language
**Created:** [September 24, 2025, 2:37pm UTC](https://quantlab.discourse.group/t/create-vector-integer-efficiently/117 "2025-09-24T14:37:33Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![QuantBob](https://yyz1.discourse-cdn.com/flex003/user_avatar/quantlab.discourse.group/quantbob/32/9_2.png) [@QuantBob](https://quantlab.discourse.group/u/QuantBob)
#### Post date: [September 24, 2025, 2:37pm UTC](https://quantlab.discourse.group/t/create-vector-integer-efficiently/117/1 "2025-09-24T14:37:33Z")

</div>

Running Quantlab ver 4029 or later? There is a better way to get a vector of integers to use in various range loops or vector and matrix calculations. Some example code with comments below.

→ Key take-away. Do not use function index\_vector() or s2v(series(…)) or the for loop for that matter. Use the built-in vector function; for index vector generation.

```auto
//generate index vector [0,1…n]
//replaces “index_vector(n)” func more efficiently
//syntax: iterator : length ; value
out vector(integer) t(integer n) = vector(i:n;i);

```

```auto
//generate zero_vector
out vector(integer) t0(integer n) = vector(i:n;0);

```

```auto
//generate one_vector
out vector(integer) t1(integer n) = vector(i:n;1);

```

```auto
//generate index vector starting at 1 i.e. [1,2,3,4]
out vector(integer) t2(integer n) = vector(i:n;i+1);

```

```auto
//generate factorial vector [n!]
out vector(integer) t3(integer n) = vector(i:n;factorial(i));

```

 ![image](https://canada1.discourse-cdn.com/flex003/uploads/quantlab/original/1X/a096dc7bea237f44f5fc0c5b9b1c62f9ac6ed3ca.png)

Example workspace:

[create-index-vector.qlw](https://quantlab.discourse.group/uploads/short-url/fZuBfYb0rpoSlLYQUPrEwnXWYjU.qlw) (9.4 KB)

---

<div class="post-metadata">

### Author: ![RutgerJ](https://avatars.discourse-cdn.com/v4/letter/r/ecb155/32.png) [@RutgerJ](https://quantlab.discourse.group/u/RutgerJ)
#### Post date: [September 25, 2025, 11:14am UTC](https://quantlab.discourse.group/t/create-vector-integer-efficiently/117/2 "2025-09-25T11:14:24Z")

</div>

Very useful. Thx. What would be the difference “under the hood”?

---

<div class="post-metadata">

### Author: ![QuantBob](https://yyz1.discourse-cdn.com/flex003/user_avatar/quantlab.discourse.group/quantbob/32/9_2.png) [@QuantBob](https://quantlab.discourse.group/u/QuantBob)
#### Post date: [October 9, 2025, 11:19am UTC](https://quantlab.discourse.group/t/create-vector-integer-efficiently/117/3 "2025-10-09T11:19:16Z")

</div>

Adding to this post. Using the new form of vector allocation instead of index\_vector or one\_vector, will depending on size etc, speed up the code with as much as a factor 4.

There are two things at play here. 1) the compiler might recognize the new type of allocation within another structure better and optimize the structure more efficiently, and 2) there are no for loops with explicit memory allocation and duplication from Qlang to memory.

So if you know your are doing loops and heavy calculations. Use the new way of vector creation.
